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.
Files changed (159) hide show
  1. package/AGENTS.md +12 -32
  2. package/CLAUDE.md +20 -30
  3. package/README.md +1 -1
  4. package/dist/adapters/anthropic/AnthropicAdapter.js +9 -10
  5. package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -1
  6. package/dist/adapters/browser/BrowserAnthropicAdapter.js +26 -8
  7. package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
  8. package/dist/concepts/LLMCall.js +6 -0
  9. package/dist/concepts/LLMCall.js.map +1 -1
  10. package/dist/concepts/RAG.js +7 -1
  11. package/dist/concepts/RAG.js.map +1 -1
  12. package/dist/concepts/Swarm.js +1 -0
  13. package/dist/concepts/Swarm.js.map +1 -1
  14. package/dist/esm/adapters/anthropic/AnthropicAdapter.js +9 -10
  15. package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -1
  16. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +26 -8
  17. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
  18. package/dist/esm/concepts/LLMCall.js +6 -0
  19. package/dist/esm/concepts/LLMCall.js.map +1 -1
  20. package/dist/esm/concepts/RAG.js +7 -1
  21. package/dist/esm/concepts/RAG.js.map +1 -1
  22. package/dist/esm/concepts/Swarm.js +1 -0
  23. package/dist/esm/concepts/Swarm.js.map +1 -1
  24. package/dist/esm/executor/agentLoop.js +4 -0
  25. package/dist/esm/executor/agentLoop.js.map +1 -1
  26. package/dist/esm/index.js +6 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/lib/call/callLLMStage.js +41 -0
  29. package/dist/esm/lib/call/callLLMStage.js.map +1 -1
  30. package/dist/esm/lib/call/helpers.js +361 -3
  31. package/dist/esm/lib/call/helpers.js.map +1 -1
  32. package/dist/esm/lib/call/parseResponseStage.js +12 -3
  33. package/dist/esm/lib/call/parseResponseStage.js.map +1 -1
  34. package/dist/esm/lib/call/streamingCallLLMStage.js +42 -0
  35. package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -1
  36. package/dist/esm/lib/call/toolExecutionSubflow.js +5 -2
  37. package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -1
  38. package/dist/esm/lib/concepts/AgentBuilder.js +83 -0
  39. package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -1
  40. package/dist/esm/lib/concepts/AgentRunner.js +77 -63
  41. package/dist/esm/lib/concepts/AgentRunner.js.map +1 -1
  42. package/dist/esm/lib/instructions/InstructionRecorder.js +6 -2
  43. package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -1
  44. package/dist/esm/lib/loop/buildAgentLoop.js +132 -4
  45. package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -1
  46. package/dist/esm/lib/narrative/agentRenderer.js +79 -14
  47. package/dist/esm/lib/narrative/agentRenderer.js.map +1 -1
  48. package/dist/esm/observe.barrel.js +2 -0
  49. package/dist/esm/observe.barrel.js.map +1 -1
  50. package/dist/esm/providers.barrel.js +1 -1
  51. package/dist/esm/providers.barrel.js.map +1 -1
  52. package/dist/esm/recorders/CostRecorder.js +20 -16
  53. package/dist/esm/recorders/CostRecorder.js.map +1 -1
  54. package/dist/esm/recorders/ExplainRecorder.js +4 -0
  55. package/dist/esm/recorders/ExplainRecorder.js.map +1 -1
  56. package/dist/esm/recorders/RecorderBridge.js +11 -5
  57. package/dist/esm/recorders/RecorderBridge.js.map +1 -1
  58. package/dist/esm/recorders/TokenRecorder.js +26 -24
  59. package/dist/esm/recorders/TokenRecorder.js.map +1 -1
  60. package/dist/esm/recorders/ToolUsageRecorder.js +21 -17
  61. package/dist/esm/recorders/ToolUsageRecorder.js.map +1 -1
  62. package/dist/esm/streaming/StreamEmitter.js.map +1 -1
  63. package/dist/executor/agentLoop.js +4 -0
  64. package/dist/executor/agentLoop.js.map +1 -1
  65. package/dist/index.js +15 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib/call/callLLMStage.js +41 -0
  68. package/dist/lib/call/callLLMStage.js.map +1 -1
  69. package/dist/lib/call/helpers.js +364 -4
  70. package/dist/lib/call/helpers.js.map +1 -1
  71. package/dist/lib/call/parseResponseStage.js +12 -3
  72. package/dist/lib/call/parseResponseStage.js.map +1 -1
  73. package/dist/lib/call/streamingCallLLMStage.js +42 -0
  74. package/dist/lib/call/streamingCallLLMStage.js.map +1 -1
  75. package/dist/lib/call/toolExecutionSubflow.js +5 -2
  76. package/dist/lib/call/toolExecutionSubflow.js.map +1 -1
  77. package/dist/lib/concepts/AgentBuilder.js +83 -0
  78. package/dist/lib/concepts/AgentBuilder.js.map +1 -1
  79. package/dist/lib/concepts/AgentRunner.js +77 -63
  80. package/dist/lib/concepts/AgentRunner.js.map +1 -1
  81. package/dist/lib/instructions/InstructionRecorder.js +6 -2
  82. package/dist/lib/instructions/InstructionRecorder.js.map +1 -1
  83. package/dist/lib/loop/buildAgentLoop.js +132 -4
  84. package/dist/lib/loop/buildAgentLoop.js.map +1 -1
  85. package/dist/lib/narrative/agentRenderer.js +79 -14
  86. package/dist/lib/narrative/agentRenderer.js.map +1 -1
  87. package/dist/observe.barrel.js +4 -1
  88. package/dist/observe.barrel.js.map +1 -1
  89. package/dist/providers.barrel.js +3 -1
  90. package/dist/providers.barrel.js.map +1 -1
  91. package/dist/recorders/CostRecorder.js +20 -16
  92. package/dist/recorders/CostRecorder.js.map +1 -1
  93. package/dist/recorders/ExplainRecorder.js +4 -0
  94. package/dist/recorders/ExplainRecorder.js.map +1 -1
  95. package/dist/recorders/RecorderBridge.js +11 -5
  96. package/dist/recorders/RecorderBridge.js.map +1 -1
  97. package/dist/recorders/TokenRecorder.js +26 -24
  98. package/dist/recorders/TokenRecorder.js.map +1 -1
  99. package/dist/recorders/ToolUsageRecorder.js +21 -17
  100. package/dist/recorders/ToolUsageRecorder.js.map +1 -1
  101. package/dist/streaming/StreamEmitter.js.map +1 -1
  102. package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -1
  103. package/dist/types/concepts/LLMCall.d.ts.map +1 -1
  104. package/dist/types/concepts/RAG.d.ts.map +1 -1
  105. package/dist/types/concepts/Swarm.d.ts.map +1 -1
  106. package/dist/types/concepts/index.d.ts +1 -1
  107. package/dist/types/concepts/index.d.ts.map +1 -1
  108. package/dist/types/core/recorders.d.ts +4 -0
  109. package/dist/types/core/recorders.d.ts.map +1 -1
  110. package/dist/types/executor/agentLoop.d.ts.map +1 -1
  111. package/dist/types/index.d.ts +6 -0
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/dist/types/lib/call/callLLMStage.d.ts.map +1 -1
  114. package/dist/types/lib/call/helpers.d.ts +45 -1
  115. package/dist/types/lib/call/helpers.d.ts.map +1 -1
  116. package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -1
  117. package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -1
  118. package/dist/types/lib/call/toolExecutionSubflow.d.ts +12 -0
  119. package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -1
  120. package/dist/types/lib/concepts/Agent.d.ts +1 -1
  121. package/dist/types/lib/concepts/Agent.d.ts.map +1 -1
  122. package/dist/types/lib/concepts/AgentBuilder.d.ts +90 -0
  123. package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -1
  124. package/dist/types/lib/concepts/AgentRunner.d.ts +19 -0
  125. package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -1
  126. package/dist/types/lib/concepts/index.d.ts +1 -1
  127. package/dist/types/lib/concepts/index.d.ts.map +1 -1
  128. package/dist/types/lib/instructions/InstructionRecorder.d.ts +3 -2
  129. package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -1
  130. package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -1
  131. package/dist/types/lib/loop/types.d.ts +38 -0
  132. package/dist/types/lib/loop/types.d.ts.map +1 -1
  133. package/dist/types/lib/narrative/agentRenderer.d.ts +7 -2
  134. package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -1
  135. package/dist/types/observe.barrel.d.ts +1 -0
  136. package/dist/types/observe.barrel.d.ts.map +1 -1
  137. package/dist/types/providers.barrel.d.ts +1 -1
  138. package/dist/types/providers.barrel.d.ts.map +1 -1
  139. package/dist/types/recorders/CostRecorder.d.ts +17 -13
  140. package/dist/types/recorders/CostRecorder.d.ts.map +1 -1
  141. package/dist/types/recorders/ExplainRecorder.d.ts +3 -0
  142. package/dist/types/recorders/ExplainRecorder.d.ts.map +1 -1
  143. package/dist/types/recorders/RecorderBridge.d.ts +7 -3
  144. package/dist/types/recorders/RecorderBridge.d.ts.map +1 -1
  145. package/dist/types/recorders/TokenRecorder.d.ts +17 -18
  146. package/dist/types/recorders/TokenRecorder.d.ts.map +1 -1
  147. package/dist/types/recorders/ToolUsageRecorder.d.ts +15 -11
  148. package/dist/types/recorders/ToolUsageRecorder.d.ts.map +1 -1
  149. package/dist/types/scope/types.d.ts +7 -0
  150. package/dist/types/scope/types.d.ts.map +1 -1
  151. package/dist/types/streaming/StreamEmitter.d.ts +9 -0
  152. package/dist/types/streaming/StreamEmitter.d.ts.map +1 -1
  153. package/dist/types/types/agent.d.ts +7 -0
  154. package/dist/types/types/agent.d.ts.map +1 -1
  155. package/dist/types/types/multiAgent.d.ts +7 -0
  156. package/dist/types/types/multiAgent.d.ts.map +1 -1
  157. package/dist/types/types/tools.d.ts +19 -3
  158. package/dist/types/types/tools.d.ts.map +1 -1
  159. package/package.json +4 -5
@@ -1,27 +1,22 @@
1
1
  /**
2
2
  * ToolUsageRecorder — tracks which tools are called, how often, and latency.
3
3
  *
4
- * Useful for understanding agent behavior: which tools are hot,
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
  */
13
- export class ToolUsageRecorder {
6
+ import { KeyedRecorder } from 'footprintjs/trace';
7
+ export class ToolUsageRecorder extends KeyedRecorder {
14
8
  id;
15
- toolCalls = [];
16
9
  constructor(id = 'tool-usage-recorder') {
10
+ super();
17
11
  this.id = id;
18
12
  }
19
13
  onToolCall(event) {
20
- this.toolCalls.push(event);
14
+ this.store(event.runtimeStageId, event);
21
15
  }
22
16
  getStats() {
17
+ const calls = this.values();
23
18
  const byTool = {};
24
- for (const call of this.toolCalls) {
19
+ for (const call of calls) {
25
20
  if (!byTool[call.toolName]) {
26
21
  byTool[call.toolName] = { calls: 0, errors: 0, totalLatencyMs: 0 };
27
22
  }
@@ -39,16 +34,25 @@ export class ToolUsageRecorder {
39
34
  };
40
35
  }
41
36
  return {
42
- totalCalls: this.toolCalls.length,
43
- totalErrors: this.toolCalls.filter((c) => c.result.error).length,
37
+ totalCalls: calls.length,
38
+ totalErrors: calls.filter((c) => c.result.error).length,
44
39
  byTool: result,
45
40
  };
46
41
  }
47
42
  getToolNames() {
48
- return [...new Set(this.toolCalls.map((c) => c.toolName))];
43
+ return [...new Set(this.values().map((c) => c.toolName))];
49
44
  }
50
- clear() {
51
- this.toolCalls = [];
45
+ toSnapshot() {
46
+ return {
47
+ name: 'Tools',
48
+ description: 'Translator (KeyedRecorder) — per-call tool usage and latency',
49
+ preferredOperation: 'translate',
50
+ data: {
51
+ numericField: 'latencyMs',
52
+ grandTotal: this.aggregate((sum, e) => sum + e.latencyMs, 0),
53
+ steps: Object.fromEntries(this.getMap()),
54
+ },
55
+ };
52
56
  }
53
57
  }
54
58
  //# sourceMappingURL=ToolUsageRecorder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolUsageRecorder.js","sourceRoot":"","sources":["../../../src/recorders/ToolUsageRecorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,MAAM,OAAO,iBAAiB;IACnB,EAAE,CAAS;IACZ,SAAS,GAAoB,EAAE,CAAC;IAExC,YAAY,EAAE,GAAG,qBAAqB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,UAAU,CAAC,KAAoB;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAA8E,EAAE,CAAC;QAE7F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;YACrE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG;gBACb,GAAG,KAAK;gBACR,gBAAgB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACvF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YACjC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;YAChE,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"ToolUsageRecorder.js","sourceRoot":"","sources":["../../../src/recorders/ToolUsageRecorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgBlD,MAAM,OAAO,iBAAkB,SAAQ,aAA4B;IACxD,EAAE,CAAS;IAEpB,YAAY,EAAE,GAAG,qBAAqB;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,UAAU,CAAC,KAAoB;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,MAAM,GAA8E,EAAE,CAAC;QAE7F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;YACrE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG;gBACb,GAAG,KAAK;gBACR,gBAAgB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACvF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;YACvD,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,OAAO;YACL,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,8DAA8D;YAC3E,kBAAkB,EAAE,WAAoB;YACxC,IAAI,EAAE;gBACJ,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5D,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACzC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"StreamEmitter.js","sourceRoot":"","sources":["../../../src/streaming/StreamEmitter.ts"],"names":[],"mappings":"AAkDA;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,QAAQ,GAA8B,EAAE,CAAC;IAEjD,EAAE,CAAC,OAAgC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAuB;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,MAAM,CAAC,KAAuB;QACnC,OAAO,UAAU,KAAK,CAAC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"StreamEmitter.js","sourceRoot":"","sources":["../../../src/streaming/StreamEmitter.ts"],"names":[],"mappings":"AAgEA;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,QAAQ,GAA8B,EAAE,CAAC;IAEjD,EAAE,CAAC,OAAgC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAuB;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,MAAM,CAAC,KAAuB;QACnC,OAAO,UAAU,KAAK,CAAC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -18,6 +18,7 @@
18
18
  */
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.agentLoop = void 0;
21
+ const trace_1 = require("footprintjs/trace");
21
22
  const messages_1 = require("../types/messages");
22
23
  const content_1 = require("../types/content");
23
24
  // ── Engine ───────────────────────────────────────────────────
@@ -36,6 +37,7 @@ async function agentLoop(config, message, options = {}) {
36
37
  const promptCtx = { message, turnNumber, history, signal };
37
38
  const systemPrompt = await promptProvider.resolve(promptCtx);
38
39
  let loopIteration = 0;
40
+ const executionCounter = (0, trace_1.createExecutionCounter)();
39
41
  let finalContent = '';
40
42
  while (loopIteration < maxIterations) {
41
43
  checkAborted(signal);
@@ -67,6 +69,7 @@ async function agentLoop(config, message, options = {}) {
67
69
  turnNumber,
68
70
  loopIteration,
69
71
  finishReason: llmResponse.finishReason,
72
+ runtimeStageId: (0, trace_1.buildRuntimeStageId)('call-llm', executionCounter.value++),
70
73
  };
71
74
  dispatchRecorderEvent(recorders, 'onLLMCall', llmEvent);
72
75
  loopIteration++;
@@ -94,6 +97,7 @@ async function agentLoop(config, message, options = {}) {
94
97
  args: toolCall.arguments,
95
98
  result: toolResult,
96
99
  latencyMs: toolLatency,
100
+ runtimeStageId: (0, trace_1.buildRuntimeStageId)('execute-tools', executionCounter.value++),
97
101
  };
98
102
  dispatchRecorderEvent(recorders, 'onToolCall', toolEvent);
99
103
  // Add tool result to history
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/executor/agentLoop.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAYH,gDAAmG;AACnG,8CAAkD;AAsBlD,gEAAgE;AAEzD,KAAK,UAAU,SAAS,CAC7B,MAAuB,EACvB,OAAe,EACf,UAA4B,EAAE;IAE9B,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,GAC5F,MAAM,CAAC;IAET,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAExD,mBAAmB;IACnB,OAAO,CAAC,IAAI,CAAC,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;IAEnC,+BAA+B;IAC/B,MAAM,UAAU,GAAmB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC3D,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE7D,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,aAAa,GAAG,aAAa,EAAE,CAAC;YACrC,YAAY,CAAC,MAAM,CAAC,CAAC;YAErB,sBAAsB;YACtB,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;YAClE,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC;YAE/C,cAAc;YACd,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;gBAC9C,OAAO;gBACP,UAAU;gBACV,aAAa;gBACb,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM;aACP,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;YAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC3D,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;gBACjE,MAAM;gBACN,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;YAEzC,6BAA6B;YAC7B,MAAM,QAAQ,GAAiB;gBAC7B,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,SAAS,EAAE,UAAU;gBACrB,UAAU;gBACV,aAAa;gBACb,YAAY,EAAE,WAAW,CAAC,YAAY;aACvC,CAAC;YACF,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAExD,aAAa,EAAE,CAAC;YAEhB,mCAAmC;YACnC,MAAM,gBAAgB,GAAG,IAAA,wBAAc,EAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAA,2BAAgB,EAAC,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE3B,0BAA0B;YAC1B,IAAI,IAAA,uBAAY,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,SAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,yBAAyB;gBACzB,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAU,EAAE,CAAC;oBAC/C,YAAY,CAAC,MAAM,CAAC,CAAC;oBAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,UAAU,CAAC;oBAEf,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;wBACzB,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,EAAE,OAAO,EAAE,yBAAyB,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBAClF,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAE3C,8BAA8B;oBAC9B,MAAM,SAAS,GAAkB;wBAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI;wBACvB,IAAI,EAAE,QAAQ,CAAC,SAAS;wBACxB,MAAM,EAAE,UAAU;wBAClB,SAAS,EAAE,WAAW;qBACvB,CAAC;oBACF,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;oBAE1D,6BAA6B;oBAC7B,OAAO,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;gBAED,oDAAoD;gBACpD,SAAS;YACX,CAAC;YAED,oCAAoC;YACpC,YAAY,GAAG,gBAAgB,CAAC;YAChC,MAAM;QACR,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAsB;YACvC,UAAU;YACV,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,mBAAmB,EAAE,aAAa;YAClC,OAAO,EAAE,YAAY;SACtB,CAAC;QACF,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,aAAa;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0BAA0B;QAC1B,MAAM,UAAU,GAAoB;YAClC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG;YACV,UAAU;SACX,CAAC;QACF,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAtID,8BAsIC;AAED,gEAAgE;AAEhE,SAAS,YAAY,CAAC,MAAoB;IACxC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAA0B,EAC1B,IAAyB,EACzB,KAAc;IAEd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC5B,EAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/executor/agentLoop.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,6CAAgF;AAWhF,gDAAmG;AACnG,8CAAkD;AAsBlD,gEAAgE;AAEzD,KAAK,UAAU,SAAS,CAC7B,MAAuB,EACvB,OAAe,EACf,UAA4B,EAAE;IAE9B,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,GAC5F,MAAM,CAAC;IAET,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAExD,mBAAmB;IACnB,OAAO,CAAC,IAAI,CAAC,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;IAEnC,+BAA+B;IAC/B,MAAM,UAAU,GAAmB,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC3D,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE7D,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,gBAAgB,GAAG,IAAA,8BAAsB,GAAE,CAAC;QAClD,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,aAAa,GAAG,aAAa,EAAE,CAAC;YACrC,YAAY,CAAC,MAAM,CAAC,CAAC;YAErB,sBAAsB;YACtB,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;YAClE,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC;YAE/C,cAAc;YACd,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;gBAC9C,OAAO;gBACP,UAAU;gBACV,aAAa;gBACb,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM;aACP,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;YAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC3D,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;gBACjE,MAAM;gBACN,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;YAEzC,6BAA6B;YAC7B,MAAM,QAAQ,GAAiB;gBAC7B,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,SAAS,EAAE,UAAU;gBACrB,UAAU;gBACV,aAAa;gBACb,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,cAAc,EAAE,IAAA,2BAAmB,EAAC,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC;aAC1E,CAAC;YACF,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAExD,aAAa,EAAE,CAAC;YAEhB,mCAAmC;YACnC,MAAM,gBAAgB,GAAG,IAAA,wBAAc,EAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAA,2BAAgB,EAAC,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE3B,0BAA0B;YAC1B,IAAI,IAAA,uBAAY,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,SAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrE,yBAAyB;gBACzB,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAU,EAAE,CAAC;oBAC/C,YAAY,CAAC,MAAM,CAAC,CAAC;oBAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,IAAI,UAAU,CAAC;oBAEf,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;wBACzB,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,EAAE,OAAO,EAAE,yBAAyB,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBAClF,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAE3C,8BAA8B;oBAC9B,MAAM,SAAS,GAAkB;wBAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI;wBACvB,IAAI,EAAE,QAAQ,CAAC,SAAS;wBACxB,MAAM,EAAE,UAAU;wBAClB,SAAS,EAAE,WAAW;wBACtB,cAAc,EAAE,IAAA,2BAAmB,EAAC,eAAe,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC;qBAC/E,CAAC;oBACF,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;oBAE1D,6BAA6B;oBAC7B,OAAO,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;gBAED,oDAAoD;gBACpD,SAAS;YACX,CAAC;YAED,oCAAoC;YACpC,YAAY,GAAG,gBAAgB,CAAC;YAChC,MAAM;QACR,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAsB;YACvC,UAAU;YACV,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,mBAAmB,EAAE,aAAa;YAClC,OAAO,EAAE,YAAY;SACtB,CAAC;QACF,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,aAAa;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0BAA0B;QAC1B,MAAM,UAAU,GAAoB;YAClC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG;YACV,UAAU;SACX,CAAC;QACF,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAzID,8BAyIC;AAED,gEAAgE;AAEhE,SAAS,YAAY,CAAC,MAAoB;IACxC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAA0B,EAC1B,IAAyB,EACzB,KAAc;IAEd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC5B,EAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@
13
13
  * agentfootprint/stream → Real-time lifecycle events
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.LLMError = exports.urlImage = exports.base64Image = exports.imageBlock = exports.textBlock = exports.toolResultMessage = exports.assistantMessage = exports.userMessage = exports.systemMessage = exports.postgresStore = exports.dynamoStore = exports.redisStore = exports.InMemoryStore = exports.BrowserOpenAIAdapter = exports.BrowserAnthropicAdapter = exports.BedrockAdapter = exports.OpenAIAdapter = exports.AnthropicAdapter = exports.bedrock = exports.ollama = exports.openai = exports.anthropic = exports.createProvider = exports.MockRetriever = exports.mockRetriever = exports.MockAdapter = exports.mock = exports.ToolRegistry = exports.askHuman = exports.defineTool = exports.ParallelRunner = exports.Parallel = exports.SwarmRunner = exports.Swarm = exports.FlowChartRunner = exports.FlowChart = exports.RAGRunner = exports.RAG = exports.LLMCallRunner = exports.LLMCall = exports.AgentRunner = exports.Agent = void 0;
16
+ exports.CostRecorder = exports.TurnRecorder = exports.ToolUsageRecorder = exports.TokenRecorder = exports.quickBind = exports.AgentPattern = exports.defineInstruction = exports.agentLoop = exports.LLMError = exports.urlImage = exports.base64Image = exports.imageBlock = exports.textBlock = exports.toolResultMessage = exports.assistantMessage = exports.userMessage = exports.systemMessage = exports.postgresStore = exports.dynamoStore = exports.redisStore = exports.InMemoryStore = exports.BrowserOpenAIAdapter = exports.BrowserAnthropicAdapter = exports.BedrockAdapter = exports.OpenAIAdapter = exports.AnthropicAdapter = exports.bedrock = exports.ollama = exports.openai = exports.anthropic = exports.createProvider = exports.MockRetriever = exports.mockRetriever = exports.MockAdapter = exports.mock = exports.ToolRegistry = exports.askHuman = exports.defineTool = exports.ParallelRunner = exports.Parallel = exports.SwarmRunner = exports.Swarm = exports.FlowChartRunner = exports.FlowChart = exports.RAGRunner = exports.RAG = exports.LLMCallRunner = exports.LLMCall = exports.AgentRunner = exports.Agent = void 0;
17
17
  // ── Concepts (Builders + Runners) ───────────────────────────
18
18
  var concepts_1 = require("./concepts");
19
19
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return concepts_1.Agent; } });
@@ -71,4 +71,18 @@ Object.defineProperty(exports, "urlImage", { enumerable: true, get: function ()
71
71
  // ── Errors ──────────────────────────────────────────────────
72
72
  var types_2 = require("./types");
73
73
  Object.defineProperty(exports, "LLMError", { enumerable: true, get: function () { return types_2.LLMError; } });
74
+ // ── Agent Loop (low-level engine) ──────────────────────────
75
+ var executor_1 = require("./executor");
76
+ Object.defineProperty(exports, "agentLoop", { enumerable: true, get: function () { return executor_1.agentLoop; } });
77
+ // ── Instructions (also available from agentfootprint/instructions) ──
78
+ var instructions_barrel_1 = require("./instructions.barrel");
79
+ Object.defineProperty(exports, "defineInstruction", { enumerable: true, get: function () { return instructions_barrel_1.defineInstruction; } });
80
+ Object.defineProperty(exports, "AgentPattern", { enumerable: true, get: function () { return instructions_barrel_1.AgentPattern; } });
81
+ Object.defineProperty(exports, "quickBind", { enumerable: true, get: function () { return instructions_barrel_1.quickBind; } });
82
+ // ── Recorders (also available from agentfootprint/observe) ──
83
+ var observe_barrel_1 = require("./observe.barrel");
84
+ Object.defineProperty(exports, "TokenRecorder", { enumerable: true, get: function () { return observe_barrel_1.TokenRecorder; } });
85
+ Object.defineProperty(exports, "ToolUsageRecorder", { enumerable: true, get: function () { return observe_barrel_1.ToolUsageRecorder; } });
86
+ Object.defineProperty(exports, "TurnRecorder", { enumerable: true, get: function () { return observe_barrel_1.TurnRecorder; } });
87
+ Object.defineProperty(exports, "CostRecorder", { enumerable: true, get: function () { return observe_barrel_1.CostRecorder; } });
74
88
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,+DAA+D;AAC/D,uCAaoB;AAZlB,iGAAA,KAAK,OAAA;AACL,uGAAA,WAAW,OAAA;AACX,mGAAA,OAAO,OAAA;AACP,yGAAA,aAAa,OAAA;AACb,+FAAA,GAAG,OAAA;AACH,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,2GAAA,eAAe,OAAA;AACf,iGAAA,KAAK,OAAA;AACL,uGAAA,WAAW,OAAA;AACX,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AAGhB,+DAA+D;AAC/D,iCAA6D;AAApD,mGAAA,UAAU,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,qGAAA,YAAY,OAAA;AAE3C,iEAAiE;AACjE,uCAA6F;AAApF,gGAAA,IAAI,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,0GAAA,cAAc,OAAA;AACxE,mCAA8D;AAArD,mGAAA,SAAS,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,iGAAA,OAAO,OAAA;AAC3C,uCAA6E;AAApE,4GAAA,gBAAgB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,0GAAA,cAAc,OAAA;AACxD,uCAA2E;AAAlE,mHAAA,uBAAuB,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AACtD,uDAA2D;AAAlD,yGAAA,aAAa,OAAA;AACtB,mDAAkF;AAAzE,oGAAA,UAAU,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,uGAAA,aAAa,OAAA;AAuB/C,+DAA+D;AAC/D,iCASiB;AARf,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,0GAAA,iBAAiB,OAAA;AACjB,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AAGV,+DAA+D;AAC/D,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,+DAA+D;AAC/D,uCAaoB;AAZlB,iGAAA,KAAK,OAAA;AACL,uGAAA,WAAW,OAAA;AACX,mGAAA,OAAO,OAAA;AACP,yGAAA,aAAa,OAAA;AACb,+FAAA,GAAG,OAAA;AACH,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,2GAAA,eAAe,OAAA;AACf,iGAAA,KAAK,OAAA;AACL,uGAAA,WAAW,OAAA;AACX,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AAIhB,+DAA+D;AAC/D,iCAA6D;AAApD,mGAAA,UAAU,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,qGAAA,YAAY,OAAA;AAE3C,iEAAiE;AACjE,uCAA6F;AAApF,gGAAA,IAAI,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,0GAAA,cAAc,OAAA;AACxE,mCAA8D;AAArD,mGAAA,SAAS,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,iGAAA,OAAO,OAAA;AAC3C,uCAA6E;AAApE,4GAAA,gBAAgB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,0GAAA,cAAc,OAAA;AACxD,uCAA2E;AAAlE,mHAAA,uBAAuB,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AACtD,uDAA2D;AAAlD,yGAAA,aAAa,OAAA;AACtB,mDAAkF;AAAzE,oGAAA,UAAU,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,uGAAA,aAAa,OAAA;AAuB/C,+DAA+D;AAC/D,iCASiB;AARf,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,0GAAA,iBAAiB,OAAA;AACjB,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AAGV,+DAA+D;AAC/D,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AA0BjB,8DAA8D;AAC9D,uCAAuC;AAA9B,qGAAA,SAAS,OAAA;AAGlB,uEAAuE;AACvE,6DAAmF;AAA1E,wHAAA,iBAAiB,OAAA;AAAE,mHAAA,YAAY,OAAA;AAAE,gHAAA,SAAS,OAAA;AAGnD,+DAA+D;AAC/D,mDAAgG;AAAvF,+GAAA,aAAa,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,8GAAA,YAAY,OAAA;AAAE,8GAAA,YAAY,OAAA"}
@@ -37,6 +37,30 @@ function createCallLLMStage(provider, optionsOrHandler) {
37
37
  const iteration = (scope.loopCount ?? 0) + 1;
38
38
  const startMs = Date.now();
39
39
  onStreamEvent?.({ type: 'llm_start', iteration });
40
+ // ── Emit: request-side ─────────────────────────────────────────────
41
+ //
42
+ // Surface the EXACT shape the adapter is about to send. Any attached
43
+ // EmitRecorder (including CombinedNarrativeRecorder) will render this
44
+ // inline in the narrative under the CallLLM stage.
45
+ //
46
+ // This is diagnostic data (not business state) — using $emit avoids
47
+ // polluting scope with duplicate per-iteration writes, while still
48
+ // giving consumers real-time visibility into what was sent. The
49
+ // library's existing adapterRawResponse scope write covers the
50
+ // response side for the scope-data narrative path.
51
+ scope.$emit('agentfootprint.llm.request', {
52
+ iteration,
53
+ messageCount: messages.length,
54
+ messageRoles: messages.map((m) => m.role),
55
+ toolCount: tools.length,
56
+ toolNames: tools.map((t) => t.name),
57
+ toolsWithRequired: tools.map((t) => ({
58
+ name: t.name,
59
+ description: t.description,
60
+ required: t.inputSchema?.required ?? [],
61
+ })),
62
+ hasResponseFormat: !!responseFormat,
63
+ });
40
64
  const options = {
41
65
  ...(tools.length > 0 ? { tools } : {}),
42
66
  ...(signal ? { signal } : {}),
@@ -54,6 +78,23 @@ function createCallLLMStage(provider, optionsOrHandler) {
54
78
  ? `${usage.inputTokens ?? '?'}in / ${usage.outputTokens ?? '?'}out`
55
79
  : 'no usage data';
56
80
  scope.llmCall = `${model} (${usageSummary})`;
81
+ // ── Emit: response-side ─────────────────────────────────────────────
82
+ //
83
+ // Surface the full LLM response — model, usage, stop_reason, tool-call
84
+ // signatures (name + args). The (name, args) view is the critical one
85
+ // for debugging stuck patterns like "LLM returns empty args every turn".
86
+ scope.$emit('agentfootprint.llm.response', {
87
+ iteration,
88
+ model: response.model,
89
+ stopReason: response.finishReason,
90
+ usage: response.usage,
91
+ content: response.content,
92
+ toolCalls: (response.toolCalls ?? []).map((tc) => ({
93
+ name: tc.name,
94
+ arguments: tc.arguments,
95
+ })),
96
+ latencyMs: Date.now() - startMs,
97
+ });
57
98
  onStreamEvent?.({
58
99
  type: 'llm_end',
59
100
  iteration,
@@ -1 +1 @@
1
- {"version":3,"file":"callLLMStage.js","sourceRoot":"","sources":["../../../src/lib/call/callLLMStage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAMH,uCAAqD;AAOrD;;GAEG;AACH,SAAgB,kBAAkB,CAChC,QAAqB,EACrB,gBAAgE;IAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,yDAAyD;IACzD,MAAM,SAAS,GACb,OAAO,gBAAgB,KAAK,UAAU;QACpC,CAAC,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE;QACrC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAE7B,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAEpD,OAAO,KAAK,EAAE,KAAiC,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;QACvC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,MAAM,OAAO,GAAmB;YAC9B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAClC,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;QAEF,8CAA8C;QAC9C,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QAEpC,6BAA6B;QAC7B,KAAK,CAAC,aAAa,GAAG,IAAA,kCAAwB,EAAC,QAAQ,CAAC,CAAC;QAEzD,yCAAyC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,YAAY,GAAG,KAAK;YACxB,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,QAAQ,KAAK,CAAC,YAAY,IAAI,GAAG,KAAK;YACnE,CAAC,CAAC,eAAe,CAAC;QACpB,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,KAAK,YAAY,GAAG,CAAC;QAE7C,aAAa,EAAE,CAAC;YACd,IAAI,EAAE,SAAS;YACf,SAAS;YACT,aAAa,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;YAC9C,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SAChC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA1DD,gDA0DC"}
1
+ {"version":3,"file":"callLLMStage.js","sourceRoot":"","sources":["../../../src/lib/call/callLLMStage.ts"],"names":[],"mappings":"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"}