agentfootprint 3.0.0 → 3.1.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 (411) hide show
  1. package/AGENTS.md +66 -47
  2. package/CLAUDE.md +47 -37
  3. package/README.md +28 -13
  4. package/dist/adapters/llm/createProvider.js +3 -2
  5. package/dist/adapters/llm/createProvider.js.map +1 -1
  6. package/dist/adapters/observability/agentcore.js +1 -0
  7. package/dist/adapters/observability/agentcore.js.map +1 -1
  8. package/dist/cache/CacheDecisionSubflow.js +13 -18
  9. package/dist/cache/CacheDecisionSubflow.js.map +1 -1
  10. package/dist/cache/CacheGateDecider.js +18 -3
  11. package/dist/cache/CacheGateDecider.js.map +1 -1
  12. package/dist/cache/cacheRecorder.js +12 -3
  13. package/dist/cache/cacheRecorder.js.map +1 -1
  14. package/dist/conventions.js +152 -2
  15. package/dist/conventions.js.map +1 -1
  16. package/dist/core/Agent.js +46 -9
  17. package/dist/core/Agent.js.map +1 -1
  18. package/dist/core/LLMCall.js +177 -44
  19. package/dist/core/LLMCall.js.map +1 -1
  20. package/dist/core/RunnerBase.js +14 -0
  21. package/dist/core/RunnerBase.js.map +1 -1
  22. package/dist/core/agent/buildAgentChart.js +117 -48
  23. package/dist/core/agent/buildAgentChart.js.map +1 -1
  24. package/dist/core/agent/buildAgentMessageApiChart.js +201 -0
  25. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -0
  26. package/dist/core/agent/buildCacheSubflow.js +62 -0
  27. package/dist/core/agent/buildCacheSubflow.js.map +1 -0
  28. package/dist/core/agent/buildDynamicAgentChart.js +364 -0
  29. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -0
  30. package/dist/core/agent/buildMessageApiChart.js +154 -0
  31. package/dist/core/agent/buildMessageApiChart.js.map +1 -0
  32. package/dist/core/agent/stages/callLLM.js +11 -0
  33. package/dist/core/agent/stages/callLLM.js.map +1 -1
  34. package/dist/core/agent/stages/reliabilityExecution.js +64 -9
  35. package/dist/core/agent/stages/reliabilityExecution.js.map +1 -1
  36. package/dist/core/flowchartAsTool.js +5 -5
  37. package/dist/core/humanizeLLMError.js +66 -0
  38. package/dist/core/humanizeLLMError.js.map +1 -0
  39. package/dist/core/slots/buildMessagesSlot.js +1 -1
  40. package/dist/core/slots/buildMessagesSlot.js.map +1 -1
  41. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  42. package/dist/core-flow/Conditional.js +1 -1
  43. package/dist/core-flow/Conditional.js.map +1 -1
  44. package/dist/core-flow/Loop.js +1 -1
  45. package/dist/core-flow/Loop.js.map +1 -1
  46. package/dist/core-flow/Parallel.js +1 -1
  47. package/dist/core-flow/Parallel.js.map +1 -1
  48. package/dist/esm/adapters/llm/createProvider.js +3 -2
  49. package/dist/esm/adapters/llm/createProvider.js.map +1 -1
  50. package/dist/esm/adapters/observability/agentcore.js +1 -0
  51. package/dist/esm/adapters/observability/agentcore.js.map +1 -1
  52. package/dist/esm/cache/CacheDecisionSubflow.js +11 -17
  53. package/dist/esm/cache/CacheDecisionSubflow.js.map +1 -1
  54. package/dist/esm/cache/CacheGateDecider.js +18 -3
  55. package/dist/esm/cache/CacheGateDecider.js.map +1 -1
  56. package/dist/esm/cache/cacheRecorder.js +12 -3
  57. package/dist/esm/cache/cacheRecorder.js.map +1 -1
  58. package/dist/esm/conventions.js +148 -1
  59. package/dist/esm/conventions.js.map +1 -1
  60. package/dist/esm/core/Agent.js +47 -10
  61. package/dist/esm/core/Agent.js.map +1 -1
  62. package/dist/esm/core/LLMCall.js +177 -44
  63. package/dist/esm/core/LLMCall.js.map +1 -1
  64. package/dist/esm/core/RunnerBase.js +14 -0
  65. package/dist/esm/core/RunnerBase.js.map +1 -1
  66. package/dist/esm/core/agent/buildAgentChart.js +118 -49
  67. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  68. package/dist/esm/core/agent/buildAgentMessageApiChart.js +197 -0
  69. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -0
  70. package/dist/esm/core/agent/buildCacheSubflow.js +58 -0
  71. package/dist/esm/core/agent/buildCacheSubflow.js.map +1 -0
  72. package/dist/esm/core/agent/buildDynamicAgentChart.js +360 -0
  73. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -0
  74. package/dist/esm/core/agent/buildMessageApiChart.js +150 -0
  75. package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -0
  76. package/dist/esm/core/agent/stages/callLLM.js +11 -0
  77. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  78. package/dist/esm/core/agent/stages/reliabilityExecution.js +64 -9
  79. package/dist/esm/core/agent/stages/reliabilityExecution.js.map +1 -1
  80. package/dist/esm/core/flowchartAsTool.js +5 -5
  81. package/dist/esm/core/humanizeLLMError.js +61 -0
  82. package/dist/esm/core/humanizeLLMError.js.map +1 -0
  83. package/dist/esm/core/slots/buildMessagesSlot.js +1 -1
  84. package/dist/esm/core/slots/buildMessagesSlot.js.map +1 -1
  85. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  86. package/dist/esm/core-flow/Conditional.js +1 -1
  87. package/dist/esm/core-flow/Conditional.js.map +1 -1
  88. package/dist/esm/core-flow/Loop.js +1 -1
  89. package/dist/esm/core-flow/Loop.js.map +1 -1
  90. package/dist/esm/core-flow/Parallel.js +1 -1
  91. package/dist/esm/core-flow/Parallel.js.map +1 -1
  92. package/dist/esm/events/registry.js +10 -0
  93. package/dist/esm/events/registry.js.map +1 -1
  94. package/dist/esm/index.js +21 -1
  95. package/dist/esm/index.js.map +1 -1
  96. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js +15 -8
  97. package/dist/esm/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  98. package/dist/esm/lib/lazyRequire.js +2 -30
  99. package/dist/esm/lib/lazyRequire.js.map +1 -1
  100. package/dist/esm/lib/rag/defineRAG.js +4 -2
  101. package/dist/esm/lib/rag/defineRAG.js.map +1 -1
  102. package/dist/esm/lib/rag/indexDocuments.js +2 -2
  103. package/dist/esm/locales/index.js +3 -3
  104. package/dist/esm/memory/beats/heuristicExtractor.js +1 -1
  105. package/dist/esm/memory/beats/heuristicExtractor.js.map +1 -1
  106. package/dist/esm/memory/beats/index.js +6 -6
  107. package/dist/esm/memory/beats/index.js.map +1 -1
  108. package/dist/esm/memory/beats/llmExtractor.js +1 -1
  109. package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
  110. package/dist/esm/memory/embedding/index.js +4 -4
  111. package/dist/esm/memory/embedding/index.js.map +1 -1
  112. package/dist/esm/memory/entry/index.js +1 -1
  113. package/dist/esm/memory/entry/index.js.map +1 -1
  114. package/dist/esm/memory/facts/extractFacts.js +1 -1
  115. package/dist/esm/memory/facts/extractFacts.js.map +1 -1
  116. package/dist/esm/memory/facts/index.js +7 -7
  117. package/dist/esm/memory/facts/index.js.map +1 -1
  118. package/dist/esm/memory/facts/llmFactExtractor.js +1 -1
  119. package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
  120. package/dist/esm/memory/facts/loadFacts.js +1 -1
  121. package/dist/esm/memory/facts/loadFacts.js.map +1 -1
  122. package/dist/esm/memory/facts/patternFactExtractor.js +1 -1
  123. package/dist/esm/memory/facts/patternFactExtractor.js.map +1 -1
  124. package/dist/esm/memory/identity/index.js +1 -1
  125. package/dist/esm/memory/identity/index.js.map +1 -1
  126. package/dist/esm/memory/pipeline/auto.js +2 -2
  127. package/dist/esm/memory/pipeline/auto.js.map +1 -1
  128. package/dist/esm/memory/pipeline/default.js +4 -4
  129. package/dist/esm/memory/pipeline/default.js.map +1 -1
  130. package/dist/esm/memory/pipeline/ephemeral.js +3 -3
  131. package/dist/esm/memory/pipeline/ephemeral.js.map +1 -1
  132. package/dist/esm/memory/pipeline/fact.js +5 -5
  133. package/dist/esm/memory/pipeline/fact.js.map +1 -1
  134. package/dist/esm/memory/pipeline/index.js +6 -6
  135. package/dist/esm/memory/pipeline/index.js.map +1 -1
  136. package/dist/esm/memory/pipeline/narrative.js +6 -6
  137. package/dist/esm/memory/pipeline/narrative.js.map +1 -1
  138. package/dist/esm/memory/pipeline/semantic.js +5 -5
  139. package/dist/esm/memory/pipeline/semantic.js.map +1 -1
  140. package/dist/esm/memory/stages/index.js +6 -6
  141. package/dist/esm/memory/stages/index.js.map +1 -1
  142. package/dist/esm/memory/stages/pickByBudget.js +1 -1
  143. package/dist/esm/memory/stages/pickByBudget.js.map +1 -1
  144. package/dist/esm/memory/store/InMemoryStore.js +2 -2
  145. package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
  146. package/dist/esm/memory/store/index.js +1 -1
  147. package/dist/esm/memory/store/index.js.map +1 -1
  148. package/dist/esm/memory/wire/index.js +1 -1
  149. package/dist/esm/memory/wire/index.js.map +1 -1
  150. package/dist/esm/package.json +1 -0
  151. package/dist/esm/recorders/core/ContextEvaluatedRecorder.js +31 -0
  152. package/dist/esm/recorders/core/ContextEvaluatedRecorder.js.map +1 -0
  153. package/dist/esm/recorders/core/ContextRecorder.js +12 -14
  154. package/dist/esm/recorders/core/ContextRecorder.js.map +1 -1
  155. package/dist/esm/recorders/core/ErrorBridge.js +59 -0
  156. package/dist/esm/recorders/core/ErrorBridge.js.map +1 -0
  157. package/dist/esm/recorders/core/ReliabilityRecorder.js +29 -0
  158. package/dist/esm/recorders/core/ReliabilityRecorder.js.map +1 -0
  159. package/dist/esm/recorders/core/typedEmit.js +1 -1
  160. package/dist/esm/recorders/observability/BoundaryRecorder.js +26 -2
  161. package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
  162. package/dist/esm/recorders/observability/LiveStateRecorder.js +8 -0
  163. package/dist/esm/recorders/observability/LiveStateRecorder.js.map +1 -1
  164. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +1 -0
  165. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  166. package/dist/esm/reliability/buildReliabilityGateChart.js +10 -4
  167. package/dist/esm/reliability/buildReliabilityGateChart.js.map +1 -1
  168. package/dist/esm/resilience/withRetry.js +3 -0
  169. package/dist/esm/resilience/withRetry.js.map +1 -1
  170. package/dist/esm/strategies/compose.js +2 -2
  171. package/dist/esm/tool-providers/skillScopedTools.js +3 -3
  172. package/dist/events/registry.js +10 -0
  173. package/dist/events/registry.js.map +1 -1
  174. package/dist/index.js +26 -3
  175. package/dist/index.js.map +1 -1
  176. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js +15 -8
  177. package/dist/lib/injection-engine/buildInjectionEngineSubflow.js.map +1 -1
  178. package/dist/lib/lazyRequire.js +6 -0
  179. package/dist/lib/lazyRequire.js.map +1 -1
  180. package/dist/lib/rag/defineRAG.js +4 -2
  181. package/dist/lib/rag/defineRAG.js.map +1 -1
  182. package/dist/lib/rag/indexDocuments.js +2 -2
  183. package/dist/locales/index.js +3 -3
  184. package/dist/memory/beats/heuristicExtractor.js +4 -4
  185. package/dist/memory/beats/heuristicExtractor.js.map +1 -1
  186. package/dist/memory/beats/index.js +13 -13
  187. package/dist/memory/beats/index.js.map +1 -1
  188. package/dist/memory/beats/llmExtractor.js +2 -2
  189. package/dist/memory/beats/llmExtractor.js.map +1 -1
  190. package/dist/memory/embedding/index.js +8 -8
  191. package/dist/memory/embedding/index.js.map +1 -1
  192. package/dist/memory/entry/index.js +3 -3
  193. package/dist/memory/entry/index.js.map +1 -1
  194. package/dist/memory/facts/extractFacts.js +2 -2
  195. package/dist/memory/facts/extractFacts.js.map +1 -1
  196. package/dist/memory/facts/index.js +17 -17
  197. package/dist/memory/facts/index.js.map +1 -1
  198. package/dist/memory/facts/llmFactExtractor.js +2 -2
  199. package/dist/memory/facts/llmFactExtractor.js.map +1 -1
  200. package/dist/memory/facts/loadFacts.js +2 -2
  201. package/dist/memory/facts/loadFacts.js.map +1 -1
  202. package/dist/memory/facts/patternFactExtractor.js +2 -2
  203. package/dist/memory/facts/patternFactExtractor.js.map +1 -1
  204. package/dist/memory/identity/index.js +2 -2
  205. package/dist/memory/identity/index.js.map +1 -1
  206. package/dist/memory/pipeline/auto.js +11 -11
  207. package/dist/memory/pipeline/auto.js.map +1 -1
  208. package/dist/memory/pipeline/default.js +8 -8
  209. package/dist/memory/pipeline/default.js.map +1 -1
  210. package/dist/memory/pipeline/ephemeral.js +6 -6
  211. package/dist/memory/pipeline/ephemeral.js.map +1 -1
  212. package/dist/memory/pipeline/fact.js +11 -11
  213. package/dist/memory/pipeline/fact.js.map +1 -1
  214. package/dist/memory/pipeline/index.js +12 -12
  215. package/dist/memory/pipeline/index.js.map +1 -1
  216. package/dist/memory/pipeline/narrative.js +12 -12
  217. package/dist/memory/pipeline/narrative.js.map +1 -1
  218. package/dist/memory/pipeline/semantic.js +10 -10
  219. package/dist/memory/pipeline/semantic.js.map +1 -1
  220. package/dist/memory/stages/index.js +13 -13
  221. package/dist/memory/stages/index.js.map +1 -1
  222. package/dist/memory/stages/pickByBudget.js +3 -3
  223. package/dist/memory/stages/pickByBudget.js.map +1 -1
  224. package/dist/memory/store/InMemoryStore.js +5 -5
  225. package/dist/memory/store/InMemoryStore.js.map +1 -1
  226. package/dist/memory/store/index.js +2 -2
  227. package/dist/memory/store/index.js.map +1 -1
  228. package/dist/memory/wire/index.js +4 -4
  229. package/dist/memory/wire/index.js.map +1 -1
  230. package/dist/recorders/core/ContextEvaluatedRecorder.js +35 -0
  231. package/dist/recorders/core/ContextEvaluatedRecorder.js.map +1 -0
  232. package/dist/recorders/core/ContextRecorder.js +11 -13
  233. package/dist/recorders/core/ContextRecorder.js.map +1 -1
  234. package/dist/recorders/core/ErrorBridge.js +64 -0
  235. package/dist/recorders/core/ErrorBridge.js.map +1 -0
  236. package/dist/recorders/core/ReliabilityRecorder.js +33 -0
  237. package/dist/recorders/core/ReliabilityRecorder.js.map +1 -0
  238. package/dist/recorders/core/typedEmit.js +1 -1
  239. package/dist/recorders/observability/BoundaryRecorder.js +26 -2
  240. package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
  241. package/dist/recorders/observability/LiveStateRecorder.js +8 -0
  242. package/dist/recorders/observability/LiveStateRecorder.js.map +1 -1
  243. package/dist/recorders/observability/commentary/commentaryTemplates.js +1 -0
  244. package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  245. package/dist/reliability/buildReliabilityGateChart.js +10 -4
  246. package/dist/reliability/buildReliabilityGateChart.js.map +1 -1
  247. package/dist/resilience/withRetry.js +3 -0
  248. package/dist/resilience/withRetry.js.map +1 -1
  249. package/dist/strategies/compose.js +2 -2
  250. package/dist/tool-providers/skillScopedTools.js +3 -3
  251. package/dist/types/adapters/llm/createProvider.d.ts +3 -2
  252. package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
  253. package/dist/types/adapters/observability/agentcore.d.ts +1 -0
  254. package/dist/types/adapters/observability/agentcore.d.ts.map +1 -1
  255. package/dist/types/cache/CacheDecisionSubflow.d.ts +7 -10
  256. package/dist/types/cache/CacheDecisionSubflow.d.ts.map +1 -1
  257. package/dist/types/cache/CacheGateDecider.d.ts +16 -2
  258. package/dist/types/cache/CacheGateDecider.d.ts.map +1 -1
  259. package/dist/types/cache/cacheRecorder.d.ts.map +1 -1
  260. package/dist/types/conventions.d.ts +101 -1
  261. package/dist/types/conventions.d.ts.map +1 -1
  262. package/dist/types/core/Agent.d.ts +8 -0
  263. package/dist/types/core/Agent.d.ts.map +1 -1
  264. package/dist/types/core/LLMCall.d.ts +48 -12
  265. package/dist/types/core/LLMCall.d.ts.map +1 -1
  266. package/dist/types/core/RunnerBase.d.ts +12 -0
  267. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  268. package/dist/types/core/agent/buildAgentChart.d.ts +31 -18
  269. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  270. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts +41 -0
  271. package/dist/types/core/agent/buildAgentMessageApiChart.d.ts.map +1 -0
  272. package/dist/types/core/agent/buildCacheSubflow.d.ts +36 -0
  273. package/dist/types/core/agent/buildCacheSubflow.d.ts.map +1 -0
  274. package/dist/types/core/agent/buildDynamicAgentChart.d.ts +57 -0
  275. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -0
  276. package/dist/types/core/agent/buildMessageApiChart.d.ts +48 -0
  277. package/dist/types/core/agent/buildMessageApiChart.d.ts.map +1 -0
  278. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  279. package/dist/types/core/agent/stages/reliabilityExecution.d.ts.map +1 -1
  280. package/dist/types/core/agent/types.d.ts +69 -2
  281. package/dist/types/core/agent/types.d.ts.map +1 -1
  282. package/dist/types/core/flowchartAsTool.d.ts +5 -5
  283. package/dist/types/core/humanizeLLMError.d.ts +24 -0
  284. package/dist/types/core/humanizeLLMError.d.ts.map +1 -0
  285. package/dist/types/core/slots/buildMessagesSlot.d.ts.map +1 -1
  286. package/dist/types/events/payloads.d.ts +84 -0
  287. package/dist/types/events/payloads.d.ts.map +1 -1
  288. package/dist/types/events/registry.d.ts +11 -1
  289. package/dist/types/events/registry.d.ts.map +1 -1
  290. package/dist/types/index.d.ts +4 -1
  291. package/dist/types/index.d.ts.map +1 -1
  292. package/dist/types/lib/injection-engine/buildInjectionEngineSubflow.d.ts.map +1 -1
  293. package/dist/types/lib/lazyRequire.d.ts.map +1 -1
  294. package/dist/types/lib/rag/defineRAG.d.ts +4 -2
  295. package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
  296. package/dist/types/lib/rag/indexDocuments.d.ts +2 -2
  297. package/dist/types/locales/index.d.ts +3 -3
  298. package/dist/types/memory/beats/extractBeats.d.ts +4 -4
  299. package/dist/types/memory/beats/extractBeats.d.ts.map +1 -1
  300. package/dist/types/memory/beats/extractor.d.ts +2 -2
  301. package/dist/types/memory/beats/extractor.d.ts.map +1 -1
  302. package/dist/types/memory/beats/formatAsNarrative.d.ts +1 -1
  303. package/dist/types/memory/beats/formatAsNarrative.d.ts.map +1 -1
  304. package/dist/types/memory/beats/heuristicExtractor.d.ts +1 -1
  305. package/dist/types/memory/beats/heuristicExtractor.d.ts.map +1 -1
  306. package/dist/types/memory/beats/index.d.ts +12 -12
  307. package/dist/types/memory/beats/index.d.ts.map +1 -1
  308. package/dist/types/memory/beats/llmExtractor.d.ts +2 -2
  309. package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
  310. package/dist/types/memory/beats/writeBeats.d.ts +2 -2
  311. package/dist/types/memory/beats/writeBeats.d.ts.map +1 -1
  312. package/dist/types/memory/embedding/embedMessages.d.ts +3 -3
  313. package/dist/types/memory/embedding/embedMessages.d.ts.map +1 -1
  314. package/dist/types/memory/embedding/index.d.ts +8 -8
  315. package/dist/types/memory/embedding/index.d.ts.map +1 -1
  316. package/dist/types/memory/embedding/loadRelevant.d.ts +3 -3
  317. package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
  318. package/dist/types/memory/embedding/mockEmbedder.d.ts +1 -1
  319. package/dist/types/memory/embedding/mockEmbedder.d.ts.map +1 -1
  320. package/dist/types/memory/entry/decay.d.ts +1 -1
  321. package/dist/types/memory/entry/decay.d.ts.map +1 -1
  322. package/dist/types/memory/entry/index.d.ts +2 -2
  323. package/dist/types/memory/entry/index.d.ts.map +1 -1
  324. package/dist/types/memory/entry/types.d.ts +1 -1
  325. package/dist/types/memory/entry/types.d.ts.map +1 -1
  326. package/dist/types/memory/facts/extractFacts.d.ts +4 -4
  327. package/dist/types/memory/facts/extractFacts.d.ts.map +1 -1
  328. package/dist/types/memory/facts/extractor.d.ts +2 -2
  329. package/dist/types/memory/facts/extractor.d.ts.map +1 -1
  330. package/dist/types/memory/facts/formatFacts.d.ts +3 -3
  331. package/dist/types/memory/facts/formatFacts.d.ts.map +1 -1
  332. package/dist/types/memory/facts/index.d.ts +14 -14
  333. package/dist/types/memory/facts/index.d.ts.map +1 -1
  334. package/dist/types/memory/facts/llmFactExtractor.d.ts +2 -2
  335. package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
  336. package/dist/types/memory/facts/loadFacts.d.ts +2 -2
  337. package/dist/types/memory/facts/loadFacts.d.ts.map +1 -1
  338. package/dist/types/memory/facts/patternFactExtractor.d.ts +1 -1
  339. package/dist/types/memory/facts/patternFactExtractor.d.ts.map +1 -1
  340. package/dist/types/memory/facts/writeFacts.d.ts +2 -2
  341. package/dist/types/memory/facts/writeFacts.d.ts.map +1 -1
  342. package/dist/types/memory/identity/index.d.ts +2 -2
  343. package/dist/types/memory/identity/index.d.ts.map +1 -1
  344. package/dist/types/memory/pipeline/auto.d.ts +6 -6
  345. package/dist/types/memory/pipeline/auto.d.ts.map +1 -1
  346. package/dist/types/memory/pipeline/default.d.ts +2 -2
  347. package/dist/types/memory/pipeline/default.d.ts.map +1 -1
  348. package/dist/types/memory/pipeline/ephemeral.d.ts +2 -2
  349. package/dist/types/memory/pipeline/ephemeral.d.ts.map +1 -1
  350. package/dist/types/memory/pipeline/fact.d.ts +3 -3
  351. package/dist/types/memory/pipeline/fact.d.ts.map +1 -1
  352. package/dist/types/memory/pipeline/index.d.ts +13 -13
  353. package/dist/types/memory/pipeline/index.d.ts.map +1 -1
  354. package/dist/types/memory/pipeline/narrative.d.ts +3 -3
  355. package/dist/types/memory/pipeline/narrative.d.ts.map +1 -1
  356. package/dist/types/memory/pipeline/semantic.d.ts +3 -3
  357. package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
  358. package/dist/types/memory/pipeline/types.d.ts +1 -1
  359. package/dist/types/memory/pipeline/types.d.ts.map +1 -1
  360. package/dist/types/memory/stages/formatDefault.d.ts +3 -3
  361. package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
  362. package/dist/types/memory/stages/index.d.ts +13 -13
  363. package/dist/types/memory/stages/index.d.ts.map +1 -1
  364. package/dist/types/memory/stages/loadRecent.d.ts +2 -2
  365. package/dist/types/memory/stages/loadRecent.d.ts.map +1 -1
  366. package/dist/types/memory/stages/pickByBudget.d.ts +2 -2
  367. package/dist/types/memory/stages/pickByBudget.d.ts.map +1 -1
  368. package/dist/types/memory/stages/summarize.d.ts +2 -2
  369. package/dist/types/memory/stages/summarize.d.ts.map +1 -1
  370. package/dist/types/memory/stages/tokenize.d.ts +1 -1
  371. package/dist/types/memory/stages/tokenize.d.ts.map +1 -1
  372. package/dist/types/memory/stages/types.d.ts +3 -3
  373. package/dist/types/memory/stages/types.d.ts.map +1 -1
  374. package/dist/types/memory/stages/writeMessages.d.ts +3 -3
  375. package/dist/types/memory/stages/writeMessages.d.ts.map +1 -1
  376. package/dist/types/memory/store/InMemoryStore.d.ts +3 -3
  377. package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
  378. package/dist/types/memory/store/index.d.ts +2 -2
  379. package/dist/types/memory/store/index.d.ts.map +1 -1
  380. package/dist/types/memory/store/types.d.ts +2 -2
  381. package/dist/types/memory/store/types.d.ts.map +1 -1
  382. package/dist/types/memory/wire/index.d.ts +2 -2
  383. package/dist/types/memory/wire/index.d.ts.map +1 -1
  384. package/dist/types/memory/wire/mountMemoryPipeline.d.ts +1 -1
  385. package/dist/types/memory/wire/mountMemoryPipeline.d.ts.map +1 -1
  386. package/dist/types/recorders/core/ContextEvaluatedRecorder.d.ts +24 -0
  387. package/dist/types/recorders/core/ContextEvaluatedRecorder.d.ts.map +1 -0
  388. package/dist/types/recorders/core/ContextRecorder.d.ts +0 -2
  389. package/dist/types/recorders/core/ContextRecorder.d.ts.map +1 -1
  390. package/dist/types/recorders/core/ErrorBridge.d.ts +39 -0
  391. package/dist/types/recorders/core/ErrorBridge.d.ts.map +1 -0
  392. package/dist/types/recorders/core/ReliabilityRecorder.d.ts +25 -0
  393. package/dist/types/recorders/core/ReliabilityRecorder.d.ts.map +1 -0
  394. package/dist/types/recorders/core/typedEmit.d.ts +1 -1
  395. package/dist/types/recorders/observability/BoundaryRecorder.d.ts +10 -2
  396. package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
  397. package/dist/types/recorders/observability/LiveStateRecorder.d.ts.map +1 -1
  398. package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
  399. package/dist/types/recorders/observability/observeRunId.d.ts +1 -1
  400. package/dist/types/reliability/buildReliabilityGateChart.d.ts.map +1 -1
  401. package/dist/types/resilience/withRetry.d.ts +3 -0
  402. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  403. package/dist/types/strategies/compose.d.ts +2 -2
  404. package/dist/types/tool-providers/skillScopedTools.d.ts +3 -3
  405. package/package.json +10 -5
  406. package/dist/core/agent/stages/iterationStart.js +0 -24
  407. package/dist/core/agent/stages/iterationStart.js.map +0 -1
  408. package/dist/esm/core/agent/stages/iterationStart.js +0 -20
  409. package/dist/esm/core/agent/stages/iterationStart.js.map +0 -1
  410. package/dist/types/core/agent/stages/iterationStart.d.ts +0 -16
  411. package/dist/types/core/agent/stages/iterationStart.d.ts.map +0 -1
@@ -0,0 +1,360 @@
1
+ /**
2
+ * buildDynamicAgentChart — the Dynamic-ReAct agent chart, where the
3
+ * whole LLM turn (context engineering + the call) is ONE `sf-llm-call`
4
+ * subflow, exactly like the `LLMCall` primitive produces.
5
+ *
6
+ * WHY a second builder (vs `buildAgentChart`)
7
+ * ───────────────────────────────────────────
8
+ * `buildAgentChart` mounts the LLM as a flat `call-llm` STAGE with the
9
+ * slot subflows as its siblings. That renders as nothing in Lens — a
10
+ * bare stage is dropped by the subflow-level collapser, so the slots
11
+ * have no LLM card to fold into and the chart comes up empty.
12
+ *
13
+ * This builder wraps that same region in an `sf-llm-call` SUBFLOW. The
14
+ * payoff is purely structural — Lens already maps `sf-llm-call → LLM
15
+ * group` (same boundary `LLMCall` produces), so the Dynamic agent
16
+ * renders as an LLM group with its slots inside, a peer Tool node, and
17
+ * the loop arc, with ZERO Lens-specific special-casing.
18
+ *
19
+ * The data flow is IDENTICAL to `buildAgentChart` — every stage handler
20
+ * + slot subflow is reused verbatim from the same `AgentChartDeps`. The
21
+ * ONLY new thing is the subflow boundary, which means:
22
+ *
23
+ * • A small inner seed (`dynamicTurnSeed`) initialises the per-turn
24
+ * working keys the OUTER seed used to set, since the inner subflow
25
+ * gets a fresh scope each loop re-entry.
26
+ * • Cross-iteration accumulators (token totals, cost counters,
27
+ * skill-history) round-trip out→in: the boundary `outputMapper`
28
+ * bubbles them to the outer scope, and the next iteration's
29
+ * `inputMapper` feeds them back under `prior*` aliases (because
30
+ * keys passed via `inputMapper` are FROZEN inside the subflow —
31
+ * `ScopeFacade.setValue` throws on them — so the writable working
32
+ * key must have a different name from the read-only input).
33
+ *
34
+ * Chart shape (mirrors the diagram the team locked):
35
+ *
36
+ * Initialize
37
+ * → [memory READ subflows]
38
+ * → sf-llm-call (SUBFLOW — same boundary LLMCall produces)
39
+ * dynamicTurnSeed → InjectionEngine
40
+ * → Context (selector, PARALLEL fan-out, failFast)
41
+ * ⇉ {System Prompt ‖ Messages ‖ Tools} → converge
42
+ * → UpdateSkillHistory → Cache (sf-cache subflow)
43
+ * → CallLLM (emits iteration_start) → [NormalizeThinking]
44
+ * → Route (decider)
45
+ * ├─ tool-calls (pausable) → loopTo(sf-llm-call) ← branch-sourced loop
46
+ * └─ sf-final (the answer) → terminal leaf
47
+ *
48
+ * Classic ReAct keeps using `buildAgentChart` until its own shape is
49
+ * designed — this builder is Dynamic-only.
50
+ */
51
+ import { ArrayMergeMode } from 'footprintjs/advanced';
52
+ import { flowChart, select } from 'footprintjs';
53
+ import { STAGE_IDS, SUBFLOW_IDS } from '../../conventions.js';
54
+ import { memoryInjectionKey } from '../../memory/define.types.js';
55
+ import { unwrapMemoryFlowChart } from '../../memory/define.js';
56
+ import { mountMemoryRead, mountMemoryWrite } from '../../memory/wire/mountMemoryPipeline.js';
57
+ import { breakFinalStage } from './stages/breakFinal.js';
58
+ import { prepareFinalStage } from './stages/prepareFinal.js';
59
+ import { buildCacheSubflow } from './buildCacheSubflow.js';
60
+ /**
61
+ * Inner seed for the `sf-llm-call` subflow. Initialises the per-turn
62
+ * working keys (the ones the OUTER seed set on the flat chart) and
63
+ * copies the cross-iteration accumulators from their read-only `prior*`
64
+ * inputs into the writable working keys.
65
+ *
66
+ * Why the `prior*` indirection: `inputMapper` values are frozen inside
67
+ * the subflow (any `scope.set` on them throws). callLLM does
68
+ * `scope.totalInputTokens += usage` — so `totalInputTokens` must be a
69
+ * writable working key, seeded here from the frozen `priorTotalInputTokens`.
70
+ */
71
+ function dynamicTurnSeed(scope) {
72
+ const args = scope.$getArgs();
73
+ // Cross-iteration accumulators — seed working keys from prior totals
74
+ // so they continue to accumulate across loop re-entries.
75
+ scope.totalInputTokens = args.priorTotalInputTokens ?? 0;
76
+ scope.totalOutputTokens = args.priorTotalOutputTokens ?? 0;
77
+ scope.cumTokensInput = args.priorCumTokensInput ?? 0;
78
+ scope.cumTokensOutput = args.priorCumTokensOutput ?? 0;
79
+ scope.cumEstimatedUsd = args.priorCumEstimatedUsd ?? 0;
80
+ scope.costBudgetHit = args.priorCostBudgetHit ?? false;
81
+ scope.skillHistory = args.priorSkillHistory ?? [];
82
+ // Per-iteration working keys — fresh each turn (slots + cache + callLLM
83
+ // populate these inside the subflow; nothing outside reads the
84
+ // injection arrays, so they stay subflow-internal).
85
+ scope.activeInjections = [];
86
+ scope.systemPromptInjections = [];
87
+ scope.messagesInjections = [];
88
+ scope.toolsInjections = [];
89
+ scope.cacheMarkers = [];
90
+ scope.llmLatestContent = '';
91
+ scope.llmLatestToolCalls = [];
92
+ scope.thinkingBlocks = [];
93
+ }
94
+ /**
95
+ * Build the Dynamic-ReAct agent chart from the shared `AgentChartDeps`.
96
+ */
97
+ export function buildDynamicAgentChart(deps) {
98
+ // ── Final-branch subflow ─────────────────────────────────────
99
+ // Identical to buildAgentChart: PrepareFinal captures the turn
100
+ // payload, memory-write subflows persist it, BreakFinal terminates
101
+ // the ReAct loop. Lives in the OUTER chart (the final answer is a
102
+ // peer of the LLM turn, not part of it).
103
+ let finalBranchBuilder = flowChart('PrepareFinal', prepareFinalStage, 'prepare-final', {
104
+ ...(deps.structureRecorders !== undefined && {
105
+ structureRecorders: [...deps.structureRecorders],
106
+ }),
107
+ description: 'Capture turn payload (finalContent + newMessages)',
108
+ });
109
+ for (const m of deps.memories) {
110
+ if (m.write) {
111
+ finalBranchBuilder = mountMemoryWrite(finalBranchBuilder, {
112
+ pipeline: {
113
+ read: unwrapMemoryFlowChart(m.read),
114
+ write: unwrapMemoryFlowChart(m.write),
115
+ },
116
+ identityKey: 'runIdentity',
117
+ turnNumberKey: 'turnNumber',
118
+ contextTokensKey: 'contextTokensRemaining',
119
+ newMessagesKey: 'newMessages',
120
+ writeSubflowId: `sf-memory-write-${m.id}`,
121
+ });
122
+ }
123
+ }
124
+ const finalBranchChart = finalBranchBuilder
125
+ .addFunction('BreakFinal', breakFinalStage, 'break-final', 'Terminate the ReAct loop')
126
+ .build();
127
+ // ── Inner sf-llm-call subflow ────────────────────────────────
128
+ // The full context-engineering + call region. Every mount below is
129
+ // copied verbatim from buildAgentChart — only the PARENT scope is
130
+ // now the sf-llm-call scope instead of the flat agent scope, and
131
+ // the keys those mappers read are all present there (read-only keys
132
+ // via the boundary inputMapper, working keys via dynamicTurnSeed).
133
+ let inner = flowChart('TurnSeed', dynamicTurnSeed, 'turn-seed', {
134
+ ...(deps.structureRecorders !== undefined && {
135
+ structureRecorders: [...deps.structureRecorders],
136
+ }),
137
+ // The `LLMCall:` prefix is DELIBERATE and load-bearing: Lens reads it
138
+ // to render this subflow as an LLM group (the keystone goal), mirroring
139
+ // the marker LLMCall.ts emits. The agent-ness is carried by the OUTER
140
+ // chart's `Agent: ReAct loop` description — so this does NOT mislabel
141
+ // the agent boundary (confirmed in the proposal's 7-person review).
142
+ description: 'LLMCall: invocation internals',
143
+ })
144
+ .addSubFlowChartNext(SUBFLOW_IDS.INJECTION_ENGINE, deps.injectionEngineSubflow, 'Injection Engine', {
145
+ inputMapper: (parent) => ({
146
+ iteration: parent.iteration,
147
+ userMessage: parent.userMessage,
148
+ history: parent.history,
149
+ lastToolResult: parent.lastToolResult,
150
+ activatedInjectionIds: parent.activatedInjectionIds ?? [],
151
+ }),
152
+ outputMapper: (sf) => ({ activeInjections: sf.activeInjections }),
153
+ arrayMerge: ArrayMergeMode.Replace,
154
+ })
155
+ // ── Context assembly: the 3 slots run in PARALLEL (selector fan-out) ──
156
+ // Identical to buildAgentChart's fork, just nested inside the sf-llm-call
157
+ // inner chart. The slots are independent (each reads only InjectionEngine's
158
+ // activeInjections + turn-seed state, each writes a disjoint output key),
159
+ // so concurrent execution is faithful. failFast: true — a required slot
160
+ // that throws aborts the turn (the default allSettled would swallow it).
161
+ .addSelectorFunction('Context', ((scope) => select(scope, [
162
+ { when: () => true, then: SUBFLOW_IDS.SYSTEM_PROMPT, label: 'engineer system-prompt' },
163
+ { when: () => true, then: SUBFLOW_IDS.MESSAGES, label: 'engineer messages' },
164
+ { when: () => true, then: SUBFLOW_IDS.TOOLS, label: 'engineer tools' },
165
+ ])), STAGE_IDS.CONTEXT, 'Assemble request context: system-prompt + messages + tools (parallel)', { failFast: true })
166
+ // Branch mappers + arrayMerge:Replace VERBATIM from the former sequential
167
+ // mounts (Replace is load-bearing — loopTo would otherwise accumulate).
168
+ .addSubFlowChartBranch(SUBFLOW_IDS.SYSTEM_PROMPT, deps.systemPromptSubflow, 'System Prompt', {
169
+ inputMapper: (parent) => ({
170
+ userMessage: parent.userMessage,
171
+ iteration: parent.iteration,
172
+ activeInjections: parent.activeInjections,
173
+ }),
174
+ outputMapper: (sf) => ({ systemPromptInjections: sf.systemPromptInjections }),
175
+ arrayMerge: ArrayMergeMode.Replace,
176
+ })
177
+ .addSubFlowChartBranch(SUBFLOW_IDS.MESSAGES, deps.messagesSubflow, 'Messages', {
178
+ inputMapper: (parent) => ({
179
+ messages: parent.history,
180
+ iteration: parent.iteration,
181
+ activeInjections: parent.activeInjections,
182
+ }),
183
+ outputMapper: (sf) => ({ messagesInjections: sf.messagesInjections }),
184
+ arrayMerge: ArrayMergeMode.Replace,
185
+ })
186
+ .addSubFlowChartBranch(SUBFLOW_IDS.TOOLS, deps.toolsSubflow, 'Tools', {
187
+ inputMapper: (parent) => ({
188
+ iteration: parent.iteration,
189
+ activeInjections: parent.activeInjections,
190
+ activatedInjectionIds: parent.activatedInjectionIds,
191
+ runIdentity: parent.runIdentity,
192
+ }),
193
+ outputMapper: (sf) => ({
194
+ toolsInjections: sf.toolsInjections,
195
+ dynamicToolSchemas: sf.toolSchemas,
196
+ }),
197
+ arrayMerge: ArrayMergeMode.Replace,
198
+ // STRUCTURE-ONLY merge target. When skills are off, UpdateSkillHistory
199
+ // is omitted, so the fan-out must converge onto sf-cache instead — the
200
+ // convergeAt target has to be a node that actually exists.
201
+ convergeAt: deps.hasSkills ? STAGE_IDS.UPDATE_SKILL_HISTORY : SUBFLOW_IDS.CACHE,
202
+ })
203
+ .end();
204
+ // ── Skill-churn window (cache concern) — conditional mount ───────
205
+ // Mounted only when skills are registered (see buildAgentChart for the full
206
+ // rationale: with no skills the window can never show churn, so the stage is
207
+ // dead weight). UpdateSkillHistory stays in the loop (skillHistory must
208
+ // persist across iterations); sf-cache is the pure decision layer.
209
+ if (deps.hasSkills) {
210
+ inner = inner.addFunction('UpdateSkillHistory', deps.updateSkillHistoryStage, STAGE_IDS.UPDATE_SKILL_HISTORY, 'Update skill-history rolling window for CacheGate churn detection');
211
+ }
212
+ inner = inner
213
+ .addSubFlowChartNext(SUBFLOW_IDS.CACHE, buildCacheSubflow(), 'Cache', {
214
+ inputMapper: (parent) => ({
215
+ activeInjections: parent.activeInjections ?? [],
216
+ iteration: parent.iteration ?? 1,
217
+ maxIterations: parent.maxIterations ?? deps.maxIterations,
218
+ userMessage: parent.userMessage ?? '',
219
+ ...(parent.lastToolResult !== undefined && {
220
+ lastToolName: parent.lastToolResult?.toolName,
221
+ }),
222
+ cumulativeInputTokens: parent.totalInputTokens ?? 0,
223
+ systemPromptCachePolicy: deps.systemPromptCachePolicy,
224
+ cachingDisabled: parent.cachingDisabled ?? false,
225
+ recentHitRate: parent.recentHitRate,
226
+ skillHistory: parent.skillHistory ?? [],
227
+ }),
228
+ outputMapper: (sf) => ({ cacheMarkers: sf.cacheMarkers }),
229
+ arrayMerge: ArrayMergeMode.Replace,
230
+ })
231
+ // CallLLM emits the per-iteration `iteration_start` marker itself (no
232
+ // dedicated IterationStart stage — emitting is passive observability).
233
+ .addFunction('CallLLM', deps.callLLM, STAGE_IDS.CALL_LLM, 'LLM invocation');
234
+ if (deps.thinkingSubflow) {
235
+ inner = inner.addSubFlowChartNext(SUBFLOW_IDS.THINKING, deps.thinkingSubflow, 'NormalizeThinking', {
236
+ inputMapper: (parent) => ({
237
+ rawThinking: parent.rawThinking,
238
+ iteration: parent.iteration,
239
+ }),
240
+ outputMapper: (sf) => ({ thinkingBlocks: sf.thinkingBlocks }),
241
+ arrayMerge: ArrayMergeMode.Replace,
242
+ });
243
+ }
244
+ const llmCallSubflow = inner.build();
245
+ // ── Outer chart ──────────────────────────────────────────────
246
+ // Description prefix `Agent:` is the taxonomy marker Lens reads to
247
+ // flag this as a true agent boundary.
248
+ let builder = flowChart('Initialize', deps.seed, STAGE_IDS.SEED, {
249
+ ...(deps.structureRecorders !== undefined && {
250
+ structureRecorders: [...deps.structureRecorders],
251
+ }),
252
+ description: 'Agent: ReAct loop',
253
+ });
254
+ // Memory READ subflows — TURN_START timing (once per turn, OUTSIDE
255
+ // the LLM-call loop body). Each writes `memoryInjection_${id}` to the
256
+ // outer scope; the boundary inputMapper below threads those into the
257
+ // subflow so the slots consume them.
258
+ for (const m of deps.memories) {
259
+ builder = mountMemoryRead(builder, {
260
+ pipeline: {
261
+ read: unwrapMemoryFlowChart(m.read),
262
+ ...(m.write !== undefined && { write: unwrapMemoryFlowChart(m.write) }),
263
+ },
264
+ identityKey: 'runIdentity',
265
+ turnNumberKey: 'turnNumber',
266
+ contextTokensKey: 'contextTokensRemaining',
267
+ injectionKey: memoryInjectionKey(m.id),
268
+ readSubflowId: `sf-memory-read-${m.id}`,
269
+ });
270
+ }
271
+ builder = builder
272
+ .addSubFlowChartNext(SUBFLOW_IDS.LLM_CALL, llmCallSubflow, 'LLM', {
273
+ inputMapper: (parent) => {
274
+ const p = parent;
275
+ // Per-memory injection content the slots consume inside.
276
+ const memoryKeys = {};
277
+ for (const m of deps.memories) {
278
+ const key = memoryInjectionKey(m.id);
279
+ memoryKeys[key] = p[key];
280
+ }
281
+ return {
282
+ // Read-only working inputs (stages read, never write these).
283
+ userMessage: p.userMessage,
284
+ iteration: p.iteration,
285
+ history: p.history,
286
+ maxIterations: p.maxIterations,
287
+ runIdentity: p.runIdentity,
288
+ cachingDisabled: p.cachingDisabled,
289
+ recentHitRate: p.recentHitRate,
290
+ activatedInjectionIds: p.activatedInjectionIds,
291
+ lastToolResult: p.lastToolResult,
292
+ ...memoryKeys,
293
+ // Cross-iteration accumulators under prior* aliases — frozen
294
+ // here, copied to writable working keys by dynamicTurnSeed.
295
+ priorTotalInputTokens: p.totalInputTokens,
296
+ priorTotalOutputTokens: p.totalOutputTokens,
297
+ priorCumTokensInput: p.cumTokensInput,
298
+ priorCumTokensOutput: p.cumTokensOutput,
299
+ priorCumEstimatedUsd: p.cumEstimatedUsd,
300
+ priorCostBudgetHit: p.costBudgetHit,
301
+ priorSkillHistory: p.skillHistory,
302
+ };
303
+ },
304
+ outputMapper: (sf) => {
305
+ const s = sf;
306
+ return {
307
+ // LLM result the outer Route / tool-calls / final read.
308
+ llmLatestContent: s.llmLatestContent,
309
+ llmLatestToolCalls: s.llmLatestToolCalls,
310
+ thinkingBlocks: s.thinkingBlocks,
311
+ // NOTE: dynamicToolSchemas is intentionally NOT bubbled out — it
312
+ // is written by the Tools slot and read ONLY by callLLM, both
313
+ // inside sf-llm-call. The outer Route reads llmLatestToolCalls
314
+ // (which IS bubbled above), not the schemas.
315
+ // Accumulators bubbled back for the next iteration's inputMapper.
316
+ totalInputTokens: s.totalInputTokens,
317
+ totalOutputTokens: s.totalOutputTokens,
318
+ cumTokensInput: s.cumTokensInput,
319
+ cumTokensOutput: s.cumTokensOutput,
320
+ cumEstimatedUsd: s.cumEstimatedUsd,
321
+ costBudgetHit: s.costBudgetHit,
322
+ skillHistory: s.skillHistory,
323
+ };
324
+ },
325
+ // llmLatestToolCalls / thinkingBlocks / skillHistory are arrays —
326
+ // REPLACE (not concat) so each turn overwrites the prior value.
327
+ arrayMerge: ArrayMergeMode.Replace,
328
+ })
329
+ .addDeciderFunction('Route', deps.routeDecider, SUBFLOW_IDS.ROUTE, 'ReAct routing')
330
+ .addPausableFunctionBranch('tool-calls', 'ToolCalls', deps.toolCallsHandler, 'Tool execution (pausable via pauseHere)',
331
+ // Branch-sourced loop: tool-calls loops back to the LLM-call subflow so
332
+ // every iteration re-runs the full context-engineering + call against the
333
+ // freshest outer state. Sourced from the BRANCH (not the decider) so the
334
+ // chart reads honestly — `ToolCalls → LLM` loops, `Final` terminates.
335
+ // Survives pause/resume (human-in-the-loop tool approval): the engine
336
+ // resolves the subflow loop target on resume — footprintjs
337
+ // FlowChartExecutor.resume + test/lib/pause/resume-branch-loop-subflow.
338
+ { loopTo: SUBFLOW_IDS.LLM_CALL })
339
+ .addSubFlowChartBranch(SUBFLOW_IDS.FINAL, finalBranchChart, 'Final', {
340
+ inputMapper: (parent) => {
341
+ const { finalContent: _f, newMessages: _nm, ...rest } = parent;
342
+ void _f;
343
+ void _nm;
344
+ return rest;
345
+ },
346
+ outputMapper: (sf) => ({
347
+ finalContent: sf.finalContent,
348
+ }),
349
+ // `final` is a terminal LEAF under the branch-sourced loop; propagateBreak
350
+ // is kept for the terminal onBreak signal (observability), not loop control.
351
+ propagateBreak: true,
352
+ })
353
+ .setDefault(SUBFLOW_IDS.FINAL)
354
+ .end();
355
+ // The ReAct loop is now sourced from the `tool-calls` branch (the
356
+ // `{ loopTo }` above), not the decider — so `Final` is a plain terminal leaf
357
+ // and the chart draws `ToolCalls → LLM` for the loop edge.
358
+ return builder.build();
359
+ }
360
+ //# sourceMappingURL=buildDynamicAgentChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDynamicAgentChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildDynamicAgentChart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * buildMessageApiChart — PROOF of the locked "messageAPI merge-tree" shape
3
+ * (MENTAL_MODEL.md ★ LOCKED DESIGN), LLM-only (no tools subflow yet).
4
+ *
5
+ * This is Step 1 of the agreed build order: prove the Context-selector →
6
+ * slot subflows → messageAPI stage → Call-LLM tree works + renders, BEFORE
7
+ * bringing it to the Agent (Step 2 adds the tools subflow + the loop).
8
+ *
9
+ * Chart shape (LLM-only):
10
+ *
11
+ * Seed
12
+ * → Context (SELECTOR stage — picks which slots to engineer)
13
+ * ├─ sf-system-prompt ┐ (selected branches run in parallel)
14
+ * └─ sf-messages ──────┴─→ messageAPI stage (the join point)
15
+ * → Call-LLM
16
+ *
17
+ * WHY a selector (not a plain fork): "Context = Selector stage" — it RETURNS
18
+ * the list of slot branch ids to engineer this iteration, and `select()`
19
+ * captures evidence (which slots + why). That is what will unify Static and
20
+ * Dynamic agent in ONE chart later: Static picks only `messages` per loop;
21
+ * Dynamic also picks `system-prompt` (and `tools`) when they re-engineer.
22
+ * The picked-set IS the lit/unlit-pill signal. For this LLM-only proof the
23
+ * selector picks BOTH slots (a one-shot call engineers everything once).
24
+ *
25
+ * WHY messageAPI is a REAL stage: it assembles the LLM request bulk that the
26
+ * agent's `callLLM` builds invisibly today (callLLM.ts:132) — `systemPrompt`
27
+ * (separate field) + `messages` (the conversation, incl. tool-results) → the
28
+ * message-API payload. Making it a stage makes that assembly visible +
29
+ * inspectable in Lens/Trace. (Tools is a separate field added at Call-LLM —
30
+ * it joins in Step 2.)
31
+ *
32
+ * Slots are REAL subflows (reused verbatim: buildSystemPromptSlot /
33
+ * buildMessagesSlot) writing the convention INJECTION_KEYS, so ContextRecorder
34
+ * emits context.injected and Lens renders them — no bespoke collapser.
35
+ */
36
+ import { flowChartSelector, select } from 'footprintjs';
37
+ import { SUBFLOW_IDS } from '../../conventions.js';
38
+ import { typedEmit } from '../../recorders/core/typedEmit.js';
39
+ import { buildSystemPromptSlot } from '../slots/buildSystemPromptSlot.js';
40
+ import { buildMessagesSlot } from '../slots/buildMessagesSlot.js';
41
+ /**
42
+ * Build the LLM-only messageAPI merge-tree chart.
43
+ */
44
+ export function buildMessageApiChart(deps) {
45
+ const { provider, model, systemPrompt } = deps;
46
+ // ── Context: the ROOT SELECTOR. It runs FIRST — initialising the per-call
47
+ // state from the run input (the old "seed" work, now folded in: there is no
48
+ // separate seed stage), then returning which slot branches to engineer.
49
+ //
50
+ // select() collects one `then` PER matching rule, so multi-select = one rule
51
+ // per slot (a single `then` array would be coerced to one bogus id). For a
52
+ // one-shot LLM call both slots match → both branches run. select() captures
53
+ // evidence so a consumer sees WHICH slots were chosen + why (the lit/unlit-
54
+ // pill source that later distinguishes Static vs Dynamic). ──
55
+ const contextSelector = (scope) => {
56
+ // Init (formerly the seed stage) — Context is the chart's first node.
57
+ const args = scope.$getArgs();
58
+ scope.userMessage = args.message;
59
+ scope.history = [{ role: 'user', content: args.message }];
60
+ scope.iteration = 1;
61
+ scope.systemPromptInjections = [];
62
+ scope.messagesInjections = [];
63
+ scope.assembledSystem = '';
64
+ scope.assembledMessages = [];
65
+ scope.answer = '';
66
+ return select(scope, [
67
+ { when: () => true, then: SUBFLOW_IDS.SYSTEM_PROMPT, label: 'engineer system-prompt' },
68
+ { when: () => true, then: SUBFLOW_IDS.MESSAGES, label: 'engineer messages' },
69
+ ]);
70
+ };
71
+ // ── messageAPI: assemble the request bulk (system + messages). This is
72
+ // the assembly callLLM does invisibly today, surfaced as a real stage. ──
73
+ const messageApiStage = (scope) => {
74
+ const sysInjections = (scope.systemPromptInjections ?? []);
75
+ scope.assembledSystem = sysInjections
76
+ .map((r) => r.rawContent ?? '')
77
+ .filter((s) => s.length > 0)
78
+ .join('\n\n');
79
+ // The conversation (incl. any tool-result messages) IS the message
80
+ // stream — read from history directly (same as the agent's callLLM).
81
+ // Materialise a plain array (history is a reactive proxy ref).
82
+ scope.assembledMessages = [...(scope.history ?? [])];
83
+ typedEmit(scope, 'agentfootprint.context.slot_composed', {
84
+ slot: 'messages',
85
+ iteration: scope.iteration,
86
+ budget: { cap: 0, used: 0, headroomChars: 0 },
87
+ sourceBreakdown: {},
88
+ droppedCount: 0,
89
+ droppedSummaries: [],
90
+ });
91
+ };
92
+ // ── Call-LLM: send the assembled payload, write the answer. ──
93
+ const callLLM = async (scope) => {
94
+ const system = scope.assembledSystem;
95
+ const messages = (scope.assembledMessages ?? []);
96
+ typedEmit(scope, 'agentfootprint.stream.llm_start', {
97
+ iteration: scope.iteration,
98
+ provider: provider.name,
99
+ model,
100
+ systemPromptChars: system.length,
101
+ messagesCount: messages.length,
102
+ toolsCount: 0,
103
+ });
104
+ const startMs = Date.now();
105
+ const response = await provider.complete({
106
+ ...(system.length > 0 && { systemPrompt: system }),
107
+ messages,
108
+ model,
109
+ });
110
+ scope.answer = response.content;
111
+ typedEmit(scope, 'agentfootprint.stream.llm_end', {
112
+ iteration: scope.iteration,
113
+ content: response.content,
114
+ toolCallCount: response.toolCalls.length,
115
+ usage: response.usage,
116
+ stopReason: response.stopReason,
117
+ durationMs: Date.now() - startMs,
118
+ });
119
+ };
120
+ // ── Build the tree — Context is the ROOT selector (no seed stage). ──
121
+ const builder = flowChartSelector('Context', contextSelector, 'context', {
122
+ ...(deps.structureRecorders !== undefined && {
123
+ structureRecorders: [...deps.structureRecorders],
124
+ }),
125
+ // 'LLMCall:' taxonomy marker → Lens renders this as an LLM group.
126
+ description: 'LLMCall: messageAPI merge-tree',
127
+ })
128
+ .addSubFlowChartBranch(SUBFLOW_IDS.SYSTEM_PROMPT, buildSystemPromptSlot({ prompt: systemPrompt, reason: 'messageAPI proof' }), 'System Prompt', {
129
+ inputMapper: (parent) => ({
130
+ userMessage: parent.userMessage,
131
+ iteration: parent.iteration,
132
+ }),
133
+ outputMapper: (sf) => ({
134
+ systemPromptInjections: sf.systemPromptInjections,
135
+ }),
136
+ })
137
+ .addSubFlowChartBranch(SUBFLOW_IDS.MESSAGES, buildMessagesSlot(), 'Messages', {
138
+ inputMapper: (parent) => ({
139
+ messages: parent.history,
140
+ iteration: parent.iteration,
141
+ }),
142
+ outputMapper: (sf) => ({ messagesInjections: sf.messagesInjections }),
143
+ })
144
+ .end()
145
+ // Join point — runs after the selected slot branches converge.
146
+ .addFunction('messageAPI', messageApiStage, 'message-api', 'Assemble system + messages into the LLM request')
147
+ .addFunction('CallLLM', callLLM, 'call-llm', 'Send the assembled request to the LLM');
148
+ return builder.build();
149
+ }
150
+ //# sourceMappingURL=buildMessageApiChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMessageApiChart.js","sourceRoot":"","sources":["../../../../src/core/agent/buildMessageApiChart.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,15 @@ export function buildCallLLMStage(deps) {
33
33
  // `scope.messagesInjections` is read by ContextRecorder for
34
34
  // observability; the LLM-wire path now reads scope.history directly.
35
35
  const iteration = scope.iteration;
36
+ // Per-iteration boundary marker (was a dedicated `IterationStart` stage —
37
+ // folded here since emitting is passive observability, not work that needs
38
+ // its own execution stage). Fires FIRST, before the LLM call, so recorders
39
+ // still bracket each ReAct iteration. Payload unchanged (turnIndex reserved
40
+ // for future multi-turn; iterIndex is the per-iteration counter).
41
+ typedEmit(scope, 'agentfootprint.agent.iteration_start', {
42
+ turnIndex: 0,
43
+ iterIndex: iteration,
44
+ });
36
45
  const systemPrompt = systemPromptInjections
37
46
  .map((r) => r.rawContent ?? '')
38
47
  .filter((s) => s.length > 0)
@@ -120,6 +129,8 @@ export function buildCallLLMStage(deps) {
120
129
  }
121
130
  if (!resp) {
122
131
  // No `stream()` OR stream finished without a response payload.
132
+ // Raw errors propagate so the reliability loop can classify them;
133
+ // friendly translation happens at the terminal ErrorBridge.
123
134
  resp = await deps.provider.complete(req);
124
135
  }
125
136
  return resp;
@@ -1 +1 @@
1
- {"version":3,"file":"callLLM.js","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callLLM.js","sourceRoot":"","sources":["../../../../../src/core/agent/stages/callLLM.ts"],"names":[],"mappings":"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"}