@enderfga/claw-orchestrator 5.1.0 → 6.0.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.
Files changed (152) hide show
  1. package/README.md +26 -26
  2. package/dist/bin/cli.js +107 -1
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/src/acp-server.d.ts +5 -5
  5. package/dist/src/acp-server.js +3 -3
  6. package/dist/src/acp-server.js.map +1 -1
  7. package/dist/src/autoloop/dispatcher.d.ts +22 -0
  8. package/dist/src/autoloop/dispatcher.js +71 -13
  9. package/dist/src/autoloop/dispatcher.js.map +1 -1
  10. package/dist/src/autoloop/messages.d.ts +10 -0
  11. package/dist/src/autoloop/messages.js.map +1 -1
  12. package/dist/src/autoloop/runner.js +6 -0
  13. package/dist/src/autoloop/runner.js.map +1 -1
  14. package/dist/src/constants.d.ts +0 -6
  15. package/dist/src/constants.js +0 -6
  16. package/dist/src/constants.js.map +1 -1
  17. package/dist/src/council.d.ts +15 -0
  18. package/dist/src/council.js +48 -35
  19. package/dist/src/council.js.map +1 -1
  20. package/dist/src/dashboard/index.html +191 -6
  21. package/dist/src/embedded-server.js +132 -9
  22. package/dist/src/embedded-server.js.map +1 -1
  23. package/dist/src/fanout.d.ts +30 -1
  24. package/dist/src/fanout.js +32 -3
  25. package/dist/src/fanout.js.map +1 -1
  26. package/dist/src/index.js +359 -4
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/kernel/agent-step.d.ts +59 -0
  29. package/dist/src/kernel/agent-step.js +100 -0
  30. package/dist/src/kernel/agent-step.js.map +1 -0
  31. package/dist/src/kernel/conditions.d.ts +11 -0
  32. package/dist/src/kernel/conditions.js +24 -0
  33. package/dist/src/kernel/conditions.js.map +1 -0
  34. package/dist/src/kernel/engine.d.ts +319 -0
  35. package/dist/src/kernel/engine.js +1047 -0
  36. package/dist/src/kernel/engine.js.map +1 -0
  37. package/dist/src/kernel/exec.d.ts +43 -0
  38. package/dist/src/kernel/exec.js +112 -0
  39. package/dist/src/kernel/exec.js.map +1 -0
  40. package/dist/src/kernel/file-lock.d.ts +50 -0
  41. package/dist/src/kernel/file-lock.js +135 -0
  42. package/dist/src/kernel/file-lock.js.map +1 -0
  43. package/dist/src/kernel/nodes/agent.d.ts +4 -0
  44. package/dist/src/kernel/nodes/agent.js +35 -0
  45. package/dist/src/kernel/nodes/agent.js.map +1 -0
  46. package/dist/src/kernel/nodes/autoloop.d.ts +78 -0
  47. package/dist/src/kernel/nodes/autoloop.js +75 -0
  48. package/dist/src/kernel/nodes/autoloop.js.map +1 -0
  49. package/dist/src/kernel/nodes/council.d.ts +12 -0
  50. package/dist/src/kernel/nodes/council.js +88 -0
  51. package/dist/src/kernel/nodes/council.js.map +1 -0
  52. package/dist/src/kernel/nodes/fanout.d.ts +11 -0
  53. package/dist/src/kernel/nodes/fanout.js +63 -0
  54. package/dist/src/kernel/nodes/fanout.js.map +1 -0
  55. package/dist/src/kernel/nodes/human-gate.d.ts +4 -0
  56. package/dist/src/kernel/nodes/human-gate.js +7 -0
  57. package/dist/src/kernel/nodes/human-gate.js.map +1 -0
  58. package/dist/src/kernel/nodes/index.d.ts +12 -0
  59. package/dist/src/kernel/nodes/index.js +21 -0
  60. package/dist/src/kernel/nodes/index.js.map +1 -0
  61. package/dist/src/kernel/nodes/router.d.ts +4 -0
  62. package/dist/src/kernel/nodes/router.js +12 -0
  63. package/dist/src/kernel/nodes/router.js.map +1 -0
  64. package/dist/src/kernel/nodes/subflow.d.ts +13 -0
  65. package/dist/src/kernel/nodes/subflow.js +38 -0
  66. package/dist/src/kernel/nodes/subflow.js.map +1 -0
  67. package/dist/src/kernel/nodes/ultraapp.d.ts +60 -0
  68. package/dist/src/kernel/nodes/ultraapp.js +62 -0
  69. package/dist/src/kernel/nodes/ultraapp.js.map +1 -0
  70. package/dist/src/kernel/nodes/verifier.d.ts +14 -0
  71. package/dist/src/kernel/nodes/verifier.js +84 -0
  72. package/dist/src/kernel/nodes/verifier.js.map +1 -0
  73. package/dist/src/kernel/projections.d.ts +42 -0
  74. package/dist/src/kernel/projections.js +133 -0
  75. package/dist/src/kernel/projections.js.map +1 -0
  76. package/dist/src/kernel/repo.d.ts +13 -0
  77. package/dist/src/kernel/repo.js +64 -0
  78. package/dist/src/kernel/repo.js.map +1 -0
  79. package/dist/src/kernel/secrets.d.ts +25 -0
  80. package/dist/src/kernel/secrets.js +48 -0
  81. package/dist/src/kernel/secrets.js.map +1 -0
  82. package/dist/src/kernel/store.d.ts +225 -0
  83. package/dist/src/kernel/store.js +838 -0
  84. package/dist/src/kernel/store.js.map +1 -0
  85. package/dist/src/kernel/templates/index.d.ts +140 -0
  86. package/dist/src/kernel/templates/index.js +266 -0
  87. package/dist/src/kernel/templates/index.js.map +1 -0
  88. package/dist/src/kernel/types.d.ts +326 -0
  89. package/dist/src/kernel/types.js +19 -0
  90. package/dist/src/kernel/types.js.map +1 -0
  91. package/dist/src/models.d.ts +7 -0
  92. package/dist/src/models.js +43 -14
  93. package/dist/src/models.js.map +1 -1
  94. package/dist/src/persistent-custom-session.js +8 -3
  95. package/dist/src/persistent-custom-session.js.map +1 -1
  96. package/dist/src/run-ledger.d.ts +57 -3
  97. package/dist/src/run-ledger.js +45 -2
  98. package/dist/src/run-ledger.js.map +1 -1
  99. package/dist/src/session-manager.d.ts +176 -129
  100. package/dist/src/session-manager.js +652 -603
  101. package/dist/src/session-manager.js.map +1 -1
  102. package/dist/src/types.d.ts +33 -3
  103. package/dist/src/ultraapp/build.d.ts +117 -3
  104. package/dist/src/ultraapp/build.js +319 -3
  105. package/dist/src/ultraapp/build.js.map +1 -1
  106. package/dist/src/ultraapp/contract.d.ts +52 -0
  107. package/dist/src/ultraapp/contract.js +83 -0
  108. package/dist/src/ultraapp/contract.js.map +1 -0
  109. package/dist/src/ultraapp/conventions.js +9 -2
  110. package/dist/src/ultraapp/conventions.js.map +1 -1
  111. package/dist/src/ultraapp/fix-on-failure.d.ts +21 -2
  112. package/dist/src/ultraapp/fix-on-failure.js +46 -62
  113. package/dist/src/ultraapp/fix-on-failure.js.map +1 -1
  114. package/dist/src/ultraapp/manager.d.ts +107 -2
  115. package/dist/src/ultraapp/manager.js +305 -86
  116. package/dist/src/ultraapp/manager.js.map +1 -1
  117. package/dist/src/verify/baseline.d.ts +73 -0
  118. package/dist/src/verify/baseline.js +186 -0
  119. package/dist/src/verify/baseline.js.map +1 -0
  120. package/dist/src/verify/contract.d.ts +116 -0
  121. package/dist/src/verify/contract.js +142 -0
  122. package/dist/src/verify/contract.js.map +1 -0
  123. package/dist/src/verify/evidence.d.ts +61 -0
  124. package/dist/src/verify/evidence.js +133 -0
  125. package/dist/src/verify/evidence.js.map +1 -0
  126. package/dist/src/verify/runner.d.ts +63 -0
  127. package/dist/src/verify/runner.js +317 -0
  128. package/dist/src/verify/runner.js.map +1 -0
  129. package/openclaw.plugin.json +38 -1
  130. package/package.json +2 -2
  131. package/skills/SKILL.md +120 -79
  132. package/skills/references/acp.md +17 -17
  133. package/skills/references/autoloop.md +139 -65
  134. package/skills/references/claude-cli-tracking.md +4 -4
  135. package/skills/references/cli.md +101 -59
  136. package/skills/references/council.md +109 -37
  137. package/skills/references/dashboard.md +34 -6
  138. package/skills/references/getting-started.md +13 -13
  139. package/skills/references/inbox.md +4 -4
  140. package/skills/references/mcp.md +39 -34
  141. package/skills/references/multi-engine.md +51 -47
  142. package/skills/references/observability.md +115 -28
  143. package/skills/references/openai-compat.md +39 -39
  144. package/skills/references/sessions.md +43 -25
  145. package/skills/references/tools.md +402 -309
  146. package/skills/references/ultra.md +45 -45
  147. package/skills/references/ultraapp.md +126 -50
  148. package/skills/references/verification.md +187 -0
  149. package/skills/references/workflow.md +362 -0
  150. package/dist/src/ultraapp/fix-on-failure-session.d.ts +0 -23
  151. package/dist/src/ultraapp/fix-on-failure-session.js +0 -51
  152. package/dist/src/ultraapp/fix-on-failure-session.js.map +0 -1
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Kernel types — one state vocabulary for every run this runtime executes.
3
+ *
4
+ * Before this module the six orchestration modes each carried their own status
5
+ * union (`CouncilSession.status`, `FanoutSession.status`, `UltraplanResult.status`,
6
+ * `UltrareviewResult.status`, ultraapp's `RunMode`, `AutoloopStatus`) with no
7
+ * overlapping vocabulary, so "is it done" had six different answers and no
8
+ * cross-mode listing was possible. These types replace that.
9
+ *
10
+ * The important distinction encoded here is between *finishing* and *being
11
+ * right*. `RunState` says whether the work stopped; `RunOutcome` says whether
12
+ * anything checked it. A run with no acceptance contract finishes `completed` /
13
+ * `unverified` — it says it does not know, which is not the same as success.
14
+ */
15
+ import type { AcceptanceContract } from '../verify/contract.js';
16
+ import type { EngineType } from '../types.js';
17
+ /**
18
+ * `completed` is reachable only from `verifying`. A run carrying a contract
19
+ * whose evidence is red goes to `failed`, never to `completed` — that is the
20
+ * whole point of the state machine.
21
+ */
22
+ export type RunState = 'pending' | 'running' | 'awaiting_human' | 'verifying' | 'completed' | 'failed' | 'cancelled';
23
+ /**
24
+ * Whether anything independent of the agent checked the work.
25
+ * - `verified` — a contract ran and every required check passed.
26
+ * - `unverified` — no contract was declared. We do not know.
27
+ * - `refuted` — a contract ran and a required check failed.
28
+ */
29
+ export type RunOutcome = 'verified' | 'unverified' | 'refuted';
30
+ export type NodeState = 'pending' | 'running' | 'awaiting_human' | 'succeeded' | 'failed' | 'skipped' | 'cancelled';
31
+ export type NodeKind = 'agent' | 'fanout' | 'council' | 'verifier' | 'human_gate' | 'router' | 'subflow' | 'autoloop' | 'ultraapp_synth' | 'ultraapp_deploy';
32
+ export interface NodeBase {
33
+ id: string;
34
+ kind: NodeKind;
35
+ /** Explicit successor. Omitted means "the next node in `nodes` order". */
36
+ next?: string;
37
+ retry?: {
38
+ max: number;
39
+ backoffMs?: number;
40
+ };
41
+ /** Wall clock for one attempt. Omitted means the kernel default. */
42
+ timeoutMs?: number;
43
+ /** `continue` records the failure and proceeds; `fail` ends the run. Default `fail`. */
44
+ onFailure?: 'fail' | 'continue';
45
+ }
46
+ export interface AgentNode extends NodeBase {
47
+ kind: 'agent';
48
+ prompt: string;
49
+ engine?: EngineType;
50
+ model?: string;
51
+ cwd?: string;
52
+ /** Reuse a named session across nodes; omitted means one session per attempt. */
53
+ sessionName?: string;
54
+ effort?: string;
55
+ permissionMode?: string;
56
+ }
57
+ /**
58
+ * One agent in a fan-out or council.
59
+ *
60
+ * This mirrors the legacy per-agent shape field for field, deliberately. The
61
+ * first cut of the kernel carried only `name` / `engine` / `model` / `persona`,
62
+ * and the adapters silently dropped everything else — so an ultrareview that
63
+ * built a bespoke prompt and `permissionMode: 'plan'` per reviewer handed the
64
+ * session neither: every reviewer got the shared task, under
65
+ * `bypassPermissions`. A read-only review that can write is worse than no
66
+ * review, and nothing failed to say so.
67
+ *
68
+ * `customEngine` is the one field NOT here. It can carry credentials, and a
69
+ * spec is written to disk — see `StartOptions.secrets`.
70
+ */
71
+ export interface FanoutAgentSpec {
72
+ name: string;
73
+ engine?: EngineType;
74
+ model?: string;
75
+ /** Per-agent prompt. Overrides the node's shared prompt when present. */
76
+ prompt?: string;
77
+ /** Council-style persona text. */
78
+ persona?: string;
79
+ permissionMode?: string;
80
+ baseUrl?: string;
81
+ effort?: string;
82
+ ultracode?: boolean;
83
+ }
84
+ export interface FanoutNode extends NodeBase {
85
+ kind: 'fanout';
86
+ prompt: string;
87
+ agents: FanoutAgentSpec[];
88
+ synthesize?: boolean;
89
+ synthesisEngine?: EngineType;
90
+ synthesisModel?: string;
91
+ synthesisPermissionMode?: string;
92
+ maxTurnsPerAgent?: number;
93
+ maxBudgetUsd?: number;
94
+ cwd?: string;
95
+ }
96
+ export interface CouncilNode extends NodeBase {
97
+ kind: 'council';
98
+ task: string;
99
+ agents: FanoutAgentSpec[];
100
+ projectDir?: string;
101
+ maxRounds?: number;
102
+ maxTurnsPerAgent?: number;
103
+ maxBudgetUsd?: number;
104
+ defaultPermissionMode?: string;
105
+ }
106
+ export interface VerifierNode extends NodeBase {
107
+ kind: 'verifier';
108
+ /** Inline contract, or `'run'` to use the workflow-level contract. */
109
+ contract: AcceptanceContract | 'run';
110
+ cwd?: string;
111
+ }
112
+ export interface HumanGateNode extends NodeBase {
113
+ kind: 'human_gate';
114
+ prompt: string;
115
+ }
116
+ /**
117
+ * Declarative conditions only — no expression string is ever evaluated, so a
118
+ * workflow spec that reached us from an agent cannot execute code.
119
+ */
120
+ export type RouterCondition = {
121
+ type: 'always';
122
+ } | {
123
+ type: 'node_failed';
124
+ node: string;
125
+ } | {
126
+ type: 'node_succeeded';
127
+ node: string;
128
+ } | {
129
+ type: 'verified';
130
+ node: string;
131
+ } | {
132
+ type: 'visits_lt';
133
+ node: string;
134
+ n: number;
135
+ };
136
+ export interface RouterNode extends NodeBase {
137
+ kind: 'router';
138
+ /** First matching route wins. A route may point backwards — that is the loop. */
139
+ routes: Array<{
140
+ when: RouterCondition;
141
+ to: string;
142
+ }>;
143
+ /** Taken when nothing matches. Omitted means "fall through to the next node". */
144
+ default?: string;
145
+ }
146
+ export interface SubflowNode extends NodeBase {
147
+ kind: 'subflow';
148
+ workflow: string | WorkflowSpec;
149
+ }
150
+ /**
151
+ * A long-lived Planner / Coder / Reviewer loop.
152
+ *
153
+ * Unlike the other node kinds this one runs for as long as the user keeps
154
+ * talking to it — it settles when the loop terminates, not when a turn returns.
155
+ * The spec carries only JSON, because it is checkpointed; the executor that
156
+ * knows how to build a dispatcher is registered by SessionManager.
157
+ */
158
+ export interface AutoloopNode extends NodeBase {
159
+ kind: 'autoloop';
160
+ workspace: string;
161
+ config: Record<string, unknown>;
162
+ }
163
+ /**
164
+ * UltraApp's two expensive stages.
165
+ *
166
+ * They are their own kinds for the same reason `autoloop` is: the engine behind
167
+ * them needs a store, a router and a deploy strategy that the kernel has no
168
+ * business knowing about, so the executor is injected and the spec carries only
169
+ * JSON. What the kernel owns is what it owns for every other node — the
170
+ * checkpoint, the claim, the retry, the cancel, and the fact that a crash
171
+ * between them does not redo the one that already finished.
172
+ *
173
+ * The stage between them — running the build contract — is not here, because it
174
+ * is not UltraApp-specific: it is the ordinary `verifier` node.
175
+ */
176
+ export interface UltraappSynthNode extends NodeBase {
177
+ kind: 'ultraapp_synth';
178
+ /** UltraApp's own run id — the key its store is organised by. */
179
+ appRunId: string;
180
+ /** Absolute per-run directory; the council project and the codebase live under it. */
181
+ runDir: string;
182
+ slug: string;
183
+ }
184
+ export interface UltraappDeployNode extends NodeBase {
185
+ kind: 'ultraapp_deploy';
186
+ appRunId: string;
187
+ runDir: string;
188
+ slug: string;
189
+ version: string;
190
+ /** Where the synthesised codebase lives, once `ultraapp_synth` has produced it. */
191
+ codebasePath: string;
192
+ }
193
+ export type NodeSpec = AgentNode | FanoutNode | CouncilNode | VerifierNode | HumanGateNode | RouterNode | SubflowNode | AutoloopNode | UltraappSynthNode | UltraappDeployNode;
194
+ export interface WorkflowSpec {
195
+ name: string;
196
+ nodes: NodeSpec[];
197
+ cwd?: string;
198
+ /**
199
+ * Run-level acceptance contract. When present the kernel appends an implicit
200
+ * terminal verifier, so `completed` always means "a contract passed".
201
+ */
202
+ contract?: AcceptanceContract;
203
+ /** Loop bound. Exceeding it fails the run rather than spinning. Default 50. */
204
+ maxNodeVisits?: number;
205
+ }
206
+ export interface NodeRecord {
207
+ id: string;
208
+ kind: NodeKind;
209
+ state: NodeState;
210
+ /** Attempts of the current visit (retry counter). */
211
+ attempts: number;
212
+ /** Times the router has sent control here (loop counter). */
213
+ visits: number;
214
+ startedAt?: string;
215
+ endedAt?: string;
216
+ error?: string;
217
+ /** Truncated text output; the full text lives under `nodes/<id>/` when large. */
218
+ output?: string;
219
+ /** Paths relative to the run directory. */
220
+ artifacts?: string[];
221
+ evidenceId?: string;
222
+ /** Subflow nodes: the child run this node started, so it stays addressable. */
223
+ childRunId?: string;
224
+ /**
225
+ * Mode-specific payload, checkpointed with the run.
226
+ *
227
+ * This is what lets the legacy per-mode shapes (`CouncilSession`,
228
+ * `FanoutSession`, …) be projected from a run instead of held in their own
229
+ * in-memory maps. It has to be durable for the same reason the rest of the
230
+ * record does: a fan-out's results used to evaporate 30 minutes after it
231
+ * finished, because the only copy was in a `Map`.
232
+ */
233
+ data?: unknown;
234
+ }
235
+ /** Advisory only. A vote is recorded, never used as a termination condition. */
236
+ export interface ConsensusVote {
237
+ agent: string;
238
+ round: number;
239
+ vote: boolean;
240
+ source: 'strict' | 'variant' | 'none';
241
+ }
242
+ export interface RunRecord {
243
+ runId: string;
244
+ workflow: string;
245
+ spec: WorkflowSpec;
246
+ state: RunState;
247
+ outcome: RunOutcome;
248
+ cwd: string;
249
+ createdAt: string;
250
+ updatedAt: string;
251
+ endedAt?: string;
252
+ currentNode?: string;
253
+ nodes: Record<string, NodeRecord>;
254
+ error?: string;
255
+ /** Evidence bundle id of the terminal verifier, when one ran. */
256
+ evidenceId?: string;
257
+ /** `git rev-parse HEAD` captured at run start, when cwd is a repo. */
258
+ baseSha?: string;
259
+ /** Recorded for the record. Never consulted to decide completion. */
260
+ consensusVotes?: ConsensusVote[];
261
+ costUsd?: number;
262
+ /**
263
+ * Why the outcome is what it is, when that needs saying — chiefly when a
264
+ * passing verdict was downgraded because the tree moved after the check.
265
+ */
266
+ outcomeReason?: string;
267
+ /**
268
+ * The verdict currently in force: which node produced it, and the tree digest
269
+ * at that moment. Compared against the tree when the run ends, so evidence
270
+ * overtaken by later edits cannot keep standing as `verified`.
271
+ */
272
+ verdict?: {
273
+ node: string;
274
+ evidenceId: string;
275
+ treeFingerprint?: string;
276
+ sideEffectSeq: number;
277
+ };
278
+ /**
279
+ * Count of completed nodes that can touch the workspace (`agent`, `fanout`,
280
+ * `council`, `subflow`). Compared against the value stored on the verdict, so
281
+ * the kernel knows whether anything ran after the checks at all.
282
+ */
283
+ sideEffectSeq?: number;
284
+ }
285
+ export type KernelEvent = {
286
+ ts: string;
287
+ type: 'run_created';
288
+ runId: string;
289
+ workflow: string;
290
+ } | {
291
+ ts: string;
292
+ type: 'run_state';
293
+ state: RunState;
294
+ outcome?: RunOutcome;
295
+ error?: string;
296
+ } | {
297
+ ts: string;
298
+ type: 'node_state';
299
+ node: string;
300
+ state: NodeState;
301
+ attempt?: number;
302
+ error?: string;
303
+ } | {
304
+ ts: string;
305
+ type: 'node_output';
306
+ node: string;
307
+ text: string;
308
+ } | {
309
+ ts: string;
310
+ type: 'steer';
311
+ node: string;
312
+ text: string;
313
+ } | {
314
+ ts: string;
315
+ type: 'evidence';
316
+ node: string;
317
+ evidenceId: string;
318
+ passed: boolean;
319
+ } | {
320
+ ts: string;
321
+ type: 'log';
322
+ level: 'info' | 'warn' | 'error';
323
+ message: string;
324
+ };
325
+ export declare const TERMINAL_RUN_STATES: readonly RunState[];
326
+ export declare function isTerminalRunState(s: RunState): boolean;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Kernel types — one state vocabulary for every run this runtime executes.
3
+ *
4
+ * Before this module the six orchestration modes each carried their own status
5
+ * union (`CouncilSession.status`, `FanoutSession.status`, `UltraplanResult.status`,
6
+ * `UltrareviewResult.status`, ultraapp's `RunMode`, `AutoloopStatus`) with no
7
+ * overlapping vocabulary, so "is it done" had six different answers and no
8
+ * cross-mode listing was possible. These types replace that.
9
+ *
10
+ * The important distinction encoded here is between *finishing* and *being
11
+ * right*. `RunState` says whether the work stopped; `RunOutcome` says whether
12
+ * anything checked it. A run with no acceptance contract finishes `completed` /
13
+ * `unverified` — it says it does not know, which is not the same as success.
14
+ */
15
+ export const TERMINAL_RUN_STATES = ['completed', 'failed', 'cancelled'];
16
+ export function isTerminalRunState(s) {
17
+ return TERMINAL_RUN_STATES.includes(s);
18
+ }
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyTH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7F,MAAM,UAAU,kBAAkB,CAAC,CAAW;IAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -45,6 +45,13 @@ export declare function resolveProvider(model: string): {
45
45
  export declare function getContextWindow(model: string): number;
46
46
  /** Get pricing for a model. Falls back to sonnet pricing for unknown models. */
47
47
  export declare function getModelPricing(model?: string, defaultModel?: string): ModelPricing;
48
+ /**
49
+ * Whether a runtime override was configured for this model, as opposed to the
50
+ * price coming from the registry. Engines that keep their own pricing table need
51
+ * this to tell "the user set 0" from "the registry had nothing", which the
52
+ * returned rate cannot express: both are zero.
53
+ */
54
+ export declare function hasPricingOverride(model?: string, defaultModel?: string): boolean;
48
55
  export declare function overrideModelPricing(overrides: Record<string, Partial<ModelPricing>>): void;
49
56
  /** Reset all pricing overrides (for testing). */
50
57
  export declare function _resetPricingOverrides(): void;
@@ -432,27 +432,56 @@ export function getContextWindow(model) {
432
432
  const known = lookupModel(clean);
433
433
  return known?.contextWindow ?? 200_000;
434
434
  }
435
+ /**
436
+ * Canonical key for the runtime pricing table: strip the vendor prefix, then
437
+ * resolve aliases. Reads and writes MUST share this, or an override written as
438
+ * `opus` never gets found by a session that resolved itself to `claude-opus-5`
439
+ * (and vice versa).
440
+ */
441
+ function pricingKey(model) {
442
+ return resolveAlias(model.replace(/^(anthropic|openai|openai-codex|google|gemini|agy|cursor|grok|xai)\//g, ''));
443
+ }
444
+ /** Effective pricing for an already-canonical key: a runtime override wins over the registry. */
445
+ function effectivePricing(key) {
446
+ return _pricingOverrides.get(key) ?? lookupModel(key)?.pricing;
447
+ }
435
448
  /** Get pricing for a model. Falls back to sonnet pricing for unknown models. */
436
449
  export function getModelPricing(model, defaultModel = 'claude-sonnet-4-6') {
437
- if (!model)
438
- return lookupModel(defaultModel)?.pricing ?? { input: 0, output: 0 };
439
- const clean = model.replace(/^(anthropic|openai|openai-codex|google|gemini|agy|cursor|grok|xai)\//g, '');
440
- // Check overrides first
441
- const override = _pricingOverrides.get(clean);
442
- if (override)
443
- return override;
444
- const known = lookupModel(clean);
445
- if (known)
446
- return known.pricing;
447
- console.warn(`[models] Unknown model "${model}" — falling back to ${defaultModel} pricing`);
448
- return lookupModel(defaultModel)?.pricing ?? { input: 0, output: 0 };
450
+ // No model means "the engine default" — which still goes through the override
451
+ // map, exactly like an explicit one. `||` and not `??`: an empty string is a
452
+ // missing model, not a model named "", and callers do pass one (`session_start`
453
+ // puts no minLength on `model`, and the config spread preserves it verbatim).
454
+ const direct = effectivePricing(pricingKey(model || defaultModel));
455
+ if (direct)
456
+ return direct;
457
+ if (model)
458
+ console.warn(`[models] Unknown model "${model}" — falling back to ${defaultModel} pricing`);
459
+ return effectivePricing(pricingKey(defaultModel)) ?? { input: 0, output: 0 };
460
+ }
461
+ /**
462
+ * Whether a runtime override was configured for this model, as opposed to the
463
+ * price coming from the registry. Engines that keep their own pricing table need
464
+ * this to tell "the user set 0" from "the registry had nothing", which the
465
+ * returned rate cannot express: both are zero.
466
+ */
467
+ export function hasPricingOverride(model, defaultModel = 'claude-sonnet-4-6') {
468
+ return _pricingOverrides.has(pricingKey(model || defaultModel));
449
469
  }
450
470
  /** Mutable pricing table for runtime overrides (backward compat). */
451
471
  const _pricingOverrides = new Map();
452
472
  export function overrideModelPricing(overrides) {
453
473
  for (const [model, pricing] of Object.entries(overrides)) {
454
- const base = lookupModel(model)?.pricing ?? { input: 0, output: 0 };
455
- _pricingOverrides.set(model, {
474
+ const key = pricingKey(model);
475
+ const known = lookupModel(key);
476
+ // There is no list price to merge onto, so the unspecified fields become 0
477
+ // — free tokens. That is a legitimate idiom (subscription accounting) and a
478
+ // very common typo, and the two are indistinguishable here, so say it out
479
+ // loud instead of guessing a price no one registered.
480
+ if (!known && (pricing.input === undefined || pricing.output === undefined))
481
+ console.warn(`[models] Partial pricing override for unregistered model "${model}" — unspecified fields default to 0 (free), ` +
482
+ `not to any model's list price. Give both input and output, or register the model.`);
483
+ const base = known?.pricing ?? { input: 0, output: 0 };
484
+ _pricingOverrides.set(key, {
456
485
  input: pricing.input ?? base.input,
457
486
  output: pricing.output ?? base.output,
458
487
  cached: pricing.cached ?? base.cached,
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,19 @@ import * as readline from 'node:readline';
20
20
  import * as fs from 'node:fs';
21
21
  import * as path from 'node:path';
22
22
  import { getModelPricing as _getModelPricingBase, } from './types.js';
23
- import { resolveAlias, estimateTokens } from './models.js';
23
+ import { resolveAlias, estimateTokens, hasPricingOverride } from './models.js';
24
24
  import { buildSanitizer } from './sanitize.js';
25
25
  import { CONTEXT_HIGH_THRESHOLD, MAX_HISTORY_ITEMS, DEFAULT_HISTORY_LIMIT, SESSION_READY_TIMEOUT_MS, SESSION_READY_FALLBACK_MS, TURN_TIMEOUT_MS, COMPACT_TIMEOUT_MS, STOP_SIGKILL_DELAY_MS, SESSION_EVENT, } from './constants.js';
26
26
  // ─── Helpers ────────────────────────────────────────────────────────────────
27
27
  function getModelPricing(model, engineConfig) {
28
- // Try the model registry first; fall back to engine-level pricing
28
+ // Try the model registry first; fall back to engine-level pricing.
29
+ // A user-configured override is not a fallback: an all-zero rate is what a
30
+ // subscription seat is *supposed* to look like, and it reads identically to
31
+ // "the registry had nothing", so ask which one it was rather than guessing.
32
+ // Without this, zeroing a model would hand back engineConfig.pricing — the
33
+ // opposite of what was asked for, and dearer than not overriding at all.
29
34
  const base = _getModelPricingBase(model, 'claude-sonnet-4-6');
30
- if (base.input === 0 && base.output === 0 && engineConfig.pricing) {
35
+ if (base.input === 0 && base.output === 0 && engineConfig.pricing && !hasPricingOverride(model)) {
31
36
  return engineConfig.pricing;
32
37
  }
33
38
  return base;