@stigmer/runner 3.2.0 → 3.2.1
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/.build-fingerprint +1 -1
- package/dist/activities/execute-cursor/cost-guard.d.ts +41 -0
- package/dist/activities/execute-cursor/cost-guard.js +50 -0
- package/dist/activities/execute-cursor/cost-guard.js.map +1 -0
- package/dist/activities/execute-cursor/index.js +30 -0
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/turn-stream.d.ts +10 -1
- package/dist/activities/execute-cursor/turn-stream.js +42 -9
- package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
- package/package.json +2 -2
- package/src/activities/execute-cursor/__tests__/cost-guard.test.ts +64 -0
- package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +118 -0
- package/src/activities/execute-cursor/cost-guard.ts +56 -0
- package/src/activities/execute-cursor/index.ts +30 -0
- package/src/activities/execute-cursor/turn-stream.ts +61 -10
package/dist/.build-fingerprint
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"7243a1c247ad6d42","builtAt":"2026-07-17T18:09:00.336Z","fileCount":252}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecutionConfig.max_cost_usd enforcement for the Cursor harness.
|
|
3
|
+
*
|
|
4
|
+
* The native harness enforces the cap in middleware (cost-cap.ts): tools are
|
|
5
|
+
* blocked at the threshold and the model gets one final tool-free round to
|
|
6
|
+
* summarize. Cursor's only control point is cancelling the in-flight run, so
|
|
7
|
+
* here the cap is a HARD stop — the shared onDelta flags the overrun when a
|
|
8
|
+
* turn-ended usage delta lands, and the stream loop ends the run through the
|
|
9
|
+
* same clean-cancel pattern the stall watchdog and first-denial stop use.
|
|
10
|
+
* Slightly harsher than native by construction; both harnesses terminate with
|
|
11
|
+
* the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
|
|
12
|
+
* conversation continues on the next message — the recursion-limit precedent
|
|
13
|
+
* in execute-deep-agent/streaming-terminal.ts).
|
|
14
|
+
*
|
|
15
|
+
* The running figure is the usage accumulator's local pricing-table estimate
|
|
16
|
+
* (authoritative billing is the BiDi proxy). That is the same estimation
|
|
17
|
+
* basis the native cost-cap middleware uses — acceptable for a safety net.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Whether the per-execution cost budget has been exhausted.
|
|
21
|
+
*
|
|
22
|
+
* `maxCostUsd <= 0` means "no cap" (the proto contract: 0/unset disables the
|
|
23
|
+
* ceiling). The boundary is inclusive: reaching the cap exactly stops the run,
|
|
24
|
+
* matching the native middleware's `runningCost >= maxCostUsd` check.
|
|
25
|
+
*/
|
|
26
|
+
export declare function costCapExceeded(maxCostUsd: number, estimatedCostUsd: number): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
|
|
29
|
+
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (streaming-terminal.ts): consumers
|
|
30
|
+
* that need to distinguish "ran out of cost budget" from other TERMINATED
|
|
31
|
+
* causes can match on this prefix, because AgentExecutionStatus carries no
|
|
32
|
+
* structured termination reason. Do not reword without checking consumers.
|
|
33
|
+
*/
|
|
34
|
+
export declare const COST_LIMIT_ERROR_PREFIX = "Agent reached the cost limit";
|
|
35
|
+
/** The terminal `status.error` for a cost-cap stop. */
|
|
36
|
+
export declare function formatCostLimitError(maxCostUsd: number, estimatedCostUsd: number): string;
|
|
37
|
+
/**
|
|
38
|
+
* User-facing system message for a cost-cap stop. Parallel to the
|
|
39
|
+
* recursion-limit copy: honest about the limit, clear that nothing is lost.
|
|
40
|
+
*/
|
|
41
|
+
export declare const COST_LIMIT_USER_COPY: string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecutionConfig.max_cost_usd enforcement for the Cursor harness.
|
|
3
|
+
*
|
|
4
|
+
* The native harness enforces the cap in middleware (cost-cap.ts): tools are
|
|
5
|
+
* blocked at the threshold and the model gets one final tool-free round to
|
|
6
|
+
* summarize. Cursor's only control point is cancelling the in-flight run, so
|
|
7
|
+
* here the cap is a HARD stop — the shared onDelta flags the overrun when a
|
|
8
|
+
* turn-ended usage delta lands, and the stream loop ends the run through the
|
|
9
|
+
* same clean-cancel pattern the stall watchdog and first-denial stop use.
|
|
10
|
+
* Slightly harsher than native by construction; both harnesses terminate with
|
|
11
|
+
* the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
|
|
12
|
+
* conversation continues on the next message — the recursion-limit precedent
|
|
13
|
+
* in execute-deep-agent/streaming-terminal.ts).
|
|
14
|
+
*
|
|
15
|
+
* The running figure is the usage accumulator's local pricing-table estimate
|
|
16
|
+
* (authoritative billing is the BiDi proxy). That is the same estimation
|
|
17
|
+
* basis the native cost-cap middleware uses — acceptable for a safety net.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Whether the per-execution cost budget has been exhausted.
|
|
21
|
+
*
|
|
22
|
+
* `maxCostUsd <= 0` means "no cap" (the proto contract: 0/unset disables the
|
|
23
|
+
* ceiling). The boundary is inclusive: reaching the cap exactly stops the run,
|
|
24
|
+
* matching the native middleware's `runningCost >= maxCostUsd` check.
|
|
25
|
+
*/
|
|
26
|
+
export function costCapExceeded(maxCostUsd, estimatedCostUsd) {
|
|
27
|
+
return maxCostUsd > 0 && estimatedCostUsd >= maxCostUsd;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
|
|
31
|
+
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (streaming-terminal.ts): consumers
|
|
32
|
+
* that need to distinguish "ran out of cost budget" from other TERMINATED
|
|
33
|
+
* causes can match on this prefix, because AgentExecutionStatus carries no
|
|
34
|
+
* structured termination reason. Do not reword without checking consumers.
|
|
35
|
+
*/
|
|
36
|
+
export const COST_LIMIT_ERROR_PREFIX = "Agent reached the cost limit";
|
|
37
|
+
/** The terminal `status.error` for a cost-cap stop. */
|
|
38
|
+
export function formatCostLimitError(maxCostUsd, estimatedCostUsd) {
|
|
39
|
+
return (`${COST_LIMIT_ERROR_PREFIX} for this message ` +
|
|
40
|
+
`(~$${estimatedCostUsd.toFixed(4)} of the $${maxCostUsd.toFixed(2)} budget). ` +
|
|
41
|
+
`Send another message to continue.`);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* User-facing system message for a cost-cap stop. Parallel to the
|
|
45
|
+
* recursion-limit copy: honest about the limit, clear that nothing is lost.
|
|
46
|
+
*/
|
|
47
|
+
export const COST_LIMIT_USER_COPY = "The agent reached the cost limit for this message. " +
|
|
48
|
+
"Work completed so far has been saved. " +
|
|
49
|
+
"Send another message to continue where the agent left off.";
|
|
50
|
+
//# sourceMappingURL=cost-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-guard.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/cost-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,gBAAwB;IAC1E,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,uDAAuD;AACvD,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,gBAAwB;IAC/E,OAAO,CACL,GAAG,uBAAuB,oBAAoB;QAC9C,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;QAC9E,mCAAmC,CACpC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,qDAAqD;IACrD,wCAAwC;IACxC,4DAA4D,CAAC"}
|
|
@@ -66,6 +66,7 @@ import { isGitWorkTree } from "../../shared/filereview/git-substrate.js";
|
|
|
66
66
|
import { captureBaselineToLedger, buildCursorProgressSubstrate, applyCaptureDecisions, deriveCaptureMode, } from "./capture-flow.js";
|
|
67
67
|
import { runTurnBoundary } from "./turn-boundary.js";
|
|
68
68
|
import { consumeCursorTurnStream, makeCursorTurnOnDelta, newTurnStreamState, } from "./turn-stream.js";
|
|
69
|
+
import { formatCostLimitError, COST_LIMIT_USER_COPY } from "./cost-guard.js";
|
|
69
70
|
import { newProgressCaptureState, } from "../../shared/filereview/progress.js";
|
|
70
71
|
import { deriveExecutionFingerprintKey } from "../../shared/approval-fingerprint.js";
|
|
71
72
|
import { getRunnerHitlMasterSecret } from "../../shared/fingerprint-secret.js";
|
|
@@ -795,6 +796,7 @@ turnSeq) {
|
|
|
795
796
|
// The shared onDelta only needs the usage/enricher/heartbeat/state subset,
|
|
796
797
|
// and it is wired at SEND time — before the accumulator exists — so it takes
|
|
797
798
|
// the narrow deps. The primary send and both retry sends reuse this object.
|
|
799
|
+
const maxCostUsd = spec.executionConfig?.maxCostUsd ?? 0;
|
|
798
800
|
const onDeltaDeps = {
|
|
799
801
|
usageAccumulator,
|
|
800
802
|
deltaEnricher,
|
|
@@ -802,6 +804,7 @@ turnSeq) {
|
|
|
802
804
|
promptEstimatedTokens,
|
|
803
805
|
executionId,
|
|
804
806
|
state: turnState,
|
|
807
|
+
maxCostUsd,
|
|
805
808
|
};
|
|
806
809
|
// Periodic heartbeat keeps Temporal informed during silent SDK operations
|
|
807
810
|
// (e.g. long tool calls, MCP requests, model thinking). Without this,
|
|
@@ -904,6 +907,7 @@ turnSeq) {
|
|
|
904
907
|
if (turnState.pauseDetected ||
|
|
905
908
|
workerShutdownDetected ||
|
|
906
909
|
turnState.stallDetected ||
|
|
910
|
+
turnState.costCapExceeded ||
|
|
907
911
|
Context.current().cancellationSignal.aborted) {
|
|
908
912
|
accumulator.cancelInProgressSubAgents();
|
|
909
913
|
}
|
|
@@ -936,6 +940,32 @@ turnSeq) {
|
|
|
936
940
|
console.warn(`ExecuteCursor stalled: execution=${executionId}, events=${turnState.eventCount}, error=${status.error}`);
|
|
937
941
|
return { kind: "return" };
|
|
938
942
|
}
|
|
943
|
+
// Cost cap (cost-guard.ts): onDelta flagged the overrun and the loop
|
|
944
|
+
// cancelled the run. EXECUTION_TERMINATED, not FAILED — the platform
|
|
945
|
+
// deliberately stopped the run, work is checkpointed, and the
|
|
946
|
+
// conversation continues on the next message (the recursion-limit
|
|
947
|
+
// precedent in execute-deep-agent/streaming-terminal.ts). RETURN (not
|
|
948
|
+
// throw): a Temporal retry would re-run the identical prompt and burn
|
|
949
|
+
// the same budget again.
|
|
950
|
+
if (turnState.costCapExceeded) {
|
|
951
|
+
const estimated = usageAccumulator.snapshot().estimatedCostUsd;
|
|
952
|
+
status.phase = ExecutionPhase.EXECUTION_TERMINATED;
|
|
953
|
+
status.error = formatCostLimitError(maxCostUsd, estimated);
|
|
954
|
+
status.completedAt = utcTimestamp();
|
|
955
|
+
status.messages.push(create(AgentMessageSchema, {
|
|
956
|
+
type: MessageType.MESSAGE_SYSTEM,
|
|
957
|
+
content: COST_LIMIT_USER_COPY,
|
|
958
|
+
timestamp: utcTimestamp(),
|
|
959
|
+
}));
|
|
960
|
+
await persist(status);
|
|
961
|
+
try {
|
|
962
|
+
resolution.agent.close();
|
|
963
|
+
}
|
|
964
|
+
catch { /* best effort */ }
|
|
965
|
+
console.warn(`ExecuteCursor terminated (cost cap): execution=${executionId}, ` +
|
|
966
|
+
`estimatedCostUsd=${estimated.toFixed(4)}, maxCostUsd=${maxCostUsd.toFixed(2)}`);
|
|
967
|
+
return { kind: "return" };
|
|
968
|
+
}
|
|
939
969
|
// Worker shutdown: the runner-manager aborted the shutdown signal. NOT a
|
|
940
970
|
// user pause. Checked via the shutdown signal directly so a retry (whose
|
|
941
971
|
// periodic heartbeat is already stopped) still classifies it correctly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ export type CursorTurnEventRecorder = ReturnType<typeof createCursorEventRecorde
|
|
|
47
47
|
* `first-denial` proceed to the turn boundary; the rest are pre-boundary
|
|
48
48
|
* terminals that return or throw.
|
|
49
49
|
*/
|
|
50
|
-
export type TurnStreamReason = "completed" | "paused" | "stalled" | "first-denial" | "platform-stop";
|
|
50
|
+
export type TurnStreamReason = "completed" | "paused" | "stalled" | "first-denial" | "platform-stop" | "cost-cap";
|
|
51
51
|
/**
|
|
52
52
|
* Single owner for every flag the turn's stream produces. Before this, these
|
|
53
53
|
* eleven fields lived as scattered `let`s co-written by FOUR concurrent
|
|
@@ -74,6 +74,8 @@ export interface TurnStreamState {
|
|
|
74
74
|
denialCancelSettled: Promise<void> | undefined;
|
|
75
75
|
/** Written by: the loop (a platform STOP signal from persist). Read by: the loop + epilogue. */
|
|
76
76
|
platformStopSignaled: boolean;
|
|
77
|
+
/** Written by: onDelta (a turn-ended usage delta pushed the estimate past max_cost_usd). Read by: the loop (cancel + break) + epilogue. */
|
|
78
|
+
costCapExceeded: boolean;
|
|
77
79
|
/** Written by: the loop (a stream ERROR status event) + the retry setup (reset). Read by: error classification. */
|
|
78
80
|
streamErrorMessage: string | undefined;
|
|
79
81
|
/** Written by: the loop (each tool_call). Read by: the stall-watchdog (message enrichment). */
|
|
@@ -99,6 +101,13 @@ export interface TurnOnDeltaDeps {
|
|
|
99
101
|
readonly promptEstimatedTokens: number;
|
|
100
102
|
readonly executionId: string;
|
|
101
103
|
readonly state: TurnStreamState;
|
|
104
|
+
/**
|
|
105
|
+
* ExecutionConfig.max_cost_usd — 0/unset disables the cap. Checked by
|
|
106
|
+
* onDelta after each turn-ended usage delta lands (the only point the
|
|
107
|
+
* running estimate advances); the loop performs the actual run.cancel().
|
|
108
|
+
* See cost-guard.ts for the semantics.
|
|
109
|
+
*/
|
|
110
|
+
readonly maxCostUsd: number;
|
|
102
111
|
}
|
|
103
112
|
export interface CursorTurnStreamDeps extends TurnOnDeltaDeps {
|
|
104
113
|
readonly status: AgentExecutionStatus;
|
|
@@ -28,6 +28,7 @@ import { startStallWatchdog, StallTimeoutError, } from "../../shared/stall-watch
|
|
|
28
28
|
import { shouldPersistStreamingStatus } from "./persist-decision.js";
|
|
29
29
|
import { approvalDenials, readDenialLedger } from "./approval-state.js";
|
|
30
30
|
import { captureFileChangeProgress, } from "../../shared/filereview/progress.js";
|
|
31
|
+
import { costCapExceeded } from "./cost-guard.js";
|
|
31
32
|
export function newTurnStreamState() {
|
|
32
33
|
return {
|
|
33
34
|
pauseDetected: false,
|
|
@@ -37,6 +38,7 @@ export function newTurnStreamState() {
|
|
|
37
38
|
denialLedgerDirty: false,
|
|
38
39
|
denialCancelSettled: undefined,
|
|
39
40
|
platformStopSignaled: false,
|
|
41
|
+
costCapExceeded: false,
|
|
40
42
|
streamErrorMessage: undefined,
|
|
41
43
|
lastToolName: undefined,
|
|
42
44
|
eventCount: 0,
|
|
@@ -53,7 +55,7 @@ export function newTurnStreamState() {
|
|
|
53
55
|
* bare retry loops swallowed this — the cause of the mid-retry mislabel).
|
|
54
56
|
*/
|
|
55
57
|
export function makeCursorTurnOnDelta(deps) {
|
|
56
|
-
const { usageAccumulator, deltaEnricher, heartbeat, promptEstimatedTokens, executionId, state } = deps;
|
|
58
|
+
const { usageAccumulator, deltaEnricher, heartbeat, promptEstimatedTokens, executionId, state, maxCostUsd } = deps;
|
|
57
59
|
return ({ update }) => {
|
|
58
60
|
// Reset the stall timer on the delta channel too: a long model generation
|
|
59
61
|
// emits token deltas but few discrete stream events, so resetting only in the
|
|
@@ -61,6 +63,16 @@ export function makeCursorTurnOnDelta(deps) {
|
|
|
61
63
|
state.stallWatchdog?.recordActivity();
|
|
62
64
|
if (update.type === "turn-ended" && update.usage) {
|
|
63
65
|
usageAccumulator.addTurn(update.usage);
|
|
66
|
+
// max_cost_usd enforcement (cost-guard.ts): the running estimate only
|
|
67
|
+
// advances here, so this is the single check point. onDelta cannot reach
|
|
68
|
+
// the run — the loop reads the flag and performs the clean cancel.
|
|
69
|
+
if (!state.costCapExceeded
|
|
70
|
+
&& costCapExceeded(maxCostUsd, usageAccumulator.snapshot().estimatedCostUsd)) {
|
|
71
|
+
state.costCapExceeded = true;
|
|
72
|
+
console.warn(`ExecuteCursor cost cap exceeded: execution=${executionId}, ` +
|
|
73
|
+
`estimatedCostUsd=${usageAccumulator.snapshot().estimatedCostUsd.toFixed(4)}, ` +
|
|
74
|
+
`maxCostUsd=${maxCostUsd.toFixed(2)}`);
|
|
75
|
+
}
|
|
64
76
|
if (!state.firstTurnAttributionLogged) {
|
|
65
77
|
state.firstTurnAttributionLogged = true;
|
|
66
78
|
const sdkInputTokens = update.usage.inputTokens ?? 0;
|
|
@@ -121,6 +133,21 @@ export async function consumeCursorTurnStream(run, deps) {
|
|
|
121
133
|
}
|
|
122
134
|
if (state.stallDetected)
|
|
123
135
|
break;
|
|
136
|
+
// Cost cap (cost-guard.ts): onDelta flagged the overrun on a turn-ended
|
|
137
|
+
// usage delta; end the run through the same clean-cancel pattern as the
|
|
138
|
+
// stall watchdog and the first-denial stop. Fire-and-forget is correct
|
|
139
|
+
// here — nothing downstream waits on this turn's agent (unlike the
|
|
140
|
+
// first-denial stop, whose ledger read needs a stopped agent).
|
|
141
|
+
if (state.costCapExceeded) {
|
|
142
|
+
console.log(`ExecuteCursor stopping stream at cost cap: execution=${executionId}`);
|
|
143
|
+
if (run.supports?.("cancel")) {
|
|
144
|
+
void run.cancel().catch((cancelErr) => {
|
|
145
|
+
console.warn(`ExecuteCursor run.cancel() after cost cap failed (non-fatal): execution=${executionId}, ` +
|
|
146
|
+
`error=${cancelErr instanceof Error ? cancelErr.message : cancelErr}`);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
124
151
|
// Progress: reset the stall timer on every stream event.
|
|
125
152
|
state.stallWatchdog.recordActivity();
|
|
126
153
|
if (event.type === "tool_call" && typeof event.name === "string") {
|
|
@@ -224,26 +251,32 @@ export async function consumeCursorTurnStream(run, deps) {
|
|
|
224
251
|
}
|
|
225
252
|
}
|
|
226
253
|
catch (streamErr) {
|
|
227
|
-
// run.cancel() — from the stall watchdog
|
|
228
|
-
// the stream iterator reject as it tears down;
|
|
229
|
-
// for
|
|
230
|
-
// failure — rethrow it to the
|
|
231
|
-
|
|
254
|
+
// run.cancel() — from the stall watchdog, the first-denial stop, or the
|
|
255
|
+
// cost-cap stop — can make the stream iterator reject as it tears down;
|
|
256
|
+
// that is the expected teardown for all three, so swallow it and fall
|
|
257
|
+
// through. Anything else is a genuine stream failure — rethrow it to the
|
|
258
|
+
// activity's error handler.
|
|
259
|
+
if (!state.stallDetected && !state.firstDenialDetected && !state.costCapExceeded) {
|
|
232
260
|
throw streamErr;
|
|
261
|
+
}
|
|
233
262
|
console.warn(`ExecuteCursor stream ended via cancel: execution=${executionId}, ` +
|
|
234
|
-
`stall=${state.stallDetected}, firstDenial=${state.firstDenialDetected}`
|
|
263
|
+
`stall=${state.stallDetected}, firstDenial=${state.firstDenialDetected}, ` +
|
|
264
|
+
`costCap=${state.costCapExceeded}`);
|
|
235
265
|
}
|
|
236
266
|
finally {
|
|
237
267
|
state.stallWatchdog.stop();
|
|
238
268
|
}
|
|
239
269
|
// Report why the stream ended, in the same precedence the activity's epilogue
|
|
240
270
|
// applies: a stall (an EXECUTION_FAILED terminal) outranks everything; a
|
|
241
|
-
// platform stop and a first denial are distinct
|
|
242
|
-
// pause is the fallback for a cancellation with
|
|
271
|
+
// platform stop, a cost-cap stop, and a first denial are distinct
|
|
272
|
+
// return/proceed outcomes; a pause is the fallback for a cancellation with
|
|
273
|
+
// no other cause.
|
|
243
274
|
if (state.stallDetected)
|
|
244
275
|
return "stalled";
|
|
245
276
|
if (state.platformStopSignaled)
|
|
246
277
|
return "platform-stop";
|
|
278
|
+
if (state.costCapExceeded)
|
|
279
|
+
return "cost-cap";
|
|
247
280
|
if (state.firstDenialDetected)
|
|
248
281
|
return "first-denial";
|
|
249
282
|
if (state.pauseDetected || isCancelled())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-stream.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/turn-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AACtG,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAE5G,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,yBAAyB,GAG1B,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-stream.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/turn-stream.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/runner",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Embeddable Temporal worker for the Stigmer AI agent platform — handles agent execution, workflow orchestration, and MCP server management",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
86
86
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
87
87
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
88
|
-
"@stigmer/protos": "3.2.
|
|
88
|
+
"@stigmer/protos": "3.2.1",
|
|
89
89
|
"@temporalio/activity": "^1.11.0",
|
|
90
90
|
"@temporalio/client": "^1.11.0",
|
|
91
91
|
"@temporalio/common": "^1.11.0",
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for the Cursor harness's max_cost_usd guard (cost-guard.ts).
|
|
3
|
+
*
|
|
4
|
+
* The guard is the cursor-side analog of the native cost-cap middleware
|
|
5
|
+
* (middleware/cost-cap.ts): same proto semantics (0/unset = no cap), same
|
|
6
|
+
* inclusive boundary (`>=`), same estimation basis. These tests pin those
|
|
7
|
+
* semantics so the two harnesses cannot silently diverge.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { describe, it, expect } from "vitest";
|
|
11
|
+
import {
|
|
12
|
+
costCapExceeded,
|
|
13
|
+
formatCostLimitError,
|
|
14
|
+
COST_LIMIT_ERROR_PREFIX,
|
|
15
|
+
COST_LIMIT_USER_COPY,
|
|
16
|
+
} from "../cost-guard.js";
|
|
17
|
+
|
|
18
|
+
describe("costCapExceeded", () => {
|
|
19
|
+
it("never fires when no cap is configured (0 = unset per the proto contract)", () => {
|
|
20
|
+
expect(costCapExceeded(0, 999)).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("never fires for a negative cap", () => {
|
|
24
|
+
expect(costCapExceeded(-1, 999)).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it("does not fire below the cap", () => {
|
|
28
|
+
expect(costCapExceeded(0.5, 0.4999)).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("fires exactly at the cap (inclusive boundary, matching the native middleware)", () => {
|
|
32
|
+
expect(costCapExceeded(0.5, 0.5)).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("fires above the cap", () => {
|
|
36
|
+
expect(costCapExceeded(0.5, 0.51)).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("does not fire when nothing has been spent", () => {
|
|
40
|
+
expect(costCapExceeded(0.5, 0)).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe("cost-limit terminal copy", () => {
|
|
45
|
+
it("pins the error prefix consumers match on (no structured termination reason exists)", () => {
|
|
46
|
+
// Mirrors the TOOL_CALL_LIMIT_ERROR_PREFIX guard in
|
|
47
|
+
// streaming-terminal.test.ts: a reword silently downgrades any consumer
|
|
48
|
+
// matching this prefix to generic error copy.
|
|
49
|
+
expect(COST_LIMIT_ERROR_PREFIX).toBe("Agent reached the cost limit");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("formats the error with the prefix, both amounts, and a continuation hint", () => {
|
|
53
|
+
const err = formatCostLimitError(0.5, 0.5123);
|
|
54
|
+
expect(err.startsWith(COST_LIMIT_ERROR_PREFIX)).toBe(true);
|
|
55
|
+
expect(err).toContain("$0.5123");
|
|
56
|
+
expect(err).toContain("$0.50");
|
|
57
|
+
expect(err).toContain("Send another message to continue");
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("user copy is honest about the limit and that work is saved", () => {
|
|
61
|
+
expect(COST_LIMIT_USER_COPY).toContain("cost limit");
|
|
62
|
+
expect(COST_LIMIT_USER_COPY).toContain("saved");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -111,6 +111,7 @@ function buildDeps(overrides: Partial<CursorTurnStreamDeps> = {}): BuiltDeps {
|
|
|
111
111
|
promptEstimatedTokens: 100,
|
|
112
112
|
executionId: "exec-test",
|
|
113
113
|
state,
|
|
114
|
+
maxCostUsd: 0,
|
|
114
115
|
// CursorTurnStreamDeps
|
|
115
116
|
status,
|
|
116
117
|
accumulator,
|
|
@@ -261,6 +262,78 @@ describe("consumeCursorTurnStream", () => {
|
|
|
261
262
|
});
|
|
262
263
|
});
|
|
263
264
|
|
|
265
|
+
describe("cost-cap stop", () => {
|
|
266
|
+
it("cancels the run, stops the stream, and returns 'cost-cap' when onDelta flagged the overrun", async () => {
|
|
267
|
+
const state = newTurnStreamState();
|
|
268
|
+
state.costCapExceeded = true; // onDelta's write, simulated
|
|
269
|
+
const { deps, accumulator } = buildDeps({ state });
|
|
270
|
+
const run = mockRun([ev({ type: "assistant" }), ev({ type: "assistant" })]);
|
|
271
|
+
|
|
272
|
+
const reason = await consumeCursorTurnStream(run, deps);
|
|
273
|
+
|
|
274
|
+
expect(reason).toBe("cost-cap");
|
|
275
|
+
expect(run.cancel).toHaveBeenCalled();
|
|
276
|
+
// The break happens before the event is processed — no post-cap content.
|
|
277
|
+
expect(accumulator.processEvent).not.toHaveBeenCalled();
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
it("detects the flag mid-stream when onDelta sets it between events", async () => {
|
|
281
|
+
const state = newTurnStreamState();
|
|
282
|
+
const { deps, accumulator } = buildDeps({ state });
|
|
283
|
+
// Simulate onDelta's write landing between event 1 and event 2 — the
|
|
284
|
+
// realistic shape: a turn-ended usage delta crosses the cap while the
|
|
285
|
+
// loop is between stream events.
|
|
286
|
+
async function* gen(): AsyncIterable<SDKMessage> {
|
|
287
|
+
yield ev({ type: "assistant" });
|
|
288
|
+
state.costCapExceeded = true;
|
|
289
|
+
yield ev({ type: "assistant" });
|
|
290
|
+
}
|
|
291
|
+
const run: MockRun = {
|
|
292
|
+
stream: () => gen(),
|
|
293
|
+
supports: () => true,
|
|
294
|
+
cancel: vi.fn(async () => {}),
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
const reason = await consumeCursorTurnStream(run, deps);
|
|
298
|
+
|
|
299
|
+
expect(reason).toBe("cost-cap");
|
|
300
|
+
expect(run.cancel).toHaveBeenCalled();
|
|
301
|
+
// Event 1 was processed; event 2 hit the break before processing.
|
|
302
|
+
expect(accumulator.processEvent).toHaveBeenCalledTimes(1);
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
it("swallows the cancel-induced teardown rejection (expected, not a failure)", async () => {
|
|
306
|
+
const state = newTurnStreamState();
|
|
307
|
+
state.costCapExceeded = true;
|
|
308
|
+
const { deps } = buildDeps({ state });
|
|
309
|
+
// The break exits the for-await, which invokes the iterator's return();
|
|
310
|
+
// a cancelled SDK run can reject there. The catch must exempt cost-cap
|
|
311
|
+
// teardown exactly like stall/first-denial teardown.
|
|
312
|
+
const events = [ev({ type: "assistant" })];
|
|
313
|
+
let i = 0;
|
|
314
|
+
const run: MockRun = {
|
|
315
|
+
stream: () => ({
|
|
316
|
+
[Symbol.asyncIterator]: () => ({
|
|
317
|
+
next: async () =>
|
|
318
|
+
i < events.length
|
|
319
|
+
? { value: events[i++], done: false as const }
|
|
320
|
+
: { value: undefined, done: true as const },
|
|
321
|
+
return: async () => {
|
|
322
|
+
throw new Error("run cancelled");
|
|
323
|
+
},
|
|
324
|
+
}),
|
|
325
|
+
}),
|
|
326
|
+
supports: () => true,
|
|
327
|
+
cancel: vi.fn(async () => {}),
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
const reason = await consumeCursorTurnStream(run, deps);
|
|
331
|
+
|
|
332
|
+
expect(reason).toBe("cost-cap");
|
|
333
|
+
expect(run.cancel).toHaveBeenCalled();
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
|
|
264
337
|
it("returns 'stalled' and cancels the run when the stall watchdog fires", async () => {
|
|
265
338
|
vi.useFakeTimers();
|
|
266
339
|
// The generator yields one event, then awaits a promise resolved only by
|
|
@@ -305,6 +378,7 @@ describe("makeCursorTurnOnDelta", () => {
|
|
|
305
378
|
promptEstimatedTokens: 10,
|
|
306
379
|
executionId: "e",
|
|
307
380
|
state,
|
|
381
|
+
maxCostUsd: 0,
|
|
308
382
|
});
|
|
309
383
|
|
|
310
384
|
expect(() => onDelta({ update: { type: "text" } as never })).not.toThrow();
|
|
@@ -322,6 +396,7 @@ describe("makeCursorTurnOnDelta", () => {
|
|
|
322
396
|
promptEstimatedTokens: 10,
|
|
323
397
|
executionId: "e",
|
|
324
398
|
state,
|
|
399
|
+
maxCostUsd: 0,
|
|
325
400
|
});
|
|
326
401
|
|
|
327
402
|
expect(() => onDelta({ update: { type: "text" } as never })).toThrow("boom");
|
|
@@ -338,6 +413,7 @@ describe("makeCursorTurnOnDelta", () => {
|
|
|
338
413
|
promptEstimatedTokens: 10,
|
|
339
414
|
executionId: "e",
|
|
340
415
|
state,
|
|
416
|
+
maxCostUsd: 0,
|
|
341
417
|
});
|
|
342
418
|
|
|
343
419
|
onDelta({ update: { type: "turn-ended", usage: { inputTokens: 100 } } as never });
|
|
@@ -346,4 +422,46 @@ describe("makeCursorTurnOnDelta", () => {
|
|
|
346
422
|
expect(usageAccumulator.addTurn).toHaveBeenCalledTimes(2);
|
|
347
423
|
expect(state.firstTurnAttributionLogged).toBe(true);
|
|
348
424
|
});
|
|
425
|
+
|
|
426
|
+
it("flags costCapExceeded when a turn-ended usage delta pushes the estimate past the cap", () => {
|
|
427
|
+
const state = newTurnStreamState();
|
|
428
|
+
const usageAccumulator = {
|
|
429
|
+
...stubUsageAccumulator(),
|
|
430
|
+
snapshot: vi.fn(() => ({ estimatedCostUsd: 0.51 })),
|
|
431
|
+
};
|
|
432
|
+
const onDelta = makeCursorTurnOnDelta({
|
|
433
|
+
usageAccumulator: usageAccumulator as never,
|
|
434
|
+
deltaEnricher: stubEnricher() as never,
|
|
435
|
+
heartbeat: vi.fn(),
|
|
436
|
+
promptEstimatedTokens: 10,
|
|
437
|
+
executionId: "e",
|
|
438
|
+
state,
|
|
439
|
+
maxCostUsd: 0.5,
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
onDelta({ update: { type: "turn-ended", usage: { inputTokens: 100 } } as never });
|
|
443
|
+
|
|
444
|
+
expect(state.costCapExceeded).toBe(true);
|
|
445
|
+
});
|
|
446
|
+
|
|
447
|
+
it("never flags costCapExceeded when no cap is configured", () => {
|
|
448
|
+
const state = newTurnStreamState();
|
|
449
|
+
const usageAccumulator = {
|
|
450
|
+
...stubUsageAccumulator(),
|
|
451
|
+
snapshot: vi.fn(() => ({ estimatedCostUsd: 999 })),
|
|
452
|
+
};
|
|
453
|
+
const onDelta = makeCursorTurnOnDelta({
|
|
454
|
+
usageAccumulator: usageAccumulator as never,
|
|
455
|
+
deltaEnricher: stubEnricher() as never,
|
|
456
|
+
heartbeat: vi.fn(),
|
|
457
|
+
promptEstimatedTokens: 10,
|
|
458
|
+
executionId: "e",
|
|
459
|
+
state,
|
|
460
|
+
maxCostUsd: 0,
|
|
461
|
+
});
|
|
462
|
+
|
|
463
|
+
onDelta({ update: { type: "turn-ended", usage: { inputTokens: 100 } } as never });
|
|
464
|
+
|
|
465
|
+
expect(state.costCapExceeded).toBe(false);
|
|
466
|
+
});
|
|
349
467
|
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecutionConfig.max_cost_usd enforcement for the Cursor harness.
|
|
3
|
+
*
|
|
4
|
+
* The native harness enforces the cap in middleware (cost-cap.ts): tools are
|
|
5
|
+
* blocked at the threshold and the model gets one final tool-free round to
|
|
6
|
+
* summarize. Cursor's only control point is cancelling the in-flight run, so
|
|
7
|
+
* here the cap is a HARD stop — the shared onDelta flags the overrun when a
|
|
8
|
+
* turn-ended usage delta lands, and the stream loop ends the run through the
|
|
9
|
+
* same clean-cancel pattern the stall watchdog and first-denial stop use.
|
|
10
|
+
* Slightly harsher than native by construction; both harnesses terminate with
|
|
11
|
+
* the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
|
|
12
|
+
* conversation continues on the next message — the recursion-limit precedent
|
|
13
|
+
* in execute-deep-agent/streaming-terminal.ts).
|
|
14
|
+
*
|
|
15
|
+
* The running figure is the usage accumulator's local pricing-table estimate
|
|
16
|
+
* (authoritative billing is the BiDi proxy). That is the same estimation
|
|
17
|
+
* basis the native cost-cap middleware uses — acceptable for a safety net.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Whether the per-execution cost budget has been exhausted.
|
|
22
|
+
*
|
|
23
|
+
* `maxCostUsd <= 0` means "no cap" (the proto contract: 0/unset disables the
|
|
24
|
+
* ceiling). The boundary is inclusive: reaching the cap exactly stops the run,
|
|
25
|
+
* matching the native middleware's `runningCost >= maxCostUsd` check.
|
|
26
|
+
*/
|
|
27
|
+
export function costCapExceeded(maxCostUsd: number, estimatedCostUsd: number): boolean {
|
|
28
|
+
return maxCostUsd > 0 && estimatedCostUsd >= maxCostUsd;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
|
|
33
|
+
* pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (streaming-terminal.ts): consumers
|
|
34
|
+
* that need to distinguish "ran out of cost budget" from other TERMINATED
|
|
35
|
+
* causes can match on this prefix, because AgentExecutionStatus carries no
|
|
36
|
+
* structured termination reason. Do not reword without checking consumers.
|
|
37
|
+
*/
|
|
38
|
+
export const COST_LIMIT_ERROR_PREFIX = "Agent reached the cost limit";
|
|
39
|
+
|
|
40
|
+
/** The terminal `status.error` for a cost-cap stop. */
|
|
41
|
+
export function formatCostLimitError(maxCostUsd: number, estimatedCostUsd: number): string {
|
|
42
|
+
return (
|
|
43
|
+
`${COST_LIMIT_ERROR_PREFIX} for this message ` +
|
|
44
|
+
`(~$${estimatedCostUsd.toFixed(4)} of the $${maxCostUsd.toFixed(2)} budget). ` +
|
|
45
|
+
`Send another message to continue.`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* User-facing system message for a cost-cap stop. Parallel to the
|
|
51
|
+
* recursion-limit copy: honest about the limit, clear that nothing is lost.
|
|
52
|
+
*/
|
|
53
|
+
export const COST_LIMIT_USER_COPY =
|
|
54
|
+
"The agent reached the cost limit for this message. " +
|
|
55
|
+
"Work completed so far has been saved. " +
|
|
56
|
+
"Send another message to continue where the agent left off.";
|
|
@@ -90,6 +90,7 @@ import {
|
|
|
90
90
|
type CursorTurnStreamDeps,
|
|
91
91
|
type TurnOnDeltaDeps,
|
|
92
92
|
} from "./turn-stream.js";
|
|
93
|
+
import { formatCostLimitError, COST_LIMIT_USER_COPY } from "./cost-guard.js";
|
|
93
94
|
import {
|
|
94
95
|
captureFileChangeProgress,
|
|
95
96
|
newProgressCaptureState,
|
|
@@ -950,6 +951,7 @@ async function executeCursorInner(
|
|
|
950
951
|
// The shared onDelta only needs the usage/enricher/heartbeat/state subset,
|
|
951
952
|
// and it is wired at SEND time — before the accumulator exists — so it takes
|
|
952
953
|
// the narrow deps. The primary send and both retry sends reuse this object.
|
|
954
|
+
const maxCostUsd = spec.executionConfig?.maxCostUsd ?? 0;
|
|
953
955
|
const onDeltaDeps: TurnOnDeltaDeps = {
|
|
954
956
|
usageAccumulator,
|
|
955
957
|
deltaEnricher,
|
|
@@ -957,6 +959,7 @@ async function executeCursorInner(
|
|
|
957
959
|
promptEstimatedTokens,
|
|
958
960
|
executionId,
|
|
959
961
|
state: turnState,
|
|
962
|
+
maxCostUsd,
|
|
960
963
|
};
|
|
961
964
|
|
|
962
965
|
// Periodic heartbeat keeps Temporal informed during silent SDK operations
|
|
@@ -1067,6 +1070,7 @@ async function executeCursorInner(
|
|
|
1067
1070
|
turnState.pauseDetected ||
|
|
1068
1071
|
workerShutdownDetected ||
|
|
1069
1072
|
turnState.stallDetected ||
|
|
1073
|
+
turnState.costCapExceeded ||
|
|
1070
1074
|
Context.current().cancellationSignal.aborted
|
|
1071
1075
|
) {
|
|
1072
1076
|
accumulator.cancelInProgressSubAgents();
|
|
@@ -1117,6 +1121,32 @@ async function executeCursorInner(
|
|
|
1117
1121
|
return { kind: "return" };
|
|
1118
1122
|
}
|
|
1119
1123
|
|
|
1124
|
+
// Cost cap (cost-guard.ts): onDelta flagged the overrun and the loop
|
|
1125
|
+
// cancelled the run. EXECUTION_TERMINATED, not FAILED — the platform
|
|
1126
|
+
// deliberately stopped the run, work is checkpointed, and the
|
|
1127
|
+
// conversation continues on the next message (the recursion-limit
|
|
1128
|
+
// precedent in execute-deep-agent/streaming-terminal.ts). RETURN (not
|
|
1129
|
+
// throw): a Temporal retry would re-run the identical prompt and burn
|
|
1130
|
+
// the same budget again.
|
|
1131
|
+
if (turnState.costCapExceeded) {
|
|
1132
|
+
const estimated = usageAccumulator.snapshot().estimatedCostUsd;
|
|
1133
|
+
status.phase = ExecutionPhase.EXECUTION_TERMINATED;
|
|
1134
|
+
status.error = formatCostLimitError(maxCostUsd, estimated);
|
|
1135
|
+
status.completedAt = utcTimestamp();
|
|
1136
|
+
status.messages.push(create(AgentMessageSchema, {
|
|
1137
|
+
type: MessageType.MESSAGE_SYSTEM,
|
|
1138
|
+
content: COST_LIMIT_USER_COPY,
|
|
1139
|
+
timestamp: utcTimestamp(),
|
|
1140
|
+
}));
|
|
1141
|
+
await persist(status);
|
|
1142
|
+
try { resolution.agent.close(); } catch { /* best effort */ }
|
|
1143
|
+
console.warn(
|
|
1144
|
+
`ExecuteCursor terminated (cost cap): execution=${executionId}, ` +
|
|
1145
|
+
`estimatedCostUsd=${estimated.toFixed(4)}, maxCostUsd=${maxCostUsd.toFixed(2)}`,
|
|
1146
|
+
);
|
|
1147
|
+
return { kind: "return" };
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1120
1150
|
// Worker shutdown: the runner-manager aborted the shutdown signal. NOT a
|
|
1121
1151
|
// user pause. Checked via the shutdown signal directly so a retry (whose
|
|
1122
1152
|
// periodic heartbeat is already stopped) still classifies it correctly.
|
|
@@ -45,6 +45,7 @@ import type { TodoTracker } from "./todo-tracker.js";
|
|
|
45
45
|
import type { StreamingUpdateScheduler } from "../../shared/streaming-scheduler.js";
|
|
46
46
|
import type { UsageAccumulator } from "./usage-accumulator.js";
|
|
47
47
|
import type { createCursorEventRecorder } from "./cursor-event-recorder.js";
|
|
48
|
+
import { costCapExceeded } from "./cost-guard.js";
|
|
48
49
|
|
|
49
50
|
/**
|
|
50
51
|
* The subset of the Cursor SDK `Run` the stream phase consumes. Kept structural
|
|
@@ -69,7 +70,8 @@ export type TurnStreamReason =
|
|
|
69
70
|
| "paused"
|
|
70
71
|
| "stalled"
|
|
71
72
|
| "first-denial"
|
|
72
|
-
| "platform-stop"
|
|
73
|
+
| "platform-stop"
|
|
74
|
+
| "cost-cap";
|
|
73
75
|
|
|
74
76
|
/**
|
|
75
77
|
* Single owner for every flag the turn's stream produces. Before this, these
|
|
@@ -97,6 +99,8 @@ export interface TurnStreamState {
|
|
|
97
99
|
denialCancelSettled: Promise<void> | undefined;
|
|
98
100
|
/** Written by: the loop (a platform STOP signal from persist). Read by: the loop + epilogue. */
|
|
99
101
|
platformStopSignaled: boolean;
|
|
102
|
+
/** Written by: onDelta (a turn-ended usage delta pushed the estimate past max_cost_usd). Read by: the loop (cancel + break) + epilogue. */
|
|
103
|
+
costCapExceeded: boolean;
|
|
100
104
|
/** Written by: the loop (a stream ERROR status event) + the retry setup (reset). Read by: error classification. */
|
|
101
105
|
streamErrorMessage: string | undefined;
|
|
102
106
|
/** Written by: the loop (each tool_call). Read by: the stall-watchdog (message enrichment). */
|
|
@@ -118,6 +122,7 @@ export function newTurnStreamState(): TurnStreamState {
|
|
|
118
122
|
denialLedgerDirty: false,
|
|
119
123
|
denialCancelSettled: undefined,
|
|
120
124
|
platformStopSignaled: false,
|
|
125
|
+
costCapExceeded: false,
|
|
121
126
|
streamErrorMessage: undefined,
|
|
122
127
|
lastToolName: undefined,
|
|
123
128
|
eventCount: 0,
|
|
@@ -139,6 +144,13 @@ export interface TurnOnDeltaDeps {
|
|
|
139
144
|
readonly promptEstimatedTokens: number;
|
|
140
145
|
readonly executionId: string;
|
|
141
146
|
readonly state: TurnStreamState;
|
|
147
|
+
/**
|
|
148
|
+
* ExecutionConfig.max_cost_usd — 0/unset disables the cap. Checked by
|
|
149
|
+
* onDelta after each turn-ended usage delta lands (the only point the
|
|
150
|
+
* running estimate advances); the loop performs the actual run.cancel().
|
|
151
|
+
* See cost-guard.ts for the semantics.
|
|
152
|
+
*/
|
|
153
|
+
readonly maxCostUsd: number;
|
|
142
154
|
}
|
|
143
155
|
|
|
144
156
|
export interface CursorTurnStreamDeps extends TurnOnDeltaDeps {
|
|
@@ -170,7 +182,7 @@ export interface CursorTurnStreamDeps extends TurnOnDeltaDeps {
|
|
|
170
182
|
export function makeCursorTurnOnDelta(
|
|
171
183
|
deps: TurnOnDeltaDeps,
|
|
172
184
|
): (event: { update: InteractionUpdate }) => void {
|
|
173
|
-
const { usageAccumulator, deltaEnricher, heartbeat, promptEstimatedTokens, executionId, state } =
|
|
185
|
+
const { usageAccumulator, deltaEnricher, heartbeat, promptEstimatedTokens, executionId, state, maxCostUsd } =
|
|
174
186
|
deps;
|
|
175
187
|
return ({ update }) => {
|
|
176
188
|
// Reset the stall timer on the delta channel too: a long model generation
|
|
@@ -180,6 +192,19 @@ export function makeCursorTurnOnDelta(
|
|
|
180
192
|
if (update.type === "turn-ended" && update.usage) {
|
|
181
193
|
usageAccumulator.addTurn(update.usage);
|
|
182
194
|
|
|
195
|
+
// max_cost_usd enforcement (cost-guard.ts): the running estimate only
|
|
196
|
+
// advances here, so this is the single check point. onDelta cannot reach
|
|
197
|
+
// the run — the loop reads the flag and performs the clean cancel.
|
|
198
|
+
if (!state.costCapExceeded
|
|
199
|
+
&& costCapExceeded(maxCostUsd, usageAccumulator.snapshot().estimatedCostUsd)) {
|
|
200
|
+
state.costCapExceeded = true;
|
|
201
|
+
console.warn(
|
|
202
|
+
`ExecuteCursor cost cap exceeded: execution=${executionId}, ` +
|
|
203
|
+
`estimatedCostUsd=${usageAccumulator.snapshot().estimatedCostUsd.toFixed(4)}, ` +
|
|
204
|
+
`maxCostUsd=${maxCostUsd.toFixed(2)}`,
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
|
|
183
208
|
if (!state.firstTurnAttributionLogged) {
|
|
184
209
|
state.firstTurnAttributionLogged = true;
|
|
185
210
|
const sdkInputTokens = update.usage.inputTokens ?? 0;
|
|
@@ -272,6 +297,26 @@ export async function consumeCursorTurnStream(
|
|
|
272
297
|
}
|
|
273
298
|
if (state.stallDetected) break;
|
|
274
299
|
|
|
300
|
+
// Cost cap (cost-guard.ts): onDelta flagged the overrun on a turn-ended
|
|
301
|
+
// usage delta; end the run through the same clean-cancel pattern as the
|
|
302
|
+
// stall watchdog and the first-denial stop. Fire-and-forget is correct
|
|
303
|
+
// here — nothing downstream waits on this turn's agent (unlike the
|
|
304
|
+
// first-denial stop, whose ledger read needs a stopped agent).
|
|
305
|
+
if (state.costCapExceeded) {
|
|
306
|
+
console.log(
|
|
307
|
+
`ExecuteCursor stopping stream at cost cap: execution=${executionId}`,
|
|
308
|
+
);
|
|
309
|
+
if (run.supports?.("cancel")) {
|
|
310
|
+
void run.cancel().catch((cancelErr) => {
|
|
311
|
+
console.warn(
|
|
312
|
+
`ExecuteCursor run.cancel() after cost cap failed (non-fatal): execution=${executionId}, ` +
|
|
313
|
+
`error=${cancelErr instanceof Error ? cancelErr.message : cancelErr}`,
|
|
314
|
+
);
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
|
|
275
320
|
// Progress: reset the stall timer on every stream event.
|
|
276
321
|
state.stallWatchdog.recordActivity();
|
|
277
322
|
if (event.type === "tool_call" && typeof event.name === "string") {
|
|
@@ -397,14 +442,18 @@ export async function consumeCursorTurnStream(
|
|
|
397
442
|
}
|
|
398
443
|
}
|
|
399
444
|
} catch (streamErr) {
|
|
400
|
-
// run.cancel() — from the stall watchdog
|
|
401
|
-
// the stream iterator reject as it tears down;
|
|
402
|
-
// for
|
|
403
|
-
// failure — rethrow it to the
|
|
404
|
-
|
|
445
|
+
// run.cancel() — from the stall watchdog, the first-denial stop, or the
|
|
446
|
+
// cost-cap stop — can make the stream iterator reject as it tears down;
|
|
447
|
+
// that is the expected teardown for all three, so swallow it and fall
|
|
448
|
+
// through. Anything else is a genuine stream failure — rethrow it to the
|
|
449
|
+
// activity's error handler.
|
|
450
|
+
if (!state.stallDetected && !state.firstDenialDetected && !state.costCapExceeded) {
|
|
451
|
+
throw streamErr;
|
|
452
|
+
}
|
|
405
453
|
console.warn(
|
|
406
454
|
`ExecuteCursor stream ended via cancel: execution=${executionId}, ` +
|
|
407
|
-
`stall=${state.stallDetected}, firstDenial=${state.firstDenialDetected}
|
|
455
|
+
`stall=${state.stallDetected}, firstDenial=${state.firstDenialDetected}, ` +
|
|
456
|
+
`costCap=${state.costCapExceeded}`,
|
|
408
457
|
);
|
|
409
458
|
} finally {
|
|
410
459
|
state.stallWatchdog.stop();
|
|
@@ -412,10 +461,12 @@ export async function consumeCursorTurnStream(
|
|
|
412
461
|
|
|
413
462
|
// Report why the stream ended, in the same precedence the activity's epilogue
|
|
414
463
|
// applies: a stall (an EXECUTION_FAILED terminal) outranks everything; a
|
|
415
|
-
// platform stop and a first denial are distinct
|
|
416
|
-
// pause is the fallback for a cancellation with
|
|
464
|
+
// platform stop, a cost-cap stop, and a first denial are distinct
|
|
465
|
+
// return/proceed outcomes; a pause is the fallback for a cancellation with
|
|
466
|
+
// no other cause.
|
|
417
467
|
if (state.stallDetected) return "stalled";
|
|
418
468
|
if (state.platformStopSignaled) return "platform-stop";
|
|
469
|
+
if (state.costCapExceeded) return "cost-cap";
|
|
419
470
|
if (state.firstDenialDetected) return "first-denial";
|
|
420
471
|
if (state.pauseDetected || isCancelled()) return "paused";
|
|
421
472
|
return "completed";
|