@cat-factory/orchestration 0.253.0 → 0.255.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 (40) hide show
  1. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  2. package/dist/modules/execution/AgentContextBuilder.js +6 -9
  3. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  4. package/dist/modules/execution/AgentDispatchController.d.ts +9 -0
  5. package/dist/modules/execution/AgentDispatchController.d.ts.map +1 -1
  6. package/dist/modules/execution/AgentDispatchController.js +25 -1
  7. package/dist/modules/execution/AgentDispatchController.js.map +1 -1
  8. package/dist/modules/execution/CompanionController.d.ts +2 -0
  9. package/dist/modules/execution/CompanionController.d.ts.map +1 -1
  10. package/dist/modules/execution/CompanionController.js +13 -0
  11. package/dist/modules/execution/CompanionController.js.map +1 -1
  12. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  13. package/dist/modules/execution/ExecutionService.js +1 -0
  14. package/dist/modules/execution/ExecutionService.js.map +1 -1
  15. package/dist/modules/execution/RunAdmission.js +5 -0
  16. package/dist/modules/execution/RunAdmission.js.map +1 -1
  17. package/dist/modules/execution/RunDispatcher.d.ts +3 -1
  18. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  19. package/dist/modules/execution/RunDispatcher.js +4 -0
  20. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  21. package/dist/modules/execution/run-design-images.d.ts +15 -0
  22. package/dist/modules/execution/run-design-images.d.ts.map +1 -0
  23. package/dist/modules/execution/run-design-images.js +19 -0
  24. package/dist/modules/execution/run-design-images.js.map +1 -0
  25. package/dist/modules/execution/run-images.d.ts +30 -0
  26. package/dist/modules/execution/run-images.d.ts.map +1 -0
  27. package/dist/modules/execution/run-images.js +80 -0
  28. package/dist/modules/execution/run-images.js.map +1 -0
  29. package/dist/modules/execution/run-reference-screenshots.d.ts +11 -25
  30. package/dist/modules/execution/run-reference-screenshots.d.ts.map +1 -1
  31. package/dist/modules/execution/run-reference-screenshots.js +21 -33
  32. package/dist/modules/execution/run-reference-screenshots.js.map +1 -1
  33. package/dist/modules/execution/step-fold.logic.d.ts +20 -0
  34. package/dist/modules/execution/step-fold.logic.d.ts.map +1 -1
  35. package/dist/modules/execution/step-fold.logic.js +34 -1
  36. package/dist/modules/execution/step-fold.logic.js.map +1 -1
  37. package/dist/validation/validateBinaryGenerators.d.ts.map +1 -1
  38. package/dist/validation/validateBinaryGenerators.js +15 -1
  39. package/dist/validation/validateBinaryGenerators.js.map +1 -1
  40. package/package.json +11 -11
@@ -0,0 +1,80 @@
1
+ import { describeError, noopLogger } from '@cat-factory/kernel';
2
+ import { DESIGN_IMAGES_TRAIT, hasTrait } from '@cat-factory/agents';
3
+ import { resolveBlockReferences } from './block-reference-set.js';
4
+ import { MAX_REFERENCE_SCREENSHOTS, assignFileNames, capReferences, nameReferenceFiles, } from './run-reference-screenshots.js';
5
+ import { MAX_DESIGN_IMAGES } from './run-design-images.js';
6
+ /**
7
+ * Resolve this dispatch's images, as a SPREAD-READY partial so the hot context builder gains no
8
+ * branch of its own.
9
+ *
10
+ * Each half is gated on what the KIND declares, and a kind declaring neither costs nothing: the
11
+ * store and document reads happen only once at least one consumer wants them.
12
+ *
13
+ * - The capture set is gated on the kind's declared `ui` image, the same fact the executor routes
14
+ * the job by, so a deployment's own browser-driven kind is served by the same rule.
15
+ * - The design set is gated on the `design-images` trait, for the same reason.
16
+ *
17
+ * The two halves answer an EMPTY set differently, deliberately. A capture that asked and found
18
+ * nothing still tells a tester so ("you were asked, and there is nothing to compare against"); a
19
+ * building kind with no pictures is just a task that links no design, which is the ordinary state
20
+ * of most tasks and nothing a prompt should spend a line on.
21
+ */
22
+ export async function resolveRunImages(deps, agentKind, workspaceId, blockId) {
23
+ const captures = deps.agentKindRegistry.agentStep(agentKind)?.image === 'ui';
24
+ const builds = hasTrait(agentKind, DESIGN_IMAGES_TRAIT, deps.agentKindRegistry);
25
+ const resolveStore = deps.resolveBinaryArtifactStore;
26
+ if (!resolveStore || (!captures && !builds))
27
+ return {};
28
+ try {
29
+ const store = await resolveStore(workspaceId);
30
+ if (!store)
31
+ return {};
32
+ const { references } = await resolveBlockReferences(deps.documents, store, workspaceId, blockId);
33
+ return {
34
+ ...(captures ? captureSet(references) : {}),
35
+ ...(builds ? designSet(references) : {}),
36
+ };
37
+ }
38
+ catch (error) {
39
+ // An image read must never wedge a run. Resolving the store reads the ACCOUNT's
40
+ // content-storage settings, and that repository decrypts inside itself, so it is one a
41
+ // mothership node deliberately cannot reach: left to propagate, this fails EVERY dispatch of
42
+ // every building kind there, and every capturing one everywhere the store is briefly down.
43
+ // Degrading to "no images" is exactly the unconfigured-storage behaviour, so the run proceeds
44
+ // as it did before the feature existed rather than stopping.
45
+ //
46
+ // Degrade LOUDLY to the operator, and DELIBERATELY silently to the agent. The two are not the
47
+ // same audience: an operator can act on "this deployment cannot read its artifact store", and
48
+ // an agent cannot act on anything here, because a read that failed cannot say whether the task
49
+ // had a picture at all. Claiming a withheld design we never confirmed exists would be the
50
+ // worse error, so the prompt stays as it is for a task that links none.
51
+ ;
52
+ (deps.logger ?? noopLogger).warn('Run image read failed; dispatching with no images', {
53
+ workspaceId,
54
+ blockId,
55
+ agentKind,
56
+ ...describeError(error),
57
+ });
58
+ return {};
59
+ }
60
+ }
61
+ /** The capture half: named files plus the views the cap dropped, empty set included. */
62
+ function captureSet(references) {
63
+ const { kept, omitted } = capReferences(references, MAX_REFERENCE_SCREENSHOTS);
64
+ return { referenceScreenshots: { files: nameReferenceFiles(kept), omitted } };
65
+ }
66
+ /** The design half: nothing at all when the task holds no picture (see {@link resolveRunImages}). */
67
+ function designSet(references) {
68
+ if (!references.length)
69
+ return {};
70
+ const { kept, omitted } = capReferences(references, MAX_DESIGN_IMAGES);
71
+ const names = assignFileNames(kept);
72
+ const files = kept.map((reference, index) => ({
73
+ view: reference.view,
74
+ artifactId: reference.artifactId,
75
+ contentType: reference.contentType,
76
+ fileName: names[index],
77
+ }));
78
+ return { designImages: { files, omitted } };
79
+ }
80
+ //# sourceMappingURL=run-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-images.js","sourceRoot":"","sources":["../../../src/modules/execution/run-images.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { AgentRunContext, DocumentRepository, ReferenceScreenshot, ResolveBinaryArtifactStore } from '@cat-factory/kernel';
2
- import type { AgentKindRegistry } from '@cat-factory/agents';
1
+ import type { ReferenceScreenshot } from '@cat-factory/kernel';
3
2
  import type { BlockReference } from './block-reference-set.js';
4
3
  /**
5
4
  * Name each reference's file, keeping the names UNIQUE within the run.
@@ -10,6 +9,8 @@ import type { BlockReference } from './block-reference-set.js';
10
9
  * deterministic, and the prompt states which view each file is, so the suffix never has to be
11
10
  * interpreted.
12
11
  */
12
+ export declare function assignFileNames(references: readonly BlockReference[]): string[];
13
+ /** {@link assignFileNames}, projected onto the capture manifest's own shape. */
13
14
  export declare function nameReferenceFiles(references: readonly BlockReference[]): ReferenceScreenshot[];
14
15
  /**
15
16
  * How many references one dispatch is handed.
@@ -24,7 +25,13 @@ export declare function nameReferenceFiles(references: readonly BlockReference[]
24
25
  */
25
26
  export declare const MAX_REFERENCE_SCREENSHOTS = 24;
26
27
  /**
27
- * Apply {@link MAX_REFERENCE_SCREENSHOTS}, choosing what to DROP rather than truncating.
28
+ * Apply a `limit` to a reference set, choosing what to DROP rather than truncating.
29
+ *
30
+ * The limit is the CALLER's, because the two consumers of a task's references bound themselves for
31
+ * different reasons and by different amounts: a capture spends transfer time per image
32
+ * ({@link MAX_REFERENCE_SCREENSHOTS}), while an attachment spends input tokens on every turn
33
+ * ({@link MAX_DESIGN_IMAGES}), which is far tighter. One shared number would have to be the
34
+ * smaller, silently starving the capture set.
28
35
  *
29
36
  * A plain prefix would fall on the uploads, because {@link mergeBlockReferences} emits the design
30
37
  * frames first and appends the views only the uploads introduce. That is exactly backwards: the
@@ -35,29 +42,8 @@ export declare const MAX_REFERENCE_SCREENSHOTS = 24;
35
42
  * Emission order is the original one either way, so a caller rendering the set still shows each
36
43
  * design's frames contiguously and the file names stay in gallery order.
37
44
  */
38
- export declare function capReferences(references: readonly BlockReference[]): {
45
+ export declare function capReferences(references: readonly BlockReference[], limit: number): {
39
46
  kept: BlockReference[];
40
47
  omitted: string[];
41
48
  };
42
- /** What {@link resolveReferenceScreenshots} reads through; all of it already on the engine. */
43
- export interface ReferenceScreenshotDeps {
44
- documents?: DocumentRepository;
45
- resolveBinaryArtifactStore?: ResolveBinaryArtifactStore;
46
- agentKindRegistry: AgentKindRegistry;
47
- }
48
- /**
49
- * Resolve the reference files for a dispatch that CAPTURES views, as a SPREAD-READY partial (the
50
- * `validationChecksFor` shape), so the hot context builder gains no branch of its own.
51
- *
52
- * The gate is the running kind's declared `ui` image, the same fact the executor routes the job
53
- * by: only a browser-driven kind captures screenshots, and only a capture has a reference to be
54
- * compared against. It lives HERE rather than at the call site so a deployment's own capturing
55
- * kind is served by the same rule, and so every other kind never triggers the two reads.
56
- *
57
- * ABSENT and EMPTY are different answers and both are reachable: absent means this dispatch never
58
- * asked (a kind that captures nothing, a deployment with no artifact storage), an empty `files`
59
- * means it asked and the task holds no reference at all. A tester with no references names its own
60
- * views, which is the documented fallback, so neither is a failure.
61
- */
62
- export declare function resolveReferenceScreenshots(deps: ReferenceScreenshotDeps, agentKind: string, workspaceId: string, blockId: string): Promise<Pick<AgentRunContext, 'referenceScreenshots'>>;
63
49
  //# sourceMappingURL=run-reference-screenshots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-reference-screenshots.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/run-reference-screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEf,kBAAkB,EAClB,mBAAmB,EAEnB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAoC9D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,mBAAmB,EAAE,CAU/F;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG;IACpE,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAeA;AAED,+FAA+F;AAC/F,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;IACvD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC,CASxD"}
1
+ {"version":3,"file":"run-reference-screenshots.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/run-reference-screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAoC9D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAU/E;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,mBAAmB,EAAE,CAO/F;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,KAAK,EAAE,MAAM,GACZ;IACD,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAeA"}
@@ -1,4 +1,3 @@
1
- import { resolveBlockReferences } from './block-reference-set.js';
2
1
  // ---------------------------------------------------------------------------
3
2
  // The container half of a task's reference designs: turning the reference SET (which artifact is
4
3
  // the reference for each view) into the FILES a capturing agent reads off disk under
@@ -39,7 +38,7 @@ function slugify(view) {
39
38
  * deterministic, and the prompt states which view each file is, so the suffix never has to be
40
39
  * interpreted.
41
40
  */
42
- export function nameReferenceFiles(references) {
41
+ export function assignFileNames(references) {
43
42
  const used = new Set();
44
43
  return references.map((reference) => {
45
44
  const extension = EXTENSIONS[reference.contentType] ?? 'png';
@@ -48,9 +47,18 @@ export function nameReferenceFiles(references) {
48
47
  for (let n = 2; used.has(candidate); n += 1)
49
48
  candidate = `${base}-${n}.${extension}`;
50
49
  used.add(candidate);
51
- return { view: reference.view, artifactId: reference.artifactId, fileName: candidate };
50
+ return candidate;
52
51
  });
53
52
  }
53
+ /** {@link assignFileNames}, projected onto the capture manifest's own shape. */
54
+ export function nameReferenceFiles(references) {
55
+ const names = assignFileNames(references);
56
+ return references.map((reference, index) => ({
57
+ view: reference.view,
58
+ artifactId: reference.artifactId,
59
+ fileName: names[index],
60
+ }));
61
+ }
54
62
  /**
55
63
  * How many references one dispatch is handed.
56
64
  *
@@ -64,7 +72,13 @@ export function nameReferenceFiles(references) {
64
72
  */
65
73
  export const MAX_REFERENCE_SCREENSHOTS = 24;
66
74
  /**
67
- * Apply {@link MAX_REFERENCE_SCREENSHOTS}, choosing what to DROP rather than truncating.
75
+ * Apply a `limit` to a reference set, choosing what to DROP rather than truncating.
76
+ *
77
+ * The limit is the CALLER's, because the two consumers of a task's references bound themselves for
78
+ * different reasons and by different amounts: a capture spends transfer time per image
79
+ * ({@link MAX_REFERENCE_SCREENSHOTS}), while an attachment spends input tokens on every turn
80
+ * ({@link MAX_DESIGN_IMAGES}), which is far tighter. One shared number would have to be the
81
+ * smaller, silently starving the capture set.
68
82
  *
69
83
  * A plain prefix would fall on the uploads, because {@link mergeBlockReferences} emits the design
70
84
  * frames first and appends the views only the uploads introduce. That is exactly backwards: the
@@ -75,14 +89,14 @@ export const MAX_REFERENCE_SCREENSHOTS = 24;
75
89
  * Emission order is the original one either way, so a caller rendering the set still shows each
76
90
  * design's frames contiguously and the file names stay in gallery order.
77
91
  */
78
- export function capReferences(references) {
79
- if (references.length <= MAX_REFERENCE_SCREENSHOTS) {
92
+ export function capReferences(references, limit) {
93
+ if (references.length <= limit) {
80
94
  return { kept: [...references], omitted: [] };
81
95
  }
82
96
  const keep = new Set();
83
97
  for (const pass of ['upload', 'design']) {
84
98
  for (const reference of references) {
85
- if (keep.size >= MAX_REFERENCE_SCREENSHOTS)
99
+ if (keep.size >= limit)
86
100
  break;
87
101
  if (reference.origin === pass)
88
102
  keep.add(reference);
@@ -93,30 +107,4 @@ export function capReferences(references) {
93
107
  omitted: references.filter((reference) => !keep.has(reference)).map((r) => r.view),
94
108
  };
95
109
  }
96
- /**
97
- * Resolve the reference files for a dispatch that CAPTURES views, as a SPREAD-READY partial (the
98
- * `validationChecksFor` shape), so the hot context builder gains no branch of its own.
99
- *
100
- * The gate is the running kind's declared `ui` image, the same fact the executor routes the job
101
- * by: only a browser-driven kind captures screenshots, and only a capture has a reference to be
102
- * compared against. It lives HERE rather than at the call site so a deployment's own capturing
103
- * kind is served by the same rule, and so every other kind never triggers the two reads.
104
- *
105
- * ABSENT and EMPTY are different answers and both are reachable: absent means this dispatch never
106
- * asked (a kind that captures nothing, a deployment with no artifact storage), an empty `files`
107
- * means it asked and the task holds no reference at all. A tester with no references names its own
108
- * views, which is the documented fallback, so neither is a failure.
109
- */
110
- export async function resolveReferenceScreenshots(deps, agentKind, workspaceId, blockId) {
111
- const resolveStore = deps.resolveBinaryArtifactStore;
112
- if (!resolveStore || deps.agentKindRegistry.agentStep(agentKind)?.image !== 'ui')
113
- return {};
114
- const store = await resolveStore(workspaceId);
115
- if (!store)
116
- return {};
117
- const { references } = await resolveBlockReferences(deps.documents, store, workspaceId, blockId);
118
- const { kept, omitted } = capReferences(references);
119
- const set = { files: nameReferenceFiles(kept), omitted };
120
- return { referenceScreenshots: set };
121
- }
122
110
  //# sourceMappingURL=run-reference-screenshots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-reference-screenshots.js","sourceRoot":"","sources":["../../../src/modules/execution/run-reference-screenshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-reference-screenshots.js","sourceRoot":"","sources":["../../../src/modules/execution/run-reference-screenshots.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type AgentJobHandle, type PipelineStep } from '@cat-factory/kernel';
2
+ import type { DispatchToolServers } from '@cat-factory/contracts';
2
3
  /**
3
4
  * Rebuild the job handle a settled/running POLL addresses, from the step alone.
4
5
  *
@@ -41,6 +42,25 @@ export declare function pollHandleFor(step: PipelineStep, workspaceId: string, e
41
42
  * function exists at all.
42
43
  */
43
44
  export declare function recordDispatchAttribution(step: PipelineStep, handle: AgentJobHandle, dispatchedKind: string): void;
45
+ /**
46
+ * Record what an INLINE dispatch will do with the running kind's tool servers (MCP).
47
+ *
48
+ * The counterpart of the `handle.toolServers` fold above on the path that returns a RESULT instead
49
+ * of a job handle. Its one producer today is a consensus-diverted step: the panel runs as inline
50
+ * model calls with no agent CLI, so every server the kind declared is withheld, and without this
51
+ * the step would carry no record at all and read exactly like a kind that declared none.
52
+ *
53
+ * Called BEFORE the inline call, off `AgentExecutor.previewToolServers`, so the two paths record on
54
+ * the same terms: the container path stamps off the handle at dispatch, and a job that later fails
55
+ * keeps its record. Folding an inline resolution off the RESULT instead would drop it on exactly
56
+ * the runs a reader most needs it for, since a failed step returns no result to carry it.
57
+ *
58
+ * `dispatchedKind` is a parameter here for the same reason it is there, and it is what keeps the
59
+ * stamp out of the executor's hands: the engine names the kind it dispatched, so a resolution can
60
+ * never be labelled with another one. Guarded on presence, so an inline executor with nothing to
61
+ * report never erases a record an earlier container round on this step wrote.
62
+ */
63
+ export declare function recordInlineToolServers(step: PipelineStep, resolved: DispatchToolServers | undefined, dispatchedKind: string): void;
44
64
  /**
45
65
  * Record an ACCEPTED container dispatch on the step: the job handle to poll, the attribution
46
66
  * only the dispatch site can resolve ({@link recordDispatchAttribution}), and the container
@@ -1 +1 @@
1
- {"version":3,"file":"step-fold.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/step-fold.logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAY1F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GACrB,IAAI,CAwBN;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GACrB,MAAM,CAKR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpE,OAAO,CAkBT;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,GAC/B,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI3F"}
1
+ {"version":3,"file":"step-fold.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/step-fold.logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAYjE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GACrB,IAAI,CAwBN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EACzC,cAAc,EAAE,MAAM,GACrB,IAAI,CAEN;AAkBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GACrB,MAAM,CAKR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpE,OAAO,CAkBT;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,GAC/B,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI3F"}
@@ -79,7 +79,7 @@ export function recordDispatchAttribution(step, handle, dispatchedKind) {
79
79
  // re-dispatch by an executor that wires no tool servers (the inline path picking up a step a
80
80
  // container path started) never erases the container round's record.
81
81
  if (handle.toolServers)
82
- step.toolServers = { ...handle.toolServers, agentKind: dispatchedKind };
82
+ stampToolServers(step, handle.toolServers, dispatchedKind);
83
83
  // Order-preserving by FIRST dispatch, counting every one after it: the count is what makes a
84
84
  // gate's fourth fixer round visible, so a re-dispatch increments rather than deduplicating.
85
85
  const dispatches = step.dispatches ?? [];
@@ -88,6 +88,39 @@ export function recordDispatchAttribution(step, handle, dispatchedKind) {
88
88
  ? dispatches.map((d) => (d === existing ? { ...d, count: d.count + 1 } : d))
89
89
  : [...dispatches, { agentKind: dispatchedKind, count: 1 }];
90
90
  }
91
+ /**
92
+ * Record what an INLINE dispatch will do with the running kind's tool servers (MCP).
93
+ *
94
+ * The counterpart of the `handle.toolServers` fold above on the path that returns a RESULT instead
95
+ * of a job handle. Its one producer today is a consensus-diverted step: the panel runs as inline
96
+ * model calls with no agent CLI, so every server the kind declared is withheld, and without this
97
+ * the step would carry no record at all and read exactly like a kind that declared none.
98
+ *
99
+ * Called BEFORE the inline call, off `AgentExecutor.previewToolServers`, so the two paths record on
100
+ * the same terms: the container path stamps off the handle at dispatch, and a job that later fails
101
+ * keeps its record. Folding an inline resolution off the RESULT instead would drop it on exactly
102
+ * the runs a reader most needs it for, since a failed step returns no result to carry it.
103
+ *
104
+ * `dispatchedKind` is a parameter here for the same reason it is there, and it is what keeps the
105
+ * stamp out of the executor's hands: the engine names the kind it dispatched, so a resolution can
106
+ * never be labelled with another one. Guarded on presence, so an inline executor with nothing to
107
+ * report never erases a record an earlier container round on this step wrote.
108
+ */
109
+ export function recordInlineToolServers(step, resolved, dispatchedKind) {
110
+ if (resolved)
111
+ stampToolServers(step, resolved, dispatchedKind);
112
+ }
113
+ /**
114
+ * Put one dispatch's tool-server resolution on the step under the kind that ran.
115
+ *
116
+ * Shared by the container and inline folds rather than spelled out at each, because the STAMP is
117
+ * the invariant: the executor reports two lists and the engine alone says whose they are (see
118
+ * `DispatchToolServers`). Two spellings of it is two places for an executor-supplied kind to creep
119
+ * back in.
120
+ */
121
+ function stampToolServers(step, resolved, dispatchedKind) {
122
+ step.toolServers = { ...resolved, agentKind: dispatchedKind };
123
+ }
91
124
  /**
92
125
  * Record an ACCEPTED container dispatch on the step: the job handle to poll, the attribution
93
126
  * only the dispatch site can resolve ({@link recordDispatchAttribution}), and the container
@@ -1 +1 @@
1
- {"version":3,"file":"step-fold.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/step-fold.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-fold.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/step-fold.logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0C,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,8FAA8F;AAC9F,kGAAkG;AAClG,gGAAgG;AAChG,kGAAkG;AAClG,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAkB,EAClB,WAAmB,EACnB,WAAmB;IAEnB,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAM;QAClB,KAAK,EAAE,WAAW;QAClB,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAkB,EAClB,MAAsB,EACtB,cAAsB;IAEtB,IAAI,MAAM,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC3C,IAAI,MAAM,CAAC,mBAAmB;QAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAA;IACrF,IAAI,MAAM,CAAC,iBAAiB;QAAE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC/E,8FAA8F;IAC9F,gGAAgG;IAChG,gGAAgG;IAChG,6FAA6F;IAC7F,oFAAoF;IACpF,gBAAgB;IAChB,EAAE;IACF,+FAA+F;IAC/F,uFAAuF;IACvF,2FAA2F;IAC3F,6FAA6F;IAC7F,qEAAqE;IACrE,IAAI,MAAM,CAAC,WAAW;QAAE,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAClF,6FAA6F;IAC7F,4FAA4F;IAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU,GAAG,QAAQ;QACxB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAkB,EAClB,QAAyC,EACzC,cAAsB;IAEtB,IAAI,QAAQ;QAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,IAAkB,EAClB,QAA6B,EAC7B,cAAsB;IAEtB,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAkB,EAClB,MAAsB,EACtB,cAAsB;IAEtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IACzB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;IACvD,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACjC,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAkB,EAClB,MAAqE;IAErE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAA;IACxC,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,IAAa;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI;QAC1C,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI;QAC5C,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI;KAChD,CAAA;IACD,IACE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM;QAC5B,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QACpC,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;QAC9B,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAChC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACrB,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,MAAgC;IAEhC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAChE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;IACtB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAkB,EAAE,QAA4B;IAChF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IACvE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;IAC9B,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateBinaryGenerators.d.ts","sourceRoot":"","sources":["../../src/validation/validateBinaryGenerators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAelE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,mBAAmB,EAAE,CAqBvB"}
1
+ {"version":3,"file":"validateBinaryGenerators.d.ts","sourceRoot":"","sources":["../../src/validation/validateBinaryGenerators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAgBlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,mBAAmB,EAAE,CAqBvB"}
@@ -1,5 +1,5 @@
1
1
  import { describeFoundationalProblem, isAllowedMcpHttpUrl, validateFoundationalDefinition, } from '@cat-factory/kernel';
2
- import { binaryCredentialInjectionName, binaryGeneratorDefinitionIssues, comparableCredentialInjectionName, modalitiesOfMediaType, } from '@cat-factory/contracts';
2
+ import { binaryAcceptsWithoutCapability, binaryCredentialInjectionName, binaryGeneratorDefinitionIssues, comparableCredentialInjectionName, modalitiesOfMediaType, } from '@cat-factory/contracts';
3
3
  /**
4
4
  * Section 9 of `collectRegistrationProblems`: every generative binary integration a deployment
5
5
  * registers must be a definition the platform can actually dispatch against.
@@ -133,6 +133,20 @@ function checkBinaryGeneratorDetails(definition) {
133
133
  `refused, and one selecting it for the listed modalities would be told it can emit this.`);
134
134
  }
135
135
  }
136
+ // The same fault one axis finer: a declaration whose two halves contradict each other, where
137
+ // every reader believes a different half. An `accepts` set states which values the endpoint
138
+ // takes for an option its `capabilities` say it cannot be asked for at all, so the brief
139
+ // renders the set as fact while admission refuses every step that asks, and the value rule
140
+ // (judged over the capability's declarers) never sees the set at all. The accurate half is
141
+ // unreachable, which makes this an error rather than a warning: the remedy is one capability
142
+ // on one definition, and the deployment has already written down that the endpoint has it.
143
+ for (const { option, capability } of binaryAcceptsWithoutCapability(definition)) {
144
+ invalid('binary_generator_accepts_without_capability', `Generative binary integration "${definition.id}" states the values it accepts for ` +
145
+ `\`${option}\` but does not declare the "${capability}" capability that option needs. ` +
146
+ `A step asking for it is refused as unsupported, so the accepted set is never consulted ` +
147
+ `while the agent's brief states it. Declare "${capability}", or drop the set if the ` +
148
+ `endpoint genuinely takes no such parameter.`);
149
+ }
136
150
  return problems;
137
151
  }
138
152
  //# sourceMappingURL=validateBinaryGenerators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateBinaryGenerators.js","sourceRoot":"","sources":["../../src/validation/validateBinaryGenerators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateBinaryGenerators.js","sourceRoot":"","sources":["../../src/validation/validateBinaryGenerators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.253.0",
3
+ "version": "0.255.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",
@@ -25,20 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^7.0.58",
28
- "@cat-factory/agents": "0.123.4",
29
- "@cat-factory/caching": "0.18.33",
30
- "@cat-factory/contracts": "0.289.0",
31
- "@cat-factory/integrations": "0.153.9",
32
- "@cat-factory/kernel": "0.282.0",
33
- "@cat-factory/prompt-fragments": "1.0.42",
34
- "@cat-factory/sandbox": "0.11.119",
35
- "@cat-factory/spend": "0.15.60",
36
- "@cat-factory/workspaces": "0.27.4"
28
+ "@cat-factory/agents": "0.124.0",
29
+ "@cat-factory/caching": "0.18.36",
30
+ "@cat-factory/contracts": "0.290.0",
31
+ "@cat-factory/integrations": "0.153.12",
32
+ "@cat-factory/kernel": "0.284.0",
33
+ "@cat-factory/prompt-fragments": "1.0.45",
34
+ "@cat-factory/sandbox": "0.11.122",
35
+ "@cat-factory/spend": "0.15.63",
36
+ "@cat-factory/workspaces": "0.27.7"
37
37
  },
38
38
  "devDependencies": {
39
39
  "typescript": "7.0.2",
40
40
  "vitest": "^4.1.10",
41
- "@cat-factory/sandbox-fixtures": "0.7.326"
41
+ "@cat-factory/sandbox-fixtures": "0.7.328"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json",