agentfootprint 1.4.2 → 1.7.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/AGENTS.md +12 -32
- package/CLAUDE.md +20 -30
- package/README.md +1 -1
- package/dist/adapters/anthropic/AnthropicAdapter.js +9 -10
- package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -1
- package/dist/adapters/browser/BrowserAnthropicAdapter.js +26 -8
- package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
- package/dist/concepts/LLMCall.js +6 -0
- package/dist/concepts/LLMCall.js.map +1 -1
- package/dist/concepts/RAG.js +7 -1
- package/dist/concepts/RAG.js.map +1 -1
- package/dist/concepts/Swarm.js +1 -0
- package/dist/concepts/Swarm.js.map +1 -1
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js +9 -10
- package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -1
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +26 -8
- package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
- package/dist/esm/concepts/LLMCall.js +6 -0
- package/dist/esm/concepts/LLMCall.js.map +1 -1
- package/dist/esm/concepts/RAG.js +7 -1
- package/dist/esm/concepts/RAG.js.map +1 -1
- package/dist/esm/concepts/Swarm.js +1 -0
- package/dist/esm/concepts/Swarm.js.map +1 -1
- package/dist/esm/executor/agentLoop.js +4 -0
- package/dist/esm/executor/agentLoop.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/call/callLLMStage.js +41 -0
- package/dist/esm/lib/call/callLLMStage.js.map +1 -1
- package/dist/esm/lib/call/helpers.js +361 -3
- package/dist/esm/lib/call/helpers.js.map +1 -1
- package/dist/esm/lib/call/parseResponseStage.js +12 -3
- package/dist/esm/lib/call/parseResponseStage.js.map +1 -1
- package/dist/esm/lib/call/streamingCallLLMStage.js +42 -0
- package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -1
- package/dist/esm/lib/call/toolExecutionSubflow.js +5 -2
- package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -1
- package/dist/esm/lib/concepts/AgentBuilder.js +83 -0
- package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -1
- package/dist/esm/lib/concepts/AgentRunner.js +77 -63
- package/dist/esm/lib/concepts/AgentRunner.js.map +1 -1
- package/dist/esm/lib/instructions/InstructionRecorder.js +6 -2
- package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -1
- package/dist/esm/lib/loop/buildAgentLoop.js +132 -4
- package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -1
- package/dist/esm/lib/narrative/agentRenderer.js +79 -14
- package/dist/esm/lib/narrative/agentRenderer.js.map +1 -1
- package/dist/esm/observe.barrel.js +2 -0
- package/dist/esm/observe.barrel.js.map +1 -1
- package/dist/esm/providers.barrel.js +1 -1
- package/dist/esm/providers.barrel.js.map +1 -1
- package/dist/esm/recorders/CostRecorder.js +20 -16
- package/dist/esm/recorders/CostRecorder.js.map +1 -1
- package/dist/esm/recorders/ExplainRecorder.js +4 -0
- package/dist/esm/recorders/ExplainRecorder.js.map +1 -1
- package/dist/esm/recorders/RecorderBridge.js +11 -5
- package/dist/esm/recorders/RecorderBridge.js.map +1 -1
- package/dist/esm/recorders/TokenRecorder.js +26 -24
- package/dist/esm/recorders/TokenRecorder.js.map +1 -1
- package/dist/esm/recorders/ToolUsageRecorder.js +21 -17
- package/dist/esm/recorders/ToolUsageRecorder.js.map +1 -1
- package/dist/esm/streaming/StreamEmitter.js.map +1 -1
- package/dist/executor/agentLoop.js +4 -0
- package/dist/executor/agentLoop.js.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/call/callLLMStage.js +41 -0
- package/dist/lib/call/callLLMStage.js.map +1 -1
- package/dist/lib/call/helpers.js +364 -4
- package/dist/lib/call/helpers.js.map +1 -1
- package/dist/lib/call/parseResponseStage.js +12 -3
- package/dist/lib/call/parseResponseStage.js.map +1 -1
- package/dist/lib/call/streamingCallLLMStage.js +42 -0
- package/dist/lib/call/streamingCallLLMStage.js.map +1 -1
- package/dist/lib/call/toolExecutionSubflow.js +5 -2
- package/dist/lib/call/toolExecutionSubflow.js.map +1 -1
- package/dist/lib/concepts/AgentBuilder.js +83 -0
- package/dist/lib/concepts/AgentBuilder.js.map +1 -1
- package/dist/lib/concepts/AgentRunner.js +77 -63
- package/dist/lib/concepts/AgentRunner.js.map +1 -1
- package/dist/lib/instructions/InstructionRecorder.js +6 -2
- package/dist/lib/instructions/InstructionRecorder.js.map +1 -1
- package/dist/lib/loop/buildAgentLoop.js +132 -4
- package/dist/lib/loop/buildAgentLoop.js.map +1 -1
- package/dist/lib/narrative/agentRenderer.js +79 -14
- package/dist/lib/narrative/agentRenderer.js.map +1 -1
- package/dist/observe.barrel.js +4 -1
- package/dist/observe.barrel.js.map +1 -1
- package/dist/providers.barrel.js +3 -1
- package/dist/providers.barrel.js.map +1 -1
- package/dist/recorders/CostRecorder.js +20 -16
- package/dist/recorders/CostRecorder.js.map +1 -1
- package/dist/recorders/ExplainRecorder.js +4 -0
- package/dist/recorders/ExplainRecorder.js.map +1 -1
- package/dist/recorders/RecorderBridge.js +11 -5
- package/dist/recorders/RecorderBridge.js.map +1 -1
- package/dist/recorders/TokenRecorder.js +26 -24
- package/dist/recorders/TokenRecorder.js.map +1 -1
- package/dist/recorders/ToolUsageRecorder.js +21 -17
- package/dist/recorders/ToolUsageRecorder.js.map +1 -1
- package/dist/streaming/StreamEmitter.js.map +1 -1
- package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -1
- package/dist/types/concepts/LLMCall.d.ts.map +1 -1
- package/dist/types/concepts/RAG.d.ts.map +1 -1
- package/dist/types/concepts/Swarm.d.ts.map +1 -1
- package/dist/types/concepts/index.d.ts +1 -1
- package/dist/types/concepts/index.d.ts.map +1 -1
- package/dist/types/core/recorders.d.ts +4 -0
- package/dist/types/core/recorders.d.ts.map +1 -1
- package/dist/types/executor/agentLoop.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/call/callLLMStage.d.ts.map +1 -1
- package/dist/types/lib/call/helpers.d.ts +45 -1
- package/dist/types/lib/call/helpers.d.ts.map +1 -1
- package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -1
- package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -1
- package/dist/types/lib/call/toolExecutionSubflow.d.ts +12 -0
- package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -1
- package/dist/types/lib/concepts/Agent.d.ts +1 -1
- package/dist/types/lib/concepts/Agent.d.ts.map +1 -1
- package/dist/types/lib/concepts/AgentBuilder.d.ts +90 -0
- package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -1
- package/dist/types/lib/concepts/AgentRunner.d.ts +19 -0
- package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -1
- package/dist/types/lib/concepts/index.d.ts +1 -1
- package/dist/types/lib/concepts/index.d.ts.map +1 -1
- package/dist/types/lib/instructions/InstructionRecorder.d.ts +3 -2
- package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -1
- package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -1
- package/dist/types/lib/loop/types.d.ts +38 -0
- package/dist/types/lib/loop/types.d.ts.map +1 -1
- package/dist/types/lib/narrative/agentRenderer.d.ts +7 -2
- package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -1
- package/dist/types/observe.barrel.d.ts +1 -0
- package/dist/types/observe.barrel.d.ts.map +1 -1
- package/dist/types/providers.barrel.d.ts +1 -1
- package/dist/types/providers.barrel.d.ts.map +1 -1
- package/dist/types/recorders/CostRecorder.d.ts +17 -13
- package/dist/types/recorders/CostRecorder.d.ts.map +1 -1
- package/dist/types/recorders/ExplainRecorder.d.ts +3 -0
- package/dist/types/recorders/ExplainRecorder.d.ts.map +1 -1
- package/dist/types/recorders/RecorderBridge.d.ts +7 -3
- package/dist/types/recorders/RecorderBridge.d.ts.map +1 -1
- package/dist/types/recorders/TokenRecorder.d.ts +17 -18
- package/dist/types/recorders/TokenRecorder.d.ts.map +1 -1
- package/dist/types/recorders/ToolUsageRecorder.d.ts +15 -11
- package/dist/types/recorders/ToolUsageRecorder.d.ts.map +1 -1
- package/dist/types/scope/types.d.ts +7 -0
- package/dist/types/scope/types.d.ts.map +1 -1
- package/dist/types/streaming/StreamEmitter.d.ts +9 -0
- package/dist/types/streaming/StreamEmitter.d.ts.map +1 -1
- package/dist/types/types/agent.d.ts +7 -0
- package/dist/types/types/agent.d.ts.map +1 -1
- package/dist/types/types/multiAgent.d.ts +7 -0
- package/dist/types/types/multiAgent.d.ts.map +1 -1
- package/dist/types/types/tools.d.ts +19 -3
- package/dist/types/types/tools.d.ts.map +1 -1
- package/package.json +4 -5
|
@@ -217,6 +217,22 @@ export interface AgentLoopConfig {
|
|
|
217
217
|
readonly streaming?: boolean;
|
|
218
218
|
/** Structured output format — passed to LLM provider as responseFormat option. */
|
|
219
219
|
readonly responseFormat?: ResponseFormat;
|
|
220
|
+
/**
|
|
221
|
+
* Run multiple tool calls within a single turn concurrently via Promise.all.
|
|
222
|
+
* Results are appended in the order the LLM requested them. Default: false.
|
|
223
|
+
* Only beneficial when the LLM requests 2+ independent tool calls in a turn.
|
|
224
|
+
*/
|
|
225
|
+
readonly parallelTools?: boolean;
|
|
226
|
+
/**
|
|
227
|
+
* After this many consecutive identical (name, args) tool-call failures, the
|
|
228
|
+
* library injects a one-shot `escalation` field into the tool result content
|
|
229
|
+
* telling the LLM to change arguments, switch tools, or finalize. Fires
|
|
230
|
+
* exactly once per (name, args) key per conversation.
|
|
231
|
+
*
|
|
232
|
+
* Defaults to `REPEATED_FAILURE_ESCALATION_THRESHOLD` (3). Pass `0` (or any
|
|
233
|
+
* non-positive number) to disable.
|
|
234
|
+
*/
|
|
235
|
+
readonly maxIdenticalFailures?: number;
|
|
220
236
|
/**
|
|
221
237
|
* Custom routing strategy — replaces the default RouteResponse decider.
|
|
222
238
|
*
|
|
@@ -229,6 +245,28 @@ export interface AgentLoopConfig {
|
|
|
229
245
|
* @internal Consumers use Agent/Swarm builders, not this field directly.
|
|
230
246
|
*/
|
|
231
247
|
readonly routing?: RoutingConfig;
|
|
248
|
+
/**
|
|
249
|
+
* User-defined routing branches prepended to the default `tool-calls | final` routing.
|
|
250
|
+
*
|
|
251
|
+
* Each extension's `when` predicate is evaluated (in order) before the default
|
|
252
|
+
* decider logic. If none match, the default routing applies. If the runner
|
|
253
|
+
* exposes `.toFlowChart()`, the branch is mounted as a subflow; otherwise the
|
|
254
|
+
* runner is wrapped as a stage function.
|
|
255
|
+
*
|
|
256
|
+
* Ignored when `routing` is also set (Swarm path).
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```ts
|
|
260
|
+
* routeExtensions: [
|
|
261
|
+
* { id: 'escalate', when: (s) => s.parsedResponse.content.includes('[ESCALATE]'), runner: humanAgent },
|
|
262
|
+
* ]
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
265
|
+
readonly routeExtensions?: readonly {
|
|
266
|
+
readonly id?: string;
|
|
267
|
+
readonly when: (scope: any) => boolean;
|
|
268
|
+
readonly runner: import('../../types/multiAgent').RunnerLike;
|
|
269
|
+
}[];
|
|
232
270
|
}
|
|
233
271
|
/**
|
|
234
272
|
* Options for seeding the loop with initial state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/loop/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/loop/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI/D;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,CAChB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,IAAI,EACnB,QAAQ,CAAC,EAAE,OAAO,KACf,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B;2EACuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C;6EACyE;IACzE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,oBAAY,YAAY;IACtB;;;;;;;;;;;;;OAaG;IACH,OAAO,YAAY;IAEnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAE/B,uCAAuC;IACvC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAE9C,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IAEtC,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAErC,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEhC;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAEtF,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAEzD;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7D;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD,iEAAiE;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAEjD,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B,kFAAkF;IAClF,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEzC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAEvC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAEjC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS;QAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;QACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,UAAU,CAAC;KAC9D,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent
|
|
2
|
+
* Agent NarrativeFormatter — LLM-optimized narrative for agent loop execution.
|
|
3
3
|
*
|
|
4
4
|
* Designed for LLM follow-up reasoning: the narrative answers "what happened?"
|
|
5
5
|
* so a downstream LLM can ask informed questions about the agent's execution.
|
|
@@ -30,7 +30,12 @@ export interface AgentRendererOptions {
|
|
|
30
30
|
verbose?: boolean;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Create an agent-optimized
|
|
33
|
+
* Create an agent-optimized narrative formatter.
|
|
34
|
+
*
|
|
35
|
+
* Returns the `NarrativeRenderer` type (structurally identical to
|
|
36
|
+
* footprintjs's new `NarrativeFormatter`). Once a newer footprintjs
|
|
37
|
+
* release is consumed here, migrate the return type to
|
|
38
|
+
* `NarrativeFormatter` — no behavioural change.
|
|
34
39
|
*
|
|
35
40
|
* Usage:
|
|
36
41
|
* ```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentRenderer.d.ts","sourceRoot":"","sources":["../../../../src/lib/narrative/agentRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"agentRenderer.d.ts","sourceRoot":"","sources":["../../../../src/lib/narrative/agentRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH,OAAO,KAAK,EACV,iBAAiB,EAWlB,MAAM,uBAAuB,CAAC;AA6E/B,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmKD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,iBAAiB,CAwJrF"}
|
|
@@ -18,4 +18,5 @@ export { OTelRecorder } from './recorders/OTelRecorder';
|
|
|
18
18
|
export type { OTelTracer, OTelRecorderOptions } from './recorders/OTelRecorder';
|
|
19
19
|
export type { TokenStats, LLMCallEntry, CostEntry, CostRecorderOptions, TurnEntry, ToolUsageStats, ToolStats, QualityScore, QualityJudge, Violation, GuardrailCheck, PermissionEvent, AgentObservabilityOptions, AgentObservabilityRecorder, } from './recorders';
|
|
20
20
|
export type { AgentRecorder } from './core';
|
|
21
|
+
export { ExplainRecorder } from './recorders/ExplainRecorder';
|
|
21
22
|
//# sourceMappingURL=observe.barrel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.barrel.d.ts","sourceRoot":"","sources":["../../src/observe.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,YAAY,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"observe.barrel.d.ts","sourceRoot":"","sources":["../../src/observe.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,YAAY,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -25,7 +25,7 @@ export { mcpToolProvider, a2aRunner } from './adapters';
|
|
|
25
25
|
export type { MCPClient, MCPToolProviderOptions, A2AClient, A2ARunnerOptions } from './adapters';
|
|
26
26
|
export type { LLMProvider, LLMCallOptions, LLMResponse, LLMStreamChunk, TokenUsage } from './types';
|
|
27
27
|
export type { PromptProvider, PromptContext, ToolProvider, ToolContext, ToolExecutionResult, } from './core';
|
|
28
|
-
export { agentAsTool, compositeTools, gatedTools } from './providers';
|
|
28
|
+
export { agentAsTool, compositeTools, gatedTools, staticTools, noTools } from './providers';
|
|
29
29
|
export type { AgentAsToolConfig } from './providers';
|
|
30
30
|
export { staticPrompt, templatePrompt, skillBasedPrompt, compositePrompt } from './providers';
|
|
31
31
|
export type { Skill, SkillBasedPromptOptions, CompositePromptOptions } from './providers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.barrel.d.ts","sourceRoot":"","sources":["../../src/providers.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpG,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,mBAAmB,GACpB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.barrel.d.ts","sourceRoot":"","sources":["../../src/providers.barrel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpG,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,mBAAmB,GACpB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9F,YAAY,EAAE,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1F,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CostRecorder
|
|
2
|
+
* CostRecorder — calculates USD cost from AgentRecorder LLM call events.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* receives structured LLMCallEvent objects from the core loop.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const cost = new CostRecorder({ pricingTable: { 'claude-sonnet': { input: 3, output: 15 } } });
|
|
9
|
-
* agent.recorder(cost);
|
|
10
|
-
* await agent.run(...);
|
|
11
|
-
* console.log(`$${cost.getTotalCost().toFixed(4)}`);
|
|
4
|
+
* Extends KeyedRecorder<CostEntry> — Map keyed by runtimeStageId.
|
|
12
5
|
*/
|
|
6
|
+
import { KeyedRecorder } from 'footprintjs/trace';
|
|
13
7
|
import type { AgentRecorder, LLMCallEvent } from '../core';
|
|
14
8
|
import type { ModelPricing } from '../models/types';
|
|
15
9
|
export type { ModelPricing } from '../models/types';
|
|
@@ -20,20 +14,30 @@ export interface CostEntry {
|
|
|
20
14
|
readonly inputCost: number;
|
|
21
15
|
readonly outputCost: number;
|
|
22
16
|
readonly totalCost: number;
|
|
17
|
+
readonly runtimeStageId: string;
|
|
23
18
|
}
|
|
24
19
|
export interface CostRecorderOptions {
|
|
25
20
|
readonly id?: string;
|
|
26
|
-
/** Pricing per model (per 1M tokens). Models not in this table get $0 cost. */
|
|
27
21
|
readonly pricingTable?: Record<string, ModelPricing>;
|
|
28
22
|
}
|
|
29
|
-
export declare class CostRecorder implements AgentRecorder {
|
|
23
|
+
export declare class CostRecorder extends KeyedRecorder<CostEntry> implements AgentRecorder {
|
|
30
24
|
readonly id: string;
|
|
31
|
-
private entries;
|
|
32
25
|
private pricingTable;
|
|
33
26
|
constructor(options?: CostRecorderOptions);
|
|
34
27
|
onLLMCall(event: LLMCallEvent): void;
|
|
35
28
|
getTotalCost(): number;
|
|
36
29
|
getEntries(): CostEntry[];
|
|
37
|
-
|
|
30
|
+
toSnapshot(): {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
preferredOperation: "accumulate";
|
|
34
|
+
data: {
|
|
35
|
+
numericField: string;
|
|
36
|
+
grandTotal: number;
|
|
37
|
+
steps: {
|
|
38
|
+
[k: string]: CostEntry;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
38
42
|
}
|
|
39
43
|
//# sourceMappingURL=CostRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CostRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/CostRecorder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CostRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/CostRecorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtD;AAED,qBAAa,YAAa,SAAQ,aAAa,CAAC,SAAS,CAAE,YAAW,aAAa;IACjF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,YAAY,CAA+B;gBAEvC,OAAO,GAAE,mBAAwB;IAM7C,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAoBpC,YAAY,IAAI,MAAM;IAItB,UAAU,IAAI,SAAS,EAAE;IAIzB,UAAU;;;;;;;;;;;;CAYX"}
|
|
@@ -62,6 +62,8 @@ export interface LLMContext {
|
|
|
62
62
|
export interface EvalIteration {
|
|
63
63
|
/** Loop iteration number (0-based). */
|
|
64
64
|
readonly iteration: number;
|
|
65
|
+
/** Unique execution step identifier for this LLM call. */
|
|
66
|
+
readonly runtimeStageId?: string;
|
|
65
67
|
/** What the LLM had THIS iteration (context changes each loop — messages grow). */
|
|
66
68
|
readonly context: LLMContext;
|
|
67
69
|
/** Tool calls the LLM chose to make (empty if final response). */
|
|
@@ -93,6 +95,7 @@ export declare class ExplainRecorder implements AgentRecorder {
|
|
|
93
95
|
private currentTurn;
|
|
94
96
|
private input?;
|
|
95
97
|
private currentIteration;
|
|
98
|
+
private currentRuntimeStageId?;
|
|
96
99
|
private currentContext;
|
|
97
100
|
constructor(id?: string);
|
|
98
101
|
onTurnStart(event: TurnStartEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExplainRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/ExplainRecorder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExplainRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/ExplainRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,15 @@ export declare class RecorderBridge {
|
|
|
14
14
|
private readonly recorders;
|
|
15
15
|
private turnNumber;
|
|
16
16
|
private loopIteration;
|
|
17
|
+
private _toolRuntimeStageId;
|
|
18
|
+
/** Set by the LLM capture recorder's onStageStart — tracks current stage's runtimeStageId. */
|
|
19
|
+
setToolRuntimeStageId(id: string): void;
|
|
17
20
|
constructor(recorders: AgentRecorder[]);
|
|
18
21
|
/** Dispatch turn start event. */
|
|
19
22
|
dispatchTurnStart(message: string): void;
|
|
20
23
|
/** Dispatch LLM call event from the adapter response stored in scope. */
|
|
21
|
-
dispatchLLMCall(response: LLMResponse, latencyMs
|
|
24
|
+
dispatchLLMCall(response: LLMResponse, latencyMs: number, context: {
|
|
25
|
+
runtimeStageId: string;
|
|
22
26
|
systemPrompt?: string;
|
|
23
27
|
toolDescriptions?: Array<{
|
|
24
28
|
name: string;
|
|
@@ -31,11 +35,11 @@ export declare class RecorderBridge {
|
|
|
31
35
|
}): void;
|
|
32
36
|
/** Dispatch turn complete event. */
|
|
33
37
|
dispatchTurnComplete(content: string, messageCount: number, totalLoopIterations?: number): void;
|
|
34
|
-
/** Dispatch tool call event
|
|
38
|
+
/** Dispatch tool call event. */
|
|
35
39
|
dispatchToolCall(toolName: string, args: Record<string, unknown>, result: {
|
|
36
40
|
content: string;
|
|
37
41
|
error?: boolean;
|
|
38
|
-
}, latencyMs: number): void;
|
|
42
|
+
}, latencyMs: number, runtimeStageId: string): void;
|
|
39
43
|
/**
|
|
40
44
|
* Create an onStreamEvent handler that bridges tool events to recorders.
|
|
41
45
|
* Attach this alongside the consumer's onEvent handler in AgentRunner.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecorderBridge.d.ts","sourceRoot":"","sources":["../../../src/recorders/RecorderBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;
|
|
1
|
+
{"version":3,"file":"RecorderBridge.d.ts","sourceRoot":"","sources":["../../../src/recorders/RecorderBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,mBAAmB,CAAM;IAEjC,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;gBAI3B,SAAS,EAAE,aAAa,EAAE;IAItC,iCAAiC;IACjC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC,yEAAyE;IACzE,eAAe,CACb,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChE,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACtD,GACA,IAAI;IAiBP,oCAAoC;IACpC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,SAAI,GAAG,IAAI;IAW1F,gCAAgC;IAChC,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAC5C,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,IAAI;IAIP;;;OAGG;IACH,uBAAuB,IAAI,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;IA6B5D,4BAA4B;IAC5B,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIjF,OAAO,CAAC,QAAQ;CAYjB"}
|
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TokenRecorder — tracks token usage and cost across LLM calls.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const tokens = new TokenRecorder();
|
|
9
|
-
* agent.recorder(tokens);
|
|
10
|
-
* await agent.run(...);
|
|
11
|
-
* console.log(tokens.getStats());
|
|
12
|
-
*
|
|
13
|
-
* With pricing:
|
|
14
|
-
* const tokens = new TokenRecorder({ pricing: { 'claude-sonnet-4-20250514': { input: 3, output: 15 } } });
|
|
4
|
+
* Extends KeyedRecorder<LLMCallEntry> — Map keyed by runtimeStageId.
|
|
5
|
+
* No fallbacks. runtimeStageId is always provided by footprintjs.
|
|
15
6
|
*/
|
|
7
|
+
import { KeyedRecorder } from 'footprintjs/trace';
|
|
16
8
|
import type { AgentRecorder, LLMCallEvent } from '../core';
|
|
17
9
|
import type { ModelPricing } from '../models/types';
|
|
18
10
|
export interface TokenRecorderOptions {
|
|
19
|
-
/** Recorder ID. Default: 'token-recorder'. */
|
|
20
11
|
id?: string;
|
|
21
|
-
/** Pricing table (per 1M tokens, USD). Models not listed get $0. */
|
|
22
12
|
pricing?: Record<string, ModelPricing>;
|
|
23
13
|
}
|
|
24
14
|
export interface TokenStats {
|
|
@@ -27,7 +17,6 @@ export interface TokenStats {
|
|
|
27
17
|
readonly totalOutputTokens: number;
|
|
28
18
|
readonly totalLatencyMs: number;
|
|
29
19
|
readonly averageLatencyMs: number;
|
|
30
|
-
/** Total estimated cost in USD. 0 if no pricing table provided. */
|
|
31
20
|
readonly totalCost: number;
|
|
32
21
|
readonly calls: LLMCallEntry[];
|
|
33
22
|
}
|
|
@@ -38,17 +27,27 @@ export interface LLMCallEntry {
|
|
|
38
27
|
readonly latencyMs: number;
|
|
39
28
|
readonly turnNumber: number;
|
|
40
29
|
readonly loopIteration: number;
|
|
41
|
-
/** Estimated cost in USD for this call. 0 if model not in pricing table. */
|
|
42
30
|
readonly cost: number;
|
|
31
|
+
readonly runtimeStageId: string;
|
|
43
32
|
}
|
|
44
|
-
export declare class TokenRecorder implements AgentRecorder {
|
|
33
|
+
export declare class TokenRecorder extends KeyedRecorder<LLMCallEntry> implements AgentRecorder {
|
|
45
34
|
readonly id: string;
|
|
46
|
-
private calls;
|
|
47
35
|
private readonly pricing;
|
|
48
36
|
constructor(options?: TokenRecorderOptions | string);
|
|
49
37
|
onLLMCall(event: LLMCallEvent): void;
|
|
50
38
|
getStats(): TokenStats;
|
|
51
39
|
getTotalTokens(): number;
|
|
52
|
-
|
|
40
|
+
toSnapshot(): {
|
|
41
|
+
name: string;
|
|
42
|
+
description: string;
|
|
43
|
+
preferredOperation: "aggregate";
|
|
44
|
+
data: {
|
|
45
|
+
numericField: string;
|
|
46
|
+
grandTotal: number;
|
|
47
|
+
steps: {
|
|
48
|
+
[k: string]: LLMCallEntry;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
53
52
|
}
|
|
54
53
|
//# sourceMappingURL=TokenRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/TokenRecorder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TokenRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/TokenRecorder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,aAAc,SAAQ,aAAa,CAAC,YAAY,CAAE,YAAW,aAAa;IACrF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM;IAWnD,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAqBpC,QAAQ,IAAI,UAAU;IAmBtB,cAAc,IAAI,MAAM;IAIxB,UAAU;;;;;;;;;;;;CAYX"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ToolUsageRecorder — tracks which tools are called, how often, and latency.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* which are slow, and which are erroring.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const toolUsage = new ToolUsageRecorder();
|
|
9
|
-
* agent.recorder(toolUsage);
|
|
10
|
-
* await agent.run(...);
|
|
11
|
-
* console.log(toolUsage.getStats());
|
|
4
|
+
* Extends KeyedRecorder<ToolCallEvent> — Map keyed by runtimeStageId.
|
|
12
5
|
*/
|
|
6
|
+
import { KeyedRecorder } from 'footprintjs/trace';
|
|
13
7
|
import type { AgentRecorder, ToolCallEvent } from '../core';
|
|
14
8
|
export interface ToolUsageStats {
|
|
15
9
|
readonly totalCalls: number;
|
|
@@ -22,13 +16,23 @@ export interface ToolStats {
|
|
|
22
16
|
readonly totalLatencyMs: number;
|
|
23
17
|
readonly averageLatencyMs: number;
|
|
24
18
|
}
|
|
25
|
-
export declare class ToolUsageRecorder implements AgentRecorder {
|
|
19
|
+
export declare class ToolUsageRecorder extends KeyedRecorder<ToolCallEvent> implements AgentRecorder {
|
|
26
20
|
readonly id: string;
|
|
27
|
-
private toolCalls;
|
|
28
21
|
constructor(id?: string);
|
|
29
22
|
onToolCall(event: ToolCallEvent): void;
|
|
30
23
|
getStats(): ToolUsageStats;
|
|
31
24
|
getToolNames(): string[];
|
|
32
|
-
|
|
25
|
+
toSnapshot(): {
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
preferredOperation: "translate";
|
|
29
|
+
data: {
|
|
30
|
+
numericField: string;
|
|
31
|
+
grandTotal: number;
|
|
32
|
+
steps: {
|
|
33
|
+
[k: string]: ToolCallEvent;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
33
37
|
}
|
|
34
38
|
//# sourceMappingURL=ToolUsageRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolUsageRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/ToolUsageRecorder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ToolUsageRecorder.d.ts","sourceRoot":"","sources":["../../../src/recorders/ToolUsageRecorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,aAAa,CAAE,YAAW,aAAa;IAC1F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAER,EAAE,SAAwB;IAKtC,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAItC,QAAQ,IAAI,cAAc;IA8B1B,YAAY,IAAI,MAAM,EAAE;IAIxB,UAAU;;;;;;;;;;;;CAYX"}
|
|
@@ -66,6 +66,13 @@ export interface AgentLoopState {
|
|
|
66
66
|
maxIterations: number;
|
|
67
67
|
/** Final answer text (set when turn finalizes). */
|
|
68
68
|
result: string;
|
|
69
|
+
/**
|
|
70
|
+
* Set by Finalize when the turn ended because `loopCount >= maxIterations`
|
|
71
|
+
* (safeDecider force-routed to the default branch), rather than because the
|
|
72
|
+
* LLM chose to stop. Consumers use it to render a distinct "agent gave up"
|
|
73
|
+
* state instead of an ambiguous empty response.
|
|
74
|
+
*/
|
|
75
|
+
maxIterationsReached?: boolean;
|
|
69
76
|
/** Prepared messages after strategy applied (Messages slot output). */
|
|
70
77
|
memory_preparedMessages: Message[];
|
|
71
78
|
/** Raw history loaded from ConversationStore. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scope/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;;GAIG;AACH,oBAAY,aAAa;IAEvB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,SAAS,cAAc;IAGvB,kBAAkB,uBAAuB;IAGzC,QAAQ,aAAa;IACrB,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,4EAA4E;IAC5E,aAAa,EAAE,aAAa,CAAC;IAC7B,sCAAsC;IACtC,kBAAkB,EAAE,WAAW,CAAC;IAChC,wCAAwC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scope/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,15 @@ export type AgentStreamEvent = {
|
|
|
56
56
|
content: string;
|
|
57
57
|
iterations: number;
|
|
58
58
|
paused?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Why the turn ended. Absent when the LLM chose to stop normally.
|
|
61
|
+
* - 'maxIterations': safeDecider force-finalized at the iteration cap.
|
|
62
|
+
* - 'paused': the agent paused for human input (ask_human). Paired
|
|
63
|
+
* with `paused: true`; the `reason` variant lets
|
|
64
|
+
* consumers switch on a single field instead of two.
|
|
65
|
+
* Future reasons can be added without breaking consumers (optional field).
|
|
66
|
+
*/
|
|
67
|
+
reason?: 'maxIterations' | 'paused';
|
|
59
68
|
} | {
|
|
60
69
|
type: 'error';
|
|
61
70
|
phase: AgentPhase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamEmitter.d.ts","sourceRoot":"","sources":["../../../src/streaming/StreamEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3F;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;
|
|
1
|
+
{"version":3,"file":"StreamEmitter.d.ts","sourceRoot":"","sources":["../../../src/streaming/StreamEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3F;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;CACrC,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAExE;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAiC;IAEjD,EAAE,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAOhD,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;CASpC;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAI9C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM;CAGrD;AAGD,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC3C,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,CAAC"}
|
|
@@ -25,6 +25,13 @@ export interface AgentResult {
|
|
|
25
25
|
question: string;
|
|
26
26
|
toolCallId: string;
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* True when the turn ended because the agent hit its iteration cap
|
|
30
|
+
* (safeDecider force-routed to Finalize). The LLM did not choose to stop —
|
|
31
|
+
* it was cut off. Render a distinct state so users understand the loop
|
|
32
|
+
* didn't complete normally.
|
|
33
|
+
*/
|
|
34
|
+
readonly maxIterationsReached?: boolean;
|
|
28
35
|
}
|
|
29
36
|
export interface AgentRunOptions {
|
|
30
37
|
/** User message to send. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -53,5 +53,12 @@ export interface TraversalResult {
|
|
|
53
53
|
readonly agents: AgentResultEntry[];
|
|
54
54
|
/** Total traversal execution time. */
|
|
55
55
|
readonly totalLatencyMs: number;
|
|
56
|
+
/**
|
|
57
|
+
* True when the traversal ended because `loopCount >= maxIterations` in the
|
|
58
|
+
* underlying agent loop (set by `safeDecider`), rather than because the LLM
|
|
59
|
+
* chose to stop. Surfaced uniformly across Swarm / Pipeline / custom runners
|
|
60
|
+
* so consumers can render a distinct "agent gave up" state.
|
|
61
|
+
*/
|
|
62
|
+
readonly maxIterationsReached?: boolean;
|
|
56
63
|
}
|
|
57
64
|
//# sourceMappingURL=multiAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiAgent.d.ts","sourceRoot":"","sources":["../../../src/types/multiAgent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CACD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,IAAI,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpC,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"multiAgent.d.ts","sourceRoot":"","sources":["../../../src/types/multiAgent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CACD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,IAAI,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpC,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC"}
|
|
@@ -6,12 +6,28 @@ export interface ToolDefinition {
|
|
|
6
6
|
readonly id: string;
|
|
7
7
|
/** Human-readable description (sent to LLM). */
|
|
8
8
|
readonly description: string;
|
|
9
|
-
/** JSON Schema for tool input. */
|
|
9
|
+
/** JSON Schema for tool input (plain object or Zod schema). */
|
|
10
10
|
readonly inputSchema: Record<string, unknown>;
|
|
11
|
-
/** Handler function.
|
|
11
|
+
/** Handler function. Receives parsed LLM arguments. */
|
|
12
12
|
readonly handler: ToolHandler;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Tool handler function.
|
|
16
|
+
*
|
|
17
|
+
* Input is typed as `any` to allow destructured typed parameters
|
|
18
|
+
* in tool definitions. The runtime input is always a parsed JSON object
|
|
19
|
+
* from the LLM's tool call arguments.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Destructure directly — the common pattern:
|
|
24
|
+
* handler: async ({ query }: { query: string }) => ({ content: `Results for: ${query}` })
|
|
25
|
+
*
|
|
26
|
+
* // Or use the raw input:
|
|
27
|
+
* handler: async (input) => ({ content: `${input.query}` })
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export type ToolHandler = (input: any) => Promise<ToolResult> | ToolResult;
|
|
15
31
|
export interface ToolResult {
|
|
16
32
|
readonly content: string;
|
|
17
33
|
readonly error?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentfootprint",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "The explainable agent framework — build AI agents you can explain, audit, and trust. Built on footprintjs.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Sanjay Krishna Anbalagan",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"build": "tsc && tsc -p tsconfig.esm.json",
|
|
53
53
|
"watch": "tsc -w",
|
|
54
54
|
"test": "vitest run",
|
|
55
|
+
"test:examples": "tsc -p examples/tsconfig.json",
|
|
55
56
|
"test:watch": "vitest --watch",
|
|
56
57
|
"lint": "eslint 'src/**/*.ts' 'test/**/*.ts' --ext .ts",
|
|
57
58
|
"lint:fix": "eslint 'src/**/*.ts' 'test/**/*.ts' --ext .ts --fix",
|
|
@@ -144,10 +145,8 @@
|
|
|
144
145
|
}
|
|
145
146
|
},
|
|
146
147
|
"sideEffects": false,
|
|
147
|
-
"dependencies": {
|
|
148
|
-
"footprintjs": ">=4.4.1"
|
|
149
|
-
},
|
|
150
148
|
"peerDependencies": {
|
|
149
|
+
"footprintjs": ">=4.13.0",
|
|
151
150
|
"@anthropic-ai/sdk": ">=0.30.0",
|
|
152
151
|
"@aws-sdk/client-bedrock-runtime": ">=3.0.0",
|
|
153
152
|
"openai": ">=4.0.0"
|
|
@@ -169,7 +168,7 @@
|
|
|
169
168
|
"@typescript-eslint/parser": "^5.61.0",
|
|
170
169
|
"eslint": "^8.44.0",
|
|
171
170
|
"eslint-config-prettier": "^6.15.0",
|
|
172
|
-
"footprintjs": "^4.
|
|
171
|
+
"footprintjs": "^4.13.0",
|
|
173
172
|
"prettier": "^2.8.1",
|
|
174
173
|
"typescript": "~5.4.5",
|
|
175
174
|
"vitest": "^4.0.18",
|