@pentoshi/clai 3.11.28 → 3.11.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/loop-guard.d.ts +12 -3
- package/dist/agent/loop-guard.js +237 -41
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/runner.d.ts +1 -0
- package/dist/agent/runner.js +64 -29
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-call-parser.js +70 -0
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.js +3 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/controllers/session-context-limits.d.ts +1 -7
- package/dist/app/controllers/session-context-limits.js +16 -18
- package/dist/app/controllers/session-context-limits.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +0 -2
- package/dist/app/controllers/session-controller.js +1 -4
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-turn-request.d.ts +1 -0
- package/dist/app/controllers/session-turn-request.js +3 -0
- package/dist/app/controllers/session-turn-request.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +1 -0
- package/dist/llm/capabilities.d.ts +2 -2
- package/dist/llm/capabilities.js +9 -11
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/http.js +3 -1
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/router.js +9 -5
- package/dist/llm/router.js.map +1 -1
- package/dist/tui-v2/app/App.js +8 -2
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/components/status/context-limit-chip.d.ts +1 -1
- package/dist/tui-v2/components/status/context-limit-chip.js +23 -3
- package/dist/tui-v2/components/status/context-limit-chip.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +1 -0
- package/dist/tui-v2/components/status/status-line.js +3 -3
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.d.ts +1 -0
- package/dist/tui-v2/composer/composer-editor.js +17 -12
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/use-draft-actions.d.ts +1 -1
- package/dist/tui-v2/composer/use-draft-actions.js +2 -2
- package/dist/tui-v2/composer/use-draft-actions.js.map +1 -1
- package/dist/tui-v2/rendering/incremental-strip.js +1 -1
- package/dist/tui-v2/rendering/incremental-strip.js.map +1 -1
- package/dist/tui-v2/rendering/strip-tool-surfaces.js +4 -0
- package/dist/tui-v2/rendering/strip-tool-surfaces.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ export interface ToolAttempt {
|
|
|
5
5
|
canonicalSignature: string;
|
|
6
6
|
ok: boolean;
|
|
7
7
|
exitCode?: number | undefined;
|
|
8
|
+
observationDigest?: string | undefined;
|
|
8
9
|
}
|
|
9
10
|
export interface LoopGuardOptions {
|
|
10
11
|
/** @deprecated Retry authorization belongs in RetryContext passed to shouldBlock. */
|
|
@@ -42,12 +43,13 @@ export declare class LoopGuard {
|
|
|
42
43
|
private lastActionSequence;
|
|
43
44
|
private lastActionSequenceEligible;
|
|
44
45
|
private actionSequenceRepetitions;
|
|
45
|
-
private
|
|
46
|
-
private
|
|
46
|
+
private lastActionSequenceOutcome;
|
|
47
|
+
private unchangedActionSequenceRuns;
|
|
47
48
|
private totalSequenceSuppressions;
|
|
48
49
|
private sequenceRunCounts;
|
|
49
50
|
private emptySuccessfulCalls;
|
|
50
51
|
private failedReadRetryUsed;
|
|
52
|
+
private successfulOutputs;
|
|
51
53
|
private successfulProbes;
|
|
52
54
|
private failedProbes;
|
|
53
55
|
private lastSuccessfulNonMetaStep;
|
|
@@ -55,6 +57,9 @@ export declare class LoopGuard {
|
|
|
55
57
|
restoreCompletedOperations(operations: readonly CompletedOperation[]): void;
|
|
56
58
|
canonicalize(name: string, args: Record<string, unknown>): string;
|
|
57
59
|
private sequenceSignature;
|
|
60
|
+
private callNeedsOutcomeComparison;
|
|
61
|
+
private sequenceNeedsOutcomeComparison;
|
|
62
|
+
private callHasUnsafeImmediateRetry;
|
|
58
63
|
observeActionSequence(calls: readonly {
|
|
59
64
|
name: string;
|
|
60
65
|
args: Record<string, unknown>;
|
|
@@ -64,7 +69,7 @@ export declare class LoopGuard {
|
|
|
64
69
|
name: string;
|
|
65
70
|
args: Record<string, unknown>;
|
|
66
71
|
stateKey?: string | undefined;
|
|
67
|
-
}[], eligible: boolean): void;
|
|
72
|
+
}[], eligible: boolean, outcomeFingerprint?: string | undefined): void;
|
|
68
73
|
resetSequenceCount(calls: readonly {
|
|
69
74
|
name: string;
|
|
70
75
|
args: Record<string, unknown>;
|
|
@@ -80,6 +85,10 @@ export declare class LoopGuard {
|
|
|
80
85
|
recordAttempt(step: number, name: string, args: Record<string, unknown>, ok: boolean, exitCode?: number | undefined, output?: string | undefined, context?: RetryContext | undefined): void;
|
|
81
86
|
private isPathMutatingTool;
|
|
82
87
|
private invalidateReadsAfterSuccess;
|
|
88
|
+
getPriorObservation(name: string, args: Record<string, unknown>): string | undefined;
|
|
89
|
+
private hasInterveningAttempt;
|
|
90
|
+
private hasRepeatedEquivalentAttempt;
|
|
91
|
+
private hasThreeEquivalentAttempts;
|
|
83
92
|
shouldBlock(name: string, args: Record<string, unknown>, retryContext?: RetryContext): LoopDecision;
|
|
84
93
|
getAttemptCount(name: string, args: Record<string, unknown>): number;
|
|
85
94
|
hasRepeatedFailures(threshold?: number): boolean;
|
package/dist/agent/loop-guard.js
CHANGED
|
@@ -17,8 +17,39 @@ const READ_ONLY_TOOLS = new Set([
|
|
|
17
17
|
"image.ocr",
|
|
18
18
|
"pdf.read",
|
|
19
19
|
]);
|
|
20
|
-
const SEQUENCE_WARN_THRESHOLD =
|
|
21
|
-
const SEQUENCE_BLOCK_THRESHOLD =
|
|
20
|
+
const SEQUENCE_WARN_THRESHOLD = 2;
|
|
21
|
+
const SEQUENCE_BLOCK_THRESHOLD = 2;
|
|
22
|
+
const IMMEDIATE_SEQUENCE_SUPPRESSION_TOOLS = new Set([
|
|
23
|
+
"fs.write",
|
|
24
|
+
"fs.writeMany",
|
|
25
|
+
"fs.edit",
|
|
26
|
+
"fs.replaceLines",
|
|
27
|
+
"fs.append",
|
|
28
|
+
"fs.delete",
|
|
29
|
+
"shell.start",
|
|
30
|
+
"shell.stop",
|
|
31
|
+
"pkg.install",
|
|
32
|
+
"plan.create",
|
|
33
|
+
"task.add",
|
|
34
|
+
"task.move",
|
|
35
|
+
"job.read",
|
|
36
|
+
"task.read",
|
|
37
|
+
"task.update",
|
|
38
|
+
"agent.handoff",
|
|
39
|
+
"loop.reset",
|
|
40
|
+
"terminal.start",
|
|
41
|
+
"terminal.send",
|
|
42
|
+
"terminal.resize",
|
|
43
|
+
"terminal.close",
|
|
44
|
+
]);
|
|
45
|
+
const UNSAFE_IMMEDIATE_RETRY_TOOLS = new Set([
|
|
46
|
+
"fs.append",
|
|
47
|
+
"shell.start",
|
|
48
|
+
"task.add",
|
|
49
|
+
"agent.handoff",
|
|
50
|
+
"terminal.start",
|
|
51
|
+
"terminal.send",
|
|
52
|
+
]);
|
|
22
53
|
export class LoopGuard {
|
|
23
54
|
attempts = [];
|
|
24
55
|
signatureCount = new Map();
|
|
@@ -26,12 +57,13 @@ export class LoopGuard {
|
|
|
26
57
|
lastActionSequence;
|
|
27
58
|
lastActionSequenceEligible = false;
|
|
28
59
|
actionSequenceRepetitions = 0;
|
|
29
|
-
|
|
30
|
-
|
|
60
|
+
lastActionSequenceOutcome;
|
|
61
|
+
unchangedActionSequenceRuns = 0;
|
|
31
62
|
totalSequenceSuppressions = 0;
|
|
32
63
|
sequenceRunCounts = new Map();
|
|
33
64
|
emptySuccessfulCalls = new Map();
|
|
34
65
|
failedReadRetryUsed = new Set();
|
|
66
|
+
successfulOutputs = new Map();
|
|
35
67
|
successfulProbes = new Map();
|
|
36
68
|
failedProbes = new Map();
|
|
37
69
|
lastSuccessfulNonMetaStep = -1;
|
|
@@ -40,7 +72,12 @@ export class LoopGuard {
|
|
|
40
72
|
for (const operation of operations) {
|
|
41
73
|
if (operation.ok === false) {
|
|
42
74
|
this.failedProbes.set(operation.signature, {
|
|
75
|
+
...(operation.observationDigest
|
|
76
|
+
? { digest: operation.observationDigest }
|
|
77
|
+
: {}),
|
|
78
|
+
unchangedRepeats: operation.unchangedRepeats ?? 0,
|
|
43
79
|
...(operation.stateKey ? { stateKey: operation.stateKey } : {}),
|
|
80
|
+
compareAfterRestore: true,
|
|
44
81
|
});
|
|
45
82
|
continue;
|
|
46
83
|
}
|
|
@@ -48,6 +85,7 @@ export class LoopGuard {
|
|
|
48
85
|
continue;
|
|
49
86
|
this.successfulProbes.set(operation.signature, {
|
|
50
87
|
digest: operation.observationDigest,
|
|
88
|
+
observation: operation.observation,
|
|
51
89
|
unchangedRepeats: operation.unchangedRepeats ?? 0,
|
|
52
90
|
...(operation.stateKey ? { stateKey: operation.stateKey } : {}),
|
|
53
91
|
compareAfterRestore: true,
|
|
@@ -67,6 +105,52 @@ export class LoopGuard {
|
|
|
67
105
|
.map((call) => `${this.canonicalize(call.name, call.args)}::state=${call.stateKey ?? ""}`)
|
|
68
106
|
.join(" ");
|
|
69
107
|
}
|
|
108
|
+
callNeedsOutcomeComparison(call) {
|
|
109
|
+
if (IMMEDIATE_SEQUENCE_SUPPRESSION_TOOLS.has(call.name))
|
|
110
|
+
return false;
|
|
111
|
+
if (call.name !== "tool.batch")
|
|
112
|
+
return true;
|
|
113
|
+
const children = call.args?.calls;
|
|
114
|
+
if (!Array.isArray(children) || children.length === 0)
|
|
115
|
+
return false;
|
|
116
|
+
return children.every((child) => {
|
|
117
|
+
if (!child || typeof child !== "object")
|
|
118
|
+
return false;
|
|
119
|
+
const record = child;
|
|
120
|
+
return (typeof record.name === "string" &&
|
|
121
|
+
this.callNeedsOutcomeComparison({
|
|
122
|
+
name: record.name,
|
|
123
|
+
args: record.args && typeof record.args === "object"
|
|
124
|
+
? record.args
|
|
125
|
+
: {},
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
sequenceNeedsOutcomeComparison(calls) {
|
|
130
|
+
return calls.every((call) => this.callNeedsOutcomeComparison(call));
|
|
131
|
+
}
|
|
132
|
+
callHasUnsafeImmediateRetry(call) {
|
|
133
|
+
if (UNSAFE_IMMEDIATE_RETRY_TOOLS.has(call.name))
|
|
134
|
+
return true;
|
|
135
|
+
if (call.name !== "tool.batch")
|
|
136
|
+
return false;
|
|
137
|
+
const children = call.args?.calls;
|
|
138
|
+
if (!Array.isArray(children))
|
|
139
|
+
return true;
|
|
140
|
+
return children.some((child) => {
|
|
141
|
+
if (!child || typeof child !== "object")
|
|
142
|
+
return true;
|
|
143
|
+
const record = child;
|
|
144
|
+
if (typeof record.name !== "string")
|
|
145
|
+
return true;
|
|
146
|
+
return this.callHasUnsafeImmediateRetry({
|
|
147
|
+
name: record.name,
|
|
148
|
+
args: record.args && typeof record.args === "object"
|
|
149
|
+
? record.args
|
|
150
|
+
: {},
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
}
|
|
70
154
|
observeActionSequence(calls) {
|
|
71
155
|
const none = {
|
|
72
156
|
suppress: false,
|
|
@@ -80,44 +164,39 @@ export class LoopGuard {
|
|
|
80
164
|
this.lastActionSequence = undefined;
|
|
81
165
|
this.lastActionSequenceEligible = false;
|
|
82
166
|
this.actionSequenceRepetitions = 0;
|
|
167
|
+
this.lastActionSequenceOutcome = undefined;
|
|
168
|
+
this.unchangedActionSequenceRuns = 0;
|
|
83
169
|
return none;
|
|
84
170
|
}
|
|
85
171
|
const signature = this.sequenceSignature(calls);
|
|
86
172
|
const currentCount = this.sequenceRunCounts.get(signature) ?? 0;
|
|
87
173
|
if (signature !== this.lastActionSequence) {
|
|
88
|
-
const isOscillation = this.recentActionSequences.includes(signature);
|
|
89
174
|
this.lastActionSequence = signature;
|
|
90
175
|
this.lastActionSequenceEligible = false;
|
|
91
176
|
this.actionSequenceRepetitions = 0;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
177
|
+
this.lastActionSequenceOutcome = undefined;
|
|
178
|
+
this.unchangedActionSequenceRuns = 0;
|
|
179
|
+
return none;
|
|
180
|
+
}
|
|
181
|
+
if (!this.lastActionSequenceEligible) {
|
|
182
|
+
return none;
|
|
183
|
+
}
|
|
184
|
+
if (this.sequenceNeedsOutcomeComparison(calls)) {
|
|
185
|
+
if (this.unchangedActionSequenceRuns < 2) {
|
|
186
|
+
return none;
|
|
102
187
|
}
|
|
103
|
-
if (
|
|
188
|
+
if (this.unchangedActionSequenceRuns === 2) {
|
|
104
189
|
return {
|
|
105
190
|
suppress: false,
|
|
106
191
|
terminal: false,
|
|
107
|
-
repetitions:
|
|
192
|
+
repetitions: 2,
|
|
108
193
|
totalSuppressions: this.totalSequenceSuppressions,
|
|
109
|
-
oscillation:
|
|
194
|
+
oscillation: false,
|
|
110
195
|
warn: true,
|
|
111
|
-
warnMessage:
|
|
112
|
-
"
|
|
113
|
-
"If you are receiving output and genuinely iterating (e.g. testing after edits), call loop.reset to reset the counter and continue. " +
|
|
114
|
-
`Commands will be blocked after ${SEQUENCE_BLOCK_THRESHOLD} repetitions.`,
|
|
196
|
+
warnMessage: "This exact observable action has produced the same result twice consecutively. " +
|
|
197
|
+
"The comparison run will proceed. If further identical runs are intentional, call loop.reset before repeating it again; otherwise use the existing result or change approach.",
|
|
115
198
|
};
|
|
116
199
|
}
|
|
117
|
-
return none;
|
|
118
|
-
}
|
|
119
|
-
if (!this.lastActionSequenceEligible) {
|
|
120
|
-
return none;
|
|
121
200
|
}
|
|
122
201
|
this.actionSequenceRepetitions += 1;
|
|
123
202
|
const totalReps = currentCount + 1;
|
|
@@ -149,7 +228,7 @@ export class LoopGuard {
|
|
|
149
228
|
}
|
|
150
229
|
return none;
|
|
151
230
|
}
|
|
152
|
-
completeActionSequence(calls, eligible) {
|
|
231
|
+
completeActionSequence(calls, eligible, outcomeFingerprint) {
|
|
153
232
|
if (calls.length === 0)
|
|
154
233
|
return;
|
|
155
234
|
const signature = this.sequenceSignature(calls);
|
|
@@ -158,16 +237,19 @@ export class LoopGuard {
|
|
|
158
237
|
this.lastActionSequenceEligible = eligible;
|
|
159
238
|
if (!eligible) {
|
|
160
239
|
this.actionSequenceRepetitions = 0;
|
|
240
|
+
this.lastActionSequenceOutcome = undefined;
|
|
241
|
+
this.unchangedActionSequenceRuns = 0;
|
|
161
242
|
return;
|
|
162
243
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
this.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
this.
|
|
244
|
+
if (this.sequenceNeedsOutcomeComparison(calls)) {
|
|
245
|
+
const comparableOutcome = outcomeFingerprint ?? "__no-outcome__";
|
|
246
|
+
const unchanged = comparableOutcome === this.lastActionSequenceOutcome;
|
|
247
|
+
this.unchangedActionSequenceRuns = unchanged
|
|
248
|
+
? this.unchangedActionSequenceRuns + 1
|
|
249
|
+
: 1;
|
|
250
|
+
this.lastActionSequenceOutcome = comparableOutcome;
|
|
170
251
|
}
|
|
252
|
+
this.sequenceRunCounts.set(signature, (this.sequenceRunCounts.get(signature) ?? 0) + 1);
|
|
171
253
|
}
|
|
172
254
|
resetSequenceCount(calls) {
|
|
173
255
|
if (calls.length === 0)
|
|
@@ -179,19 +261,23 @@ export class LoopGuard {
|
|
|
179
261
|
if (!this.sequenceRunCounts.has(signature))
|
|
180
262
|
return false;
|
|
181
263
|
this.sequenceRunCounts.delete(signature);
|
|
182
|
-
const idx = this.recentActionSequences.indexOf(signature);
|
|
183
|
-
if (idx >= 0)
|
|
184
|
-
this.recentActionSequences.splice(idx, 1);
|
|
185
264
|
this.actionSequenceRepetitions = 0;
|
|
186
265
|
return true;
|
|
187
266
|
}
|
|
188
267
|
resetAllSequenceCounts() {
|
|
189
268
|
this.sequenceRunCounts.clear();
|
|
190
|
-
this.recentActionSequences.length = 0;
|
|
191
269
|
this.actionSequenceRepetitions = 0;
|
|
270
|
+
this.lastActionSequenceOutcome = undefined;
|
|
271
|
+
this.unchangedActionSequenceRuns = 0;
|
|
192
272
|
this.totalSequenceSuppressions = 0;
|
|
193
273
|
this.lastActionSequence = undefined;
|
|
194
274
|
this.lastActionSequenceEligible = false;
|
|
275
|
+
this.signatureCount.clear();
|
|
276
|
+
this.signatureSuccess.clear();
|
|
277
|
+
this.emptySuccessfulCalls.clear();
|
|
278
|
+
this.failedReadRetryUsed.clear();
|
|
279
|
+
this.successfulProbes.clear();
|
|
280
|
+
this.failedProbes.clear();
|
|
195
281
|
}
|
|
196
282
|
getSequenceRunCount(calls) {
|
|
197
283
|
if (calls.length === 0)
|
|
@@ -200,12 +286,16 @@ export class LoopGuard {
|
|
|
200
286
|
}
|
|
201
287
|
recordAttempt(step, name, args, ok, exitCode, output, context) {
|
|
202
288
|
const sig = this.canonicalize(name, args);
|
|
289
|
+
const observationDigest = output !== undefined
|
|
290
|
+
? completedOperationObservationDigest(name, output)
|
|
291
|
+
: undefined;
|
|
203
292
|
this.attempts.push({
|
|
204
293
|
step,
|
|
205
294
|
callName: name,
|
|
206
295
|
canonicalSignature: sig,
|
|
207
296
|
ok,
|
|
208
297
|
exitCode,
|
|
298
|
+
...(observationDigest ? { observationDigest } : {}),
|
|
209
299
|
});
|
|
210
300
|
if (this.attempts.length > MAX_ATTEMPT_HISTORY) {
|
|
211
301
|
this.attempts.splice(0, this.attempts.length - MAX_ATTEMPT_HISTORY);
|
|
@@ -213,6 +303,15 @@ export class LoopGuard {
|
|
|
213
303
|
this.signatureCount.set(sig, (this.signatureCount.get(sig) ?? 0) + 1);
|
|
214
304
|
if (ok) {
|
|
215
305
|
this.signatureSuccess.set(sig, true);
|
|
306
|
+
if (output?.trim()) {
|
|
307
|
+
this.successfulOutputs.delete(sig);
|
|
308
|
+
this.successfulOutputs.set(sig, output.trim().slice(0, 8_000));
|
|
309
|
+
if (this.successfulOutputs.size > MAX_ATTEMPT_HISTORY) {
|
|
310
|
+
const oldest = this.successfulOutputs.keys().next().value;
|
|
311
|
+
if (oldest !== undefined)
|
|
312
|
+
this.successfulOutputs.delete(oldest);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
216
315
|
if (name !== "task.update" && name !== "plan.create") {
|
|
217
316
|
this.lastSuccessfulNonMetaStep = step;
|
|
218
317
|
}
|
|
@@ -237,6 +336,7 @@ export class LoopGuard {
|
|
|
237
336
|
const unchanged = prior?.digest === digest && prior.stateKey === context?.stateKey;
|
|
238
337
|
this.successfulProbes.set(probeSignature, {
|
|
239
338
|
digest,
|
|
339
|
+
observation: output.trim().slice(0, 8_000),
|
|
240
340
|
unchangedRepeats: unchanged ? (prior?.unchangedRepeats ?? 0) + 1 : 0,
|
|
241
341
|
...(context?.stateKey ? { stateKey: context.stateKey } : {}),
|
|
242
342
|
compareAfterRestore: false,
|
|
@@ -249,8 +349,16 @@ export class LoopGuard {
|
|
|
249
349
|
}
|
|
250
350
|
else {
|
|
251
351
|
const priorFailure = this.failedProbes.get(probeSignature);
|
|
352
|
+
const unchanged = observationDigest !== undefined &&
|
|
353
|
+
priorFailure?.digest === observationDigest &&
|
|
354
|
+
priorFailure.stateKey === context?.stateKey;
|
|
252
355
|
this.failedProbes.set(probeSignature, {
|
|
356
|
+
...(observationDigest ? { digest: observationDigest } : {}),
|
|
357
|
+
unchangedRepeats: unchanged
|
|
358
|
+
? (priorFailure?.unchangedRepeats ?? 0) + 1
|
|
359
|
+
: 0,
|
|
253
360
|
...(context?.stateKey ? { stateKey: context.stateKey } : {}),
|
|
361
|
+
compareAfterRestore: false,
|
|
254
362
|
...(priorFailure?.retryReason
|
|
255
363
|
? { retryReason: priorFailure.retryReason }
|
|
256
364
|
: {}),
|
|
@@ -303,10 +411,54 @@ export class LoopGuard {
|
|
|
303
411
|
if (paths.some((p) => p.length > 1 && sig.includes(p))) {
|
|
304
412
|
this.signatureCount.delete(sig);
|
|
305
413
|
this.signatureSuccess.delete(sig);
|
|
414
|
+
this.successfulOutputs.delete(sig);
|
|
306
415
|
this.failedReadRetryUsed.delete(sig);
|
|
307
416
|
}
|
|
308
417
|
}
|
|
309
418
|
}
|
|
419
|
+
getPriorObservation(name, args) {
|
|
420
|
+
const direct = this.successfulOutputs.get(this.canonicalize(name, args));
|
|
421
|
+
if (direct)
|
|
422
|
+
return direct;
|
|
423
|
+
const probeSignature = completedOperationSignature(name, args);
|
|
424
|
+
return probeSignature
|
|
425
|
+
? this.successfulProbes.get(probeSignature)?.observation
|
|
426
|
+
: undefined;
|
|
427
|
+
}
|
|
428
|
+
hasInterveningAttempt(signature) {
|
|
429
|
+
const latest = this.attempts.at(-1);
|
|
430
|
+
return latest !== undefined && latest.canonicalSignature !== signature;
|
|
431
|
+
}
|
|
432
|
+
hasRepeatedEquivalentAttempt(signature, ok) {
|
|
433
|
+
const latest = this.attempts.at(-1);
|
|
434
|
+
const previous = this.attempts.at(-2);
|
|
435
|
+
return Boolean(latest &&
|
|
436
|
+
previous &&
|
|
437
|
+
latest.canonicalSignature === signature &&
|
|
438
|
+
previous.canonicalSignature === signature &&
|
|
439
|
+
latest.ok === ok &&
|
|
440
|
+
previous.ok === ok &&
|
|
441
|
+
latest.exitCode === previous.exitCode &&
|
|
442
|
+
latest.observationDigest === previous.observationDigest);
|
|
443
|
+
}
|
|
444
|
+
hasThreeEquivalentAttempts(signature, ok) {
|
|
445
|
+
const latest = this.attempts.at(-1);
|
|
446
|
+
const previous = this.attempts.at(-2);
|
|
447
|
+
const earlier = this.attempts.at(-3);
|
|
448
|
+
return Boolean(latest &&
|
|
449
|
+
previous &&
|
|
450
|
+
earlier &&
|
|
451
|
+
latest.canonicalSignature === signature &&
|
|
452
|
+
previous.canonicalSignature === signature &&
|
|
453
|
+
earlier.canonicalSignature === signature &&
|
|
454
|
+
latest.ok === ok &&
|
|
455
|
+
previous.ok === ok &&
|
|
456
|
+
earlier.ok === ok &&
|
|
457
|
+
latest.exitCode === previous.exitCode &&
|
|
458
|
+
previous.exitCode === earlier.exitCode &&
|
|
459
|
+
latest.observationDigest === previous.observationDigest &&
|
|
460
|
+
previous.observationDigest === earlier.observationDigest);
|
|
461
|
+
}
|
|
310
462
|
shouldBlock(name, args, retryContext) {
|
|
311
463
|
if (name === "task.update" || name === "plan.create") {
|
|
312
464
|
return { block: false };
|
|
@@ -318,8 +470,13 @@ export class LoopGuard {
|
|
|
318
470
|
retryContext.stateKey !== emptySuccess.stateKey) {
|
|
319
471
|
return { block: false };
|
|
320
472
|
}
|
|
321
|
-
if (
|
|
322
|
-
|
|
473
|
+
if (this.hasInterveningAttempt(sig) ||
|
|
474
|
+
(emptySuccess.stateKey === undefined &&
|
|
475
|
+
this.lastSuccessfulNonMetaStep > emptySuccess.step)) {
|
|
476
|
+
return { block: false };
|
|
477
|
+
}
|
|
478
|
+
if (this.callNeedsOutcomeComparison({ name, args }) &&
|
|
479
|
+
!this.hasThreeEquivalentAttempts(sig, true)) {
|
|
323
480
|
return { block: false };
|
|
324
481
|
}
|
|
325
482
|
const retryReason = retryContext?.retryReason;
|
|
@@ -337,6 +494,17 @@ export class LoopGuard {
|
|
|
337
494
|
"Do not repeat it unchanged; use a different action, wait for an observable state change, or provide one new structured retry reason.",
|
|
338
495
|
};
|
|
339
496
|
}
|
|
497
|
+
const latestAttempt = this.attempts.at(-1);
|
|
498
|
+
if (!this.callNeedsOutcomeComparison({ name, args }) &&
|
|
499
|
+
latestAttempt?.canonicalSignature === sig &&
|
|
500
|
+
latestAttempt.ok) {
|
|
501
|
+
return {
|
|
502
|
+
block: true,
|
|
503
|
+
kind: "unchanged-success",
|
|
504
|
+
reason: `${name} already completed with identical arguments. ` +
|
|
505
|
+
"Do not replay the exact same side effect without changing its arguments.",
|
|
506
|
+
};
|
|
507
|
+
}
|
|
340
508
|
const probeSignature = completedOperationSignature(name, args);
|
|
341
509
|
const probe = probeSignature
|
|
342
510
|
? this.successfulProbes.get(probeSignature)
|
|
@@ -350,6 +518,12 @@ export class LoopGuard {
|
|
|
350
518
|
retryContext.stateKey !== probe.stateKey) {
|
|
351
519
|
return { block: false };
|
|
352
520
|
}
|
|
521
|
+
if (this.hasInterveningAttempt(sig)) {
|
|
522
|
+
return { block: false };
|
|
523
|
+
}
|
|
524
|
+
if (probe.unchangedRepeats < 2) {
|
|
525
|
+
return { block: false };
|
|
526
|
+
}
|
|
353
527
|
const retryReason = retryContext?.retryReason;
|
|
354
528
|
const reasonKey = retryReason?.code.trim() && retryReason.detail.trim()
|
|
355
529
|
? `${retryReason.code.trim()}\0${retryReason.detail.trim()}`
|
|
@@ -375,6 +549,16 @@ export class LoopGuard {
|
|
|
375
549
|
retryContext.stateKey !== restoredFailure.stateKey)) {
|
|
376
550
|
return { block: false };
|
|
377
551
|
}
|
|
552
|
+
if (this.hasInterveningAttempt(sig)) {
|
|
553
|
+
return { block: false };
|
|
554
|
+
}
|
|
555
|
+
if (restoredFailure.compareAfterRestore) {
|
|
556
|
+
restoredFailure.compareAfterRestore = false;
|
|
557
|
+
return { block: false };
|
|
558
|
+
}
|
|
559
|
+
if (restoredFailure.unchangedRepeats < 1) {
|
|
560
|
+
return { block: false };
|
|
561
|
+
}
|
|
378
562
|
if (READ_ONLY_TOOLS.has(name) && !this.failedReadRetryUsed.has(sig)) {
|
|
379
563
|
const lastFailStep = [...this.attempts]
|
|
380
564
|
.reverse()
|
|
@@ -401,7 +585,7 @@ export class LoopGuard {
|
|
|
401
585
|
};
|
|
402
586
|
}
|
|
403
587
|
const count = this.signatureCount.get(sig) ?? 0;
|
|
404
|
-
if (count === 0)
|
|
588
|
+
if (count === 0 || this.hasInterveningAttempt(sig))
|
|
405
589
|
return { block: false };
|
|
406
590
|
if (this.signatureSuccess.get(sig) !== false) {
|
|
407
591
|
return { block: false };
|
|
@@ -413,6 +597,14 @@ export class LoopGuard {
|
|
|
413
597
|
if (authorized) {
|
|
414
598
|
return { block: false };
|
|
415
599
|
}
|
|
600
|
+
if (this.callHasUnsafeImmediateRetry({ name, args })) {
|
|
601
|
+
return {
|
|
602
|
+
block: true,
|
|
603
|
+
kind: "failed-retry",
|
|
604
|
+
reason: `${name} failed with identical arguments and may have partially delivered its side effect. ` +
|
|
605
|
+
"Do not replay it without changed arguments or an explicit structured retry reason.",
|
|
606
|
+
};
|
|
607
|
+
}
|
|
416
608
|
if (READ_ONLY_TOOLS.has(name) && !this.failedReadRetryUsed.has(sig)) {
|
|
417
609
|
const lastFailStep = [...this.attempts]
|
|
418
610
|
.reverse()
|
|
@@ -425,6 +617,9 @@ export class LoopGuard {
|
|
|
425
617
|
return { block: false };
|
|
426
618
|
}
|
|
427
619
|
}
|
|
620
|
+
if (!this.hasRepeatedEquivalentAttempt(sig, false)) {
|
|
621
|
+
return { block: false };
|
|
622
|
+
}
|
|
428
623
|
return {
|
|
429
624
|
block: true,
|
|
430
625
|
kind: "failed-retry",
|
|
@@ -484,6 +679,7 @@ Do NOT keep trying variations of the same failing approach without explicitly de
|
|
|
484
679
|
if (READ_ONLY_TOOLS.has(name)) {
|
|
485
680
|
this.signatureCount.delete(sig);
|
|
486
681
|
this.signatureSuccess.delete(sig);
|
|
682
|
+
this.successfulOutputs.delete(sig);
|
|
487
683
|
}
|
|
488
684
|
}
|
|
489
685
|
this.attempts = this.attempts.filter((a) => !READ_ONLY_TOOLS.has(a.callName));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-guard.js","sourceRoot":"","sources":["../../src/agent/loop-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-guard.js","sourceRoot":"","sources":["../../src/agent/loop-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/runner.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ export interface AgentRunOptions {
|
|
|
58
58
|
previousTurn?: PreviousTurnSignal | undefined;
|
|
59
59
|
/** User-declared model window for this provider/model/session. */
|
|
60
60
|
contextLimitTokens?: number | undefined;
|
|
61
|
+
getContextLimitTokens?: (provider: ProviderId | undefined, model: string | undefined) => number | undefined;
|
|
61
62
|
}
|
|
62
63
|
export declare function runAgentTurn(prompt: string, options?: AgentRunOptions): Promise<import("./turn-outcome.js").TurnOutcome>;
|
|
63
64
|
/** Compatibility boundary for callers that consume visible assistant text. */
|