agentfootprint 1.0.0

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 (960) hide show
  1. package/AGENTS.md +297 -0
  2. package/CLAUDE.md +297 -0
  3. package/LICENSE +21 -0
  4. package/README.md +339 -0
  5. package/ai-instructions/claude-code/SKILL.md +597 -0
  6. package/ai-instructions/clinerules +85 -0
  7. package/ai-instructions/copilot-instructions.md +109 -0
  8. package/ai-instructions/cursor/agentfootprint.md +101 -0
  9. package/ai-instructions/kiro/agentfootprint.md +101 -0
  10. package/ai-instructions/setup.sh +140 -0
  11. package/ai-instructions/windsurfrules +85 -0
  12. package/dist/adapters/a2a/a2aRunner.js +36 -0
  13. package/dist/adapters/a2a/a2aRunner.js.map +1 -0
  14. package/dist/adapters/anthropic/AnthropicAdapter.js +293 -0
  15. package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -0
  16. package/dist/adapters/bedrock/BedrockAdapter.js +313 -0
  17. package/dist/adapters/bedrock/BedrockAdapter.js.map +1 -0
  18. package/dist/adapters/browser/BrowserAnthropicAdapter.js +349 -0
  19. package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -0
  20. package/dist/adapters/browser/BrowserOpenAIAdapter.js +303 -0
  21. package/dist/adapters/browser/BrowserOpenAIAdapter.js.map +1 -0
  22. package/dist/adapters/browser/index.js +8 -0
  23. package/dist/adapters/browser/index.js.map +1 -0
  24. package/dist/adapters/createAdapterSubflow.js +46 -0
  25. package/dist/adapters/createAdapterSubflow.js.map +1 -0
  26. package/dist/adapters/createProvider.js +107 -0
  27. package/dist/adapters/createProvider.js.map +1 -0
  28. package/dist/adapters/fallbackProvider.js +94 -0
  29. package/dist/adapters/fallbackProvider.js.map +1 -0
  30. package/dist/adapters/index.js +47 -0
  31. package/dist/adapters/index.js.map +1 -0
  32. package/dist/adapters/mcp/mcpToolProvider.js +44 -0
  33. package/dist/adapters/mcp/mcpToolProvider.js.map +1 -0
  34. package/dist/adapters/memory/inMemory.js +38 -0
  35. package/dist/adapters/memory/inMemory.js.map +1 -0
  36. package/dist/adapters/memory/index.js +6 -0
  37. package/dist/adapters/memory/index.js.map +1 -0
  38. package/dist/adapters/memory/stores.js +137 -0
  39. package/dist/adapters/memory/stores.js.map +1 -0
  40. package/dist/adapters/memory/types.js +14 -0
  41. package/dist/adapters/memory/types.js.map +1 -0
  42. package/dist/adapters/mock/MockAdapter.js +66 -0
  43. package/dist/adapters/mock/MockAdapter.js.map +1 -0
  44. package/dist/adapters/mock/MockRetriever.js +61 -0
  45. package/dist/adapters/mock/MockRetriever.js.map +1 -0
  46. package/dist/adapters/openai/OpenAIAdapter.js +276 -0
  47. package/dist/adapters/openai/OpenAIAdapter.js.map +1 -0
  48. package/dist/adapters/resilientProvider.js +93 -0
  49. package/dist/adapters/resilientProvider.js.map +1 -0
  50. package/dist/compositions/index.js +17 -0
  51. package/dist/compositions/index.js.map +1 -0
  52. package/dist/compositions/withCircuitBreaker.js +84 -0
  53. package/dist/compositions/withCircuitBreaker.js.map +1 -0
  54. package/dist/compositions/withFallback.js +33 -0
  55. package/dist/compositions/withFallback.js.map +1 -0
  56. package/dist/compositions/withRetry.js +59 -0
  57. package/dist/compositions/withRetry.js.map +1 -0
  58. package/dist/concepts/FlowChart.js +205 -0
  59. package/dist/concepts/FlowChart.js.map +1 -0
  60. package/dist/concepts/LLMCall.js +160 -0
  61. package/dist/concepts/LLMCall.js.map +1 -0
  62. package/dist/concepts/Parallel.js +254 -0
  63. package/dist/concepts/Parallel.js.map +1 -0
  64. package/dist/concepts/RAG.js +198 -0
  65. package/dist/concepts/RAG.js.map +1 -0
  66. package/dist/concepts/Swarm.js +270 -0
  67. package/dist/concepts/Swarm.js.map +1 -0
  68. package/dist/concepts/index.js +23 -0
  69. package/dist/concepts/index.js.map +1 -0
  70. package/dist/concepts/specIcons.js +48 -0
  71. package/dist/concepts/specIcons.js.map +1 -0
  72. package/dist/core/config.js +7 -0
  73. package/dist/core/config.js.map +1 -0
  74. package/dist/core/index.js +14 -0
  75. package/dist/core/index.js.map +1 -0
  76. package/dist/core/providers.js +19 -0
  77. package/dist/core/providers.js.map +1 -0
  78. package/dist/core/recorders.js +7 -0
  79. package/dist/core/recorders.js.map +1 -0
  80. package/dist/esm/adapters/a2a/a2aRunner.js +32 -0
  81. package/dist/esm/adapters/a2a/a2aRunner.js.map +1 -0
  82. package/dist/esm/adapters/anthropic/AnthropicAdapter.js +289 -0
  83. package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -0
  84. package/dist/esm/adapters/bedrock/BedrockAdapter.js +309 -0
  85. package/dist/esm/adapters/bedrock/BedrockAdapter.js.map +1 -0
  86. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +345 -0
  87. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -0
  88. package/dist/esm/adapters/browser/BrowserOpenAIAdapter.js +299 -0
  89. package/dist/esm/adapters/browser/BrowserOpenAIAdapter.js.map +1 -0
  90. package/dist/esm/adapters/browser/index.js +3 -0
  91. package/dist/esm/adapters/browser/index.js.map +1 -0
  92. package/dist/esm/adapters/createAdapterSubflow.js +42 -0
  93. package/dist/esm/adapters/createAdapterSubflow.js.map +1 -0
  94. package/dist/esm/adapters/createProvider.js +101 -0
  95. package/dist/esm/adapters/createProvider.js.map +1 -0
  96. package/dist/esm/adapters/fallbackProvider.js +90 -0
  97. package/dist/esm/adapters/fallbackProvider.js.map +1 -0
  98. package/dist/esm/adapters/index.js +23 -0
  99. package/dist/esm/adapters/index.js.map +1 -0
  100. package/dist/esm/adapters/mcp/mcpToolProvider.js +40 -0
  101. package/dist/esm/adapters/mcp/mcpToolProvider.js.map +1 -0
  102. package/dist/esm/adapters/memory/inMemory.js +34 -0
  103. package/dist/esm/adapters/memory/inMemory.js.map +1 -0
  104. package/dist/esm/adapters/memory/index.js +2 -0
  105. package/dist/esm/adapters/memory/index.js.map +1 -0
  106. package/dist/esm/adapters/memory/stores.js +131 -0
  107. package/dist/esm/adapters/memory/stores.js.map +1 -0
  108. package/dist/esm/adapters/memory/types.js +13 -0
  109. package/dist/esm/adapters/memory/types.js.map +1 -0
  110. package/dist/esm/adapters/mock/MockAdapter.js +61 -0
  111. package/dist/esm/adapters/mock/MockAdapter.js.map +1 -0
  112. package/dist/esm/adapters/mock/MockRetriever.js +56 -0
  113. package/dist/esm/adapters/mock/MockRetriever.js.map +1 -0
  114. package/dist/esm/adapters/openai/OpenAIAdapter.js +272 -0
  115. package/dist/esm/adapters/openai/OpenAIAdapter.js.map +1 -0
  116. package/dist/esm/adapters/resilientProvider.js +89 -0
  117. package/dist/esm/adapters/resilientProvider.js.map +1 -0
  118. package/dist/esm/compositions/index.js +10 -0
  119. package/dist/esm/compositions/index.js.map +1 -0
  120. package/dist/esm/compositions/withCircuitBreaker.js +79 -0
  121. package/dist/esm/compositions/withCircuitBreaker.js.map +1 -0
  122. package/dist/esm/compositions/withFallback.js +29 -0
  123. package/dist/esm/compositions/withFallback.js.map +1 -0
  124. package/dist/esm/compositions/withRetry.js +55 -0
  125. package/dist/esm/compositions/withRetry.js.map +1 -0
  126. package/dist/esm/concepts/FlowChart.js +200 -0
  127. package/dist/esm/concepts/FlowChart.js.map +1 -0
  128. package/dist/esm/concepts/LLMCall.js +155 -0
  129. package/dist/esm/concepts/LLMCall.js.map +1 -0
  130. package/dist/esm/concepts/Parallel.js +249 -0
  131. package/dist/esm/concepts/Parallel.js.map +1 -0
  132. package/dist/esm/concepts/RAG.js +193 -0
  133. package/dist/esm/concepts/RAG.js.map +1 -0
  134. package/dist/esm/concepts/Swarm.js +265 -0
  135. package/dist/esm/concepts/Swarm.js.map +1 -0
  136. package/dist/esm/concepts/index.js +8 -0
  137. package/dist/esm/concepts/index.js.map +1 -0
  138. package/dist/esm/concepts/specIcons.js +44 -0
  139. package/dist/esm/concepts/specIcons.js.map +1 -0
  140. package/dist/esm/core/config.js +6 -0
  141. package/dist/esm/core/config.js.map +1 -0
  142. package/dist/esm/core/index.js +13 -0
  143. package/dist/esm/core/index.js.map +1 -0
  144. package/dist/esm/core/providers.js +18 -0
  145. package/dist/esm/core/providers.js.map +1 -0
  146. package/dist/esm/core/recorders.js +6 -0
  147. package/dist/esm/core/recorders.js.map +1 -0
  148. package/dist/esm/executor/agentLoop.js +150 -0
  149. package/dist/esm/executor/agentLoop.js.map +1 -0
  150. package/dist/esm/executor/index.js +5 -0
  151. package/dist/esm/executor/index.js.map +1 -0
  152. package/dist/esm/explain.barrel.js +19 -0
  153. package/dist/esm/explain.barrel.js.map +1 -0
  154. package/dist/esm/index.js +29 -0
  155. package/dist/esm/index.js.map +1 -0
  156. package/dist/esm/instructions.barrel.js +22 -0
  157. package/dist/esm/instructions.barrel.js.map +1 -0
  158. package/dist/esm/lib/call/callLLMStage.js +64 -0
  159. package/dist/esm/lib/call/callLLMStage.js.map +1 -0
  160. package/dist/esm/lib/call/handleResponseStage.js +49 -0
  161. package/dist/esm/lib/call/handleResponseStage.js.map +1 -0
  162. package/dist/esm/lib/call/helpers.js +164 -0
  163. package/dist/esm/lib/call/helpers.js.map +1 -0
  164. package/dist/esm/lib/call/index.js +7 -0
  165. package/dist/esm/lib/call/index.js.map +1 -0
  166. package/dist/esm/lib/call/parseResponseStage.js +48 -0
  167. package/dist/esm/lib/call/parseResponseStage.js.map +1 -0
  168. package/dist/esm/lib/call/streamingCallLLMStage.js +103 -0
  169. package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -0
  170. package/dist/esm/lib/call/toolExecutionSubflow.js +87 -0
  171. package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -0
  172. package/dist/esm/lib/call/types.js +10 -0
  173. package/dist/esm/lib/call/types.js.map +1 -0
  174. package/dist/esm/lib/concepts/Agent.js +7 -0
  175. package/dist/esm/lib/concepts/Agent.js.map +1 -0
  176. package/dist/esm/lib/concepts/AgentBuilder.js +224 -0
  177. package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -0
  178. package/dist/esm/lib/concepts/AgentRunner.js +337 -0
  179. package/dist/esm/lib/concepts/AgentRunner.js.map +1 -0
  180. package/dist/esm/lib/concepts/index.js +2 -0
  181. package/dist/esm/lib/concepts/index.js.map +1 -0
  182. package/dist/esm/lib/instructions/InstructionRecorder.js +121 -0
  183. package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -0
  184. package/dist/esm/lib/instructions/agentInstruction.js +139 -0
  185. package/dist/esm/lib/instructions/agentInstruction.js.map +1 -0
  186. package/dist/esm/lib/instructions/buildInstructionsToLLMSubflow.js +83 -0
  187. package/dist/esm/lib/instructions/buildInstructionsToLLMSubflow.js.map +1 -0
  188. package/dist/esm/lib/instructions/evaluator.js +196 -0
  189. package/dist/esm/lib/instructions/evaluator.js.map +1 -0
  190. package/dist/esm/lib/instructions/index.js +10 -0
  191. package/dist/esm/lib/instructions/index.js.map +1 -0
  192. package/dist/esm/lib/instructions/inject.js +55 -0
  193. package/dist/esm/lib/instructions/inject.js.map +1 -0
  194. package/dist/esm/lib/instructions/preview.js +88 -0
  195. package/dist/esm/lib/instructions/preview.js.map +1 -0
  196. package/dist/esm/lib/instructions/strictFollowUp.js +125 -0
  197. package/dist/esm/lib/instructions/strictFollowUp.js.map +1 -0
  198. package/dist/esm/lib/instructions/template.js +82 -0
  199. package/dist/esm/lib/instructions/template.js.map +1 -0
  200. package/dist/esm/lib/instructions/types.js +83 -0
  201. package/dist/esm/lib/instructions/types.js.map +1 -0
  202. package/dist/esm/lib/loop/buildAgentLoop.js +401 -0
  203. package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -0
  204. package/dist/esm/lib/loop/index.js +3 -0
  205. package/dist/esm/lib/loop/index.js.map +1 -0
  206. package/dist/esm/lib/loop/types.js +71 -0
  207. package/dist/esm/lib/loop/types.js.map +1 -0
  208. package/dist/esm/lib/narrative/agentRenderer.js +293 -0
  209. package/dist/esm/lib/narrative/agentRenderer.js.map +1 -0
  210. package/dist/esm/lib/narrative/groundingHelpers.js +136 -0
  211. package/dist/esm/lib/narrative/groundingHelpers.js.map +1 -0
  212. package/dist/esm/lib/narrative/index.js +3 -0
  213. package/dist/esm/lib/narrative/index.js.map +1 -0
  214. package/dist/esm/lib/slots/helpers.js +23 -0
  215. package/dist/esm/lib/slots/helpers.js.map +1 -0
  216. package/dist/esm/lib/slots/index.js +4 -0
  217. package/dist/esm/lib/slots/index.js.map +1 -0
  218. package/dist/esm/lib/slots/messages/buildMessagesSubflow.js +108 -0
  219. package/dist/esm/lib/slots/messages/buildMessagesSubflow.js.map +1 -0
  220. package/dist/esm/lib/slots/messages/index.js +2 -0
  221. package/dist/esm/lib/slots/messages/index.js.map +1 -0
  222. package/dist/esm/lib/slots/messages/types.js +10 -0
  223. package/dist/esm/lib/slots/messages/types.js.map +1 -0
  224. package/dist/esm/lib/slots/system-prompt/buildSystemPromptSubflow.js +64 -0
  225. package/dist/esm/lib/slots/system-prompt/buildSystemPromptSubflow.js.map +1 -0
  226. package/dist/esm/lib/slots/system-prompt/index.js +2 -0
  227. package/dist/esm/lib/slots/system-prompt/index.js.map +1 -0
  228. package/dist/esm/lib/slots/system-prompt/types.js +9 -0
  229. package/dist/esm/lib/slots/system-prompt/types.js.map +1 -0
  230. package/dist/esm/lib/slots/tools/buildToolsSubflow.js +67 -0
  231. package/dist/esm/lib/slots/tools/buildToolsSubflow.js.map +1 -0
  232. package/dist/esm/lib/slots/tools/index.js +2 -0
  233. package/dist/esm/lib/slots/tools/index.js.map +1 -0
  234. package/dist/esm/lib/slots/tools/types.js +11 -0
  235. package/dist/esm/lib/slots/tools/types.js.map +1 -0
  236. package/dist/esm/lib/swarm/buildSwarmRouting.js +207 -0
  237. package/dist/esm/lib/swarm/buildSwarmRouting.js.map +1 -0
  238. package/dist/esm/lib/swarm/index.js +2 -0
  239. package/dist/esm/lib/swarm/index.js.map +1 -0
  240. package/dist/esm/memory/conversationHelpers.js +56 -0
  241. package/dist/esm/memory/conversationHelpers.js.map +1 -0
  242. package/dist/esm/memory/index.js +2 -0
  243. package/dist/esm/memory/index.js.map +1 -0
  244. package/dist/esm/models/index.js +3 -0
  245. package/dist/esm/models/index.js.map +1 -0
  246. package/dist/esm/models/pricing.js +23 -0
  247. package/dist/esm/models/pricing.js.map +1 -0
  248. package/dist/esm/models/providers.js +42 -0
  249. package/dist/esm/models/providers.js.map +1 -0
  250. package/dist/esm/models/types.js +6 -0
  251. package/dist/esm/models/types.js.map +1 -0
  252. package/dist/esm/observe.barrel.js +18 -0
  253. package/dist/esm/observe.barrel.js.map +1 -0
  254. package/dist/esm/providers/index.js +12 -0
  255. package/dist/esm/providers/index.js.map +1 -0
  256. package/dist/esm/providers/messages/charBudget.js +39 -0
  257. package/dist/esm/providers/messages/charBudget.js.map +1 -0
  258. package/dist/esm/providers/messages/compositeMessages.js +33 -0
  259. package/dist/esm/providers/messages/compositeMessages.js.map +1 -0
  260. package/dist/esm/providers/messages/fullHistory.js +15 -0
  261. package/dist/esm/providers/messages/fullHistory.js.map +1 -0
  262. package/dist/esm/providers/messages/index.js +11 -0
  263. package/dist/esm/providers/messages/index.js.map +1 -0
  264. package/dist/esm/providers/messages/persistentHistory.js +40 -0
  265. package/dist/esm/providers/messages/persistentHistory.js.map +1 -0
  266. package/dist/esm/providers/messages/slidingWindow.js +24 -0
  267. package/dist/esm/providers/messages/slidingWindow.js.map +1 -0
  268. package/dist/esm/providers/messages/summaryStrategy.js +41 -0
  269. package/dist/esm/providers/messages/summaryStrategy.js.map +1 -0
  270. package/dist/esm/providers/messages/withToolPairSafety.js +76 -0
  271. package/dist/esm/providers/messages/withToolPairSafety.js.map +1 -0
  272. package/dist/esm/providers/prompt/compositePrompt.js +28 -0
  273. package/dist/esm/providers/prompt/compositePrompt.js.map +1 -0
  274. package/dist/esm/providers/prompt/index.js +8 -0
  275. package/dist/esm/providers/prompt/index.js.map +1 -0
  276. package/dist/esm/providers/prompt/skillBasedPrompt.js +37 -0
  277. package/dist/esm/providers/prompt/skillBasedPrompt.js.map +1 -0
  278. package/dist/esm/providers/prompt/static.js +9 -0
  279. package/dist/esm/providers/prompt/static.js.map +1 -0
  280. package/dist/esm/providers/prompt/template.js +20 -0
  281. package/dist/esm/providers/prompt/template.js.map +1 -0
  282. package/dist/esm/providers/tools/PermissionPolicy.js +100 -0
  283. package/dist/esm/providers/tools/PermissionPolicy.js.map +1 -0
  284. package/dist/esm/providers/tools/agentAsTool.js +47 -0
  285. package/dist/esm/providers/tools/agentAsTool.js.map +1 -0
  286. package/dist/esm/providers/tools/compositeTools.js +49 -0
  287. package/dist/esm/providers/tools/compositeTools.js.map +1 -0
  288. package/dist/esm/providers/tools/dynamicTools.js +41 -0
  289. package/dist/esm/providers/tools/dynamicTools.js.map +1 -0
  290. package/dist/esm/providers/tools/gatedTools.js +90 -0
  291. package/dist/esm/providers/tools/gatedTools.js.map +1 -0
  292. package/dist/esm/providers/tools/index.js +11 -0
  293. package/dist/esm/providers/tools/index.js.map +1 -0
  294. package/dist/esm/providers/tools/noTools.js +9 -0
  295. package/dist/esm/providers/tools/noTools.js.map +1 -0
  296. package/dist/esm/providers/tools/staticTools.js +25 -0
  297. package/dist/esm/providers/tools/staticTools.js.map +1 -0
  298. package/dist/esm/providers.barrel.js +32 -0
  299. package/dist/esm/providers.barrel.js.map +1 -0
  300. package/dist/esm/recorders/index.js +5 -0
  301. package/dist/esm/recorders/index.js.map +1 -0
  302. package/dist/esm/recorders/v2/CompositeRecorder.js +65 -0
  303. package/dist/esm/recorders/v2/CompositeRecorder.js.map +1 -0
  304. package/dist/esm/recorders/v2/CostRecorder.js +47 -0
  305. package/dist/esm/recorders/v2/CostRecorder.js.map +1 -0
  306. package/dist/esm/recorders/v2/ExplainRecorder.js +93 -0
  307. package/dist/esm/recorders/v2/ExplainRecorder.js.map +1 -0
  308. package/dist/esm/recorders/v2/GuardrailRecorder.js +58 -0
  309. package/dist/esm/recorders/v2/GuardrailRecorder.js.map +1 -0
  310. package/dist/esm/recorders/v2/OTelRecorder.js +79 -0
  311. package/dist/esm/recorders/v2/OTelRecorder.js.map +1 -0
  312. package/dist/esm/recorders/v2/PermissionRecorder.js +86 -0
  313. package/dist/esm/recorders/v2/PermissionRecorder.js.map +1 -0
  314. package/dist/esm/recorders/v2/QualityRecorder.js +48 -0
  315. package/dist/esm/recorders/v2/QualityRecorder.js.map +1 -0
  316. package/dist/esm/recorders/v2/RecorderBridge.js +85 -0
  317. package/dist/esm/recorders/v2/RecorderBridge.js.map +1 -0
  318. package/dist/esm/recorders/v2/TokenRecorder.js +72 -0
  319. package/dist/esm/recorders/v2/TokenRecorder.js.map +1 -0
  320. package/dist/esm/recorders/v2/ToolUsageRecorder.js +54 -0
  321. package/dist/esm/recorders/v2/ToolUsageRecorder.js.map +1 -0
  322. package/dist/esm/recorders/v2/TurnRecorder.js +83 -0
  323. package/dist/esm/recorders/v2/TurnRecorder.js.map +1 -0
  324. package/dist/esm/recorders/v2/agentObservability.js +62 -0
  325. package/dist/esm/recorders/v2/agentObservability.js.map +1 -0
  326. package/dist/esm/recorders/v2/index.js +13 -0
  327. package/dist/esm/recorders/v2/index.js.map +1 -0
  328. package/dist/esm/resilience.barrel.js +16 -0
  329. package/dist/esm/resilience.barrel.js.map +1 -0
  330. package/dist/esm/scope/AgentScope.js +153 -0
  331. package/dist/esm/scope/AgentScope.js.map +1 -0
  332. package/dist/esm/scope/index.js +2 -0
  333. package/dist/esm/scope/index.js.map +1 -0
  334. package/dist/esm/scope/types.js +37 -0
  335. package/dist/esm/scope/types.js.map +1 -0
  336. package/dist/esm/security.barrel.js +17 -0
  337. package/dist/esm/security.barrel.js.map +1 -0
  338. package/dist/esm/stages/augmentPrompt.js +28 -0
  339. package/dist/esm/stages/augmentPrompt.js.map +1 -0
  340. package/dist/esm/stages/callLLM.js +15 -0
  341. package/dist/esm/stages/callLLM.js.map +1 -0
  342. package/dist/esm/stages/commitMemory.js +94 -0
  343. package/dist/esm/stages/commitMemory.js.map +1 -0
  344. package/dist/esm/stages/finalize.js +12 -0
  345. package/dist/esm/stages/finalize.js.map +1 -0
  346. package/dist/esm/stages/helpers.js +58 -0
  347. package/dist/esm/stages/helpers.js.map +1 -0
  348. package/dist/esm/stages/index.js +9 -0
  349. package/dist/esm/stages/index.js.map +1 -0
  350. package/dist/esm/stages/parseResponse.js +25 -0
  351. package/dist/esm/stages/parseResponse.js.map +1 -0
  352. package/dist/esm/stages/retrieve.js +18 -0
  353. package/dist/esm/stages/retrieve.js.map +1 -0
  354. package/dist/esm/stages/runnerAsStage.js +66 -0
  355. package/dist/esm/stages/runnerAsStage.js.map +1 -0
  356. package/dist/esm/stream.barrel.js +18 -0
  357. package/dist/esm/stream.barrel.js.map +1 -0
  358. package/dist/esm/streaming/StreamEmitter.js +43 -0
  359. package/dist/esm/streaming/StreamEmitter.js.map +1 -0
  360. package/dist/esm/streaming/index.js +2 -0
  361. package/dist/esm/streaming/index.js.map +1 -0
  362. package/dist/esm/subflows/index.js +2 -0
  363. package/dist/esm/subflows/index.js.map +1 -0
  364. package/dist/esm/subflows/prepareMemory.js +83 -0
  365. package/dist/esm/subflows/prepareMemory.js.map +1 -0
  366. package/dist/esm/tools/ToolRegistry.js +84 -0
  367. package/dist/esm/tools/ToolRegistry.js.map +1 -0
  368. package/dist/esm/tools/askHuman.js +63 -0
  369. package/dist/esm/tools/askHuman.js.map +1 -0
  370. package/dist/esm/tools/index.js +3 -0
  371. package/dist/esm/tools/index.js.map +1 -0
  372. package/dist/esm/tools/validateInput.js +56 -0
  373. package/dist/esm/tools/validateInput.js.map +1 -0
  374. package/dist/esm/tools/zodToJsonSchema.js +65 -0
  375. package/dist/esm/tools/zodToJsonSchema.js.map +1 -0
  376. package/dist/esm/types/adapter.js +11 -0
  377. package/dist/esm/types/adapter.js.map +1 -0
  378. package/dist/esm/types/agent.js +5 -0
  379. package/dist/esm/types/agent.js.map +1 -0
  380. package/dist/esm/types/content.js +82 -0
  381. package/dist/esm/types/content.js.map +1 -0
  382. package/dist/esm/types/errors.js +74 -0
  383. package/dist/esm/types/errors.js.map +1 -0
  384. package/dist/esm/types/index.js +5 -0
  385. package/dist/esm/types/index.js.map +1 -0
  386. package/dist/esm/types/llm.js +6 -0
  387. package/dist/esm/types/llm.js.map +1 -0
  388. package/dist/esm/types/messages.js +24 -0
  389. package/dist/esm/types/messages.js.map +1 -0
  390. package/dist/esm/types/multiAgent.js +5 -0
  391. package/dist/esm/types/multiAgent.js.map +1 -0
  392. package/dist/esm/types/retriever.js +6 -0
  393. package/dist/esm/types/retriever.js.map +1 -0
  394. package/dist/esm/types/tools.js +5 -0
  395. package/dist/esm/types/tools.js.map +1 -0
  396. package/dist/executor/agentLoop.js +154 -0
  397. package/dist/executor/agentLoop.js.map +1 -0
  398. package/dist/executor/index.js +9 -0
  399. package/dist/executor/index.js.map +1 -0
  400. package/dist/explain.barrel.js +27 -0
  401. package/dist/explain.barrel.js.map +1 -0
  402. package/dist/index.js +74 -0
  403. package/dist/index.js.map +1 -0
  404. package/dist/instructions.barrel.js +30 -0
  405. package/dist/instructions.barrel.js.map +1 -0
  406. package/dist/lib/call/callLLMStage.js +68 -0
  407. package/dist/lib/call/callLLMStage.js.map +1 -0
  408. package/dist/lib/call/handleResponseStage.js +53 -0
  409. package/dist/lib/call/handleResponseStage.js.map +1 -0
  410. package/dist/lib/call/helpers.js +169 -0
  411. package/dist/lib/call/helpers.js.map +1 -0
  412. package/dist/lib/call/index.js +17 -0
  413. package/dist/lib/call/index.js.map +1 -0
  414. package/dist/lib/call/parseResponseStage.js +52 -0
  415. package/dist/lib/call/parseResponseStage.js.map +1 -0
  416. package/dist/lib/call/streamingCallLLMStage.js +107 -0
  417. package/dist/lib/call/streamingCallLLMStage.js.map +1 -0
  418. package/dist/lib/call/toolExecutionSubflow.js +91 -0
  419. package/dist/lib/call/toolExecutionSubflow.js.map +1 -0
  420. package/dist/lib/call/types.js +11 -0
  421. package/dist/lib/call/types.js.map +1 -0
  422. package/dist/lib/concepts/Agent.js +12 -0
  423. package/dist/lib/concepts/Agent.js.map +1 -0
  424. package/dist/lib/concepts/AgentBuilder.js +228 -0
  425. package/dist/lib/concepts/AgentBuilder.js.map +1 -0
  426. package/dist/lib/concepts/AgentRunner.js +341 -0
  427. package/dist/lib/concepts/AgentRunner.js.map +1 -0
  428. package/dist/lib/concepts/index.js +7 -0
  429. package/dist/lib/concepts/index.js.map +1 -0
  430. package/dist/lib/instructions/InstructionRecorder.js +125 -0
  431. package/dist/lib/instructions/InstructionRecorder.js.map +1 -0
  432. package/dist/lib/instructions/agentInstruction.js +144 -0
  433. package/dist/lib/instructions/agentInstruction.js.map +1 -0
  434. package/dist/lib/instructions/buildInstructionsToLLMSubflow.js +87 -0
  435. package/dist/lib/instructions/buildInstructionsToLLMSubflow.js.map +1 -0
  436. package/dist/lib/instructions/evaluator.js +202 -0
  437. package/dist/lib/instructions/evaluator.js.map +1 -0
  438. package/dist/lib/instructions/index.js +27 -0
  439. package/dist/lib/instructions/index.js.map +1 -0
  440. package/dist/lib/instructions/inject.js +59 -0
  441. package/dist/lib/instructions/inject.js.map +1 -0
  442. package/dist/lib/instructions/preview.js +92 -0
  443. package/dist/lib/instructions/preview.js.map +1 -0
  444. package/dist/lib/instructions/strictFollowUp.js +130 -0
  445. package/dist/lib/instructions/strictFollowUp.js.map +1 -0
  446. package/dist/lib/instructions/template.js +86 -0
  447. package/dist/lib/instructions/template.js.map +1 -0
  448. package/dist/lib/instructions/types.js +88 -0
  449. package/dist/lib/instructions/types.js.map +1 -0
  450. package/dist/lib/loop/buildAgentLoop.js +405 -0
  451. package/dist/lib/loop/buildAgentLoop.js.map +1 -0
  452. package/dist/lib/loop/index.js +9 -0
  453. package/dist/lib/loop/index.js.map +1 -0
  454. package/dist/lib/loop/types.js +74 -0
  455. package/dist/lib/loop/types.js.map +1 -0
  456. package/dist/lib/narrative/agentRenderer.js +297 -0
  457. package/dist/lib/narrative/agentRenderer.js.map +1 -0
  458. package/dist/lib/narrative/groundingHelpers.js +142 -0
  459. package/dist/lib/narrative/groundingHelpers.js.map +1 -0
  460. package/dist/lib/narrative/index.js +10 -0
  461. package/dist/lib/narrative/index.js.map +1 -0
  462. package/dist/lib/slots/helpers.js +28 -0
  463. package/dist/lib/slots/helpers.js.map +1 -0
  464. package/dist/lib/slots/index.js +10 -0
  465. package/dist/lib/slots/index.js.map +1 -0
  466. package/dist/lib/slots/messages/buildMessagesSubflow.js +112 -0
  467. package/dist/lib/slots/messages/buildMessagesSubflow.js.map +1 -0
  468. package/dist/lib/slots/messages/index.js +6 -0
  469. package/dist/lib/slots/messages/index.js.map +1 -0
  470. package/dist/lib/slots/messages/types.js +11 -0
  471. package/dist/lib/slots/messages/types.js.map +1 -0
  472. package/dist/lib/slots/system-prompt/buildSystemPromptSubflow.js +68 -0
  473. package/dist/lib/slots/system-prompt/buildSystemPromptSubflow.js.map +1 -0
  474. package/dist/lib/slots/system-prompt/index.js +6 -0
  475. package/dist/lib/slots/system-prompt/index.js.map +1 -0
  476. package/dist/lib/slots/system-prompt/types.js +10 -0
  477. package/dist/lib/slots/system-prompt/types.js.map +1 -0
  478. package/dist/lib/slots/tools/buildToolsSubflow.js +71 -0
  479. package/dist/lib/slots/tools/buildToolsSubflow.js.map +1 -0
  480. package/dist/lib/slots/tools/index.js +6 -0
  481. package/dist/lib/slots/tools/index.js.map +1 -0
  482. package/dist/lib/slots/tools/types.js +12 -0
  483. package/dist/lib/slots/tools/types.js.map +1 -0
  484. package/dist/lib/swarm/buildSwarmRouting.js +211 -0
  485. package/dist/lib/swarm/buildSwarmRouting.js.map +1 -0
  486. package/dist/lib/swarm/index.js +6 -0
  487. package/dist/lib/swarm/index.js.map +1 -0
  488. package/dist/memory/conversationHelpers.js +66 -0
  489. package/dist/memory/conversationHelpers.js.map +1 -0
  490. package/dist/memory/index.js +12 -0
  491. package/dist/memory/index.js.map +1 -0
  492. package/dist/models/index.js +12 -0
  493. package/dist/models/index.js.map +1 -0
  494. package/dist/models/pricing.js +27 -0
  495. package/dist/models/pricing.js.map +1 -0
  496. package/dist/models/providers.js +49 -0
  497. package/dist/models/providers.js.map +1 -0
  498. package/dist/models/types.js +7 -0
  499. package/dist/models/types.js.map +1 -0
  500. package/dist/observe.barrel.js +31 -0
  501. package/dist/observe.barrel.js.map +1 -0
  502. package/dist/providers/index.js +34 -0
  503. package/dist/providers/index.js.map +1 -0
  504. package/dist/providers/messages/charBudget.js +43 -0
  505. package/dist/providers/messages/charBudget.js.map +1 -0
  506. package/dist/providers/messages/compositeMessages.js +37 -0
  507. package/dist/providers/messages/compositeMessages.js.map +1 -0
  508. package/dist/providers/messages/fullHistory.js +19 -0
  509. package/dist/providers/messages/fullHistory.js.map +1 -0
  510. package/dist/providers/messages/index.js +22 -0
  511. package/dist/providers/messages/index.js.map +1 -0
  512. package/dist/providers/messages/persistentHistory.js +45 -0
  513. package/dist/providers/messages/persistentHistory.js.map +1 -0
  514. package/dist/providers/messages/slidingWindow.js +28 -0
  515. package/dist/providers/messages/slidingWindow.js.map +1 -0
  516. package/dist/providers/messages/summaryStrategy.js +45 -0
  517. package/dist/providers/messages/summaryStrategy.js.map +1 -0
  518. package/dist/providers/messages/withToolPairSafety.js +80 -0
  519. package/dist/providers/messages/withToolPairSafety.js.map +1 -0
  520. package/dist/providers/prompt/compositePrompt.js +32 -0
  521. package/dist/providers/prompt/compositePrompt.js.map +1 -0
  522. package/dist/providers/prompt/index.js +15 -0
  523. package/dist/providers/prompt/index.js.map +1 -0
  524. package/dist/providers/prompt/skillBasedPrompt.js +41 -0
  525. package/dist/providers/prompt/skillBasedPrompt.js.map +1 -0
  526. package/dist/providers/prompt/static.js +13 -0
  527. package/dist/providers/prompt/static.js.map +1 -0
  528. package/dist/providers/prompt/template.js +24 -0
  529. package/dist/providers/prompt/template.js.map +1 -0
  530. package/dist/providers/tools/PermissionPolicy.js +104 -0
  531. package/dist/providers/tools/PermissionPolicy.js.map +1 -0
  532. package/dist/providers/tools/agentAsTool.js +51 -0
  533. package/dist/providers/tools/agentAsTool.js.map +1 -0
  534. package/dist/providers/tools/compositeTools.js +53 -0
  535. package/dist/providers/tools/compositeTools.js.map +1 -0
  536. package/dist/providers/tools/dynamicTools.js +45 -0
  537. package/dist/providers/tools/dynamicTools.js.map +1 -0
  538. package/dist/providers/tools/gatedTools.js +94 -0
  539. package/dist/providers/tools/gatedTools.js.map +1 -0
  540. package/dist/providers/tools/index.js +21 -0
  541. package/dist/providers/tools/index.js.map +1 -0
  542. package/dist/providers/tools/noTools.js +13 -0
  543. package/dist/providers/tools/noTools.js.map +1 -0
  544. package/dist/providers/tools/staticTools.js +29 -0
  545. package/dist/providers/tools/staticTools.js.map +1 -0
  546. package/dist/providers.barrel.js +61 -0
  547. package/dist/providers.barrel.js.map +1 -0
  548. package/dist/recorders/index.js +17 -0
  549. package/dist/recorders/index.js.map +1 -0
  550. package/dist/recorders/v2/CompositeRecorder.js +69 -0
  551. package/dist/recorders/v2/CompositeRecorder.js.map +1 -0
  552. package/dist/recorders/v2/CostRecorder.js +51 -0
  553. package/dist/recorders/v2/CostRecorder.js.map +1 -0
  554. package/dist/recorders/v2/ExplainRecorder.js +97 -0
  555. package/dist/recorders/v2/ExplainRecorder.js.map +1 -0
  556. package/dist/recorders/v2/GuardrailRecorder.js +62 -0
  557. package/dist/recorders/v2/GuardrailRecorder.js.map +1 -0
  558. package/dist/recorders/v2/OTelRecorder.js +83 -0
  559. package/dist/recorders/v2/OTelRecorder.js.map +1 -0
  560. package/dist/recorders/v2/PermissionRecorder.js +90 -0
  561. package/dist/recorders/v2/PermissionRecorder.js.map +1 -0
  562. package/dist/recorders/v2/QualityRecorder.js +52 -0
  563. package/dist/recorders/v2/QualityRecorder.js.map +1 -0
  564. package/dist/recorders/v2/RecorderBridge.js +89 -0
  565. package/dist/recorders/v2/RecorderBridge.js.map +1 -0
  566. package/dist/recorders/v2/TokenRecorder.js +76 -0
  567. package/dist/recorders/v2/TokenRecorder.js.map +1 -0
  568. package/dist/recorders/v2/ToolUsageRecorder.js +58 -0
  569. package/dist/recorders/v2/ToolUsageRecorder.js.map +1 -0
  570. package/dist/recorders/v2/TurnRecorder.js +87 -0
  571. package/dist/recorders/v2/TurnRecorder.js.map +1 -0
  572. package/dist/recorders/v2/agentObservability.js +66 -0
  573. package/dist/recorders/v2/agentObservability.js.map +1 -0
  574. package/dist/recorders/v2/index.js +25 -0
  575. package/dist/recorders/v2/index.js.map +1 -0
  576. package/dist/resilience.barrel.js +25 -0
  577. package/dist/resilience.barrel.js.map +1 -0
  578. package/dist/scope/AgentScope.js +156 -0
  579. package/dist/scope/AgentScope.js.map +1 -0
  580. package/dist/scope/index.js +10 -0
  581. package/dist/scope/index.js.map +1 -0
  582. package/dist/scope/types.js +40 -0
  583. package/dist/scope/types.js.map +1 -0
  584. package/dist/security.barrel.js +22 -0
  585. package/dist/security.barrel.js.map +1 -0
  586. package/dist/stages/augmentPrompt.js +32 -0
  587. package/dist/stages/augmentPrompt.js.map +1 -0
  588. package/dist/stages/callLLM.js +19 -0
  589. package/dist/stages/callLLM.js.map +1 -0
  590. package/dist/stages/commitMemory.js +98 -0
  591. package/dist/stages/commitMemory.js.map +1 -0
  592. package/dist/stages/finalize.js +16 -0
  593. package/dist/stages/finalize.js.map +1 -0
  594. package/dist/stages/helpers.js +63 -0
  595. package/dist/stages/helpers.js.map +1 -0
  596. package/dist/stages/index.js +21 -0
  597. package/dist/stages/index.js.map +1 -0
  598. package/dist/stages/parseResponse.js +29 -0
  599. package/dist/stages/parseResponse.js.map +1 -0
  600. package/dist/stages/retrieve.js +22 -0
  601. package/dist/stages/retrieve.js.map +1 -0
  602. package/dist/stages/runnerAsStage.js +70 -0
  603. package/dist/stages/runnerAsStage.js.map +1 -0
  604. package/dist/stream.barrel.js +23 -0
  605. package/dist/stream.barrel.js.map +1 -0
  606. package/dist/streaming/StreamEmitter.js +48 -0
  607. package/dist/streaming/StreamEmitter.js.map +1 -0
  608. package/dist/streaming/index.js +7 -0
  609. package/dist/streaming/index.js.map +1 -0
  610. package/dist/subflows/index.js +6 -0
  611. package/dist/subflows/index.js.map +1 -0
  612. package/dist/subflows/prepareMemory.js +87 -0
  613. package/dist/subflows/prepareMemory.js.map +1 -0
  614. package/dist/tools/ToolRegistry.js +89 -0
  615. package/dist/tools/ToolRegistry.js.map +1 -0
  616. package/dist/tools/askHuman.js +68 -0
  617. package/dist/tools/askHuman.js.map +1 -0
  618. package/dist/tools/index.js +9 -0
  619. package/dist/tools/index.js.map +1 -0
  620. package/dist/tools/validateInput.js +61 -0
  621. package/dist/tools/validateInput.js.map +1 -0
  622. package/dist/tools/zodToJsonSchema.js +70 -0
  623. package/dist/tools/zodToJsonSchema.js.map +1 -0
  624. package/dist/types/adapter.js +14 -0
  625. package/dist/types/adapter.js.map +1 -0
  626. package/dist/types/adapters/a2a/a2aRunner.d.ts +40 -0
  627. package/dist/types/adapters/a2a/a2aRunner.d.ts.map +1 -0
  628. package/dist/types/adapters/anthropic/AnthropicAdapter.d.ts +37 -0
  629. package/dist/types/adapters/anthropic/AnthropicAdapter.d.ts.map +1 -0
  630. package/dist/types/adapters/bedrock/BedrockAdapter.d.ts +44 -0
  631. package/dist/types/adapters/bedrock/BedrockAdapter.d.ts.map +1 -0
  632. package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts +40 -0
  633. package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -0
  634. package/dist/types/adapters/browser/BrowserOpenAIAdapter.d.ts +46 -0
  635. package/dist/types/adapters/browser/BrowserOpenAIAdapter.d.ts.map +1 -0
  636. package/dist/types/adapters/browser/index.d.ts +5 -0
  637. package/dist/types/adapters/browser/index.d.ts.map +1 -0
  638. package/dist/types/adapters/createAdapterSubflow.d.ts +36 -0
  639. package/dist/types/adapters/createAdapterSubflow.d.ts.map +1 -0
  640. package/dist/types/adapters/createProvider.d.ts +47 -0
  641. package/dist/types/adapters/createProvider.d.ts.map +1 -0
  642. package/dist/types/adapters/fallbackProvider.d.ts +45 -0
  643. package/dist/types/adapters/fallbackProvider.d.ts.map +1 -0
  644. package/dist/types/adapters/index.d.ts +30 -0
  645. package/dist/types/adapters/index.d.ts.map +1 -0
  646. package/dist/types/adapters/mcp/mcpToolProvider.d.ts +41 -0
  647. package/dist/types/adapters/mcp/mcpToolProvider.d.ts.map +1 -0
  648. package/dist/types/adapters/memory/inMemory.d.ts +22 -0
  649. package/dist/types/adapters/memory/inMemory.d.ts.map +1 -0
  650. package/dist/types/adapters/memory/index.d.ts +3 -0
  651. package/dist/types/adapters/memory/index.d.ts.map +1 -0
  652. package/dist/types/adapters/memory/stores.d.ts +92 -0
  653. package/dist/types/adapters/memory/stores.d.ts.map +1 -0
  654. package/dist/types/adapters/memory/types.d.ts +74 -0
  655. package/dist/types/adapters/memory/types.d.ts.map +1 -0
  656. package/dist/types/adapters/mock/MockAdapter.d.ts +51 -0
  657. package/dist/types/adapters/mock/MockAdapter.d.ts.map +1 -0
  658. package/dist/types/adapters/mock/MockRetriever.d.ts +43 -0
  659. package/dist/types/adapters/mock/MockRetriever.d.ts.map +1 -0
  660. package/dist/types/adapters/openai/OpenAIAdapter.d.ts +47 -0
  661. package/dist/types/adapters/openai/OpenAIAdapter.d.ts.map +1 -0
  662. package/dist/types/adapters/resilientProvider.d.ts +33 -0
  663. package/dist/types/adapters/resilientProvider.d.ts.map +1 -0
  664. package/dist/types/agent.js +6 -0
  665. package/dist/types/agent.js.map +1 -0
  666. package/dist/types/compositions/index.d.ts +13 -0
  667. package/dist/types/compositions/index.d.ts.map +1 -0
  668. package/dist/types/compositions/withCircuitBreaker.d.ts +43 -0
  669. package/dist/types/compositions/withCircuitBreaker.d.ts.map +1 -0
  670. package/dist/types/compositions/withFallback.d.ts +17 -0
  671. package/dist/types/compositions/withFallback.d.ts.map +1 -0
  672. package/dist/types/compositions/withRetry.d.ts +27 -0
  673. package/dist/types/compositions/withRetry.d.ts.map +1 -0
  674. package/dist/types/concepts/FlowChart.d.ts +52 -0
  675. package/dist/types/concepts/FlowChart.d.ts.map +1 -0
  676. package/dist/types/concepts/LLMCall.d.ts +56 -0
  677. package/dist/types/concepts/LLMCall.d.ts.map +1 -0
  678. package/dist/types/concepts/Parallel.d.ts +110 -0
  679. package/dist/types/concepts/Parallel.d.ts.map +1 -0
  680. package/dist/types/concepts/RAG.d.ts +71 -0
  681. package/dist/types/concepts/RAG.d.ts.map +1 -0
  682. package/dist/types/concepts/Swarm.d.ts +98 -0
  683. package/dist/types/concepts/Swarm.d.ts.map +1 -0
  684. package/dist/types/concepts/index.d.ts +12 -0
  685. package/dist/types/concepts/index.d.ts.map +1 -0
  686. package/dist/types/concepts/specIcons.d.ts +14 -0
  687. package/dist/types/concepts/specIcons.d.ts.map +1 -0
  688. package/dist/types/content.js +97 -0
  689. package/dist/types/content.js.map +1 -0
  690. package/dist/types/core/config.d.ts +24 -0
  691. package/dist/types/core/config.d.ts.map +1 -0
  692. package/dist/types/core/index.d.ts +15 -0
  693. package/dist/types/core/index.d.ts.map +1 -0
  694. package/dist/types/core/providers.d.ts +160 -0
  695. package/dist/types/core/providers.d.ts.map +1 -0
  696. package/dist/types/core/recorders.d.ts +54 -0
  697. package/dist/types/core/recorders.d.ts.map +1 -0
  698. package/dist/types/errors.js +80 -0
  699. package/dist/types/errors.js.map +1 -0
  700. package/dist/types/executor/agentLoop.d.ts +37 -0
  701. package/dist/types/executor/agentLoop.d.ts.map +1 -0
  702. package/dist/types/executor/index.d.ts +6 -0
  703. package/dist/types/executor/index.d.ts.map +1 -0
  704. package/dist/types/explain.barrel.d.ts +20 -0
  705. package/dist/types/explain.barrel.d.ts.map +1 -0
  706. package/dist/types/index.d.ts +31 -0
  707. package/dist/types/index.d.ts.map +1 -0
  708. package/dist/types/index.js +29 -0
  709. package/dist/types/index.js.map +1 -0
  710. package/dist/types/instructions.barrel.d.ts +24 -0
  711. package/dist/types/instructions.barrel.d.ts.map +1 -0
  712. package/dist/types/lib/call/callLLMStage.d.ts +29 -0
  713. package/dist/types/lib/call/callLLMStage.d.ts.map +1 -0
  714. package/dist/types/lib/call/handleResponseStage.d.ts +35 -0
  715. package/dist/types/lib/call/handleResponseStage.d.ts.map +1 -0
  716. package/dist/types/lib/call/helpers.d.ts +64 -0
  717. package/dist/types/lib/call/helpers.d.ts.map +1 -0
  718. package/dist/types/lib/call/index.d.ts +10 -0
  719. package/dist/types/lib/call/index.d.ts.map +1 -0
  720. package/dist/types/lib/call/parseResponseStage.d.ts +21 -0
  721. package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -0
  722. package/dist/types/lib/call/streamingCallLLMStage.d.ts +23 -0
  723. package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -0
  724. package/dist/types/lib/call/toolExecutionSubflow.d.ts +70 -0
  725. package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -0
  726. package/dist/types/lib/call/types.d.ts +17 -0
  727. package/dist/types/lib/call/types.d.ts.map +1 -0
  728. package/dist/types/lib/concepts/Agent.d.ts +9 -0
  729. package/dist/types/lib/concepts/Agent.d.ts.map +1 -0
  730. package/dist/types/lib/concepts/AgentBuilder.d.ts +152 -0
  731. package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -0
  732. package/dist/types/lib/concepts/AgentRunner.d.ts +100 -0
  733. package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -0
  734. package/dist/types/lib/concepts/index.d.ts +3 -0
  735. package/dist/types/lib/concepts/index.d.ts.map +1 -0
  736. package/dist/types/lib/instructions/InstructionRecorder.d.ts +85 -0
  737. package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -0
  738. package/dist/types/lib/instructions/agentInstruction.d.ts +150 -0
  739. package/dist/types/lib/instructions/agentInstruction.d.ts.map +1 -0
  740. package/dist/types/lib/instructions/buildInstructionsToLLMSubflow.d.ts +56 -0
  741. package/dist/types/lib/instructions/buildInstructionsToLLMSubflow.d.ts.map +1 -0
  742. package/dist/types/lib/instructions/evaluator.d.ts +99 -0
  743. package/dist/types/lib/instructions/evaluator.d.ts.map +1 -0
  744. package/dist/types/lib/instructions/index.d.ts +18 -0
  745. package/dist/types/lib/instructions/index.d.ts.map +1 -0
  746. package/dist/types/lib/instructions/inject.d.ts +54 -0
  747. package/dist/types/lib/instructions/inject.d.ts.map +1 -0
  748. package/dist/types/lib/instructions/preview.d.ts +85 -0
  749. package/dist/types/lib/instructions/preview.d.ts.map +1 -0
  750. package/dist/types/lib/instructions/strictFollowUp.d.ts +88 -0
  751. package/dist/types/lib/instructions/strictFollowUp.d.ts.map +1 -0
  752. package/dist/types/lib/instructions/template.d.ts +52 -0
  753. package/dist/types/lib/instructions/template.d.ts.map +1 -0
  754. package/dist/types/lib/instructions/types.d.ts +394 -0
  755. package/dist/types/lib/instructions/types.d.ts.map +1 -0
  756. package/dist/types/lib/loop/buildAgentLoop.d.ts +67 -0
  757. package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -0
  758. package/dist/types/lib/loop/index.d.ts +5 -0
  759. package/dist/types/lib/loop/index.d.ts.map +1 -0
  760. package/dist/types/lib/loop/types.d.ts +248 -0
  761. package/dist/types/lib/loop/types.d.ts.map +1 -0
  762. package/dist/types/lib/narrative/agentRenderer.d.ts +51 -0
  763. package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -0
  764. package/dist/types/lib/narrative/groundingHelpers.d.ts +94 -0
  765. package/dist/types/lib/narrative/groundingHelpers.d.ts.map +1 -0
  766. package/dist/types/lib/narrative/index.d.ts +5 -0
  767. package/dist/types/lib/narrative/index.d.ts.map +1 -0
  768. package/dist/types/lib/slots/helpers.d.ts +16 -0
  769. package/dist/types/lib/slots/helpers.d.ts.map +1 -0
  770. package/dist/types/lib/slots/index.d.ts +7 -0
  771. package/dist/types/lib/slots/index.d.ts.map +1 -0
  772. package/dist/types/lib/slots/messages/buildMessagesSubflow.d.ts +40 -0
  773. package/dist/types/lib/slots/messages/buildMessagesSubflow.d.ts.map +1 -0
  774. package/dist/types/lib/slots/messages/index.d.ts +3 -0
  775. package/dist/types/lib/slots/messages/index.d.ts.map +1 -0
  776. package/dist/types/lib/slots/messages/types.d.ts +26 -0
  777. package/dist/types/lib/slots/messages/types.d.ts.map +1 -0
  778. package/dist/types/lib/slots/system-prompt/buildSystemPromptSubflow.d.ts +27 -0
  779. package/dist/types/lib/slots/system-prompt/buildSystemPromptSubflow.d.ts.map +1 -0
  780. package/dist/types/lib/slots/system-prompt/index.d.ts +3 -0
  781. package/dist/types/lib/slots/system-prompt/index.d.ts.map +1 -0
  782. package/dist/types/lib/slots/system-prompt/types.d.ts +17 -0
  783. package/dist/types/lib/slots/system-prompt/types.d.ts.map +1 -0
  784. package/dist/types/lib/slots/tools/buildToolsSubflow.d.ts +23 -0
  785. package/dist/types/lib/slots/tools/buildToolsSubflow.d.ts.map +1 -0
  786. package/dist/types/lib/slots/tools/index.d.ts +3 -0
  787. package/dist/types/lib/slots/tools/index.d.ts.map +1 -0
  788. package/dist/types/lib/slots/tools/types.d.ts +18 -0
  789. package/dist/types/lib/slots/tools/types.d.ts.map +1 -0
  790. package/dist/types/lib/swarm/buildSwarmRouting.d.ts +36 -0
  791. package/dist/types/lib/swarm/buildSwarmRouting.d.ts.map +1 -0
  792. package/dist/types/lib/swarm/index.d.ts +3 -0
  793. package/dist/types/lib/swarm/index.d.ts.map +1 -0
  794. package/dist/types/llm.js +7 -0
  795. package/dist/types/llm.js.map +1 -0
  796. package/dist/types/memory/conversationHelpers.d.ts +23 -0
  797. package/dist/types/memory/conversationHelpers.d.ts.map +1 -0
  798. package/dist/types/memory/index.d.ts +2 -0
  799. package/dist/types/memory/index.d.ts.map +1 -0
  800. package/dist/types/messages.js +32 -0
  801. package/dist/types/messages.js.map +1 -0
  802. package/dist/types/models/index.d.ts +4 -0
  803. package/dist/types/models/index.d.ts.map +1 -0
  804. package/dist/types/models/pricing.d.ts +8 -0
  805. package/dist/types/models/pricing.d.ts.map +1 -0
  806. package/dist/types/models/providers.d.ts +23 -0
  807. package/dist/types/models/providers.d.ts.map +1 -0
  808. package/dist/types/models/types.d.ts +25 -0
  809. package/dist/types/models/types.d.ts.map +1 -0
  810. package/dist/types/multiAgent.js +6 -0
  811. package/dist/types/multiAgent.js.map +1 -0
  812. package/dist/types/observe.barrel.d.ts +21 -0
  813. package/dist/types/observe.barrel.d.ts.map +1 -0
  814. package/dist/types/providers/index.d.ts +15 -0
  815. package/dist/types/providers/index.d.ts.map +1 -0
  816. package/dist/types/providers/messages/charBudget.d.ts +19 -0
  817. package/dist/types/providers/messages/charBudget.d.ts.map +1 -0
  818. package/dist/types/providers/messages/compositeMessages.d.ts +16 -0
  819. package/dist/types/providers/messages/compositeMessages.d.ts.map +1 -0
  820. package/dist/types/providers/messages/fullHistory.d.ts +12 -0
  821. package/dist/types/providers/messages/fullHistory.d.ts.map +1 -0
  822. package/dist/types/providers/messages/index.d.ts +15 -0
  823. package/dist/types/providers/messages/index.d.ts.map +1 -0
  824. package/dist/types/providers/messages/persistentHistory.d.ts +32 -0
  825. package/dist/types/providers/messages/persistentHistory.d.ts.map +1 -0
  826. package/dist/types/providers/messages/slidingWindow.d.ts +16 -0
  827. package/dist/types/providers/messages/slidingWindow.d.ts.map +1 -0
  828. package/dist/types/providers/messages/summaryStrategy.d.ts +29 -0
  829. package/dist/types/providers/messages/summaryStrategy.d.ts.map +1 -0
  830. package/dist/types/providers/messages/withToolPairSafety.d.ts +19 -0
  831. package/dist/types/providers/messages/withToolPairSafety.d.ts.map +1 -0
  832. package/dist/types/providers/prompt/compositePrompt.d.ts +20 -0
  833. package/dist/types/providers/prompt/compositePrompt.d.ts.map +1 -0
  834. package/dist/types/providers/prompt/index.d.ts +10 -0
  835. package/dist/types/providers/prompt/index.d.ts.map +1 -0
  836. package/dist/types/providers/prompt/skillBasedPrompt.d.ts +33 -0
  837. package/dist/types/providers/prompt/skillBasedPrompt.d.ts.map +1 -0
  838. package/dist/types/providers/prompt/static.d.ts +6 -0
  839. package/dist/types/providers/prompt/static.d.ts.map +1 -0
  840. package/dist/types/providers/prompt/template.d.ts +6 -0
  841. package/dist/types/providers/prompt/template.d.ts.map +1 -0
  842. package/dist/types/providers/tools/PermissionPolicy.d.ts +76 -0
  843. package/dist/types/providers/tools/PermissionPolicy.d.ts.map +1 -0
  844. package/dist/types/providers/tools/agentAsTool.d.ts +40 -0
  845. package/dist/types/providers/tools/agentAsTool.d.ts.map +1 -0
  846. package/dist/types/providers/tools/compositeTools.d.ts +18 -0
  847. package/dist/types/providers/tools/compositeTools.d.ts.map +1 -0
  848. package/dist/types/providers/tools/dynamicTools.d.ts +27 -0
  849. package/dist/types/providers/tools/dynamicTools.d.ts.map +1 -0
  850. package/dist/types/providers/tools/gatedTools.d.ts +52 -0
  851. package/dist/types/providers/tools/gatedTools.d.ts.map +1 -0
  852. package/dist/types/providers/tools/index.d.ts +15 -0
  853. package/dist/types/providers/tools/index.d.ts.map +1 -0
  854. package/dist/types/providers/tools/noTools.d.ts +6 -0
  855. package/dist/types/providers/tools/noTools.d.ts.map +1 -0
  856. package/dist/types/providers/tools/staticTools.d.ts +7 -0
  857. package/dist/types/providers/tools/staticTools.d.ts.map +1 -0
  858. package/dist/types/providers.barrel.d.ts +34 -0
  859. package/dist/types/providers.barrel.d.ts.map +1 -0
  860. package/dist/types/recorders/index.d.ts +6 -0
  861. package/dist/types/recorders/index.d.ts.map +1 -0
  862. package/dist/types/recorders/v2/CompositeRecorder.d.ts +30 -0
  863. package/dist/types/recorders/v2/CompositeRecorder.d.ts.map +1 -0
  864. package/dist/types/recorders/v2/CostRecorder.d.ts +43 -0
  865. package/dist/types/recorders/v2/CostRecorder.d.ts.map +1 -0
  866. package/dist/types/recorders/v2/ExplainRecorder.d.ts +67 -0
  867. package/dist/types/recorders/v2/ExplainRecorder.d.ts.map +1 -0
  868. package/dist/types/recorders/v2/GuardrailRecorder.d.ts +45 -0
  869. package/dist/types/recorders/v2/GuardrailRecorder.d.ts.map +1 -0
  870. package/dist/types/recorders/v2/OTelRecorder.d.ts +50 -0
  871. package/dist/types/recorders/v2/OTelRecorder.d.ts.map +1 -0
  872. package/dist/types/recorders/v2/PermissionRecorder.d.ts +66 -0
  873. package/dist/types/recorders/v2/PermissionRecorder.d.ts.map +1 -0
  874. package/dist/types/recorders/v2/QualityRecorder.d.ts +37 -0
  875. package/dist/types/recorders/v2/QualityRecorder.d.ts.map +1 -0
  876. package/dist/types/recorders/v2/RecorderBridge.d.ts +38 -0
  877. package/dist/types/recorders/v2/RecorderBridge.d.ts.map +1 -0
  878. package/dist/types/recorders/v2/TokenRecorder.d.ts +54 -0
  879. package/dist/types/recorders/v2/TokenRecorder.d.ts.map +1 -0
  880. package/dist/types/recorders/v2/ToolUsageRecorder.d.ts +34 -0
  881. package/dist/types/recorders/v2/ToolUsageRecorder.d.ts.map +1 -0
  882. package/dist/types/recorders/v2/TurnRecorder.d.ts +36 -0
  883. package/dist/types/recorders/v2/TurnRecorder.d.ts.map +1 -0
  884. package/dist/types/recorders/v2/agentObservability.d.ts +68 -0
  885. package/dist/types/recorders/v2/agentObservability.d.ts.map +1 -0
  886. package/dist/types/recorders/v2/index.d.ts +21 -0
  887. package/dist/types/recorders/v2/index.d.ts.map +1 -0
  888. package/dist/types/resilience.barrel.d.ts +18 -0
  889. package/dist/types/resilience.barrel.d.ts.map +1 -0
  890. package/dist/types/retriever.js +7 -0
  891. package/dist/types/retriever.js.map +1 -0
  892. package/dist/types/scope/AgentScope.d.ts +87 -0
  893. package/dist/types/scope/AgentScope.d.ts.map +1 -0
  894. package/dist/types/scope/index.d.ts +3 -0
  895. package/dist/types/scope/index.d.ts.map +1 -0
  896. package/dist/types/scope/types.d.ts +151 -0
  897. package/dist/types/scope/types.d.ts.map +1 -0
  898. package/dist/types/security.barrel.d.ts +17 -0
  899. package/dist/types/security.barrel.d.ts.map +1 -0
  900. package/dist/types/stages/augmentPrompt.d.ts +7 -0
  901. package/dist/types/stages/augmentPrompt.d.ts.map +1 -0
  902. package/dist/types/stages/callLLM.d.ts +8 -0
  903. package/dist/types/stages/callLLM.d.ts.map +1 -0
  904. package/dist/types/stages/commitMemory.d.ts +51 -0
  905. package/dist/types/stages/commitMemory.d.ts.map +1 -0
  906. package/dist/types/stages/finalize.d.ts +7 -0
  907. package/dist/types/stages/finalize.d.ts.map +1 -0
  908. package/dist/types/stages/helpers.d.ts +17 -0
  909. package/dist/types/stages/helpers.d.ts.map +1 -0
  910. package/dist/types/stages/index.d.ts +10 -0
  911. package/dist/types/stages/index.d.ts.map +1 -0
  912. package/dist/types/stages/parseResponse.d.ts +8 -0
  913. package/dist/types/stages/parseResponse.d.ts.map +1 -0
  914. package/dist/types/stages/retrieve.d.ts +8 -0
  915. package/dist/types/stages/retrieve.d.ts.map +1 -0
  916. package/dist/types/stages/runnerAsStage.d.ts +18 -0
  917. package/dist/types/stages/runnerAsStage.d.ts.map +1 -0
  918. package/dist/types/stream.barrel.d.ts +19 -0
  919. package/dist/types/stream.barrel.d.ts.map +1 -0
  920. package/dist/types/streaming/StreamEmitter.d.ts +93 -0
  921. package/dist/types/streaming/StreamEmitter.d.ts.map +1 -0
  922. package/dist/types/streaming/index.d.ts +3 -0
  923. package/dist/types/streaming/index.d.ts.map +1 -0
  924. package/dist/types/subflows/index.d.ts +3 -0
  925. package/dist/types/subflows/index.d.ts.map +1 -0
  926. package/dist/types/subflows/prepareMemory.d.ts +60 -0
  927. package/dist/types/subflows/prepareMemory.d.ts.map +1 -0
  928. package/dist/types/tools/ToolRegistry.d.ts +47 -0
  929. package/dist/types/tools/ToolRegistry.d.ts.map +1 -0
  930. package/dist/types/tools/askHuman.d.ts +39 -0
  931. package/dist/types/tools/askHuman.d.ts.map +1 -0
  932. package/dist/types/tools/index.d.ts +3 -0
  933. package/dist/types/tools/index.d.ts.map +1 -0
  934. package/dist/types/tools/validateInput.d.ts +29 -0
  935. package/dist/types/tools/validateInput.d.ts.map +1 -0
  936. package/dist/types/tools/zodToJsonSchema.d.ts +9 -0
  937. package/dist/types/tools/zodToJsonSchema.d.ts.map +1 -0
  938. package/dist/types/tools.js +6 -0
  939. package/dist/types/tools.js.map +1 -0
  940. package/dist/types/types/adapter.d.ts +36 -0
  941. package/dist/types/types/adapter.d.ts.map +1 -0
  942. package/dist/types/types/agent.d.ts +37 -0
  943. package/dist/types/types/agent.d.ts.map +1 -0
  944. package/dist/types/types/content.d.ts +104 -0
  945. package/dist/types/types/content.d.ts.map +1 -0
  946. package/dist/types/types/errors.d.ts +27 -0
  947. package/dist/types/types/errors.d.ts.map +1 -0
  948. package/dist/types/types/index.d.ts +14 -0
  949. package/dist/types/types/index.d.ts.map +1 -0
  950. package/dist/types/types/llm.d.ts +78 -0
  951. package/dist/types/types/llm.d.ts.map +1 -0
  952. package/dist/types/types/messages.d.ts +40 -0
  953. package/dist/types/types/messages.d.ts.map +1 -0
  954. package/dist/types/types/multiAgent.d.ts +57 -0
  955. package/dist/types/types/multiAgent.d.ts.map +1 -0
  956. package/dist/types/types/retriever.d.ts +41 -0
  957. package/dist/types/types/retriever.d.ts.map +1 -0
  958. package/dist/types/types/tools.d.ts +19 -0
  959. package/dist/types/types/tools.d.ts.map +1 -0
  960. package/package.json +178 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Agent-level Instruction type — conditional context injection across all 3 LLM API positions.
3
+ *
4
+ * Unlike tool-level `LLMInstruction` (fires on a specific tool result),
5
+ * an `AgentInstruction` fires based on accumulated Decision Scope state
6
+ * and can inject into system prompt, tools, AND tool response rules.
7
+ *
8
+ * Evaluated by the InstructionsToLLM subflow BEFORE the 3 API slots.
9
+ *
10
+ * Naming:
11
+ * `activeWhen` (agent-level, reads decision scope) vs
12
+ * `when` (tool-level, reads tool result context) — no collision.
13
+ */
14
+ import type { ToolDefinition } from '../../types/tools';
15
+ import type { LLMInstruction } from './types';
16
+ /**
17
+ * An instruction that spans all 3 LLM API input positions.
18
+ *
19
+ * Evaluated per iteration by the InstructionsToLLM subflow. When `activeWhen`
20
+ * matches the current Decision Scope, the instruction's outputs are injected
21
+ * into the corresponding API slot.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const refundInstruction: AgentInstruction<MyDecision> = {
26
+ * id: 'refund-handling',
27
+ * activeWhen: (d) => d.orderStatus === 'denied',
28
+ * prompt: 'Handle denied orders with empathy. Follow refund policy.',
29
+ * tools: [processRefund, getTrace],
30
+ * onToolResult: [
31
+ * { id: 'empathy', text: 'Be empathetic. Do NOT promise reversal.' },
32
+ * ],
33
+ * };
34
+ * ```
35
+ */
36
+ export interface AgentInstruction<TDecision = unknown> {
37
+ /** Unique instruction identifier. */
38
+ readonly id: string;
39
+ /** Human-readable description (for narrative, docs, debug). */
40
+ readonly description?: string;
41
+ /**
42
+ * Condition: when does this instruction activate?
43
+ * Receives `scope.decision` — the bounded decision scope, not the full agent state.
44
+ * Omit for unconditional (always active).
45
+ *
46
+ * Must be synchronous and side-effect-free.
47
+ * Predicates that throw are skipped (fail-open) unless `safety: true` (fail-closed).
48
+ */
49
+ readonly activeWhen?: (decision: TDecision) => boolean;
50
+ /**
51
+ * Position 1: Text merged into system prompt.
52
+ * Appended after the base prompt from PromptProvider.
53
+ */
54
+ readonly prompt?: string;
55
+ /**
56
+ * Position 2: Tools added to the tools list.
57
+ * Merged with the base tools from ToolProvider. Deduplicated by ID.
58
+ */
59
+ readonly tools?: readonly ToolDefinition[];
60
+ /**
61
+ * Position 3: Rules evaluated against tool results (in recency window).
62
+ * Reuses the existing LLMInstruction type — `when`, `text`, `followUp`, `safety`.
63
+ * These fire during tool execution, same as tool-level instructions.
64
+ *
65
+ * Note: Rules from multiple matched instructions are accumulated (not deduplicated
66
+ * by ID). If you need unique rules, use unique IDs per AgentInstruction.
67
+ */
68
+ readonly onToolResult?: readonly LLMInstruction[];
69
+ /**
70
+ * Priority for ordering when multiple instructions match.
71
+ * Lower = higher priority. Ties broken by registration order.
72
+ *
73
+ * Safety instructions are always sorted LAST regardless of priority,
74
+ * mirroring the tool-level `LLMInstruction` ordering convention.
75
+ * @default 0
76
+ */
77
+ readonly priority?: number;
78
+ /**
79
+ * Controls predicate evaluation behavior when `activeWhen` throws.
80
+ *
81
+ * - `false` (default): fail-open — broken predicate skips the instruction.
82
+ * - `true`: fail-closed — broken predicate fires the instruction.
83
+ *
84
+ * Safety instructions are also sorted LAST in the output (highest priority
85
+ * position for system prompt injection). This is the predicate-level safety
86
+ * flag; for Position 3 injection ordering, use `LLMInstruction.safety`
87
+ * on individual `onToolResult` rules.
88
+ *
89
+ * @default false
90
+ */
91
+ readonly safety?: boolean;
92
+ }
93
+ /** Output of evaluating agent instructions against the decision scope. */
94
+ export interface InstructionEvaluationResult {
95
+ /** Prompt text fragments to merge into system prompt (Position 1). */
96
+ readonly promptInjections: readonly string[];
97
+ /** Tool definitions to merge into tools list (Position 2). */
98
+ readonly toolInjections: readonly ToolDefinition[];
99
+ /** Tool-result rules to evaluate during tool execution (Position 3). */
100
+ readonly responseRules: readonly LLMInstruction[];
101
+ /** IDs of instructions that matched (for narrative/recorder). */
102
+ readonly matchedIds: readonly string[];
103
+ }
104
+ /**
105
+ * Evaluate agent-level instructions against the current decision scope.
106
+ *
107
+ * Returns categorized outputs for each of the 3 LLM API positions.
108
+ * Instructions are sorted by priority (lower = first), with safety
109
+ * instructions always sorted LAST (matching tool-level convention).
110
+ *
111
+ * Error handling follows the same pattern as tool-level instructions:
112
+ * - Behavioral (safety: false): predicate throws → skip (fail-open)
113
+ * - Safety (safety: true): predicate throws → fire (fail-closed)
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const result = evaluateAgentInstructions(instructions, { orderStatus: 'denied' });
118
+ * // result.promptInjections → ['Handle denied orders with empathy.']
119
+ * // result.toolInjections → [processRefund, getTrace]
120
+ * // result.responseRules → [{ id: 'empathy', text: '...' }]
121
+ * // result.matchedIds → ['refund-handling']
122
+ * ```
123
+ */
124
+ export declare function evaluateAgentInstructions<TDecision>(instructions: readonly AgentInstruction<TDecision>[] | undefined, decision: TDecision): InstructionEvaluationResult;
125
+ /**
126
+ * Create a validated agent-level instruction.
127
+ *
128
+ * This is the preferred way to create instructions — validates the `id` field
129
+ * at build time and provides good TypeScript inference for the decision type.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * interface MyDecision {
134
+ * orderStatus: 'pending' | 'denied' | null;
135
+ * riskLevel: 'low' | 'high';
136
+ * }
137
+ *
138
+ * const refund = defineInstruction<MyDecision>({
139
+ * id: 'refund-handling',
140
+ * activeWhen: (d) => d.orderStatus === 'denied',
141
+ * prompt: 'Handle denied orders with empathy.',
142
+ * tools: [processRefund, getTrace],
143
+ * onToolResult: [
144
+ * { id: 'empathy', text: 'Do NOT promise reversal.' },
145
+ * ],
146
+ * });
147
+ * ```
148
+ */
149
+ export declare function defineInstruction<TDecision = unknown>(config: AgentInstruction<TDecision>): AgentInstruction<TDecision>;
150
+ //# sourceMappingURL=agentInstruction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentInstruction.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/agentInstruction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB,CAAC,SAAS,GAAG,OAAO;IACnD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC;IAEvD;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAE3C;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAElD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID,0EAA0E;AAC1E,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,SAAS,cAAc,EAAE,CAAC;IACnD,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAC;IAClD,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAWD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EACjD,YAAY,EAAE,SAAS,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAChE,QAAQ,EAAE,SAAS,GAClB,2BAA2B,CAwE7B;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAG,OAAO,EACnD,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAClC,gBAAgB,CAAC,SAAS,CAAC,CAK7B"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * InstructionsToLLM subflow — evaluates agent-level instructions before the 3 API slots.
3
+ *
4
+ * Runs once per loop iteration (Dynamic pattern) or once before the loop (Regular).
5
+ * Reads the current Decision Scope, evaluates all registered instructions'
6
+ * `activeWhen` predicates, and outputs categorized injections for each slot:
7
+ *
8
+ * promptInjections → consumed by SystemPrompt slot
9
+ * toolInjections → consumed by Tools slot
10
+ * responseRules → consumed by tool execution subflow
11
+ *
12
+ * The instruction registry is baked into the subflow via closure at build time.
13
+ * This is a footprintjs flowchart subflow — visible in narrative/BTS.
14
+ *
15
+ * Loop position:
16
+ * Seed → [InstructionsToLLM] → [SystemPrompt] → [Messages] → [Tools] → ...
17
+ */
18
+ import type { FlowChart } from 'footprintjs';
19
+ import type { AgentInstruction } from './agentInstruction';
20
+ /**
21
+ * Build the InstructionsToLLM subflow from a registry of agent-level instructions.
22
+ *
23
+ * The instructions array is captured by closure — immutable after build (shallow freeze).
24
+ * The subflow reads `scope.decision` (from parent inputMapper) and writes
25
+ * the categorized outputs for downstream slots to consume.
26
+ *
27
+ * **Parent state requirements:** The parent chart's `inputMapper` MUST map the
28
+ * `decision` field. If `decision` is missing (undefined), all instructions with
29
+ * `activeWhen` predicates will evaluate against `undefined` — behavioral predicates
30
+ * will throw and be skipped (fail-open), safety predicates will fire (fail-closed).
31
+ *
32
+ * The `outputMapper` should map the 3 output fields back to the parent state:
33
+ * `promptInjections`, `toolInjections`, `responseRules` (and optionally
34
+ * `matchedInstructions` for narrative enrichment).
35
+ *
36
+ * @param instructions - Agent-level instructions registered via `.instruction()`.
37
+ * Empty array is valid (subflow becomes a no-op pass-through).
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const subflow = buildInstructionsToLLMSubflow([refundInstruction, complianceInstruction]);
42
+ *
43
+ * // Mount in agent loop (parent state must include matching fields):
44
+ * builder.addSubFlowChartNext('sf-instructions-to-llm', subflow, 'InstructionsToLLM', {
45
+ * inputMapper: (parent) => ({ decision: parent.decision }),
46
+ * outputMapper: (sf) => ({
47
+ * promptInjections: sf.promptInjections,
48
+ * toolInjections: sf.toolInjections,
49
+ * responseRules: sf.responseRules,
50
+ * matchedInstructions: sf.matchedInstructions,
51
+ * }),
52
+ * });
53
+ * ```
54
+ */
55
+ export declare function buildInstructionsToLLMSubflow(instructions: readonly AgentInstruction[]): FlowChart;
56
+ //# sourceMappingURL=buildInstructionsToLLMSubflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildInstructionsToLLMSubflow.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/buildInstructionsToLLMSubflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,SAAS,gBAAgB,EAAE,GACxC,SAAS,CAmCX"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Instruction evaluator — matches instructions against tool results.
3
+ *
4
+ * Evaluates `when` predicates, sorts by priority, and orders for injection:
5
+ * 1. Follow-up bindings (structured actions)
6
+ * 2. Behavioral instructions (free text guidance)
7
+ * 3. Safety instructions LAST (closest to LLM generation = highest attention)
8
+ *
9
+ * Predicates that throw are skipped with a warning (fail-open for behavioral,
10
+ * fail-closed for safety). This is the defensive behavior — a broken predicate
11
+ * should not prevent the agent from working, but safety instructions should
12
+ * fail-closed (fire when in doubt).
13
+ */
14
+ import type { LLMInstruction, InstructionContext, RuntimeFollowUp, InstructionOverride } from './types';
15
+ /** A resolved instruction — ready for injection into the recency window. */
16
+ export interface ResolvedInstruction {
17
+ /** Instruction ID (for recording/tracking). */
18
+ readonly id: string;
19
+ /** Text appended to tool result (if any). */
20
+ readonly text?: string;
21
+ /** Resolved follow-up with concrete params (if any). */
22
+ readonly resolvedFollowUp?: ResolvedFollowUp;
23
+ /** Whether this is a safety instruction. */
24
+ readonly safety: boolean;
25
+ /** Original priority value. */
26
+ readonly priority: number;
27
+ }
28
+ /** Follow-up binding with params already resolved from the tool result. */
29
+ export interface ResolvedFollowUp {
30
+ readonly toolId: string;
31
+ readonly params: Record<string, unknown>;
32
+ readonly description: string;
33
+ readonly condition: string;
34
+ readonly strict: boolean;
35
+ }
36
+ /**
37
+ * Evaluate build-time instructions against a tool result context.
38
+ *
39
+ * Returns resolved instructions sorted for injection:
40
+ * 1. Non-safety with follow-up only (structured actions first)
41
+ * 2. Non-safety with inject (behavioral guidance)
42
+ * 3. Safety instructions (LAST = highest attention weight)
43
+ *
44
+ * Within each group, sorted by priority (lower = first), then array order.
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * const fired = evaluateInstructions(tool.instructions, {
49
+ * content: { status: 'denied', traceId: 'tr_8f3a' },
50
+ * error: undefined,
51
+ * latencyMs: 42,
52
+ * input: { applicantId: 'a-1' },
53
+ * toolId: 'evaluate_loan',
54
+ * });
55
+ *
56
+ * // fired: [{ id: 'denial-empathy', text: '...', resolvedFollowUp: {...} }]
57
+ * ```
58
+ */
59
+ export declare function evaluateInstructions(instructions: readonly LLMInstruction[] | undefined, ctx: InstructionContext): ResolvedInstruction[];
60
+ /**
61
+ * Merge build-time resolved instructions with runtime instructions/followUps.
62
+ *
63
+ * Runtime instructions (from handler return) are appended after build-time
64
+ * behavioral instructions but before safety instructions.
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const buildTime = evaluateInstructions(tool.instructions, ctx);
69
+ * const runtime = {
70
+ * instructions: ['Service degraded. Set expectations.'],
71
+ * followUps: [{ toolId: 'status_page', params: {}, description: '...', condition: '...' }],
72
+ * };
73
+ * const merged = mergeRuntimeInstructions(buildTime, runtime);
74
+ * ```
75
+ */
76
+ export declare function mergeRuntimeInstructions(buildTime: ResolvedInstruction[], runtime?: {
77
+ instructions?: readonly string[];
78
+ followUps?: readonly RuntimeFollowUp[];
79
+ }): ResolvedInstruction[];
80
+ /**
81
+ * Apply agent-level overrides to a tool's instructions.
82
+ *
83
+ * Returns a new instruction array with overrides applied:
84
+ * 1. Suppress: remove instructions by ID
85
+ * 2. Replace: merge partial overrides into existing instructions by ID
86
+ * 3. Add: append new instructions at the end
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const original = tool.instructions;
91
+ * const overridden = applyInstructionOverrides(original, {
92
+ * suppress: ['low-stock'],
93
+ * add: [{ id: 'premium-oos', when: ..., text: '...' }],
94
+ * replace: { 'out-of-stock': { text: 'Suggest B2B channel.' } },
95
+ * });
96
+ * ```
97
+ */
98
+ export declare function applyInstructionOverrides(instructions: readonly LLMInstruction[] | undefined, override: InstructionOverride): LLMInstruction[];
99
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAIxG,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EACnD,GAAG,EAAE,kBAAkB,GACtB,mBAAmB,EAAE,CA0DvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,EAAE,EAChC,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACxC,GACA,mBAAmB,EAAE,CAwCvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EACnD,QAAQ,EAAE,mBAAmB,GAC5B,cAAc,EAAE,CA2BlB"}
@@ -0,0 +1,18 @@
1
+ export { quickBind, follow } from './types';
2
+ export type { LLMInstruction, FollowUpBinding, InstructionContext, RuntimeFollowUp, InstructedToolResult, InstructedToolDefinition, InstructionOverride, } from './types';
3
+ export { evaluateInstructions, mergeRuntimeInstructions, applyInstructionOverrides } from './evaluator';
4
+ export type { ResolvedInstruction, ResolvedFollowUp } from './evaluator';
5
+ export { renderInstructions } from './template';
6
+ export type { InstructionTemplate } from './template';
7
+ export { processInstructions } from './inject';
8
+ export type { InstructionInjectionResult } from './inject';
9
+ export { previewInstructions } from './preview';
10
+ export type { InstructionPreview, PreviewContext } from './preview';
11
+ export { InstructionRecorder } from './InstructionRecorder';
12
+ export type { InstructionSummary, ToolInstructionStats, InstructionFiring, FollowUpOffering } from './InstructionRecorder';
13
+ export { defaultConditionMatcher, PendingFollowUpManager } from './strictFollowUp';
14
+ export type { PendingStrictFollowUp } from './strictFollowUp';
15
+ export { evaluateAgentInstructions, defineInstruction } from './agentInstruction';
16
+ export type { AgentInstruction, InstructionEvaluationResult } from './agentInstruction';
17
+ export { buildInstructionsToLLMSubflow } from './buildInstructionsToLLMSubflow';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxG,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE3H,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Instruction injection — appends rendered instructions to tool result content.
3
+ *
4
+ * This is the bridge between the evaluator (which resolves instructions)
5
+ * and the tool result message (which the LLM reads). The injected text
6
+ * lands in the recency window — the last tokens before LLM generation.
7
+ *
8
+ * The function is intentionally simple: evaluate → render → append.
9
+ * Side effects (recording, logging) are handled by callers.
10
+ */
11
+ import type { LLMInstruction, InstructionContext, RuntimeFollowUp } from './types';
12
+ import type { InstructionTemplate } from './template';
13
+ import type { ResolvedInstruction } from './evaluator';
14
+ /**
15
+ * Result of processing instructions for a tool result.
16
+ */
17
+ export interface InstructionInjectionResult {
18
+ /** The original content with instructions appended (or unchanged if none fired). */
19
+ readonly content: string;
20
+ /** All resolved instructions that fired (for recording/tracking). */
21
+ readonly fired: ResolvedInstruction[];
22
+ /** Whether any instructions were injected. */
23
+ readonly injected: boolean;
24
+ }
25
+ /**
26
+ * Process instructions for a tool result and return augmented content.
27
+ *
28
+ * Full pipeline: evaluate predicates → merge runtime → render → append.
29
+ *
30
+ * @param originalContent - The tool result content string
31
+ * @param buildTimeInstructions - Instructions from tool definition
32
+ * @param ctx - Full execution context (content, error, latency, input, toolId)
33
+ * @param runtime - Runtime instructions/followUps from handler return
34
+ * @param template - Optional custom template for formatting
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const result = processInstructions(
39
+ * toolResult.content,
40
+ * tool.instructions,
41
+ * { content: parsed, error: undefined, latencyMs: 42, input, toolId: tool.id },
42
+ * toolResult.instructions ? { instructions: toolResult.instructions } : undefined,
43
+ * );
44
+ *
45
+ * // result.content has instructions appended
46
+ * // result.fired lists which instructions matched
47
+ * // result.injected is true if any text was added
48
+ * ```
49
+ */
50
+ export declare function processInstructions(originalContent: string, buildTimeInstructions: readonly LLMInstruction[] | undefined, ctx: InstructionContext, runtime?: {
51
+ instructions?: readonly string[];
52
+ followUps?: readonly RuntimeFollowUp[];
53
+ }, template?: InstructionTemplate): InstructionInjectionResult;
54
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/inject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtC,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,qBAAqB,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EAC5D,GAAG,EAAE,kBAAkB,EACvB,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACxC,EACD,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,0BAA0B,CAqB5B"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * previewInstructions — dry-run showing what gets injected for a mock tool result.
3
+ *
4
+ * Invaluable for debugging instruction behavior during development and for
5
+ * generating documentation of tool behavior.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const preview = previewInstructions(
10
+ * orderTool.instructions,
11
+ * { content: { status: 'cancelled', trackingId: 'TRK-1' }, toolId: 'check_order' },
12
+ * );
13
+ *
14
+ * console.log(preview);
15
+ * // {
16
+ * // fired: [{ id: 'empathy', text: '...', safety: false }, ...],
17
+ * // injectedText: '[INSTRUCTION] Be empathetic...\n\n[AVAILABLE ACTION]...',
18
+ * // estimatedTokens: 47,
19
+ * // followUps: [{ toolId: 'track_package', params: { trackingId: 'TRK-1' } }],
20
+ * // }
21
+ * ```
22
+ */
23
+ import type { LLMInstruction, InstructionOverride } from './types';
24
+ import type { InstructionTemplate } from './template';
25
+ import type { ResolvedInstruction, ResolvedFollowUp } from './evaluator';
26
+ /** Input for previewInstructions — minimal context for evaluation. */
27
+ export interface PreviewContext {
28
+ /** Mock tool result content (parsed object or raw string). */
29
+ readonly content: unknown;
30
+ /** Tool ID that produced this result. */
31
+ readonly toolId: string;
32
+ /** Optional error state. */
33
+ readonly error?: {
34
+ code?: string;
35
+ message: string;
36
+ };
37
+ /** Optional latency in ms. Default: 0. */
38
+ readonly latencyMs?: number;
39
+ /** Optional original input. Default: {}. */
40
+ readonly input?: Record<string, unknown>;
41
+ }
42
+ /** Result of previewInstructions — what the LLM would see. */
43
+ export interface InstructionPreview {
44
+ /** Instructions that fired (in injection order). */
45
+ readonly fired: ResolvedInstruction[];
46
+ /** The text that would be appended to the tool result message. */
47
+ readonly injectedText: string | undefined;
48
+ /** Rough token estimate (~4 chars per token). */
49
+ readonly estimatedTokens: number;
50
+ /** Follow-ups that were offered (with resolved params). */
51
+ readonly followUps: ResolvedFollowUp[];
52
+ /** IDs of instructions that fired. */
53
+ readonly firedIds: string[];
54
+ /** IDs of instructions that did NOT fire. */
55
+ readonly skippedIds: string[];
56
+ }
57
+ /**
58
+ * Preview which instructions would fire for a given mock tool result.
59
+ *
60
+ * Does NOT run the agent — purely evaluates instructions against the mock context.
61
+ * Use for debugging, testing, and generating tool behavior documentation.
62
+ *
63
+ * @param instructions - The tool's instruction array (or overridden version)
64
+ * @param context - Mock tool result context
65
+ * @param options - Optional: overrides to apply, custom template
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * // Basic preview
70
+ * const preview = previewInstructions(tool.instructions, {
71
+ * content: { status: 'denied', traceId: 'tr_1' },
72
+ * toolId: 'evaluate_loan',
73
+ * });
74
+ *
75
+ * // With overrides applied
76
+ * const preview = previewInstructions(tool.instructions, ctx, {
77
+ * overrides: { suppress: ['low-priority'] },
78
+ * });
79
+ * ```
80
+ */
81
+ export declare function previewInstructions(instructions: readonly LLMInstruction[] | undefined, context: PreviewContext, options?: {
82
+ overrides?: InstructionOverride;
83
+ template?: InstructionTemplate;
84
+ }): InstructionPreview;
85
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMzE,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACvC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;CAC/B;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EACnD,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACA,kBAAkB,CA4CpB"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * strictFollowUp — auto-execute follow-ups when condition matches user message.
3
+ *
4
+ * When a tool's follow-up binding has `strict: true`, the framework stores it
5
+ * as a pending follow-up. On the next user message, the condition is checked:
6
+ * - If matched: framework auto-executes the tool with pre-resolved params,
7
+ * bypassing the LLM for tool call construction. Zero ID corruption risk.
8
+ * - If not matched: pending follow-up is cleared, LLM proceeds normally.
9
+ *
10
+ * The LLM is still used to interpret the follow-up tool's result — it's only
11
+ * bypassed for the mechanical "construct the tool call" step.
12
+ *
13
+ * Condition matching uses a keyword-based matcher by default. Custom matchers
14
+ * can be provided per follow-up binding.
15
+ */
16
+ import type { ResolvedFollowUp } from './evaluator';
17
+ /**
18
+ * Default keyword matcher — extracts intent keywords from the condition string
19
+ * and checks if the user message contains any of them.
20
+ *
21
+ * The condition is a natural language string like "User asks why or wants details".
22
+ * The matcher extracts content words and checks for overlap with the user message.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * defaultMatcher('User asks why or wants details', 'Why was I denied?')
27
+ * // → true (matches "why")
28
+ *
29
+ * defaultMatcher('User asks why or wants details', 'What is the weather?')
30
+ * // → false (no keyword overlap)
31
+ * ```
32
+ */
33
+ export declare function defaultConditionMatcher(condition: string, userMessage: string): boolean;
34
+ /**
35
+ * A strict follow-up that's waiting for the next user message.
36
+ */
37
+ export interface PendingStrictFollowUp {
38
+ /** The resolved follow-up with concrete params. */
39
+ readonly followUp: ResolvedFollowUp;
40
+ /** The tool that produced the original result. */
41
+ readonly sourceToolId: string;
42
+ /** Custom matcher function, if provided on the binding. */
43
+ readonly matcher?: (userMessage: string) => boolean;
44
+ }
45
+ /**
46
+ * Manages pending strict follow-ups between agent loop iterations.
47
+ *
48
+ * After tool execution, if any strict follow-up fired, it's stored here.
49
+ * Before the next LLM call, the user's message is checked against pending
50
+ * follow-ups. If matched, the follow-up is consumed and returned for
51
+ * auto-execution.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const manager = new PendingFollowUpManager();
56
+ *
57
+ * // After tool execution with strict follow-up
58
+ * manager.setPending({
59
+ * followUp: { toolId: 'get_trace', params: { traceId: 'tr_1' }, ... },
60
+ * sourceToolId: 'evaluate_loan',
61
+ * });
62
+ *
63
+ * // Before next LLM call — check user message
64
+ * const matched = manager.checkAndConsume('Why was I denied?');
65
+ * if (matched) {
66
+ * // Auto-execute get_trace({ traceId: 'tr_1' }) — skip LLM
67
+ * }
68
+ * ```
69
+ */
70
+ export declare class PendingFollowUpManager {
71
+ private pending;
72
+ /** Store a strict follow-up for the next user message check. */
73
+ setPending(followUp: PendingStrictFollowUp): void;
74
+ /** Check if there's a pending follow-up. */
75
+ hasPending(): boolean;
76
+ /** Get the pending follow-up without consuming it. */
77
+ getPending(): PendingStrictFollowUp | undefined;
78
+ /**
79
+ * Check user message against pending follow-up condition.
80
+ * If matched, consumes and returns the follow-up. If not matched, clears it.
81
+ *
82
+ * @returns The matched follow-up for auto-execution, or undefined.
83
+ */
84
+ checkAndConsume(userMessage: string): PendingStrictFollowUp | undefined;
85
+ /** Clear any pending follow-up. */
86
+ clear(): void;
87
+ }
88
+ //# sourceMappingURL=strictFollowUp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictFollowUp.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/strictFollowUp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CA6BvF;AAID;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAoC;IAEnD,gEAAgE;IAChE,UAAU,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIjD,4CAA4C;IAC5C,UAAU,IAAI,OAAO;IAIrB,sDAAsD;IACtD,UAAU,IAAI,qBAAqB,GAAG,SAAS;IAI/C;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAoBvE,mCAAmC;IACnC,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * InstructionTemplate — generates LLM-facing text from resolved instructions.
3
+ *
4
+ * The template controls HOW instructions appear in the recency window.
5
+ * The developer writes structured data (inject text, follow-up bindings).
6
+ * The template formats it for the LLM.
7
+ *
8
+ * Pluggable: organizations can customize the voice and format.
9
+ * Default template works well for all model families.
10
+ */
11
+ import type { ResolvedInstruction, ResolvedFollowUp } from './evaluator';
12
+ /**
13
+ * Pluggable template for formatting instructions as LLM-facing text.
14
+ *
15
+ * Each method is optional — unimplemented methods fall back to the default.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const healthcareTemplate: InstructionTemplate = {
20
+ * formatFollowUp: (fu) =>
21
+ * `If the patient requests additional information, ` +
22
+ * `retrieve the clinical decision audit using ${fu.toolId}.`,
23
+ * };
24
+ * ```
25
+ */
26
+ export interface InstructionTemplate {
27
+ /** Format a behavioral instruction. Default: inject text as-is. */
28
+ formatText?(text: string): string;
29
+ /** Format a follow-up binding. Default: structured block. */
30
+ formatFollowUp?(followUp: ResolvedFollowUp): string;
31
+ /** Format the full injection block (all instructions combined). */
32
+ formatBlock?(parts: string[]): string;
33
+ }
34
+ /**
35
+ * Render resolved instructions into LLM-facing text.
36
+ *
37
+ * Takes the output of `evaluateInstructions()` (already sorted in injection order)
38
+ * and produces a single string to append to the tool result message.
39
+ *
40
+ * Returns `undefined` if no instructions have injectable content.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const fired = evaluateInstructions(tool.instructions, ctx);
45
+ * const text = renderInstructions(fired);
46
+ * if (text) {
47
+ * toolResultMessage.content += '\n\n' + text;
48
+ * }
49
+ * ```
50
+ */
51
+ export declare function renderInstructions(instructions: ResolvedInstruction[], template?: InstructionTemplate): string | undefined;
52
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/lib/instructions/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIzE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,6DAA6D;IAC7D,cAAc,CAAC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpD,mEAAmE;IACnE,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACvC;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,mBAAmB,EAAE,EACnC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,MAAM,GAAG,SAAS,CAuBpB"}