@animalabs/membrane 0.5.52 → 0.5.53

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.
@@ -5,4 +5,6 @@ export type { PrefillFormatter, StreamParser, FormatterConfig, BuildOptions, Bui
5
5
  export { AnthropicXmlFormatter, type AnthropicXmlFormatterConfig } from './anthropic-xml.js';
6
6
  export { NativeFormatter, type NativeFormatterConfig } from './native.js';
7
7
  export { CompletionsFormatter, type CompletionsFormatterConfig } from './completions.js';
8
+ export { normalizeToolPairs, MembraneNormalizerError, type NormalizeOptions, type NormalizeResult, type ProviderBlock, } from './normalize-tool-pairs.js';
9
+ export type { NormalizeEvent } from './types.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -4,4 +4,5 @@
4
4
  export { AnthropicXmlFormatter } from './anthropic-xml.js';
5
5
  export { NativeFormatter } from './native.js';
6
6
  export { CompletionsFormatter } from './completions.js';
7
+ export { normalizeToolPairs, MembraneNormalizerError, } from './normalize-tool-pairs.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EAAE,qBAAqB,EAAoC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAmC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EAAE,qBAAqB,EAAoC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAmC,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GAIxB,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/formatters/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAEZ,QAAQ,EACR,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EAMhB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAyGD,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,SAAS;IAE7B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,MAAM,GAAE,qBAA0B;IAY9C,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW;IAwHhF,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;IAchD,kBAAkB,IAAI,YAAY;IAIlC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAM3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE;IAYnD,OAAO,CAAC,cAAc;IAuEtB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,oBAAoB;CAO7B"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/formatters/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAEZ,QAAQ,EACR,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EAMhB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAyGD,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,SAAS;IAE7B,OAAO,CAAC,MAAM,CAAkC;gBAEpC,MAAM,GAAE,qBAA0B;IAY9C,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW;IAkIhF,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;IAchD,kBAAkB,IAAI,YAAY;IAIlC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAM3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE;IAYnD,OAAO,CAAC,cAAc;IAuEtB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -8,6 +8,7 @@
8
8
  * - 'simple': Strict two-party (Human/Assistant), no names in content
9
9
  * - 'multiuser': Multiple participants, names prefixed to content
10
10
  */
11
+ import { normalizeToolPairs } from './normalize-tool-pairs.js';
11
12
  // ============================================================================
12
13
  // Pass-through Stream Parser
13
14
  // ============================================================================
@@ -162,8 +163,16 @@ export class NativeFormatter {
162
163
  content[content.length - 1].cache_control = cacheControl;
163
164
  }
164
165
  }
166
+ // Tool-pair normalizer: wire-boundary safety net for Anthropic's
167
+ // structural rules on tool cycles. See `normalize-tool-pairs.ts`
168
+ // for the full rationale. Runs BEFORE mergeConsecutiveRoles so the
169
+ // merge sees role-correct envelopes.
170
+ const normalized = normalizeToolPairs(providerMessages, {
171
+ pendingToolCallIds: options.pendingToolCallIds,
172
+ onEvent: options.onNormalize,
173
+ });
165
174
  // Merge consecutive same-role messages (API requires alternating)
166
- const mergedMessages = this.mergeConsecutiveRoles(providerMessages);
175
+ const mergedMessages = this.mergeConsecutiveRoles(normalized.messages);
167
176
  // Build system content with optional cache control
168
177
  let systemContent;
169
178
  if (typeof systemPrompt === 'string') {
@@ -196,6 +205,7 @@ export class NativeFormatter {
196
205
  systemContent,
197
206
  stopSequences: additionalStopSequences ?? [],
198
207
  nativeTools,
208
+ ready: normalized.ready,
199
209
  };
200
210
  }
201
211
  formatToolResults(results) {
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/formatters/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/formatters/native.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Tool-Pair Normalizer
3
+ *
4
+ * Anthropic's API enforces structural rules on tool cycles that any of
5
+ * Membrane's upstreams can accidentally violate:
6
+ *
7
+ * - `tool_use` blocks must live in assistant-role messages.
8
+ * - `tool_result` blocks must live in user-role messages.
9
+ * - Every `tool_use` must be matched by its `tool_result` in the very
10
+ * next user-role message.
11
+ * - `thinking` blocks must live in assistant turns.
12
+ *
13
+ * When these are violated, the API returns 400 (e.g. `tool_use blocks can
14
+ * only be in assistant messages`). This module is the wire-boundary safety
15
+ * net: every formatter funnels through `normalizeToolPairs` before its
16
+ * output is shipped, so producer-side bugs cannot leak the same 400 family
17
+ * (compression-bug 5/6/7/8/9, agent-framework #37, 2026-05-22 miner stall).
18
+ *
19
+ * Algorithm overview (six phases): reclassify blocks by required role,
20
+ * reflow into role-correct envelopes, hoist matching tool_results across
21
+ * the assistant→user boundary, evict interlopers wedged between use and
22
+ * result, synthesize `[pending]` results for trailing orphans (or signal
23
+ * not-ready when the id is in the caller-supplied pending set), validate.
24
+ */
25
+ import type { ProviderMessage as LooseProviderMessage } from './types.js';
26
+ import type { NormalizeEvent } from './types.js';
27
+ /**
28
+ * Block shape used internally and exposed for callers that want to
29
+ * build inputs without the full Anthropic SDK types. The required
30
+ * `type` discriminator names the kind of block; any block whose `type`
31
+ * matches a strict-role entry in `requiredRoleOf` is re-roled to its
32
+ * required role during normalization. Unrecognized `tool_*` or
33
+ * `thinking*` types fall through as `inherit` — see the one-shot
34
+ * warning below.
35
+ */
36
+ export type ProviderBlock = Record<string, unknown> & {
37
+ type: string;
38
+ };
39
+ export interface NormalizeOptions {
40
+ /** See `BuildOptions.pendingToolCallIds`. */
41
+ pendingToolCallIds?: ReadonlySet<string>;
42
+ /** See `BuildOptions.onNormalize`. */
43
+ onEvent?: (event: NormalizeEvent) => void;
44
+ }
45
+ export interface NormalizeResult {
46
+ /**
47
+ * Normalized messages, structurally compatible with the loose
48
+ * `ProviderMessage` from `./types.js`. Block contents are
49
+ * `ProviderBlock[]` at runtime; the loose type is preserved at the
50
+ * public boundary so callers wired against `./types.js` don't need
51
+ * to cast.
52
+ */
53
+ messages: LooseProviderMessage[];
54
+ /**
55
+ * `false` iff a trailing unmatched tool_use's id was in
56
+ * `pendingToolCallIds`. Caller should wait for the in-flight result
57
+ * to land and retry instead of shipping the request.
58
+ */
59
+ ready: boolean;
60
+ }
61
+ export declare class MembraneNormalizerError extends Error {
62
+ readonly input: ReadonlyArray<LooseProviderMessage>;
63
+ readonly output: ReadonlyArray<LooseProviderMessage>;
64
+ constructor(message: string, input: ReadonlyArray<LooseProviderMessage>, output: ReadonlyArray<LooseProviderMessage>);
65
+ }
66
+ /**
67
+ * Normalize a sequence of provider messages so the output is API-valid
68
+ * with respect to Anthropic's tool-cycle structural rules.
69
+ *
70
+ * This function does NOT merge consecutive same-role envelopes — that
71
+ * remains the caller's responsibility (NativeFormatter.mergeConsecutiveRoles)
72
+ * so existing cache-control / breakpoint logic continues to work.
73
+ */
74
+ export declare function normalizeToolPairs(input: ReadonlyArray<LooseProviderMessage>, options?: NormalizeOptions): NormalizeResult;
75
+ //# sourceMappingURL=normalize-tool-pairs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-tool-pairs.d.ts","sourceRoot":"","sources":["../../src/formatters/normalize-tool-pairs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC1C,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CA+DjB"}