@calliopelabs/cli 3.7.0 → 3.8.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/README.md +31 -0
- package/dist/acp.d.ts.map +1 -1
- package/dist/acp.js +2 -0
- package/dist/acp.js.map +1 -1
- package/dist/approvals/request.d.ts.map +1 -1
- package/dist/approvals/request.js +10 -0
- package/dist/approvals/request.js.map +1 -1
- package/dist/auth/chatgpt/fallback.d.ts +31 -0
- package/dist/auth/chatgpt/fallback.d.ts.map +1 -0
- package/dist/auth/chatgpt/fallback.js +111 -0
- package/dist/auth/chatgpt/fallback.js.map +1 -0
- package/dist/auth/chatgpt/index.d.ts +6 -0
- package/dist/auth/chatgpt/index.d.ts.map +1 -0
- package/dist/auth/chatgpt/index.js +6 -0
- package/dist/auth/chatgpt/index.js.map +1 -0
- package/dist/auth/chatgpt/login.d.ts +4 -0
- package/dist/auth/chatgpt/login.d.ts.map +1 -0
- package/dist/auth/chatgpt/login.js +82 -0
- package/dist/auth/chatgpt/login.js.map +1 -0
- package/dist/auth/chatgpt/protocol.d.ts +24 -0
- package/dist/auth/chatgpt/protocol.d.ts.map +1 -0
- package/dist/auth/chatgpt/protocol.js +71 -0
- package/dist/auth/chatgpt/protocol.js.map +1 -0
- package/dist/auth/chatgpt/session.d.ts +24 -0
- package/dist/auth/chatgpt/session.d.ts.map +1 -0
- package/dist/auth/chatgpt/session.js +101 -0
- package/dist/auth/chatgpt/session.js.map +1 -0
- package/dist/auth/chatgpt/store.d.ts +28 -0
- package/dist/auth/chatgpt/store.d.ts.map +1 -0
- package/dist/auth/chatgpt/store.js +75 -0
- package/dist/auth/chatgpt/store.js.map +1 -0
- package/dist/auth/cli.d.ts +2 -0
- package/dist/auth/cli.d.ts.map +1 -0
- package/dist/auth/cli.js +38 -0
- package/dist/auth/cli.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +50 -3
- package/dist/bin.js.map +1 -1
- package/dist/brain/exchange.d.ts.map +1 -1
- package/dist/brain/exchange.js +3 -1
- package/dist/brain/exchange.js.map +1 -1
- package/dist/brain/kg-export.d.ts +1 -1
- package/dist/brain/kg.d.ts +1 -1
- package/dist/brain/kg.d.ts.map +1 -1
- package/dist/brain/kg.js +3 -1
- package/dist/brain/kg.js.map +1 -1
- package/dist/build-metadata.json +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -2
- package/dist/config.js.map +1 -1
- package/dist/delegation/claude.d.ts +28 -0
- package/dist/delegation/claude.d.ts.map +1 -0
- package/dist/delegation/claude.js +107 -0
- package/dist/delegation/claude.js.map +1 -0
- package/dist/delegation/index.d.ts +2 -0
- package/dist/delegation/index.d.ts.map +1 -0
- package/dist/delegation/index.js +2 -0
- package/dist/delegation/index.js.map +1 -0
- package/dist/execution/attribution.d.ts +3 -0
- package/dist/execution/attribution.d.ts.map +1 -1
- package/dist/execution/attribution.js.map +1 -1
- package/dist/execution/authority.d.ts +18 -4
- package/dist/execution/authority.d.ts.map +1 -1
- package/dist/execution/authority.js +66 -12
- package/dist/execution/authority.js.map +1 -1
- package/dist/execution/child-grants.js +4 -1
- package/dist/execution/child-grants.js.map +1 -1
- package/dist/execution/delegated.d.ts.map +1 -1
- package/dist/execution/delegated.js +5 -2
- package/dist/execution/delegated.js.map +1 -1
- package/dist/execution/guard.d.ts.map +1 -1
- package/dist/execution/guard.js +7 -3
- package/dist/execution/guard.js.map +1 -1
- package/dist/execution/ledger-cli.d.ts.map +1 -1
- package/dist/execution/ledger-cli.js +9 -7
- package/dist/execution/ledger-cli.js.map +1 -1
- package/dist/execution/ledger-protocol.d.ts +1 -1
- package/dist/execution/ledger-protocol.d.ts.map +1 -1
- package/dist/execution/ledger-protocol.js +1 -1
- package/dist/execution/ledger-protocol.js.map +1 -1
- package/dist/execution/ledger-server.d.ts +11 -1
- package/dist/execution/ledger-server.d.ts.map +1 -1
- package/dist/execution/ledger-server.js +65 -4
- package/dist/execution/ledger-server.js.map +1 -1
- package/dist/execution/ledger.d.ts +2 -0
- package/dist/execution/ledger.d.ts.map +1 -1
- package/dist/execution/ledger.js +46 -12
- package/dist/execution/ledger.js.map +1 -1
- package/dist/execution/parent-budget.d.ts +25 -3
- package/dist/execution/parent-budget.d.ts.map +1 -1
- package/dist/execution/parent-budget.js +126 -4
- package/dist/execution/parent-budget.js.map +1 -1
- package/dist/execution/parent-uncertainty.d.ts +3 -0
- package/dist/execution/parent-uncertainty.d.ts.map +1 -0
- package/dist/execution/parent-uncertainty.js +6 -0
- package/dist/execution/parent-uncertainty.js.map +1 -0
- package/dist/execution/portable-identity.d.ts +15 -0
- package/dist/execution/portable-identity.d.ts.map +1 -0
- package/dist/execution/portable-identity.js +80 -0
- package/dist/execution/portable-identity.js.map +1 -0
- package/dist/execution/quote.d.ts +1 -1
- package/dist/execution/quote.d.ts.map +1 -1
- package/dist/execution/quote.js +4 -2
- package/dist/execution/quote.js.map +1 -1
- package/dist/execution/remote-checkpoint.d.ts.map +1 -1
- package/dist/execution/remote-checkpoint.js +23 -16
- package/dist/execution/remote-checkpoint.js.map +1 -1
- package/dist/execution/remote-ledger.d.ts +20 -0
- package/dist/execution/remote-ledger.d.ts.map +1 -1
- package/dist/execution/remote-ledger.js +93 -14
- package/dist/execution/remote-ledger.js.map +1 -1
- package/dist/execution/types.d.ts +30 -2
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/execution/types.js.map +1 -1
- package/dist/headless.d.ts +27 -1
- package/dist/headless.d.ts.map +1 -1
- package/dist/headless.js +107 -7
- package/dist/headless.js.map +1 -1
- package/dist/health/target.d.ts +11 -0
- package/dist/health/target.d.ts.map +1 -1
- package/dist/health/target.js +48 -21
- package/dist/health/target.js.map +1 -1
- package/dist/improvement/cli.d.ts +1 -1
- package/dist/improvement/cli.d.ts.map +1 -1
- package/dist/improvement/cli.js +4 -4
- package/dist/improvement/cli.js.map +1 -1
- package/dist/improvement/host-capabilities.d.ts +134 -1
- package/dist/improvement/host-capabilities.d.ts.map +1 -1
- package/dist/improvement/host-capabilities.js +8 -1
- package/dist/improvement/host-capabilities.js.map +1 -1
- package/dist/improvement/index.d.ts +2 -0
- package/dist/improvement/index.d.ts.map +1 -1
- package/dist/improvement/index.js +2 -0
- package/dist/improvement/index.js.map +1 -1
- package/dist/improvement/task-feedback-contract.d.ts +41 -0
- package/dist/improvement/task-feedback-contract.d.ts.map +1 -0
- package/dist/improvement/task-feedback-contract.js +83 -0
- package/dist/improvement/task-feedback-contract.js.map +1 -0
- package/dist/improvement/task-feedback.d.ts +149 -0
- package/dist/improvement/task-feedback.d.ts.map +1 -0
- package/dist/improvement/task-feedback.js +117 -0
- package/dist/improvement/task-feedback.js.map +1 -0
- package/dist/improvement/task-outcomes.d.ts +2 -2
- package/dist/improvement/task-outcomes.d.ts.map +1 -1
- package/dist/improvement/task-outcomes.js +2 -3
- package/dist/improvement/task-outcomes.js.map +1 -1
- package/dist/model-detection.d.ts +0 -5
- package/dist/model-detection.d.ts.map +1 -1
- package/dist/model-detection.js +5 -5
- package/dist/model-detection.js.map +1 -1
- package/dist/orchestration/coordinator-types.d.ts +15 -2
- package/dist/orchestration/coordinator-types.d.ts.map +1 -1
- package/dist/orchestration/coordinator.d.ts.map +1 -1
- package/dist/orchestration/coordinator.js +18 -3
- package/dist/orchestration/coordinator.js.map +1 -1
- package/dist/orchestration/execution-journal.d.ts.map +1 -1
- package/dist/orchestration/execution-journal.js +51 -6
- package/dist/orchestration/execution-journal.js.map +1 -1
- package/dist/orchestration/execution-store.js +1 -1
- package/dist/orchestration/execution-store.js.map +1 -1
- package/dist/orchestration/execution.d.ts +3 -1
- package/dist/orchestration/execution.d.ts.map +1 -1
- package/dist/orchestration/execution.js +1 -1
- package/dist/orchestration/execution.js.map +1 -1
- package/dist/orchestration/index.d.ts +1 -0
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +1 -0
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/remote-task-capacity.d.ts +31 -0
- package/dist/orchestration/remote-task-capacity.d.ts.map +1 -0
- package/dist/orchestration/remote-task-capacity.js +83 -0
- package/dist/orchestration/remote-task-capacity.js.map +1 -0
- package/dist/orchestration/reviewed-ledger.d.ts +58 -0
- package/dist/orchestration/reviewed-ledger.d.ts.map +1 -1
- package/dist/orchestration/reviewed-ledger.js +66 -10
- package/dist/orchestration/reviewed-ledger.js.map +1 -1
- package/dist/orchestration/routing.d.ts +2 -0
- package/dist/orchestration/routing.d.ts.map +1 -1
- package/dist/orchestration/routing.js +10 -1
- package/dist/orchestration/routing.js.map +1 -1
- package/dist/orchestration/task-configuration.d.ts +8 -0
- package/dist/orchestration/task-configuration.d.ts.map +1 -0
- package/dist/orchestration/task-configuration.js +23 -0
- package/dist/orchestration/task-configuration.js.map +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +17 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +16 -1
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/chatgpt.d.ts +11 -0
- package/dist/providers/chatgpt.d.ts.map +1 -0
- package/dist/providers/chatgpt.js +156 -0
- package/dist/providers/chatgpt.js.map +1 -0
- package/dist/providers/compat.d.ts.map +1 -1
- package/dist/providers/compat.js +33 -16
- package/dist/providers/compat.js.map +1 -1
- package/dist/providers/index.d.ts +0 -5
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +10 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +24 -11
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +5 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/routing/select.d.ts.map +1 -1
- package/dist/routing/select.js +20 -1
- package/dist/routing/select.js.map +1 -1
- package/dist/runlog.d.ts +3 -1
- package/dist/runlog.d.ts.map +1 -1
- package/dist/runlog.js.map +1 -1
- package/dist/runtime/permissions.d.ts.map +1 -1
- package/dist/runtime/permissions.js +1 -0
- package/dist/runtime/permissions.js.map +1 -1
- package/dist/runtime/turn.d.ts +12 -1
- package/dist/runtime/turn.d.ts.map +1 -1
- package/dist/runtime/turn.js +109 -19
- package/dist/runtime/turn.js.map +1 -1
- package/dist/sessions/execution-binding.d.ts +8 -3
- package/dist/sessions/execution-binding.d.ts.map +1 -1
- package/dist/sessions/execution-binding.js +13 -3
- package/dist/sessions/execution-binding.js.map +1 -1
- package/dist/supervision/runtime.d.ts.map +1 -1
- package/dist/supervision/runtime.js +10 -3
- package/dist/supervision/runtime.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/agent.d.ts.map +1 -1
- package/dist/ui/agent.js +4 -0
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/components.d.ts.map +1 -1
- package/dist/ui/components.js +3 -5
- package/dist/ui/components.js.map +1 -1
- package/dist/ui/frame.js +3 -3
- package/dist/ui/frame.js.map +1 -1
- package/dist/ui/modals/tool-output.d.ts.map +1 -1
- package/dist/ui/modals/tool-output.js +5 -6
- package/dist/ui/modals/tool-output.js.map +1 -1
- package/dist/ui/state/use-terminal-width.d.ts.map +1 -1
- package/dist/ui/state/use-terminal-width.js +2 -13
- package/dist/ui/state/use-terminal-width.js.map +1 -1
- package/docs/chatgpt-plan.md +109 -0
- package/docs/claude-plan.md +58 -0
- package/docs/delegation-ledger.md +180 -5
- package/docs/improvement-cycles.md +5 -0
- package/docs/releases/3.8.0.md +65 -0
- package/docs/releases/3.8.1.md +40 -0
- package/docs/reviewed-provider-metadata.md +84 -0
- package/docs/task-feedback.md +77 -0
- package/package.json +20 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ledger.d.ts","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote-ledger.d.ts","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { validateRemoteTaskAdmission } from '../orchestration/remote-task-capacity.js';
|
|
1
2
|
/** A child's view of a parent ledger served over delegation-ledger/v1 (#415).
|
|
2
3
|
* It keeps a verified local replay so ExecutionGuard reads stay synchronous; the server decides
|
|
3
4
|
* every reserve/settle. A server history that is not an append-only extension of what this child
|
|
4
5
|
* already saw is refused, so a reset or rollback can never return spent capacity. */
|
|
5
6
|
import { cancellableDelay, throwIfCancelled } from '../cancellation.js';
|
|
6
7
|
import { canonicalJson, projectIdentity } from '../approvals/index.js';
|
|
7
|
-
import { checkExecutionIdentity, shape, validateExecutionProject } from './authority.js';
|
|
8
|
+
import { checkExecutionIdentity, integer, shape, validateExecutionProject } from './authority.js';
|
|
9
|
+
import { validateRequestAttribution } from './attribution.js';
|
|
8
10
|
import { executionProjectForAccount } from './child-grants.js';
|
|
9
11
|
import { replayReservations } from './ledger.js';
|
|
10
12
|
import { ExecutionLimitError } from './types.js';
|
|
@@ -14,10 +16,15 @@ const CODES = new Set(['invalid', 'authority', 'budget', 'deadline', 'unavailabl
|
|
|
14
16
|
export class RemoteReservationLedger {
|
|
15
17
|
options;
|
|
16
18
|
root;
|
|
19
|
+
operations = [];
|
|
17
20
|
journal;
|
|
18
21
|
checkpoint;
|
|
19
22
|
confirmedRejections = new WeakSet();
|
|
20
23
|
binding;
|
|
24
|
+
executionOperation = 'execution';
|
|
25
|
+
taskBinding;
|
|
26
|
+
get supportsTaskCapacity() { return this.operations.includes('task-admit') && this.operations.includes('task-release'); }
|
|
27
|
+
get taskExecutionBinding() { return this.taskBinding ? structuredClone(this.taskBinding) : undefined; }
|
|
21
28
|
constructor(options) {
|
|
22
29
|
this.options = options;
|
|
23
30
|
this.checkpoint = new RemoteLedgerCheckpoint(options.root);
|
|
@@ -30,13 +37,25 @@ export class RemoteReservationLedger {
|
|
|
30
37
|
const ledger = new RemoteReservationLedger(options), hello = await ledger.call('hello', {});
|
|
31
38
|
if (hello.protocol !== LEDGER_PROTOCOL)
|
|
32
39
|
throw new ExecutionLimitError('unavailable', `Parent ledger speaks ${String(hello.protocol)}, not ${LEDGER_PROTOCOL}.`);
|
|
40
|
+
ledger.operations = Array.isArray(hello.operations) ? hello.operations : [];
|
|
41
|
+
if (options.reviewed && canonicalJson(hello.reviewed ?? null) !== canonicalJson(options.reviewed))
|
|
42
|
+
throw new ExecutionLimitError('authority', 'Parent reviewed authority changed.');
|
|
43
|
+
if (options.execution && options.reconciliation)
|
|
44
|
+
throw new ExecutionLimitError('invalid', 'Choose execution or reconciliation.');
|
|
33
45
|
if (options.execution) {
|
|
34
|
-
if (!Array.isArray(hello.operations) || !hello.operations.
|
|
46
|
+
if (!Array.isArray(hello.operations) || !hello.operations.some(op => op === 'execution' || op === 'task-execution'))
|
|
35
47
|
throw new ExecutionLimitError('unavailable', 'Parent ledger lacks workspace-bound execution; upgrade the parent CLI before starting this child.');
|
|
48
|
+
ledger.executionOperation = hello.operations.includes('task-execution') ? 'task-execution' : 'execution';
|
|
36
49
|
await ledger.refreshAuthority(options.execution.cwd, options.execution.agentId);
|
|
37
50
|
}
|
|
38
|
-
else
|
|
39
|
-
ledger.accept(await ledger.call('journal', {}));
|
|
51
|
+
else {
|
|
52
|
+
await ledger.accept(await ledger.call('journal', {}));
|
|
53
|
+
if (options.reconciliation) {
|
|
54
|
+
const { cwd, agentId } = options.reconciliation, { project, projectKey } = projectIdentity(cwd);
|
|
55
|
+
ledger.binding = { agentId, project: { root: project, key: projectKey } };
|
|
56
|
+
ledger.executionProject(cwd, agentId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
40
59
|
return ledger;
|
|
41
60
|
}
|
|
42
61
|
read(cwd) {
|
|
@@ -55,22 +74,66 @@ export class RemoteReservationLedger {
|
|
|
55
74
|
}
|
|
56
75
|
/** A journal read is available for reconciliation even when its owner has stopped. */
|
|
57
76
|
async refreshAuthority(cwd, agentId, signal) {
|
|
77
|
+
if (this.options.reconciliation)
|
|
78
|
+
throw new ExecutionLimitError('authority', 'Reconciliation does not authorize execution.');
|
|
58
79
|
const { project, projectKey } = projectIdentity(cwd), expected = { agentId, project: { root: project, key: projectKey } };
|
|
59
80
|
if (this.binding && canonicalJson(this.binding) !== canonicalJson(expected))
|
|
60
81
|
throw new ExecutionLimitError('authority', 'Execution binding cannot be replaced.');
|
|
61
|
-
const floor = this.journal, response = await this.call(
|
|
62
|
-
|
|
63
|
-
|
|
82
|
+
const floor = this.journal, response = await this.call(this.executionOperation, expected, signal);
|
|
83
|
+
const isTask = this.executionOperation === 'task-execution';
|
|
84
|
+
shape(response.binding, isTask ? ['version', 'agentId', 'project', 'attribution', 'maxOutputTokens'] : ['version', 'agentId', 'project']);
|
|
85
|
+
if (response.binding.version !== (isTask ? 2 : 1) || response.binding.agentId !== expected.agentId || canonicalJson(validateExecutionProject(response.binding.project)) !== canonicalJson(expected.project))
|
|
64
86
|
throw new ExecutionLimitError('authority', 'Parent returned a different execution binding.');
|
|
65
|
-
|
|
87
|
+
let taskBinding;
|
|
88
|
+
if (isTask) {
|
|
89
|
+
const attribution = validateRequestAttribution(response.binding.attribution);
|
|
90
|
+
if (attribution.kind !== 'task')
|
|
91
|
+
throw new ExecutionLimitError('authority', 'Parent returned a non-task execution binding.');
|
|
92
|
+
integer(response.binding.maxOutputTokens, 1, 100000000);
|
|
93
|
+
taskBinding = { attribution, maxOutputTokens: response.binding.maxOutputTokens };
|
|
94
|
+
if (this.taskBinding && canonicalJson(this.taskBinding) !== canonicalJson(taskBinding))
|
|
95
|
+
throw new ExecutionLimitError('authority', 'Native task execution binding cannot be replaced.');
|
|
96
|
+
}
|
|
97
|
+
await this.accept(response, floor, signal);
|
|
66
98
|
this.binding = expected;
|
|
67
99
|
this.executionProject(cwd, agentId);
|
|
100
|
+
this.taskBinding = taskBinding;
|
|
101
|
+
}
|
|
102
|
+
async admitTask(value, cwd, signal) {
|
|
103
|
+
if (this.options.reconciliation || !this.operations.includes('task-admit'))
|
|
104
|
+
throw new ExecutionLimitError('authority', 'Parent cannot admit remote execution.');
|
|
105
|
+
const admission = validateRemoteTaskAdmission(value), { project, projectKey } = projectIdentity(cwd);
|
|
106
|
+
while (true) {
|
|
107
|
+
throwIfCancelled(signal);
|
|
108
|
+
if (Date.now() >= admission.deadline)
|
|
109
|
+
throw new ExecutionLimitError('deadline', 'Remote task admission deadline expired.');
|
|
110
|
+
try {
|
|
111
|
+
const result = await this.call('task-admit', { admission, project: { root: project, key: projectKey } }, signal);
|
|
112
|
+
if (result.admissionId !== admission.id)
|
|
113
|
+
throw new ExecutionLimitError('authority', 'Parent returned another remote admission.');
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
if (!(error instanceof ExecutionLimitError) || !['limit', 'locked', 'unavailable'].includes(error.code))
|
|
118
|
+
throw error;
|
|
119
|
+
await cancellableDelay(100, signal);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async releaseTask(value, signal) {
|
|
124
|
+
if (!this.operations.includes('task-release'))
|
|
125
|
+
throw new ExecutionLimitError('unavailable', 'Parent cannot release remote execution.');
|
|
126
|
+
const admission = validateRemoteTaskAdmission(value), result = await this.call('task-release', { admission }, signal);
|
|
127
|
+
if (result.admissionId !== admission.id)
|
|
128
|
+
throw new ExecutionLimitError('authority', 'Parent acknowledged another remote admission.');
|
|
68
129
|
}
|
|
69
|
-
async refresh() { const floor = this.journal; this.accept(await this.call('journal', {}), floor); }
|
|
130
|
+
async refresh() { const floor = this.journal; await this.accept(await this.call('journal', {}), floor); }
|
|
70
131
|
canReleaseFailedReservation(error) {
|
|
71
132
|
return error instanceof Error && this.confirmedRejections.has(error);
|
|
72
133
|
}
|
|
73
134
|
async reserve(_cwd, manifestHash, reservation, signal) {
|
|
135
|
+
if (this.options.reconciliation)
|
|
136
|
+
throw new ExecutionLimitError('authority', 'Reconciliation cannot reserve.');
|
|
74
137
|
return this.write('reserve', { manifestHash, reservation }, reservation.id, signal, 'Reservation outcome is unknown; no request was authorized.');
|
|
75
138
|
}
|
|
76
139
|
async settle(_cwd, manifestHash, settlement) {
|
|
@@ -78,8 +141,10 @@ export class RemoteReservationLedger {
|
|
|
78
141
|
}
|
|
79
142
|
/** Nested allocation from this child's own accounts; returns the grandchild's scoped token. */
|
|
80
143
|
async grantChildren(_cwd, manifestHash, grant, signal) {
|
|
144
|
+
if (this.options.reconciliation)
|
|
145
|
+
throw new ExecutionLimitError('authority', 'Reconciliation cannot grant.');
|
|
81
146
|
const floor = this.journal, result = await this.call('grant', { manifestHash, grant }, signal);
|
|
82
|
-
this.accept(result, floor);
|
|
147
|
+
await this.accept(result, floor, signal);
|
|
83
148
|
return { projection: replayReservations(this.journal.manifest, this.journal.events), token: result.token };
|
|
84
149
|
}
|
|
85
150
|
/** Retries reuse the same id (the server replays it). If every attempt is lost, inspect before
|
|
@@ -90,7 +155,7 @@ export class RemoteReservationLedger {
|
|
|
90
155
|
throwIfCancelled(signal);
|
|
91
156
|
try {
|
|
92
157
|
const floor = this.journal;
|
|
93
|
-
this.accept(await this.call(op, body, signal, lost === undefined), floor);
|
|
158
|
+
await this.accept(await this.call(op, body, signal, lost === undefined), floor, signal);
|
|
94
159
|
return this.projection();
|
|
95
160
|
}
|
|
96
161
|
catch (error) {
|
|
@@ -111,20 +176,34 @@ export class RemoteReservationLedger {
|
|
|
111
176
|
}
|
|
112
177
|
projection() { return replayReservations(this.journal.manifest, this.journal.events); }
|
|
113
178
|
/** Validate the hash chain and refuse anything but an append-only extension of what we saw. */
|
|
114
|
-
accept(value, floor = this.journal) {
|
|
179
|
+
async accept(value, floor = this.journal, signal) {
|
|
115
180
|
const next = verifiedJournal(value);
|
|
116
181
|
if (floor && !extendsJournal(floor, next))
|
|
117
182
|
throw new ExecutionLimitError('conflict', 'Parent ledger history was rewritten or rolled back; execution stopped.');
|
|
118
|
-
|
|
183
|
+
const deadline = Date.now() + Math.min(1000, this.options.timeoutMs ?? 1000);
|
|
184
|
+
while (true) {
|
|
185
|
+
throwIfCancelled(signal);
|
|
186
|
+
throwIfCancelled(this.options.signal);
|
|
187
|
+
try {
|
|
188
|
+
this.journal = this.checkpoint.save(next, this.journal, this.options.execution ? projectIdentity(this.options.execution.cwd).project : undefined);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
if (!(error instanceof ExecutionLimitError) || error.code !== 'locked' || Date.now() >= deadline)
|
|
193
|
+
throw error;
|
|
194
|
+
await cancellableDelay(Math.min(25, Math.max(1, deadline - Date.now())), signal ?? this.options.signal);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
119
197
|
}
|
|
120
198
|
async call(op, body, signal, firstAttempt = false) {
|
|
121
|
-
const timeout = AbortSignal.timeout(this.options.timeoutMs ?? 10000), combined =
|
|
199
|
+
const timeout = AbortSignal.timeout(this.options.timeoutMs ?? 10000), combined = AbortSignal.any([timeout, ...(signal ? [signal] : []), ...(this.options.signal ? [this.options.signal] : [])]);
|
|
122
200
|
let response;
|
|
123
201
|
try {
|
|
124
202
|
response = await (this.options.fetch ?? fetch)(`${this.options.url.replace(/\/$/, '')}/v1/${op}`, { method: 'POST', headers: { 'content-type': 'application/json', authorization: `Bearer ${this.options.token}` }, body: JSON.stringify(body), signal: combined });
|
|
125
203
|
}
|
|
126
204
|
catch (error) {
|
|
127
205
|
throwIfCancelled(signal);
|
|
206
|
+
throwIfCancelled(this.options.signal);
|
|
128
207
|
throw new ExecutionLimitError('unavailable', `Parent ledger unreachable: ${error.message}`);
|
|
129
208
|
}
|
|
130
209
|
let value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-ledger.js","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-ledger.js","sourceRoot":"","sources":["../../src/execution/remote-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export interface ExecutionAccount {
|
|
|
12
12
|
allowedTools: string[];
|
|
13
13
|
allowedPaths: ExecutionPath[];
|
|
14
14
|
}
|
|
15
|
-
export interface
|
|
15
|
+
export interface LocalParentBudgetLink {
|
|
16
16
|
version: 1;
|
|
17
17
|
runsRoot: string;
|
|
18
18
|
runId: string;
|
|
@@ -21,6 +21,32 @@ export interface ParentBudgetLink {
|
|
|
21
21
|
budgetManifestHash: string;
|
|
22
22
|
agentId: string;
|
|
23
23
|
}
|
|
24
|
+
export interface ReviewedLedgerContext {
|
|
25
|
+
version: 1;
|
|
26
|
+
runId: string;
|
|
27
|
+
runManifestHash: string;
|
|
28
|
+
approvalRevision: string;
|
|
29
|
+
authority: string;
|
|
30
|
+
lineage: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface RemoteParentBudgetLink {
|
|
33
|
+
version: 2;
|
|
34
|
+
url: string;
|
|
35
|
+
tokenFile: string;
|
|
36
|
+
checkpointRoot: string;
|
|
37
|
+
runId: string;
|
|
38
|
+
budgetManifestHash: string;
|
|
39
|
+
agentId: string;
|
|
40
|
+
accountMap: Record<string, string>;
|
|
41
|
+
reviewed: ReviewedLedgerContext;
|
|
42
|
+
}
|
|
43
|
+
export type ParentBudgetLink = LocalParentBudgetLink | RemoteParentBudgetLink;
|
|
44
|
+
/** Names a repository, not a checkout, and authenticates nothing. */
|
|
45
|
+
export interface PortableProjectIdentity {
|
|
46
|
+
version: 1;
|
|
47
|
+
roots: string[];
|
|
48
|
+
origin: string;
|
|
49
|
+
}
|
|
24
50
|
export interface ExecutionManifest {
|
|
25
51
|
version: 1 | 2;
|
|
26
52
|
runId: string;
|
|
@@ -28,6 +54,7 @@ export interface ExecutionManifest {
|
|
|
28
54
|
project: {
|
|
29
55
|
root: string;
|
|
30
56
|
key: string;
|
|
57
|
+
portable?: PortableProjectIdentity;
|
|
31
58
|
};
|
|
32
59
|
createdAt: number;
|
|
33
60
|
deadline: number;
|
|
@@ -53,6 +80,7 @@ export interface RequestReservation {
|
|
|
53
80
|
costNanos?: number;
|
|
54
81
|
};
|
|
55
82
|
quoteEvidence?: import('./billing.js').QuoteEvidence;
|
|
83
|
+
remoteAdmission?: import('../orchestration/remote-task-capacity.js').RemoteTaskAdmission;
|
|
56
84
|
attribution?: import('./attribution.js').RequestAttribution;
|
|
57
85
|
}
|
|
58
86
|
export interface RequestSettlement {
|
|
@@ -88,7 +116,7 @@ export interface RecordedChildGrant {
|
|
|
88
116
|
at: number;
|
|
89
117
|
}
|
|
90
118
|
export interface ReservationEvent {
|
|
91
|
-
version: 1 | 2 | 3 | 4 | 5;
|
|
119
|
+
version: 1 | 2 | 3 | 4 | 5 | 6;
|
|
92
120
|
id: string;
|
|
93
121
|
at: number;
|
|
94
122
|
previous: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAC/D,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,aAAa,EAAE,CAAC;CACvD;AACD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"AAgEA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACvB,IAAI;IAAzB,YAAqB,IAAuG,EAAE,OAAe;QAC3I,KAAK,CAAC,OAAO,CAAC,CAAC;oBADI,IAAI;QACP,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpD,CAAC;CACF"}
|
package/dist/headless.d.ts
CHANGED
|
@@ -7,11 +7,19 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { type DelegatedExecutionOptions } from './execution/delegated.js';
|
|
9
9
|
import type { LLMProvider } from './types.js';
|
|
10
|
+
import { type ReasoningEffort } from './models/index.js';
|
|
10
11
|
export interface HeadlessEvent {
|
|
11
|
-
type: 'message' | 'tool_call' | 'tool_result' | 'error' | 'status' | 'done';
|
|
12
|
+
type: 'message' | 'tool_call' | 'tool_result' | 'error' | 'status' | 'done' | 'budget_exceeded';
|
|
12
13
|
timestamp: string;
|
|
14
|
+
/** Which hard cap stopped the run (budget_exceeded only). */
|
|
15
|
+
kind?: HeadlessCapKind;
|
|
13
16
|
data: Record<string, unknown>;
|
|
14
17
|
}
|
|
18
|
+
export type HeadlessCapKind = 'cost' | 'time';
|
|
19
|
+
/** Exit code when a hard cap stops the run; shared with configured budget caps. */
|
|
20
|
+
export declare const BUDGET_EXIT_CODE = 3;
|
|
21
|
+
/** A --max-cost or --max-time cap stopped the run (5 is planning-review). */
|
|
22
|
+
export declare const CAP_EXIT_CODE = 6;
|
|
15
23
|
export type HeadlessOutputMode = 'json' | 'text';
|
|
16
24
|
export interface HeadlessOptions {
|
|
17
25
|
signal?: AbortSignal;
|
|
@@ -21,9 +29,27 @@ export interface HeadlessOptions {
|
|
|
21
29
|
outputMode?: HeadlessOutputMode;
|
|
22
30
|
maxIterations?: number;
|
|
23
31
|
maxRetries?: number;
|
|
32
|
+
/** Hard spend cap in USD for this run (--max-cost / CALLIOPE_MAX_COST). */
|
|
33
|
+
maxCost?: number;
|
|
34
|
+
/** Hard wall-clock cap in seconds for this run (--max-time / CALLIOPE_MAX_TIME). */
|
|
35
|
+
maxTime?: number;
|
|
36
|
+
/** Explicit effort, subject to the provider's live capability checks. */
|
|
37
|
+
reasoningEffort?: ReasoningEffort;
|
|
24
38
|
cwd?: string;
|
|
25
39
|
/** Run as a delegated child admitted through a parent's served ledger (#415). */
|
|
26
40
|
ledger?: DelegatedExecutionOptions;
|
|
27
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse `--max-cost <usd>` / `--max-time <seconds>`, falling back to
|
|
44
|
+
* CALLIOPE_MAX_COST / CALLIOPE_MAX_TIME. A flag wins over its env var; an empty
|
|
45
|
+
* env var is unset. Invalid values throw: silently dropping a cap would let a
|
|
46
|
+
* run overspend while the caller believes it is bounded.
|
|
47
|
+
*/
|
|
48
|
+
export declare function parseHeadlessCaps(args: readonly string[], env?: NodeJS.ProcessEnv): {
|
|
49
|
+
maxCost?: number;
|
|
50
|
+
maxTime?: number;
|
|
51
|
+
};
|
|
52
|
+
/** A requested effort is never silently dropped; the flag wins over its environment default. */
|
|
53
|
+
export declare function parseHeadlessEffort(args: readonly string[], env?: NodeJS.ProcessEnv): ReasoningEffort | undefined;
|
|
28
54
|
export declare function runHeadless(options: HeadlessOptions): Promise<number>;
|
|
29
55
|
//# sourceMappingURL=headless.d.ts.map
|
package/dist/headless.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAA+C,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAevH,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM/F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,iBAAiB,CAAC;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,6EAA6E;AAC7E,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAyCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAavI;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,GAAG,SAAS,CAS9H;AAQD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ3E"}
|
package/dist/headless.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Designed for piping, CI, scripting, and multi-agent fleet coordination.
|
|
7
7
|
*/
|
|
8
8
|
import { runTurn } from './runtime/index.js';
|
|
9
|
+
import { MAX_CONSECUTIVE_CONTINUATIONS } from './runtime/turn.js';
|
|
9
10
|
import { connectDelegatedExecution, executionBinding } from './execution/delegated.js';
|
|
10
11
|
import { ExecutionGuard } from './execution/guard.js';
|
|
11
12
|
import { createSession, saveSessionConversation } from './storage.js';
|
|
@@ -20,6 +21,11 @@ import { resolveIterationLimit } from './iteration-limit.js';
|
|
|
20
21
|
import { RunLog } from './runlog.js';
|
|
21
22
|
import { formatBudgetHalt } from './budget.js';
|
|
22
23
|
import { resolvePreferences } from './preferences/index.js';
|
|
24
|
+
import { isReasoningEffort, REASONING_EFFORTS } from './models/index.js';
|
|
25
|
+
/** Exit code when a hard cap stops the run; shared with configured budget caps. */
|
|
26
|
+
export const BUDGET_EXIT_CODE = 3;
|
|
27
|
+
/** A --max-cost or --max-time cap stopped the run (5 is planning-review). */
|
|
28
|
+
export const CAP_EXIT_CODE = 6;
|
|
23
29
|
// ============================================================================
|
|
24
30
|
// Output
|
|
25
31
|
// ============================================================================
|
|
@@ -45,6 +51,9 @@ function emit(event, mode) {
|
|
|
45
51
|
case 'status':
|
|
46
52
|
process.stderr.write(`STATUS: ${event.data.message}\n`);
|
|
47
53
|
break;
|
|
54
|
+
case 'budget_exceeded':
|
|
55
|
+
process.stderr.write(`BUDGET: ${event.data.message}\n`);
|
|
56
|
+
break;
|
|
48
57
|
case 'done':
|
|
49
58
|
// Silence
|
|
50
59
|
break;
|
|
@@ -54,12 +63,78 @@ function emit(event, mode) {
|
|
|
54
63
|
function now() {
|
|
55
64
|
return new Date().toISOString();
|
|
56
65
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Parse `--max-cost <usd>` / `--max-time <seconds>`, falling back to
|
|
68
|
+
* CALLIOPE_MAX_COST / CALLIOPE_MAX_TIME. A flag wins over its env var; an empty
|
|
69
|
+
* env var is unset. Invalid values throw: silently dropping a cap would let a
|
|
70
|
+
* run overspend while the caller believes it is bounded.
|
|
71
|
+
*/
|
|
72
|
+
export function parseHeadlessCaps(args, env = process.env) {
|
|
73
|
+
const read = (flag, variable) => {
|
|
74
|
+
const index = args.indexOf(flag);
|
|
75
|
+
const source = index === -1 ? variable : flag;
|
|
76
|
+
const raw = index === -1 ? env[variable]?.trim() || undefined : args[index + 1];
|
|
77
|
+
if (index === -1 && raw === undefined)
|
|
78
|
+
return undefined;
|
|
79
|
+
const value = raw === undefined || raw.startsWith('--') ? NaN : Number(raw);
|
|
80
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
81
|
+
throw new Error(`${source} must be a positive number (got ${raw === undefined ? 'no value' : JSON.stringify(raw)})`);
|
|
82
|
+
return value;
|
|
83
|
+
};
|
|
84
|
+
const maxCost = read('--max-cost', 'CALLIOPE_MAX_COST');
|
|
85
|
+
const maxTime = read('--max-time', 'CALLIOPE_MAX_TIME');
|
|
86
|
+
return { ...(maxCost !== undefined ? { maxCost } : {}), ...(maxTime !== undefined ? { maxTime } : {}) };
|
|
87
|
+
}
|
|
88
|
+
/** A requested effort is never silently dropped; the flag wins over its environment default. */
|
|
89
|
+
export function parseHeadlessEffort(args, env = process.env) {
|
|
90
|
+
const flag = '--reasoning-effort';
|
|
91
|
+
const found = args.map((value, index) => ({ value, index })).filter(({ value }) => value === flag || value.startsWith(flag + '='));
|
|
92
|
+
if (found.length > 1)
|
|
93
|
+
throw new Error(`${flag} may be specified only once`);
|
|
94
|
+
const item = found[0];
|
|
95
|
+
const raw = item ? (item.value === flag ? args[item.index + 1] : item.value.slice(flag.length + 1))?.trim() : env.CALLIOPE_REASONING_EFFORT?.trim();
|
|
96
|
+
if (!item && !raw)
|
|
97
|
+
return undefined;
|
|
98
|
+
if (!isReasoningEffort(raw))
|
|
99
|
+
throw new Error(`${item ? flag : 'CALLIOPE_REASONING_EFFORT'} must be one of ${REASONING_EFFORTS.join(', ')}`);
|
|
100
|
+
return raw;
|
|
101
|
+
}
|
|
60
102
|
export async function runHeadless(options) {
|
|
61
|
-
const
|
|
103
|
+
const clock = { started: Date.now(), timedOut: false };
|
|
104
|
+
if (options.maxTime === undefined)
|
|
105
|
+
return run(options, options.signal, clock);
|
|
106
|
+
// The time cap aborts like cancellation; `clock.timedOut` tells the two apart.
|
|
107
|
+
const deadline = new AbortController();
|
|
108
|
+
const timer = setTimeout(() => { clock.timedOut = true; deadline.abort(); }, Math.min(options.maxTime * 1000, 2 ** 31 - 1));
|
|
109
|
+
try {
|
|
110
|
+
return await run(options, options.signal ? AbortSignal.any([options.signal, deadline.signal]) : deadline.signal, clock);
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
clearTimeout(timer);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async function run(options, signal, clock) {
|
|
62
117
|
const outputMode = options.outputMode || 'json';
|
|
118
|
+
if (options.reasoningEffort !== undefined && !isReasoningEffort(options.reasoningEffort)) {
|
|
119
|
+
emit({ type: 'error', timestamp: now(), data: { message: 'Invalid headless reasoning effort' } }, outputMode);
|
|
120
|
+
return 2;
|
|
121
|
+
}
|
|
122
|
+
const summary = (totals, stoppedBy) => ({
|
|
123
|
+
costUsd: totals?.cost ?? 0, inputTokens: totals?.inputTokens ?? 0, outputTokens: totals?.outputTokens ?? 0,
|
|
124
|
+
elapsedMs: Date.now() - clock.started, stoppedBy, limits: { maxCost: options.maxCost, maxTime: options.maxTime },
|
|
125
|
+
});
|
|
126
|
+
const timeCapHit = () => clock.timedOut && !options.signal?.aborted;
|
|
127
|
+
const capExceeded = (kind, totals, message) => {
|
|
128
|
+
const elapsedMs = Date.now() - clock.started;
|
|
129
|
+
emit({ type: 'budget_exceeded', kind, timestamp: now(), data: {
|
|
130
|
+
cap: kind === 'cost' ? options.maxCost : options.maxTime,
|
|
131
|
+
spent: kind === 'cost' ? totals?.cost ?? 0 : elapsedMs / 1000,
|
|
132
|
+
costUsd: totals?.cost ?? 0, elapsedMs, message
|
|
133
|
+
} }, outputMode);
|
|
134
|
+
if (outputMode === 'json')
|
|
135
|
+
process.stderr.write(message + '\n');
|
|
136
|
+
};
|
|
137
|
+
const timeMessage = () => `Time cap reached: ${((Date.now() - clock.started) / 1000).toFixed(1)}s of ${options.maxTime}s. Halting.`;
|
|
63
138
|
const maxIterations = resolveIterationLimit(options.maxIterations ?? config.get('maxIterations'));
|
|
64
139
|
const maxRetries = options.maxRetries ?? 3;
|
|
65
140
|
const cwd = options.cwd || process.cwd();
|
|
@@ -102,6 +177,11 @@ export async function runHeadless(options) {
|
|
|
102
177
|
}
|
|
103
178
|
}
|
|
104
179
|
catch (error) {
|
|
180
|
+
if (timeCapHit()) {
|
|
181
|
+
capExceeded('time', undefined, timeMessage());
|
|
182
|
+
emit({ type: 'done', timestamp: now(), data: { reason: 'budget', ...summary(undefined, 'time') } }, outputMode);
|
|
183
|
+
return CAP_EXIT_CODE;
|
|
184
|
+
}
|
|
105
185
|
if (signal?.aborted || isCancellation(error)) {
|
|
106
186
|
emit({ type: 'done', timestamp: now(), data: { reason: 'cancelled' } }, outputMode);
|
|
107
187
|
return 130;
|
|
@@ -195,9 +275,17 @@ export async function runHeadless(options) {
|
|
|
195
275
|
revision = saved.revision;
|
|
196
276
|
runlog.sessionCheckpoint({ revision: saved.revision, status, messageCount: saved.messages.length, checksum: saved.checksum });
|
|
197
277
|
},
|
|
278
|
+
continueOnLength: true,
|
|
279
|
+
onContinue: ({ reason, attempt, max }) => {
|
|
280
|
+
const message = `[continue ${attempt}/${max}] ${reason === 'length' ? 'output length limit reached' : 'empty model reply'}; asking the model to continue`;
|
|
281
|
+
emit({ type: 'status', timestamp: now(), data: { message, continuing: true, reason, attempt, max } }, outputMode);
|
|
282
|
+
process.stderr.write(message + '\n');
|
|
283
|
+
},
|
|
198
284
|
sessionId, cwd, provider, model, prompt, execution,
|
|
285
|
+
...(options.reasoningEffort !== undefined ? { reasoningEffort: options.reasoningEffort } : {}),
|
|
199
286
|
preferenceSources: preference.sources,
|
|
200
287
|
messages: { current: messages }, signal, maxIterations, maxRetries,
|
|
288
|
+
...(options.maxCost !== undefined ? { maxCostPerRun: options.maxCost } : {}),
|
|
201
289
|
runlog, confirmation: 'none', tools: getTools,
|
|
202
290
|
onResponse: response => {
|
|
203
291
|
if (!response.toolCalls?.length)
|
|
@@ -209,13 +297,25 @@ export async function runHeadless(options) {
|
|
|
209
297
|
onWarning: message => emit({ type: 'status', timestamp: now(), data: { message } }, outputMode),
|
|
210
298
|
onRoute: decision => emit({ type: 'status', timestamp: now(), data: { message: decision.reason, routing: decision, provider: decision.selected?.provider, model: decision.selected?.model } }, outputMode),
|
|
211
299
|
});
|
|
212
|
-
|
|
300
|
+
// A configured budget cap tighter than --max-cost keeps its own (status) reporting.
|
|
301
|
+
const stoppedBy = result.reason === 'cancelled' && timeCapHit() ? 'time'
|
|
302
|
+
: result.reason === 'budget' && result.budget?.scope === 'run' && result.budget.kind === 'cost' && options.maxCost !== undefined && result.budget.cap === options.maxCost ? 'cost' : null;
|
|
303
|
+
if (stoppedBy)
|
|
304
|
+
capExceeded(stoppedBy, result.totals, stoppedBy === 'time' ? timeMessage() : formatBudgetHalt(result.budget));
|
|
305
|
+
else if (result.budget?.exceeded) {
|
|
213
306
|
const message = formatBudgetHalt(result.budget);
|
|
214
307
|
emit({ type: 'status', timestamp: now(), data: { message } }, outputMode);
|
|
215
308
|
process.stderr.write(message + '\n');
|
|
216
309
|
}
|
|
217
|
-
|
|
218
|
-
|
|
310
|
+
if (!stoppedBy && (result.reason === 'length' || result.reason === 'empty_response')) {
|
|
311
|
+
const message = `Run gave up: ${result.reason === 'length' ? 'output length limit reached' : 'empty model replies'} (${result.reason}) after ${MAX_CONSECUTIVE_CONTINUATIONS} consecutive continuations.`;
|
|
312
|
+
emit({ type: 'error', timestamp: now(), data: { message, reason: result.reason } }, outputMode);
|
|
313
|
+
process.stderr.write(message + '\n');
|
|
314
|
+
}
|
|
315
|
+
emit({ type: 'done', timestamp: now(), data: { iterations: result.iterations, reason: stoppedBy ? 'budget' : result.reason, ...summary(result.totals, stoppedBy) } }, outputMode);
|
|
316
|
+
if (stoppedBy)
|
|
317
|
+
return CAP_EXIT_CODE;
|
|
318
|
+
return result.reason === 'cancelled' ? 130 : result.reason === 'budget' ? BUDGET_EXIT_CODE : result.reason === 'completed' ? 0 : 4;
|
|
219
319
|
}
|
|
220
320
|
catch (error) {
|
|
221
321
|
emit({ type: 'error', timestamp: now(), data: { message: error instanceof Error ? error.message : String(error) } }, outputMode);
|