@animalabs/membrane 0.5.46 → 0.5.47

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.
@@ -59,6 +59,15 @@ export declare class Membrane {
59
59
  * Parse provider response content into normalized blocks
60
60
  */
61
61
  private parseProviderContent;
62
+ /**
63
+ * Apply the configured `beforeRequest` hook to a provider-format request.
64
+ * Returns the (possibly modified) request, or the original if no hook is
65
+ * configured. This is the single point that all request-build sites should
66
+ * route through before invoking the adapter, so observers / mutators
67
+ * (logging, redaction, model rewriting) see every API call regardless of
68
+ * whether it came from `complete()`, `stream()`, or `streamYielding()`.
69
+ */
70
+ private applyBeforeRequestHook;
62
71
  /**
63
72
  * Extract base provider params from config, with thinking temperature enforcement.
64
73
  * Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
@@ -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;AAWpC,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;IA4E9B;;;;;;;;;;;;;;;;;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;IAsdhC;;OAEG;YACW,qBAAqB;IAuOnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0H9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YA+CV,UAAU;IAQxB,OAAO,CAAC,wBAAwB;IA2ChC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kCAAkC;IAiD1C,OAAO,CAAC,iBAAiB;IAkIzB,OAAO,CAAC,kBAAkB;IAkF1B,OAAO,CAAC,aAAa;IAerB,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;IA6bjC;;OAEG;YACW,sBAAsB;CAgOrC"}
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;AAWpC,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;IAudhC;;OAEG;YACW,qBAAqB;IAwOnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0H9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;;;;;;OAOG;YACW,sBAAsB;IASpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YA+CV,UAAU;IA6BxB,OAAO,CAAC,wBAAwB;IA2ChC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kCAAkC;IAiD1C,OAAO,CAAC,iBAAiB;IAkIzB,OAAO,CAAC,kBAAkB;IAkF1B,OAAO,CAAC,aAAa;IAerB,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;IA8bjC;;OAEG;YACW,sBAAsB;CAiOrC"}
package/dist/membrane.js CHANGED
@@ -40,11 +40,12 @@ export class Membrane {
40
40
  attempts++;
41
41
  try {
42
42
  const { providerRequest, prefillResult } = this.transformRequest(request, options.formatter);
43
- // Call beforeRequest hook
44
- let finalRequest = providerRequest;
45
- if (this.config.hooks?.beforeRequest) {
46
- finalRequest = await this.config.hooks.beforeRequest(request, providerRequest) ?? providerRequest;
47
- }
43
+ // Route through the single canonical hook helper so any future
44
+ // change to hook semantics (logging, retry interaction, error
45
+ // handling) applies to both complete() and the streaming paths.
46
+ // Cast back to the local provider-request shape: the hook returns
47
+ // `unknown` deliberately, and we acknowledge the cast at the boundary.
48
+ const finalRequest = (await this.applyBeforeRequestHook(request, providerRequest));
48
49
  const providerResponse = await this.adapter.complete(finalRequest, {
49
50
  signal: options.signal,
50
51
  timeoutMs: options.timeoutMs,
@@ -263,6 +264,7 @@ export class Membrane {
263
264
  : undefined,
264
265
  }, {
265
266
  signal,
267
+ normalizedRequest: request,
266
268
  onRequest: (req) => {
267
269
  rawRequest = req;
268
270
  onRequest?.(req);
@@ -571,6 +573,7 @@ export class Membrane {
571
573
  : undefined,
572
574
  }, {
573
575
  signal,
576
+ normalizedRequest: request,
574
577
  onRequest: (req) => {
575
578
  rawRequest = req;
576
579
  onRequest?.(req);
@@ -864,6 +867,20 @@ export class Membrane {
864
867
  // ==========================================================================
865
868
  // Internal Methods
866
869
  // ==========================================================================
870
+ /**
871
+ * Apply the configured `beforeRequest` hook to a provider-format request.
872
+ * Returns the (possibly modified) request, or the original if no hook is
873
+ * configured. This is the single point that all request-build sites should
874
+ * route through before invoking the adapter, so observers / mutators
875
+ * (logging, redaction, model rewriting) see every API call regardless of
876
+ * whether it came from `complete()`, `stream()`, or `streamYielding()`.
877
+ */
878
+ async applyBeforeRequestHook(normalizedRequest, providerRequest) {
879
+ if (!this.config.hooks?.beforeRequest)
880
+ return providerRequest;
881
+ const result = await this.config.hooks.beforeRequest(normalizedRequest, providerRequest);
882
+ return result ?? providerRequest;
883
+ }
867
884
  /**
868
885
  * Extract base provider params from config, with thinking temperature enforcement.
869
886
  * Used by transformRequest, buildContinuationRequest, and buildContinuationRequestWithImages.
@@ -923,7 +940,14 @@ export class Membrane {
923
940
  return { providerRequest, prefillResult: buildResult };
924
941
  }
925
942
  async streamOnce(request, callbacks, options) {
926
- return await this.adapter.stream(request, callbacks, options);
943
+ // Strip `normalizedRequest` before forwarding to the adapter it's
944
+ // not part of `ProviderRequestOptions` and TypeScript's structural
945
+ // compatibility won't catch the excess field (checked only on object
946
+ // literals, not on variables). Leaving it in would silently leak the
947
+ // normalized form into every adapter's options.
948
+ const { normalizedRequest, ...adapterOptions } = options;
949
+ const finalRequest = (await this.applyBeforeRequestHook(normalizedRequest, request));
950
+ return await this.adapter.stream(finalRequest, callbacks, adapterOptions);
927
951
  }
928
952
  buildContinuationRequest(originalRequest, prefillResult, accumulated) {
929
953
  // Anthropic quirk: assistant content cannot end with trailing whitespace
@@ -1430,6 +1454,7 @@ export class Membrane {
1430
1454
  signal: stream.signal,
1431
1455
  timeoutMs: options.timeoutMs,
1432
1456
  idleTimeoutMs: options.idleTimeoutMs,
1457
+ normalizedRequest: request,
1433
1458
  onRequest: (req) => { rawRequest = req; },
1434
1459
  });
1435
1460
  // If we detected stop sequence manually, fix up the parser and result
@@ -1737,6 +1762,7 @@ export class Membrane {
1737
1762
  signal: stream.signal,
1738
1763
  timeoutMs: options.timeoutMs,
1739
1764
  idleTimeoutMs: options.idleTimeoutMs,
1765
+ normalizedRequest: request,
1740
1766
  onRequest: (req) => { rawRequest = req; },
1741
1767
  });
1742
1768
  rawResponse = streamResult.raw;
@@ -1 +1 @@
1
- {"version":3,"file":"membrane.js","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"membrane.js","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAe3B,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgMD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,GAAE,oBAAyB;IAa7C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKvC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BlB,QAAQ,CACZ,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAiBtB,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAgB5B,OAAO,CAAC,YAAY;YA+DN,WAAW;YA0CX,qBAAqB;IA4OnC,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,WAAW;CAkCpB"}
1
+ {"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAe3B,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgMD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,GAAE,oBAAyB;IAa7C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKvC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BlB,QAAQ,CACZ,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAiBtB,MAAM,CACV,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,eAAe,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAgB5B,OAAO,CAAC,YAAY;YAwEN,WAAW;YA0CX,qBAAqB;IA4OnC,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,WAAW;CAkCpB"}
@@ -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
- params.system = request.system;
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;
@@ -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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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Prefill mode transforms
3
+ *
4
+ * Converts normalized messages to participant-based conversation log format:
5
+ *
6
+ * Alice: Hello there!
7
+ *
8
+ * Bob: Hi Alice!
9
+ *
10
+ * Claude: [assistant continuation starts here...]
11
+ *
12
+ * Key features:
13
+ * - Cache control markers for Anthropic prompt caching
14
+ * - Image flushing (images cause conversation flush to user turn)
15
+ * - Tool injection into conversation
16
+ */
17
+ import type { NormalizedRequest, CacheControl } from '../types/index.js';
18
+ /**
19
+ * Content block in provider format (Anthropic-style)
20
+ * Can include cache_control for prompt caching
21
+ */
22
+ export interface ProviderTextBlock {
23
+ type: 'text';
24
+ text: string;
25
+ cache_control?: CacheControl;
26
+ }
27
+ export interface ProviderImageBlock {
28
+ type: 'image';
29
+ source: {
30
+ type: 'base64';
31
+ media_type: string;
32
+ data: string;
33
+ };
34
+ }
35
+ export type ProviderContentBlock = ProviderTextBlock | ProviderImageBlock;
36
+ export interface ProviderMessage {
37
+ role: 'user' | 'assistant';
38
+ content: string | ProviderContentBlock[];
39
+ }
40
+ export interface PrefillTransformResult {
41
+ /** System prompt content blocks (may have cache_control) */
42
+ systemContent: ProviderContentBlock[];
43
+ /** Messages in provider format (ready for API) */
44
+ messages: ProviderMessage[];
45
+ /** For legacy compatibility: system as string */
46
+ system: string;
47
+ /** For legacy compatibility: user content as string */
48
+ userContent: string;
49
+ /** For legacy compatibility: assistant prefill as string */
50
+ assistantPrefill: string;
51
+ /** Stop sequences to use */
52
+ stopSequences: string[];
53
+ /** Number of cache markers applied */
54
+ cacheMarkersApplied: number;
55
+ }
56
+ export interface PrefillTransformOptions {
57
+ /** Name of the assistant participant (default: 'Claude') */
58
+ assistantName?: string;
59
+ /** Maximum participants to include in stop sequences */
60
+ maxParticipantsForStop?: number;
61
+ /** Custom stop sequences to add */
62
+ additionalStopSequences?: string[];
63
+ /**
64
+ * Where to inject tool definitions:
65
+ * - 'conversation': Inject into assistant content ~N messages from end (default)
66
+ * - 'system': Inject into system prompt
67
+ * - 'none': No injection (use getToolInstructions() for manual placement)
68
+ */
69
+ toolInjectionMode?: 'conversation' | 'system' | 'none';
70
+ /** Position to inject tools when mode is 'conversation' (from end of messages) */
71
+ toolInjectionPosition?: number;
72
+ /** Enable prompt caching (default: true) */
73
+ promptCaching?: boolean;
74
+ /** Message delimiter for base models (e.g., '</s>') */
75
+ messageDelimiter?: string;
76
+ /** Context prefix for simulacrum seeding */
77
+ contextPrefix?: string;
78
+ /** Start assistant response with <thinking> tag */
79
+ prefillThinking?: boolean;
80
+ }
81
+ /**
82
+ * Transform normalized request to prefill format with cache control support
83
+ */
84
+ export declare function transformToPrefill(request: NormalizedRequest, options?: PrefillTransformOptions): PrefillTransformResult;
85
+ /**
86
+ * Build a continuation request from accumulated output
87
+ */
88
+ export declare function buildContinuationPrefill(originalResult: PrefillTransformResult, accumulated: string): PrefillTransformResult;
89
+ //# sourceMappingURL=prefill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefill.d.ts","sourceRoot":"","sources":["../../src/transforms/prefill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EAGjB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAQ3B;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAM1E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAC;CAC1C;AAMD,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,aAAa,EAAE,oBAAoB,EAAE,CAAC;IAEtC,kDAAkD;IAClD,QAAQ,EAAE,eAAe,EAAE,CAAC;IAE5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IAEzB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,sCAAsC;IACtC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,mCAAmC;IACnC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEvD,kFAAkF;IAClF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CA6NxB;AA4LD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,sBAAsB,EACtC,WAAW,EAAE,MAAM,GAClB,sBAAsB,CAuBxB"}
@@ -0,0 +1,391 @@
1
+ /**
2
+ * Prefill mode transforms
3
+ *
4
+ * Converts normalized messages to participant-based conversation log format:
5
+ *
6
+ * Alice: Hello there!
7
+ *
8
+ * Bob: Hi Alice!
9
+ *
10
+ * Claude: [assistant continuation starts here...]
11
+ *
12
+ * Key features:
13
+ * - Cache control markers for Anthropic prompt caching
14
+ * - Image flushing (images cause conversation flush to user turn)
15
+ * - Tool injection into conversation
16
+ */
17
+ import { formatToolDefinitions } from '../utils/tool-parser.js';
18
+ // ============================================================================
19
+ // Main Transform Function
20
+ // ============================================================================
21
+ /**
22
+ * Transform normalized request to prefill format with cache control support
23
+ */
24
+ export function transformToPrefill(request, options = {}) {
25
+ const { assistantName = 'Claude', maxParticipantsForStop = 10, additionalStopSequences = [], toolInjectionMode = 'conversation', toolInjectionPosition = 10, promptCaching = true, messageDelimiter = '', contextPrefix, prefillThinking = false, } = options;
26
+ const messages = request.messages;
27
+ const providerMessages = [];
28
+ // Track cache marker GLOBALLY across all flushes
29
+ // Everything BEFORE we see the marker gets cache_control
30
+ // Everything AFTER does NOT
31
+ let passedCacheMarker = false;
32
+ let cacheMarkersApplied = 0;
33
+ // Joiner between messages (if delimiter, no newlines needed)
34
+ const joiner = messageDelimiter ? '' : '\n';
35
+ // Track conversation lines for current section
36
+ let currentConversation = [];
37
+ let lastNonEmptyParticipant = null;
38
+ // Build system prompt
39
+ let systemText = request.system ?? '';
40
+ // Inject tool definitions into system prompt if mode is 'system'
41
+ if (toolInjectionMode === 'system' && request.tools && request.tools.length > 0) {
42
+ const toolsXml = formatToolsForPrefill(request.tools);
43
+ systemText = injectToolsIntoSystem(systemText, toolsXml);
44
+ }
45
+ // System prompt content (with cache_control if enabled)
46
+ const systemContent = [];
47
+ if (systemText) {
48
+ const systemBlock = { type: 'text', text: systemText };
49
+ if (promptCaching) {
50
+ systemBlock.cache_control = { type: 'ephemeral' };
51
+ cacheMarkersApplied++;
52
+ }
53
+ systemContent.push(systemBlock);
54
+ // Note: system content goes in systemContent, not providerMessages
55
+ // Anthropic's API requires system as a top-level parameter
56
+ }
57
+ // Add context prefix as first cached assistant message (for simulacrum seeding)
58
+ if (contextPrefix) {
59
+ const prefixBlock = { type: 'text', text: contextPrefix };
60
+ if (promptCaching) {
61
+ prefixBlock.cache_control = { type: 'ephemeral' };
62
+ cacheMarkersApplied++;
63
+ }
64
+ providerMessages.push({
65
+ role: 'assistant',
66
+ content: [prefixBlock],
67
+ });
68
+ }
69
+ // Process messages
70
+ for (let i = 0; i < messages.length; i++) {
71
+ const message = messages[i];
72
+ if (!message)
73
+ continue;
74
+ const isLastMessage = i === messages.length - 1;
75
+ const isAssistant = message.participant === assistantName;
76
+ const hasCacheMarker = !!message.metadata?.cacheControl;
77
+ // Extract text and images
78
+ const { text, images } = formatContentForPrefill(message.content, message.participant);
79
+ const hasImages = images.length > 0;
80
+ const isEmpty = !text.trim() && !hasImages;
81
+ // Check for tool results
82
+ const hasToolResult = message.content.some(c => c.type === 'tool_result');
83
+ // If message has images, flush current conversation and add as user message
84
+ if (hasImages && !isEmpty) {
85
+ // Flush current assistant conversation
86
+ if (currentConversation.length > 0) {
87
+ const content = currentConversation.join(joiner);
88
+ providerMessages.push({
89
+ role: 'assistant',
90
+ content: content,
91
+ });
92
+ currentConversation = [];
93
+ }
94
+ // Add message with image as user turn
95
+ const userContent = [];
96
+ if (text) {
97
+ userContent.push({ type: 'text', text: `${message.participant}: ${text}` });
98
+ }
99
+ userContent.push(...images);
100
+ providerMessages.push({
101
+ role: 'user',
102
+ content: userContent,
103
+ });
104
+ lastNonEmptyParticipant = message.participant;
105
+ continue;
106
+ }
107
+ // Skip empty messages (except last)
108
+ if (isEmpty && !isLastMessage) {
109
+ continue;
110
+ }
111
+ // Check if this message has the cache marker - switch to uncached mode AFTER this
112
+ if (hasCacheMarker && !passedCacheMarker) {
113
+ // Flush everything before this message WITH cache_control (if caching enabled)
114
+ if (currentConversation.length > 0) {
115
+ const content = currentConversation.join(joiner);
116
+ const contentBlock = { type: 'text', text: content };
117
+ if (promptCaching) {
118
+ contentBlock.cache_control = { type: 'ephemeral' };
119
+ cacheMarkersApplied++;
120
+ }
121
+ providerMessages.push({
122
+ role: 'assistant',
123
+ content: [contentBlock],
124
+ });
125
+ currentConversation = [];
126
+ }
127
+ passedCacheMarker = true;
128
+ }
129
+ // Check bot continuation logic
130
+ const isBotMessage = message.participant === assistantName;
131
+ const isContinuation = isBotMessage && lastNonEmptyParticipant === assistantName && !hasToolResult;
132
+ if (isContinuation && isLastMessage) {
133
+ // Bot continuation - don't add prefix, just complete from where we are
134
+ continue;
135
+ }
136
+ else if (isLastMessage && isEmpty) {
137
+ // Completion target - optionally start with thinking tag
138
+ if (prefillThinking) {
139
+ currentConversation.push(`${message.participant}: <thinking>`);
140
+ }
141
+ else {
142
+ currentConversation.push(`${message.participant}:`);
143
+ }
144
+ }
145
+ else if (text) {
146
+ // Regular message - append delimiter if configured
147
+ currentConversation.push(`${message.participant}: ${text}${messageDelimiter}`);
148
+ if (!hasToolResult) {
149
+ lastNonEmptyParticipant = message.participant;
150
+ }
151
+ }
152
+ }
153
+ // Flush any remaining conversation, inject tools if mode is 'conversation'
154
+ if (currentConversation.length > 0) {
155
+ const hasToolsForConversation = toolInjectionMode === 'conversation' &&
156
+ request.tools &&
157
+ request.tools.length > 0;
158
+ if (hasToolsForConversation) {
159
+ // Inject tools into assistant content
160
+ const toolsText = formatToolsForInjection(request.tools);
161
+ if (currentConversation.length > toolInjectionPosition) {
162
+ // Long conversation: insert tools ~N messages from the end
163
+ const splitPoint = currentConversation.length - toolInjectionPosition;
164
+ const beforeTools = currentConversation.slice(0, splitPoint);
165
+ const afterTools = currentConversation.slice(splitPoint);
166
+ const combined = [
167
+ ...beforeTools,
168
+ toolsText,
169
+ ...afterTools,
170
+ ].join(joiner);
171
+ providerMessages.push({
172
+ role: 'assistant',
173
+ content: combined,
174
+ });
175
+ }
176
+ else {
177
+ // Short conversation: inject tools at the end (right before completion point)
178
+ const combined = [...currentConversation, toolsText].join(joiner);
179
+ providerMessages.push({
180
+ role: 'assistant',
181
+ content: combined,
182
+ });
183
+ }
184
+ }
185
+ else {
186
+ // No tool injection needed
187
+ providerMessages.push({
188
+ role: 'assistant',
189
+ content: currentConversation.join(joiner),
190
+ });
191
+ }
192
+ }
193
+ // Build stop sequences from participants
194
+ const stopSequences = buildStopSequences(messages, assistantName, maxParticipantsForStop, additionalStopSequences);
195
+ // Build legacy string versions for backwards compatibility
196
+ const legacyStrings = buildLegacyStrings(providerMessages, systemText);
197
+ return {
198
+ systemContent,
199
+ messages: providerMessages,
200
+ system: systemText,
201
+ userContent: legacyStrings.userContent,
202
+ assistantPrefill: legacyStrings.assistantPrefill,
203
+ stopSequences,
204
+ cacheMarkersApplied,
205
+ };
206
+ }
207
+ // ============================================================================
208
+ // Helper Functions
209
+ // ============================================================================
210
+ function formatContentForPrefill(content, participant) {
211
+ const parts = [];
212
+ const images = [];
213
+ for (const block of content) {
214
+ if (block.type === 'text') {
215
+ parts.push(block.text);
216
+ }
217
+ else if (block.type === 'image') {
218
+ // Convert to provider format
219
+ if (block.source.type === 'base64') {
220
+ images.push({
221
+ type: 'image',
222
+ source: {
223
+ type: 'base64',
224
+ media_type: block.source.mediaType,
225
+ data: block.source.data,
226
+ },
227
+ });
228
+ }
229
+ }
230
+ else if (block.type === 'tool_use') {
231
+ // Format as: Name>[toolname]: {json}
232
+ parts.push(`${participant}>[${block.name}]: ${JSON.stringify(block.input)}`);
233
+ }
234
+ else if (block.type === 'tool_result') {
235
+ // Format as: Name<[tool_result]: result
236
+ const resultText = typeof block.content === 'string'
237
+ ? block.content
238
+ : JSON.stringify(block.content);
239
+ parts.push(`${participant}<[tool_result]: ${resultText}`);
240
+ }
241
+ }
242
+ return { text: parts.join('\n'), images };
243
+ }
244
+ function formatToolsForPrefill(tools) {
245
+ const toolsForPrompt = tools.map((tool) => ({
246
+ name: tool.name,
247
+ description: tool.description,
248
+ parameters: Object.fromEntries(Object.entries(tool.inputSchema.properties).map(([name, schema]) => [
249
+ name,
250
+ {
251
+ type: schema.type,
252
+ description: schema.description,
253
+ required: tool.inputSchema.required?.includes(name),
254
+ enum: schema.enum,
255
+ },
256
+ ])),
257
+ }));
258
+ return formatToolDefinitions(toolsForPrompt);
259
+ }
260
+ function injectToolsIntoSystem(system, toolsXml) {
261
+ const toolsSection = `
262
+ <available_tools>
263
+ ${toolsXml}
264
+ </available_tools>
265
+
266
+ When you want to use a tool, output:
267
+ <function_calls>
268
+ <invoke name="tool_name">
269
+ <parameter name="param_name">value</parameter>
270
+ </invoke>
271
+ </function_calls>
272
+ `;
273
+ return system + '\n\n' + toolsSection;
274
+ }
275
+ // Tool format constants (assembled to avoid triggering stop sequences)
276
+ const FUNCTIONS_OPEN = '<' + 'functions>';
277
+ const FUNCTIONS_CLOSE = '</' + 'functions>';
278
+ const FUNCTION_OPEN = '<' + 'function>';
279
+ const FUNCTION_CLOSE = '</' + 'function>';
280
+ const FUNC_CALLS_OPEN = '<' + 'function_calls>';
281
+ const FUNC_CALLS_CLOSE = '</' + 'function_calls>';
282
+ const INVOKE_OPEN = '<' + 'invoke name="';
283
+ const INVOKE_CLOSE = '</' + 'invoke>';
284
+ const PARAM_OPEN = '<' + 'parameter name="';
285
+ const PARAM_CLOSE = '</' + 'parameter>';
286
+ function formatToolsForInjection(tools) {
287
+ // Use the same XML format as system mode for consistency
288
+ const toolsXml = formatToolsForPrefill(tools);
289
+ return `
290
+ <available_tools>
291
+ ${toolsXml}
292
+ </available_tools>
293
+
294
+ When you want to use a tool, output:
295
+ ${FUNC_CALLS_OPEN}
296
+ ${INVOKE_OPEN}tool_name">
297
+ ${PARAM_OPEN}param_name">value${PARAM_CLOSE}
298
+ ${INVOKE_CLOSE}
299
+ ${FUNC_CALLS_CLOSE}`;
300
+ }
301
+ function buildStopSequences(messages, assistantName, maxParticipants, additionalSequences) {
302
+ // Collect unique participants (excluding assistant)
303
+ const participants = new Set();
304
+ // Scan from end of messages
305
+ for (let i = messages.length - 1; i >= 0 && participants.size < maxParticipants; i--) {
306
+ const message = messages[i];
307
+ if (!message)
308
+ continue;
309
+ const participant = message.participant;
310
+ if (participant !== assistantName) {
311
+ participants.add(participant);
312
+ }
313
+ }
314
+ // Build stop sequences
315
+ const sequences = [];
316
+ // Participant-based stops
317
+ for (const participant of participants) {
318
+ sequences.push(`\n${participant}:`);
319
+ }
320
+ // Tool-related stop
321
+ sequences.push('</function_calls>');
322
+ // Additional sequences
323
+ sequences.push(...additionalSequences);
324
+ return sequences;
325
+ }
326
+ function buildLegacyStrings(messages, systemText) {
327
+ // Extract user content (first user message after system)
328
+ let userContent = '';
329
+ let assistantPrefill = '';
330
+ for (const msg of messages) {
331
+ if (msg.role === 'user') {
332
+ if (typeof msg.content === 'string') {
333
+ userContent += msg.content + '\n\n';
334
+ }
335
+ else {
336
+ // Extract text from blocks
337
+ for (const block of msg.content) {
338
+ if (block.type === 'text') {
339
+ userContent += block.text + '\n\n';
340
+ }
341
+ }
342
+ }
343
+ }
344
+ else if (msg.role === 'assistant') {
345
+ if (typeof msg.content === 'string') {
346
+ assistantPrefill += msg.content;
347
+ }
348
+ else {
349
+ for (const block of msg.content) {
350
+ if (block.type === 'text') {
351
+ assistantPrefill += block.text;
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ return {
358
+ userContent: userContent.trim(),
359
+ assistantPrefill: assistantPrefill,
360
+ };
361
+ }
362
+ // ============================================================================
363
+ // Prefill Continuation
364
+ // ============================================================================
365
+ /**
366
+ * Build a continuation request from accumulated output
367
+ */
368
+ export function buildContinuationPrefill(originalResult, accumulated) {
369
+ // Update the last assistant message with accumulated content
370
+ const newMessages = [...originalResult.messages];
371
+ // Find the last assistant message or add one
372
+ const lastIdx = newMessages.length - 1;
373
+ if (lastIdx >= 0 && newMessages[lastIdx]?.role === 'assistant') {
374
+ newMessages[lastIdx] = {
375
+ role: 'assistant',
376
+ content: accumulated,
377
+ };
378
+ }
379
+ else {
380
+ newMessages.push({
381
+ role: 'assistant',
382
+ content: accumulated,
383
+ });
384
+ }
385
+ return {
386
+ ...originalResult,
387
+ messages: newMessages,
388
+ assistantPrefill: accumulated,
389
+ };
390
+ }
391
+ //# sourceMappingURL=prefill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefill.js","sourceRoot":"","sources":["../../src/transforms/prefill.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animalabs/membrane",
3
- "version": "0.5.46",
3
+ "version": "0.5.47",
4
4
  "description": "LLM middleware - a selective boundary that transforms what passes through",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/membrane.ts CHANGED
@@ -100,11 +100,12 @@ export class Membrane {
100
100
  try {
101
101
  const { providerRequest, prefillResult } = this.transformRequest(request, options.formatter);
102
102
 
103
- // Call beforeRequest hook
104
- let finalRequest = providerRequest;
105
- if (this.config.hooks?.beforeRequest) {
106
- finalRequest = await this.config.hooks.beforeRequest(request, providerRequest) ?? providerRequest;
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: { signal?: AbortSignal; timeoutMs?: number; idleTimeoutMs?: number; onRequest?: (rawRequest: unknown) => void }
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
- return await this.adapter.stream(request, callbacks, options);
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(
@@ -1802,6 +1843,7 @@ export class Membrane {
1802
1843
  signal: stream.signal,
1803
1844
  timeoutMs: options.timeoutMs,
1804
1845
  idleTimeoutMs: options.idleTimeoutMs,
1846
+ normalizedRequest: request,
1805
1847
  onRequest: (req: unknown) => { rawRequest = req; },
1806
1848
  }
1807
1849
  );
@@ -2191,6 +2233,7 @@ export class Membrane {
2191
2233
  signal: stream.signal,
2192
2234
  timeoutMs: options.timeoutMs,
2193
2235
  idleTimeoutMs: options.idleTimeoutMs,
2236
+ normalizedRequest: request,
2194
2237
  onRequest: (req: unknown) => { rawRequest = req; },
2195
2238
  }
2196
2239
  );
@@ -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
- params.system = request.system as BedrockMessageRequest['system'];
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) {