@cat-factory/kernel 0.304.0 → 0.307.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 (39) hide show
  1. package/dist/domain/binary-generator-registration.d.ts +48 -0
  2. package/dist/domain/binary-generator-registration.d.ts.map +1 -0
  3. package/dist/domain/binary-generator-registration.js +143 -0
  4. package/dist/domain/binary-generator-registration.js.map +1 -0
  5. package/dist/domain/binary-generator-registry.d.ts +14 -5
  6. package/dist/domain/binary-generator-registry.d.ts.map +1 -1
  7. package/dist/domain/binary-generator-registry.js +14 -5
  8. package/dist/domain/binary-generator-registry.js.map +1 -1
  9. package/dist/domain/foundational-service-registry.d.ts +23 -9
  10. package/dist/domain/foundational-service-registry.d.ts.map +1 -1
  11. package/dist/domain/foundational-service-registry.js +28 -10
  12. package/dist/domain/foundational-service-registry.js.map +1 -1
  13. package/dist/domain/platform-asset-service.d.ts +6 -4
  14. package/dist/domain/platform-asset-service.d.ts.map +1 -1
  15. package/dist/domain/platform-asset-service.js +6 -4
  16. package/dist/domain/platform-asset-service.js.map +1 -1
  17. package/dist/domain/seed.d.ts.map +1 -1
  18. package/dist/domain/seed.js +17 -1
  19. package/dist/domain/seed.js.map +1 -1
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/ports/agent-executor.d.ts +39 -8
  25. package/dist/ports/agent-executor.d.ts.map +1 -1
  26. package/dist/ports/agent-executor.js.map +1 -1
  27. package/dist/ports/index.d.ts +3 -3
  28. package/dist/ports/index.d.ts.map +1 -1
  29. package/dist/ports/index.js +1 -1
  30. package/dist/ports/index.js.map +1 -1
  31. package/dist/ports/runner-transport.d.ts +90 -8
  32. package/dist/ports/runner-transport.d.ts.map +1 -1
  33. package/dist/ports/runner-transport.js +75 -0
  34. package/dist/ports/runner-transport.js.map +1 -1
  35. package/dist/shared/deep-freeze.logic.d.ts +18 -0
  36. package/dist/shared/deep-freeze.logic.d.ts.map +1 -0
  37. package/dist/shared/deep-freeze.logic.js +26 -0
  38. package/dist/shared/deep-freeze.logic.js.map +1 -0
  39. package/package.json +2 -2
@@ -0,0 +1,48 @@
1
+ import { type BinaryGeneratorDefinition } from '@cat-factory/contracts';
2
+ /**
3
+ * The closed set of faults these rules report.
4
+ *
5
+ * A union rather than a bare string so a reader that branches on one (the boot validator's
6
+ * message table, a test asserting the fault it provoked) fails to compile when a member is added
7
+ * or renamed. The spellings are the boot-problem codes verbatim: an operator who searches for the
8
+ * code an unreadable boot printed lands on the rule that emitted it.
9
+ */
10
+ export type BinaryGeneratorRegistrationIssueCode = 'insecure_binary_generator_endpoint' | 'binary_generator_invalid' | 'binary_generator_modality_mismatch' | 'binary_generator_unknown_harness' | 'binary_generator_accepts_without_capability' | 'binary_generator_injection_name_collision';
11
+ /** One fault, in the words the deployment reads at boot. */
12
+ export interface BinaryGeneratorRegistrationIssue {
13
+ code: BinaryGeneratorRegistrationIssueCode;
14
+ message: string;
15
+ }
16
+ /**
17
+ * The per-definition rules a valid PARSE cannot make: the endpoint, the contract set, the media
18
+ * types, the serving harness, and an accepted-value set with no capability behind it.
19
+ *
20
+ * Every one of them is silent at run time and expensive to discover there. A malformed contract
21
+ * becomes an integration the brief describes with no operations; a cleartext endpoint puts the
22
+ * declared credential on the wire from inside the run container; a media type that contradicts
23
+ * the declared modalities makes the integration picked for one job and asked to do another; a
24
+ * harness with no generation tool dispatches a step that produces nothing and reports it as a
25
+ * model problem.
26
+ *
27
+ * Returns EVERY issue rather than the first, so one edit clears a definition instead of several
28
+ * fix-and-retry rounds.
29
+ */
30
+ export declare function binaryGeneratorDetailIssues(definition: BinaryGeneratorDefinition): BinaryGeneratorRegistrationIssue[];
31
+ /**
32
+ * The one rule that spans DEFINITIONS: two integrations may not inject different values into one
33
+ * environment variable.
34
+ *
35
+ * Within a definition the schema already refuses a repeated injection name. Across definitions the
36
+ * same name is legitimate and common, because one vendor behind an image endpoint and a music
37
+ * endpoint is one account: what makes that case safe is that both look the value up under the SAME
38
+ * key, so whichever integration is resolved first sets the variable to exactly what the other
39
+ * wanted. Different keys behind one name is the opposite, and there is no arbitration that makes
40
+ * it right. Serving the first claimant sets the variable the second integration's brief tells the
41
+ * agent to read, so the agent authenticates one vendor with another's key; withholding it (what
42
+ * dispatch does, since a mothership node validates nothing) costs both integrations every run.
43
+ *
44
+ * Takes the definitions that PARSED. Reading a malformed one's credentials here would restate a
45
+ * fault already reported as a second, more confusing one.
46
+ */
47
+ export declare function binaryGeneratorInjectionCollisions(definitions: readonly BinaryGeneratorDefinition[]): BinaryGeneratorRegistrationIssue[];
48
+ //# sourceMappingURL=binary-generator-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-generator-registration.d.ts","sourceRoot":"","sources":["../../src/domain/binary-generator-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAK/B,MAAM,wBAAwB,CAAA;AAmC/B;;;;;;;GAOG;AACH,MAAM,MAAM,oCAAoC,GAC5C,oCAAoC,GACpC,0BAA0B,GAC1B,oCAAoC,GACpC,kCAAkC,GAClC,6CAA6C,GAC7C,2CAA2C,CAAA;AAE/C,4DAA4D;AAC5D,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,oCAAoC,CAAA;IAC1C,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,yBAAyB,GACpC,gCAAgC,EAAE,CAsFpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAChD,gCAAgC,EAAE,CAmCpC"}
@@ -0,0 +1,143 @@
1
+ import { binaryAcceptsWithoutCapability, binaryCredentialInjectionName, comparableCredentialInjectionName, modalitiesOfMediaType, } from '@cat-factory/contracts';
2
+ import { BINARY_GENERATING_HARNESSES, harnessServesBinaryGeneration, isAllowedMcpHttpUrl, } from './agent-capabilities.js';
3
+ import { describeFoundationalProblem, validateFoundationalDefinition, } from './foundational-services.js';
4
+ import { isHarnessKind } from '../ports/model-provider.js';
5
+ /**
6
+ * The per-definition rules a valid PARSE cannot make: the endpoint, the contract set, the media
7
+ * types, the serving harness, and an accepted-value set with no capability behind it.
8
+ *
9
+ * Every one of them is silent at run time and expensive to discover there. A malformed contract
10
+ * becomes an integration the brief describes with no operations; a cleartext endpoint puts the
11
+ * declared credential on the wire from inside the run container; a media type that contradicts
12
+ * the declared modalities makes the integration picked for one job and asked to do another; a
13
+ * harness with no generation tool dispatches a step that produces nothing and reports it as a
14
+ * model problem.
15
+ *
16
+ * Returns EVERY issue rather than the first, so one edit clears a definition instead of several
17
+ * fix-and-retry rounds.
18
+ */
19
+ export function binaryGeneratorDetailIssues(definition) {
20
+ const issues = [];
21
+ const invalid = (code, message) => {
22
+ issues.push({ code, message });
23
+ };
24
+ // The same rule an HTTP tool server's URL is held to, and for the same reason the helper
25
+ // states: a declared credential rides this request, so cleartext off loopback puts it on the
26
+ // wire. (The helper is MCP-named because that was its first caller; the rule is not.)
27
+ if (definition.endpoint && !isAllowedMcpHttpUrl(definition.endpoint)) {
28
+ invalid('insecure_binary_generator_endpoint', `Generative binary integration "${definition.id}" has endpoint "${definition.endpoint}". Its ` +
29
+ `credential is sent with every request, so the endpoint must be https (plain http is ` +
30
+ `accepted only on loopback).`);
31
+ }
32
+ for (const problem of validateFoundationalDefinition({ contracts: definition.contracts })) {
33
+ invalid('binary_generator_invalid', `Generative binary integration "${definition.id}": ${describeFoundationalProblem(problem)}`);
34
+ }
35
+ const declared = new Set(definition.modalities);
36
+ for (const mediaType of definition.mediaTypes ?? []) {
37
+ const consistent = modalitiesOfMediaType(mediaType);
38
+ // An UNRECOGNISED media type is not a fault: the platform's classifier is not a registry of
39
+ // every format that exists, and refusing one would make registering a new codec impossible.
40
+ // A recognised one that CONTRADICTS the declaration is, because both drive selection.
41
+ //
42
+ // Contradiction is an empty INTERSECTION, not an absent member, and for 3D that is the whole
43
+ // difference: a `.glb` is consistent with both `3d-model` and `3d-scene` because the container
44
+ // does not record which it holds, so requiring every member would refuse a scene generator
45
+ // for declaring the only format it can emit.
46
+ if (consistent.length > 0 && !consistent.some((modality) => declared.has(modality))) {
47
+ const names = consistent.join('/');
48
+ invalid('binary_generator_modality_mismatch', `Generative binary integration "${definition.id}" declares media type "${mediaType}" ` +
49
+ `(${names}) but lists none of those among its modalities ` +
50
+ `(${definition.modalities.join(', ')}). A step selecting it for ${names} would be ` +
51
+ `refused, and one selecting it for the listed modalities would be told it can emit this.`);
52
+ }
53
+ }
54
+ // The transport's one rule that needs more than the definition: whether the named CLI actually
55
+ // carries a generation tool. Here rather than in the contracts schema because kernel owns both
56
+ // the harness list and which of them generate, and contracts (which kernel imports) can see
57
+ // neither.
58
+ //
59
+ // Judged against the GENERATING harnesses rather than every harness this build runs, because the
60
+ // two failures are indistinguishable downstream and both are silent: a definition naming `pi` or
61
+ // `claude-code` passes every structural check, admission resolves the step's model to that same
62
+ // CLI and admits it, the dispatch sets the generation flag, the runner ignores it, and the
63
+ // agent's brief tells it to collect output from a staging directory nothing created. The run
64
+ // then reports a model or vendor problem for what is one string in the deployment's own code.
65
+ if (definition.harness && !harnessServesBinaryGeneration(definition.harness)) {
66
+ const known = isHarnessKind(definition.harness);
67
+ invalid('binary_generator_unknown_harness', `Generative binary integration "${definition.id}" is served by harness ` +
68
+ `"${definition.harness}", which ` +
69
+ (known
70
+ ? `this build runs but which carries no built-in generation tool`
71
+ : `is not one this build runs`) +
72
+ `. Only ${BINARY_GENERATING_HARNESSES.join(', ')} can serve a harness-transport ` +
73
+ `integration; a step selecting this one would dispatch and produce nothing.`);
74
+ }
75
+ // The same fault one axis finer: a declaration whose two halves contradict each other, where
76
+ // every reader believes a different half. An `accepts` set states which values the endpoint
77
+ // takes for an option its `capabilities` say it cannot be asked for at all, so the brief
78
+ // renders the set as fact while admission refuses every step that asks, and the value rule
79
+ // (judged over the capability's declarers) never sees the set at all. The accurate half is
80
+ // unreachable, and the remedy is one capability on one definition: the deployment has already
81
+ // written down that the endpoint has it.
82
+ for (const { option, capability } of binaryAcceptsWithoutCapability(definition)) {
83
+ invalid('binary_generator_accepts_without_capability', `Generative binary integration "${definition.id}" states the values it accepts for ` +
84
+ `\`${option}\` but does not declare the "${capability}" capability that option needs. ` +
85
+ `A step asking for it is refused as unsupported, so the accepted set is never consulted ` +
86
+ `while the agent's brief states it. Declare "${capability}", or drop the set if the ` +
87
+ `endpoint genuinely takes no such parameter.`);
88
+ }
89
+ return issues;
90
+ }
91
+ /**
92
+ * The one rule that spans DEFINITIONS: two integrations may not inject different values into one
93
+ * environment variable.
94
+ *
95
+ * Within a definition the schema already refuses a repeated injection name. Across definitions the
96
+ * same name is legitimate and common, because one vendor behind an image endpoint and a music
97
+ * endpoint is one account: what makes that case safe is that both look the value up under the SAME
98
+ * key, so whichever integration is resolved first sets the variable to exactly what the other
99
+ * wanted. Different keys behind one name is the opposite, and there is no arbitration that makes
100
+ * it right. Serving the first claimant sets the variable the second integration's brief tells the
101
+ * agent to read, so the agent authenticates one vendor with another's key; withholding it (what
102
+ * dispatch does, since a mothership node validates nothing) costs both integrations every run.
103
+ *
104
+ * Takes the definitions that PARSED. Reading a malformed one's credentials here would restate a
105
+ * fault already reported as a second, more confusing one.
106
+ */
107
+ export function binaryGeneratorInjectionCollisions(definitions) {
108
+ // Grouped by the COMPARABLE (case-folded) name and reported under the spelling the deployment
109
+ // wrote, because `ACME_KEY` and `acme_key` are one variable wherever the environment is
110
+ // case-insensitive and two everywhere else: the pair collides on exactly the platform where the
111
+ // operator has the least chance of noticing.
112
+ const claims = new Map();
113
+ for (const definition of definitions) {
114
+ for (const credential of definition.credentials ?? []) {
115
+ const comparable = comparableCredentialInjectionName(credential);
116
+ const claim = claims.get(comparable) ?? {
117
+ spelling: binaryCredentialInjectionName(credential),
118
+ byKey: new Map(),
119
+ };
120
+ claim.byKey.set(credential.key, [...(claim.byKey.get(credential.key) ?? []), definition.id]);
121
+ claims.set(comparable, claim);
122
+ }
123
+ }
124
+ const issues = [];
125
+ for (const [, { spelling: envName, byKey }] of claims) {
126
+ if (byKey.size < 2)
127
+ continue;
128
+ const described = [...byKey]
129
+ .map(([key, ids]) => `"${key}" (${ids.join(', ')})`)
130
+ .sort()
131
+ .join(' and ');
132
+ issues.push({
133
+ code: 'binary_generator_injection_name_collision',
134
+ message: `Generative binary integrations disagree about environment variable "${envName}": it is ` +
135
+ `declared for lookup keys ${described}. One variable cannot hold both values, so an agent ` +
136
+ `told to read it for one integration would authenticate with the other's credential. Give ` +
137
+ `one of them a distinct \`envName\`, or point both at the same lookup key if they really ` +
138
+ `share an account.`,
139
+ });
140
+ }
141
+ return issues;
142
+ }
143
+ //# sourceMappingURL=binary-generator-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-generator-registration.js","sourceRoot":"","sources":["../../src/domain/binary-generator-registration.ts"],"names":[],"mappings":"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"}
@@ -89,11 +89,20 @@ export declare class BinaryGeneratorRegistry {
89
89
  private build;
90
90
  }
91
91
  /**
92
- * A fresh, EMPTY generator registry. Each facade news one and a deployment registers its
93
- * integrations on it; the platform ships none (there is no image generator every organisation
94
- * runs, and every one of them is metered), so the default selection set stays empty and a step
95
- * that selects an id on such a deployment is refused at admission rather than dispatching an
96
- * agent that cannot generate.
92
+ * A fresh, EMPTY generator registry: the engine's own default, and the instance a facade installs
93
+ * the shipped integrations onto.
94
+ *
95
+ * Empty is what the ENGINE can honestly default to, not what a deployment runs. The platform does
96
+ * ship integrations (`@cat-factory/binary-generators`, today `nano-banana`), and every facade
97
+ * defaults to `binaryGeneratorRegistryWithBuiltins()` for a container built with no overrides;
98
+ * kernel cannot, because it is the layer those definitions are authored against. Exactly the
99
+ * split `defaultGateRegistry()` and the `@cat-factory/gates` suite have.
100
+ *
101
+ * So this returning nothing is not a claim that a deployment resolves nothing. What it does mean
102
+ * is that a registry a facade never seeds (or one a deployment injects without starting from the
103
+ * built-ins) selects nothing, and a step naming an id on such a deployment is refused at admission
104
+ * rather than dispatching an agent that cannot generate. The shipped `pl_media` preset names
105
+ * `nano-banana`, so that refusal is the upgrade edge an injected registry meets.
97
106
  */
98
107
  export declare function defaultBinaryGeneratorRegistry(): BinaryGeneratorRegistry;
99
108
  //# sourceMappingURL=binary-generator-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary-generator-registry.d.ts","sourceRoot":"","sources":["../../src/domain/binary-generator-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAG/B;;;;GAIG;AACH,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAA;AAqBnE;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB;;;;;OAKG;IACH,YAAY,EAAE,yBAAyB,EAAE,CAAA;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAA;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAGH;IAEf,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAGpD;IAED,6CAA6C;IAC7C,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAElE;IAED,iFAAiF;IACjF,GAAG,IAAI,yBAAyB,EAAE,CAEjC;IAED,sGAAsG;IACtG,GAAG,IAAI,MAAM,EAAE,CAEd;IAED,yFAAyF;IACzF,KAAK,IAAI,mBAAmB,EAAE,CAE7B;IAED,gGAAgG;IAChG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAE9C;IAED,OAAO,CAAC,KAAK;CA4Cd;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,uBAAuB,CAExE"}
1
+ {"version":3,"file":"binary-generator-registry.d.ts","sourceRoot":"","sources":["../../src/domain/binary-generator-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAG/B;;;;GAIG;AACH,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAA;AAqBnE;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB;;;;;OAKG;IACH,YAAY,EAAE,yBAAyB,EAAE,CAAA;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAA;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAGH;IAEf,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAGpD;IAED,6CAA6C;IAC7C,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAElE;IAED,iFAAiF;IACjF,GAAG,IAAI,yBAAyB,EAAE,CAEjC;IAED,sGAAsG;IACtG,GAAG,IAAI,MAAM,EAAE,CAEd;IAED,yFAAyF;IACzF,KAAK,IAAI,mBAAmB,EAAE,CAE7B;IAED,gGAAgG;IAChG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAE9C;IAED,OAAO,CAAC,KAAK;CA4Cd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,IAAI,uBAAuB,CAExE"}
@@ -81,11 +81,20 @@ export class BinaryGeneratorRegistry {
81
81
  }
82
82
  }
83
83
  /**
84
- * A fresh, EMPTY generator registry. Each facade news one and a deployment registers its
85
- * integrations on it; the platform ships none (there is no image generator every organisation
86
- * runs, and every one of them is metered), so the default selection set stays empty and a step
87
- * that selects an id on such a deployment is refused at admission rather than dispatching an
88
- * agent that cannot generate.
84
+ * A fresh, EMPTY generator registry: the engine's own default, and the instance a facade installs
85
+ * the shipped integrations onto.
86
+ *
87
+ * Empty is what the ENGINE can honestly default to, not what a deployment runs. The platform does
88
+ * ship integrations (`@cat-factory/binary-generators`, today `nano-banana`), and every facade
89
+ * defaults to `binaryGeneratorRegistryWithBuiltins()` for a container built with no overrides;
90
+ * kernel cannot, because it is the layer those definitions are authored against. Exactly the
91
+ * split `defaultGateRegistry()` and the `@cat-factory/gates` suite have.
92
+ *
93
+ * So this returning nothing is not a claim that a deployment resolves nothing. What it does mean
94
+ * is that a registry a facade never seeds (or one a deployment injects without starting from the
95
+ * built-ins) selects nothing, and a step naming an id on such a deployment is refused at admission
96
+ * rather than dispatching an agent that cannot generate. The shipped `pl_media` preset names
97
+ * `nano-banana`, so that refusal is the upgrade edge an injected registry meets.
89
98
  */
90
99
  export function defaultBinaryGeneratorRegistry() {
91
100
  return new BinaryGeneratorRegistry();
@@ -1 +1 @@
1
- {"version":3,"file":"binary-generator-registry.js","sourceRoot":"","sources":["../../src/domain/binary-generator-registry.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAmF9D;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IACjB,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAA;IAC3E;;;;;;OAMG;IACK,UAAU,GAGP,IAAI,CAAA;IAEf,2FAA2F;IAC3F,QAAQ,CAAC,UAAqC;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,6CAA6C;IAC7C,WAAW,CAAC,WAAgD;QAC1D,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACjE,CAAC;IAED,iFAAiF;IACjF,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,sGAAsG;IACtG,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC;IAED,yFAAyF;IACzF,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAA;IAC3B,CAAC;IAED,gGAAgG;IAChG,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;IAC7C,CAAC;IAEO,KAAK;QAIX,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAA;QAC3C,MAAM,KAAK,GAA0B,EAAE,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAA;QAC1D,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,iBAAiB,CAAC;oBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,6EAA6E;oBAC7E,yDAAyD;oBACzD,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;gBACF,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC,CAAA;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;gBACtC,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;gBAC9C,YAAY,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAClD,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAChD,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3C,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC,CAAA;YACF,SAAS,CAAC,GAAG,CACX,UAAU,CAAC,EAAE,EACb,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACxD,CAAA;QACH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO,IAAI,uBAAuB,EAAE,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"binary-generator-registry.js","sourceRoot":"","sources":["../../src/domain/binary-generator-registry.ts"],"names":[],"mappings":"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"}
@@ -50,16 +50,30 @@ export declare class FoundationalServiceRegistry {
50
50
  private build;
51
51
  }
52
52
  /**
53
- * A fresh foundational-service registry holding the ONE service the platform ships: its own
54
- * asset storage ({@link platformAssetStorageService}). Each facade news one and a deployment
55
- * registers its estate on top.
53
+ * The foundational services the platform ships, in registration order: today the ONE service its
54
+ * own asset storage ({@link platformAssetStorageService}) is.
56
55
  *
57
- * There is no shared BUSINESS capability every organisation runs, which is why the default
58
- * catalog held nothing for as long as the tier existed. The platform's own asset store is a
59
- * different claim: it is a capability every deployment of THIS platform runs, it is the target a
60
- * binary-output step must select before it can be configured at all, and a deployment that
61
- * prefers its own store registers that one and suppresses this id at either stored tier, exactly
62
- * as it can any other `builtin`.
56
+ * There is no shared BUSINESS capability every organisation runs, which is why the default catalog
57
+ * held nothing for as long as the tier existed. The platform's own asset store is a different
58
+ * claim: it is a capability every deployment of THIS platform runs, it is the target a
59
+ * binary-output step must select before it can be configured at all, and a deployment that prefers
60
+ * its own store registers that one and suppresses this id at either stored tier, exactly as it can
61
+ * any other `builtin`.
62
+ *
63
+ * Exported as data, and shared by reference across every registry rather than rebuilt per one, so
64
+ * a caller can ask whether a registration IS the platform's own instead of merely carrying its id.
65
+ * Those are different questions with opposite answers, and the local facade's mothership warning
66
+ * is the caller that needs the distinction: a deployment that registered this service should hear
67
+ * nothing, one that REPLACED it under the same id should hear that the replacement is inert on a
68
+ * node. {@link deepFreeze} is what makes sharing safe, taking over from the per-registry copies
69
+ * that used to buy the same isolation at the cost of the identity.
70
+ *
71
+ * The sibling shape is `@cat-factory/binary-generators`' `BUILTIN_BINARY_GENERATORS`.
72
+ */
73
+ export declare const PLATFORM_FOUNDATIONAL_SERVICES: readonly FoundationalServiceDefinition[];
74
+ /**
75
+ * A fresh foundational-service registry holding {@link PLATFORM_FOUNDATIONAL_SERVICES}. Each
76
+ * facade news one and a deployment registers its estate on top.
63
77
  */
64
78
  export declare function defaultFoundationalServiceRegistry(): FoundationalServiceRegistry;
65
79
  //# sourceMappingURL=foundational-service-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundational-service-registry.d.ts","sourceRoot":"","sources":["../../src/domain/foundational-service-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAsB/B;;;;;;;GAOG;AACH,MAAM,MAAM,6BAA6B,GAAG,8BAA8B,CAAA;AAE1E,yFAAyF;AACzF,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmD;IAC/E;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAGH;IAEf,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAGxD;IAED,yCAAyC;IACzC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAEtE;IAED,iFAAiF;IACjF,GAAG,IAAI,6BAA6B,EAAE,CAErC;IAED,wDAAwD;IACxD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,6BAA6B,GAAG,SAAS,CAEzD;IAED,8FAA8F;IAC9F,OAAO,IAAI,gCAAgC,EAAE,CAE5C;IAED,8FAA8F;IAC9F,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAE9C;IAED,OAAO,CAAC,KAAK;CAoCd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,IAAI,2BAA2B,CAIhF"}
1
+ {"version":3,"file":"foundational-service-registry.d.ts","sourceRoot":"","sources":["../../src/domain/foundational-service-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC/B,MAAM,wBAAwB,CAAA;AAuB/B;;;;;;;GAOG;AACH,MAAM,MAAM,6BAA6B,GAAG,8BAA8B,CAAA;AAE1E,yFAAyF;AACzF,MAAM,WAAW,gCAAgC;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmD;IAC/E;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAGH;IAEf,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAGxD;IAED,yCAAyC;IACzC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAEtE;IAED,iFAAiF;IACjF,GAAG,IAAI,6BAA6B,EAAE,CAErC;IAED,wDAAwD;IACxD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,6BAA6B,GAAG,SAAS,CAEzD;IAED,8FAA8F;IAC9F,OAAO,IAAI,gCAAgC,EAAE,CAE5C;IAED,8FAA8F;IAC9F,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAE9C;IAED,OAAO,CAAC,KAAK;CAoCd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,6BAA6B,EAEjF,CAAA;AAEF;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,2BAA2B,CAIhF"}
@@ -1,3 +1,4 @@
1
+ import { deepFreeze } from '../shared/deep-freeze.logic.js';
1
2
  import { summarizeContract } from './foundational-services.js';
2
3
  import { platformAssetStorageService } from './platform-asset-service.js';
3
4
  /**
@@ -77,20 +78,37 @@ export class FoundationalServiceRegistry {
77
78
  }
78
79
  }
79
80
  /**
80
- * A fresh foundational-service registry holding the ONE service the platform ships: its own
81
- * asset storage ({@link platformAssetStorageService}). Each facade news one and a deployment
82
- * registers its estate on top.
81
+ * The foundational services the platform ships, in registration order: today the ONE service its
82
+ * own asset storage ({@link platformAssetStorageService}) is.
83
83
  *
84
- * There is no shared BUSINESS capability every organisation runs, which is why the default
85
- * catalog held nothing for as long as the tier existed. The platform's own asset store is a
86
- * different claim: it is a capability every deployment of THIS platform runs, it is the target a
87
- * binary-output step must select before it can be configured at all, and a deployment that
88
- * prefers its own store registers that one and suppresses this id at either stored tier, exactly
89
- * as it can any other `builtin`.
84
+ * There is no shared BUSINESS capability every organisation runs, which is why the default catalog
85
+ * held nothing for as long as the tier existed. The platform's own asset store is a different
86
+ * claim: it is a capability every deployment of THIS platform runs, it is the target a
87
+ * binary-output step must select before it can be configured at all, and a deployment that prefers
88
+ * its own store registers that one and suppresses this id at either stored tier, exactly as it can
89
+ * any other `builtin`.
90
+ *
91
+ * Exported as data, and shared by reference across every registry rather than rebuilt per one, so
92
+ * a caller can ask whether a registration IS the platform's own instead of merely carrying its id.
93
+ * Those are different questions with opposite answers, and the local facade's mothership warning
94
+ * is the caller that needs the distinction: a deployment that registered this service should hear
95
+ * nothing, one that REPLACED it under the same id should hear that the replacement is inert on a
96
+ * node. {@link deepFreeze} is what makes sharing safe, taking over from the per-registry copies
97
+ * that used to buy the same isolation at the cost of the identity.
98
+ *
99
+ * The sibling shape is `@cat-factory/binary-generators`' `BUILTIN_BINARY_GENERATORS`.
100
+ */
101
+ export const PLATFORM_FOUNDATIONAL_SERVICES = deepFreeze([
102
+ platformAssetStorageService(),
103
+ ]);
104
+ /**
105
+ * A fresh foundational-service registry holding {@link PLATFORM_FOUNDATIONAL_SERVICES}. Each
106
+ * facade news one and a deployment registers its estate on top.
90
107
  */
91
108
  export function defaultFoundationalServiceRegistry() {
92
109
  const registry = new FoundationalServiceRegistry();
93
- registry.register(platformAssetStorageService());
110
+ for (const service of PLATFORM_FOUNDATIONAL_SERVICES)
111
+ registry.register(service);
94
112
  return registry;
95
113
  }
96
114
  //# sourceMappingURL=foundational-service-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundational-service-registry.js","sourceRoot":"","sources":["../../src/domain/foundational-service-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundational-service-registry.js","sourceRoot":"","sources":["../../src/domain/foundational-service-registry.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,13 @@ export declare const ASSET_UPLOAD_URL_ENV = "ARTIFACT_UPLOAD_URL";
14
14
  /** The env var carrying the asset ingest credential. See {@link ASSET_UPLOAD_URL_ENV}. */
15
15
  export declare const ASSET_UPLOAD_TOKEN_ENV = "ARTIFACT_UPLOAD_TOKEN";
16
16
  /**
17
- * The platform's own asset-storage service, for `defaultFoundationalServiceRegistry()`.
17
+ * The platform's own asset-storage service: what `PLATFORM_FOUNDATIONAL_SERVICES` holds, and so
18
+ * what every `defaultFoundationalServiceRegistry()` is seeded with.
18
19
  *
19
- * A function rather than a constant so every registry gets its own object: the registry holds
20
- * definitions by reference and a shared literal would let one deployment's mutation reach
21
- * another's catalog in a test process running several.
20
+ * A function rather than a constant so a caller wanting a MUTABLE copy (a test that edits a
21
+ * contract body, a deployment deriving its own variant) can have one. The platform's own
22
+ * registration takes the shared frozen instance instead, because a per-registry copy would leave
23
+ * the shipped definitions indistinguishable from a deployment's replacement of the same id.
22
24
  */
23
25
  export declare function platformAssetStorageService(): FoundationalServiceDefinition;
24
26
  //# sourceMappingURL=platform-asset-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-asset-service.d.ts","sourceRoot":"","sources":["../../src/domain/platform-asset-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAyBvF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AACzD,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAgI7D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,IAAI,6BAA6B,CAwB3E"}
1
+ {"version":3,"file":"platform-asset-service.d.ts","sourceRoot":"","sources":["../../src/domain/platform-asset-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAyBvF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AACzD,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAgI7D;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,IAAI,6BAA6B,CAwB3E"}
@@ -151,11 +151,13 @@ const PLATFORM_ASSET_OPENAPI = JSON.stringify({
151
151
  },
152
152
  }, null, 2);
153
153
  /**
154
- * The platform's own asset-storage service, for `defaultFoundationalServiceRegistry()`.
154
+ * The platform's own asset-storage service: what `PLATFORM_FOUNDATIONAL_SERVICES` holds, and so
155
+ * what every `defaultFoundationalServiceRegistry()` is seeded with.
155
156
  *
156
- * A function rather than a constant so every registry gets its own object: the registry holds
157
- * definitions by reference and a shared literal would let one deployment's mutation reach
158
- * another's catalog in a test process running several.
157
+ * A function rather than a constant so a caller wanting a MUTABLE copy (a test that edits a
158
+ * contract body, a deployment deriving its own variant) can have one. The platform's own
159
+ * registration takes the shared frozen instance instead, because a per-registry copy would leave
160
+ * the shipped definitions indistinguishable from a deployment's replacement of the same id.
159
161
  */
160
162
  export function platformAssetStorageService() {
161
163
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"platform-asset-service.js","sourceRoot":"","sources":["../../src/domain/platform-asset-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-asset-service.js","sourceRoot":"","sources":["../../src/domain/platform-asset-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAA2C,MAAM,YAAY,CAAA;AA+B1F,wBAAgB,UAAU,IAAI,KAAK,EAAE,CAgHpC;AA0+BD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAqBrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,eAAe,EAAE,CAW/E;AAMD,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAE7F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,CAAC,EAC1E,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,OAAO,EAAE,SAAS,QAAQ,EAAE,GAC3B,CAAC,EAAE,CAGL;AAED,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAO3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAE7C,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,MAAM,GAAG,SAAS,CAQpB;AAED,kHAAkH;AAClH,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAW7C,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAA2C,MAAM,YAAY,CAAA;AA+B1F,wBAAgB,UAAU,IAAI,KAAK,EAAE,CAgHpC;AA0/BD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAqBrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,eAAe,EAAE,CAW/E;AAMD,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AAE7F;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,CAAC,EAC1E,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,OAAO,EAAE,SAAS,QAAQ,EAAE,GAC3B,CAAC,EAAE,CAGL;AAED,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAC3D,eAAO,MAAM,yBAAyB,qBAAqB,CAAA;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAO3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAE7C,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,MAAM,GAAG,SAAS,CAQpB;AAED,kHAAkH;AAClH,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAW7C,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { PLATFORM_ASSET_STORAGE_SERVICE_ID, hasApproverPolicy } from '@cat-factory/contracts';
1
+ import { NANO_BANANA_GENERATOR_ID, PLATFORM_ASSET_STORAGE_SERVICE_ID, hasApproverPolicy, } from '@cat-factory/contracts';
2
2
  // Sample architecture used to populate a workspace on creation. Mirrors the
3
3
  // frontend's `app/utils/seed.ts`. Block ids are stable strings; because blocks
4
4
  // are keyed by (workspace_id, id) every workspace gets its own copy, so reusing
@@ -919,6 +919,17 @@ function buildMediaPipelines() {
919
919
  // own asset storage, which every deployment has once content storage is configured (the
920
920
  // local one defaults it to the filesystem).
921
921
  //
922
+ // BOTH HALVES are shipped now: the storage the artifacts go to, and `nano-banana`, the one
923
+ // generative integration the platform registers (`@cat-factory/binary-generators`, installed
924
+ // by every facade's default registry). Without it the step had a place to put pictures and no
925
+ // API to make them with, so the agent fell back to whatever its own model could draw. The
926
+ // selection is what makes the preset name an id, which is also its one sharp edge: a
927
+ // deployment that INJECTS a `binaryGeneratorRegistry` of its own replaces the shipped set
928
+ // rather than adding to it, and this preset's runs are then refused at admission
929
+ // (`binary_output_generator_invalid`) until it starts from `binaryGeneratorRegistryWithBuiltins()`
930
+ // or edits the step. A loud refusal naming the id beats a run that dispatches and generates
931
+ // nothing.
932
+ //
922
933
  // `comparison` is on by default with two candidates from each producer, because generating
923
934
  // one picture and keeping it is the case that did not need a pipeline: the reason to run
924
935
  // several image APIs at once is to look at what came back and keep what is good.
@@ -935,6 +946,10 @@ function buildMediaPipelines() {
935
946
  id: 'pl_media',
936
947
  name: 'Generate media',
937
948
  purpose: 'media',
949
+ // `version: 1` against the copies seeded before this preset selected an integration, which
950
+ // carry no version at all and read as 0: those workspaces are offered the reseed that adds
951
+ // the selection, rather than keeping a step that generates through nothing.
952
+ version: 1,
938
953
  description: 'Generate images, 3D models or other binary assets through the generative integrations you select, compare what each one produced, and keep the ones you want.',
939
954
  steps: [
940
955
  {
@@ -942,6 +957,7 @@ function buildMediaPipelines() {
942
957
  options: {
943
958
  binaryOutput: {
944
959
  storageServiceId: PLATFORM_ASSET_STORAGE_SERVICE_ID,
960
+ generatorIds: [NANO_BANANA_GENERATOR_ID],
945
961
  comparison: { perGenerator: 2, multiSelect: true },
946
962
  },
947
963
  },