@cat-factory/orchestration 0.250.0 → 0.251.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 (31) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/modules/execution/ExecutionService.d.ts +11 -3
  5. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  6. package/dist/modules/execution/ExecutionService.js +13 -3
  7. package/dist/modules/execution/ExecutionService.js.map +1 -1
  8. package/dist/modules/execution/PrVerificationReportController.d.ts +6 -0
  9. package/dist/modules/execution/PrVerificationReportController.d.ts.map +1 -1
  10. package/dist/modules/execution/PrVerificationReportController.js +7 -0
  11. package/dist/modules/execution/PrVerificationReportController.js.map +1 -1
  12. package/dist/modules/execution/RunEvidenceLoader.d.ts +117 -5
  13. package/dist/modules/execution/RunEvidenceLoader.d.ts.map +1 -1
  14. package/dist/modules/execution/RunEvidenceLoader.js +122 -26
  15. package/dist/modules/execution/RunEvidenceLoader.js.map +1 -1
  16. package/dist/modules/execution/RunEvidenceReads.d.ts +12 -0
  17. package/dist/modules/execution/RunEvidenceReads.d.ts.map +1 -1
  18. package/dist/modules/execution/RunEvidenceReads.js +15 -0
  19. package/dist/modules/execution/RunEvidenceReads.js.map +1 -1
  20. package/dist/modules/execution/toolServers.logic.d.ts +6 -3
  21. package/dist/modules/execution/toolServers.logic.d.ts.map +1 -1
  22. package/dist/modules/execution/toolServers.logic.js +6 -3
  23. package/dist/modules/execution/toolServers.logic.js.map +1 -1
  24. package/dist/validation/validateRegistrations.d.ts.map +1 -1
  25. package/dist/validation/validateRegistrations.js +3 -280
  26. package/dist/validation/validateRegistrations.js.map +1 -1
  27. package/dist/validation/validateToolServers.d.ts +24 -0
  28. package/dist/validation/validateToolServers.d.ts.map +1 -0
  29. package/dist/validation/validateToolServers.js +337 -0
  30. package/dist/validation/validateToolServers.js.map +1 -0
  31. package/package.json +11 -11
@@ -25,7 +25,8 @@ export class RunEvidenceLoader {
25
25
  const block = await this.deps.blockRepository.get(workspaceId, instance.blockId);
26
26
  if (!block)
27
27
  return null;
28
- return { block, specView: await this.serviceSpec(workspaceId, instance, block) };
28
+ const read = await this.readRunSpec(workspaceId, instance, block);
29
+ return { block, specView: read.status === 'read' ? read.view : null };
29
30
  }
30
31
  /**
31
32
  * The run's `spec/` as a read VIEW, for the SPA's outcome card.
@@ -39,18 +40,30 @@ export class RunEvidenceLoader {
39
40
  *
40
41
  * `EMPTY_SERVICE_SPEC_VIEW` rather than null on an unread spec: the card's own composer already
41
42
  * treats an absent spec as `spec: 'not_read'` and says so, and the read is best-effort by
42
- * design (see {@link serviceSpec}).
43
+ * design (see {@link runSpecRead}).
43
44
  */
44
45
  async specViewForRun(workspaceId, instance) {
46
+ const read = await this.runSpecRead(workspaceId, instance);
47
+ return read.status === 'read' ? read.view : EMPTY_SERVICE_SPEC_VIEW;
48
+ }
49
+ /**
50
+ * The run's `spec/` read WITH the outcome of the read, for a caller whose job is to report it:
51
+ * `GET /api/v1/runs/:runId/spec`.
52
+ *
53
+ * The same gate, the same branch rule, the same memo and the same reader the two reductions use.
54
+ * The difference is only that nothing is folded on the way out (see {@link RunSpecRead}), which
55
+ * is what lets a headless caller tell a service that declares nothing from a repository nobody
56
+ * can currently read.
57
+ */
58
+ async runSpecRead(workspaceId, instance) {
45
59
  const block = await this.deps.blockRepository.get(workspaceId, instance.blockId);
46
60
  if (!block)
47
- return EMPTY_SERVICE_SPEC_VIEW;
48
- return (await this.serviceSpec(workspaceId, instance, block)) ?? EMPTY_SERVICE_SPEC_VIEW;
61
+ return { status: 'no_block' };
62
+ return this.readRunSpec(workspaceId, instance, block);
49
63
  }
50
64
  /**
51
65
  * The service's in-repo `spec/`, reassembled from the run's branch for the requirement →
52
- * evidence join. Null whenever it could not be read, which every consumer reports with a
53
- * stated absence rather than a blank.
66
+ * evidence join, and WHERE the read stopped when there is no tree to hand back.
54
67
  *
55
68
  * GATED, then MEMOISED, because this is the only repo-reading path either reduction has and
56
69
  * the PR-report hook fires on EVERY settled step:
@@ -72,39 +85,122 @@ export class RunEvidenceLoader {
72
85
  * have succeeded. The reader never throws for the last of those, so the distinction is made on
73
86
  * its `diagnostics.anchor` rather than on control flow.
74
87
  */
75
- async serviceSpec(workspaceId, instance, block) {
76
- const resolve = this.deps.resolveRunRepoContext;
77
- if (!resolve)
78
- return null;
88
+ async readRunSpec(workspaceId, instance, block) {
79
89
  const testerReported = instance.steps.some((s) => isTesterKind(s.agentKind) && s.test?.lastReport != null);
80
90
  if (!testerReported)
81
- return null;
91
+ return { status: 'not_read' };
82
92
  const cached = this.specByRun.get(instance.id);
83
- if (cached !== undefined)
84
- return cached;
93
+ if (cached)
94
+ return { status: 'read', ...cached };
95
+ const resolve = this.deps.resolveRunRepoContext;
96
+ if (!resolve)
97
+ return { status: 'vcs_unwired' };
85
98
  try {
86
99
  const ctx = await resolve(workspaceId, instance.blockId);
87
100
  if (!ctx)
88
- return null;
89
- // Read the RUN's branch, not the repo default: the spec increment this task wrote is on
90
- // the PR branch and has not merged yet, so the default branch would be missing exactly
91
- // the requirements the tester just ruled on. The rule is `runSpecBranch` rather than a
92
- // local `??` because the SPA answers the same question and the two had already drifted.
93
- const view = await readServiceSpec(ctx.repo, runSpecBranch(block, ctx.baseBranch));
101
+ return { status: 'no_connection' };
102
+ const attempt = await this.walkSpec(ctx, block);
94
103
  // The reader is TOTAL, so a provider outage arrives as a returned value rather than a throw:
95
104
  // without this line the `catch` below covered only a throwing resolver, and one flaky read
96
105
  // was memoised as the run's answer for the rest of its life. The reader's own anchor is the
97
106
  // discriminator. Every other state IS an answer and is cached: a tree, a branch with no
98
107
  // `spec/`, and a corrupt anchor, which re-reading cannot improve.
99
- if (view.diagnostics?.anchor === 'read_failed')
100
- return null;
101
- this.rememberSpec(instance.id, view);
102
- return view;
108
+ if (attempt.view.diagnostics?.anchor === 'read_failed')
109
+ return { status: 'read_failed' };
110
+ const provenance = {
111
+ provider: ctx.provider ?? 'github',
112
+ // The resolver's owner/name are optional for back-compat with older fakes; the real
113
+ // resolvers always set them, and an empty string is the honest stand-in for a binding
114
+ // that did not.
115
+ owner: ctx.owner ?? '',
116
+ repo: ctx.name ?? '',
117
+ ref: attempt.ref,
118
+ commit: attempt.commit,
119
+ };
120
+ this.rememberSpec(instance.id, { view: attempt.view, provenance });
121
+ return { status: 'read', view: attempt.view, provenance };
103
122
  }
104
123
  catch {
105
- // Best-effort: an unreadable spec is reported as such by each consumer, never fails a run,
106
- // and is re-attempted on the next settlement.
107
- return null;
124
+ // Best-effort for the two reductions: an unreadable spec is reported as such by each
125
+ // consumer, never fails a run, and is re-attempted on the next settlement. The reporting
126
+ // caller gets the same fact as a refusal rather than as an empty spec.
127
+ return { status: 'read_failed' };
128
+ }
129
+ }
130
+ /**
131
+ * Walk the spec at the branch this run pushed to, falling back to the repo default when that
132
+ * branch is demonstrably GONE.
133
+ *
134
+ * The primary ref is the RUN's branch, not the repo default: the spec increment this task wrote
135
+ * is on the pull request's head and has not merged yet, so the default branch would be missing
136
+ * exactly the requirements the tester just ruled on. The rule is `runSpecBranch` rather than a
137
+ * local `??` because the SPA answers the same question and the two had already drifted.
138
+ *
139
+ * The fallback exists because `block.pullRequest` is never cleared and a merged pull request's
140
+ * head branch is routinely deleted (GitHub deletes it automatically when the repository is
141
+ * configured that way). Left un-handled, the run named a branch nobody can read for the rest of
142
+ * the block's life: no head, every file a 404, and a reporting caller refused with a permanent
143
+ * `spec_ref_unresolved`. That makes the post-hoc audit, which is the case this read exists for,
144
+ * the one case that cannot be served. It is also the case `runSpecBranch` already describes as
145
+ * resolved: once the pull request merges, the two branches carry the same requirements, so the
146
+ * default branch is not a substitute for the run's tree but the same tree under its surviving
147
+ * name.
148
+ *
149
+ * Two conditions gate it TOGETHER, and both are needed:
150
+ * - the ref probe came back a definite 404 (the branch does not exist), never a throw, which is
151
+ * an outage and must not be allowed to switch trees mid-incident;
152
+ * - the walk itself found no anchor. A provider degraded only on refs still answers the tree,
153
+ * and re-reading elsewhere would discard an answer we hold.
154
+ * Together they are the same discriminator the public read refuses on ("unresolved plus absent
155
+ * is unproven"), applied one layer earlier, where there is still something to be done about it.
156
+ *
157
+ * What it does NOT do is hide which tree was served: `provenance.ref` names the branch actually
158
+ * read. A pull request CLOSED without merging and then deleted is the one case where the
159
+ * fallback answers with a tree the run was not judged against, and naming the ref is what keeps
160
+ * that legible rather than silent.
161
+ */
162
+ async walkSpec(ctx, block) {
163
+ const ref = runSpecBranch(block, ctx.baseBranch);
164
+ // Resolved BEFORE the walk, so the commit named is one the tree is at least as new as, and
165
+ // memoised with it: a later reader of this run gets the snapshot the tester ruled against
166
+ // rather than a commit resolved long afterwards. It is also the only POSITIVE evidence the
167
+ // read has that the branch resolves at all, which is what lets a reporting caller tell an
168
+ // empty branch from an unreachable repository (both answer 404 for the anchor).
169
+ const head = await this.headSha(ctx.repo, ref);
170
+ const view = await readServiceSpec(ctx.repo, ref);
171
+ const anchor = view.diagnostics?.anchor;
172
+ if (ref === ctx.baseBranch || head.state !== 'absent' || anchor !== 'absent') {
173
+ return { ref, commit: head.state === 'resolved' ? head.sha : null, view };
174
+ }
175
+ const fallbackHead = await this.headSha(ctx.repo, ctx.baseBranch);
176
+ return {
177
+ ref: ctx.baseBranch,
178
+ commit: fallbackHead.state === 'resolved' ? fallbackHead.sha : null,
179
+ view: await readServiceSpec(ctx.repo, ctx.baseBranch),
180
+ };
181
+ }
182
+ /**
183
+ * What resolving a branch's head PROVED, in the three states the callers above act on
184
+ * differently.
185
+ *
186
+ * A bare `string | null` folded the last two together, and the fold is what made a deleted
187
+ * branch indistinguishable from a provider that would not answer: both left `commit: null`,
188
+ * both read as "unproven", and only one of them can be repaired by reading somewhere else.
189
+ * `RepoFiles.headSha` already draws the line (its contract answers null for a branch that does
190
+ * not exist and throws for everything else), so keeping it costs nothing but the naming.
191
+ *
192
+ * `unproven` may never fail the read, which is why the throw is swallowed here rather than left
193
+ * to the caller's outer `catch` (that one means the spec itself could not be read).
194
+ */
195
+ async headSha(repo, ref) {
196
+ try {
197
+ const sha = await repo.headSha(ref);
198
+ return sha ? { state: 'resolved', sha } : { state: 'absent' };
199
+ }
200
+ catch {
201
+ // silent-catch-ok: an unresolvable ref is a VALUE this read reports (`commit: null`), and
202
+ // the anchor's own bytes decide whether an empty answer is trustworthy.
203
+ return { state: 'unproven' };
108
204
  }
109
205
  }
110
206
  /** Per-execution spec memo, bounded by {@link MAX_TRACKED_RUNS}. */
@@ -1 +1 @@
1
- {"version":3,"file":"RunEvidenceLoader.js","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunEvidenceLoader.js","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceLoader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ExecutionInstance } from '@cat-factory/kernel';
2
2
  import type { PrVerificationReport, RunOutcome, ServiceSpecView } from '@cat-factory/contracts';
3
+ import type { RunSpecRead } from './RunEvidenceLoader.js';
3
4
  /**
4
5
  * Bound callbacks rather than the collaborators themselves, so this stays testable standalone and
5
6
  * cannot reach for anything its three reads do not need.
@@ -10,6 +11,7 @@ export interface RunEvidenceReadsDeps {
10
11
  composeReport(workspaceId: string, instance: ExecutionInstance): Promise<PrVerificationReport | null>;
11
12
  composeOutcome(workspaceId: string, instance: ExecutionInstance): Promise<RunOutcome | null>;
12
13
  readSpec(workspaceId: string, instance: ExecutionInstance): Promise<ServiceSpecView>;
14
+ readSpecOutcome(workspaceId: string, instance: ExecutionInstance): Promise<RunSpecRead>;
13
15
  }
14
16
  export declare class RunEvidenceReads {
15
17
  private readonly deps;
@@ -49,5 +51,15 @@ export declare class RunEvidenceReads {
49
51
  * card already states as `spec: 'not_read'` rather than as a clean, empty section.
50
52
  */
51
53
  spec(workspaceId: string, executionId: string): Promise<ServiceSpecView | null>;
54
+ /**
55
+ * The same read as {@link spec}, with WHERE it stopped kept rather than folded onto an empty
56
+ * view: what `GET /api/v1/runs/:runId/spec` answers. Null when the workspace has no such run.
57
+ *
58
+ * The public endpoint reports the read rather than surviving it, so an unwired integration, an
59
+ * unreadable repository and a branch that genuinely carries no `spec/` have to arrive as three
60
+ * different answers. Routed through the same loader as its two siblings above so the tree a
61
+ * caller joins its verdicts against is the tree those verdicts were made against.
62
+ */
63
+ specRead(workspaceId: string, executionId: string): Promise<RunSpecRead | null>;
52
64
  }
53
65
  //# sourceMappingURL=RunEvidenceReads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunEvidenceReads.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceReads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAc/F;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACxF,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IACvC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC5F,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACrF;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,oBAAoB,EAAI;IAE3D;;;;;;;OAOG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAI3F;IAED;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAIlF;IAED;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAIpF;CACF"}
1
+ {"version":3,"file":"RunEvidenceReads.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceReads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAezD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACxF,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IACvC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC5F,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACpF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACxF;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,oBAAoB,EAAI;IAE3D;;;;;;;OAOG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAI3F;IAED;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAIlF;IAED;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAIpF;IAED;;;;;;;;OAQG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAIpF;CACF"}
@@ -53,5 +53,20 @@ export class RunEvidenceReads {
53
53
  return null;
54
54
  return this.deps.readSpec(workspaceId, instance);
55
55
  }
56
+ /**
57
+ * The same read as {@link spec}, with WHERE it stopped kept rather than folded onto an empty
58
+ * view: what `GET /api/v1/runs/:runId/spec` answers. Null when the workspace has no such run.
59
+ *
60
+ * The public endpoint reports the read rather than surviving it, so an unwired integration, an
61
+ * unreadable repository and a branch that genuinely carries no `spec/` have to arrive as three
62
+ * different answers. Routed through the same loader as its two siblings above so the tree a
63
+ * caller joins its verdicts against is the tree those verdicts were made against.
64
+ */
65
+ async specRead(workspaceId, executionId) {
66
+ const instance = await this.deps.getInstance(workspaceId, executionId);
67
+ if (!instance)
68
+ return null;
69
+ return this.deps.readSpecOutcome(workspaceId, instance);
70
+ }
56
71
  }
57
72
  //# sourceMappingURL=RunEvidenceReads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunEvidenceReads.js","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceReads.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,gBAAgB;IACE,IAAI;IAAjC,YAA6B,IAA0B;oBAA1B,IAAI;IAAyB,CAAC;IAE3D;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,WAAmB;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,WAAmB;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,WAAmB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"RunEvidenceReads.js","sourceRoot":"","sources":["../../../src/modules/execution/RunEvidenceReads.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,gBAAgB;IACE,IAAI;IAAjC,YAA6B,IAA0B;oBAA1B,IAAI;IAAyB,CAAC;IAE3D;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,WAAmB;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,WAAmB;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,WAAmB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,WAAmB;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC;CACF"}
@@ -3,9 +3,12 @@ import type { PipelineStep } from '@cat-factory/kernel';
3
3
  /**
4
4
  * Fold the CLI's tool-server startup report onto a step, returning whether anything changed.
5
5
  *
6
- * Applied on all three poll paths for the same reason `applyValidationReport` is, plus one of its
7
- * own: the CLI announces its servers ONCE, near the start of the run, so a job that settles
8
- * between two polls is never seen `running` and only its terminal poll can deliver the report.
6
+ * Applied at two sites that between them cover every poll disposition: the live poll, and once in
7
+ * the dispatcher AHEAD of the settled branch tree, so all five persisting arms inherit it (where
8
+ * `applyValidationReport` instead has a call per path). The coverage matters for the same reason
9
+ * as there, plus one of its own: the CLI announces its servers ONCE, near the start of the run, so
10
+ * a job that settles between two polls is never seen `running` and only its terminal poll can
11
+ * deliver the report.
9
12
  *
10
13
  * Two guards that are load-bearing rather than defensive:
11
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"toolServers.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAYvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAQlF;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAuBnF"}
1
+ {"version":3,"file":"toolServers.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAYvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAQlF;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAuBnF"}
@@ -11,9 +11,12 @@ import { isToolServerObservedStatus } from '@cat-factory/contracts';
11
11
  /**
12
12
  * Fold the CLI's tool-server startup report onto a step, returning whether anything changed.
13
13
  *
14
- * Applied on all three poll paths for the same reason `applyValidationReport` is, plus one of its
15
- * own: the CLI announces its servers ONCE, near the start of the run, so a job that settles
16
- * between two polls is never seen `running` and only its terminal poll can deliver the report.
14
+ * Applied at two sites that between them cover every poll disposition: the live poll, and once in
15
+ * the dispatcher AHEAD of the settled branch tree, so all five persisting arms inherit it (where
16
+ * `applyValidationReport` instead has a call per path). The coverage matters for the same reason
17
+ * as there, plus one of its own: the CLI announces its servers ONCE, near the start of the run, so
18
+ * a job that settles between two polls is never seen `running` and only its terminal poll can
19
+ * deliver the report.
17
20
  *
18
21
  * Two guards that are load-bearing rather than defensive:
19
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"toolServers.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolServers.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/toolServers.logic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateRegistrations.d.ts","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAEV,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,EAGxB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAgE5B,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,2BAA2B,CAAA;IACzD;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;CACxD;AAED,uFAAuF;AACvF,MAAM,WAAW,4BAA4B;IAC3C,+EAA+E;IAC/E,UAAU,EAAE,mBAAmB,CAAA;IAC/B,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAA;CAC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,4BAA4B,GACjC,mBAAmB,EAAE,CA4FvB;AA+kCD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAuB9E;AAOD,yGAAyG;AACzG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CASlF;AAED,uFAAuF;AACvF,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
1
+ {"version":3,"file":"validateRegistrations.d.ts","sourceRoot":"","sources":["../../src/validation/validateRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAEV,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAqD5B,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;OAIG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,2BAA2B,CAAA;IACzD;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;CACxD;AAED,uFAAuF;AACvF,MAAM,WAAW,4BAA4B;IAC3C,+EAA+E;IAC/E,UAAU,EAAE,mBAAmB,CAAA;IAC/B,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,qGAAqG;IACrG,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAA;CAC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,4BAA4B,GACjC,mBAAmB,EAAE,CA4FvB;AAkyBD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAuB9E;AAOD,yGAAyG;AACzG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CASlF;AAED,uFAAuF;AACvF,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}