@cat-factory/contracts 0.224.0 → 0.225.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.
@@ -46,6 +46,67 @@ export type BinaryModality = v.InferOutput<typeof binaryModalitySchema>;
46
46
  * that the split exists to make someone restate.
47
47
  */
48
48
  export declare function isBinaryModality(value: string): value is BinaryModality;
49
+ /** A content type that more than one of a step's selected integrations produces. */
50
+ export interface BinaryModalityOverlap {
51
+ /** The content type they share. */
52
+ modality: BinaryModality;
53
+ /** The ids that produce it, in the order they were given. Always two or more. */
54
+ generatorIds: readonly string[];
55
+ }
56
+ /**
57
+ * The content types more than one of these integrations produces.
58
+ *
59
+ * A modality DECIDES which generator may serve a step, and it stops deciding at the second
60
+ * producer of one kind: from there the choice is per artifact and it is not one the platform can
61
+ * make. So this computes only the FACT that a choice exists, and deliberately ranks nothing.
62
+ * Narrowness is not correctness (a specialist pixel-art API and a specialist photo API are
63
+ * equally narrow and answer different questions), and the platform has no cost model, no quality
64
+ * model and no view of what the step is for. A confident wrong preference is worse than none,
65
+ * because it displaces the per-integration notes whoever is deciding would otherwise have read.
66
+ *
67
+ * Shared rather than copied, for the reason stated at the top of this module: kernel states the
68
+ * overlap to the AGENT in its brief and the SPA states it to the HUMAN in the step picker, and
69
+ * the two must not be able to disagree about which integrations overlap.
70
+ *
71
+ * Order is derived from the input, so a brief re-rendered per dispatch is byte-identical:
72
+ * modalities come out in first-appearance order and ids in the order they were given. An id
73
+ * repeated in the input contributes ONCE, or a step that happened to name one integration twice
74
+ * would be told it holds two producers of a kind it holds one of.
75
+ */
76
+ export declare function binaryModalityOverlaps(generators: readonly {
77
+ id: string;
78
+ modalities: readonly BinaryModality[];
79
+ }[]): BinaryModalityOverlap[];
80
+ /** How a step's declared FORMATS stand against what its selected integrations say they emit. */
81
+ export interface BinaryFormatCoverage {
82
+ /** Declared formats no selected integration emits, judged against integrations that DECLARED
83
+ * theirs. These refuse the run. */
84
+ uncovered: string[];
85
+ /** Declared formats nothing selected claims, where at least one selected integration declares
86
+ * no formats at all — so the requirement MIGHT be met and nothing here may say otherwise. */
87
+ unverifiable: string[];
88
+ }
89
+ /**
90
+ * Judge `required` against what `selected` declares it emits.
91
+ *
92
+ * THREE outcomes, not two, and the third is the whole reason this is its own function. A
93
+ * generator declaring no `mediaTypes` is an explicit, documented state — "only the coarse
94
+ * modality is known" — so a requirement it cannot be judged against is UNVERIFIABLE, not
95
+ * uncovered. Refusing there would punish the honest declaration and break every integration that
96
+ * has not pinned its formats down; calling it covered would be the mirror mistake, a clean bill
97
+ * of health nobody issued, on the surface that decides whether the run may start. So the run is
98
+ * admitted and the gap is STATED — to the agent in its brief, and to whoever composes the step —
99
+ * which is the same disposition `generatorsUnverified` takes on the settlement side.
100
+ *
101
+ * Shared by admission, the brief and the picker, so none of them can hold a different opinion
102
+ * about the same selection. An ABSENT `mediaTypes` and an empty one are one state here, because
103
+ * that is the one state the wire type and the registry view are each spelling: the wire type
104
+ * omits the field, a code-registered definition may list nothing, and both mean "only my
105
+ * modality is known".
106
+ */
107
+ export declare function binaryFormatCoverage(required: readonly string[], selected: readonly {
108
+ mediaTypes?: readonly string[];
109
+ }[]): BinaryFormatCoverage;
49
110
  /**
50
111
  * Every {@link BinaryModality} a media type is CONSISTENT with — empty when nothing here
51
112
  * recognises it.
@@ -1 +1 @@
1
- {"version":3,"file":"binary-modalities.d.ts","sourceRoot":"","sources":["../src/binary-modalities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAY5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,8FAqB/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,uPAU3B,CAAA"}
1
+ {"version":3,"file":"binary-modalities.d.ts","sourceRoot":"","sources":["../src/binary-modalities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,oBAAoB,8FAqB/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAID,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB,iFAAiF;IACjF,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,EAAE,GAC3E,qBAAqB,EAAE,CAiBzB;AAED,gGAAgG;AAChG,MAAM,WAAW,oBAAoB;IACnC;wCACoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;kGAC8F;IAC9F,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,SAAS;IAAE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAAE,GACtD,oBAAoB,CAatB;AAKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,uPAU3B,CAAA"}
@@ -7,6 +7,14 @@ import * as v from 'valibot';
7
7
  // Its own leaf module — no imports beyond valibot — because both of those modules need it and one
8
8
  // of them sits downstream of the entity schemas the other is reached through. A vocabulary this
9
9
  // small has no business creating an import cycle.
10
+ //
11
+ // It also holds the two pure rules that read a step's SELECTION against that vocabulary
12
+ // ({@link binaryModalityOverlaps}, {@link binaryFormatCoverage}). Both are read by the backend,
13
+ // which composes the agent's brief and admits the run, and by the SPA, which offers the selection
14
+ // in the first place. The SPA cannot see kernel, so a rule with a home only on one side becomes a
15
+ // hand-kept copy on the other, which is how a step comes to be described one way in the builder
16
+ // and another way in the brief. Each reads nothing but this vocabulary and a structural view of a
17
+ // generator, so neither needs anything the other side cannot import.
10
18
  // ---------------------------------------------------------------------------
11
19
  /**
12
20
  * The CONTENT TYPE a generative integration produces, as a closed vocabulary.
@@ -78,6 +86,82 @@ export function isBinaryModality(value) {
78
86
  return BINARY_MODALITY_SET.has(value);
79
87
  }
80
88
  const BINARY_MODALITY_SET = new Set(binaryModalitySchema.options);
89
+ /**
90
+ * The content types more than one of these integrations produces.
91
+ *
92
+ * A modality DECIDES which generator may serve a step, and it stops deciding at the second
93
+ * producer of one kind: from there the choice is per artifact and it is not one the platform can
94
+ * make. So this computes only the FACT that a choice exists, and deliberately ranks nothing.
95
+ * Narrowness is not correctness (a specialist pixel-art API and a specialist photo API are
96
+ * equally narrow and answer different questions), and the platform has no cost model, no quality
97
+ * model and no view of what the step is for. A confident wrong preference is worse than none,
98
+ * because it displaces the per-integration notes whoever is deciding would otherwise have read.
99
+ *
100
+ * Shared rather than copied, for the reason stated at the top of this module: kernel states the
101
+ * overlap to the AGENT in its brief and the SPA states it to the HUMAN in the step picker, and
102
+ * the two must not be able to disagree about which integrations overlap.
103
+ *
104
+ * Order is derived from the input, so a brief re-rendered per dispatch is byte-identical:
105
+ * modalities come out in first-appearance order and ids in the order they were given. An id
106
+ * repeated in the input contributes ONCE, or a step that happened to name one integration twice
107
+ * would be told it holds two producers of a kind it holds one of.
108
+ */
109
+ export function binaryModalityOverlaps(generators) {
110
+ const byModality = new Map();
111
+ const seen = new Set();
112
+ for (const generator of generators) {
113
+ if (seen.has(generator.id))
114
+ continue;
115
+ seen.add(generator.id);
116
+ // Deduplicated per generator for the same reason ids are deduplicated across them: a
117
+ // definition listing one modality twice is not two producers of it.
118
+ for (const modality of new Set(generator.modalities)) {
119
+ const ids = byModality.get(modality);
120
+ if (ids)
121
+ ids.push(generator.id);
122
+ else
123
+ byModality.set(modality, [generator.id]);
124
+ }
125
+ }
126
+ return [...byModality]
127
+ .filter(([, generatorIds]) => generatorIds.length > 1)
128
+ .map(([modality, generatorIds]) => ({ modality, generatorIds }));
129
+ }
130
+ /**
131
+ * Judge `required` against what `selected` declares it emits.
132
+ *
133
+ * THREE outcomes, not two, and the third is the whole reason this is its own function. A
134
+ * generator declaring no `mediaTypes` is an explicit, documented state — "only the coarse
135
+ * modality is known" — so a requirement it cannot be judged against is UNVERIFIABLE, not
136
+ * uncovered. Refusing there would punish the honest declaration and break every integration that
137
+ * has not pinned its formats down; calling it covered would be the mirror mistake, a clean bill
138
+ * of health nobody issued, on the surface that decides whether the run may start. So the run is
139
+ * admitted and the gap is STATED — to the agent in its brief, and to whoever composes the step —
140
+ * which is the same disposition `generatorsUnverified` takes on the settlement side.
141
+ *
142
+ * Shared by admission, the brief and the picker, so none of them can hold a different opinion
143
+ * about the same selection. An ABSENT `mediaTypes` and an empty one are one state here, because
144
+ * that is the one state the wire type and the registry view are each spelling: the wire type
145
+ * omits the field, a code-registered definition may list nothing, and both mean "only my
146
+ * modality is known".
147
+ */
148
+ export function binaryFormatCoverage(required, selected) {
149
+ const emitted = new Set(selected.flatMap((generator) => generator.mediaTypes ?? []));
150
+ // An EMPTY selection declares nothing and hides nothing: with no integration to be silent, a
151
+ // format requirement is uncovered outright, exactly as a modality requirement already is.
152
+ const undeclared = selected.some((generator) => (generator.mediaTypes ?? []).length === 0);
153
+ const uncovered = [];
154
+ const unverifiable = [];
155
+ for (const mediaType of required) {
156
+ if (emitted.has(mediaType))
157
+ continue;
158
+ if (undeclared)
159
+ unverifiable.push(mediaType);
160
+ else
161
+ uncovered.push(mediaType);
162
+ }
163
+ return { uncovered, unverifiable };
164
+ }
81
165
  /** The 3D containers, which say the content is 3D and DELIBERATELY nothing more. */
82
166
  const THREE_D = ['3d-model', '3d-scene'];
83
167
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"binary-modalities.js","sourceRoot":"","sources":["../src/binary-modalities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-modalities.js","sourceRoot":"","sources":["../src/binary-modalities.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.224.0",
3
+ "version": "0.225.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",