@cat-factory/kernel 0.225.0 → 0.227.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 (45) hide show
  1. package/dist/domain/binary-generators.d.ts +11 -28
  2. package/dist/domain/binary-generators.d.ts.map +1 -1
  3. package/dist/domain/binary-generators.js +64 -21
  4. package/dist/domain/binary-generators.js.map +1 -1
  5. package/dist/domain/catalog.d.ts +13 -1
  6. package/dist/domain/catalog.d.ts.map +1 -1
  7. package/dist/domain/catalog.js +16 -2
  8. package/dist/domain/catalog.js.map +1 -1
  9. package/dist/domain/change-class.d.ts +47 -1
  10. package/dist/domain/change-class.d.ts.map +1 -1
  11. package/dist/domain/change-class.js +59 -0
  12. package/dist/domain/change-class.js.map +1 -1
  13. package/dist/domain/llm-rollup.d.ts +51 -4
  14. package/dist/domain/llm-rollup.d.ts.map +1 -1
  15. package/dist/domain/llm-rollup.js +77 -5
  16. package/dist/domain/llm-rollup.js.map +1 -1
  17. package/dist/domain/seed.d.ts.map +1 -1
  18. package/dist/domain/seed.js +14 -4
  19. package/dist/domain/seed.js.map +1 -1
  20. package/dist/domain/types.d.ts +1 -1
  21. package/dist/domain/types.d.ts.map +1 -1
  22. package/dist/index.d.ts +4 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +7 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/ports/agent-executor.d.ts +1 -1
  27. package/dist/ports/index.d.ts +2 -1
  28. package/dist/ports/index.d.ts.map +1 -1
  29. package/dist/ports/index.js.map +1 -1
  30. package/dist/ports/llm-metrics.d.ts +37 -6
  31. package/dist/ports/llm-metrics.d.ts.map +1 -1
  32. package/dist/ports/llm-metrics.js.map +1 -1
  33. package/dist/ports/operational-metrics.d.ts +19 -1
  34. package/dist/ports/operational-metrics.d.ts.map +1 -1
  35. package/dist/ports/operational-metrics.js.map +1 -1
  36. package/dist/ports/runner-transport.d.ts +1 -1
  37. package/dist/ports/tutorial-progress-repositories.d.ts +17 -0
  38. package/dist/ports/tutorial-progress-repositories.d.ts.map +1 -0
  39. package/dist/ports/tutorial-progress-repositories.js +2 -0
  40. package/dist/ports/tutorial-progress-repositories.js.map +1 -0
  41. package/dist/shared/host-markdown.logic.d.ts +59 -0
  42. package/dist/shared/host-markdown.logic.d.ts.map +1 -1
  43. package/dist/shared/host-markdown.logic.js +100 -4
  44. package/dist/shared/host-markdown.logic.js.map +1 -1
  45. package/package.json +2 -2
@@ -80,32 +80,14 @@ export interface ResolvedBinaryGeneratorSelection {
80
80
  * Resolve a step's `generatorIds` against the registry's views. Pure and shared by admission and
81
81
  * the brief, so the two can never disagree about which integrations a step has — the brief runs
82
82
  * per dispatch and would otherwise re-derive a set admission already judged.
83
- */
84
- export declare function resolveBinaryGeneratorSelection(config: BinaryOutputConfig | undefined, generators: readonly BinaryGeneratorView[]): ResolvedBinaryGeneratorSelection;
85
- /**
86
- * How a step's declared FORMATS stand against what its selected integrations say they emit.
87
83
  *
88
- * THREE outcomes, not two, and the third is the whole reason this is its own function. A
89
- * generator declaring no `mediaTypes` is an explicit, documented state — "only the coarse
90
- * modality is known" — so a requirement it cannot be judged against is UNVERIFIABLE, not
91
- * uncovered. Refusing there would punish the honest declaration and break every integration that
92
- * has not pinned its formats down; calling it covered would be the mirror mistake, a clean bill
93
- * of health nobody issued, on the surface that decides whether the run may start. So the run is
94
- * admitted and the gap is STATED — to the agent in its brief, and to whoever composes the step —
95
- * which is the same disposition `generatorsUnverified` takes on the settlement side.
96
- *
97
- * Pure and shared by admission, the brief and the SPA's mirror, so none of them can hold a
98
- * different opinion about the same selection.
84
+ * A repeated id resolves ONCE, on its first appearance. Nothing refuses a stored selection that
85
+ * names one integration twice, and every reader downstream of this states a COUNT of some kind:
86
+ * left in, the brief renders that integration's whole entry a second time (an agent reading two
87
+ * identical entries has been told nothing and charged tokens for it) and an overlap report would
88
+ * say a step holds two producers of what it holds one of.
99
89
  */
100
- export interface BinaryFormatCoverage {
101
- /** Declared formats no selected integration emits, judged against integrations that DECLARED
102
- * theirs. These refuse the run. */
103
- uncovered: string[];
104
- /** Declared formats nothing selected claims, where at least one selected integration declares
105
- * no formats at all — so the requirement MIGHT be met and nothing here may say otherwise. */
106
- unverifiable: string[];
107
- }
108
- export declare function binaryFormatCoverage(required: readonly string[], selected: readonly Pick<BinaryGeneratorView, 'mediaTypes'>[]): BinaryFormatCoverage;
90
+ export declare function resolveBinaryGeneratorSelection(config: BinaryOutputConfig | undefined, generators: readonly BinaryGeneratorView[]): ResolvedBinaryGeneratorSelection;
109
91
  /**
110
92
  * Validate a step's generative selection against the RESOLVED registry: every selected id must
111
93
  * be registered, and every content type the step declares it delivers must be produced by at
@@ -150,10 +132,11 @@ export declare function describeBinaryGeneratorSelectionIssues(agentKind: string
150
132
  *
151
133
  * Every rule here exists because the alternative is an agent guessing. It names the content types
152
134
  * per integration so a step holding both an image and a music generator cannot ask one for the
153
- * other's output; it names the credential's ENVIRONMENT VARIABLE and says what an unset one means
154
- * (the platform could not provide it — do not call, report), because the agent is the only party
155
- * that can see whether the value arrived; and it states an unresolved id rather than dropping it,
156
- * because a selection that silently shrinks reads as a step nobody configured.
135
+ * other's output; it names the OVERLAP where that per-content-type rule stops deciding
136
+ * ({@link overlapLines}); it names the credential's ENVIRONMENT VARIABLE and says what an unset
137
+ * one means (the platform could not provide it: do not call, report), because the agent is the
138
+ * only party that can see whether the value arrived; and it states an unresolved id rather than
139
+ * dropping it, because a selection that silently shrinks reads as a step nobody configured.
157
140
  */
158
141
  export declare function renderBinaryGeneratorSection(input: {
159
142
  selection: ResolvedBinaryGeneratorSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"binary-generators.d.ts","sourceRoot":"","sources":["../../src/domain/binary-generators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,0BAA0B,CAAA;AAsBjC,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,CAAA;AAEtE;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;kGAEkG;AAClG,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,gCAAgC,GAC1C,uBAAuB,EAAE,CAS3B;AAED,oFAAoF;AACpF,MAAM,MAAM,6BAA6B;AACvC,0DAA0D;AACxD;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AACvD;;;;GAIG;GACD;IAAE,OAAO,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE;AAC7D;;;;;;;;GAQG;GACD;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,iEAAiE;AACjE,MAAM,WAAW,gCAAgC;IAC/C,0DAA0D;IAC1D,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,wEAAwE;IACxE,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,gCAAgC,CAUlC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAoB;IACnC;wCACoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;kGAC8F;IAC9F,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,SAAS,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,GAC3D,oBAAoB,CAatB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,6BAA6B,EAAE,CAgBjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAiBjE;AAcD;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,6BAA6B,EAAE,GAC/C,MAAM,CAgBR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,SAAS,EAAE,gCAAgC,CAAA;IAC3C,mGAAmG;IACnG,mBAAmB,EAAE,cAAc,EAAE,CAAA;IACrC,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B,GAAG,MAAM,EAAE,CA0CX"}
1
+ {"version":3,"file":"binary-generators.d.ts","sourceRoot":"","sources":["../../src/domain/binary-generators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,0BAA0B,CAAA;AAsBjC,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,CAAA;AAEtE;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;kGAEkG;AAClG,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,gCAAgC,GAC1C,uBAAuB,EAAE,CAS3B;AAED,oFAAoF;AACpF,MAAM,MAAM,6BAA6B;AACvC,0DAA0D;AACxD;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AACvD;;;;GAIG;GACD;IAAE,OAAO,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE;AAC7D;;;;;;;;GAQG;GACD;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,iEAAiE;AACjE,MAAM,WAAW,gCAAgC;IAC/C,0DAA0D;IAC1D,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,wEAAwE;IACxE,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,gCAAgC,CAalC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,6BAA6B,EAAE,CAgBjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAiBjE;AAcD;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,6BAA6B,EAAE,GAC/C,MAAM,CAgBR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,SAAS,EAAE,gCAAgC,CAAA;IAC3C,mGAAmG;IACnG,mBAAmB,EAAE,cAAc,EAAE,CAAA;IACrC,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B,GAAG,MAAM,EAAE,CA2CX"}
@@ -1,3 +1,4 @@
1
+ import { binaryFormatCoverage, binaryModalityOverlaps } from '@cat-factory/contracts';
1
2
  import { BINARY_GENERATOR_CONTEXT_DIR, binaryGeneratorContextFileFor, } from './binary-output-paths.js';
2
3
  // ---------------------------------------------------------------------------
3
4
  // Pure logic for the GENERATIVE half of a binary-output step: resolving a step's selected
@@ -36,12 +37,22 @@ export function dispatchBinaryGenerators(selection) {
36
37
  * Resolve a step's `generatorIds` against the registry's views. Pure and shared by admission and
37
38
  * the brief, so the two can never disagree about which integrations a step has — the brief runs
38
39
  * per dispatch and would otherwise re-derive a set admission already judged.
40
+ *
41
+ * A repeated id resolves ONCE, on its first appearance. Nothing refuses a stored selection that
42
+ * names one integration twice, and every reader downstream of this states a COUNT of some kind:
43
+ * left in, the brief renders that integration's whole entry a second time (an agent reading two
44
+ * identical entries has been told nothing and charged tokens for it) and an overlap report would
45
+ * say a step holds two producers of what it holds one of.
39
46
  */
40
47
  export function resolveBinaryGeneratorSelection(config, generators) {
41
48
  const byId = new Map(generators.map((generator) => [generator.id, generator]));
42
49
  const selected = [];
43
50
  const unresolvedIds = [];
51
+ const seen = new Set();
44
52
  for (const id of config?.generatorIds ?? []) {
53
+ if (seen.has(id))
54
+ continue;
55
+ seen.add(id);
45
56
  const generator = byId.get(id);
46
57
  if (generator)
47
58
  selected.push(generator);
@@ -50,23 +61,6 @@ export function resolveBinaryGeneratorSelection(config, generators) {
50
61
  }
51
62
  return { selected, unresolvedIds };
52
63
  }
53
- export function binaryFormatCoverage(required, selected) {
54
- const emitted = new Set(selected.flatMap((generator) => generator.mediaTypes));
55
- // An EMPTY selection declares nothing and hides nothing: with no integration to be silent, a
56
- // format requirement is uncovered outright, exactly as a modality requirement already is.
57
- const undeclared = selected.some((generator) => generator.mediaTypes.length === 0);
58
- const uncovered = [];
59
- const unverifiable = [];
60
- for (const mediaType of required) {
61
- if (emitted.has(mediaType))
62
- continue;
63
- if (undeclared)
64
- unverifiable.push(mediaType);
65
- else
66
- uncovered.push(mediaType);
67
- }
68
- return { uncovered, unverifiable };
69
- }
70
64
  /**
71
65
  * Validate a step's generative selection against the RESOLVED registry: every selected id must
72
66
  * be registered, and every content type the step declares it delivers must be produced by at
@@ -170,10 +164,11 @@ export function describeBinaryGeneratorSelectionIssues(agentKind, issues) {
170
164
  *
171
165
  * Every rule here exists because the alternative is an agent guessing. It names the content types
172
166
  * per integration so a step holding both an image and a music generator cannot ask one for the
173
- * other's output; it names the credential's ENVIRONMENT VARIABLE and says what an unset one means
174
- * (the platform could not provide it — do not call, report), because the agent is the only party
175
- * that can see whether the value arrived; and it states an unresolved id rather than dropping it,
176
- * because a selection that silently shrinks reads as a step nobody configured.
167
+ * other's output; it names the OVERLAP where that per-content-type rule stops deciding
168
+ * ({@link overlapLines}); it names the credential's ENVIRONMENT VARIABLE and says what an unset
169
+ * one means (the platform could not provide it: do not call, report), because the agent is the
170
+ * only party that can see whether the value arrived; and it states an unresolved id rather than
171
+ * dropping it, because a selection that silently shrinks reads as a step nobody configured.
177
172
  */
178
173
  export function renderBinaryGeneratorSection(input) {
179
174
  const { selected, unresolvedIds } = input.selection;
@@ -205,6 +200,7 @@ export function renderBinaryGeneratorSection(input) {
205
200
  lines.push('', generator.guidance.trim());
206
201
  lines.push('', ...credentialLines(generator), ...contractLines(generator), '');
207
202
  }
203
+ lines.push(...overlapLines(selected));
208
204
  }
209
205
  if (unresolvedIds.length > 0) {
210
206
  lines.push(`This step also selects ${unresolvedIds.map((id) => `\`${id}\``).join(', ')}, which this deployment does not register — no endpoint and no contract are available for ${unresolvedIds.length === 1 ? 'it' : 'them'}. Do not guess at ${unresolvedIds.length === 1 ? 'its' : 'their'} API; report the gap and deliver what the remaining integrations can produce.`, '');
@@ -212,6 +208,53 @@ export function renderBinaryGeneratorSection(input) {
212
208
  lines.push(...requirementLines(input.requestedModalities, input.requestedMediaTypes ?? [], selected));
213
209
  return lines;
214
210
  }
211
+ /**
212
+ * The content types more than one selected integration produces, and what to do about it.
213
+ *
214
+ * The section's routing rule ("never ask one for a kind of output it does not produce") is stated
215
+ * per CONTENT TYPE, and it is complete only while the content type determines the integration.
216
+ * Hand an agent two image APIs and it under-determines in silence: every artifact is an image,
217
+ * both produce images, and nothing has said that a choice is being made. What follows is not a
218
+ * random error, which is what makes it worth a paragraph. The agent picks one and keeps picking
219
+ * it, for every artifact of the run, and the result is the wrong kind of correct at the price of
220
+ * the right one, on a file whose modality, format and storage verdict all check out.
221
+ *
222
+ * So this states the fact and refuses to state a preference. The platform has no cost model, no
223
+ * quality model and no view of what the step is for, and a confident wrong preference is worse
224
+ * than none because it displaces the per-integration notes the agent would otherwise have read.
225
+ * It is computed from the RESOLVED selection alone and never the registry, because a step is not
226
+ * affected by integrations it did not select, and never from the step's REQUIREMENTS, because the
227
+ * case that motivates selecting two producers is routinely the one where neither is the
228
+ * deliverable (concept art generated to feed a mesh API's image path).
229
+ *
230
+ * It renders after the per-integration entries so that "the notes above" is literally true: those
231
+ * descriptions are what the choice is actually made from, and this paragraph's only job is to
232
+ * make the agent notice that it is deciding. Silent with no overlap, because a paragraph that
233
+ * rides every brief is one agents stop reading.
234
+ *
235
+ * It also asks for the `generator` field the declaration block treats as optional. Optional is
236
+ * right in general: most steps hold one producer per content type and the answer is not in doubt.
237
+ * The moment two are held it becomes the ONLY record of a choice nothing downstream can check,
238
+ * and without it nobody can tell afterwards that forty sprites came from the wrong one.
239
+ */
240
+ function overlapLines(selected) {
241
+ const overlaps = binaryModalityOverlaps(selected);
242
+ if (overlaps.length === 0)
243
+ return [];
244
+ return [
245
+ 'More than one of these integrations produces the same kind of output, so the content type does not tell you which to call:',
246
+ '',
247
+ ...overlaps.map((overlap) => `- ${joinIds(overlap.generatorIds)} ${overlap.generatorIds.length === 2 ? 'both' : 'all'} produce ${describeModality(overlap.modality)}.`),
248
+ '',
249
+ "They are not interchangeable. Read each one's notes above and choose per artifact; where this step's own instructions say which to use, those decide. Record the integration you used in each entry's `generator` field, so the choice is on the record.",
250
+ '',
251
+ ];
252
+ }
253
+ /** `` `a` and `b` ``; `` `a`, `b` and `c` ``. Total for any length, including the empty list. */
254
+ function joinIds(ids) {
255
+ const quoted = ids.map((id) => `\`${id}\``);
256
+ return [quoted.slice(0, -1).join(', '), ...quoted.slice(-1)].filter(Boolean).join(' and ');
257
+ }
215
258
  /**
216
259
  * What this step OWES, and what nothing selected can be shown to deliver.
217
260
  *
@@ -1 +1 @@
1
- {"version":3,"file":"binary-generators.js","sourceRoot":"","sources":["../../src/domain/binary-generators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-generators.js","sourceRoot":"","sources":["../../src/domain/binary-generators.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BlockType, MergeClassRules, ModelPreset, RequirementConcernLevel, StepGating, WorkspaceSettings } from './types.js';
1
+ import type { BlockType, ClassRulesByRole, MergeClassRules, ModelPreset, RequirementConcernLevel, StepGating, WorkspaceRole, WorkspaceSettings } from './types.js';
2
2
  /**
3
3
  * The runtime settings every workspace starts with (lazily seeded on first read).
4
4
  * `waitingEscalationMinutes` is how long a run may wait for human input before its
@@ -43,6 +43,14 @@ export declare const DEFAULT_RISK_POLICY: {
43
43
  * justifies it — never something a seed decides on their behalf.
44
44
  */
45
45
  export declare const DEFAULT_MERGE_CLASS_RULES: MergeClassRules;
46
+ /**
47
+ * The built-in presets ship with NO role-scoped narrowing and NO sandboxed roles, for the same
48
+ * reason they ship no per-class rules: who a deployment trusts with what is exactly the judgement
49
+ * a seed cannot make on an operator's behalf, and the identity of these two empties is what keeps
50
+ * every existing workspace on byte-for-byte its previous merge behaviour.
51
+ */
52
+ export declare const DEFAULT_CLASS_RULES_BY_ROLE: ClassRulesByRole;
53
+ export declare const DEFAULT_DRY_RUN_ROLES: readonly WorkspaceRole[];
46
54
  /**
47
55
  * A built-in merge-preset template (no `createdAt` yet, but with a STABLE id so a
48
56
  * workspace's persisted copy can be matched against the catalog and reseeded). The
@@ -74,6 +82,10 @@ export interface RiskPolicySeed {
74
82
  forkDecision: StepGating | null;
75
83
  /** Per-change-class auto-merge rules; empty on the built-ins (see DEFAULT_MERGE_CLASS_RULES). */
76
84
  classRules: MergeClassRules;
85
+ /** Per-role narrowing of `classRules`; empty on the built-ins. */
86
+ classRulesByRole: ClassRulesByRole;
87
+ /** Roles whose runs are forced into dry-run mode; empty on the built-ins. */
88
+ dryRunRoles: WorkspaceRole[];
77
89
  /** The workspace's fallback preset, used by tasks that pick none. Exactly one is true. */
78
90
  isDefault: boolean;
79
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,14 @@ export const DEFAULT_RISK_POLICY = {
95
95
  * justifies it — never something a seed decides on their behalf.
96
96
  */
97
97
  export const DEFAULT_MERGE_CLASS_RULES = {};
98
+ /**
99
+ * The built-in presets ship with NO role-scoped narrowing and NO sandboxed roles, for the same
100
+ * reason they ship no per-class rules: who a deployment trusts with what is exactly the judgement
101
+ * a seed cannot make on an operator's behalf, and the identity of these two empties is what keeps
102
+ * every existing workspace on byte-for-byte its previous merge behaviour.
103
+ */
104
+ export const DEFAULT_CLASS_RULES_BY_ROLE = {};
105
+ export const DEFAULT_DRY_RUN_ROLES = [];
98
106
  /**
99
107
  * The built-in merge threshold presets seeded for every workspace. `Balanced` is the
100
108
  * default auto-merge policy; `Manual review only` disables auto-merge entirely
@@ -123,8 +131,10 @@ export const RISK_POLICY_SEEDS = [
123
131
  autoMergeEnabled: DEFAULT_RISK_POLICY.autoMergeEnabled,
124
132
  forkDecision: { ...DEFAULT_FORK_DECISION_GATING },
125
133
  classRules: { ...DEFAULT_MERGE_CLASS_RULES },
134
+ classRulesByRole: { ...DEFAULT_CLASS_RULES_BY_ROLE },
135
+ dryRunRoles: [...DEFAULT_DRY_RUN_ROLES],
126
136
  isDefault: true,
127
- version: 5,
137
+ version: 6,
128
138
  },
129
139
  {
130
140
  id: 'mp_manual_review',
@@ -150,8 +160,12 @@ export const RISK_POLICY_SEEDS = [
150
160
  // No per-class rules: a class rule can never override `autoMergeEnabled: false`, and
151
161
  // shipping one here would only mislead an operator reading the preset.
152
162
  classRules: { ...DEFAULT_MERGE_CLASS_RULES },
163
+ // Nor any role-scoped narrowing: narrowing is subtractive, and there is nothing left to
164
+ // subtract from a preset that already routes every PR to a human.
165
+ classRulesByRole: { ...DEFAULT_CLASS_RULES_BY_ROLE },
166
+ dryRunRoles: [...DEFAULT_DRY_RUN_ROLES],
153
167
  isDefault: false,
154
- version: 5,
168
+ version: 6,
155
169
  },
156
170
  ];
157
171
  /** The built-in merge presets, fresh copies so callers can stamp ids/timestamps safely. */
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ChangeClass, MergeClassRule, MergeClassRules } from '@cat-factory/contracts';
1
+ import type { ChangeClass, ClassRulesByRole, MergeClassRule, MergeClassRules, WorkspaceRole } from '@cat-factory/contracts';
2
2
  /**
3
3
  * Risk rank per class — HIGHER means riskier, and a mixed diff resolves to the highest rank
4
4
  * present. That precedence is what makes a per-class rule safe by construction: "always
@@ -57,4 +57,50 @@ export declare function classifyChangedFiles(paths: readonly string[]): ChangeCl
57
57
  * comparison instead of silently adopting a widened (or tightened) policy.
58
58
  */
59
59
  export declare function resolveMergeClassRule(rules: MergeClassRules | null | undefined, changeClass: ChangeClass): MergeClassRule;
60
+ /**
61
+ * Compose a base rule with a ROLE's rule, taking the STRICTER of the two.
62
+ *
63
+ * Narrow-only is the whole safety property of role-scoped rules, and it is enforced here rather
64
+ * than trusted to whoever authors a preset: a role entry can subtract capability but can never add
65
+ * it, so `{ source: 'always' }` under `viewer` on a preset whose base holds `source` at
66
+ * `thresholds` grants a viewer nothing — it reads as a mistake and behaves as a no-op, instead of
67
+ * quietly becoming the widest rule in the preset for its least-trusted tier.
68
+ *
69
+ * The consequence worth stating: a role entry is REVIEWABLE ON ITS OWN. Reading one tells you what
70
+ * that role at most may do, with no need to hold the base map in your head at the same time.
71
+ */
72
+ export declare function narrowMergeClassRule(base: MergeClassRule, role: MergeClassRule): MergeClassRule;
73
+ /** The rule that governs a run, before and after its initiator's role narrowed it. */
74
+ export interface RoleScopedMergeClassRule {
75
+ /** What the preset's base `classRules` say for this change class. */
76
+ base: MergeClassRule;
77
+ /** What actually applies: `base` narrowed by the initiator's role entry. */
78
+ effective: MergeClassRule;
79
+ /**
80
+ * Whether the role CHANGED the outcome. False both when no role was pinned and when the role's
81
+ * entry was no stricter than the base, so a caller can report "a role narrowed this" without
82
+ * re-comparing — and never attributes to a role a refusal the base map would have made anyway.
83
+ */
84
+ narrowedByRole: boolean;
85
+ }
86
+ /**
87
+ * Resolve the per-class rule that governs one run: the preset's base rule for the run's change
88
+ * class, narrowed by the entry (if any) its initiator's ROLE carries.
89
+ *
90
+ * Two absences pass straight through to the base rule, deliberately and for the same reason:
91
+ * an unattributed run (no pinned role — a schedule fire, a public-API start, auth-disabled dev)
92
+ * and a role with no authored entry. Neither is evidence about how much review the work needs,
93
+ * and inventing a tier for the first would either hand it the preset's widest rules or sandbox
94
+ * every scheduled run in the deployment the day someone first authors a role entry.
95
+ *
96
+ * `unknown` remains inert through both layers: {@link resolveMergeClassRule} already forces it to
97
+ * `thresholds`, and narrowing `thresholds` by a rule authored for some OTHER class cannot reach
98
+ * it, so a diff we could not read still falls back to the score comparison whoever started it.
99
+ */
100
+ export declare function resolveRoleScopedMergeClassRule(input: {
101
+ rules: MergeClassRules | null | undefined;
102
+ byRole: ClassRulesByRole | null | undefined;
103
+ role: WorkspaceRole | null | undefined;
104
+ changeClass: ChangeClass;
105
+ }): RoleScopedMergeClassRule;
60
106
  //# sourceMappingURL=change-class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-class.d.ts","sourceRoot":"","sources":["../../src/domain/change-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAiB1F;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQzD,CAAA;AAqLD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAwCjF;AAED,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,+FAA+F;IAC/F,WAAW,EAAE,WAAW,CAAA;IACxB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAUnF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACzC,WAAW,EAAE,WAAW,GACvB,cAAc,CAGhB"}
1
+ {"version":3,"file":"change-class.d.ts","sourceRoot":"","sources":["../../src/domain/change-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,wBAAwB,CAAA;AAiB/B;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQzD,CAAA;AAqLD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAwCjF;AAED,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,+FAA+F;IAC/F,WAAW,EAAE,WAAW,CAAA;IACxB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAUnF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACzC,WAAW,EAAE,WAAW,GACvB,cAAc,CAGhB;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,CAE/F;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAA;IACpB,4EAA4E;IAC5E,SAAS,EAAE,cAAc,CAAA;IACzB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;IACzC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAA;IAC3C,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,WAAW,EAAE,WAAW,CAAA;CACzB,GAAG,wBAAwB,CAc3B"}
@@ -303,4 +303,63 @@ export function resolveMergeClassRule(rules, changeClass) {
303
303
  return 'thresholds';
304
304
  return rules?.[changeClass] ?? 'thresholds';
305
305
  }
306
+ /**
307
+ * How much review a rule DEMANDS — higher is stricter. The ordering is the point of the scale:
308
+ * `always` merges with nothing consulted, `thresholds` merges only within the score ceilings, and
309
+ * `never` merges nothing, so it is total and every pair has a strictest member.
310
+ *
311
+ * A plain rank rather than a `Record<MergeClassRule, number>` of opaque numbers used once: this is
312
+ * the only place the three rules are ORDERED, and {@link narrowMergeClassRule} is the only
313
+ * consumer, so the two are kept adjacent and a new rule fails the typecheck here first.
314
+ */
315
+ const MERGE_CLASS_RULE_STRICTNESS = {
316
+ always: 0,
317
+ thresholds: 1,
318
+ never: 2,
319
+ };
320
+ /**
321
+ * Compose a base rule with a ROLE's rule, taking the STRICTER of the two.
322
+ *
323
+ * Narrow-only is the whole safety property of role-scoped rules, and it is enforced here rather
324
+ * than trusted to whoever authors a preset: a role entry can subtract capability but can never add
325
+ * it, so `{ source: 'always' }` under `viewer` on a preset whose base holds `source` at
326
+ * `thresholds` grants a viewer nothing — it reads as a mistake and behaves as a no-op, instead of
327
+ * quietly becoming the widest rule in the preset for its least-trusted tier.
328
+ *
329
+ * The consequence worth stating: a role entry is REVIEWABLE ON ITS OWN. Reading one tells you what
330
+ * that role at most may do, with no need to hold the base map in your head at the same time.
331
+ */
332
+ export function narrowMergeClassRule(base, role) {
333
+ return MERGE_CLASS_RULE_STRICTNESS[role] > MERGE_CLASS_RULE_STRICTNESS[base] ? role : base;
334
+ }
335
+ /**
336
+ * Resolve the per-class rule that governs one run: the preset's base rule for the run's change
337
+ * class, narrowed by the entry (if any) its initiator's ROLE carries.
338
+ *
339
+ * Two absences pass straight through to the base rule, deliberately and for the same reason:
340
+ * an unattributed run (no pinned role — a schedule fire, a public-API start, auth-disabled dev)
341
+ * and a role with no authored entry. Neither is evidence about how much review the work needs,
342
+ * and inventing a tier for the first would either hand it the preset's widest rules or sandbox
343
+ * every scheduled run in the deployment the day someone first authors a role entry.
344
+ *
345
+ * `unknown` remains inert through both layers: {@link resolveMergeClassRule} already forces it to
346
+ * `thresholds`, and narrowing `thresholds` by a rule authored for some OTHER class cannot reach
347
+ * it, so a diff we could not read still falls back to the score comparison whoever started it.
348
+ */
349
+ export function resolveRoleScopedMergeClassRule(input) {
350
+ const base = resolveMergeClassRule(input.rules, input.changeClass);
351
+ if (!input.role || input.changeClass === 'unknown') {
352
+ return { base, effective: base, narrowedByRole: false };
353
+ }
354
+ // Read the role's entry as an OPTIONAL lookup, NOT through `resolveMergeClassRule`. That helper
355
+ // substitutes `thresholds` for an absent class, which is right when it IS the policy and wrong
356
+ // here: a role that authored nothing has said nothing, and folding its silence in as
357
+ // `thresholds` would narrow every `always` in the base map the moment a preset gained its first
358
+ // role entry — for the roles that entry is not even about. Absent is not a rule.
359
+ const roleRule = input.byRole?.[input.role]?.[input.changeClass];
360
+ if (!roleRule)
361
+ return { base, effective: base, narrowedByRole: false };
362
+ const effective = narrowMergeClassRule(base, roleRule);
363
+ return { base, effective, narrowedByRole: effective !== base };
364
+ }
306
365
  //# sourceMappingURL=change-class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-class.js","sourceRoot":"","sources":["../../src/domain/change-class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-class.js","sourceRoot":"","sources":["../../src/domain/change-class.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { LlmCallMetricSummary, LlmCallRollupTotals } from '../ports/llm-metrics.js';
1
+ import type { LlmCallMetricSummary, LlmCallRollupTotals, LlmRollupCell } from '../ports/llm-metrics.js';
2
2
  /** A rollup of one agent kind's calls, folded across that kind's phases. */
3
3
  export interface LlmKindRollup extends LlmCallRollupTotals {
4
4
  agentKind: string;
@@ -7,21 +7,68 @@ export interface LlmKindRollup extends LlmCallRollupTotals {
7
7
  export interface LlmPhaseRollup extends LlmCallRollupTotals {
8
8
  phase: string;
9
9
  }
10
+ /**
11
+ * Per-1M rates for one model's four token classes — the shape a price table resolves to,
12
+ * restated here so the pricing fold stays in the domain without kernel depending on the spend
13
+ * package (which depends on kernel).
14
+ */
15
+ export interface LlmTokenRates {
16
+ inputPerMillion: number;
17
+ cacheReadPerMillion: number;
18
+ cacheWritePerMillion: number;
19
+ outputPerMillion: number;
20
+ }
21
+ /**
22
+ * Resolve a cell's rates, or null where this deployment cannot price that model — which is
23
+ * NOT the same as pricing it at zero (see {@link LlmCallRollupTotals.costEstimate}).
24
+ */
25
+ export type LlmRateResolver = (provider: string, model: string) => LlmTokenRates | null;
26
+ /** The four token counts a cost is a function of, however they were aggregated. */
27
+ export interface LlmTokenClassCounts {
28
+ /** FRESH (uncached) input tokens, exclusive of both cache classes. */
29
+ promptTokens: number;
30
+ cacheReadTokens: number;
31
+ cacheWriteTokens: number;
32
+ completionTokens: number;
33
+ }
34
+ /**
35
+ * Cost of a set of token counts at one model's rates, each class at its own tier.
36
+ *
37
+ * The ONE place this arithmetic lives. Every producer of money in the codebase routes through
38
+ * it — the ledger's per-call estimate, the rollup fold, the export's per-call sum — because
39
+ * three copies of a four-term sum are three chances for a class to be priced at the wrong
40
+ * tier, and a wrong cost looks exactly like a right one.
41
+ */
42
+ export declare function costOfTokenClasses(rates: LlmTokenRates, tokens: LlmTokenClassCounts): number;
43
+ /**
44
+ * Price each cell of the store's finest grain and collapse the MODEL dimension, returning the
45
+ * {@link LlmRollupCell}s every consumer reads — now carrying `costEstimate`.
46
+ *
47
+ * This is the one place the model is used, and the reason it is in the grain at all: cost is a
48
+ * function of `(model, token classes)`, so it has to be computed while the model is still
49
+ * attached and can only be summed afterwards. Every coarser view is then the same pure fold it
50
+ * always was, and the costs it adds up agree with the breakdown beside it by construction.
51
+ *
52
+ * `rates` is OPTIONAL because collapsing is not conditional on pricing: a deployment with no
53
+ * price table still owes its consumers the same `(agentKind, phase)` shape, with every cost
54
+ * null. Omitting it is that case stated in code, rather than a resolver that answers nothing.
55
+ */
56
+ export declare function priceRollupCells(cells: readonly LlmCallMetricSummary[], rates?: LlmRateResolver): LlmRollupCell[];
10
57
  /** Fold every cell into one set of run-wide totals. */
11
- export declare function foldRollupTotals(cells: readonly LlmCallMetricSummary[]): LlmCallRollupTotals;
58
+ export declare function foldRollupTotals(cells: readonly LlmRollupCell[]): LlmCallRollupTotals;
12
59
  /**
13
60
  * Fold the cells into one rollup per agent kind — the grain a pipeline step's `metrics`
14
61
  * carries, since the proxy keys a conversation by `(execution, agentKind)` and not by step
15
62
  * index. Insertion-ordered on first appearance, so a caller that wants a stable order sorts.
16
63
  */
17
- export declare function foldRollupsByAgentKind(cells: readonly LlmCallMetricSummary[]): LlmKindRollup[];
64
+ export declare function foldRollupsByAgentKind(cells: readonly LlmRollupCell[]): LlmKindRollup[];
18
65
  /**
19
66
  * Fold the cells into one rollup per phase — the burn breakdown. The `''` phase is a cell like
20
67
  * any other and is NEVER filtered out: a run whose calls are all unattributed was metered by a
21
68
  * channel with no phase concept, not one that spent nothing, and hiding the cell makes the two
22
69
  * indistinguishable while the table still looks complete.
23
70
  */
24
- export declare function foldRollupsByPhase(cells: readonly LlmCallMetricSummary[]): LlmPhaseRollup[];
71
+ export declare function foldRollupsByPhase(cells: readonly LlmRollupCell[]): LlmPhaseRollup[];
25
72
  /**
26
73
  * Total input tokens a rollup covers: the three classes are orthogonal at the source, so the
27
74
  * volume figure is simply their sum (the like-for-like of Claude Code's own context gauge,
@@ -1 +1 @@
1
- {"version":3,"file":"llm-rollup.d.ts","sourceRoot":"","sources":["../../src/domain/llm-rollup.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAExF,4EAA4E;AAC5E,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,KAAK,EAAE,MAAM,CAAA;CACd;AAgDD,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,mBAAmB,CAE5F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,aAAa,EAAE,CAU9F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GAAG,cAAc,EAAE,CAO3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"llm-rollup.d.ts","sourceRoot":"","sources":["../../src/domain/llm-rollup.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,4EAA4E;AAC5E,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,KAAK,EAAE,MAAM,CAAA;CACd;AAiED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAA;AAEvF,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAO5F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACtC,KAAK,CAAC,EAAE,eAAe,GACtB,aAAa,EAAE,CAsBjB;AAOD,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,mBAAmB,CAErF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAUvF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,cAAc,EAAE,CAOpF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAErE"}