agentfootprint 7.6.0 → 7.6.1
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/adapters/llm/BedrockProvider.js +113 -9
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/core/slots/buildMessagesSlot.js +19 -1
- package/dist/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/core/slots/buildSystemPromptSlot.js +19 -1
- package/dist/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/core/slots/buildToolsSlot.js +27 -1
- package/dist/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/core/slots/helpers.js +39 -1
- package/dist/core/slots/helpers.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.d.ts +48 -0
- package/dist/esm/adapters/llm/BedrockProvider.js +113 -9
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/core/slots/buildMessagesSlot.js +20 -2
- package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
- package/dist/esm/core/slots/buildSystemPromptSlot.js +20 -2
- package/dist/esm/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/esm/core/slots/buildToolsSlot.js +28 -2
- package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
- package/dist/esm/core/slots/helpers.d.ts +29 -1
- package/dist/esm/core/slots/helpers.js +36 -0
- package/dist/esm/core/slots/helpers.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +12 -1
- package/dist/esm/recorders/core/types.d.ts +8 -1
- package/dist/esm/recorders/core/types.js.map +1 -1
- package/dist/recorders/core/types.js.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts +48 -0
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
- package/dist/types/core/slots/buildSystemPromptSlot.d.ts.map +1 -1
- package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
- package/dist/types/core/slots/helpers.d.ts +29 -1
- package/dist/types/core/slots/helpers.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +12 -1
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/recorders/core/types.d.ts +8 -1
- package/dist/types/recorders/core/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
* The Converse API is model-agnostic — one adapter covers every
|
|
14
14
|
* Bedrock-hosted model (Claude, Llama, Mistral, Titan, Mixtral, ...).
|
|
15
15
|
*
|
|
16
|
+
* Tool calling works on BOTH paths: `complete()` reads `toolUse` blocks
|
|
17
|
+
* off the Converse response, and `stream()` accumulates ConverseStream
|
|
18
|
+
* `contentBlockStart` / `contentBlockDelta` / `contentBlockStop` events
|
|
19
|
+
* (keyed by `contentBlockIndex`, so parallel tool calls that interleave
|
|
20
|
+
* are parsed correctly) and delivers them on the terminal chunk's
|
|
21
|
+
* `response.toolCalls`. A parity test pins the two paths together.
|
|
22
|
+
*
|
|
16
23
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
17
24
|
*
|
|
18
25
|
* • Multi-modal NOT supported (text content only).
|
|
@@ -59,14 +66,55 @@ export function bedrock(options = {}) {
|
|
|
59
66
|
let stopReason = 'stop';
|
|
60
67
|
let usage = { input: 0, output: 0 };
|
|
61
68
|
let tokenIndex = 0;
|
|
69
|
+
// Tool-use blocks under construction, keyed by `contentBlockIndex`.
|
|
70
|
+
// Keying by index (not arrival order) is what makes PARALLEL tool
|
|
71
|
+
// calls work: Bedrock interleaves their argument fragments.
|
|
72
|
+
const toolUseByIndex = new Map();
|
|
73
|
+
const completedToolCalls = [];
|
|
62
74
|
try {
|
|
63
75
|
for await (const event of stream) {
|
|
76
|
+
// ── Block start: id + name arrive here; arguments follow as
|
|
77
|
+
// JSON string fragments on deltas at the same index. ──
|
|
78
|
+
const startIndex = event.contentBlockStart?.contentBlockIndex;
|
|
79
|
+
const startToolUse = event.contentBlockStart?.start?.toolUse;
|
|
80
|
+
if (startToolUse && typeof startIndex === 'number') {
|
|
81
|
+
toolUseByIndex.set(startIndex, {
|
|
82
|
+
id: startToolUse.toolUseId ?? '',
|
|
83
|
+
name: startToolUse.name ?? '',
|
|
84
|
+
fragments: [],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
64
87
|
if (event.contentBlockDelta?.delta?.text) {
|
|
65
88
|
const text = event.contentBlockDelta.delta.text;
|
|
66
89
|
textParts.push(text);
|
|
67
90
|
yield { tokenIndex, content: text, done: false };
|
|
68
91
|
tokenIndex++;
|
|
69
92
|
}
|
|
93
|
+
// ── Argument fragment. `LLMChunk` has no tool-delta field, so
|
|
94
|
+
// these are NOT yielded as chunks (same as both Browser
|
|
95
|
+
// providers) — they surface on the terminal `response`. ──
|
|
96
|
+
const inputFragment = event.contentBlockDelta?.delta?.toolUse?.input;
|
|
97
|
+
if (typeof inputFragment === 'string') {
|
|
98
|
+
const deltaIndex = event.contentBlockDelta?.contentBlockIndex;
|
|
99
|
+
const open = typeof deltaIndex === 'number' ? toolUseByIndex.get(deltaIndex) : undefined;
|
|
100
|
+
// Bedrock sends `input: ''` fragments for no-arg tools; push
|
|
101
|
+
// them anyway — the join below collapses them to ''.
|
|
102
|
+
if (open)
|
|
103
|
+
open.fragments.push(inputFragment);
|
|
104
|
+
}
|
|
105
|
+
// ── Block complete: join the fragments and parse. ──
|
|
106
|
+
const stopIndex = event.contentBlockStop?.contentBlockIndex;
|
|
107
|
+
if (typeof stopIndex === 'number') {
|
|
108
|
+
const tu = toolUseByIndex.get(stopIndex);
|
|
109
|
+
if (tu) {
|
|
110
|
+
toolUseByIndex.delete(stopIndex);
|
|
111
|
+
completedToolCalls.push({
|
|
112
|
+
id: tu.id,
|
|
113
|
+
name: tu.name,
|
|
114
|
+
args: parseToolArgs(tu.fragments.join(''), tu.name, tu.id, stopIndex),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
70
118
|
if (event.messageStop?.stopReason) {
|
|
71
119
|
stopReason = normalizeStopReason(event.messageStop.stopReason);
|
|
72
120
|
}
|
|
@@ -77,16 +125,16 @@ export function bedrock(options = {}) {
|
|
|
77
125
|
};
|
|
78
126
|
}
|
|
79
127
|
}
|
|
80
|
-
|
|
128
|
+
// A block still open here never received its `contentBlockStop` —
|
|
129
|
+
// truncated wire data. Emitting a half-parsed call would run a
|
|
130
|
+
// tool with incomplete arguments, so we drop it and let the
|
|
131
|
+
// honesty invariant below catch the resulting contradiction.
|
|
132
|
+
const finalResponse = ensureHonestToolUse({
|
|
81
133
|
content: textParts.join(''),
|
|
82
|
-
|
|
83
|
-
// build — the consumer falls back to `complete()` to recover
|
|
84
|
-
// the authoritative tool_use payload. Most Bedrock streams
|
|
85
|
-
// currently emit tool_use only at messageEnd anyway.
|
|
86
|
-
toolCalls: [],
|
|
134
|
+
toolCalls: completedToolCalls,
|
|
87
135
|
usage,
|
|
88
136
|
stopReason,
|
|
89
|
-
};
|
|
137
|
+
});
|
|
90
138
|
yield { tokenIndex, content: '', done: true, response: finalResponse };
|
|
91
139
|
}
|
|
92
140
|
catch (err) {
|
|
@@ -221,7 +269,7 @@ function fromBedrockResponse(response) {
|
|
|
221
269
|
}
|
|
222
270
|
}
|
|
223
271
|
}
|
|
224
|
-
return {
|
|
272
|
+
return ensureHonestToolUse({
|
|
225
273
|
content: textParts.join(''),
|
|
226
274
|
toolCalls,
|
|
227
275
|
usage: {
|
|
@@ -230,7 +278,59 @@ function fromBedrockResponse(response) {
|
|
|
230
278
|
},
|
|
231
279
|
stopReason: normalizeStopReason(response.stopReason ?? 'end_turn'),
|
|
232
280
|
providerRef: response.ResponseMetadata?.RequestId,
|
|
233
|
-
};
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Honesty invariant: a response claiming `tool_use` with zero parsed tool
|
|
285
|
+
* calls is self-contradictory — the model asked for tools and the adapter
|
|
286
|
+
* lost them. Never return it quietly; throw so a configured `reliability`
|
|
287
|
+
* rule (retry / fallback / fail-fast) can act instead of the agent
|
|
288
|
+
* silently answering without running its tools.
|
|
289
|
+
*
|
|
290
|
+
* Post-7.6.1 this cannot happen on today's wire shapes — it is a tripwire
|
|
291
|
+
* for future ConverseStream shape drift. Applied on BOTH the streaming and
|
|
292
|
+
* non-streaming exits so the two paths can never drift apart again.
|
|
293
|
+
*/
|
|
294
|
+
function ensureHonestToolUse(response) {
|
|
295
|
+
if (response.stopReason === 'tool_use' && response.toolCalls.length === 0) {
|
|
296
|
+
throw Object.assign(new Error("[bedrock] stopReason 'tool_use' with zero parsed tool calls — " +
|
|
297
|
+
'tool-use blocks were lost (stream-shape drift?). ' +
|
|
298
|
+
'Refusing to return a self-contradictory response.'), { name: 'BedrockProviderError', code: 'BEDROCK_STREAM_TOOLUSE_LOST' });
|
|
299
|
+
}
|
|
300
|
+
return response;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Parse the joined JSON fragments of one streamed tool-use block.
|
|
304
|
+
*
|
|
305
|
+
* Empty (no-arg tools stream zero fragments, or a single `''`) → `{}`.
|
|
306
|
+
* Malformed → a TYPED throw, never a silent `{}`: swallowing the failure
|
|
307
|
+
* would execute a side-effecting tool with its arguments dropped, which is
|
|
308
|
+
* the worst failure mode available. A thrown provider error reaches the
|
|
309
|
+
* `reliability` / `withRetry` machinery, and a retry usually streams clean
|
|
310
|
+
* JSON.
|
|
311
|
+
*
|
|
312
|
+
* The raw fragment bytes are deliberately NOT put in the message — tool
|
|
313
|
+
* arguments can carry user data and provider error messages land in audit
|
|
314
|
+
* logs unredacted. `rawLength` is reported instead.
|
|
315
|
+
*/
|
|
316
|
+
function parseToolArgs(joined, toolName, toolUseId, contentBlockIndex) {
|
|
317
|
+
if (joined.trim().length === 0)
|
|
318
|
+
return {};
|
|
319
|
+
try {
|
|
320
|
+
return JSON.parse(joined);
|
|
321
|
+
}
|
|
322
|
+
catch (parseErr) {
|
|
323
|
+
throw Object.assign(new Error(`[bedrock] malformed tool-use JSON for tool '${toolName}' (toolUseId ${toolUseId}): ` +
|
|
324
|
+
`${parseErr.message}. Refusing to run the tool with dropped arguments.`), {
|
|
325
|
+
name: 'BedrockProviderError',
|
|
326
|
+
code: 'BEDROCK_MALFORMED_TOOL_ARGS',
|
|
327
|
+
toolName,
|
|
328
|
+
toolUseId,
|
|
329
|
+
contentBlockIndex,
|
|
330
|
+
rawLength: joined.length,
|
|
331
|
+
cause: parseErr,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
234
334
|
}
|
|
235
335
|
function normalizeStopReason(raw) {
|
|
236
336
|
switch (raw) {
|
|
@@ -250,6 +350,10 @@ function normalizeStopReason(raw) {
|
|
|
250
350
|
}
|
|
251
351
|
}
|
|
252
352
|
function wrapError(err) {
|
|
353
|
+
// Already ours (the typed tool-use conditions above) — re-wrapping would
|
|
354
|
+
// drop `code` / `toolName` / `toolUseId` and double-prefix the message.
|
|
355
|
+
if (err instanceof Error && err.name === 'BedrockProviderError')
|
|
356
|
+
return err;
|
|
253
357
|
if (err instanceof Error) {
|
|
254
358
|
return Object.assign(new Error(`[bedrock] ${err.message}`), {
|
|
255
359
|
name: 'BedrockProviderError',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BedrockProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BedrockProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { flowChart } from 'footprintjs';
|
|
15
15
|
import { INJECTION_KEYS } from '../../conventions.js';
|
|
16
16
|
import { COMPOSITION_KEYS } from '../../recorders/core/types.js';
|
|
17
|
-
import { composeSlot, fnv1a, truncate } from './helpers.js';
|
|
17
|
+
import { composeSlot, fnv1a, formatOverflowWarning, slotOverflow, truncate } from './helpers.js';
|
|
18
18
|
/**
|
|
19
19
|
* Build the Messages slot subflow.
|
|
20
20
|
*
|
|
@@ -26,6 +26,8 @@ import { composeSlot, fnv1a, truncate } from './helpers.js';
|
|
|
26
26
|
*/
|
|
27
27
|
export function buildMessagesSlot(config = {}) {
|
|
28
28
|
const budgetCap = config.budgetCap ?? 10000;
|
|
29
|
+
// Dedup latch for the human-facing overflow warning (see buildToolsSlot).
|
|
30
|
+
let warnedOverflow = false;
|
|
29
31
|
return flowChart('Compose', (scope) => {
|
|
30
32
|
const args = scope.$getArgs();
|
|
31
33
|
const messages = args.messages ?? [];
|
|
@@ -67,7 +69,23 @@ export function buildMessagesSlot(config = {}) {
|
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
scope.$setValue(INJECTION_KEYS.MESSAGES, injections);
|
|
70
|
-
|
|
72
|
+
const composition = composeSlot('messages', iteration, injections, budgetCap, 'history-order');
|
|
73
|
+
scope.$setValue(COMPOSITION_KEYS.SLOT_COMPOSED, composition);
|
|
74
|
+
// Overflow is LOUD — nothing here truncates (see buildToolsSlot).
|
|
75
|
+
const pressure = slotOverflow(composition);
|
|
76
|
+
if (pressure) {
|
|
77
|
+
scope.$setValue(COMPOSITION_KEYS.BUDGET_PRESSURE, [pressure]);
|
|
78
|
+
if (!warnedOverflow) {
|
|
79
|
+
warnedOverflow = true;
|
|
80
|
+
console.warn(formatOverflowWarning({
|
|
81
|
+
pressure,
|
|
82
|
+
itemCount: injections.length,
|
|
83
|
+
itemNoun: 'message',
|
|
84
|
+
contentNoun: 'messages',
|
|
85
|
+
remedy: 'Raise budgetCap on the slot config or trim the conversation history.',
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
71
89
|
}, 'compose', { description: 'Compose messages slot' }).build();
|
|
72
90
|
}
|
|
73
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildMessagesSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildMessagesSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"buildMessagesSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildMessagesSlot.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { flowChart } from 'footprintjs';
|
|
16
16
|
import { INJECTION_KEYS } from '../../conventions.js';
|
|
17
17
|
import { COMPOSITION_KEYS } from '../../recorders/core/types.js';
|
|
18
|
-
import { composeSlot, fnv1a, truncate } from './helpers.js';
|
|
18
|
+
import { composeSlot, fnv1a, formatOverflowWarning, slotOverflow, truncate } from './helpers.js';
|
|
19
19
|
/**
|
|
20
20
|
* Build the System-Prompt slot subflow.
|
|
21
21
|
*
|
|
@@ -29,6 +29,8 @@ export function buildSystemPromptSlot(config) {
|
|
|
29
29
|
const budgetCap = config.budgetCap ?? 4000;
|
|
30
30
|
const reason = config.reason ?? 'static system prompt';
|
|
31
31
|
const promptSource = config.prompt;
|
|
32
|
+
// Dedup latch for the human-facing overflow warning (see buildToolsSlot).
|
|
33
|
+
let warnedOverflow = false;
|
|
32
34
|
return flowChart('Compose', async (scope) => {
|
|
33
35
|
const args = scope.$getArgs();
|
|
34
36
|
const resolved = typeof promptSource === 'function' ? await promptSource(args) : promptSource;
|
|
@@ -79,7 +81,23 @@ export function buildSystemPromptSlot(config) {
|
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
83
|
scope.$setValue(INJECTION_KEYS.SYSTEM_PROMPT, injections);
|
|
82
|
-
|
|
84
|
+
const composition = composeSlot('system-prompt', args.iteration ?? 1, injections, budgetCap);
|
|
85
|
+
scope.$setValue(COMPOSITION_KEYS.SLOT_COMPOSED, composition);
|
|
86
|
+
// Overflow is LOUD — nothing here truncates (see buildToolsSlot).
|
|
87
|
+
const pressure = slotOverflow(composition);
|
|
88
|
+
if (pressure) {
|
|
89
|
+
scope.$setValue(COMPOSITION_KEYS.BUDGET_PRESSURE, [pressure]);
|
|
90
|
+
if (!warnedOverflow) {
|
|
91
|
+
warnedOverflow = true;
|
|
92
|
+
console.warn(formatOverflowWarning({
|
|
93
|
+
pressure,
|
|
94
|
+
itemCount: injections.length,
|
|
95
|
+
itemNoun: 'prompt fragment',
|
|
96
|
+
contentNoun: 'fragments',
|
|
97
|
+
remedy: 'Raise budgetCap on the slot config or shorten the system prompt.',
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
83
101
|
}, 'compose', { description: 'Compose system-prompt slot' }).build();
|
|
84
102
|
}
|
|
85
103
|
//# sourceMappingURL=buildSystemPromptSlot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildSystemPromptSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildSystemPromptSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"buildSystemPromptSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildSystemPromptSlot.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { flowChart } from 'footprintjs';
|
|
|
14
14
|
import { INJECTION_KEYS } from '../../conventions.js';
|
|
15
15
|
import { COMPOSITION_KEYS } from '../../recorders/core/types.js';
|
|
16
16
|
import { typedEmit } from '../../recorders/core/typedEmit.js';
|
|
17
|
-
import { composeSlot, fnv1a, truncate } from './helpers.js';
|
|
17
|
+
import { composeSlot, fnv1a, formatOverflowWarning, slotOverflow, truncate } from './helpers.js';
|
|
18
18
|
/**
|
|
19
19
|
* Build the Tools slot subflow.
|
|
20
20
|
*
|
|
@@ -29,6 +29,11 @@ export function buildToolsSlot(config) {
|
|
|
29
29
|
const tools = config.tools;
|
|
30
30
|
const toolProvider = config.toolProvider;
|
|
31
31
|
const providerToolCache = config.providerToolCache;
|
|
32
|
+
// Dedup latch for the human-facing warning, scoped to THIS built chart:
|
|
33
|
+
// a 20-iteration ReAct loop must not print 20 identical warnings. The
|
|
34
|
+
// typed `context.budget_pressure` event still fires every iteration and
|
|
35
|
+
// carries the per-iteration truth.
|
|
36
|
+
let warnedOverflow = false;
|
|
32
37
|
// Stage 1 — Discover: consult the external ToolProvider (if any) and
|
|
33
38
|
// resolve its Tool[] for this iteration. ALWAYS runs (even when no
|
|
34
39
|
// provider) so the trace shape is consistent across agents — the
|
|
@@ -191,7 +196,28 @@ export function buildToolsSlot(config) {
|
|
|
191
196
|
merged.push(t);
|
|
192
197
|
}
|
|
193
198
|
scope.toolSchemas = merged;
|
|
194
|
-
|
|
199
|
+
const composition = composeSlot('tools', iteration, injections, budgetCap, toolProvider ? 'registry+provider+injections' : 'registry+injections');
|
|
200
|
+
scope.$setValue(COMPOSITION_KEYS.SLOT_COMPOSED, composition);
|
|
201
|
+
// Overflow is LOUD. Nothing here truncates — the full tool definitions
|
|
202
|
+
// always reach the LLM — so an over-budget slot is otherwise invisible
|
|
203
|
+
// (headroomChars clamps to 0, droppedCount stays 0). Write a FRESH
|
|
204
|
+
// single-record array: ContextRecorder re-dispatches every record in
|
|
205
|
+
// the written value on every write, so appending would re-fire prior
|
|
206
|
+
// iterations.
|
|
207
|
+
const pressure = slotOverflow(composition);
|
|
208
|
+
if (pressure) {
|
|
209
|
+
scope.$setValue(COMPOSITION_KEYS.BUDGET_PRESSURE, [pressure]);
|
|
210
|
+
if (!warnedOverflow) {
|
|
211
|
+
warnedOverflow = true;
|
|
212
|
+
console.warn(formatOverflowWarning({
|
|
213
|
+
pressure,
|
|
214
|
+
itemCount: injections.length,
|
|
215
|
+
itemNoun: 'tool definition',
|
|
216
|
+
contentNoun: 'definitions',
|
|
217
|
+
remedy: 'Raise budgetCap on the agent config or trim tool descriptions.',
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
195
221
|
};
|
|
196
222
|
return flowChart('Discover', discoverStage, 'discover', {
|
|
197
223
|
description: 'Discover provider tools',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildToolsSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildToolsSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"buildToolsSlot.js","sourceRoot":"","sources":["../../../../src/core/slots/buildToolsSlot.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* breakdown. Kept co-located to avoid cross-package import churn.
|
|
7
7
|
*/
|
|
8
8
|
import type { ContextSource, ContextSlot } from '../../events/types.js';
|
|
9
|
-
import type { InjectionRecord, SlotComposition } from '../../recorders/core/types.js';
|
|
9
|
+
import type { BudgetPressureRecord, InjectionRecord, SlotComposition } from '../../recorders/core/types.js';
|
|
10
10
|
/** Non-cryptographic stable hash — sufficient for InjectionRecord dedup. */
|
|
11
11
|
export declare function fnv1a(input: string): string;
|
|
12
12
|
/** Truncate with ellipsis for contentSummary fields. */
|
|
@@ -25,3 +25,31 @@ export declare function composeSlot(slot: ContextSlot, iteration: number, inject
|
|
|
25
25
|
count: number;
|
|
26
26
|
summaries: readonly string[];
|
|
27
27
|
}): SlotComposition;
|
|
28
|
+
/**
|
|
29
|
+
* Overflow detector for slot compositions.
|
|
30
|
+
*
|
|
31
|
+
* Returns a `BudgetPressureRecord` when `used > cap`, otherwise `null`.
|
|
32
|
+
* `cap <= 0` is the "no budget" sentinel (see buildMessageApiChart's
|
|
33
|
+
* `{ cap: 0, used: 0 }` composition) — it never overflows.
|
|
34
|
+
*
|
|
35
|
+
* `planAction: 'none'` is the honest answer: the built-in slots evict and
|
|
36
|
+
* truncate NOTHING, so the full content went to the LLM and this record is
|
|
37
|
+
* the loud signal that the slot's budget is not being respected. Units are
|
|
38
|
+
* CHARS despite the historical `*Tokens` field names.
|
|
39
|
+
*/
|
|
40
|
+
export declare function slotOverflow(composition: SlotComposition): BudgetPressureRecord | null;
|
|
41
|
+
/**
|
|
42
|
+
* Human-facing warning text for a slot overflow. Says what actually
|
|
43
|
+
* happened (nothing was truncated) and what to do about it — the typed
|
|
44
|
+
* `context.budget_pressure` event carries the machine-readable truth.
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatOverflowWarning(opts: {
|
|
47
|
+
readonly pressure: BudgetPressureRecord;
|
|
48
|
+
readonly itemCount: number;
|
|
49
|
+
/** Singular noun for what filled the slot, e.g. 'tool definition'. */
|
|
50
|
+
readonly itemNoun: string;
|
|
51
|
+
/** Plural noun used in the "full … were sent" clause, e.g. 'definitions'. */
|
|
52
|
+
readonly contentNoun: string;
|
|
53
|
+
/** Actionable remedy sentence, ending with a period. */
|
|
54
|
+
readonly remedy: string;
|
|
55
|
+
}): string;
|
|
@@ -55,4 +55,40 @@ export function composeSlot(slot, iteration, injections, budgetCap, orderingStra
|
|
|
55
55
|
droppedSummaries: dropped?.summaries ?? [],
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Overflow detector for slot compositions.
|
|
60
|
+
*
|
|
61
|
+
* Returns a `BudgetPressureRecord` when `used > cap`, otherwise `null`.
|
|
62
|
+
* `cap <= 0` is the "no budget" sentinel (see buildMessageApiChart's
|
|
63
|
+
* `{ cap: 0, used: 0 }` composition) — it never overflows.
|
|
64
|
+
*
|
|
65
|
+
* `planAction: 'none'` is the honest answer: the built-in slots evict and
|
|
66
|
+
* truncate NOTHING, so the full content went to the LLM and this record is
|
|
67
|
+
* the loud signal that the slot's budget is not being respected. Units are
|
|
68
|
+
* CHARS despite the historical `*Tokens` field names.
|
|
69
|
+
*/
|
|
70
|
+
export function slotOverflow(composition) {
|
|
71
|
+
const { cap, used } = composition.budget;
|
|
72
|
+
if (cap <= 0 || used <= cap)
|
|
73
|
+
return null;
|
|
74
|
+
return {
|
|
75
|
+
slot: composition.slot,
|
|
76
|
+
capTokens: cap,
|
|
77
|
+
projectedTokens: used,
|
|
78
|
+
overflowBy: used - cap,
|
|
79
|
+
planAction: 'none',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Human-facing warning text for a slot overflow. Says what actually
|
|
84
|
+
* happened (nothing was truncated) and what to do about it — the typed
|
|
85
|
+
* `context.budget_pressure` event carries the machine-readable truth.
|
|
86
|
+
*/
|
|
87
|
+
export function formatOverflowWarning(opts) {
|
|
88
|
+
const { pressure, itemCount, itemNoun, contentNoun, remedy } = opts;
|
|
89
|
+
return (`[agentfootprint] ${pressure.slot} slot over budget: ` +
|
|
90
|
+
`${pressure.projectedTokens}/${pressure.capTokens} chars (+${pressure.overflowBy}), ` +
|
|
91
|
+
`${itemCount} ${itemNoun}(s). Nothing was truncated — the full ${contentNoun} were sent ` +
|
|
92
|
+
`to the LLM — but the slot budget signal is unreliable. ${remedy}`);
|
|
93
|
+
}
|
|
58
94
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/slots/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/slots/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -213,12 +213,23 @@ export interface ContextSlotComposedPayload {
|
|
|
213
213
|
readonly droppedCount: number;
|
|
214
214
|
readonly droppedSummaries: readonly string[];
|
|
215
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Fired when a slot composes over its `budgetCap`.
|
|
218
|
+
*
|
|
219
|
+
* `capTokens` / `projectedTokens` are historical names: slot budgets are
|
|
220
|
+
* measured in CHARS. Renaming them would be breaking, so they stay.
|
|
221
|
+
*
|
|
222
|
+
* `planAction: 'none'` means no mitigation was performed — nothing was
|
|
223
|
+
* evicted or truncated and the full content still went to the LLM. That
|
|
224
|
+
* is what the built-in slots report: they never truncate, so the event is
|
|
225
|
+
* the signal that the budget is not being respected.
|
|
226
|
+
*/
|
|
216
227
|
export interface ContextBudgetPressurePayload {
|
|
217
228
|
readonly slot: ContextSlot;
|
|
218
229
|
readonly capTokens: number;
|
|
219
230
|
readonly projectedTokens: number;
|
|
220
231
|
readonly overflowBy: number;
|
|
221
|
-
readonly planAction: 'evict' | 'summarize' | 'abort';
|
|
232
|
+
readonly planAction: 'evict' | 'summarize' | 'abort' | 'none';
|
|
222
233
|
}
|
|
223
234
|
/**
|
|
224
235
|
* Fired once per iteration by the Injection Engine after it evaluates every
|
|
@@ -81,13 +81,20 @@ export interface EvictionRecord {
|
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
83
83
|
* Budget-pressure warning — emitted before evictions fire.
|
|
84
|
+
*
|
|
85
|
+
* `capTokens` / `projectedTokens` are historical names: slot budgets are
|
|
86
|
+
* measured in CHARS. Renaming them would be breaking, so they stay.
|
|
87
|
+
*
|
|
88
|
+
* `planAction: 'none'` means no mitigation was performed — nothing was
|
|
89
|
+
* evicted or truncated and the full content still went to the LLM. It is
|
|
90
|
+
* the honest reading of a slot that composed over its `budgetCap`.
|
|
84
91
|
*/
|
|
85
92
|
export interface BudgetPressureRecord {
|
|
86
93
|
readonly slot: ContextSlot;
|
|
87
94
|
readonly capTokens: number;
|
|
88
95
|
readonly projectedTokens: number;
|
|
89
96
|
readonly overflowBy: number;
|
|
90
|
-
readonly planAction: 'evict' | 'summarize' | 'abort';
|
|
97
|
+
readonly planAction: 'evict' | 'summarize' | 'abort' | 'none';
|
|
91
98
|
}
|
|
92
99
|
export declare const COMPOSITION_KEYS: {
|
|
93
100
|
readonly SLOT_COMPOSED: "slotCompositions";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/recorders/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/recorders/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoGH,uEAAuE;AACvE,0EAA0E;AAC1E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa,EAAE,kBAAkB;IACjC,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,qBAAqB;CAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/recorders/core/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/recorders/core/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAoGH,uEAAuE;AACvE,0EAA0E;AAC1E,4BAA4B;AACf,QAAA,gBAAgB,GAAG;IAC9B,aAAa,EAAE,kBAAkB;IACjC,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,qBAAqB;CAC9B,CAAC"}
|
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
* The Converse API is model-agnostic — one adapter covers every
|
|
14
14
|
* Bedrock-hosted model (Claude, Llama, Mistral, Titan, Mixtral, ...).
|
|
15
15
|
*
|
|
16
|
+
* Tool calling works on BOTH paths: `complete()` reads `toolUse` blocks
|
|
17
|
+
* off the Converse response, and `stream()` accumulates ConverseStream
|
|
18
|
+
* `contentBlockStart` / `contentBlockDelta` / `contentBlockStop` events
|
|
19
|
+
* (keyed by `contentBlockIndex`, so parallel tool calls that interleave
|
|
20
|
+
* are parsed correctly) and delivers them on the terminal chunk's
|
|
21
|
+
* `response.toolCalls`. A parity test pins the two paths together.
|
|
22
|
+
*
|
|
16
23
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
17
24
|
*
|
|
18
25
|
* • Multi-modal NOT supported (text content only).
|
|
@@ -68,6 +75,47 @@ interface BedrockTool {
|
|
|
68
75
|
};
|
|
69
76
|
};
|
|
70
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* ConverseStream event shapes we consume.
|
|
80
|
+
*
|
|
81
|
+
* Note the asymmetry with the non-streaming API: `toolUse.input` is a
|
|
82
|
+
* fully-formed OBJECT on a Converse response, but a JSON **string
|
|
83
|
+
* fragment** on a ConverseStream delta. Fragments arrive across many
|
|
84
|
+
* events and must be joined before parsing, and blocks are addressed by
|
|
85
|
+
* `contentBlockIndex` because parallel tool calls interleave.
|
|
86
|
+
*/
|
|
87
|
+
export interface BedrockStreamEvent {
|
|
88
|
+
contentBlockStart?: {
|
|
89
|
+
contentBlockIndex?: number;
|
|
90
|
+
start?: {
|
|
91
|
+
toolUse?: {
|
|
92
|
+
toolUseId?: string;
|
|
93
|
+
name?: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
contentBlockDelta?: {
|
|
98
|
+
contentBlockIndex?: number;
|
|
99
|
+
delta?: {
|
|
100
|
+
text?: string;
|
|
101
|
+
toolUse?: {
|
|
102
|
+
input?: string;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
contentBlockStop?: {
|
|
107
|
+
contentBlockIndex?: number;
|
|
108
|
+
};
|
|
109
|
+
messageStop?: {
|
|
110
|
+
stopReason?: string;
|
|
111
|
+
};
|
|
112
|
+
metadata?: {
|
|
113
|
+
usage?: {
|
|
114
|
+
inputTokens: number;
|
|
115
|
+
outputTokens: number;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
}
|
|
71
119
|
export interface BedrockProviderOptions {
|
|
72
120
|
/** AWS region (e.g., 'us-east-1'). Defaults to AWS SDK auto-detect. */
|
|
73
121
|
readonly region?: string;
|