@mmnto/cli 1.73.1 → 1.74.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 (38) hide show
  1. package/dist/commands/spine-cert-corpus.test.js +1 -1
  2. package/dist/commands/spine-cert-corpus.test.js.map +1 -1
  3. package/dist/commands/spine-cert-e2e.test.js +1 -1
  4. package/dist/commands/spine-cert-e2e.test.js.map +1 -1
  5. package/dist/commands/spine-cert-persist.d.ts.map +1 -1
  6. package/dist/commands/spine-cert-persist.js +14 -0
  7. package/dist/commands/spine-cert-persist.js.map +1 -1
  8. package/dist/commands/spine-cert-persist.test.js +14 -0
  9. package/dist/commands/spine-cert-persist.test.js.map +1 -1
  10. package/dist/commands/spine-cert-record.test.js +1 -1
  11. package/dist/commands/spine-cert-record.test.js.map +1 -1
  12. package/dist/commands/spine-cert-run-corpus.d.ts +2 -0
  13. package/dist/commands/spine-cert-run-corpus.d.ts.map +1 -1
  14. package/dist/commands/spine-cert-run-corpus.js +2 -1
  15. package/dist/commands/spine-cert-run-corpus.js.map +1 -1
  16. package/dist/commands/spine-cert-run-corpus.test.js +1 -1
  17. package/dist/commands/spine-cert-run-corpus.test.js.map +1 -1
  18. package/dist/commands/spine-llm-adapters.d.ts +11 -7
  19. package/dist/commands/spine-llm-adapters.d.ts.map +1 -1
  20. package/dist/commands/spine-llm-adapters.js +20 -15
  21. package/dist/commands/spine-llm-adapters.js.map +1 -1
  22. package/dist/commands/spine-llm-adapters.test.js +100 -29
  23. package/dist/commands/spine-llm-adapters.test.js.map +1 -1
  24. package/dist/commands/spine-llm-replay.d.ts +113 -21
  25. package/dist/commands/spine-llm-replay.d.ts.map +1 -1
  26. package/dist/commands/spine-llm-replay.js +60 -13
  27. package/dist/commands/spine-llm-replay.js.map +1 -1
  28. package/dist/commands/spine-llm-replay.test.js +62 -10
  29. package/dist/commands/spine-llm-replay.test.js.map +1 -1
  30. package/dist/commands/spine-windtunnel.d.ts +9 -0
  31. package/dist/commands/spine-windtunnel.d.ts.map +1 -1
  32. package/dist/commands/spine-windtunnel.js +69 -2
  33. package/dist/commands/spine-windtunnel.js.map +1 -1
  34. package/dist/commands/spine-windtunnel.test.js +49 -1
  35. package/dist/commands/spine-windtunnel.test.js.map +1 -1
  36. package/dist/index.js +6 -0
  37. package/dist/index.js.map +1 -1
  38. package/package.json +2 -2
@@ -66,31 +66,91 @@ function draft(dslSource = '**Pattern:** no-foo') {
66
66
  };
67
67
  }
68
68
  // ─── 1. Extractor output parse ────────────────────────
69
- describe('parseExtractorOutput', () => {
70
- it('parses a JSON array of DSL bodies', () => {
71
- expect(parseExtractorOutput('["**Pattern:** a", "**Pattern:** b"]')).toEqual([
72
- '**Pattern:** a',
73
- '**Pattern:** b',
74
- ]);
75
- });
76
- it('treats the NONE sentinel (any case) as an empty draft', () => {
77
- expect(parseExtractorOutput('NONE')).toEqual([]);
78
- expect(parseExtractorOutput(' none ')).toEqual([]);
79
- });
80
- it('returns [] on empty / non-JSON / non-array output (fail-soft, never throws)', () => {
81
- expect(parseExtractorOutput('')).toEqual([]);
82
- expect(parseExtractorOutput('here are some lessons:')).toEqual([]);
83
- expect(parseExtractorOutput('{"disposition":"structural"}')).toEqual([]);
84
- expect(parseExtractorOutput('42')).toEqual([]);
69
+ describe('parseExtractorOutput → DraftResult (NoDraftCause taxonomy)', () => {
70
+ it('parses a JSON array of DSL bodies (drafts, no cause)', () => {
71
+ expect(parseExtractorOutput('["**Pattern:** a", "**Pattern:** b"]')).toEqual({
72
+ drafts: ['**Pattern:** a', '**Pattern:** b'],
73
+ });
85
74
  });
86
75
  it('strips a markdown code fence and parses the inner JSON', () => {
87
- expect(parseExtractorOutput('```json\n["**Pattern:** x"]\n```')).toEqual(['**Pattern:** x']);
76
+ expect(parseExtractorOutput('```json\n["**Pattern:** x"]\n```')).toEqual({
77
+ drafts: ['**Pattern:** x'],
78
+ });
79
+ });
80
+ it('filters non-string / empty / whitespace elements and trims (≥1 survivor → no cause)', () => {
81
+ // A filtered-out sibling element does NOT tag the result — the cause is a
82
+ // no-draft diagnostic, not a partial-quality ledger (codex).
83
+ expect(parseExtractorOutput('["**Pattern:** a", 7, "", " ", " **Pattern:** b "]')).toEqual({
84
+ drafts: ['**Pattern:** a', '**Pattern:** b'],
85
+ });
86
+ });
87
+ // One branch per NoDraftCause — the pinned-order, mutually-exclusive partition
88
+ // (codex/agy panel; the order is the disjointness contract).
89
+ it('empty raw output → empty-output', () => {
90
+ expect(parseExtractorOutput('')).toEqual({ drafts: [], noDraftCause: 'empty-output' });
91
+ expect(parseExtractorOutput(' ')).toEqual({ drafts: [], noDraftCause: 'empty-output' });
92
+ });
93
+ it('the NONE sentinel (any case) → none-sentinel', () => {
94
+ expect(parseExtractorOutput('NONE')).toEqual({ drafts: [], noDraftCause: 'none-sentinel' });
95
+ expect(parseExtractorOutput(' none ')).toEqual({ drafts: [], noDraftCause: 'none-sentinel' });
96
+ });
97
+ it('malformed JSON (SyntaxError) → unparseable-shape (fail-soft, never throws)', () => {
98
+ expect(parseExtractorOutput('here are some lessons:')).toEqual({
99
+ drafts: [],
100
+ noDraftCause: 'unparseable-shape',
101
+ });
102
+ expect(parseExtractorOutput('[unterminated')).toEqual({
103
+ drafts: [],
104
+ noDraftCause: 'unparseable-shape',
105
+ });
106
+ });
107
+ it('valid JSON but not an array → non-array', () => {
108
+ expect(parseExtractorOutput('{"disposition":"structural"}')).toEqual({
109
+ drafts: [],
110
+ noDraftCause: 'non-array',
111
+ });
112
+ expect(parseExtractorOutput('42')).toEqual({ drafts: [], noDraftCause: 'non-array' });
113
+ });
114
+ it('an array that filters to empty → all-filtered (NOT empty-output — panel adjudication)', () => {
115
+ // [""] / arrays-of-blanks parse to an array then filter to [] → all-filtered;
116
+ // empty-output is reserved for raw-text-empty BEFORE the parse (codex; corrects
117
+ // the agy panel-reply expectation).
118
+ expect(parseExtractorOutput('[]')).toEqual({ drafts: [], noDraftCause: 'all-filtered' });
119
+ expect(parseExtractorOutput('[""]')).toEqual({ drafts: [], noDraftCause: 'all-filtered' });
120
+ expect(parseExtractorOutput('[" ", 7]')).toEqual({
121
+ drafts: [],
122
+ noDraftCause: 'all-filtered',
123
+ });
124
+ });
125
+ });
126
+ describe('legacy-unknown is replay-migration-only (never emitted by the live path)', () => {
127
+ // greptile #2240: the "REPLAY-MIGRATION ONLY" invariant on `legacy-unknown` is
128
+ // doc-only at the shared runExtractStage boundary (which MUST accept it, since the
129
+ // ReplayDraftExtractor legitimately produces it for a legacy bare-string[] row).
130
+ // Lock the invariant where it IS enforceable — the LIVE parse/adapter, which mint
131
+ // it nowhere by construction.
132
+ it('parseExtractorOutput never returns legacy-unknown for any input class', () => {
133
+ const inputs = [
134
+ '',
135
+ ' ',
136
+ 'NONE',
137
+ 'prose not json',
138
+ '[unterminated',
139
+ '{"disposition":"structural"}',
140
+ '42',
141
+ '[]',
142
+ '[""]',
143
+ '["**Pattern:** a"]',
144
+ ];
145
+ for (const raw of inputs) {
146
+ expect(parseExtractorOutput(raw).noDraftCause).not.toBe('legacy-unknown');
147
+ }
88
148
  });
89
- it('filters non-string / empty / whitespace elements and trims', () => {
90
- expect(parseExtractorOutput('["**Pattern:** a", 7, "", " ", " **Pattern:** b "]')).toEqual([
91
- '**Pattern:** a',
92
- '**Pattern:** b',
93
- ]);
149
+ it('LiveDraftExtractor never tags legacy-unknown (invoke-error / decline / drafted)', async () => {
150
+ for (const inv of [throwingInvoke(), stubInvoke('NONE'), stubInvoke('["**Pattern:** a"]')]) {
151
+ const ext = makeExtractor(inv);
152
+ expect((await ext.draft(content())).noDraftCause).not.toBe('legacy-unknown');
153
+ }
94
154
  });
95
155
  });
96
156
  // ─── 2. Classifier output parse (fold G — closed set) ─
@@ -159,19 +219,27 @@ describe('fail-loud on unexpected (non-SyntaxError) parse errors', () => {
159
219
  describe('LiveDraftExtractor', () => {
160
220
  it('drafts parsed DSL bodies from the LLM and counts a success', async () => {
161
221
  const ext = makeExtractor(stubInvoke('["**Pattern:** no-exec"]'));
162
- await expect(ext.draft(content())).resolves.toEqual(['**Pattern:** no-exec']);
222
+ await expect(ext.draft(content())).resolves.toEqual({ drafts: ['**Pattern:** no-exec'] });
163
223
  expect(ext.attempts).toBe(1);
164
224
  expect(ext.succeeded).toBe(1);
165
225
  });
166
- it('returns [] and counts a failure when the live invoke throws (per-PR fail-soft)', async () => {
226
+ it('tags invoke-error and counts a failure when the live invoke throws (per-PR fail-soft)', async () => {
167
227
  const ext = makeExtractor(throwingInvoke());
168
- await expect(ext.draft(content())).resolves.toEqual([]);
228
+ await expect(ext.draft(content())).resolves.toEqual({
229
+ drafts: [],
230
+ noDraftCause: 'invoke-error',
231
+ });
169
232
  expect(ext.attempts).toBe(1);
170
233
  expect(ext.succeeded).toBe(0);
171
234
  });
172
- it('a successful-but-empty (NONE) call still counts as succeeded (genuine sparsity ≠ failure)', async () => {
235
+ it('a successful-but-empty (NONE) call counts as succeeded + tags none-sentinel (sparsity ≠ failure)', async () => {
173
236
  const ext = makeExtractor(stubInvoke('NONE'));
174
- await expect(ext.draft(content())).resolves.toEqual([]);
237
+ await expect(ext.draft(content())).resolves.toEqual({
238
+ drafts: [],
239
+ noDraftCause: 'none-sentinel',
240
+ });
241
+ // A genuine model decline is a SUCCESS (the invoke returned) — only invoke-error
242
+ // increments the failure counter, so the dead-provider floor stays a true signal.
175
243
  expect(ext.succeeded).toBe(1);
176
244
  });
177
245
  it('isolates a per-item failure — other items still succeed, no throw', async () => {
@@ -180,8 +248,11 @@ describe('LiveDraftExtractor', () => {
180
248
  throw new Error('x');
181
249
  })()
182
250
  : '["**Pattern:** ok"]'));
183
- await expect(ext.draft(content({ pr: 1 }))).resolves.toEqual(['**Pattern:** ok']);
184
- await expect(ext.draft(content({ pr: 666 }))).resolves.toEqual([]);
251
+ await expect(ext.draft(content({ pr: 1 }))).resolves.toEqual({ drafts: ['**Pattern:** ok'] });
252
+ await expect(ext.draft(content({ pr: 666 }))).resolves.toEqual({
253
+ drafts: [],
254
+ noDraftCause: 'invoke-error',
255
+ });
185
256
  expect(ext.attempts).toBe(2);
186
257
  expect(ext.succeeded).toBe(1);
187
258
  });
@@ -1 +1 @@
1
- {"version":3,"file":"spine-llm-adapters.test.js","sourceRoot":"","sources":["../../src/commands/spine-llm-adapters.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAM7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjC,gFAAgF;AAEhF,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,mFAAmF;AACnF,SAAS,cAAc;IACrB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,KAAiC;IACrD,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,OAAO,CAAC,OAAO,CAAC;QACd,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;AACP,CAAC;AAED,gFAAgF;AAChF,+CAA+C;AAC/C,MAAM,KAAK,GAAsB,EAAE,CAAC;AAEpC,SAAS,aAAa,CACpB,MAA0B,EAC1B,MAAyB,KAAK;IAE9B,OAAO,IAAI,kBAAkB,CAAC;QAC5B,MAAM;QACN,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,WAAW;QACrB,iBAAiB,EAAE,IAAI;QACvB,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AACD,SAAS,cAAc,CACrB,MAA0B,EAC1B,MAAyB,KAAK;IAE9B,OAAO,IAAI,mBAAmB,CAAC;QAC7B,MAAM;QACN,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,WAAW;QACrB,iBAAiB,EAAE,IAAI;QACvB,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAgD;IAC/D,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG;QACnB,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI;YACxB;gBACE,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAChD;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,SAAS,GAAG,qBAAqB;IAC9C,OAAO;QACL,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE;QACvF,SAAS;KACV,CAAC;AACJ,CAAC;AAED,yDAAyD;AAEzD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,oBAAoB,CAAC,sCAAsC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3E,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,oBAAoB,CAAC,wDAAwD,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7F,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,4CAA4C,CAAC,CAAC,CAAC,OAAO,CAAC;YAClF,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/D,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;QAC7E,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;QAC5E,MAAM,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;QACnF,MAAM,CAAC,qBAAqB,CAAC,6CAA6C,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;QAClG,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB;QACjF,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,MAAM,CAAC,GAAG,EAAE,CACV,2BAA2B,CAAC,KAAK,CAAC;YAChC,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,eAAe;SACnC,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;IACtE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAEtC,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAClD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAClD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;QAChI,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAClD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,0EAA0E;QAC1E,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,GAAG,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,GAAG,GAAG,aAAa,CACvB,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,qBAAqB,CAC1B,CACF,CAAC;QACF,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnD,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,GAAG,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnD,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,eAAe;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5F,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1F,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE9F,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,IAAI,CAAC;YACH,sBAAsB,CAAC;gBACrB,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,EAAE;gBACT,iBAAiB,EAAE,KAAK;gBACxB,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAClD,MAAM,CAAE,GAA6B,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAC/E,qBAAqB,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kHAAkH,EAAE,GAAG,EAAE;QAC1H,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,WAAW;YACrB,iBAAiB,EAAE,KAAK;YACxB,GAAG,EAAE,KAAK;SACX,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC5E,qBAAqB,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACrF,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,IAAI,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAClF,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CACtF,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,MAAM,KAAK,GAAG;QACZ,mBAAmB,EAAE,2BAA2B;QAChD,oBAAoB,EAAE,4BAA4B;QAClD,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,CAAC;QACd,mBAAmB,EAAE,QAAQ;QAC7B,YAAY,EAAE,QAAQ;KACvB,CAAC;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,GAAG,KAAK;YACR,mBAAmB,EAAE,2BAA2B,GAAG,OAAO;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CACpE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,kFAAkF;AAElF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACvC,mBAAmB,EAAE,IAAI,CAAC,YAAY;YACtC,oBAAoB,EAAE,4BAA4B;YAClD,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,QAAQ;YAC7B,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;QAC5F,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC1B,qBAAqB,CAAC;YACpB,mBAAmB,EAAE,2BAA2B;YAChD,oBAAoB,EAAE,IAAI,CAAC,YAAY;YACvC,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,QAAQ;YAC7B,YAAY,EAAE,QAAQ;SACvB,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,qBAAqB,CACtC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpC,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACnB,CAAC;QACF,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,yDAAyD;AAEzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,sBAAsB,CACnC,OAAO,CAAC;YACN,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,KAAK;oBACjB,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;iBAC9D;aACF;SACF,CAAC,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iFAAiF;AAEjF,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAA4B;YACrC,CAAC,QAAQ,EAAE,OAAO,CAAC;YACnB,CAAC,SAAS,EAAE,eAAe,CAAC;YAC5B,CAAC,OAAO,EAAE,0BAA0B,CAAC;YACrC,CAAC,IAAI,EAAE,EAAE,CAAC;SACX,CAAC;QACF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"spine-llm-adapters.test.js","sourceRoot":"","sources":["../../src/commands/spine-llm-adapters.test.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@
34
34
  * integrity discipline (`verifyControlIntegrity`) are all reused, not reinvented.
35
35
  */
36
36
  import { z } from 'zod';
37
- import type { ClassifierResult, ExtractStageResult, ReviewThreadContent } from '@mmnto/totem';
37
+ import type { ClassifierResult, DraftResult, ExtractStageResult, ReviewThreadContent } from '@mmnto/totem';
38
38
  type DraftCandidate = ExtractStageResult['drafts'][number];
39
39
  /** Discriminates the two record sections for the duplicate-key guard. */
40
40
  export type AdapterKind = 'extractor' | 'classifier';
@@ -179,9 +179,58 @@ export declare const ClassifierResultLocalSchema: z.ZodEffects<z.ZodObject<{
179
179
  disposition: "structural" | "behavioral";
180
180
  dispositionSource: "classified" | "error-default";
181
181
  }>;
182
+ /**
183
+ * CLI-side validation of a recorded `DraftResult` (GCA #2209 + the panel's "replay
184
+ * artifact schema is a CLI-layer concern"): a LOCAL Zod schema rather than a static
185
+ * runtime import of core's `DraftResultSchema` (which would pull the heavy
186
+ * `@mmnto/totem` barrel onto the CLI-startup path). Mirrors core's shape AND its
187
+ * "cause iff empty" refinement LOGIC (the `NoDraftCauseSchema` enum, including the
188
+ * replay-migration-only `legacy-unknown`). Parity is accept/reject EQUIVALENCE,
189
+ * locked by a test — the local ZodError `message`/`path` stay intentionally concise
190
+ * (matching the `ClassifierResultLocalSchema` sibling), not byte-identical to core.
191
+ */
192
+ export declare const DraftResultLocalSchema: z.ZodEffects<z.ZodObject<{
193
+ drafts: z.ZodArray<z.ZodString, "many">;
194
+ noDraftCause: z.ZodOptional<z.ZodEnum<["invoke-error", "empty-output", "none-sentinel", "unparseable-shape", "non-array", "all-filtered", "legacy-unknown"]>>;
195
+ }, "strip", z.ZodTypeAny, {
196
+ drafts: string[];
197
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
198
+ }, {
199
+ drafts: string[];
200
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
201
+ }>, {
202
+ drafts: string[];
203
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
204
+ }, {
205
+ drafts: string[];
206
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
207
+ }>;
182
208
  export declare const ReplayRecordsSchema: z.ZodObject<{
183
- /** `inputKey → DraftExtractor.draft()` return (a `string[]`; `[]` is a real row). */
184
- extractor: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
209
+ /**
210
+ * `inputKey → DraftExtractor.draft()` return — a `DraftResult` (`{drafts, noDraftCause?}`);
211
+ * a recorded `{drafts:[], noDraftCause}` is a real row. BACKWARD-COMPAT (the α
212
+ * cause-tag migration): a legacy fixture stored a bare `string[]` (pre-cause-tag),
213
+ * accepted via the union so the committed cert-#1 fixture still parses + hashes
214
+ * IDENTICALLY (the bare-array branch returns it unchanged). `ReplayDraftExtractor`
215
+ * normalizes a legacy row to a `DraftResult` on read (empty → `legacy-unknown`);
216
+ * fresh recordings always write the object form.
217
+ */
218
+ extractor: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodObject<{
219
+ drafts: z.ZodArray<z.ZodString, "many">;
220
+ noDraftCause: z.ZodOptional<z.ZodEnum<["invoke-error", "empty-output", "none-sentinel", "unparseable-shape", "non-array", "all-filtered", "legacy-unknown"]>>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ drafts: string[];
223
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
224
+ }, {
225
+ drafts: string[];
226
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
227
+ }>, {
228
+ drafts: string[];
229
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
230
+ }, {
231
+ drafts: string[];
232
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
233
+ }>]>>;
185
234
  /** `inputKey → DraftClassifier.classify()` return (a `ClassifierResult`). */
186
235
  classifier: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
187
236
  disposition: z.ZodEnum<["structural", "behavioral"]>;
@@ -200,13 +249,19 @@ export declare const ReplayRecordsSchema: z.ZodObject<{
200
249
  dispositionSource: "classified" | "error-default";
201
250
  }>>;
202
251
  }, "strip", z.ZodTypeAny, {
203
- extractor: Record<string, string[]>;
252
+ extractor: Record<string, string[] | {
253
+ drafts: string[];
254
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
255
+ }>;
204
256
  classifier: Record<string, {
205
257
  disposition: "structural" | "behavioral";
206
258
  dispositionSource: "classified" | "error-default";
207
259
  }>;
208
260
  }, {
209
- extractor: Record<string, string[]>;
261
+ extractor: Record<string, string[] | {
262
+ drafts: string[];
263
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
264
+ }>;
210
265
  classifier: Record<string, {
211
266
  disposition: "structural" | "behavioral";
212
267
  dispositionSource: "classified" | "error-default";
@@ -259,8 +314,31 @@ export declare const ReplayArtifactSchema: z.ZodObject<{
259
314
  totemVersion: string;
260
315
  }>;
261
316
  records: z.ZodObject<{
262
- /** `inputKey → DraftExtractor.draft()` return (a `string[]`; `[]` is a real row). */
263
- extractor: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
317
+ /**
318
+ * `inputKey → DraftExtractor.draft()` return — a `DraftResult` (`{drafts, noDraftCause?}`);
319
+ * a recorded `{drafts:[], noDraftCause}` is a real row. BACKWARD-COMPAT (the α
320
+ * cause-tag migration): a legacy fixture stored a bare `string[]` (pre-cause-tag),
321
+ * accepted via the union so the committed cert-#1 fixture still parses + hashes
322
+ * IDENTICALLY (the bare-array branch returns it unchanged). `ReplayDraftExtractor`
323
+ * normalizes a legacy row to a `DraftResult` on read (empty → `legacy-unknown`);
324
+ * fresh recordings always write the object form.
325
+ */
326
+ extractor: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodObject<{
327
+ drafts: z.ZodArray<z.ZodString, "many">;
328
+ noDraftCause: z.ZodOptional<z.ZodEnum<["invoke-error", "empty-output", "none-sentinel", "unparseable-shape", "non-array", "all-filtered", "legacy-unknown"]>>;
329
+ }, "strip", z.ZodTypeAny, {
330
+ drafts: string[];
331
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
332
+ }, {
333
+ drafts: string[];
334
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
335
+ }>, {
336
+ drafts: string[];
337
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
338
+ }, {
339
+ drafts: string[];
340
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
341
+ }>]>>;
264
342
  /** `inputKey → DraftClassifier.classify()` return (a `ClassifierResult`). */
265
343
  classifier: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
266
344
  disposition: z.ZodEnum<["structural", "behavioral"]>;
@@ -279,13 +357,19 @@ export declare const ReplayArtifactSchema: z.ZodObject<{
279
357
  dispositionSource: "classified" | "error-default";
280
358
  }>>;
281
359
  }, "strip", z.ZodTypeAny, {
282
- extractor: Record<string, string[]>;
360
+ extractor: Record<string, string[] | {
361
+ drafts: string[];
362
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
363
+ }>;
283
364
  classifier: Record<string, {
284
365
  disposition: "structural" | "behavioral";
285
366
  dispositionSource: "classified" | "error-default";
286
367
  }>;
287
368
  }, {
288
- extractor: Record<string, string[]>;
369
+ extractor: Record<string, string[] | {
370
+ drafts: string[];
371
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
372
+ }>;
289
373
  classifier: Record<string, {
290
374
  disposition: "structural" | "behavioral";
291
375
  dispositionSource: "classified" | "error-default";
@@ -305,7 +389,10 @@ export declare const ReplayArtifactSchema: z.ZodObject<{
305
389
  totemVersion: string;
306
390
  };
307
391
  records: {
308
- extractor: Record<string, string[]>;
392
+ extractor: Record<string, string[] | {
393
+ drafts: string[];
394
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
395
+ }>;
309
396
  classifier: Record<string, {
310
397
  disposition: "structural" | "behavioral";
311
398
  dispositionSource: "classified" | "error-default";
@@ -325,7 +412,10 @@ export declare const ReplayArtifactSchema: z.ZodObject<{
325
412
  totemVersion: string;
326
413
  };
327
414
  records: {
328
- extractor: Record<string, string[]>;
415
+ extractor: Record<string, string[] | {
416
+ drafts: string[];
417
+ noDraftCause?: "legacy-unknown" | "invoke-error" | "empty-output" | "none-sentinel" | "unparseable-shape" | "non-array" | "all-filtered" | undefined;
418
+ }>;
329
419
  classifier: Record<string, {
330
420
  disposition: "structural" | "behavioral";
331
421
  dispositionSource: "classified" | "error-default";
@@ -371,7 +461,7 @@ export declare function computeArtifactHash(artifact: ReplayArtifact): string;
371
461
  export declare class ReplayRecordSink {
372
462
  private readonly extractor;
373
463
  private readonly classifier;
374
- recordExtractor(inputKey: string, output: string[]): void;
464
+ recordExtractor(inputKey: string, output: DraftResult): void;
375
465
  recordClassifier(inputKey: string, output: ClassifierResult): void;
376
466
  /** Snapshot the records as a plain (Zod-validated) object — keys land sorted on serialize. */
377
467
  records(): ReplayRecords;
@@ -379,18 +469,19 @@ export declare class ReplayRecordSink {
379
469
  freeze(provenance: ReplayProvenance): ReplayArtifact;
380
470
  }
381
471
  /**
382
- * Records every `DraftExtractor.draft()` call's inputKey → raw `string[]` output
383
- * into the sink, then passes the value THROUGH unchanged. The recorded value is
384
- * the PORT's return (pre-core-funnel) — a recorded `[]` is a real row. A
385
- * duplicate inputKey throws (via the sink).
472
+ * Records every `DraftExtractor.draft()` call's inputKey → raw `DraftResult` output
473
+ * into the sink, then passes the value THROUGH unchanged. The recorded value is the
474
+ * PORT's return (pre-core-funnel) — a recorded `{drafts:[], noDraftCause}` is a real
475
+ * row that freezes the NO-DRAFT cause for the replay. A duplicate inputKey throws
476
+ * (via the sink).
386
477
  */
387
478
  export declare class RecordingDraftExtractor {
388
479
  private readonly wrapped;
389
480
  private readonly sink;
390
481
  constructor(wrapped: {
391
- draft(content: ReviewThreadContent): Promise<string[]>;
482
+ draft(content: ReviewThreadContent): Promise<DraftResult>;
392
483
  }, sink: ReplayRecordSink);
393
- draft(content: ReviewThreadContent): Promise<string[]>;
484
+ draft(content: ReviewThreadContent): Promise<DraftResult>;
394
485
  }
395
486
  /**
396
487
  * Records every `DraftClassifier.classify()` call's inputKey → raw
@@ -414,8 +505,9 @@ export declare class RecordingDraftClassifier {
414
505
  /**
415
506
  * PURE replay of `DraftExtractor` — zero live LLM / network calls. Computes the
416
507
  * inputKey for the requested content, looks it up in the frozen records:
417
- * - HIT → return the recorded `string[]` (including a recorded `[]` a real row);
418
- * - MISS throw `ReplayMissError` (NEVER fall back to `[]`).
508
+ * - HIT → return the recorded `DraftResult` (a recorded empty result is a real
509
+ * row; a legacy bare-`string[]` row is normalized to a `DraftResult`);
510
+ * - MISS → throw `ReplayMissError` (NEVER fall back to an empty result).
419
511
  *
420
512
  * Integrity (fold B + F): the constructor takes the EXTERNAL expected content-
421
513
  * hash, computes the actual WHOLE-ARTIFACT hash (records + provenance), and throws
@@ -425,7 +517,7 @@ export declare class RecordingDraftClassifier {
425
517
  export declare class ReplayDraftExtractor {
426
518
  private readonly records;
427
519
  constructor(fixture: ReplayArtifact, expectedHash: string);
428
- draft(content: ReviewThreadContent): Promise<string[]>;
520
+ draft(content: ReviewThreadContent): Promise<DraftResult>;
429
521
  }
430
522
  /**
431
523
  * PURE replay of `DraftClassifier` — zero live calls. Computes the inputKey
@@ -1 +1 @@
1
- {"version":3,"file":"spine-llm-replay.d.ts","sourceRoot":"","sources":["../../src/commands/spine-llm-replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAGlB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAOtB,KAAK,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAc3D,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAIrD;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;CAUvD;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAUrD;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;CASvD;AAkGD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQlF;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;IACjC,qFAAqF;;IAErF,0CAA0C;;IAE1C,gEAAgE;;IAEhE,+CAA+C;;IAE/C,8DAA8D;;IAE9D,yDAAyD;;IAEzD,+FAA+F;;IAE/F,mFAAmF;;IAEnF,qDAAqD;;;;;;;;;;;;;;;;;;;;;;EAErD,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;;GAQG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAOpC,CAAC;AAEL,eAAO,MAAM,mBAAmB;IAC9B,qFAAqF;;IAErF,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7E,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB;;;QA7D/B,qFAAqF;;QAErF,0CAA0C;;QAE1C,gEAAgE;;QAEhE,+CAA+C;;QAE/C,8DAA8D;;QAE9D,yDAAyD;;QAEzD,+FAA+F;;QAE/F,mFAAmF;;QAEnF,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;QAkCrD,qFAAqF;;QAErF,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7E,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEpE;AAcD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAElE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAKzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAKlE,8FAA8F;IAC9F,OAAO,IAAI,aAAa;IAOxB,8FAA8F;IAC9F,MAAM,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc;CAOrD;AAID;;;;;GAKG;AACH,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,OAAO,EAAE;QAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;KAAE,EACnE,IAAI,EAAE,gBAAgB;IAGnC,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAK7D;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,EACvE,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM;IAGxD,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAKjE;AAkBD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAEzC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM;IASnD,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAU7D;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAG3D,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM;IAUvC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAOjE"}
1
+ {"version":3,"file":"spine-llm-replay.d.ts","sourceRoot":"","sources":["../../src/commands/spine-llm-replay.ts"],"names":[],"mappings":"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"}
@@ -277,9 +277,45 @@ export const ClassifierResultLocalSchema = z
277
277
  .refine((v) => v.dispositionSource !== 'error-default' || v.disposition === 'behavioral', {
278
278
  message: "dispositionSource 'error-default' requires disposition 'behavioral'",
279
279
  });
280
+ /**
281
+ * CLI-side validation of a recorded `DraftResult` (GCA #2209 + the panel's "replay
282
+ * artifact schema is a CLI-layer concern"): a LOCAL Zod schema rather than a static
283
+ * runtime import of core's `DraftResultSchema` (which would pull the heavy
284
+ * `@mmnto/totem` barrel onto the CLI-startup path). Mirrors core's shape AND its
285
+ * "cause iff empty" refinement LOGIC (the `NoDraftCauseSchema` enum, including the
286
+ * replay-migration-only `legacy-unknown`). Parity is accept/reject EQUIVALENCE,
287
+ * locked by a test — the local ZodError `message`/`path` stay intentionally concise
288
+ * (matching the `ClassifierResultLocalSchema` sibling), not byte-identical to core.
289
+ */
290
+ export const DraftResultLocalSchema = z
291
+ .object({
292
+ drafts: z.array(z.string()),
293
+ noDraftCause: z
294
+ .enum([
295
+ 'invoke-error',
296
+ 'empty-output',
297
+ 'none-sentinel',
298
+ 'unparseable-shape',
299
+ 'non-array',
300
+ 'all-filtered',
301
+ 'legacy-unknown',
302
+ ])
303
+ .optional(),
304
+ })
305
+ .refine((r) => (r.drafts.length === 0) === (r.noDraftCause !== undefined), {
306
+ message: 'noDraftCause must be present iff drafts is empty',
307
+ });
280
308
  export const ReplayRecordsSchema = z.object({
281
- /** `inputKey → DraftExtractor.draft()` return (a `string[]`; `[]` is a real row). */
282
- extractor: z.record(z.array(z.string())),
309
+ /**
310
+ * `inputKey → DraftExtractor.draft()` return — a `DraftResult` (`{drafts, noDraftCause?}`);
311
+ * a recorded `{drafts:[], noDraftCause}` is a real row. BACKWARD-COMPAT (the α
312
+ * cause-tag migration): a legacy fixture stored a bare `string[]` (pre-cause-tag),
313
+ * accepted via the union so the committed cert-#1 fixture still parses + hashes
314
+ * IDENTICALLY (the bare-array branch returns it unchanged). `ReplayDraftExtractor`
315
+ * normalizes a legacy row to a `DraftResult` on read (empty → `legacy-unknown`);
316
+ * fresh recordings always write the object form.
317
+ */
318
+ extractor: z.record(z.union([z.array(z.string()), DraftResultLocalSchema])),
283
319
  /** `inputKey → DraftClassifier.classify()` return (a `ClassifierResult`). */
284
320
  classifier: z.record(ClassifierResultLocalSchema),
285
321
  });
@@ -371,10 +407,11 @@ export class ReplayRecordSink {
371
407
  }
372
408
  // ─── Recording decorators (generic over the port) ─────
373
409
  /**
374
- * Records every `DraftExtractor.draft()` call's inputKey → raw `string[]` output
375
- * into the sink, then passes the value THROUGH unchanged. The recorded value is
376
- * the PORT's return (pre-core-funnel) — a recorded `[]` is a real row. A
377
- * duplicate inputKey throws (via the sink).
410
+ * Records every `DraftExtractor.draft()` call's inputKey → raw `DraftResult` output
411
+ * into the sink, then passes the value THROUGH unchanged. The recorded value is the
412
+ * PORT's return (pre-core-funnel) — a recorded `{drafts:[], noDraftCause}` is a real
413
+ * row that freezes the NO-DRAFT cause for the replay. A duplicate inputKey throws
414
+ * (via the sink).
378
415
  */
379
416
  export class RecordingDraftExtractor {
380
417
  wrapped;
@@ -432,8 +469,9 @@ function assertFixtureIntegrity(artifact, expectedHash) {
432
469
  /**
433
470
  * PURE replay of `DraftExtractor` — zero live LLM / network calls. Computes the
434
471
  * inputKey for the requested content, looks it up in the frozen records:
435
- * - HIT → return the recorded `string[]` (including a recorded `[]` a real row);
436
- * - MISS throw `ReplayMissError` (NEVER fall back to `[]`).
472
+ * - HIT → return the recorded `DraftResult` (a recorded empty result is a real
473
+ * row; a legacy bare-`string[]` row is normalized to a `DraftResult`);
474
+ * - MISS → throw `ReplayMissError` (NEVER fall back to an empty result).
437
475
  *
438
476
  * Integrity (fold B + F): the constructor takes the EXTERNAL expected content-
439
477
  * hash, computes the actual WHOLE-ARTIFACT hash (records + provenance), and throws
@@ -448,17 +486,26 @@ export class ReplayDraftExtractor {
448
486
  this.records = parsed.records.extractor;
449
487
  }
450
488
  // `async` so a MISS surfaces as a REJECTED promise (the port contract is
451
- // `Promise<string[]>`; a consumer awaits it). A synchronous `throw` would
489
+ // `Promise<DraftResult>`; a consumer awaits it). A synchronous `throw` would
452
490
  // escape an `await`-less caller's `.catch`, so the rejection path is uniform.
453
491
  async draft(content) {
454
492
  const inputKey = extractorInputKey(content);
455
- // `Object.prototype.hasOwnProperty`-style presence check, NOT truthiness: a
456
- // recorded `[]` is a real HIT (falsy-but-present), distinct from an absent
457
- // key (a MISS).
493
+ // Presence check, NOT truthiness: a recorded empty result is a real HIT,
494
+ // distinct from an absent key (a MISS).
458
495
  if (!Object.prototype.hasOwnProperty.call(this.records, inputKey)) {
459
496
  throw new ReplayMissError('extractor', inputKey);
460
497
  }
461
- return this.records[inputKey];
498
+ const rec = this.records[inputKey];
499
+ // Backward-compat (α migration): a legacy fixture row is a bare `string[]`
500
+ // (pre-cause-tag) → normalize to a `DraftResult`. An EMPTY legacy row gets
501
+ // `legacy-unknown` — NOT a fabricated real cause; it honestly signals "this
502
+ // fixture predates cause-tags, re-record before cause-rate reporting." A
503
+ // non-empty legacy row carries its drafts and no cause. A fresh row is already
504
+ // a `DraftResult` and passes through unchanged.
505
+ if (Array.isArray(rec)) {
506
+ return rec.length === 0 ? { drafts: rec, noDraftCause: 'legacy-unknown' } : { drafts: rec };
507
+ }
508
+ return rec;
462
509
  }
463
510
  }
464
511
  /**