@cat-factory/orchestration 0.288.5 → 0.289.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 (37) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/modules/execution/AgentDispatchController.d.ts.map +1 -1
  6. package/dist/modules/execution/AgentDispatchController.js +23 -4
  7. package/dist/modules/execution/AgentDispatchController.js.map +1 -1
  8. package/dist/modules/execution/CompanionController.d.ts.map +1 -1
  9. package/dist/modules/execution/CompanionController.js +11 -0
  10. package/dist/modules/execution/CompanionController.js.map +1 -1
  11. package/dist/modules/execution/DeployFixController.d.ts.map +1 -1
  12. package/dist/modules/execution/DeployFixController.js +3 -0
  13. package/dist/modules/execution/DeployFixController.js.map +1 -1
  14. package/dist/modules/execution/DeployerStepController.d.ts +48 -1
  15. package/dist/modules/execution/DeployerStepController.d.ts.map +1 -1
  16. package/dist/modules/execution/DeployerStepController.js +170 -19
  17. package/dist/modules/execution/DeployerStepController.js.map +1 -1
  18. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  19. package/dist/modules/execution/RunDispatcher.js +8 -0
  20. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  21. package/dist/modules/execution/StepGraph.d.ts.map +1 -1
  22. package/dist/modules/execution/StepGraph.js +3 -0
  23. package/dist/modules/execution/StepGraph.js.map +1 -1
  24. package/dist/modules/execution/advance.d.ts +17 -0
  25. package/dist/modules/execution/advance.d.ts.map +1 -1
  26. package/dist/modules/execution/drive.d.ts +13 -0
  27. package/dist/modules/execution/drive.d.ts.map +1 -1
  28. package/dist/modules/execution/drive.js +28 -2
  29. package/dist/modules/execution/drive.js.map +1 -1
  30. package/dist/modules/execution/environmentDispatch.logic.d.ts +16 -0
  31. package/dist/modules/execution/environmentDispatch.logic.d.ts.map +1 -0
  32. package/dist/modules/execution/environmentDispatch.logic.js +60 -0
  33. package/dist/modules/execution/environmentDispatch.logic.js.map +1 -0
  34. package/dist/modules/execution/job-facts.d.ts.map +1 -1
  35. package/dist/modules/execution/job-facts.js +6 -1
  36. package/dist/modules/execution/job-facts.js.map +1 -1
  37. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"StepGraph.js","sourceRoot":"","sources":["../../../src/modules/execution/StepGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepGraph.js","sourceRoot":"","sources":["../../../src/modules/execution/StepGraph.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,23 @@ export type AdvanceResult =
31
31
  kind: 'awaiting_gate';
32
32
  stepIndex: number;
33
33
  }
34
+ /**
35
+ * A `deployer` step has provisioned an environment the provider has not finished standing up,
36
+ * and the run is parked until it does. The durable driver sleeps, then polls
37
+ * {@link ExecutionService.pollAgentJob} — the deployer owns the wait, so the same entry point
38
+ * serves it, with no job in flight (the deploy container, when there was one, is finished and
39
+ * reclaimed). Polling stops the moment that poll returns anything else: a `ready` environment
40
+ * resumes the fan-out (`continue` / `awaiting_job` for the next frame), and an environment that
41
+ * failed or outlived its readiness ceiling fails the step.
42
+ *
43
+ * A distinct kind rather than `awaiting_job` because the two wait on different things and say
44
+ * so: nothing here is a job, and reporting one would put "job did not finish" on a run whose
45
+ * jobs all finished.
46
+ */
47
+ | {
48
+ kind: 'awaiting_environment';
49
+ stepIndex: number;
50
+ }
34
51
  /**
35
52
  * A step finished in a terminal failure; the driver records it via the single
36
53
  * `failRun` funnel and stops. `error` is the human-readable message. An inline
@@ -1 +1 @@
1
- {"version":3,"file":"advance.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/advance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAK3D,MAAM,MAAM,aAAa;AACvB,uEAAuE;AACrE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB,0EAA0E;GACxE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AACnD;;;;GAIG;GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5D;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC9C;;;;;;;;;;;;GAYG;GACD;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AACH;;;;;;GAMG;GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AACH,qDAAqD;GACnD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,0EAA0E;GACxE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B"}
1
+ {"version":3,"file":"advance.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/advance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAK3D,MAAM,MAAM,aAAa;AACvB,uEAAuE;AACrE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB,0EAA0E;GACxE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AACnD;;;;GAIG;GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC5D;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC9C;;;;;;;;;;;;GAYG;GACD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACrD;;;;;;;;;;;;GAYG;GACD;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AACH;;;;;;GAMG;GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AACH,qDAAqD;GACnD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,0EAA0E;GACxE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B"}
@@ -1,5 +1,18 @@
1
1
  import { type Logger } from '@cat-factory/kernel';
2
2
  import type { ExecutionService } from './ExecutionService.js';
3
+ /**
4
+ * Backstop on how many awaiting_* parks ONE step may drain before its driver re-advances.
5
+ * A park routinely resolves into a DIFFERENT park (a `ci` gate finding CI red dispatches a
6
+ * `ci-fixer` and returns `awaiting_job`; a deploy job whose provider is still building returns
7
+ * `awaiting_environment`), so both drivers hop until the result is no longer a park instead of
8
+ * relying on the next advance to re-establish one. Each hop is itself bounded by its own poll
9
+ * budget, so this only backstops a pathological park-to-park ping-pong.
10
+ *
11
+ * Exported because BOTH facades bound the same loop with it: `driveExecution` here and the
12
+ * Worker's `ExecutionWorkflow`. One knob, so the two cannot drift apart on how long a
13
+ * ping-ponging step is tolerated (the same reason `advanceTimeout` is shared).
14
+ */
15
+ export declare const MAX_PARK_HOPS = 64;
3
16
  /** Poll cadence + budgets for the gates a parked run waits on. */
4
17
  export interface DriveConfig {
5
18
  jobPollIntervalMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CA0MvB"}
1
+ {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQ5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,KAAK,CAAA;AAE/B,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,+FAA+F;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAE/E,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CA4NvB"}
@@ -1,5 +1,18 @@
1
1
  import { describeError, noopLogger } from '@cat-factory/kernel';
2
2
  import { failureFromAdvanceError, failureFromDriver, failureFromResult, } from './runFailure.js';
3
+ /**
4
+ * Backstop on how many awaiting_* parks ONE step may drain before its driver re-advances.
5
+ * A park routinely resolves into a DIFFERENT park (a `ci` gate finding CI red dispatches a
6
+ * `ci-fixer` and returns `awaiting_job`; a deploy job whose provider is still building returns
7
+ * `awaiting_environment`), so both drivers hop until the result is no longer a park instead of
8
+ * relying on the next advance to re-establish one. Each hop is itself bounded by its own poll
9
+ * budget, so this only backstops a pathological park-to-park ping-pong.
10
+ *
11
+ * Exported because BOTH facades bound the same loop with it: `driveExecution` here and the
12
+ * Worker's `ExecutionWorkflow`. One knob, so the two cannot drift apart on how long a
13
+ * ping-ponging step is tolerated (the same reason `advanceTimeout` is shared).
14
+ */
15
+ export const MAX_PARK_HOPS = 64;
3
16
  const instantSleep = () => Promise.resolve();
4
17
  /** No facade clock wired (or `advanceTimeoutMs: 0`): await the work as this loop always did. */
5
18
  const unbounded = async (work) => ({
@@ -146,8 +159,7 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
146
159
  // the order of these checks must not matter). `pollUntil` itself is bounded, so the
147
160
  // outer guard only backstops a pathological gate↔gate ping-pong.
148
161
  let gateHops = 0;
149
- const MAX_GATE_HOPS = 64;
150
- while (gateHops++ < MAX_GATE_HOPS) {
162
+ while (gateHops++ < MAX_PARK_HOPS) {
151
163
  if (result.kind === 'awaiting_job') {
152
164
  const next = await pollUntil('awaiting_job', () => exec.pollAgentJob(workspaceId, executionId), cfg.jobPollIntervalMs, cfg.jobMaxPolls, 'Implementation job', { pollFirst: true });
153
165
  if (!next)
@@ -155,6 +167,20 @@ export async function driveExecution(exec, workspaceId, executionId, cfg, opts =
155
167
  result = next;
156
168
  continue;
157
169
  }
170
+ // A `deployer` step is waiting for the environment it provisioned to become ready.
171
+ // Re-read the provider between sleeps on the JOB cadence (this is infra coming up, not a
172
+ // human-scale gate), through the same `pollAgentJob` entry point the deployer's other park
173
+ // uses. SLEEP-FIRST, like a gate: the advance that parked the step read the provider moments
174
+ // ago, so an immediate re-read would only duplicate that answer. The wait's own ceiling
175
+ // settles it long before this budget does; the budget backstops a provider that answers
176
+ // `provisioning` forever.
177
+ if (result.kind === 'awaiting_environment') {
178
+ const next = await pollUntil('awaiting_environment', () => exec.pollAgentJob(workspaceId, executionId), cfg.jobPollIntervalMs, cfg.jobMaxPolls, 'Environment readiness');
179
+ if (!next)
180
+ return {};
181
+ result = next;
182
+ continue;
183
+ }
158
184
  // A polling gate step (`ci` / `conflicts`): re-run its precheck between sleeps;
159
185
  // which gate is resolved inside `pollGate` from the current step, so one branch
160
186
  // drives both.
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../src/modules/execution/drive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AgentRunContext } from '@cat-factory/kernel';
2
+ import type { AdvanceResult } from './advance.js';
3
+ /**
4
+ * The refusal for an env-consuming step with no reachable environment, or null when there is
5
+ * nothing to refuse.
6
+ *
7
+ * Keyed off the SAME predicate the prompt branches on ({@link runsAgainstEphemeralEnvironment}),
8
+ * so the guard and the instructions cannot disagree about which steps are in ephemeral mode: one
9
+ * keyed off a near-miss condition would either refuse a step the prompt was going to let stand up
10
+ * its own infra, or let through the exact case it exists to catch.
11
+ *
12
+ * The `environment` failure kind (not `preflight`) because that is where the fix is: the
13
+ * provisioning that did not finish, or the environment that went away.
14
+ */
15
+ export declare function environmentDispatchRefusal(context: AgentRunContext): AdvanceResult | null;
16
+ //# sourceMappingURL=environmentDispatch.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentDispatch.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/environmentDispatch.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAqBjD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,GAAG,IAAI,CA0BzF"}
@@ -0,0 +1,60 @@
1
+ import { runsAgainstEphemeralEnvironment } from '@cat-factory/agents';
2
+ // ---------------------------------------------------------------------------
3
+ // The last guard between "this run provisioned no reachable environment" and an agent being told
4
+ // to test one.
5
+ //
6
+ // The prompt for a step in ephemeral-environment mode says "test against the environment
7
+ // described above" and then prints `URL: (pending)`. Those two are contradictory, and the same
8
+ // prompt's bail-out instruction ("if you cannot run a meaningful test at all, set abort") is not
9
+ // a bound: the run this guard was written for reasoned "rather than abort with nothing, I
10
+ // exercised the change against the actual deployment artifacts locally", reconstructed the
11
+ // Dockerfile's stages by hand, tested THAT, and returned `greenlight: true` with the environment
12
+ // recorded as skipped. On a task whose entire brief was "stand up the API", the single unverified
13
+ // thing was the deliverable.
14
+ //
15
+ // That rationalization is predictable and will recur, which is the argument for refusing in the
16
+ // engine rather than for a sterner prompt: a step told to test a URL it was not given has no good
17
+ // move. The deployer's readiness wait is what normally makes this unreachable; this covers what a
18
+ // wait cannot (an environment that expired mid-run, a chain with no `deployer` in it at all).
19
+ // ---------------------------------------------------------------------------
20
+ /**
21
+ * The refusal for an env-consuming step with no reachable environment, or null when there is
22
+ * nothing to refuse.
23
+ *
24
+ * Keyed off the SAME predicate the prompt branches on ({@link runsAgainstEphemeralEnvironment}),
25
+ * so the guard and the instructions cannot disagree about which steps are in ephemeral mode: one
26
+ * keyed off a near-miss condition would either refuse a step the prompt was going to let stand up
27
+ * its own infra, or let through the exact case it exists to catch.
28
+ *
29
+ * The `environment` failure kind (not `preflight`) because that is where the fix is: the
30
+ * provisioning that did not finish, or the environment that went away.
31
+ */
32
+ export function environmentDispatchRefusal(context) {
33
+ if (!runsAgainstEphemeralEnvironment(context))
34
+ return null;
35
+ if (context.environment?.url)
36
+ return null;
37
+ const status = context.environment?.status;
38
+ // An environment that exists but is not reachable and one that was never provisioned are
39
+ // different faults with different fixes — the provider in the first case, the CHAIN (a tester
40
+ // with no `deployer` ahead of it) in the second — so they carry different codes rather than one
41
+ // "no environment" catch-all.
42
+ if (!status) {
43
+ return {
44
+ kind: 'job_failed',
45
+ error: 'No ephemeral environment was provisioned for this service.',
46
+ failureKind: 'environment',
47
+ detail: 'This step runs against an ephemeral environment, and this run provisioned none. A ' +
48
+ 'service declaring kubernetes/custom provisioning needs a `deployer` step ahead of its tester.',
49
+ reason: 'environment_missing',
50
+ };
51
+ }
52
+ return {
53
+ kind: 'job_failed',
54
+ error: 'The ephemeral environment for this step is not reachable.',
55
+ failureKind: 'environment',
56
+ detail: `The service's environment is '${status}' and carries no URL, so there is no address to test against.`,
57
+ reason: 'environment_not_ready',
58
+ };
59
+ }
60
+ //# sourceMappingURL=environmentDispatch.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentDispatch.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/environmentDispatch.logic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AAGrE,8EAA8E;AAC9E,iGAAiG;AACjG,eAAe;AACf,EAAE;AACF,yFAAyF;AACzF,+FAA+F;AAC/F,iGAAiG;AACjG,0FAA0F;AAC1F,2FAA2F;AAC3F,iGAAiG;AACjG,kGAAkG;AAClG,6BAA6B;AAC7B,EAAE;AACF,gGAAgG;AAChG,kGAAkG;AAClG,kGAAkG;AAClG,8FAA8F;AAC9F,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAwB;IACjE,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1D,IAAI,OAAO,CAAC,WAAW,EAAE,GAAG;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1C,yFAAyF;IACzF,8FAA8F;IAC9F,gGAAgG;IAChG,8BAA8B;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,4DAA4D;YACnE,WAAW,EAAE,aAAa;YAC1B,MAAM,EACJ,oFAAoF;gBACpF,+FAA+F;YACjG,MAAM,EAAE,qBAAqB;SAC9B,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,2DAA2D;QAClE,WAAW,EAAE,aAAa;QAC1B,MAAM,EAAE,iCAAiC,MAAM,+DAA+D;QAC9G,MAAM,EAAE,uBAAuB;KAChC,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"job-facts.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/job-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAiBnE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,mBAAmB,CAAA;CACpC;AAED,iGAAiG;AACjG,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"job-facts.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/job-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAiBnE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,mBAAmB,CAAA;CACpC;AAED,iGAAiG;AACjG,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
@@ -41,15 +41,20 @@ export async function recordJobFacts(deps, workspaceId, instance, step, result)
41
41
  // rollups (a flat-rate quota plan costs nothing per token); an inline metered call
42
42
  // defaults to `'metered'` and is summed by the spend gate as before.
43
43
  if (result.usage) {
44
+ const billing = result.usageBilling ?? 'metered';
44
45
  await deps.spend.record({
45
46
  workspaceId,
46
47
  executionId: instance.id,
47
48
  agentKind: step.agentKind,
48
49
  model: result.model ?? 'unknown',
49
50
  usage: result.usage,
50
- billing: result.usageBilling ?? 'metered',
51
+ billing,
51
52
  vendor: result.usageVendor ?? null,
52
53
  });
54
+ // The same fact on the STEP, because that is where the money is read: `step.metrics`
55
+ // carries a `costEstimate` priced identically for both billing kinds, and without this a
56
+ // subscription step's list price renders as spend.
57
+ step.usageBilling = billing;
53
58
  }
54
59
  }
55
60
  //# sourceMappingURL=job-facts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-facts.js","sourceRoot":"","sources":["../../../src/modules/execution/job-facts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAqBxE,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAkB,EAClB,WAAmB,EACnB,QAA2B,EAC3B,IAAkB,EAClB,MAAsB;IAEtB,wFAAwF;IACxF,4FAA4F;IAC5F,yFAAyF;IACzF,4FAA4F;IAC5F,4FAA4F;IAC5F,4FAA4F;IAC5F,wFAAwF;IACxF,wFAAwF;IACxF,IAAI,MAAM,CAAC,YAAY;QAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IAEhE,uFAAuF;IACvF,+FAA+F;IAC/F,+FAA+F;IAC/F,gGAAgG;IAChG,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAEzF,4FAA4F;IAC5F,sFAAsF;IACtF,yFAAyF;IACzF,yCAAyC;IACzC,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAEzF,2FAA2F;IAC3F,2FAA2F;IAC3F,yFAAyF;IACzF,0FAA0F;IAC1F,qDAAqD;IACrD,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEpD,8FAA8F;IAC9F,6FAA6F;IAC7F,2FAA2F;IAC3F,6FAA6F;IAC7F,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IAEtF,mFAAmF;IACnF,oFAAoF;IACpF,qFAAqF;IACrF,mFAAmF;IACnF,qEAAqE;IACrE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW;YACX,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;YAChC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YACzC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;SACnC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"job-facts.js","sourceRoot":"","sources":["../../../src/modules/execution/job-facts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAqBxE,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAkB,EAClB,WAAmB,EACnB,QAA2B,EAC3B,IAAkB,EAClB,MAAsB;IAEtB,wFAAwF;IACxF,4FAA4F;IAC5F,yFAAyF;IACzF,4FAA4F;IAC5F,4FAA4F;IAC5F,4FAA4F;IAC5F,wFAAwF;IACxF,wFAAwF;IACxF,IAAI,MAAM,CAAC,YAAY;QAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IAEhE,uFAAuF;IACvF,+FAA+F;IAC/F,+FAA+F;IAC/F,gGAAgG;IAChG,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAEzF,4FAA4F;IAC5F,sFAAsF;IACtF,yFAAyF;IACzF,yCAAyC;IACzC,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAEzF,2FAA2F;IAC3F,2FAA2F;IAC3F,yFAAyF;IACzF,0FAA0F;IAC1F,qDAAqD;IACrD,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEpD,8FAA8F;IAC9F,6FAA6F;IAC7F,2FAA2F;IAC3F,6FAA6F;IAC7F,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IAEtF,mFAAmF;IACnF,oFAAoF;IACpF,qFAAqF;IACrF,mFAAmF;IACnF,qEAAqE;IACrE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,CAAA;QAChD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW;YACX,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;YAChC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;SACnC,CAAC,CAAA;QACF,qFAAqF;QACrF,yFAAyF;QACzF,mDAAmD;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;IAC7B,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.288.5",
3
+ "version": "0.289.0",
4
4
  "description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,19 +24,19 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@cat-factory/agents": "0.145.2",
28
- "@cat-factory/caching": "0.20.48",
29
- "@cat-factory/contracts": "0.331.0",
30
- "@cat-factory/integrations": "0.166.14",
31
- "@cat-factory/kernel": "0.321.2",
32
- "@cat-factory/prompt-fragments": "1.1.10",
33
- "@cat-factory/sandbox": "0.12.21",
34
- "@cat-factory/spend": "0.16.19",
35
- "@cat-factory/workspaces": "0.28.36",
27
+ "@cat-factory/agents": "0.146.0",
28
+ "@cat-factory/caching": "0.20.50",
29
+ "@cat-factory/contracts": "0.333.0",
30
+ "@cat-factory/integrations": "0.166.16",
31
+ "@cat-factory/kernel": "0.322.0",
32
+ "@cat-factory/prompt-fragments": "1.1.12",
33
+ "@cat-factory/sandbox": "0.12.23",
34
+ "@cat-factory/spend": "0.16.21",
35
+ "@cat-factory/workspaces": "0.28.38",
36
36
  "ai": "^7.0.77"
37
37
  },
38
38
  "devDependencies": {
39
- "@cat-factory/sandbox-fixtures": "0.8.12",
39
+ "@cat-factory/sandbox-fixtures": "0.8.14",
40
40
  "typescript": "7.0.2",
41
41
  "vitest": "^4.1.11"
42
42
  },