@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.
- package/dist/domain/binary-generator-registration.d.ts +48 -0
- package/dist/domain/binary-generator-registration.d.ts.map +1 -0
- package/dist/domain/binary-generator-registration.js +143 -0
- package/dist/domain/binary-generator-registration.js.map +1 -0
- package/dist/domain/binary-generator-registry.d.ts +14 -5
- package/dist/domain/binary-generator-registry.d.ts.map +1 -1
- package/dist/domain/binary-generator-registry.js +14 -5
- package/dist/domain/binary-generator-registry.js.map +1 -1
- package/dist/domain/foundational-service-registry.d.ts +23 -9
- package/dist/domain/foundational-service-registry.d.ts.map +1 -1
- package/dist/domain/foundational-service-registry.js +28 -10
- package/dist/domain/foundational-service-registry.js.map +1 -1
- package/dist/domain/platform-asset-service.d.ts +6 -4
- package/dist/domain/platform-asset-service.d.ts.map +1 -1
- package/dist/domain/platform-asset-service.js +6 -4
- package/dist/domain/platform-asset-service.js.map +1 -1
- package/dist/domain/seed.d.ts.map +1 -1
- package/dist/domain/seed.js +17 -1
- package/dist/domain/seed.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/agent-executor.d.ts +39 -8
- package/dist/ports/agent-executor.d.ts.map +1 -1
- package/dist/ports/agent-executor.js.map +1 -1
- package/dist/ports/index.d.ts +3 -3
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/runner-transport.d.ts +90 -8
- package/dist/ports/runner-transport.d.ts.map +1 -1
- package/dist/ports/runner-transport.js +75 -0
- package/dist/ports/runner-transport.js.map +1 -1
- package/dist/shared/deep-freeze.logic.d.ts +18 -0
- package/dist/shared/deep-freeze.logic.d.ts.map +1 -0
- package/dist/shared/deep-freeze.logic.js +26 -0
- package/dist/shared/deep-freeze.logic.js.map +1 -0
- 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
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
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
|
|
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
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
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":"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
|
|
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
|
-
*
|
|
54
|
-
* asset storage ({@link platformAssetStorageService}).
|
|
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
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* binary-output step must select before it can be configured at all, and a deployment that
|
|
61
|
-
*
|
|
62
|
-
*
|
|
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;
|
|
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
|
-
*
|
|
81
|
-
* asset storage ({@link platformAssetStorageService}).
|
|
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
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* binary-output step must select before it can be configured at all, and a deployment that
|
|
88
|
-
*
|
|
89
|
-
*
|
|
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
|
-
|
|
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":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAwCzE;;;;GAIG;AACH,MAAM,OAAO,2BAA2B;IACrB,WAAW,GAAG,IAAI,GAAG,EAAyC,CAAA;IAC/E;;;;;;;;;OASG;IACK,UAAU,GAGP,IAAI,CAAA;IAEf,sFAAsF;IACtF,QAAQ,CAAC,UAAyC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,yCAAyC;IACzC,WAAW,CAAC,WAAoD;QAC9D,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,wDAAwD;IACxD,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,8FAA8F;IAC9F,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,8FAA8F;IAC9F,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,OAAO,GAAuC,EAAE,CAAA;QACtD,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,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,EAAE;gBAC3C,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC5C,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,OAAO,EAAE,SAAS,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA6C,UAAU,CAAC;IACjG,2BAA2B,EAAE;CAC9B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,UAAU,kCAAkC;IAChD,MAAM,QAAQ,GAAG,IAAI,2BAA2B,EAAE,CAAA;IAClD,KAAK,MAAM,OAAO,IAAI,8BAA8B;QAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -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,
|
|
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
|
|
20
|
-
*
|
|
21
|
-
*
|
|
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
|
|
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,
|
|
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
|
|
157
|
-
*
|
|
158
|
-
*
|
|
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":"
|
|
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"}
|
package/dist/domain/seed.js
CHANGED
|
@@ -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
|
},
|