@cat-factory/server 0.316.0 → 0.318.0

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 (47) hide show
  1. package/dist/agents/ContainerAgentExecutor.d.ts +24 -20
  2. package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
  3. package/dist/agents/ContainerAgentExecutor.js +61 -113
  4. package/dist/agents/ContainerAgentExecutor.js.map +1 -1
  5. package/dist/agents/ContainerEnvironmentProbeAgent.d.ts +95 -29
  6. package/dist/agents/ContainerEnvironmentProbeAgent.d.ts.map +1 -1
  7. package/dist/agents/ContainerEnvironmentProbeAgent.js +177 -61
  8. package/dist/agents/ContainerEnvironmentProbeAgent.js.map +1 -1
  9. package/dist/agents/ModelRouter.d.ts +40 -4
  10. package/dist/agents/ModelRouter.d.ts.map +1 -1
  11. package/dist/agents/ModelRouter.js +1 -1
  12. package/dist/agents/ModelRouter.js.map +1 -1
  13. package/dist/agents/containerJobAccounting.d.ts +10 -3
  14. package/dist/agents/containerJobAccounting.d.ts.map +1 -1
  15. package/dist/agents/containerJobAccounting.js +11 -4
  16. package/dist/agents/containerJobAccounting.js.map +1 -1
  17. package/dist/agents/containerJobAuth.d.ts +146 -0
  18. package/dist/agents/containerJobAuth.d.ts.map +1 -0
  19. package/dist/agents/containerJobAuth.js +171 -0
  20. package/dist/agents/containerJobAuth.js.map +1 -0
  21. package/dist/agents/dispatchPromptContext.d.ts +30 -0
  22. package/dist/agents/dispatchPromptContext.d.ts.map +1 -0
  23. package/dist/agents/dispatchPromptContext.js +23 -0
  24. package/dist/agents/dispatchPromptContext.js.map +1 -0
  25. package/dist/agents/singleKindModel.d.ts +46 -0
  26. package/dist/agents/singleKindModel.d.ts.map +1 -0
  27. package/dist/agents/singleKindModel.js +59 -0
  28. package/dist/agents/singleKindModel.js.map +1 -0
  29. package/dist/agents/testCredentials.d.ts +25 -0
  30. package/dist/agents/testCredentials.d.ts.map +1 -0
  31. package/dist/agents/testCredentials.js +23 -0
  32. package/dist/agents/testCredentials.js.map +1 -0
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/modules/environments/EnvironmentController.d.ts.map +1 -1
  38. package/dist/modules/environments/EnvironmentController.js +39 -2
  39. package/dist/modules/environments/EnvironmentController.js.map +1 -1
  40. package/dist/persistence/rpc-allowlist.d.ts.map +1 -1
  41. package/dist/persistence/rpc-allowlist.js +9 -0
  42. package/dist/persistence/rpc-allowlist.js.map +1 -1
  43. package/dist/runtime/keyDrift.js +1 -1
  44. package/dist/runtime/keyDrift.js.map +1 -1
  45. package/dist/runtime/platformHealth.js +4 -2
  46. package/dist/runtime/platformHealth.js.map +1 -1
  47. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerEnvironmentProbeAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerEnvironmentProbeAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAE5B,QAAQ,EACR,wBAAwB,EAGxB,eAAe,EAEhB,MAAM,qBAAqB,CAAA;AAc5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAElF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAmDnF,MAAM,WAAW,0CAA0C;IACzD,iGAAiG;IACjG,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,gGAAgG;IAChG,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E;;;;OAIG;IACH,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;IACtD,kFAAkF;IAClF,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,iFAAiF;IACjF,cAAc,EAAE,uBAAuB,CAAA;IACvC;;;;;;;;;;OAUG;IACH,MAAM,EAAE,MAAM,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAA;IACjD,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IACzF;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,8BAA+B,YAAW,qBAAqB;IAG9D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YAA6B,IAAI,EAAE,0CAA0C,EAE5E;IAED;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAItF;IAEK,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA+H7E;IAEK,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiD1E;IAEK,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG;IAKX;;;;;;;;;;;OAWG;YACW,cAAc;IAuB5B;;;;;OAKG;YACW,gBAAgB;CAa/B"}
1
+ {"version":3,"file":"ContainerEnvironmentProbeAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ContainerEnvironmentProbeAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EAIxB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAA;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAmB,MAAM,sBAAsB,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAElF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AA8DnF,MAAM,WAAW,0CAA0C;IACzD,iGAAiG;IACjG,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,gGAAgG;IAChG,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAA;IAC5E;;;;OAIG;IACH,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;IACtD,kFAAkF;IAClF,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C;;;;;;;;;;OAUG;IACH,YAAY,EAAE,sBAAsB,CAAA;IACpC;;;;;;;;;OASG;IACH,IAAI,EAAE,wBAAwB,CAAA;IAC9B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAA;IACvC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IACzF;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,8BAA+B,YAAW,qBAAqB;IAI9D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IAEnD,YAA6B,IAAI,EAAE,0CAA0C,EAG5E;IAED;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAItF;IAED;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CAAC,OAAO,EAAE;QAC/B,WAAW,EAAE,MAAM,CAAA;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,uBAAuB,CAAA;QAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAC3B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAczC;IAEK,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsJ7E;IAEK,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA2D1E;IAED;;;;;;;;;;;;;OAaG;YACW,gBAAgB;IAW9B;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkBX,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAYpB;;;OAGG;IACH,OAAO,CAAC,GAAG;IAKX;;;;;OAKG;YACW,gBAAgB;CAa/B"}
@@ -1,6 +1,9 @@
1
- import { failureKindFromHarnessCause, runBestEffort } from '@cat-factory/kernel';
2
- import { environmentProbeSystemPrompt, environmentProbeUserPrompt, ENVIRONMENT_PROBE_SHAPE_HINT, isProxyableProvider, } from '@cat-factory/agents';
3
- import { ENVIRONMENT_PROBE_API_AGENT_KIND, ENVIRONMENT_PROBE_UI_AGENT_KIND, isEnvironmentProbeReportPayload, } from '@cat-factory/contracts';
1
+ import { failureKindFromHarnessCause, getErrorMessage } from '@cat-factory/kernel';
2
+ import { environmentProbeSystemPrompt, environmentProbeUserPrompt, ENVIRONMENT_PROBE_SHAPE_HINT, } from '@cat-factory/agents';
3
+ import { environmentProbeAgentKind, isEnvironmentProbeReportPayload } from '@cat-factory/contracts';
4
+ import { ContainerJobAccounting, } from './containerJobAccounting.js';
5
+ import { providerOf } from './containerJobAddressing.js';
6
+ import { resolveTestCredentials } from './testCredentials.js';
4
7
  import { githubRepoOrigin } from './containerAgentBody.js';
5
8
  import { RunnerJobClient } from './RunnerJobClient.js';
6
9
  import { logger } from '../observability/logger.js';
@@ -25,15 +28,31 @@ import { logger } from '../observability/logger.js';
25
28
  // and release. A per-run container backend puts a differently-imaged job in its own container,
26
29
  // so a poll that forgot the variant polls a container that was never started, and a release
27
30
  // that forgot it leaves a browser container running for its full lifetime.
28
- // - The MODEL is per surface too, resolved by the facade from each tester kind's own routing. One
29
- // shared ref sends whatever `tester-api` resolved to at a Playwright job that has to read
30
- // screenshots, and no setting anywhere could change it.
31
+ // - The MODEL is resolved PER DISPATCH, by the same precedence a pipeline step's is (the frame's
32
+ // pin, else the workspace's model preset for this prober's kind, else the deployment's env
33
+ // routing), and with it the HARNESS and the credential that opens it. Read at wiring from the
34
+ // env routing instead, it is whatever that deployment defaults to: a workspace running
35
+ // everything on its Claude preset had its dry run dispatched at Qwen, which the LLM proxy then
36
+ // refused for having no key, and the prober's subscription was never asked for at all.
31
37
  // - The TEST SECRETS are resolved ONCE here: the values go on the body's dedicated `testSecrets`
32
38
  // field (the harness turns them into the agent process's environment) and the key +
33
39
  // description pairs of that SAME list are what the prompt advertises. One resolution, so the
34
40
  // prompt cannot name a variable the container does not carry, and the three states that
35
41
  // resolution can END in are stated to the prober rather than collapsed into an empty list.
42
+ // - What the dispatch RESOLVED rides back on the handle and is persisted by the caller, and what
43
+ // the job SPENT is filed through the same `ContainerJobAccounting` a pipeline step's is. A
44
+ // subscription-routed dry run talks straight to the vendor, so the LLM proxy meters none of it:
45
+ // with no accounting here its whole burn was absent from `llm_call_metrics`, from the leased
46
+ // token's usage-aware rotation, and from the modeled quota cycle. Free and invisible, on the one
47
+ // flow whose own admission gate is a budget.
36
48
  // ---------------------------------------------------------------------------
49
+ /**
50
+ * The `provider:model` label a dispatch is recorded under, spelled the same way the step path
51
+ * spells it (`ContainerAgentExecutor`'s `buildJobBody`), so one reader can parse either.
52
+ */
53
+ function modelLabel(ref) {
54
+ return `${ref.provider}:${ref.model}`;
55
+ }
37
56
  /** Which executor image each surface needs. */
38
57
  const IMAGE_BY_SURFACE = {
39
58
  // The plain harness image: `curl` and the repo's own runtime are all an HTTP prober needs.
@@ -44,17 +63,14 @@ const IMAGE_BY_SURFACE = {
44
63
  // environment.
45
64
  ui: 'ui',
46
65
  };
47
- /** The telemetry agent kind each surface's spend is filed under. */
48
- const KIND_BY_SURFACE = {
49
- api: ENVIRONMENT_PROBE_API_AGENT_KIND,
50
- ui: ENVIRONMENT_PROBE_UI_AGENT_KIND,
51
- };
52
66
  export class ContainerEnvironmentProbeAgent {
53
67
  deps;
54
68
  jobs;
69
+ accounting;
55
70
  constructor(deps) {
56
71
  this.deps = deps;
57
72
  this.jobs = new RunnerJobClient(deps.resolveTransport);
73
+ this.accounting = new ContainerJobAccounting(deps.accounting ?? {});
58
74
  }
59
75
  /**
60
76
  * Whether the workspace's resolved runner backend can serve this surface's executor image.
@@ -74,6 +90,37 @@ export class ContainerEnvironmentProbeAgent {
74
90
  return false;
75
91
  return transport.supportsImage?.(IMAGE_BY_SURFACE[surface]) ?? true;
76
92
  }
93
+ /**
94
+ * Whether the model this frame's dry run resolves to can actually be dispatched, run at ADMISSION
95
+ * over the same two steps `start` takes: resolve the model (which refuses a provider the LLM proxy
96
+ * cannot serve), then ask the auth resolver whether the harness that model names has a credential
97
+ * to open it.
98
+ *
99
+ * Asked here rather than left to the dispatch because both answers are already knowable, and
100
+ * neither is knowable cheaply later: reached from inside `stage.dispatch`, each one fails the run
101
+ * at `probing` after a throwaway branch, a full provision and a teardown, to report something the
102
+ * workspace's own preset said before anything was created.
103
+ *
104
+ * A resolution that THROWS is the refusal, carried verbatim: `resolveDispatchRef`'s message
105
+ * already names the fix (pick a Workers AI model, configure a provider key, add a local runner),
106
+ * and re-wording it here would hand the operator two spellings of one problem.
107
+ */
108
+ async checkDispatchable(subject) {
109
+ let resolved;
110
+ try {
111
+ resolved = await this.resolveModel(subject, subject.surface);
112
+ }
113
+ catch (error) {
114
+ return { ok: false, detail: getErrorMessage(error) };
115
+ }
116
+ const gap = await this.deps.auth.describeAuthGap({
117
+ harness: resolved.harness,
118
+ subscriptionVendor: resolved.subscriptionVendor,
119
+ workspaceId: subject.workspaceId,
120
+ ...(subject.initiatedBy ? { initiatedByUserId: subject.initiatedBy } : {}),
121
+ });
122
+ return gap ? { ok: false, detail: gap } : { ok: true, model: modelLabel(resolved.ref) };
123
+ }
77
124
  async start(request) {
78
125
  const { workspaceId, jobId, surface, repo, environment } = request;
79
126
  const log = logger.child({
@@ -87,18 +134,36 @@ export class ContainerEnvironmentProbeAgent {
87
134
  throw new Error(`Workspace '${workspaceId}' is not connected to a source-control provider, so the ` +
88
135
  'agent dry run has no repository to read.');
89
136
  }
90
- const model = this.deps.models[surface];
91
- if (!isProxyableProvider(model.provider)) {
92
- throw new Error(`An agent dry run needs a model the LLM proxy can serve (Workers AI, or a direct ` +
93
- `OpenAI-compatible provider); the '${surface}' prober is routed to ` +
94
- `'${model.provider}', which is not supported.`);
95
- }
96
137
  if (!environment.url) {
97
138
  throw new Error('The environment exposed no URL, so there is nothing for an agent to drive.');
98
139
  }
140
+ const agentKind = environmentProbeAgentKind(surface);
141
+ // The model this dispatch runs, then the credential that opens it. Both per dispatch, and in
142
+ // this order: the harness the model names decides which auth channel there is to resolve.
143
+ const { ref, harness, subscriptionVendor } = await this.resolveModel(request, surface);
144
+ const { auth, subscriptionTokenId } = await this.deps.auth.resolve({
145
+ harness,
146
+ ref,
147
+ subscriptionVendor,
148
+ workspaceId,
149
+ // The self-test run IS this flow's run, so its id is what the container's calls are metered
150
+ // under, and (for an individual-usage vendor) the id the initiator's credential activation
151
+ // was minted against by the start gate.
152
+ executionId: jobId,
153
+ agentKind,
154
+ ...(request.initiatedBy ? { initiatedByUserId: request.initiatedBy } : {}),
155
+ });
99
156
  // ONE resolution, two consumers: the values become the container's environment variables and
100
157
  // the keys + descriptions of the same list are what the prompt advertises. See the class note.
101
- const secrets = await this.resolveSecrets(workspaceId, request.blockId, log);
158
+ // The SAME resolution the tester step's dispatch uses: one read, two projections (the values
159
+ // for the container, the state for the prompt). Shared because a dry run's claim is that it
160
+ // predicts what a tester will be handed, which it cannot do from a different read.
161
+ const secrets = await resolveTestCredentials({
162
+ ...(this.deps.resolveTestSecrets ? { resolve: this.deps.resolveTestSecrets } : {}),
163
+ workspaceId,
164
+ blockId: request.blockId,
165
+ logger: log,
166
+ });
102
167
  const repoIds = await this.resolveRepoScope(workspaceId, repo.owner, repo.name);
103
168
  const ghToken = await this.deps.mintInstallationToken(installation.installationId, {
104
169
  executionId: jobId,
@@ -106,14 +171,6 @@ export class ContainerEnvironmentProbeAgent {
106
171
  repoIds,
107
172
  ...(request.initiatedBy ? { initiatedBy: request.initiatedBy } : {}),
108
173
  });
109
- const agentKind = KIND_BY_SURFACE[surface];
110
- const sessionToken = await this.deps.sessionService.mint({
111
- workspaceId,
112
- executionId: jobId,
113
- agentKind,
114
- provider: model.provider,
115
- model: model.model,
116
- });
117
174
  const origin = (this.deps.resolveRepoOrigin ?? githubRepoOrigin)({
118
175
  installationId: installation.installationId,
119
176
  repoId: repoIds[0] ?? '',
@@ -143,10 +200,10 @@ export class ContainerEnvironmentProbeAgent {
143
200
  ...(repo.serviceDirectory ? { serviceDirectory: repo.serviceDirectory } : {}),
144
201
  },
145
202
  }),
146
- model: model.model,
147
- proxyBaseUrl: this.deps.proxyBaseUrl,
148
- proxyPhasePath: true,
149
- sessionToken,
203
+ model: ref.model,
204
+ // The resolved auth channel, spread exactly as a pipeline step's body spreads it, so the
205
+ // harness cannot tell a dry run's dispatch from a step's by how it was authenticated.
206
+ ...auth,
150
207
  ghToken,
151
208
  repo: {
152
209
  owner: repo.owner,
@@ -192,13 +249,32 @@ export class ContainerEnvironmentProbeAgent {
192
249
  ],
193
250
  });
194
251
  log.info('environment dry run: container accepted job');
195
- return { workspaceId, jobId, surface };
252
+ return {
253
+ workspaceId,
254
+ jobId,
255
+ surface,
256
+ blockId: request.blockId,
257
+ initiatedBy: request.initiatedBy,
258
+ // What only THIS moment knows, handed back for the caller to persist: see
259
+ // `EnvironmentProbeDispatch`. The leased pooled token id in particular has no second source,
260
+ // and it is the row the settled job's tokens are attributed back to.
261
+ dispatch: {
262
+ model: modelLabel(ref),
263
+ ...(subscriptionTokenId ? { subscriptionTokenId } : {}),
264
+ ...(subscriptionVendor ? { subscriptionVendor } : {}),
265
+ },
266
+ };
196
267
  }
197
268
  async poll(handle) {
198
269
  const view = await this.jobs.poll(handle.workspaceId, this.ref(handle.jobId, handle.surface));
270
+ // What the job has SPENT, filed on every poll and on every terminal state alike, exactly as the
271
+ // step path files it. See `settleAccounting` for why the failed branches below are not
272
+ // shortcuts past it.
273
+ await this.accounting.recordCalls(this.jobHandle(handle), view.callMetrics);
199
274
  if (view.state === 'running') {
200
275
  return view.progress ? { state: 'running', subtasks: view.progress } : { state: 'running' };
201
276
  }
277
+ await this.settleAccounting(handle, view);
202
278
  if (view.state === 'failed') {
203
279
  return {
204
280
  state: 'failed',
@@ -236,16 +312,84 @@ export class ContainerEnvironmentProbeAgent {
236
312
  'established about the environment.',
237
313
  };
238
314
  }
239
- const model = this.deps.models[handle.surface];
315
+ // The model the container RAN, as the dispatch recorded it and the caller handed it back: never
316
+ // re-resolved here. A fresh poll process asking the frame and the preset again would answer
317
+ // about them as they are NOW, so a pin cleared while the container worked stamps the report
318
+ // with a model nobody ran, which is the one label an operator weighs the verdict by. Absent is
319
+ // a state the report already documents ("absent when the dispatch did not say"), so a handle
320
+ // that carries none leaves the field off rather than guessing at one.
240
321
  return {
241
322
  state: 'done',
242
323
  report: result.custom,
243
- model: `${model.provider}:${model.model}`,
324
+ ...(handle.dispatch?.model ? { model: handle.dispatch.model } : {}),
325
+ };
326
+ }
327
+ /**
328
+ * Everything a SETTLED job owes the ledger, run once the poll knows the job is terminal and
329
+ * BEFORE any of the failure branches return.
330
+ *
331
+ * Before them deliberately: a dry run that spent tokens and then failed (an evicted container, a
332
+ * reply with no JSON) is exactly the run an operator most needs the spend for, and it is the one
333
+ * whose numbers a `return` above this line would drop. The three writes are the step path's own,
334
+ * each idempotent per job id, so the durable driver's replay of a terminal poll cannot
335
+ * double-count.
336
+ *
337
+ * A Pi job reports none of this: the LLM proxy is its single metering point and files its rows
338
+ * itself, so every call here is a no-op for it and the whole method exists for the subscription
339
+ * harnesses, which talk to the vendor direct and are metered nowhere else.
340
+ */
341
+ async settleAccounting(handle, view) {
342
+ const job = this.jobHandle(handle);
343
+ const result = view.result ?? {};
344
+ await this.accounting.recordCallsOnce(job, result);
345
+ await this.accounting.recordPooledUsageOnce(job, result);
346
+ await this.accounting.recordQuotaUsageOnce(job, result);
347
+ }
348
+ /**
349
+ * The dry run's handle as the shared accounting reads one.
350
+ *
351
+ * A self-test is a SINGLE-JOB flow, so the run and the job are one row and `runId` is the job id
352
+ * (which is what makes the recorded rows join to the self-test run the SPA renders). The model,
353
+ * the leased token and the initiator all come off the persisted dispatch attribution rather than
354
+ * being re-derived, for the reason `EnvironmentProbeDispatch` states.
355
+ */
356
+ jobHandle(handle) {
357
+ const model = handle.dispatch?.model;
358
+ return {
359
+ jobId: handle.jobId,
360
+ runId: handle.jobId,
361
+ workspaceId: handle.workspaceId,
362
+ agentKind: environmentProbeAgentKind(handle.surface),
363
+ ...(model ? { model, provider: providerOf(model) } : {}),
364
+ ...(handle.dispatch?.subscriptionTokenId
365
+ ? { subscriptionTokenId: handle.dispatch.subscriptionTokenId }
366
+ : {}),
367
+ ...(handle.dispatch?.subscriptionVendor
368
+ ? { subscriptionVendor: handle.dispatch.subscriptionVendor }
369
+ : {}),
370
+ ...(handle.initiatedBy ? { initiatedByUserId: handle.initiatedBy } : {}),
244
371
  };
245
372
  }
246
373
  async stop(handle) {
247
374
  await this.jobs.release(handle.workspaceId, this.ref(handle.jobId, handle.surface));
248
375
  }
376
+ /**
377
+ * The model + harness + vendor this surface's prober runs on, asked under the prober's OWN agent
378
+ * kind.
379
+ *
380
+ * Its own kind rather than the tester's, which is what {@link environmentProbeAgentKind}
381
+ * documents: a workspace routes its probers by editing the preset entry named after them, and
382
+ * the START gate resolves an individual-usage vendor for that same kind. Borrowing `tester-api`
383
+ * here would put the gate and the dispatch on two different questions.
384
+ */
385
+ resolveModel(subject, surface) {
386
+ return this.deps.resolveModel({
387
+ workspaceId: subject.workspaceId,
388
+ blockId: subject.blockId,
389
+ agentKind: environmentProbeAgentKind(surface),
390
+ ...(subject.initiatedBy ? { initiatedByUserId: subject.initiatedBy } : {}),
391
+ });
392
+ }
249
393
  /**
250
394
  * The job's address. The IMAGE is part of it on every call, not only the dispatch: see the
251
395
  * class note on why a poll or release that drops it addresses the wrong container.
@@ -254,34 +398,6 @@ export class ContainerEnvironmentProbeAgent {
254
398
  const image = IMAGE_BY_SURFACE[surface];
255
399
  return { runId: jobId, jobId, ...(image ? { image } : {}) };
256
400
  }
257
- /**
258
- * The service frame's sealed test credentials, as the two projections this dispatch needs: the
259
- * values for the container, and a BRIEF the prompt states out loud.
260
- *
261
- * Best-effort in the sense that a store that will not open still runs the dry run WITHOUT
262
- * credentials, because an operator learns more from a report naming what was missing than from a
263
- * stage that refused to run. It is NOT best-effort in what it SAYS: `runBestEffort` returning
264
- * `undefined` is an OUTAGE, and folding that into the same empty list as "this service has none
265
- * configured" makes the prober file the platform's failure as a board-configuration gap and send
266
- * someone to re-enter secrets that are already there. The brief keeps the three states apart;
267
- * the warn still carries the cause.
268
- */
269
- async resolveSecrets(workspaceId, blockId, log) {
270
- const resolve = this.deps.resolveTestSecrets;
271
- if (!resolve)
272
- return { env: [], brief: { status: 'unwired' } };
273
- const entries = await runBestEffort(log, 'resolve dry-run test secrets', () => resolve(workspaceId, blockId));
274
- if (!entries)
275
- return { env: [], brief: { status: 'unreadable' } };
276
- const refs = entries.map((entry) => ({
277
- key: entry.key,
278
- description: entry.description,
279
- }));
280
- return {
281
- env: entries.map((entry) => ({ key: entry.key, value: entry.value })),
282
- brief: { status: 'resolved', refs },
283
- };
284
- }
285
401
  /**
286
402
  * The repo the prober's token may reach, as the neutral id the mint's scope speaks in. An empty
287
403
  * result is returned rather than thrown, for the reason the repairer states: a projection
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerEnvironmentProbeAgent.js","sourceRoot":"","sources":["../../src/agents/ContainerEnvironmentProbeAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContainerEnvironmentProbeAgent.js","sourceRoot":"","sources":["../../src/agents/ContainerEnvironmentProbeAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,42 @@
1
- import type { AgentRunContext, ModelFlavor, ModelRef, SubscriptionVendor } from '@cat-factory/kernel';
1
+ import type { LocalModelDeclarations, ModelFlavor, ModelRef, SubscriptionVendor } from '@cat-factory/kernel';
2
2
  import type { HarnessKind } from '@cat-factory/kernel';
3
3
  import { type AgentRouting } from '@cat-factory/agents';
4
+ /**
5
+ * Everything the router reads to pick a model: the agent kind, the workspace, whatever the block
6
+ * pins, and who started the work.
7
+ *
8
+ * A structural SUBSET of {@link import('@cat-factory/kernel').AgentRunContext}, which is what the
9
+ * pipeline path still passes. The point is the caller that has no run context to pass: the AGENT
10
+ * DRY RUN's prober is not an `ExecutionInstance`: it has a workspace, a frame and an initiator, and
11
+ * nothing else the run context describes. Asking it for a whole `AgentRunContext` would have it
12
+ * fabricate a pipeline name, a step index and a final-step flag, and a fabricated run context is a
13
+ * thing later code reads as one. Taking the subset instead is what lets that dispatch resolve its
14
+ * model through THIS precedence rather than reaching for the deployment's env routing directly,
15
+ * which is a model nobody's preset chose.
16
+ *
17
+ * The two OTHER single-job container flows still read the env routing at WIRING and do not come
18
+ * through here: the env-config repairer pins `coder`'s routed ref (and disables itself when it is
19
+ * not proxyable), and the repo bootstrapper pins `architect`'s. Neither has a frame to resolve
20
+ * against (`EnvConfigRepairRequest` and a bootstrap both name a REPOSITORY, and a bootstrap runs
21
+ * before the board has a service block at all), so giving them this precedence is a change to their
22
+ * ports, not a change here.
23
+ */
24
+ export interface StepModelSelection {
25
+ agentKind: string;
26
+ /** Absent ⇒ no workspace defaults are consulted and the env routing decides. */
27
+ workspaceId?: string;
28
+ /** Whoever started the work: whose personal (individual-usage) subscription may be leased. */
29
+ initiatedByUserId?: string;
30
+ /** The route order the preset in force states; absent ⇒ the deployment's default order. */
31
+ providerPreference?: readonly ModelFlavor[];
32
+ /** The initiator's local-runner declarations, folded onto the resolved ref. */
33
+ localModelDeclarations?: readonly LocalModelDeclarations[];
34
+ /** What the block itself pins, if anything. `{}` for a caller whose subject pins nothing. */
35
+ block: {
36
+ modelId?: string;
37
+ modelPresetId?: string;
38
+ };
39
+ }
4
40
  /** The collaborators {@link ModelRouter} needs to resolve a step's model + subscription path. */
5
41
  export interface ModelRouterDependencies {
6
42
  /** Default model routing; used when the block pins no (usable) model. */
@@ -43,7 +79,7 @@ export declare class ModelRouter {
43
79
  * workspace per-kind default > env routing). Side-effect-free and dispatch-free,
44
80
  * so it backs both the up-front `resolveModel` preview and `buildJobBody`.
45
81
  */
46
- resolveRef(context: AgentRunContext): Promise<ModelRef>;
82
+ resolveRef(context: StepModelSelection): Promise<ModelRef>;
47
83
  /**
48
84
  * The canonical catalog model id the step resolves to (block pin > workspace
49
85
  * per-kind default), or undefined when it falls through to the env routing
@@ -62,7 +98,7 @@ export declare class ModelRouter {
62
98
  * base. So a subscriber runs GLM on their plan while a non-subscriber on the same
63
99
  * workspace falls back to Cloudflare GLM.
64
100
  */
65
- resolveEffectiveRef(context: AgentRunContext, workspaceId: string): Promise<{
101
+ resolveEffectiveRef(context: StepModelSelection, workspaceId: string): Promise<{
66
102
  ref: ModelRef;
67
103
  subscriptionVendor?: SubscriptionVendor;
68
104
  }>;
@@ -78,7 +114,7 @@ export declare class ModelRouter {
78
114
  * harnesses (Claude Code / Codex) talk direct to the vendor with a pooled token, so the
79
115
  * proxyable guard does not apply to them.
80
116
  */
81
- resolveDispatchRef(context: AgentRunContext, workspaceId: string): Promise<{
117
+ resolveDispatchRef(context: StepModelSelection, workspaceId: string): Promise<{
82
118
  ref: ModelRef;
83
119
  harness: HarnessKind;
84
120
  subscriptionVendor?: SubscriptionVendor;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelRouter.d.ts","sourceRoot":"","sources":["../../src/agents/ModelRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,KAAK,YAAY,EAA4C,MAAM,qBAAqB,CAAA;AAEjG,iGAAiG;AACjG,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,YAAY,EAAE,YAAY,CAAA;IAC1B,2FAA2F;IAC3F,iBAAiB,EAAE,CACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,kBAAkB,CAAC,EAAE,SAAS,WAAW,EAAE,KACxC,QAAQ,GAAG,SAAS,CAAA;IACzB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAChC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5F;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3F;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uBAAuB,EAAI;IAE9D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4BtD;IAED;;;;;OAKG;YACW,uBAAuB;IAcrC;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CA2BrE;IAED;;;;;;;;;;;OAWG;IACG,kBAAkB,CACtB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAC;QAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAa3F;CACF"}
1
+ {"version":3,"file":"ModelRouter.d.ts","sourceRoot":"","sources":["../../src/agents/ModelRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,KAAK,YAAY,EAA4C,MAAM,qBAAqB,CAAA;AAEjG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAC3C,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC1D,6FAA6F;IAC7F,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD;AAED,iGAAiG;AACjG,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,YAAY,EAAE,YAAY,CAAA;IAC1B,2FAA2F;IAC3F,iBAAiB,EAAE,CACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,kBAAkB,CAAC,EAAE,SAAS,WAAW,EAAE,KACxC,QAAQ,GAAG,SAAS,CAAA;IACzB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAChC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5F;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3F;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uBAAuB,EAAI;IAE9D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4BzD;IAED;;;;;OAKG;YACW,uBAAuB;IAcrC;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CA2BrE;IAED;;;;;;;;;;;OAWG;IACG,kBAAkB,CACtB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAC;QAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAa3F;CACF"}
@@ -110,7 +110,7 @@ export class ModelRouter {
110
110
  const { ref, subscriptionVendor } = await this.resolveEffectiveRef(context, workspaceId);
111
111
  const harness = ref.harness ?? 'pi';
112
112
  if (harness === 'pi' && !isProxyableProvider(ref.provider)) {
113
- throw new Error(`Container implementation needs a model the LLM proxy can serve ` +
113
+ throw new Error(`A container dispatch needs a model the LLM proxy can serve ` +
114
114
  `(Workers AI, a direct OpenAI-compatible provider, or a local runner); ` +
115
115
  `'${ref.provider}' is not supported. Pick a Workers AI model, configure a ` +
116
116
  `provider key (QWEN_API_KEY / DEEPSEEK_API_KEY / MOONSHOT_API_KEY), or add a local ` +
@@ -1 +1 @@
1
- {"version":3,"file":"ModelRouter.js","sourceRoot":"","sources":["../../src/agents/ModelRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelRouter.js","sourceRoot":"","sources":["../../src/agents/ModelRouter.ts"],"names":[],"mappings":"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"}
@@ -104,9 +104,16 @@ export declare class ContainerJobAccounting {
104
104
  /**
105
105
  * Fold the SAME subscription usage into the modeled quota-cycle counters (Part B), for
106
106
  * BOTH pooled and personal runs. A subscription run is the one reporting per-call
107
- * metrics (Pi is proxy-metered and has none), and the handle's provider is the vendor
108
- * slug. Scope = the leased pool token when present, else the run initiator (personal).
109
- * Best-effort, once per job id so a replayed poll can't double-count.
107
+ * metrics (Pi is proxy-metered and has none). Scope = the leased pool token when present,
108
+ * else the run initiator (personal). Best-effort, once per job id so a replayed poll can't
109
+ * double-count.
110
+ *
111
+ * Keyed on the VENDOR the dispatch resolved, and only then on the provider parsed off the
112
+ * model. The two differ for four of the five vendors (`claude`⇄`anthropic`, `codex`⇄`openai`,
113
+ * `glm`⇄`zai`, `kimi`⇄`moonshot`), so a fold that took the provider alone matched DeepSeek and
114
+ * silently counted nothing for the rest: a quota cycle that reported zero for the vendors the
115
+ * feature exists to track. The provider stays as the fallback, so a handle minted before the
116
+ * dispatch carried a vendor still folds exactly as it used to.
110
117
  */
111
118
  recordQuotaUsageOnce(handle: AgentJobHandle, result: RunnerJobResult): Promise<void>;
112
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"containerJobAccounting.d.ts","sourceRoot":"","sources":["../../src/agents/containerJobAccounting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAoBzE,wFAAwF;AACxF,MAAM,WAAW,0BAA0B;IACzC,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,uEAAuE;IACvE,uBAAuB,CAAC,EAAE,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,mFAAmF;IACnF,4BAA4B,CAAC,EAAE,CAC7B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB;AAED,qBAAa,sBAAsB;IA4CrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IA3CjC;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAE3D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAElE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAEjE;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB/F;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAYf;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1F;IAED;;;;;;OAMG;IACG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzF;CACF"}
1
+ {"version":3,"file":"containerJobAccounting.d.ts","sourceRoot":"","sources":["../../src/agents/containerJobAccounting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAoBzE,wFAAwF;AACxF,MAAM,WAAW,0BAA0B;IACzC,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,uEAAuE;IACvE,uBAAuB,CAAC,EAAE,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,mFAAmF;IACnF,4BAA4B,CAAC,EAAE,CAC7B,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA;CACnB;AAED,qBAAa,sBAAsB;IA4CrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IA3CjC;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAE3D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAElE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAEjE;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB/F;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAYf;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1F;IAED;;;;;;;;;;;;;OAaG;IACG,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzF;CACF"}
@@ -162,12 +162,19 @@ export class ContainerJobAccounting {
162
162
  /**
163
163
  * Fold the SAME subscription usage into the modeled quota-cycle counters (Part B), for
164
164
  * BOTH pooled and personal runs. A subscription run is the one reporting per-call
165
- * metrics (Pi is proxy-metered and has none), and the handle's provider is the vendor
166
- * slug. Scope = the leased pool token when present, else the run initiator (personal).
167
- * Best-effort, once per job id so a replayed poll can't double-count.
165
+ * metrics (Pi is proxy-metered and has none). Scope = the leased pool token when present,
166
+ * else the run initiator (personal). Best-effort, once per job id so a replayed poll can't
167
+ * double-count.
168
+ *
169
+ * Keyed on the VENDOR the dispatch resolved, and only then on the provider parsed off the
170
+ * model. The two differ for four of the five vendors (`claude`⇄`anthropic`, `codex`⇄`openai`,
171
+ * `glm`⇄`zai`, `kimi`⇄`moonshot`), so a fold that took the provider alone matched DeepSeek and
172
+ * silently counted nothing for the rest: a quota cycle that reported zero for the vendors the
173
+ * feature exists to track. The provider stays as the fallback, so a handle minted before the
174
+ * dispatch carried a vendor still folds exactly as it used to.
168
175
  */
169
176
  async recordQuotaUsageOnce(handle, result) {
170
- const quotaVendor = handle.provider ?? providerOf(handle.model);
177
+ const quotaVendor = handle.subscriptionVendor ?? handle.provider ?? providerOf(handle.model);
171
178
  if (result.callMetrics &&
172
179
  result.callMetrics.length > 0 &&
173
180
  result.usage &&
@@ -1 +1 @@
1
- {"version":3,"file":"containerJobAccounting.js","sourceRoot":"","sources":["../../src/agents/containerJobAccounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containerJobAccounting.js","sourceRoot":"","sources":["../../src/agents/containerJobAccounting.ts"],"names":[],"mappings":"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"}