@animalabs/membrane 0.5.77 → 0.5.79
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/anthropic-xml.d.ts.map +1 -1
- package/dist/formatters/anthropic-xml.js +30 -2
- package/dist/formatters/anthropic-xml.js.map +1 -1
- package/dist/membrane.d.ts.map +1 -1
- package/dist/membrane.js +93 -2
- package/dist/membrane.js.map +1 -1
- package/dist/providers/anthropic.d.ts +9 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +1 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +34 -4
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/types/content.d.ts +5 -0
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/content.js.map +1 -1
- package/dist/types/streaming.d.ts +14 -0
- package/dist/types/streaming.d.ts.map +1 -1
- package/dist/types/tools.d.ts +19 -0
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/types/yielding-stream.d.ts +45 -1
- package/dist/types/yielding-stream.d.ts.map +1 -1
- package/dist/types/yielding-stream.js.map +1 -1
- package/dist/utils/tool-parser.d.ts +16 -2
- package/dist/utils/tool-parser.d.ts.map +1 -1
- package/dist/utils/tool-parser.js +143 -35
- package/dist/utils/tool-parser.js.map +1 -1
- package/package.json +1 -1
- package/src/formatters/anthropic-xml.ts +30 -2
- package/src/membrane.ts +118 -2
- package/src/providers/anthropic.ts +1 -1
- package/src/providers/bedrock.ts +35 -3
- package/src/types/content.ts +5 -0
- package/src/types/streaming.ts +15 -0
- package/src/types/tools.ts +20 -0
- package/src/types/yielding-stream.ts +47 -0
- package/src/utils/tool-parser.ts +147 -36
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-xml.d.ts","sourceRoot":"","sources":["../../src/formatters/anthropic-xml.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAEZ,QAAQ,EACR,UAAU,EAIX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EAEhB,MAAM,YAAY,CAAC;AAepB,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IAE9C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"anthropic-xml.d.ts","sourceRoot":"","sources":["../../src/formatters/anthropic-xml.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EAEZ,QAAQ,EACR,UAAU,EAIX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EAEhB,MAAM,YAAY,CAAC;AAepB,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;IAE9C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAwCD,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,OAAO,CAAC,MAAM,CAAwC;gBAE1C,MAAM,GAAE,2BAAgC;IAgBpD,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW;IAwShF,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM;IAYlF,kBAAkB,IAAI,YAAY;IAIlC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAK3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE;IASnD,OAAO,CAAC,cAAc;IAqDtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IA4BxB,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,oBAAoB;CAO7B"}
|
|
@@ -39,6 +39,7 @@ function toToolResult(block) {
|
|
|
39
39
|
}
|
|
40
40
|
return {
|
|
41
41
|
toolUseId: block.toolUseId,
|
|
42
|
+
toolName: block.toolName,
|
|
42
43
|
content,
|
|
43
44
|
isError: block.isError ?? false,
|
|
44
45
|
};
|
|
@@ -76,6 +77,9 @@ export class AnthropicXmlFormatter {
|
|
|
76
77
|
// Track conversation state
|
|
77
78
|
let currentConversation = [];
|
|
78
79
|
let lastNonEmptyParticipant = null;
|
|
80
|
+
// True right after an unlabeled tool-results glue — the next assistant
|
|
81
|
+
// message continues the same turn, so it must not get a fresh label.
|
|
82
|
+
let lastWasToolResults = false;
|
|
79
83
|
// Track cache markers applied
|
|
80
84
|
let cacheMarkersApplied = 0;
|
|
81
85
|
// Calculate tool injection point
|
|
@@ -197,6 +201,7 @@ export class AnthropicXmlFormatter {
|
|
|
197
201
|
// Check bot continuation
|
|
198
202
|
const isBotMessage = message.participant === assistantParticipant;
|
|
199
203
|
const isContinuation = isBotMessage && lastNonEmptyParticipant === assistantParticipant && !hasToolResult;
|
|
204
|
+
const isPureToolResults = hasToolResult && message.content.every((c) => c.type === 'tool_result');
|
|
200
205
|
if (isContinuation && isLastMessage) {
|
|
201
206
|
// Bot continuation - don't add prefix
|
|
202
207
|
continue;
|
|
@@ -205,10 +210,33 @@ export class AnthropicXmlFormatter {
|
|
|
205
210
|
// Completion target - prefix added below
|
|
206
211
|
}
|
|
207
212
|
else if (text) {
|
|
208
|
-
|
|
209
|
-
|
|
213
|
+
if (isPureToolResults) {
|
|
214
|
+
// Tool results are not speech: replay them exactly as they were
|
|
215
|
+
// injected live — inside the assistant flow, unlabeled (legacy
|
|
216
|
+
// convention). A participant prefix here re-attributes the
|
|
217
|
+
// harness's injection as someone's utterance, and the model then
|
|
218
|
+
// reads the same result in two attributions across compiles
|
|
219
|
+
// (D2 of the Evander 2026-08-08 scaffold-leak analysis).
|
|
220
|
+
currentConversation.push(`${text}${this.config.messageDelimiter}`);
|
|
221
|
+
lastWasToolResults = true;
|
|
222
|
+
}
|
|
223
|
+
else if (isBotMessage && lastWasToolResults) {
|
|
224
|
+
// The round after injected results continues the same assistant
|
|
225
|
+
// turn — no fresh label mid-turn, matching what the model lived.
|
|
226
|
+
// (If a turn ended exactly on a results injection, the next
|
|
227
|
+
// assistant turn glues here unlabeled — a minor cost the message
|
|
228
|
+
// model can't distinguish; a turn id would be needed.)
|
|
229
|
+
currentConversation.push(`${text}${this.config.messageDelimiter}`);
|
|
230
|
+
lastWasToolResults = false;
|
|
210
231
|
lastNonEmptyParticipant = message.participant;
|
|
211
232
|
}
|
|
233
|
+
else {
|
|
234
|
+
currentConversation.push(`${message.participant}: ${text}${this.config.messageDelimiter}`);
|
|
235
|
+
lastWasToolResults = false;
|
|
236
|
+
if (!hasToolResult) {
|
|
237
|
+
lastNonEmptyParticipant = message.participant;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
212
240
|
}
|
|
213
241
|
// Check cacheBreakpoint - flush INCLUDING this message with cache_control
|
|
214
242
|
// (explicit user control: this message is the last thing to be cached)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-xml.js","sourceRoot":"","sources":["../../src/formatters/anthropic-xml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic-xml.js","sourceRoot":"","sources":["../../src/formatters/anthropic-xml.ts"],"names":[],"mappings":"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"}
|
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;AAqB1B,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAiBpC,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;IAkB7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;
|
|
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;AAqB1B,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAGtB,MAAM,4BAA4B,CAAC;AAiBpC,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;IAkB7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IAyG9B;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC;IA8FhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;;OAMG;YACW,kBAAkB;IAimBhC;;OAEG;YACW,qBAAqB;IAwOnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwN9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuD5B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAkBrC;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;;;;;;OAOG;YACW,sBAAsB;IASpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;YA4EV,UAAU;IA4DxB,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;IAW3B,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;IAuBjB;;OAEG;YACW,mBAAmB;IAqlBjC;;OAEG;YACW,sBAAsB;CA2UrC"}
|
package/dist/membrane.js
CHANGED
|
@@ -43,6 +43,10 @@ export class Membrane {
|
|
|
43
43
|
const startTime = Date.now();
|
|
44
44
|
let attempts = 0;
|
|
45
45
|
let rawRequest;
|
|
46
|
+
// Counted separately from `attempts` (the transport-error budget): a
|
|
47
|
+
// refusal is a successful HTTP call with an unwanted verdict, and letting
|
|
48
|
+
// it consume error retries would couple two unrelated budgets.
|
|
49
|
+
let refusalRetriesUsed = 0;
|
|
46
50
|
while (true) {
|
|
47
51
|
attempts++;
|
|
48
52
|
try {
|
|
@@ -64,6 +68,16 @@ export class Membrane {
|
|
|
64
68
|
// Call onResponse callback with raw response from API
|
|
65
69
|
options.onResponse?.(providerResponse.raw);
|
|
66
70
|
const response = this.transformResponse(providerResponse, request, prefillResult, startTime, attempts, rawRequest);
|
|
71
|
+
// Re-issue a content-policy refusal (opt-in, default off). Safe here
|
|
72
|
+
// in a way the streaming paths are not: nothing has reached the
|
|
73
|
+
// caller yet, so the abandoned attempt leaves no trace to retract.
|
|
74
|
+
// Deliberately BEFORE afterResponse — a hook that logs or transforms
|
|
75
|
+
// should see the attempt that actually stands, not the discarded one.
|
|
76
|
+
if (response.stopReason === 'refusal' &&
|
|
77
|
+
refusalRetriesUsed < Math.max(0, options.refusalRetries ?? 0)) {
|
|
78
|
+
refusalRetriesUsed++;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
67
81
|
// Call afterResponse hook
|
|
68
82
|
if (this.config.hooks?.afterResponse) {
|
|
69
83
|
return await this.config.hooks.afterResponse(response, providerResponse.raw);
|
|
@@ -272,10 +286,16 @@ export class Membrane {
|
|
|
272
286
|
// Track the initial prefill length so we can extract only NEW content for response
|
|
273
287
|
// Also track what block type we're inside at the end of prefill
|
|
274
288
|
let initialPrefillLength = 0;
|
|
289
|
+
// Watermark for per-round delta text (ToolContext.roundPreamble): start of
|
|
290
|
+
// the CURRENT round's model text in parser-accumulated coordinates.
|
|
291
|
+
// Advanced past each round's injected results push, so injected
|
|
292
|
+
// <function_results> XML never enters a round's delta.
|
|
293
|
+
let roundStartLen = 0;
|
|
275
294
|
let initialBlockType = null;
|
|
276
295
|
if (prefillResult.assistantPrefill) {
|
|
277
296
|
parser.push(prefillResult.assistantPrefill);
|
|
278
297
|
initialPrefillLength = prefillResult.assistantPrefill.length;
|
|
298
|
+
roundStartLen = initialPrefillLength;
|
|
279
299
|
// Capture what block type we're inside after prefill (if any)
|
|
280
300
|
if (parser.isInsideBlock()) {
|
|
281
301
|
const blockType = parser.getCurrentBlockType();
|
|
@@ -527,6 +547,7 @@ export class Membrane {
|
|
|
527
547
|
const context = {
|
|
528
548
|
rawText: parsed.fullMatch,
|
|
529
549
|
preamble: parsed.beforeText.slice(initialPrefillLength),
|
|
550
|
+
roundPreamble: parsed.beforeText.slice(roundStartLen),
|
|
530
551
|
depth: toolDepth,
|
|
531
552
|
previousResults: executedToolResults,
|
|
532
553
|
accumulated: parser.getAccumulated().slice(initialPrefillLength),
|
|
@@ -535,6 +556,14 @@ export class Membrane {
|
|
|
535
556
|
if (!Array.isArray(results)) {
|
|
536
557
|
throw new Error(`onToolCalls must return an array of ToolResult, got ${typeof results}`);
|
|
537
558
|
}
|
|
559
|
+
// Backfill tool names for the legacy XML result rendering
|
|
560
|
+
// (<result><tool_name>…</tool_name><stdout>…) when the executor
|
|
561
|
+
// didn't supply them.
|
|
562
|
+
const callNames = new Map(parsed.calls.map((c) => [c.id, c.name]));
|
|
563
|
+
for (const r of results) {
|
|
564
|
+
if (!r.toolName)
|
|
565
|
+
r.toolName = callNames.get(r.toolUseId);
|
|
566
|
+
}
|
|
538
567
|
// Track the tool results
|
|
539
568
|
executedToolResults.push(...results);
|
|
540
569
|
// Check if results contain images (requires split-turn injection)
|
|
@@ -633,6 +662,9 @@ export class Membrane {
|
|
|
633
662
|
prefillResult.assistantPrefill = parser.getAccumulated();
|
|
634
663
|
providerRequest = this.buildContinuationRequest(request, prefillResult, parser.getAccumulated());
|
|
635
664
|
}
|
|
665
|
+
// Next round's model text starts after everything injected this
|
|
666
|
+
// round (results XML, image-split tags, thinking opener).
|
|
667
|
+
roundStartLen = parser.getAccumulated().length;
|
|
636
668
|
// Reset parser state for new streaming iteration. Tool rounds
|
|
637
669
|
// are the caller's work — they count against maxToolDepth only,
|
|
638
670
|
// never against the resumption guards (issue #39 review).
|
|
@@ -1356,9 +1388,21 @@ export class Membrane {
|
|
|
1356
1388
|
// compatibility won't catch the excess field (checked only on object
|
|
1357
1389
|
// literals, not on variables). Leaving it in would silently leak the
|
|
1358
1390
|
// normalized form into every adapter's options.
|
|
1359
|
-
const { normalizedRequest, ...adapterOptions } = options;
|
|
1391
|
+
const { normalizedRequest, refusalRetries, onRetrying, ...adapterOptions } = options;
|
|
1360
1392
|
const finalRequest = (await this.applyBeforeRequestHook(normalizedRequest, request));
|
|
1361
|
-
|
|
1393
|
+
// Retries are only safe when the caller can discard the abandoned
|
|
1394
|
+
// attempt, so they require BOTH a budget and an onRetrying hook.
|
|
1395
|
+
const maxAttempts = onRetrying ? Math.max(0, refusalRetries ?? 0) : 0;
|
|
1396
|
+
let retried = 0;
|
|
1397
|
+
while (true) {
|
|
1398
|
+
const result = await this.adapter.stream(finalRequest, callbacks, adapterOptions);
|
|
1399
|
+
if (result.stopReason !== 'refusal' || retried >= maxAttempts)
|
|
1400
|
+
return result;
|
|
1401
|
+
retried++;
|
|
1402
|
+
const category = result.raw
|
|
1403
|
+
?.response?.stop_details?.category;
|
|
1404
|
+
onRetrying({ attempt: retried, maxAttempts, category });
|
|
1405
|
+
}
|
|
1362
1406
|
}
|
|
1363
1407
|
buildContinuationRequest(originalRequest, prefillResult, accumulated) {
|
|
1364
1408
|
// Anthropic quirk: assistant content cannot end with trailing whitespace
|
|
@@ -1769,6 +1813,15 @@ export class Membrane {
|
|
|
1769
1813
|
*/
|
|
1770
1814
|
streamYielding(request, options = {}) {
|
|
1771
1815
|
const toolMode = this.resolveToolMode(request);
|
|
1816
|
+
// refusalRetries is implemented on the native path only. The XML path
|
|
1817
|
+
// accumulates into a streaming parser carrying prefill context and
|
|
1818
|
+
// resumption depths; rolling that back mid-turn is a separate problem,
|
|
1819
|
+
// and a partial implementation would corrupt the turn instead of
|
|
1820
|
+
// retrying it. Fail LOUD and OFF rather than silently mis-retrying.
|
|
1821
|
+
if (toolMode !== 'native' && (options.refusalRetries ?? 0) > 0) {
|
|
1822
|
+
(this.config.logger ?? console).warn('[membrane] refusalRetries is ignored in XML tool mode ' +
|
|
1823
|
+
'(native-only for now) — the turn will surface the refusal as before.');
|
|
1824
|
+
}
|
|
1772
1825
|
// Create the yielding stream with the appropriate inference runner
|
|
1773
1826
|
const runInference = toolMode === 'native'
|
|
1774
1827
|
? (stream) => this.runNativeToolsYielding(request, options, stream)
|
|
@@ -1834,10 +1887,14 @@ export class Membrane {
|
|
|
1834
1887
|
let { providerRequest, prefillResult } = this.transformRequest(request, formatter);
|
|
1835
1888
|
// Initialize parser with prefill content
|
|
1836
1889
|
let initialPrefillLength = 0;
|
|
1890
|
+
// Watermark for per-round delta text (ToolContext.roundPreamble) — see
|
|
1891
|
+
// streamWithXmlTools for rationale. Advanced past each results push.
|
|
1892
|
+
let roundStartLen = 0;
|
|
1837
1893
|
let initialBlockType = null;
|
|
1838
1894
|
if (prefillResult.assistantPrefill) {
|
|
1839
1895
|
parser.push(prefillResult.assistantPrefill);
|
|
1840
1896
|
initialPrefillLength = prefillResult.assistantPrefill.length;
|
|
1897
|
+
roundStartLen = initialPrefillLength;
|
|
1841
1898
|
if (parser.isInsideBlock()) {
|
|
1842
1899
|
const blockType = parser.getCurrentBlockType();
|
|
1843
1900
|
if (blockType === 'thinking' || blockType === 'tool_call' || blockType === 'tool_result') {
|
|
@@ -2054,6 +2111,7 @@ export class Membrane {
|
|
|
2054
2111
|
const context = {
|
|
2055
2112
|
rawText: parsed.fullMatch,
|
|
2056
2113
|
preamble: parsed.beforeText.slice(initialPrefillLength),
|
|
2114
|
+
roundPreamble: parsed.beforeText.slice(roundStartLen),
|
|
2057
2115
|
depth: toolDepth,
|
|
2058
2116
|
previousResults: executedToolResults,
|
|
2059
2117
|
accumulated: parser.getAccumulated().slice(initialPrefillLength),
|
|
@@ -2065,6 +2123,14 @@ export class Membrane {
|
|
|
2065
2123
|
context,
|
|
2066
2124
|
};
|
|
2067
2125
|
const { results, injectedMessages } = await stream.requestToolExecution(toolCallsEvent);
|
|
2126
|
+
// Backfill tool names for the legacy XML result rendering
|
|
2127
|
+
// (<result><tool_name>…</tool_name><stdout>…) when the executor
|
|
2128
|
+
// didn't supply them.
|
|
2129
|
+
const yieldCallNames = new Map(parsed.calls.map((c) => [c.id, c.name]));
|
|
2130
|
+
for (const r of results) {
|
|
2131
|
+
if (!r.toolName)
|
|
2132
|
+
r.toolName = yieldCallNames.get(r.toolUseId);
|
|
2133
|
+
}
|
|
2068
2134
|
// Mid-turn injected messages are not supported on the XML prefill
|
|
2069
2135
|
// path: the continuation is an assistant prefill over an XML
|
|
2070
2136
|
// transcript, not a message array, so there is no user envelope
|
|
@@ -2183,6 +2249,9 @@ export class Membrane {
|
|
|
2183
2249
|
prefillResult.assistantPrefill = parser.getAccumulated();
|
|
2184
2250
|
providerRequest = this.buildContinuationRequest(request, prefillResult, parser.getAccumulated());
|
|
2185
2251
|
}
|
|
2252
|
+
// Next round's model text starts after everything injected this
|
|
2253
|
+
// round (results XML, image-split tags, thinking opener).
|
|
2254
|
+
roundStartLen = parser.getAccumulated().length;
|
|
2186
2255
|
// Tool rounds are the caller's work — they count against
|
|
2187
2256
|
// maxToolDepth only, never against the resumption guards
|
|
2188
2257
|
// (issue #39 review: the uncapped tool-loop contract stands).
|
|
@@ -2297,6 +2366,9 @@ export class Membrane {
|
|
|
2297
2366
|
// Stream from provider
|
|
2298
2367
|
let textAccumulated = '';
|
|
2299
2368
|
let blockIndex = 0;
|
|
2369
|
+
// Where this attempt starts inside the tool-loop-spanning buffer, so
|
|
2370
|
+
// a refusal retry can roll back exactly this attempt's contribution.
|
|
2371
|
+
const allTextBefore = allTextAccumulated.length;
|
|
2300
2372
|
// Track block-type from the provider's content_block_start signal so
|
|
2301
2373
|
// every token chunk is tagged with the membrane block it belongs to.
|
|
2302
2374
|
// Without this, thinking_delta chunks get mislabelled as 'text' and
|
|
@@ -2370,6 +2442,25 @@ export class Membrane {
|
|
|
2370
2442
|
idleTimeoutMs: options.idleTimeoutMs,
|
|
2371
2443
|
normalizedRequest: request,
|
|
2372
2444
|
onRequest: (req) => { rawRequest = req; },
|
|
2445
|
+
refusalRetries: options.refusalRetries,
|
|
2446
|
+
// Discard the refused attempt: roll the accumulators back to
|
|
2447
|
+
// where this attempt began and tell the consumer to drop what it
|
|
2448
|
+
// already received. `allTextAccumulated` spans the whole tool
|
|
2449
|
+
// loop, so it is truncated rather than cleared.
|
|
2450
|
+
onRetrying: (info) => {
|
|
2451
|
+
allTextAccumulated = allTextAccumulated.slice(0, allTextBefore);
|
|
2452
|
+
textAccumulated = '';
|
|
2453
|
+
blockIndex = 0;
|
|
2454
|
+
currentBlockType = 'text';
|
|
2455
|
+
seenBlockIndices.clear();
|
|
2456
|
+
stream.emit({
|
|
2457
|
+
type: 'retrying',
|
|
2458
|
+
attempt: info.attempt,
|
|
2459
|
+
maxAttempts: info.maxAttempts,
|
|
2460
|
+
reason: 'refusal',
|
|
2461
|
+
...(info.category ? { category: info.category } : {}),
|
|
2462
|
+
});
|
|
2463
|
+
},
|
|
2373
2464
|
});
|
|
2374
2465
|
rawResponse = streamResult.raw;
|
|
2375
2466
|
lastStopReason = this.mapStopReason(streamResult.stopReason);
|