@animalabs/membrane 0.5.54 → 0.5.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/formatters/normalize-tool-pairs.d.ts +4 -2
- package/dist/formatters/normalize-tool-pairs.d.ts.map +1 -1
- package/dist/formatters/normalize-tool-pairs.js +95 -22
- package/dist/formatters/normalize-tool-pairs.js.map +1 -1
- package/dist/formatters/types.d.ts +26 -0
- package/dist/formatters/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/formatters/normalize-tool-pairs.ts +100 -25
- package/src/formatters/types.ts +28 -1
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
* output is shipped, so producer-side bugs cannot leak the same 400 family
|
|
17
17
|
* (compression-bug 5/6/7/8/9, agent-framework #37, 2026-05-22 miner stall).
|
|
18
18
|
*
|
|
19
|
-
* Algorithm overview (
|
|
19
|
+
* Algorithm overview (eight phases): reclassify blocks by required role,
|
|
20
20
|
* reflow into role-correct envelopes, hoist matching tool_results across
|
|
21
21
|
* the assistant→user boundary, evict interlopers wedged between use and
|
|
22
22
|
* result, synthesize `[pending]` results for trailing orphans (or signal
|
|
23
|
-
* not-ready when the id is in the caller-supplied pending set),
|
|
23
|
+
* not-ready when the id is in the caller-supplied pending set), drop
|
|
24
|
+
* empty envelopes, prepend a synthetic `[continuing]` user envelope when
|
|
25
|
+
* the first envelope ended up assistant-role, validate.
|
|
24
26
|
*/
|
|
25
27
|
import type { ProviderMessage as LooseProviderMessage } from './types.js';
|
|
26
28
|
import type { NormalizeEvent } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-tool-pairs.d.ts","sourceRoot":"","sources":["../../src/formatters/normalize-tool-pairs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"normalize-tool-pairs.d.ts","sourceRoot":"","sources":["../../src/formatters/normalize-tool-pairs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,sCAAsC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAG9B,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC;aAC1C,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC;gBAF3D,OAAO,EAAE,MAAM,EACC,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC1C,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC;CAK9D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC1C,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAuIjB;AAodD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC5C,oBAAoB,EAAE,CAsBxB"}
|
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
* output is shipped, so producer-side bugs cannot leak the same 400 family
|
|
17
17
|
* (compression-bug 5/6/7/8/9, agent-framework #37, 2026-05-22 miner stall).
|
|
18
18
|
*
|
|
19
|
-
* Algorithm overview (
|
|
19
|
+
* Algorithm overview (eight phases): reclassify blocks by required role,
|
|
20
20
|
* reflow into role-correct envelopes, hoist matching tool_results across
|
|
21
21
|
* the assistant→user boundary, evict interlopers wedged between use and
|
|
22
22
|
* result, synthesize `[pending]` results for trailing orphans (or signal
|
|
23
|
-
* not-ready when the id is in the caller-supplied pending set),
|
|
23
|
+
* not-ready when the id is in the caller-supplied pending set), drop
|
|
24
|
+
* empty envelopes, prepend a synthetic `[continuing]` user envelope when
|
|
25
|
+
* the first envelope ended up assistant-role, validate.
|
|
24
26
|
*/
|
|
25
27
|
export class MembraneNormalizerError extends Error {
|
|
26
28
|
input;
|
|
@@ -70,31 +72,100 @@ export function normalizeToolPairs(input, options = {}) {
|
|
|
70
72
|
// Phase 5.5: suppress cache_control on/after any envelope containing
|
|
71
73
|
// a synthetic block, so cache keys don't get invalidated when the
|
|
72
74
|
// real result arrives in a later round.
|
|
75
|
+
//
|
|
76
|
+
// The suppression itself happens here (we know which envelope is the
|
|
77
|
+
// first synthetic by its position in the current array), but the
|
|
78
|
+
// `cache_suppressed_for_synthetic` telemetry is deferred until after
|
|
79
|
+
// phase 6 (which can drop empty envelopes before the synthetic) and
|
|
80
|
+
// phase 7 (which can prepend a `[continuing]` envelope, shifting
|
|
81
|
+
// everything by +1). The event's `envelopeIndex` must refer to the
|
|
82
|
+
// final output array so consumers can index back into it reliably.
|
|
83
|
+
// We pin the envelope by reference and recompute the index after
|
|
84
|
+
// those phases settle.
|
|
73
85
|
// ---------------------------------------------------------------------
|
|
86
|
+
let pendingCacheSuppressionRef = null;
|
|
74
87
|
if (orphanRes.firstSyntheticEnvelope !== null) {
|
|
75
|
-
|
|
88
|
+
const ref = envelopes[orphanRes.firstSyntheticEnvelope];
|
|
89
|
+
const suppressed = suppressCacheControlFrom(envelopes, orphanRes.firstSyntheticEnvelope);
|
|
90
|
+
if (suppressed) {
|
|
91
|
+
pendingCacheSuppressionRef = ref;
|
|
92
|
+
}
|
|
76
93
|
}
|
|
77
94
|
// ---------------------------------------------------------------------
|
|
78
95
|
// Phase 6: drop empty envelopes (can arise from phase 4 dropping or
|
|
79
|
-
// phase 3 hoisting)
|
|
80
|
-
//
|
|
81
|
-
//
|
|
96
|
+
// phase 3 hoisting). We deliberately do NOT merge consecutive
|
|
97
|
+
// same-role envelopes here — that's the formatter's job.
|
|
98
|
+
//
|
|
99
|
+
// The synthetic-bearing envelope (held by `pendingCacheSuppressionRef`)
|
|
100
|
+
// cannot be dropped here — phase 5 unshifts its synthetic block onto
|
|
101
|
+
// that envelope's content, so it's guaranteed non-empty.
|
|
82
102
|
// ---------------------------------------------------------------------
|
|
83
103
|
envelopes = envelopes.filter((e) => e.content.length > 0);
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
// ---------------------------------------------------------------------
|
|
105
|
+
// Phase 7: ensure first envelope is user-role.
|
|
106
|
+
//
|
|
107
|
+
// Anthropic requires `messages[0].role === 'user'`. The leading
|
|
108
|
+
// envelope can become assistant for two distinct reasons:
|
|
109
|
+
//
|
|
110
|
+
// (a) Re-roling artifact — a strict-role block (thinking, tool_use)
|
|
111
|
+
// lived under a user-role input message and phase 1+2 moved it
|
|
112
|
+
// to a new leading assistant envelope. `originalFirstRole`
|
|
113
|
+
// is `'user'`.
|
|
114
|
+
//
|
|
115
|
+
// (b) Producer bug — a context strategy genuinely selected an
|
|
116
|
+
// assistant message as the first message of its compiled view
|
|
117
|
+
// (the 2026-05-26 reviewer postmortem: PassthroughStrategy
|
|
118
|
+
// `selectFromEnd` cut on an assistant turn). `originalFirstRole`
|
|
119
|
+
// is `'assistant'`.
|
|
120
|
+
//
|
|
121
|
+
// Both cases get the same repair (prepend a `[continuing]` user
|
|
122
|
+
// envelope) because deletion would lose content in case (a) — the
|
|
123
|
+
// re-roled blocks are real conversation content the producer
|
|
124
|
+
// expected to ship. The synthetic costs a leading cache miss
|
|
125
|
+
// (deterministic literal, so idempotent across identical inputs)
|
|
126
|
+
// but preserves API correctness and producer simplicity. We emit
|
|
127
|
+
// a warn-level event so telemetry can distinguish the causes and
|
|
128
|
+
// alert on (b) without coupling control flow to attribution.
|
|
129
|
+
//
|
|
130
|
+
// Idempotency: the synthetic content is a fixed literal. Running
|
|
131
|
+
// normalize twice on the same input produces identical output the
|
|
132
|
+
// second time (envelope[0] is user, gate doesn't fire).
|
|
133
|
+
// ---------------------------------------------------------------------
|
|
134
|
+
if (envelopes.length > 0 && envelopes[0].role === 'assistant') {
|
|
135
|
+
// `input` is guaranteed non-empty here: rebuildEnvelopes only
|
|
136
|
+
// produces envelopes when iterating input messages, so a non-empty
|
|
137
|
+
// envelopes implies a non-empty input.
|
|
138
|
+
const originalFirstRole = input[0].role;
|
|
139
|
+
const leadingBlockTypes = envelopes[0].content.map((b) => b.type);
|
|
93
140
|
envelopes.unshift({ role: 'user', content: [{ type: 'text', text: '[continuing]' }] });
|
|
141
|
+
onEvent({ kind: 'leading_user_synthesized', originalFirstRole, leadingBlockTypes });
|
|
142
|
+
}
|
|
143
|
+
// ---------------------------------------------------------------------
|
|
144
|
+
// Deferred phase 5.5 telemetry: emit `cache_suppressed_for_synthetic`
|
|
145
|
+
// now that index-mutating phases (6, 7) have settled. The envelope
|
|
146
|
+
// reference pinned in phase 5.5 survives both — phase 6 can't drop it
|
|
147
|
+
// (the synthetic block keeps it non-empty), and phase 7 either leaves
|
|
148
|
+
// it in place or shifts it by +1 via unshift.
|
|
149
|
+
// ---------------------------------------------------------------------
|
|
150
|
+
if (pendingCacheSuppressionRef !== null) {
|
|
151
|
+
const envelopeIndex = envelopes.indexOf(pendingCacheSuppressionRef);
|
|
152
|
+
// Assertion: indexOf must succeed. Phases 6 and 7 only filter/prepend;
|
|
153
|
+
// neither can remove an envelope holding a synthetic block.
|
|
154
|
+
if (envelopeIndex < 0) {
|
|
155
|
+
throw new MembraneNormalizerError(`Phase 5.5 envelope reference vanished between phase 6 and phase 7 — ` +
|
|
156
|
+
`internal bug: synthetic-bearing envelope should be reachable after both phases.`, input.map(cloneMsg), envelopes.map(toProviderMessage));
|
|
157
|
+
}
|
|
158
|
+
onEvent({ kind: 'cache_suppressed_for_synthetic', envelopeIndex });
|
|
94
159
|
}
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
//
|
|
160
|
+
// ---------------------------------------------------------------------
|
|
161
|
+
// Phase 8: validate. When `ready === false` we intentionally have
|
|
162
|
+
// unmatched tool_uses — but ONLY the ones in `pending` are allowed to
|
|
163
|
+
// remain unsynthesized. Any other gap is a bug in phase 5 and must
|
|
164
|
+
// throw. The first-message-must-be-user branch should be unreachable
|
|
165
|
+
// after phase 7; it remains as defense-in-depth against a future
|
|
166
|
+
// phase introducing a leading assistant envelope without firing
|
|
167
|
+
// phase 7.
|
|
168
|
+
// ---------------------------------------------------------------------
|
|
98
169
|
validate(envelopes, input, pending);
|
|
99
170
|
return { messages: envelopes.map(toProviderMessage), ready };
|
|
100
171
|
}
|
|
@@ -355,7 +426,7 @@ function resolveOrphans(envelopes, pending, onEvent) {
|
|
|
355
426
|
}
|
|
356
427
|
return { envelopes, ready, firstSyntheticEnvelope };
|
|
357
428
|
}
|
|
358
|
-
function suppressCacheControlFrom(envelopes, startIndex
|
|
429
|
+
function suppressCacheControlFrom(envelopes, startIndex) {
|
|
359
430
|
// Strip cache_control from blocks at-or-after startIndex. We must NOT
|
|
360
431
|
// mutate the caller's input blocks (envelopes share references with
|
|
361
432
|
// the input via rebuildEnvelopes), so clone-on-write: replace any
|
|
@@ -363,6 +434,10 @@ function suppressCacheControlFrom(envelopes, startIndex, onEvent) {
|
|
|
363
434
|
// The envelope's content array is replaced wholesale via .map; this
|
|
364
435
|
// is the only place in the normalizer that creates new block objects
|
|
365
436
|
// out of existing ones (synthetics aside).
|
|
437
|
+
//
|
|
438
|
+
// Returns whether any block was actually suppressed, so the caller
|
|
439
|
+
// can decide whether to emit telemetry. Emission is deferred until
|
|
440
|
+
// after phases 6 and 7 settle the final envelope ordering.
|
|
366
441
|
let suppressed = false;
|
|
367
442
|
for (let i = startIndex; i < envelopes.length; i++) {
|
|
368
443
|
const env = envelopes[i];
|
|
@@ -374,9 +449,7 @@ function suppressCacheControlFrom(envelopes, startIndex, onEvent) {
|
|
|
374
449
|
return rest;
|
|
375
450
|
});
|
|
376
451
|
}
|
|
377
|
-
|
|
378
|
-
onEvent({ kind: 'cache_suppressed_for_synthetic', envelopeIndex: startIndex });
|
|
379
|
-
}
|
|
452
|
+
return suppressed;
|
|
380
453
|
}
|
|
381
454
|
function validate(envelopes, input, pending) {
|
|
382
455
|
// Empty input → empty output is fine.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-tool-pairs.js","sourceRoot":"","sources":["../../src/formatters/normalize-tool-pairs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalize-tool-pairs.js","sourceRoot":"","sources":["../../src/formatters/normalize-tool-pairs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA4CH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAG9B;IACA;IAHlB,YACE,OAAe,EACC,KAA0C,EAC1C,MAA2C;QAE3D,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,UAAK,GAAL,KAAK,CAAqC;QAC1C,WAAM,GAAN,MAAM,CAAqC;QAG3D,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA0C,EAC1C,UAA4B,EAAE;IAE9B,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,GAAG,EAAU,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IAExC,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEjD,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,SAAS,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAErD,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEjD,wEAAwE;IACxE,2BAA2B;IAC3B,wEAAwE;IACxE,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAE9B,wEAAwE;IACxE,qEAAqE;IACrE,kEAAkE;IAClE,wCAAwC;IACxC,EAAE;IACF,qEAAqE;IACrE,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,iEAAiE;IACjE,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,uBAAuB;IACvB,wEAAwE;IACxE,IAAI,0BAA0B,GAAoB,IAAI,CAAC;IACvD,IAAI,SAAS,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,sBAAsB,CAAE,CAAC;QACzD,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACzF,IAAI,UAAU,EAAE,CAAC;YACf,0BAA0B,GAAG,GAAG,CAAC;QACnC,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,oEAAoE;IACpE,8DAA8D;IAC9D,yDAAyD;IACzD,EAAE;IACF,wEAAwE;IACxE,qEAAqE;IACrE,yDAAyD;IACzD,wEAAwE;IACxE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,wEAAwE;IACxE,+CAA+C;IAC/C,EAAE;IACF,gEAAgE;IAChE,0DAA0D;IAC1D,EAAE;IACF,sEAAsE;IACtE,qEAAqE;IACrE,iEAAiE;IACjE,qBAAqB;IACrB,EAAE;IACF,gEAAgE;IAChE,oEAAoE;IACpE,iEAAiE;IACjE,uEAAuE;IACvE,0BAA0B;IAC1B,EAAE;IACF,gEAAgE;IAChE,kEAAkE;IAClE,6DAA6D;IAC7D,6DAA6D;IAC7D,iEAAiE;IACjE,iEAAiE;IACjE,iEAAiE;IACjE,6DAA6D;IAC7D,EAAE;IACF,iEAAiE;IACjE,kEAAkE;IAClE,wDAAwD;IACxD,wEAAwE;IACxE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/D,8DAA8D;QAC9D,mEAAmE;QACnE,uCAAuC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;QACzC,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,8CAA8C;IAC9C,wEAAwE;IACxE,IAAI,0BAA0B,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACpE,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAC/B,sEAAsE;gBACpE,iFAAiF,EACnF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,wEAAwE;IACxE,kEAAkE;IAClE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,iEAAiE;IACjE,gEAAgE;IAChE,WAAW;IACX,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC;AAaD;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,KAAoB;IAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,mBAAmB;YACtB,OAAO,WAAW,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC;QAChB;YACE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AACvC,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO;IACxC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5B,sCAAsC;IACtC,OAAO,CAAC,IAAI,CACV,mEAAmE,SAAS,MAAM;QAChF,kFAAkF;QAClF,sDAAsD,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA0C,EAC1C,OAAoC;IAEpC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAoB,IAAI,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,mEAAmE;YACnE,+DAA+D;YAC/D,iBAAiB;YACjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,OAAO;oBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACxE,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAA0B,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,UAAU,GAAyB,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAE5E,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC1C,OAAO,CAAC;oBACN,IAAI,EAAE,gBAAgB;oBACtB,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,EAAE,EAAE,GAAG;iBACR,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpD,IAAI,OAAO;oBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAqB,EACrB,OAAoC;IAEpC,sEAAsE;IACtE,gEAAgE;IAChE,mEAAmE;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,uEAAuE;QACvE,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,OAAO;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;aACvC,GAAG,CAAC,YAAY,CAAC;aACjB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CACxD,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAEpC,kEAAkE;YAClE,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YACvE,IAAI,KAAK,EAAE,CAAC;gBACV,2DAA2D;gBAC3D,gEAAgE;gBAChE,mBAAmB;gBACnB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtB,OAAO,CAAC;oBACN,IAAI,EAAE,qBAAqB;oBAC3B,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,UAAU,EAAE,OAAO;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAqB,EACrB,OAAoC;IAEpC,2DAA2D;IAC3D,mEAAmE;IACnE,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,sEAAsE;IACtE,iEAAiE;IACjE,kEAAkE;IAClE,kEAAkE;IAClE,qEAAqE;IACrE,mEAAmE;IACnE,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAE5C,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAoB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAoB,EAAE,CAAC;QAEjC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpF,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,0DAA0D;gBAC1D,0DAA0D;gBAC1D,2BAA2B;gBAC3B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,CAAC,GAAG,CAAC;aACpB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAS,cAAc,CACrB,SAAqB,EACrB,OAA4B,EAC5B,OAAoC;IAEpC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,sBAAsB,GAAkB,IAAI,CAAC;IAEjD,oEAAoE;IACpE,gDAAgD;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAI,KAAyB,CAAC,EAAE,CAAC;gBACzC,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAClC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YAC/C,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAI,KAA+B,CAAC,OAAO,CAAC;gBACvD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,SAAS,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;gBAChF,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,2BAA2B,EAAE,IAAI,WAAW,MAAM,SAAS,EAAE;iBACpE,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,kDAAkD;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAE,CAAC;QACpC,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,2BAA2B;QAC3B,MAAM,UAAU,GACd,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,OAAO;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;aACvC,GAAG,CAAC,YAAY,CAAC;aACjB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CACxD,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,GAAG,KAAK,CAAC;gBACd,OAAO,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzC,uDAAuD;YACvD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,sBAAsB,KAAK,IAAI;gBAAE,sBAAsB,GAAG,OAAO,CAAC;YACtE,OAAO,CAAC;gBACN,IAAI,EAAE,0BAA0B;gBAChC,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAAqB,EACrB,UAAkB;IAElB,sEAAsE;IACtE,oEAAoE;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,oEAAoE;IACpE,qEAAqE;IACrE,2CAA2C;IAC3C,EAAE;IACF,mEAAmE;IACnE,mEAAmE;IACnE,2DAA2D;IAC3D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,CAAC,eAAe,IAAI,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAEzC,CAAC;YACF,OAAO,IAAqB,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CACf,SAAqB,EACrB,KAA0C,EAC1C,OAA4B;IAE5B,sCAAsC;IACtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,gEAAgE;IAChE,gEAAgE;IAChE,IAAI,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,uBAAuB,CAC/B,6CAA6C,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK;YAClE,mEAAmE,EACrE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,IAAI,EAAE,IAAI,KAAK,MAAM;YACnB,CAAC,CAAC,IAAI,CAAC,OAAO;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;iBACvC,GAAG,CAAC,YAAY,CAAC;iBACjB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;YACzD,CAAC,CAAC,EAAE,CACP,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS,CAAC,yBAAyB;YAC3D,MAAM,IAAI,uBAAuB,CAC/B,gBAAgB,KAAK,iBAAiB,CAAC,4CAA4C,CAAC,GAAG,CAAC,IAAI;gBAC1F,2FAA2F;gBAC3F,4EAA4E,EAC9E,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACjC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAoB;IACxC,MAAM,CAAC,GAAG,KAAuD,CAAC;IAClE,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,WAAW,CAAC;IAC5D,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,SAAS,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAI,KAAyB,CAAC,EAAE,CAAC;YACzC,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAChC,SAAqB,EACrB,OAAe,EACf,KAAa;IAEb,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBAAE,SAAS;YAC3C,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBAClC,wDAAwD;gBACxD,4DAA4D;gBAC5D,6DAA6D;gBAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACtC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAyB;IACzC,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,IAAI;IACX,yBAAyB;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA6C;IAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAyB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC;IAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5F,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChF,OAAO,GAAG;gBACR,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,WAAW,CAAC;aAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -98,6 +98,32 @@ export type NormalizeEvent = {
|
|
|
98
98
|
} | {
|
|
99
99
|
kind: 'cache_suppressed_for_synthetic';
|
|
100
100
|
envelopeIndex: number;
|
|
101
|
+
} | {
|
|
102
|
+
/**
|
|
103
|
+
* Fires when the first envelope after re-roling is assistant and a
|
|
104
|
+
* synthetic `[continuing]` user envelope had to be prepended to
|
|
105
|
+
* satisfy Anthropic's `messages[0].role === 'user'` requirement.
|
|
106
|
+
*
|
|
107
|
+
* `originalFirstRole` distinguishes the two causes a consumer might
|
|
108
|
+
* want to alert on separately:
|
|
109
|
+
* - `'user'` → re-roling artifact (a strict-role block lived
|
|
110
|
+
* under a user-role message and was moved to a
|
|
111
|
+
* new assistant envelope). Usually benign.
|
|
112
|
+
* - `'assistant'`→ producer shipped an assistant-first messages
|
|
113
|
+
* list. Real producer bug worth investigating.
|
|
114
|
+
*
|
|
115
|
+
* (Empty input never reaches this event: `rebuildEnvelopes([])`
|
|
116
|
+
* returns `[]`, and the phase-7 gate requires a non-empty envelope
|
|
117
|
+
* list. So `input[0]` is always defined when this fires.)
|
|
118
|
+
*
|
|
119
|
+
* `leadingBlockTypes` is the block-type list of the now-second
|
|
120
|
+
* envelope (i.e. what came right after the synthesized user turn),
|
|
121
|
+
* useful for classifying re-roling causes (e.g. `['thinking']`
|
|
122
|
+
* vs. `['text', 'tool_use']`).
|
|
123
|
+
*/
|
|
124
|
+
kind: 'leading_user_synthesized';
|
|
125
|
+
originalFirstRole: 'user' | 'assistant';
|
|
126
|
+
leadingBlockTypes: string[];
|
|
101
127
|
};
|
|
102
128
|
export interface BuildResult {
|
|
103
129
|
/** Messages in provider format */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/formatters/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/formatters/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
* output is shipped, so producer-side bugs cannot leak the same 400 family
|
|
17
17
|
* (compression-bug 5/6/7/8/9, agent-framework #37, 2026-05-22 miner stall).
|
|
18
18
|
*
|
|
19
|
-
* Algorithm overview (
|
|
19
|
+
* Algorithm overview (eight phases): reclassify blocks by required role,
|
|
20
20
|
* reflow into role-correct envelopes, hoist matching tool_results across
|
|
21
21
|
* the assistant→user boundary, evict interlopers wedged between use and
|
|
22
22
|
* result, synthesize `[pending]` results for trailing orphans (or signal
|
|
23
|
-
* not-ready when the id is in the caller-supplied pending set),
|
|
23
|
+
* not-ready when the id is in the caller-supplied pending set), drop
|
|
24
|
+
* empty envelopes, prepend a synthetic `[continuing]` user envelope when
|
|
25
|
+
* the first envelope ended up assistant-role, validate.
|
|
24
26
|
*/
|
|
25
27
|
|
|
26
28
|
import type { ProviderMessage as LooseProviderMessage } from './types.js';
|
|
@@ -123,36 +125,108 @@ export function normalizeToolPairs(
|
|
|
123
125
|
// Phase 5.5: suppress cache_control on/after any envelope containing
|
|
124
126
|
// a synthetic block, so cache keys don't get invalidated when the
|
|
125
127
|
// real result arrives in a later round.
|
|
128
|
+
//
|
|
129
|
+
// The suppression itself happens here (we know which envelope is the
|
|
130
|
+
// first synthetic by its position in the current array), but the
|
|
131
|
+
// `cache_suppressed_for_synthetic` telemetry is deferred until after
|
|
132
|
+
// phase 6 (which can drop empty envelopes before the synthetic) and
|
|
133
|
+
// phase 7 (which can prepend a `[continuing]` envelope, shifting
|
|
134
|
+
// everything by +1). The event's `envelopeIndex` must refer to the
|
|
135
|
+
// final output array so consumers can index back into it reliably.
|
|
136
|
+
// We pin the envelope by reference and recompute the index after
|
|
137
|
+
// those phases settle.
|
|
126
138
|
// ---------------------------------------------------------------------
|
|
139
|
+
let pendingCacheSuppressionRef: Envelope | null = null;
|
|
127
140
|
if (orphanRes.firstSyntheticEnvelope !== null) {
|
|
128
|
-
|
|
141
|
+
const ref = envelopes[orphanRes.firstSyntheticEnvelope]!;
|
|
142
|
+
const suppressed = suppressCacheControlFrom(envelopes, orphanRes.firstSyntheticEnvelope);
|
|
143
|
+
if (suppressed) {
|
|
144
|
+
pendingCacheSuppressionRef = ref;
|
|
145
|
+
}
|
|
129
146
|
}
|
|
130
147
|
|
|
131
148
|
// ---------------------------------------------------------------------
|
|
132
149
|
// Phase 6: drop empty envelopes (can arise from phase 4 dropping or
|
|
133
|
-
// phase 3 hoisting)
|
|
134
|
-
//
|
|
135
|
-
//
|
|
150
|
+
// phase 3 hoisting). We deliberately do NOT merge consecutive
|
|
151
|
+
// same-role envelopes here — that's the formatter's job.
|
|
152
|
+
//
|
|
153
|
+
// The synthetic-bearing envelope (held by `pendingCacheSuppressionRef`)
|
|
154
|
+
// cannot be dropped here — phase 5 unshifts its synthetic block onto
|
|
155
|
+
// that envelope's content, so it's guaranteed non-empty.
|
|
136
156
|
// ---------------------------------------------------------------------
|
|
137
157
|
envelopes = envelopes.filter((e) => e.content.length > 0);
|
|
138
158
|
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
159
|
+
// ---------------------------------------------------------------------
|
|
160
|
+
// Phase 7: ensure first envelope is user-role.
|
|
161
|
+
//
|
|
162
|
+
// Anthropic requires `messages[0].role === 'user'`. The leading
|
|
163
|
+
// envelope can become assistant for two distinct reasons:
|
|
164
|
+
//
|
|
165
|
+
// (a) Re-roling artifact — a strict-role block (thinking, tool_use)
|
|
166
|
+
// lived under a user-role input message and phase 1+2 moved it
|
|
167
|
+
// to a new leading assistant envelope. `originalFirstRole`
|
|
168
|
+
// is `'user'`.
|
|
169
|
+
//
|
|
170
|
+
// (b) Producer bug — a context strategy genuinely selected an
|
|
171
|
+
// assistant message as the first message of its compiled view
|
|
172
|
+
// (the 2026-05-26 reviewer postmortem: PassthroughStrategy
|
|
173
|
+
// `selectFromEnd` cut on an assistant turn). `originalFirstRole`
|
|
174
|
+
// is `'assistant'`.
|
|
175
|
+
//
|
|
176
|
+
// Both cases get the same repair (prepend a `[continuing]` user
|
|
177
|
+
// envelope) because deletion would lose content in case (a) — the
|
|
178
|
+
// re-roled blocks are real conversation content the producer
|
|
179
|
+
// expected to ship. The synthetic costs a leading cache miss
|
|
180
|
+
// (deterministic literal, so idempotent across identical inputs)
|
|
181
|
+
// but preserves API correctness and producer simplicity. We emit
|
|
182
|
+
// a warn-level event so telemetry can distinguish the causes and
|
|
183
|
+
// alert on (b) without coupling control flow to attribution.
|
|
184
|
+
//
|
|
185
|
+
// Idempotency: the synthetic content is a fixed literal. Running
|
|
186
|
+
// normalize twice on the same input produces identical output the
|
|
187
|
+
// second time (envelope[0] is user, gate doesn't fire).
|
|
188
|
+
// ---------------------------------------------------------------------
|
|
189
|
+
if (envelopes.length > 0 && envelopes[0]!.role === 'assistant') {
|
|
190
|
+
// `input` is guaranteed non-empty here: rebuildEnvelopes only
|
|
191
|
+
// produces envelopes when iterating input messages, so a non-empty
|
|
192
|
+
// envelopes implies a non-empty input.
|
|
193
|
+
const originalFirstRole = input[0]!.role;
|
|
194
|
+
const leadingBlockTypes = envelopes[0]!.content.map((b) => b.type);
|
|
150
195
|
envelopes.unshift({ role: 'user', content: [{ type: 'text', text: '[continuing]' }] });
|
|
196
|
+
onEvent({ kind: 'leading_user_synthesized', originalFirstRole, leadingBlockTypes });
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// ---------------------------------------------------------------------
|
|
200
|
+
// Deferred phase 5.5 telemetry: emit `cache_suppressed_for_synthetic`
|
|
201
|
+
// now that index-mutating phases (6, 7) have settled. The envelope
|
|
202
|
+
// reference pinned in phase 5.5 survives both — phase 6 can't drop it
|
|
203
|
+
// (the synthetic block keeps it non-empty), and phase 7 either leaves
|
|
204
|
+
// it in place or shifts it by +1 via unshift.
|
|
205
|
+
// ---------------------------------------------------------------------
|
|
206
|
+
if (pendingCacheSuppressionRef !== null) {
|
|
207
|
+
const envelopeIndex = envelopes.indexOf(pendingCacheSuppressionRef);
|
|
208
|
+
// Assertion: indexOf must succeed. Phases 6 and 7 only filter/prepend;
|
|
209
|
+
// neither can remove an envelope holding a synthetic block.
|
|
210
|
+
if (envelopeIndex < 0) {
|
|
211
|
+
throw new MembraneNormalizerError(
|
|
212
|
+
`Phase 5.5 envelope reference vanished between phase 6 and phase 7 — ` +
|
|
213
|
+
`internal bug: synthetic-bearing envelope should be reachable after both phases.`,
|
|
214
|
+
input.map(cloneMsg),
|
|
215
|
+
envelopes.map(toProviderMessage),
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
onEvent({ kind: 'cache_suppressed_for_synthetic', envelopeIndex });
|
|
151
219
|
}
|
|
152
220
|
|
|
153
|
-
//
|
|
154
|
-
//
|
|
155
|
-
//
|
|
221
|
+
// ---------------------------------------------------------------------
|
|
222
|
+
// Phase 8: validate. When `ready === false` we intentionally have
|
|
223
|
+
// unmatched tool_uses — but ONLY the ones in `pending` are allowed to
|
|
224
|
+
// remain unsynthesized. Any other gap is a bug in phase 5 and must
|
|
225
|
+
// throw. The first-message-must-be-user branch should be unreachable
|
|
226
|
+
// after phase 7; it remains as defense-in-depth against a future
|
|
227
|
+
// phase introducing a leading assistant envelope without firing
|
|
228
|
+
// phase 7.
|
|
229
|
+
// ---------------------------------------------------------------------
|
|
156
230
|
validate(envelopes, input, pending);
|
|
157
231
|
|
|
158
232
|
return { messages: envelopes.map(toProviderMessage), ready };
|
|
@@ -459,8 +533,7 @@ function resolveOrphans(
|
|
|
459
533
|
function suppressCacheControlFrom(
|
|
460
534
|
envelopes: Envelope[],
|
|
461
535
|
startIndex: number,
|
|
462
|
-
|
|
463
|
-
): void {
|
|
536
|
+
): boolean {
|
|
464
537
|
// Strip cache_control from blocks at-or-after startIndex. We must NOT
|
|
465
538
|
// mutate the caller's input blocks (envelopes share references with
|
|
466
539
|
// the input via rebuildEnvelopes), so clone-on-write: replace any
|
|
@@ -468,6 +541,10 @@ function suppressCacheControlFrom(
|
|
|
468
541
|
// The envelope's content array is replaced wholesale via .map; this
|
|
469
542
|
// is the only place in the normalizer that creates new block objects
|
|
470
543
|
// out of existing ones (synthetics aside).
|
|
544
|
+
//
|
|
545
|
+
// Returns whether any block was actually suppressed, so the caller
|
|
546
|
+
// can decide whether to emit telemetry. Emission is deferred until
|
|
547
|
+
// after phases 6 and 7 settle the final envelope ordering.
|
|
471
548
|
let suppressed = false;
|
|
472
549
|
for (let i = startIndex; i < envelopes.length; i++) {
|
|
473
550
|
const env = envelopes[i]!;
|
|
@@ -480,9 +557,7 @@ function suppressCacheControlFrom(
|
|
|
480
557
|
return rest as ProviderBlock;
|
|
481
558
|
});
|
|
482
559
|
}
|
|
483
|
-
|
|
484
|
-
onEvent({ kind: 'cache_suppressed_for_synthetic', envelopeIndex: startIndex });
|
|
485
|
-
}
|
|
560
|
+
return suppressed;
|
|
486
561
|
}
|
|
487
562
|
|
|
488
563
|
function validate(
|
package/src/formatters/types.ts
CHANGED
|
@@ -111,7 +111,34 @@ export type NormalizeEvent =
|
|
|
111
111
|
| { kind: 'synthetic_pending_result'; toolUseId: string; reason: 'trailing' | 'mid_stream' }
|
|
112
112
|
| { kind: 'orphan_tool_result_textified'; toolUseId: string }
|
|
113
113
|
| { kind: 'pending_in_flight'; toolUseId: string }
|
|
114
|
-
| { kind: 'cache_suppressed_for_synthetic'; envelopeIndex: number }
|
|
114
|
+
| { kind: 'cache_suppressed_for_synthetic'; envelopeIndex: number }
|
|
115
|
+
| {
|
|
116
|
+
/**
|
|
117
|
+
* Fires when the first envelope after re-roling is assistant and a
|
|
118
|
+
* synthetic `[continuing]` user envelope had to be prepended to
|
|
119
|
+
* satisfy Anthropic's `messages[0].role === 'user'` requirement.
|
|
120
|
+
*
|
|
121
|
+
* `originalFirstRole` distinguishes the two causes a consumer might
|
|
122
|
+
* want to alert on separately:
|
|
123
|
+
* - `'user'` → re-roling artifact (a strict-role block lived
|
|
124
|
+
* under a user-role message and was moved to a
|
|
125
|
+
* new assistant envelope). Usually benign.
|
|
126
|
+
* - `'assistant'`→ producer shipped an assistant-first messages
|
|
127
|
+
* list. Real producer bug worth investigating.
|
|
128
|
+
*
|
|
129
|
+
* (Empty input never reaches this event: `rebuildEnvelopes([])`
|
|
130
|
+
* returns `[]`, and the phase-7 gate requires a non-empty envelope
|
|
131
|
+
* list. So `input[0]` is always defined when this fires.)
|
|
132
|
+
*
|
|
133
|
+
* `leadingBlockTypes` is the block-type list of the now-second
|
|
134
|
+
* envelope (i.e. what came right after the synthesized user turn),
|
|
135
|
+
* useful for classifying re-roling causes (e.g. `['thinking']`
|
|
136
|
+
* vs. `['text', 'tool_use']`).
|
|
137
|
+
*/
|
|
138
|
+
kind: 'leading_user_synthesized';
|
|
139
|
+
originalFirstRole: 'user' | 'assistant';
|
|
140
|
+
leadingBlockTypes: string[];
|
|
141
|
+
};
|
|
115
142
|
|
|
116
143
|
// ============================================================================
|
|
117
144
|
// Build Result
|