@animalabs/membrane 0.5.55 → 0.5.64
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/native.d.ts.map +1 -1
- package/dist/formatters/native.js +11 -0
- package/dist/formatters/native.js.map +1 -1
- package/dist/membrane.d.ts +28 -0
- package/dist/membrane.d.ts.map +1 -1
- package/dist/membrane.js +169 -17
- package/dist/membrane.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +94 -3
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +14 -4
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/openai-compatible.d.ts.map +1 -1
- package/dist/providers/openai-compatible.js +3 -0
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/providers/openai-completions.d.ts.map +1 -1
- package/dist/providers/openai-completions.js +57 -3
- package/dist/providers/openai-completions.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +3 -0
- package/dist/providers/openai.js.map +1 -1
- package/dist/types/content.d.ts +6 -0
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/content.js.map +1 -1
- package/dist/types/provider.d.ts +9 -0
- package/dist/types/provider.d.ts.map +1 -1
- package/dist/types/request.d.ts +10 -0
- package/dist/types/request.d.ts.map +1 -1
- package/dist/types/tools.d.ts +9 -0
- package/dist/types/tools.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/formatters/native.ts +10 -0
- package/src/membrane.ts +191 -19
- package/src/providers/anthropic.ts +100 -5
- package/src/providers/bedrock.ts +13 -4
- package/src/providers/openai-compatible.ts +4 -0
- package/src/providers/openai-completions.ts +58 -2
- package/src/providers/openai.ts +4 -0
- package/src/types/content.ts +6 -0
- package/src/types/provider.ts +10 -0
- package/src/types/request.ts +12 -1
- package/src/types/tools.ts +14 -4
|
@@ -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;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;
|
|
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;IAiFtB,OAAO,CAAC,oBAAoB;CAO7B"}
|
|
@@ -292,11 +292,22 @@ export class NativeFormatter {
|
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
else if (block.type === 'thinking') {
|
|
295
|
+
// Round-trip thinking blocks verbatim, including the signature — the
|
|
296
|
+
// API validates it and (on display:'omitted' models) decrypts it to
|
|
297
|
+
// reconstruct the original reasoning. Signature-only blocks (empty
|
|
298
|
+
// thinking field) are valid and must be passed back unchanged.
|
|
295
299
|
result.push({
|
|
296
300
|
type: 'thinking',
|
|
297
301
|
thinking: block.thinking,
|
|
302
|
+
...(block.signature
|
|
303
|
+
? { signature: block.signature }
|
|
304
|
+
: {}),
|
|
298
305
|
});
|
|
299
306
|
}
|
|
307
|
+
else if (block.type === 'redacted_thinking') {
|
|
308
|
+
// Pass through verbatim (carries encrypted data field)
|
|
309
|
+
result.push({ ...block });
|
|
310
|
+
}
|
|
300
311
|
else if (block.type === 'document' || block.type === 'audio') {
|
|
301
312
|
hasUnsupportedMedia = true;
|
|
302
313
|
}
|
|
@@ -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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"}
|
package/dist/membrane.d.ts
CHANGED
|
@@ -59,6 +59,24 @@ export declare class Membrane {
|
|
|
59
59
|
* Parse provider response content into normalized blocks
|
|
60
60
|
*/
|
|
61
61
|
private parseProviderContent;
|
|
62
|
+
/**
|
|
63
|
+
* Capture native thinking / redacted_thinking blocks from a provider
|
|
64
|
+
* response so they can be merged into parser-derived content (XML paths,
|
|
65
|
+
* where the parser only sees text). Includes signature-only thinking
|
|
66
|
+
* blocks (display:'omitted' returns an empty thinking field).
|
|
67
|
+
*/
|
|
68
|
+
private captureProviderThinkingBlocks;
|
|
69
|
+
/**
|
|
70
|
+
* Merge provider thinking signatures into parser-derived thinking blocks
|
|
71
|
+
* (matched in stream order), and prepend any leftover provider blocks —
|
|
72
|
+
* signature-only thinking (display:'omitted') never appears in the text
|
|
73
|
+
* stream, so the parser produces no block for it. redacted_thinking
|
|
74
|
+
* blocks are always prepended verbatim.
|
|
75
|
+
*
|
|
76
|
+
* Mutates `content` in place. Shared by the XML stream paths
|
|
77
|
+
* (streamWithXmlTools and runXmlToolsYielding).
|
|
78
|
+
*/
|
|
79
|
+
private mergeProviderThinkingBlocks;
|
|
62
80
|
/**
|
|
63
81
|
* Apply the configured `beforeRequest` hook to a provider-format request.
|
|
64
82
|
* Returns the (possibly modified) request, or the original if no hook is
|
|
@@ -73,6 +91,16 @@ export declare class Membrane {
|
|
|
73
91
|
* Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
|
|
74
92
|
*/
|
|
75
93
|
private getBaseProviderParams;
|
|
94
|
+
/**
|
|
95
|
+
* Build the provider thinking parameter from config.
|
|
96
|
+
*
|
|
97
|
+
* For type 'enabled', the API requires max_tokens > budget_tokens and a
|
|
98
|
+
* minimum budget of 1024 — a misconfigured budget (e.g., default 10000 with
|
|
99
|
+
* max_tokens 4096) is clamped to fit. If no valid budget fits (max_tokens
|
|
100
|
+
* too small), thinking is omitted entirely rather than sending a request
|
|
101
|
+
* the API will reject.
|
|
102
|
+
*/
|
|
103
|
+
private buildThinkingParam;
|
|
76
104
|
/**
|
|
77
105
|
* Transform a normalized request into provider format using the formatter
|
|
78
106
|
*/
|
package/dist/membrane.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membrane.d.ts","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,eAAe,EAEf,cAAc,EACd,aAAa,EACb,eAAe,EAYhB,MAAM,kBAAkB,CAAC;AAmB1B,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAYpC,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAmB;gBAGlC,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,cAAmB;IAc7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IA6E9B;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC;IA+BhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;;OAMG;YACW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"membrane.d.ts","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,eAAe,EAEf,cAAc,EACd,aAAa,EACb,eAAe,EAYhB,MAAM,kBAAkB,CAAC;AAmB1B,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAYpC,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAmB;gBAGlC,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,cAAmB;IAc7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IA6E9B;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC;IA+BhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;;OAMG;YACW,kBAAkB;IAwehC;;OAEG;YACW,qBAAqB;IAwOnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwJ9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0C5B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAkBrC;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;;;;;;OAOG;YACW,sBAAsB;IASpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAwDV,UAAU;IA+BxB,OAAO,CAAC,wBAAwB;IA8ChC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kCAAkC;IAoD1C,OAAO,CAAC,iBAAiB;IAqIzB,OAAO,CAAC,kBAAkB;IAkF1B,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,cAAc;IAItB,qFAAqF;IACrF,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;IAcb;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,cAAc,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,cAAc;IAWjB;;OAEG;YACW,mBAAmB;IAwdjC;;OAEG;YACW,sBAAsB;CAmSrC"}
|
package/dist/membrane.js
CHANGED
|
@@ -186,6 +186,11 @@ export class Membrane {
|
|
|
186
186
|
// Track non-text content blocks from provider (e.g., generated_image from Gemini)
|
|
187
187
|
// These can't be handled by the text-based XML parser, so we capture and append them
|
|
188
188
|
const extraContentBlocks = [];
|
|
189
|
+
// Native thinking blocks from the provider (with signatures). The parser
|
|
190
|
+
// derives signature-less thinking blocks from <thinking> text (via
|
|
191
|
+
// wrapThinkingTags); signatures from these are merged into those after
|
|
192
|
+
// parsing, and signature-only blocks are prepended.
|
|
193
|
+
const providerThinkingBlocks = [];
|
|
189
194
|
// Transform initial request using the formatter
|
|
190
195
|
let { providerRequest, prefillResult } = this.transformRequest(request, formatter);
|
|
191
196
|
// Initialize parser with prefill content so it knows about any open tags
|
|
@@ -266,6 +271,10 @@ export class Membrane {
|
|
|
266
271
|
}, {
|
|
267
272
|
signal,
|
|
268
273
|
normalizedRequest: request,
|
|
274
|
+
// The tag-based parser tracks thinking via <thinking> tags — ask the
|
|
275
|
+
// provider to wrap native thinking deltas so they don't stream as
|
|
276
|
+
// visible text (see ProviderRequestOptions.wrapThinkingTags)
|
|
277
|
+
wrapThinkingTags: true,
|
|
269
278
|
onRequest: (req) => {
|
|
270
279
|
rawRequest = req;
|
|
271
280
|
onRequest?.(req);
|
|
@@ -290,6 +299,10 @@ export class Membrane {
|
|
|
290
299
|
});
|
|
291
300
|
}
|
|
292
301
|
}
|
|
302
|
+
// Native thinking blocks carry the signature (encrypted full
|
|
303
|
+
// reasoning) — captured so consumers can persist and round-trip
|
|
304
|
+
// them for reasoning continuity.
|
|
305
|
+
this.captureProviderThinkingBlocks(streamResult.content, providerThinkingBlocks);
|
|
293
306
|
}
|
|
294
307
|
rawResponse = streamResult.raw;
|
|
295
308
|
// Call onResponse callback with raw response from API
|
|
@@ -513,6 +526,8 @@ export class Membrane {
|
|
|
513
526
|
if (extraContentBlocks.length > 0) {
|
|
514
527
|
response.content.push(...extraContentBlocks);
|
|
515
528
|
}
|
|
529
|
+
// Merge provider thinking signatures into parser-derived thinking blocks
|
|
530
|
+
this.mergeProviderThinkingBlocks(response.content, providerThinkingBlocks);
|
|
516
531
|
return response;
|
|
517
532
|
}
|
|
518
533
|
catch (error) {
|
|
@@ -755,6 +770,21 @@ export class Membrane {
|
|
|
755
770
|
is_error: block.isError,
|
|
756
771
|
});
|
|
757
772
|
}
|
|
773
|
+
else if (block.type === 'thinking') {
|
|
774
|
+
// Round-trip thinking blocks verbatim including the signature — the
|
|
775
|
+
// API validates it and (on display:'omitted' models) decrypts it to
|
|
776
|
+
// reconstruct prior reasoning. Empty thinking + signature is valid.
|
|
777
|
+
content.push({
|
|
778
|
+
type: 'thinking',
|
|
779
|
+
thinking: block.thinking ?? '',
|
|
780
|
+
...(block.signature
|
|
781
|
+
? { signature: block.signature }
|
|
782
|
+
: {}),
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
else if (block.type === 'redacted_thinking') {
|
|
786
|
+
content.push({ ...block });
|
|
787
|
+
}
|
|
758
788
|
else if (block.type === 'image') {
|
|
759
789
|
if (block.source.type === 'base64') {
|
|
760
790
|
const imageBlock = {
|
|
@@ -824,13 +854,8 @@ export class Membrane {
|
|
|
824
854
|
const blocks = system;
|
|
825
855
|
system = blocks.map((block, idx) => idx === blocks.length - 1 ? { ...block, cache_control: cacheControl } : block);
|
|
826
856
|
}
|
|
827
|
-
// Build thinking config for native extended thinking
|
|
828
|
-
const thinking = request.config
|
|
829
|
-
? {
|
|
830
|
-
type: 'enabled',
|
|
831
|
-
budget_tokens: request.config.thinking.budgetTokens ?? 5000,
|
|
832
|
-
}
|
|
833
|
-
: undefined;
|
|
857
|
+
// Build thinking config for native extended thinking (budget clamped to max_tokens)
|
|
858
|
+
const thinking = this.buildThinkingParam(request.config);
|
|
834
859
|
// Anthropic requires temperature=1 when extended thinking is enabled
|
|
835
860
|
const temperature = thinking ? 1 : request.config.temperature;
|
|
836
861
|
return {
|
|
@@ -867,10 +892,14 @@ export class Membrane {
|
|
|
867
892
|
else if (item.type === 'thinking') {
|
|
868
893
|
blocks.push({
|
|
869
894
|
type: 'thinking',
|
|
870
|
-
thinking: item.thinking,
|
|
871
|
-
signature: item.signature,
|
|
895
|
+
thinking: item.thinking ?? '',
|
|
896
|
+
...(item.signature ? { signature: item.signature } : {}),
|
|
872
897
|
});
|
|
873
898
|
}
|
|
899
|
+
else if (item.type === 'redacted_thinking') {
|
|
900
|
+
// Pass through verbatim — carries the encrypted `data` payload
|
|
901
|
+
blocks.push({ ...item });
|
|
902
|
+
}
|
|
874
903
|
else if (item.type === 'generated_image') {
|
|
875
904
|
blocks.push({
|
|
876
905
|
type: 'generated_image',
|
|
@@ -886,6 +915,56 @@ export class Membrane {
|
|
|
886
915
|
}
|
|
887
916
|
return [];
|
|
888
917
|
}
|
|
918
|
+
/**
|
|
919
|
+
* Capture native thinking / redacted_thinking blocks from a provider
|
|
920
|
+
* response so they can be merged into parser-derived content (XML paths,
|
|
921
|
+
* where the parser only sees text). Includes signature-only thinking
|
|
922
|
+
* blocks (display:'omitted' returns an empty thinking field).
|
|
923
|
+
*/
|
|
924
|
+
captureProviderThinkingBlocks(providerContent, sink) {
|
|
925
|
+
if (!Array.isArray(providerContent))
|
|
926
|
+
return;
|
|
927
|
+
for (const block of providerContent) {
|
|
928
|
+
if (block?.type === 'thinking') {
|
|
929
|
+
sink.push({
|
|
930
|
+
type: 'thinking',
|
|
931
|
+
thinking: block.thinking ?? '',
|
|
932
|
+
...(block.signature ? { signature: block.signature } : {}),
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
else if (block?.type === 'redacted_thinking') {
|
|
936
|
+
sink.push({ ...block });
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
/**
|
|
941
|
+
* Merge provider thinking signatures into parser-derived thinking blocks
|
|
942
|
+
* (matched in stream order), and prepend any leftover provider blocks —
|
|
943
|
+
* signature-only thinking (display:'omitted') never appears in the text
|
|
944
|
+
* stream, so the parser produces no block for it. redacted_thinking
|
|
945
|
+
* blocks are always prepended verbatim.
|
|
946
|
+
*
|
|
947
|
+
* Mutates `content` in place. Shared by the XML stream paths
|
|
948
|
+
* (streamWithXmlTools and runXmlToolsYielding).
|
|
949
|
+
*/
|
|
950
|
+
mergeProviderThinkingBlocks(content, providerThinkingBlocks) {
|
|
951
|
+
if (providerThinkingBlocks.length === 0)
|
|
952
|
+
return;
|
|
953
|
+
const parsedThinking = content.filter((b) => b.type === 'thinking');
|
|
954
|
+
const providerThinking = providerThinkingBlocks.filter((b) => b.type === 'thinking');
|
|
955
|
+
const redacted = providerThinkingBlocks.filter((b) => b.type === 'redacted_thinking');
|
|
956
|
+
const matched = Math.min(providerThinking.length, parsedThinking.length);
|
|
957
|
+
for (let i = 0; i < matched; i++) {
|
|
958
|
+
const sig = providerThinking[i].signature;
|
|
959
|
+
if (sig) {
|
|
960
|
+
parsedThinking[i].signature = sig;
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
const leftover = providerThinking.slice(matched);
|
|
964
|
+
if (leftover.length > 0 || redacted.length > 0) {
|
|
965
|
+
content.unshift(...leftover, ...redacted);
|
|
966
|
+
}
|
|
967
|
+
}
|
|
889
968
|
// ==========================================================================
|
|
890
969
|
// Internal Methods
|
|
891
970
|
// ==========================================================================
|
|
@@ -908,8 +987,10 @@ export class Membrane {
|
|
|
908
987
|
* Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
|
|
909
988
|
*/
|
|
910
989
|
getBaseProviderParams(config) {
|
|
990
|
+
// Build thinking config for native extended thinking
|
|
991
|
+
const thinking = this.buildThinkingParam(config);
|
|
911
992
|
// Anthropic requires temperature=1 when extended thinking is enabled
|
|
912
|
-
const temperature =
|
|
993
|
+
const temperature = thinking ? 1 : config.temperature;
|
|
913
994
|
return {
|
|
914
995
|
model: config.model,
|
|
915
996
|
maxTokens: config.maxTokens,
|
|
@@ -918,8 +999,35 @@ export class Membrane {
|
|
|
918
999
|
topK: config.topK,
|
|
919
1000
|
presencePenalty: config.presencePenalty,
|
|
920
1001
|
frequencyPenalty: config.frequencyPenalty,
|
|
1002
|
+
repetitionPenalty: config.repetitionPenalty,
|
|
1003
|
+
thinking,
|
|
921
1004
|
};
|
|
922
1005
|
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Build the provider thinking parameter from config.
|
|
1008
|
+
*
|
|
1009
|
+
* For type 'enabled', the API requires max_tokens > budget_tokens and a
|
|
1010
|
+
* minimum budget of 1024 — a misconfigured budget (e.g., default 10000 with
|
|
1011
|
+
* max_tokens 4096) is clamped to fit. If no valid budget fits (max_tokens
|
|
1012
|
+
* too small), thinking is omitted entirely rather than sending a request
|
|
1013
|
+
* the API will reject.
|
|
1014
|
+
*/
|
|
1015
|
+
buildThinkingParam(config) {
|
|
1016
|
+
if (!config.thinking?.enabled)
|
|
1017
|
+
return undefined;
|
|
1018
|
+
const display = config.thinking.display;
|
|
1019
|
+
if ((config.thinking.type ?? 'enabled') === 'adaptive') {
|
|
1020
|
+
return { type: 'adaptive', ...(display ? { display } : {}) };
|
|
1021
|
+
}
|
|
1022
|
+
const requested = config.thinking.budgetTokens ?? 5000;
|
|
1023
|
+
const maxTokens = typeof config.maxTokens === 'number' ? config.maxTokens : undefined;
|
|
1024
|
+
const budget = maxTokens !== undefined ? Math.min(requested, maxTokens - 1024) : requested;
|
|
1025
|
+
if (budget < 1024) {
|
|
1026
|
+
// Can't fit a valid thinking budget under max_tokens — skip thinking
|
|
1027
|
+
return undefined;
|
|
1028
|
+
}
|
|
1029
|
+
return { type: 'enabled', budget_tokens: budget, ...(display ? { display } : {}) };
|
|
1030
|
+
}
|
|
923
1031
|
/**
|
|
924
1032
|
* Transform a normalized request into provider format using the formatter
|
|
925
1033
|
*/
|
|
@@ -959,6 +1067,14 @@ export class Membrane {
|
|
|
959
1067
|
normalizedMessages: request.messages,
|
|
960
1068
|
},
|
|
961
1069
|
};
|
|
1070
|
+
// The API rejects extended thinking combined with an assistant prefill.
|
|
1071
|
+
// Prefill-style builds (XML formatter) use the thinking config for the
|
|
1072
|
+
// literal `<thinking>` text prefix instead of the API feature — drop the
|
|
1073
|
+
// API param when the built request actually ends in an assistant prefill.
|
|
1074
|
+
// Chat-style builds (no prefill) keep it.
|
|
1075
|
+
if (buildResult.assistantPrefill && providerRequest.thinking) {
|
|
1076
|
+
delete providerRequest.thinking;
|
|
1077
|
+
}
|
|
962
1078
|
return { providerRequest, prefillResult: buildResult };
|
|
963
1079
|
}
|
|
964
1080
|
async streamOnce(request, callbacks, options) {
|
|
@@ -991,6 +1107,9 @@ export class Membrane {
|
|
|
991
1107
|
}
|
|
992
1108
|
return {
|
|
993
1109
|
...this.getBaseProviderParams(originalRequest.config),
|
|
1110
|
+
// Continuations always end in an assistant prefill — the API rejects
|
|
1111
|
+
// extended thinking combined with prefill, so never send the param here
|
|
1112
|
+
thinking: undefined,
|
|
994
1113
|
messages,
|
|
995
1114
|
system: prefillResult.systemContent
|
|
996
1115
|
? (Array.isArray(prefillResult.systemContent) && prefillResult.systemContent.length > 0
|
|
@@ -1050,6 +1169,9 @@ export class Membrane {
|
|
|
1050
1169
|
}
|
|
1051
1170
|
return {
|
|
1052
1171
|
...this.getBaseProviderParams(originalRequest.config),
|
|
1172
|
+
// Continuations always end in an assistant prefill — the API rejects
|
|
1173
|
+
// extended thinking combined with prefill, so never send the param here
|
|
1174
|
+
thinking: undefined,
|
|
1053
1175
|
messages,
|
|
1054
1176
|
system: prefillResult.systemContent
|
|
1055
1177
|
? (Array.isArray(prefillResult.systemContent) && prefillResult.systemContent.length > 0
|
|
@@ -1088,10 +1210,14 @@ export class Membrane {
|
|
|
1088
1210
|
else if (block.type === 'thinking') {
|
|
1089
1211
|
content.push({
|
|
1090
1212
|
type: 'thinking',
|
|
1091
|
-
thinking: block.thinking,
|
|
1092
|
-
signature: block.signature,
|
|
1213
|
+
thinking: block.thinking ?? '',
|
|
1214
|
+
...(block.signature ? { signature: block.signature } : {}),
|
|
1093
1215
|
});
|
|
1094
1216
|
}
|
|
1217
|
+
else if (block.type === 'redacted_thinking') {
|
|
1218
|
+
// Pass through verbatim — carries the encrypted `data` payload
|
|
1219
|
+
content.push({ ...block });
|
|
1220
|
+
}
|
|
1095
1221
|
else if (block.type === 'generated_image') {
|
|
1096
1222
|
content.push({
|
|
1097
1223
|
type: 'generated_image',
|
|
@@ -1250,6 +1376,11 @@ export class Membrane {
|
|
|
1250
1376
|
return 'stop_sequence';
|
|
1251
1377
|
case 'tool_use':
|
|
1252
1378
|
return 'tool_use';
|
|
1379
|
+
case 'refusal':
|
|
1380
|
+
// Safety refusal (e.g., Fable 5 reasoning_extraction). Must survive
|
|
1381
|
+
// mapping — downstream consumers react to refusals (chapterx adds a
|
|
1382
|
+
// Discord reaction). Defaulting this to end_turn silently hid them.
|
|
1383
|
+
return 'refusal';
|
|
1253
1384
|
default:
|
|
1254
1385
|
return 'end_turn';
|
|
1255
1386
|
}
|
|
@@ -1391,6 +1522,10 @@ export class Membrane {
|
|
|
1391
1522
|
let lastStopSequence;
|
|
1392
1523
|
let rawRequest;
|
|
1393
1524
|
let rawResponse;
|
|
1525
|
+
// Native thinking blocks from the provider (with signatures) — merged
|
|
1526
|
+
// into the parser-derived content before the final response is emitted.
|
|
1527
|
+
// See streamWithXmlTools for the matching non-yielding logic.
|
|
1528
|
+
const providerThinkingBlocks = [];
|
|
1394
1529
|
// Track executed tool calls and results
|
|
1395
1530
|
const executedToolCalls = [];
|
|
1396
1531
|
const executedToolResults = [];
|
|
@@ -1485,6 +1620,10 @@ export class Membrane {
|
|
|
1485
1620
|
timeoutMs: options.timeoutMs,
|
|
1486
1621
|
idleTimeoutMs: options.idleTimeoutMs,
|
|
1487
1622
|
normalizedRequest: request,
|
|
1623
|
+
// The tag-based parser tracks thinking via <thinking> tags — ask
|
|
1624
|
+
// the provider to wrap native thinking deltas so they don't
|
|
1625
|
+
// stream as visible text (same as streamWithXmlTools).
|
|
1626
|
+
wrapThinkingTags: true,
|
|
1488
1627
|
onRequest: (req) => { rawRequest = req; },
|
|
1489
1628
|
});
|
|
1490
1629
|
// If we detected stop sequence manually, fix up the parser and result
|
|
@@ -1494,6 +1633,10 @@ export class Membrane {
|
|
|
1494
1633
|
streamResult.stopReason = 'stop_sequence';
|
|
1495
1634
|
streamResult.stopSequence = detectedStopSequence;
|
|
1496
1635
|
}
|
|
1636
|
+
// Capture native thinking blocks (with signatures) from the provider
|
|
1637
|
+
// response — the text parser can't see signatures, so they're merged
|
|
1638
|
+
// into the final response content after parsing.
|
|
1639
|
+
this.captureProviderThinkingBlocks(streamResult.content, providerThinkingBlocks);
|
|
1497
1640
|
rawResponse = streamResult.raw;
|
|
1498
1641
|
lastStopReason = this.mapStopReason(streamResult.stopReason);
|
|
1499
1642
|
lastStopSequence = streamResult.stopSequence ?? undefined;
|
|
@@ -1715,6 +1858,8 @@ export class Membrane {
|
|
|
1715
1858
|
const fullAccumulated = parser.getAccumulated();
|
|
1716
1859
|
const newContent = fullAccumulated.slice(initialPrefillLength);
|
|
1717
1860
|
const response = this.buildFinalResponse(newContent, contentBlocks, lastStopReason, totalUsage, request, prefillResult, startTime, 1, rawRequest, rawResponse, executedToolCalls, executedToolResults, initialBlockType, lastStopSequence);
|
|
1861
|
+
// Merge provider thinking signatures into parser-derived thinking blocks
|
|
1862
|
+
this.mergeProviderThinkingBlocks(response.content, providerThinkingBlocks);
|
|
1718
1863
|
stream.emit({ type: 'complete', response });
|
|
1719
1864
|
}
|
|
1720
1865
|
catch (error) {
|
|
@@ -1892,6 +2037,10 @@ export class Membrane {
|
|
|
1892
2037
|
depth: toolDepth,
|
|
1893
2038
|
previousResults: executedToolResults,
|
|
1894
2039
|
accumulated: allTextAccumulated,
|
|
2040
|
+
// Full normalized blocks for this round, in provider order —
|
|
2041
|
+
// lets consumers persist the assistant turn verbatim (signed
|
|
2042
|
+
// thinking must precede tool_use in the same turn).
|
|
2043
|
+
roundContent: responseBlocks,
|
|
1895
2044
|
};
|
|
1896
2045
|
// Yield control for tool execution
|
|
1897
2046
|
const toolCallsEvent = {
|
|
@@ -1988,13 +2137,16 @@ export class Membrane {
|
|
|
1988
2137
|
}
|
|
1989
2138
|
}
|
|
1990
2139
|
// Native tool names must match ^[a-zA-Z0-9_-]{1,128}$.
|
|
1991
|
-
//
|
|
1992
|
-
//
|
|
1993
|
-
//
|
|
2140
|
+
// Tool names use `--` namespacing, which is already API-valid; the only
|
|
2141
|
+
// character that ever needs escaping is a literal colon, encoded losslessly as
|
|
2142
|
+
// `__` and back. We deliberately do NOT escape underscores — they are valid,
|
|
2143
|
+
// and escaping them (the previous `_u`/`_c` scheme) garbled every
|
|
2144
|
+
// underscore-containing tool name in the request the model actually sees
|
|
2145
|
+
// (`send_message` → `send_umessage`), polluting its reasoning for no benefit.
|
|
1994
2146
|
function sanitizeToolName(name) {
|
|
1995
|
-
return name.replace(
|
|
2147
|
+
return name.replace(/:/g, '__');
|
|
1996
2148
|
}
|
|
1997
2149
|
function unsanitizeToolName(name) {
|
|
1998
|
-
return name.replace(/
|
|
2150
|
+
return name.replace(/__/g, ':');
|
|
1999
2151
|
}
|
|
2000
2152
|
//# sourceMappingURL=membrane.js.map
|