Skip to content

Commit 01a087f

Browse files
committed
prune keepLastTags
1 parent 5d286b4 commit 01a087f

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

.agents/context-pruner.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,17 @@ const definition: AgentDefinition = {
157157
content: '<system>Previous message(s) omitted due to length</system>',
158158
}
159159

160+
const keepLastTags: Record<string, number> = {}
161+
for (const [i, message] of afterToolResultsPass.entries()) {
162+
if (!message.keepLastTags) {
163+
continue
164+
}
165+
for (const tag of message.keepLastTags) {
166+
keepLastTags[tag] = i
167+
}
168+
}
169+
const keepLastIndices = Object.values(keepLastTags)
170+
160171
const requiredTokens = countTokensJson(
161172
afterToolResultsPass.filter((m: any) => m.keepDuringTruncation),
162173
)
@@ -167,8 +178,12 @@ const definition: AgentDefinition = {
167178
const placeholder = 'deleted'
168179
const filteredMessages: any[] = []
169180

170-
for (const message of afterToolResultsPass) {
171-
if (removedTokens >= tokensToRemove || message.keepDuringTruncation) {
181+
for (const [i, message] of afterToolResultsPass.entries()) {
182+
if (
183+
removedTokens >= tokensToRemove ||
184+
message.keepDuringTruncation ||
185+
keepLastIndices.includes(i)
186+
) {
172187
filteredMessages.push(message)
173188
continue
174189
}

0 commit comments

Comments
 (0)