@animalabs/membrane 0.5.46 → 0.5.50
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/membrane.d.ts.map +1 -1
- package/dist/membrane.js +104 -11
- package/dist/membrane.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +11 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +23 -4
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/types/yielding-stream.d.ts +10 -1
- package/dist/types/yielding-stream.d.ts.map +1 -1
- package/dist/types/yielding-stream.js.map +1 -1
- package/package.json +5 -1
- package/src/membrane.ts +127 -13
- package/src/providers/anthropic.ts +12 -0
- package/src/providers/bedrock.ts +21 -4
- package/src/types/yielding-stream.ts +10 -1
- package/dist/context/index.d.ts +0 -12
- package/dist/context/index.js +0 -11
- package/dist/context/index.js.map +0 -1
- package/dist/context/process.d.ts +0 -43
- package/dist/context/process.js +0 -381
- package/dist/context/process.js.map +0 -1
- package/dist/context/types.d.ts +0 -164
- package/dist/context/types.js +0 -61
- package/dist/context/types.js.map +0 -1
- package/dist/formatters/anthropic-xml.d.ts +0 -63
- package/dist/formatters/anthropic-xml.js +0 -417
- package/dist/formatters/anthropic-xml.js.map +0 -1
- package/dist/formatters/completions.d.ts +0 -68
- package/dist/formatters/completions.js +0 -261
- package/dist/formatters/completions.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -8
- package/dist/formatters/index.js +0 -7
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/native.d.ts +0 -35
- package/dist/formatters/native.js +0 -336
- package/dist/formatters/native.js.map +0 -1
- package/dist/formatters/types.d.ts +0 -167
- package/dist/formatters/types.js +0 -7
- package/dist/formatters/types.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/membrane.d.ts +0 -146
- package/dist/providers/anthropic.d.ts +0 -36
- package/dist/providers/bedrock.d.ts +0 -43
- package/dist/providers/gemini.d.ts +0 -68
- package/dist/providers/gemini.js +0 -538
- package/dist/providers/gemini.js.map +0 -1
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.js +0 -13
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/mock.d.ts +0 -90
- package/dist/providers/mock.d.ts.map +0 -1
- package/dist/providers/mock.js +0 -210
- package/dist/providers/mock.js.map +0 -1
- package/dist/providers/openai-compatible.d.ts +0 -82
- package/dist/providers/openai-compatible.js +0 -480
- package/dist/providers/openai-compatible.js.map +0 -1
- package/dist/providers/openai-completions.d.ts +0 -89
- package/dist/providers/openai-completions.js +0 -347
- package/dist/providers/openai-completions.js.map +0 -1
- package/dist/providers/openai-responses.d.ts +0 -77
- package/dist/providers/openai-responses.js +0 -333
- package/dist/providers/openai-responses.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -77
- package/dist/providers/openai.js +0 -533
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/openrouter.d.ts +0 -82
- package/dist/providers/openrouter.js +0 -556
- package/dist/providers/openrouter.js.map +0 -1
- package/dist/providers/utils.d.ts +0 -44
- package/dist/providers/utils.d.ts.map +0 -1
- package/dist/providers/utils.js +0 -100
- package/dist/providers/utils.js.map +0 -1
- package/dist/registry/default-pricing.d.ts +0 -3
- package/dist/registry/default-pricing.d.ts.map +0 -1
- package/dist/registry/default-pricing.js +0 -75
- package/dist/registry/default-pricing.js.map +0 -1
- package/dist/transforms/chat.d.ts +0 -52
- package/dist/transforms/chat.js +0 -136
- package/dist/transforms/chat.js.map +0 -1
- package/dist/transforms/index.d.ts +0 -5
- package/dist/transforms/index.js +0 -7
- package/dist/transforms/index.js.map +0 -1
- package/dist/types/config.d.ts +0 -110
- package/dist/types/config.js +0 -21
- package/dist/types/config.js.map +0 -1
- package/dist/types/content.d.ts +0 -87
- package/dist/types/content.d.ts.map +0 -1
- package/dist/types/content.js +0 -40
- package/dist/types/content.js.map +0 -1
- package/dist/types/errors.d.ts +0 -50
- package/dist/types/errors.d.ts.map +0 -1
- package/dist/types/errors.js +0 -253
- package/dist/types/errors.js.map +0 -1
- package/dist/types/index.d.ts +0 -20
- package/dist/types/index.js +0 -10
- package/dist/types/index.js.map +0 -1
- package/dist/types/message.d.ts +0 -52
- package/dist/types/message.d.ts.map +0 -1
- package/dist/types/message.js +0 -38
- package/dist/types/message.js.map +0 -1
- package/dist/types/provider.d.ts +0 -169
- package/dist/types/provider.d.ts.map +0 -1
- package/dist/types/provider.js +0 -5
- package/dist/types/provider.js.map +0 -1
- package/dist/types/request.d.ts +0 -116
- package/dist/types/request.d.ts.map +0 -1
- package/dist/types/request.js +0 -5
- package/dist/types/request.js.map +0 -1
- package/dist/types/response.d.ts +0 -131
- package/dist/types/response.d.ts.map +0 -1
- package/dist/types/response.js +0 -7
- package/dist/types/response.js.map +0 -1
- package/dist/types/streaming.d.ts +0 -194
- package/dist/types/streaming.js +0 -5
- package/dist/types/streaming.js.map +0 -1
- package/dist/types/tools.d.ts +0 -71
- package/dist/types/tools.d.ts.map +0 -1
- package/dist/types/tools.js +0 -5
- package/dist/types/tools.js.map +0 -1
- package/dist/utils/cost.d.ts +0 -10
- package/dist/utils/cost.d.ts.map +0 -1
- package/dist/utils/cost.js +0 -19
- package/dist/utils/cost.js.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/stream-parser.d.ts +0 -84
- package/dist/utils/stream-parser.js +0 -418
- package/dist/utils/stream-parser.js.map +0 -1
- package/dist/utils/tool-parser.d.ts +0 -134
- package/dist/utils/tool-parser.js +0 -600
- package/dist/utils/tool-parser.js.map +0 -1
- package/dist/yielding-stream.d.ts +0 -60
- package/dist/yielding-stream.js +0 -206
- package/dist/yielding-stream.js.map +0 -1
|
@@ -143,7 +143,7 @@ export class BedrockAdapter {
|
|
|
143
143
|
}
|
|
144
144
|
async complete(request, options) {
|
|
145
145
|
const bedrockModelId = this.toBedrockModelId(request.model);
|
|
146
|
-
const bedrockRequest = this.buildRequest(request);
|
|
146
|
+
const bedrockRequest = this.buildRequest(request, bedrockModelId);
|
|
147
147
|
const fullRequest = { modelId: bedrockModelId, ...bedrockRequest };
|
|
148
148
|
options?.onRequest?.(fullRequest);
|
|
149
149
|
const { signal: combinedSignal, cleanup } = createCombinedSignal(options?.signal, options?.timeoutMs);
|
|
@@ -160,7 +160,7 @@ export class BedrockAdapter {
|
|
|
160
160
|
}
|
|
161
161
|
async stream(request, callbacks, options) {
|
|
162
162
|
const bedrockModelId = this.toBedrockModelId(request.model);
|
|
163
|
-
const bedrockRequest = this.buildRequest(request);
|
|
163
|
+
const bedrockRequest = this.buildRequest(request, bedrockModelId);
|
|
164
164
|
const fullRequest = { modelId: bedrockModelId, ...bedrockRequest, stream: true };
|
|
165
165
|
options?.onRequest?.(fullRequest);
|
|
166
166
|
const { signal: combinedSignal, cleanup } = createCombinedSignal(options?.signal, options?.timeoutMs);
|
|
@@ -174,7 +174,7 @@ export class BedrockAdapter {
|
|
|
174
174
|
cleanup?.();
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
buildRequest(request) {
|
|
177
|
+
buildRequest(request, bedrockModelId) {
|
|
178
178
|
// Strip provider-specific fields (e.g., sourceUrl for Gemini) from image blocks
|
|
179
179
|
// before sending to Bedrock/Anthropic, which rejects extra inputs
|
|
180
180
|
const sanitizedMessages = request.messages.map((msg) => {
|
|
@@ -197,8 +197,18 @@ export class BedrockAdapter {
|
|
|
197
197
|
messages: sanitizedMessages,
|
|
198
198
|
};
|
|
199
199
|
// Handle system prompt
|
|
200
|
+
// Claude 3 Sonnet (20240229) on Bedrock intermittently rejects the array content-block
|
|
201
|
+
// format for system prompts via APAC cross-region inference. Flatten to a plain string
|
|
202
|
+
// for this model to avoid the "system: Input should be a valid string" validation error.
|
|
200
203
|
if (request.system) {
|
|
201
|
-
|
|
204
|
+
const needsFlatten = bedrockModelId?.includes('claude-3-sonnet-20240229') ?? false;
|
|
205
|
+
if (needsFlatten && Array.isArray(request.system)) {
|
|
206
|
+
const blocks = request.system;
|
|
207
|
+
params.system = blocks.map(b => b.text).join('\n\n');
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
params.system = request.system;
|
|
211
|
+
}
|
|
202
212
|
}
|
|
203
213
|
if (request.temperature !== undefined) {
|
|
204
214
|
params.temperature = request.temperature;
|
|
@@ -395,6 +405,15 @@ export class BedrockAdapter {
|
|
|
395
405
|
}
|
|
396
406
|
}
|
|
397
407
|
}
|
|
408
|
+
else if (eventData.type === 'content_block_stop') {
|
|
409
|
+
// Mirror the Anthropic adapter: fire onContentBlock a second
|
|
410
|
+
// time with the finalised block so consumers can distinguish
|
|
411
|
+
// start from stop. Without this, downstream code that depends
|
|
412
|
+
// on the dual-fire convention (e.g. membrane's native
|
|
413
|
+
// yielding path) silently drops block_complete on Bedrock.
|
|
414
|
+
const blockIdx = eventData.index ?? currentBlockIndex;
|
|
415
|
+
callbacks.onContentBlock?.(blockIdx, contentBlocks[blockIdx]);
|
|
416
|
+
}
|
|
398
417
|
else if (eventData.type === 'message_delta') {
|
|
399
418
|
if (eventData.usage) {
|
|
400
419
|
outputTokens = eventData.usage.output_tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,7 +138,16 @@ export interface YieldingStreamOptions {
|
|
|
138
138
|
idleTimeoutMs?: number;
|
|
139
139
|
/** Request ID for correlation/logging */
|
|
140
140
|
requestId?: string;
|
|
141
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Maximum tool execution depth. Default: unlimited.
|
|
143
|
+
*
|
|
144
|
+
* The yielding stream's caller (typically an agent framework) is expected
|
|
145
|
+
* to budget its own work, so we don't impose a per-stream cap by default.
|
|
146
|
+
* Pass a non-negative integer to enforce one. `-1` is accepted as an
|
|
147
|
+
* explicit "unlimited" sentinel; any other negative value is taken at
|
|
148
|
+
* face value as the cap (which would terminate the stream immediately),
|
|
149
|
+
* so don't compute caps as `userCap - N` without bounds-checking.
|
|
150
|
+
*/
|
|
142
151
|
maxToolDepth?: number;
|
|
143
152
|
/**
|
|
144
153
|
* Whether to emit 'tokens' events.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yielding-stream.d.ts","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAc,MAAM,eAAe,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,aAAa,GACb,UAAU,GACV,YAAY,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,WAAW,CAAC;IAChE;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEhD;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAMD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB
|
|
1
|
+
{"version":3,"file":"yielding-stream.d.ts","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yielding-stream.js","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"yielding-stream.js","sourceRoot":"","sources":["../../src/types/yielding-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0MH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACzF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@animalabs/membrane",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.50",
|
|
4
4
|
"description": "LLM middleware - a selective boundary that transforms what passes through",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/antra-tess/membrane.git"
|
|
8
|
+
},
|
|
5
9
|
"type": "module",
|
|
6
10
|
"main": "./dist/index.js",
|
|
7
11
|
"types": "./dist/index.d.ts",
|
package/src/membrane.ts
CHANGED
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
type ProviderImageBlock,
|
|
44
44
|
} from './utils/tool-parser.js';
|
|
45
45
|
import { IncrementalXmlParser, type ProcessChunkResult } from './utils/stream-parser.js';
|
|
46
|
-
import type { ChunkMeta, BlockEvent } from './types/streaming.js';
|
|
46
|
+
import type { ChunkMeta, BlockEvent, MembraneBlockType, MembraneBlock } from './types/streaming.js';
|
|
47
47
|
import type {
|
|
48
48
|
YieldingStream,
|
|
49
49
|
YieldingStreamOptions,
|
|
@@ -100,11 +100,12 @@ export class Membrane {
|
|
|
100
100
|
try {
|
|
101
101
|
const { providerRequest, prefillResult } = this.transformRequest(request, options.formatter);
|
|
102
102
|
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
// Route through the single canonical hook helper so any future
|
|
104
|
+
// change to hook semantics (logging, retry interaction, error
|
|
105
|
+
// handling) applies to both complete() and the streaming paths.
|
|
106
|
+
// Cast back to the local provider-request shape: the hook returns
|
|
107
|
+
// `unknown` deliberately, and we acknowledge the cast at the boundary.
|
|
108
|
+
const finalRequest = (await this.applyBeforeRequestHook(request, providerRequest)) as typeof providerRequest;
|
|
108
109
|
|
|
109
110
|
const providerResponse = await this.adapter.complete(finalRequest, {
|
|
110
111
|
signal: options.signal,
|
|
@@ -382,6 +383,7 @@ export class Membrane {
|
|
|
382
383
|
},
|
|
383
384
|
{
|
|
384
385
|
signal,
|
|
386
|
+
normalizedRequest: request,
|
|
385
387
|
onRequest: (req) => {
|
|
386
388
|
rawRequest = req;
|
|
387
389
|
onRequest?.(req);
|
|
@@ -788,6 +790,7 @@ export class Membrane {
|
|
|
788
790
|
},
|
|
789
791
|
{
|
|
790
792
|
signal,
|
|
793
|
+
normalizedRequest: request,
|
|
791
794
|
onRequest: (req) => {
|
|
792
795
|
rawRequest = req;
|
|
793
796
|
onRequest?.(req);
|
|
@@ -1124,6 +1127,23 @@ export class Membrane {
|
|
|
1124
1127
|
// Internal Methods
|
|
1125
1128
|
// ==========================================================================
|
|
1126
1129
|
|
|
1130
|
+
/**
|
|
1131
|
+
* Apply the configured `beforeRequest` hook to a provider-format request.
|
|
1132
|
+
* Returns the (possibly modified) request, or the original if no hook is
|
|
1133
|
+
* configured. This is the single point that all request-build sites should
|
|
1134
|
+
* route through before invoking the adapter, so observers / mutators
|
|
1135
|
+
* (logging, redaction, model rewriting) see every API call regardless of
|
|
1136
|
+
* whether it came from `complete()`, `stream()`, or `streamYielding()`.
|
|
1137
|
+
*/
|
|
1138
|
+
private async applyBeforeRequestHook(
|
|
1139
|
+
normalizedRequest: NormalizedRequest,
|
|
1140
|
+
providerRequest: unknown,
|
|
1141
|
+
): Promise<unknown> {
|
|
1142
|
+
if (!this.config.hooks?.beforeRequest) return providerRequest;
|
|
1143
|
+
const result = await this.config.hooks.beforeRequest(normalizedRequest, providerRequest);
|
|
1144
|
+
return result ?? providerRequest;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1127
1147
|
/**
|
|
1128
1148
|
* Extract base provider params from config, with thinking temperature enforcement.
|
|
1129
1149
|
* Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
|
|
@@ -1195,9 +1215,30 @@ export class Membrane {
|
|
|
1195
1215
|
private async streamOnce(
|
|
1196
1216
|
request: any,
|
|
1197
1217
|
callbacks: { onChunk: (chunk: string) => void; onContentBlock?: (index: number, block: unknown) => void },
|
|
1198
|
-
options: {
|
|
1218
|
+
options: {
|
|
1219
|
+
signal?: AbortSignal;
|
|
1220
|
+
timeoutMs?: number;
|
|
1221
|
+
idleTimeoutMs?: number;
|
|
1222
|
+
onRequest?: (rawRequest: unknown) => void;
|
|
1223
|
+
/**
|
|
1224
|
+
* The original NormalizedRequest, threaded through so the
|
|
1225
|
+
* `beforeRequest` hook can see both shapes (normalized + provider).
|
|
1226
|
+
* Required: forgetting this is the failure mode the helper exists to
|
|
1227
|
+
* prevent (the streaming paths previously skipped the hook entirely).
|
|
1228
|
+
* If a future caller genuinely needs to bypass the hook, introduce a
|
|
1229
|
+
* separate `streamOnceWithoutHook` so the bypass is intentional.
|
|
1230
|
+
*/
|
|
1231
|
+
normalizedRequest: NormalizedRequest;
|
|
1232
|
+
}
|
|
1199
1233
|
) {
|
|
1200
|
-
|
|
1234
|
+
// Strip `normalizedRequest` before forwarding to the adapter — it's
|
|
1235
|
+
// not part of `ProviderRequestOptions` and TypeScript's structural
|
|
1236
|
+
// compatibility won't catch the excess field (checked only on object
|
|
1237
|
+
// literals, not on variables). Leaving it in would silently leak the
|
|
1238
|
+
// normalized form into every adapter's options.
|
|
1239
|
+
const { normalizedRequest, ...adapterOptions } = options;
|
|
1240
|
+
const finalRequest = (await this.applyBeforeRequestHook(normalizedRequest, request)) as typeof request;
|
|
1241
|
+
return await this.adapter.stream(finalRequest, callbacks, adapterOptions);
|
|
1201
1242
|
}
|
|
1202
1243
|
|
|
1203
1244
|
private buildContinuationRequest(
|
|
@@ -1678,11 +1719,20 @@ export class Membrane {
|
|
|
1678
1719
|
): Promise<void> {
|
|
1679
1720
|
const startTime = Date.now();
|
|
1680
1721
|
const {
|
|
1681
|
-
maxToolDepth
|
|
1722
|
+
maxToolDepth: maxToolDepthOpt,
|
|
1682
1723
|
emitTokens = true,
|
|
1683
1724
|
emitBlocks = true,
|
|
1684
1725
|
emitUsage = true,
|
|
1685
1726
|
} = options;
|
|
1727
|
+
// Yielding paths default to unlimited (the caller — typically an agent
|
|
1728
|
+
// framework — drives the stream and is expected to budget its own work).
|
|
1729
|
+
// Omit `maxToolDepth` for unlimited; `-1` is an explicit "unlimited"
|
|
1730
|
+
// sentinel for callers that need to write the value out; any other
|
|
1731
|
+
// number is taken at face value as the cap.
|
|
1732
|
+
const maxToolDepth =
|
|
1733
|
+
maxToolDepthOpt === undefined || maxToolDepthOpt === -1
|
|
1734
|
+
? Infinity
|
|
1735
|
+
: maxToolDepthOpt;
|
|
1686
1736
|
|
|
1687
1737
|
// Initialize parser from formatter for format-specific tracking
|
|
1688
1738
|
const formatter = this.formatter;
|
|
@@ -1802,6 +1852,7 @@ export class Membrane {
|
|
|
1802
1852
|
signal: stream.signal,
|
|
1803
1853
|
timeoutMs: options.timeoutMs,
|
|
1804
1854
|
idleTimeoutMs: options.idleTimeoutMs,
|
|
1855
|
+
normalizedRequest: request,
|
|
1805
1856
|
onRequest: (req: unknown) => { rawRequest = req; },
|
|
1806
1857
|
}
|
|
1807
1858
|
);
|
|
@@ -2126,10 +2177,20 @@ export class Membrane {
|
|
|
2126
2177
|
): Promise<void> {
|
|
2127
2178
|
const startTime = Date.now();
|
|
2128
2179
|
const {
|
|
2129
|
-
maxToolDepth
|
|
2180
|
+
maxToolDepth: maxToolDepthOpt,
|
|
2130
2181
|
emitTokens = true,
|
|
2182
|
+
emitBlocks = true,
|
|
2131
2183
|
emitUsage = true,
|
|
2132
2184
|
} = options;
|
|
2185
|
+
// Yielding paths default to unlimited (the caller — typically an agent
|
|
2186
|
+
// framework — drives the stream and is expected to budget its own work).
|
|
2187
|
+
// Omit `maxToolDepth` for unlimited; `-1` is an explicit "unlimited"
|
|
2188
|
+
// sentinel for callers that need to write the value out; any other
|
|
2189
|
+
// number is taken at face value as the cap.
|
|
2190
|
+
const maxToolDepth =
|
|
2191
|
+
maxToolDepthOpt === undefined || maxToolDepthOpt === -1
|
|
2192
|
+
? Infinity
|
|
2193
|
+
: maxToolDepthOpt;
|
|
2133
2194
|
|
|
2134
2195
|
let toolDepth = 0;
|
|
2135
2196
|
let totalUsage: DetailedUsage = { inputTokens: 0, outputTokens: 0 };
|
|
@@ -2167,6 +2228,17 @@ export class Membrane {
|
|
|
2167
2228
|
// Stream from provider
|
|
2168
2229
|
let textAccumulated = '';
|
|
2169
2230
|
let blockIndex = 0;
|
|
2231
|
+
// Track block-type from the provider's content_block_start signal so
|
|
2232
|
+
// every token chunk is tagged with the membrane block it belongs to.
|
|
2233
|
+
// Without this, thinking_delta chunks get mislabelled as 'text' and
|
|
2234
|
+
// downstream consumers (TUIs, WebUIs) can't render them distinctly.
|
|
2235
|
+
let currentBlockType: MembraneBlockType = 'text';
|
|
2236
|
+
const seenBlockIndices = new Set<number>();
|
|
2237
|
+
const mapApiBlockType = (apiType: string | undefined): MembraneBlockType => {
|
|
2238
|
+
if (apiType === 'thinking') return 'thinking';
|
|
2239
|
+
if (apiType === 'tool_use') return 'tool_call';
|
|
2240
|
+
return 'text';
|
|
2241
|
+
};
|
|
2170
2242
|
const streamResult = await this.streamOnce(
|
|
2171
2243
|
providerRequest,
|
|
2172
2244
|
{
|
|
@@ -2178,19 +2250,61 @@ export class Membrane {
|
|
|
2178
2250
|
|
|
2179
2251
|
if (emitTokens) {
|
|
2180
2252
|
const meta: ChunkMeta = {
|
|
2181
|
-
type:
|
|
2182
|
-
visible:
|
|
2253
|
+
type: currentBlockType,
|
|
2254
|
+
visible: currentBlockType === 'text',
|
|
2183
2255
|
blockIndex,
|
|
2184
2256
|
};
|
|
2185
2257
|
stream.emit({ type: 'tokens', content: chunk, meta });
|
|
2186
2258
|
}
|
|
2187
2259
|
},
|
|
2188
|
-
onContentBlock:
|
|
2260
|
+
onContentBlock: (index, block) => {
|
|
2261
|
+
if (stream.isCancelled) return;
|
|
2262
|
+
const apiType = (block as { type?: string } | undefined)?.type;
|
|
2263
|
+
const mbType = mapApiBlockType(apiType);
|
|
2264
|
+
const isStart = !seenBlockIndices.has(index);
|
|
2265
|
+
if (isStart) {
|
|
2266
|
+
seenBlockIndices.add(index);
|
|
2267
|
+
currentBlockType = mbType;
|
|
2268
|
+
blockIndex = index;
|
|
2269
|
+
if (emitBlocks) {
|
|
2270
|
+
stream.emit({
|
|
2271
|
+
type: 'block',
|
|
2272
|
+
event: { event: 'block_start', index, block: { type: mbType } },
|
|
2273
|
+
});
|
|
2274
|
+
}
|
|
2275
|
+
} else if (emitBlocks) {
|
|
2276
|
+
// Second call for the same index = content_block_stop. The
|
|
2277
|
+
// provider has filled the block with final content; surface
|
|
2278
|
+
// a block_complete with the relevant fields for consumers
|
|
2279
|
+
// that want full block payloads (e.g. context-manager).
|
|
2280
|
+
const apiBlock = block as {
|
|
2281
|
+
type?: string;
|
|
2282
|
+
text?: string;
|
|
2283
|
+
thinking?: string;
|
|
2284
|
+
id?: string;
|
|
2285
|
+
name?: string;
|
|
2286
|
+
input?: unknown;
|
|
2287
|
+
} | undefined;
|
|
2288
|
+
const mb: MembraneBlock = { type: mbType };
|
|
2289
|
+
if (mbType === 'text') mb.content = apiBlock?.text;
|
|
2290
|
+
else if (mbType === 'thinking') mb.content = apiBlock?.thinking;
|
|
2291
|
+
else if (mbType === 'tool_call') {
|
|
2292
|
+
mb.toolId = apiBlock?.id;
|
|
2293
|
+
mb.toolName = apiBlock?.name;
|
|
2294
|
+
mb.input = apiBlock?.input as Record<string, unknown> | undefined;
|
|
2295
|
+
}
|
|
2296
|
+
stream.emit({
|
|
2297
|
+
type: 'block',
|
|
2298
|
+
event: { event: 'block_complete', index, block: mb },
|
|
2299
|
+
});
|
|
2300
|
+
}
|
|
2301
|
+
},
|
|
2189
2302
|
},
|
|
2190
2303
|
{
|
|
2191
2304
|
signal: stream.signal,
|
|
2192
2305
|
timeoutMs: options.timeoutMs,
|
|
2193
2306
|
idleTimeoutMs: options.idleTimeoutMs,
|
|
2307
|
+
normalizedRequest: request,
|
|
2194
2308
|
onRequest: (req: unknown) => { rawRequest = req; },
|
|
2195
2309
|
}
|
|
2196
2310
|
);
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
MembraneError,
|
|
16
16
|
rateLimitError,
|
|
17
17
|
contextLengthError,
|
|
18
|
+
invalidRequestError,
|
|
18
19
|
authError,
|
|
19
20
|
serverError,
|
|
20
21
|
abortError,
|
|
@@ -351,6 +352,17 @@ export class AnthropicAdapter implements ProviderAdapter {
|
|
|
351
352
|
return contextLengthError(message, error, rawRequest);
|
|
352
353
|
}
|
|
353
354
|
|
|
355
|
+
// 400 invalid_request_error — malformed payload (e.g. orphan tool_use_id,
|
|
356
|
+
// unknown model, schema violation). Retrying with the same payload is
|
|
357
|
+
// guaranteed to produce the same 400, so classify these as non-retryable
|
|
358
|
+
// here. Previously these fell through to the generic `unknown` branch
|
|
359
|
+
// below, which left them with `retryable: false` but also with no
|
|
360
|
+
// structured type — making framework-level error policies unable to
|
|
361
|
+
// distinguish them from genuinely unknown errors.
|
|
362
|
+
if (status === 400) {
|
|
363
|
+
return invalidRequestError(message, error, rawRequest);
|
|
364
|
+
}
|
|
365
|
+
|
|
354
366
|
if (status >= 500) {
|
|
355
367
|
return serverError(message, status, error, rawRequest);
|
|
356
368
|
}
|
package/src/providers/bedrock.ts
CHANGED
|
@@ -303,7 +303,7 @@ export class BedrockAdapter implements ProviderAdapter {
|
|
|
303
303
|
options?: ProviderRequestOptions
|
|
304
304
|
): Promise<ProviderResponse> {
|
|
305
305
|
const bedrockModelId = this.toBedrockModelId(request.model);
|
|
306
|
-
const bedrockRequest = this.buildRequest(request);
|
|
306
|
+
const bedrockRequest = this.buildRequest(request, bedrockModelId);
|
|
307
307
|
const fullRequest = { modelId: bedrockModelId, ...bedrockRequest };
|
|
308
308
|
options?.onRequest?.(fullRequest);
|
|
309
309
|
|
|
@@ -324,7 +324,7 @@ export class BedrockAdapter implements ProviderAdapter {
|
|
|
324
324
|
options?: ProviderRequestOptions
|
|
325
325
|
): Promise<ProviderResponse> {
|
|
326
326
|
const bedrockModelId = this.toBedrockModelId(request.model);
|
|
327
|
-
const bedrockRequest = this.buildRequest(request);
|
|
327
|
+
const bedrockRequest = this.buildRequest(request, bedrockModelId);
|
|
328
328
|
const fullRequest = { modelId: bedrockModelId, ...bedrockRequest, stream: true };
|
|
329
329
|
options?.onRequest?.(fullRequest);
|
|
330
330
|
|
|
@@ -338,7 +338,7 @@ export class BedrockAdapter implements ProviderAdapter {
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
private buildRequest(request: ProviderRequest): BedrockMessageRequest {
|
|
341
|
+
private buildRequest(request: ProviderRequest, bedrockModelId?: string): BedrockMessageRequest {
|
|
342
342
|
// Strip provider-specific fields (e.g., sourceUrl for Gemini) from image blocks
|
|
343
343
|
// before sending to Bedrock/Anthropic, which rejects extra inputs
|
|
344
344
|
const sanitizedMessages = (request.messages as any[]).map((msg: any) => {
|
|
@@ -362,8 +362,17 @@ export class BedrockAdapter implements ProviderAdapter {
|
|
|
362
362
|
};
|
|
363
363
|
|
|
364
364
|
// Handle system prompt
|
|
365
|
+
// Claude 3 Sonnet (20240229) on Bedrock intermittently rejects the array content-block
|
|
366
|
+
// format for system prompts via APAC cross-region inference. Flatten to a plain string
|
|
367
|
+
// for this model to avoid the "system: Input should be a valid string" validation error.
|
|
365
368
|
if (request.system) {
|
|
366
|
-
|
|
369
|
+
const needsFlatten = bedrockModelId?.includes('claude-3-sonnet-20240229') ?? false;
|
|
370
|
+
if (needsFlatten && Array.isArray(request.system)) {
|
|
371
|
+
const blocks = request.system as Array<{ type: string; text: string }>;
|
|
372
|
+
params.system = blocks.map(b => b.text).join('\n\n');
|
|
373
|
+
} else {
|
|
374
|
+
params.system = request.system as BedrockMessageRequest['system'];
|
|
375
|
+
}
|
|
367
376
|
}
|
|
368
377
|
|
|
369
378
|
if (request.temperature !== undefined) {
|
|
@@ -624,6 +633,14 @@ export class BedrockAdapter implements ProviderAdapter {
|
|
|
624
633
|
contentBlocks[currentBlockIndex]!.signature = (contentBlocks[currentBlockIndex]!.signature ?? '') + (eventData.delta as any).signature;
|
|
625
634
|
}
|
|
626
635
|
}
|
|
636
|
+
} else if (eventData.type === 'content_block_stop') {
|
|
637
|
+
// Mirror the Anthropic adapter: fire onContentBlock a second
|
|
638
|
+
// time with the finalised block so consumers can distinguish
|
|
639
|
+
// start from stop. Without this, downstream code that depends
|
|
640
|
+
// on the dual-fire convention (e.g. membrane's native
|
|
641
|
+
// yielding path) silently drops block_complete on Bedrock.
|
|
642
|
+
const blockIdx = (eventData as { index?: number }).index ?? currentBlockIndex;
|
|
643
|
+
callbacks.onContentBlock?.(blockIdx, contentBlocks[blockIdx]);
|
|
627
644
|
} else if (eventData.type === 'message_delta') {
|
|
628
645
|
if (eventData.usage) {
|
|
629
646
|
outputTokens = eventData.usage.output_tokens;
|
|
@@ -176,7 +176,16 @@ export interface YieldingStreamOptions {
|
|
|
176
176
|
/** Request ID for correlation/logging */
|
|
177
177
|
requestId?: string;
|
|
178
178
|
|
|
179
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Maximum tool execution depth. Default: unlimited.
|
|
181
|
+
*
|
|
182
|
+
* The yielding stream's caller (typically an agent framework) is expected
|
|
183
|
+
* to budget its own work, so we don't impose a per-stream cap by default.
|
|
184
|
+
* Pass a non-negative integer to enforce one. `-1` is accepted as an
|
|
185
|
+
* explicit "unlimited" sentinel; any other negative value is taken at
|
|
186
|
+
* face value as the cap (which would terminate the stream immediately),
|
|
187
|
+
* so don't compute caps as `userCap - N` without bounds-checking.
|
|
188
|
+
*/
|
|
180
189
|
maxToolDepth?: number;
|
|
181
190
|
|
|
182
191
|
/**
|
package/dist/context/index.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context management module
|
|
3
|
-
*
|
|
4
|
-
* Handles rolling context, cache marker placement, and state management
|
|
5
|
-
* for efficient prompt caching with LLMs.
|
|
6
|
-
*/
|
|
7
|
-
export { processContext } from './process.js';
|
|
8
|
-
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
9
|
-
export type { RollDecision, MessageWithTokens, } from './process.js';
|
|
10
|
-
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
11
|
-
export type { ContextInput, ContextOutput, ContextState, ContextConfig, ContextInfo, ContextStreamOptions, ContextToolCallback, ContextPreToolCallback, CacheMarker, } from './types.js';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/context/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context management module
|
|
3
|
-
*
|
|
4
|
-
* Handles rolling context, cache marker placement, and state management
|
|
5
|
-
* for efficient prompt caching with LLMs.
|
|
6
|
-
*/
|
|
7
|
-
export { processContext } from './process.js';
|
|
8
|
-
// Rolling helpers - can be used standalone by callers doing their own transforms
|
|
9
|
-
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
10
|
-
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,iFAAiF;AACjF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAOtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context processing - main entry point
|
|
3
|
-
*/
|
|
4
|
-
import type { Membrane } from '../membrane.js';
|
|
5
|
-
import type { NormalizedMessage } from '../types/index.js';
|
|
6
|
-
import type { ContextInput, ContextState, ContextOutput, ContextConfig, ContextStreamOptions, CacheMarker } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Process context and stream LLM response.
|
|
9
|
-
*
|
|
10
|
-
* This function handles:
|
|
11
|
-
* - Rolling/truncation based on thresholds
|
|
12
|
-
* - Cache marker placement for prompt caching
|
|
13
|
-
* - Hard limit enforcement
|
|
14
|
-
* - State management
|
|
15
|
-
*
|
|
16
|
-
* @param membrane - Configured Membrane instance
|
|
17
|
-
* @param input - Messages, config, and context settings
|
|
18
|
-
* @param state - Previous state (null for first call)
|
|
19
|
-
* @param options - Stream options
|
|
20
|
-
* @returns Response, updated state, and context info
|
|
21
|
-
*/
|
|
22
|
-
export declare function processContext(membrane: Membrane, input: ContextInput, state: ContextState | null, options?: ContextStreamOptions): Promise<ContextOutput>;
|
|
23
|
-
export declare function calculateCharacters(messages: NormalizedMessage[]): number;
|
|
24
|
-
export interface RollDecision {
|
|
25
|
-
shouldRoll: boolean;
|
|
26
|
-
reason?: 'threshold' | 'grace_exceeded' | 'hard_limit';
|
|
27
|
-
targetTokens?: number;
|
|
28
|
-
targetMessages?: number;
|
|
29
|
-
enteredGrace: boolean;
|
|
30
|
-
}
|
|
31
|
-
export declare function shouldRoll(state: ContextState, messageCount: number, totalTokens: number, totalCharacters: number, config: ContextConfig): RollDecision;
|
|
32
|
-
export interface MessageWithTokens {
|
|
33
|
-
message: NormalizedMessage;
|
|
34
|
-
tokens: number;
|
|
35
|
-
id: string;
|
|
36
|
-
}
|
|
37
|
-
export declare function truncateMessages(messages: MessageWithTokens[], targetTokens?: number, targetMessages?: number, config?: ContextConfig): {
|
|
38
|
-
kept: MessageWithTokens[];
|
|
39
|
-
dropped: number;
|
|
40
|
-
};
|
|
41
|
-
export declare function placeCacheMarkers(messages: NormalizedMessage[], messageTokens: MessageWithTokens[], state: ContextState, didRoll: boolean, config: ContextConfig): CacheMarker[];
|
|
42
|
-
export declare function applyCacheMarkers(messages: NormalizedMessage[], cacheMarkers: CacheMarker[]): NormalizedMessage[];
|
|
43
|
-
//# sourceMappingURL=process.d.ts.map
|