agentfootprint 10.0.0 → 10.1.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 (326) hide show
  1. package/AGENTS.md +1 -1
  2. package/CAPABILITIES.md +3 -1
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/forcedToolChoice.js +79 -0
  5. package/dist/adapters/forcedToolChoice.js.map +1 -0
  6. package/dist/adapters/llm/AnthropicProvider.js +25 -63
  7. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  8. package/dist/adapters/llm/BedrockProvider.js +37 -8
  9. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  10. package/dist/adapters/llm/BrowserAnthropicProvider.js +29 -7
  11. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  12. package/dist/adapters/llm/BrowserOpenAIProvider.js +3 -0
  13. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  14. package/dist/adapters/llm/FoundryProvider.js +3 -0
  15. package/dist/adapters/llm/FoundryProvider.js.map +1 -1
  16. package/dist/adapters/llm/InvokeModelGatewayProvider.js +28 -9
  17. package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  18. package/dist/adapters/llm/OpenAIProvider.js +3 -0
  19. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  20. package/dist/adapters/llm/anthropicMessageProjection.js +113 -0
  21. package/dist/adapters/llm/anthropicMessageProjection.js.map +1 -0
  22. package/dist/adapters/llm/anthropicMessagesWire.js +189 -213
  23. package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
  24. package/dist/adapters/llm/anthropicModels.js +187 -0
  25. package/dist/adapters/llm/anthropicModels.js.map +1 -0
  26. package/dist/adapters/llm/anthropicReplayLayout.js +241 -0
  27. package/dist/adapters/llm/anthropicReplayLayout.js.map +1 -0
  28. package/dist/adapters/llm/anthropicThinkingReplay.js +188 -0
  29. package/dist/adapters/llm/anthropicThinkingReplay.js.map +1 -0
  30. package/dist/adapters/llm/anthropicThinkingWire.js +16 -105
  31. package/dist/adapters/llm/anthropicThinkingWire.js.map +1 -1
  32. package/dist/adapters/requestRefusal.js +15 -0
  33. package/dist/adapters/requestRefusal.js.map +1 -0
  34. package/dist/adapters/types.js.map +1 -1
  35. package/dist/core/Agent.js +60 -30
  36. package/dist/core/Agent.js.map +1 -1
  37. package/dist/core/LLMCall.js +1 -1
  38. package/dist/core/LLMCall.js.map +1 -1
  39. package/dist/core/agent/AgentBuilder.js +3 -0
  40. package/dist/core/agent/AgentBuilder.js.map +1 -1
  41. package/dist/core/agent/assistantReplay.js +27 -0
  42. package/dist/core/agent/assistantReplay.js.map +1 -0
  43. package/dist/core/agent/buildAgentMessageApiChart.js +1 -1
  44. package/dist/core/agent/buildAgentMessageApiChart.js.map +1 -1
  45. package/dist/core/agent/buildDynamicAgentChart.js +8 -0
  46. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  47. package/dist/core/agent/buildMessageApiChart.js +1 -1
  48. package/dist/core/agent/buildMessageApiChart.js.map +1 -1
  49. package/dist/core/agent/providerTargets.js +14 -0
  50. package/dist/core/agent/providerTargets.js.map +1 -0
  51. package/dist/core/agent/stages/callLLM.js +48 -15
  52. package/dist/core/agent/stages/callLLM.js.map +1 -1
  53. package/dist/core/agent/stages/deliver.js +15 -13
  54. package/dist/core/agent/stages/deliver.js.map +1 -1
  55. package/dist/core/agent/stages/outputRetry.js +2 -1
  56. package/dist/core/agent/stages/outputRetry.js.map +1 -1
  57. package/dist/core/agent/stages/prepareFinal.js +2 -0
  58. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  59. package/dist/core/agent/stages/reliabilityExecution.js +29 -17
  60. package/dist/core/agent/stages/reliabilityExecution.js.map +1 -1
  61. package/dist/core/agent/stages/stepNudge.js +2 -1
  62. package/dist/core/agent/stages/stepNudge.js.map +1 -1
  63. package/dist/core/agent/stages/toolCalls.js +2 -0
  64. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  65. package/dist/core/agent/thinkingSupport.js +8 -6
  66. package/dist/core/agent/thinkingSupport.js.map +1 -1
  67. package/dist/core/outputSchema.js.map +1 -1
  68. package/dist/core/runCheckpoint.js +16 -2
  69. package/dist/core/runCheckpoint.js.map +1 -1
  70. package/dist/esm/adapters/forcedToolChoice.d.ts +66 -0
  71. package/dist/esm/adapters/forcedToolChoice.js +74 -0
  72. package/dist/esm/adapters/forcedToolChoice.js.map +1 -0
  73. package/dist/esm/adapters/llm/AnthropicProvider.d.ts +3 -14
  74. package/dist/esm/adapters/llm/AnthropicProvider.js +27 -65
  75. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  76. package/dist/esm/adapters/llm/BedrockProvider.d.ts +5 -0
  77. package/dist/esm/adapters/llm/BedrockProvider.js +37 -8
  78. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  79. package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +2 -0
  80. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +29 -7
  81. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  82. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +3 -0
  83. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  84. package/dist/esm/adapters/llm/FoundryProvider.js +3 -0
  85. package/dist/esm/adapters/llm/FoundryProvider.js.map +1 -1
  86. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.d.ts +2 -0
  87. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +28 -9
  88. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  89. package/dist/esm/adapters/llm/OpenAIProvider.js +3 -0
  90. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  91. package/dist/esm/adapters/llm/anthropicMessageProjection.d.ts +19 -0
  92. package/dist/esm/adapters/llm/anthropicMessageProjection.js +108 -0
  93. package/dist/esm/adapters/llm/anthropicMessageProjection.js.map +1 -0
  94. package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +8 -18
  95. package/dist/esm/adapters/llm/anthropicMessagesWire.js +184 -208
  96. package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
  97. package/dist/esm/adapters/llm/anthropicModels.d.ts +96 -0
  98. package/dist/esm/adapters/llm/anthropicModels.js +180 -0
  99. package/dist/esm/adapters/llm/anthropicModels.js.map +1 -0
  100. package/dist/esm/adapters/llm/anthropicReplayLayout.d.ts +23 -0
  101. package/dist/esm/adapters/llm/anthropicReplayLayout.js +232 -0
  102. package/dist/esm/adapters/llm/anthropicReplayLayout.js.map +1 -0
  103. package/dist/esm/adapters/llm/anthropicThinkingReplay.d.ts +21 -0
  104. package/dist/esm/adapters/llm/anthropicThinkingReplay.js +183 -0
  105. package/dist/esm/adapters/llm/anthropicThinkingReplay.js.map +1 -0
  106. package/dist/esm/adapters/llm/anthropicThinkingWire.d.ts +12 -36
  107. package/dist/esm/adapters/llm/anthropicThinkingWire.js +13 -101
  108. package/dist/esm/adapters/llm/anthropicThinkingWire.js.map +1 -1
  109. package/dist/esm/adapters/requestRefusal.d.ts +2 -0
  110. package/dist/esm/adapters/requestRefusal.js +11 -0
  111. package/dist/esm/adapters/requestRefusal.js.map +1 -0
  112. package/dist/esm/adapters/types.d.ts +31 -7
  113. package/dist/esm/adapters/types.js.map +1 -1
  114. package/dist/esm/core/Agent.d.ts +11 -1
  115. package/dist/esm/core/Agent.js +63 -33
  116. package/dist/esm/core/Agent.js.map +1 -1
  117. package/dist/esm/core/LLMCall.js +1 -1
  118. package/dist/esm/core/LLMCall.js.map +1 -1
  119. package/dist/esm/core/agent/AgentBuilder.js +3 -0
  120. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  121. package/dist/esm/core/agent/assistantReplay.d.ts +11 -0
  122. package/dist/esm/core/agent/assistantReplay.js +23 -0
  123. package/dist/esm/core/agent/assistantReplay.js.map +1 -0
  124. package/dist/esm/core/agent/buildAgentMessageApiChart.js +1 -1
  125. package/dist/esm/core/agent/buildAgentMessageApiChart.js.map +1 -1
  126. package/dist/esm/core/agent/buildDynamicAgentChart.js +8 -0
  127. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  128. package/dist/esm/core/agent/buildMessageApiChart.js +1 -1
  129. package/dist/esm/core/agent/buildMessageApiChart.js.map +1 -1
  130. package/dist/esm/core/agent/providerTargets.d.ts +11 -0
  131. package/dist/esm/core/agent/providerTargets.js +10 -0
  132. package/dist/esm/core/agent/providerTargets.js.map +1 -0
  133. package/dist/esm/core/agent/stages/callLLM.d.ts +3 -1
  134. package/dist/esm/core/agent/stages/callLLM.js +48 -15
  135. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  136. package/dist/esm/core/agent/stages/deliver.d.ts +5 -0
  137. package/dist/esm/core/agent/stages/deliver.js +13 -12
  138. package/dist/esm/core/agent/stages/deliver.js.map +1 -1
  139. package/dist/esm/core/agent/stages/outputRetry.js +2 -1
  140. package/dist/esm/core/agent/stages/outputRetry.js.map +1 -1
  141. package/dist/esm/core/agent/stages/prepareFinal.js +2 -0
  142. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  143. package/dist/esm/core/agent/stages/reliabilityExecution.d.ts +8 -1
  144. package/dist/esm/core/agent/stages/reliabilityExecution.js +29 -17
  145. package/dist/esm/core/agent/stages/reliabilityExecution.js.map +1 -1
  146. package/dist/esm/core/agent/stages/stepNudge.js +2 -1
  147. package/dist/esm/core/agent/stages/stepNudge.js.map +1 -1
  148. package/dist/esm/core/agent/stages/toolCalls.js +2 -0
  149. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  150. package/dist/esm/core/agent/thinkingSupport.d.ts +5 -2
  151. package/dist/esm/core/agent/thinkingSupport.js +8 -6
  152. package/dist/esm/core/agent/thinkingSupport.js.map +1 -1
  153. package/dist/esm/core/agent/types.d.ts +4 -0
  154. package/dist/esm/core/outputSchema.d.ts +2 -1
  155. package/dist/esm/core/outputSchema.js.map +1 -1
  156. package/dist/esm/core/runCheckpoint.d.ts +8 -0
  157. package/dist/esm/core/runCheckpoint.js +13 -1
  158. package/dist/esm/core/runCheckpoint.js.map +1 -1
  159. package/dist/esm/events/payloads.d.ts +10 -0
  160. package/dist/esm/events/registry.d.ts +3 -1
  161. package/dist/esm/events/registry.js +2 -0
  162. package/dist/esm/events/registry.js.map +1 -1
  163. package/dist/esm/lib/injection-engine/constrainedEnumPick.d.ts +1 -1
  164. package/dist/esm/lib/injection-engine/constrainedEnumPick.js +5 -2
  165. package/dist/esm/lib/injection-engine/constrainedEnumPick.js.map +1 -1
  166. package/dist/esm/lib/injection-engine/llmClassifier.d.ts +2 -2
  167. package/dist/esm/lib/injection-engine/llmClassifier.js +2 -2
  168. package/dist/esm/lib/time-travel/receipt.d.ts +10 -0
  169. package/dist/esm/lib/time-travel/receipt.js +2 -2
  170. package/dist/esm/lib/time-travel/receipt.js.map +1 -1
  171. package/dist/esm/lib/time-travel/servedView.d.ts +1 -1
  172. package/dist/esm/lib/time-travel/servedView.js +11 -0
  173. package/dist/esm/lib/time-travel/servedView.js.map +1 -1
  174. package/dist/esm/providers.d.ts +3 -0
  175. package/dist/esm/providers.js +2 -0
  176. package/dist/esm/providers.js.map +1 -1
  177. package/dist/esm/recorders/core/replayHooks.d.ts +10 -0
  178. package/dist/esm/recorders/core/replayHooks.js +65 -0
  179. package/dist/esm/recorders/core/replayHooks.js.map +1 -0
  180. package/dist/esm/recorders/core/resilienceHooks.d.ts +2 -1
  181. package/dist/esm/recorders/core/resilienceHooks.js +3 -1
  182. package/dist/esm/recorders/core/resilienceHooks.js.map +1 -1
  183. package/dist/esm/redaction/knownStrings.js +21 -0
  184. package/dist/esm/redaction/knownStrings.js.map +1 -1
  185. package/dist/esm/resilience/replayAttempt.d.ts +21 -0
  186. package/dist/esm/resilience/replayAttempt.js +96 -0
  187. package/dist/esm/resilience/replayAttempt.js.map +1 -0
  188. package/dist/esm/resilience/withCircuitBreaker.d.ts +2 -1
  189. package/dist/esm/resilience/withCircuitBreaker.js +5 -2
  190. package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
  191. package/dist/esm/resilience/withFallback.d.ts +3 -1
  192. package/dist/esm/resilience/withFallback.js +33 -32
  193. package/dist/esm/resilience/withFallback.js.map +1 -1
  194. package/dist/esm/resilience/withRetry.js +9 -3
  195. package/dist/esm/resilience/withRetry.js.map +1 -1
  196. package/dist/esm/thinking/dispatch.d.ts +9 -0
  197. package/dist/esm/thinking/dispatch.js +44 -0
  198. package/dist/esm/thinking/dispatch.js.map +1 -0
  199. package/dist/esm/thinking/errors.d.ts +3 -3
  200. package/dist/esm/thinking/errors.js +3 -3
  201. package/dist/esm/thinking/replay.d.ts +67 -0
  202. package/dist/esm/thinking/replay.js +20 -0
  203. package/dist/esm/thinking/replay.js.map +1 -0
  204. package/dist/esm/thinking/replayHistory.d.ts +18 -0
  205. package/dist/esm/thinking/replayHistory.js +56 -0
  206. package/dist/esm/thinking/replayHistory.js.map +1 -0
  207. package/dist/events/registry.js +2 -0
  208. package/dist/events/registry.js.map +1 -1
  209. package/dist/lib/injection-engine/constrainedEnumPick.js +5 -2
  210. package/dist/lib/injection-engine/constrainedEnumPick.js.map +1 -1
  211. package/dist/lib/injection-engine/llmClassifier.js +2 -2
  212. package/dist/lib/time-travel/receipt.js +2 -2
  213. package/dist/lib/time-travel/receipt.js.map +1 -1
  214. package/dist/lib/time-travel/servedView.js +11 -0
  215. package/dist/lib/time-travel/servedView.js.map +1 -1
  216. package/dist/providers.js +6 -1
  217. package/dist/providers.js.map +1 -1
  218. package/dist/recorders/core/replayHooks.js +69 -0
  219. package/dist/recorders/core/replayHooks.js.map +1 -0
  220. package/dist/recorders/core/resilienceHooks.js +3 -1
  221. package/dist/recorders/core/resilienceHooks.js.map +1 -1
  222. package/dist/redaction/knownStrings.js +21 -0
  223. package/dist/redaction/knownStrings.js.map +1 -1
  224. package/dist/resilience/replayAttempt.js +100 -0
  225. package/dist/resilience/replayAttempt.js.map +1 -0
  226. package/dist/resilience/withCircuitBreaker.js +5 -2
  227. package/dist/resilience/withCircuitBreaker.js.map +1 -1
  228. package/dist/resilience/withFallback.js +33 -32
  229. package/dist/resilience/withFallback.js.map +1 -1
  230. package/dist/resilience/withRetry.js +9 -3
  231. package/dist/resilience/withRetry.js.map +1 -1
  232. package/dist/thinking/dispatch.js +50 -0
  233. package/dist/thinking/dispatch.js.map +1 -0
  234. package/dist/thinking/errors.js +3 -3
  235. package/dist/thinking/replay.js +24 -0
  236. package/dist/thinking/replay.js.map +1 -0
  237. package/dist/thinking/replayHistory.js +63 -0
  238. package/dist/thinking/replayHistory.js.map +1 -0
  239. package/dist/types/adapters/forcedToolChoice.d.ts +67 -0
  240. package/dist/types/adapters/forcedToolChoice.d.ts.map +1 -0
  241. package/dist/types/adapters/llm/AnthropicProvider.d.ts +3 -14
  242. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  243. package/dist/types/adapters/llm/BedrockProvider.d.ts +5 -0
  244. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  245. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +2 -0
  246. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  247. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  248. package/dist/types/adapters/llm/FoundryProvider.d.ts.map +1 -1
  249. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts +2 -0
  250. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
  251. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  252. package/dist/types/adapters/llm/anthropicMessageProjection.d.ts +20 -0
  253. package/dist/types/adapters/llm/anthropicMessageProjection.d.ts.map +1 -0
  254. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +8 -18
  255. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
  256. package/dist/types/adapters/llm/anthropicModels.d.ts +97 -0
  257. package/dist/types/adapters/llm/anthropicModels.d.ts.map +1 -0
  258. package/dist/types/adapters/llm/anthropicReplayLayout.d.ts +24 -0
  259. package/dist/types/adapters/llm/anthropicReplayLayout.d.ts.map +1 -0
  260. package/dist/types/adapters/llm/anthropicThinkingReplay.d.ts +22 -0
  261. package/dist/types/adapters/llm/anthropicThinkingReplay.d.ts.map +1 -0
  262. package/dist/types/adapters/llm/anthropicThinkingWire.d.ts +12 -36
  263. package/dist/types/adapters/llm/anthropicThinkingWire.d.ts.map +1 -1
  264. package/dist/types/adapters/requestRefusal.d.ts +3 -0
  265. package/dist/types/adapters/requestRefusal.d.ts.map +1 -0
  266. package/dist/types/adapters/types.d.ts +31 -7
  267. package/dist/types/adapters/types.d.ts.map +1 -1
  268. package/dist/types/core/Agent.d.ts +11 -1
  269. package/dist/types/core/Agent.d.ts.map +1 -1
  270. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  271. package/dist/types/core/agent/assistantReplay.d.ts +12 -0
  272. package/dist/types/core/agent/assistantReplay.d.ts.map +1 -0
  273. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  274. package/dist/types/core/agent/providerTargets.d.ts +12 -0
  275. package/dist/types/core/agent/providerTargets.d.ts.map +1 -0
  276. package/dist/types/core/agent/stages/callLLM.d.ts +3 -1
  277. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  278. package/dist/types/core/agent/stages/deliver.d.ts +5 -0
  279. package/dist/types/core/agent/stages/deliver.d.ts.map +1 -1
  280. package/dist/types/core/agent/stages/outputRetry.d.ts.map +1 -1
  281. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  282. package/dist/types/core/agent/stages/reliabilityExecution.d.ts +8 -1
  283. package/dist/types/core/agent/stages/reliabilityExecution.d.ts.map +1 -1
  284. package/dist/types/core/agent/stages/stepNudge.d.ts.map +1 -1
  285. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  286. package/dist/types/core/agent/thinkingSupport.d.ts +5 -2
  287. package/dist/types/core/agent/thinkingSupport.d.ts.map +1 -1
  288. package/dist/types/core/agent/types.d.ts +4 -0
  289. package/dist/types/core/agent/types.d.ts.map +1 -1
  290. package/dist/types/core/outputSchema.d.ts +2 -1
  291. package/dist/types/core/outputSchema.d.ts.map +1 -1
  292. package/dist/types/core/runCheckpoint.d.ts +8 -0
  293. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  294. package/dist/types/events/payloads.d.ts +10 -0
  295. package/dist/types/events/payloads.d.ts.map +1 -1
  296. package/dist/types/events/registry.d.ts +3 -1
  297. package/dist/types/events/registry.d.ts.map +1 -1
  298. package/dist/types/lib/injection-engine/constrainedEnumPick.d.ts +1 -1
  299. package/dist/types/lib/injection-engine/constrainedEnumPick.d.ts.map +1 -1
  300. package/dist/types/lib/injection-engine/llmClassifier.d.ts +2 -2
  301. package/dist/types/lib/time-travel/receipt.d.ts +10 -0
  302. package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
  303. package/dist/types/lib/time-travel/servedView.d.ts +1 -1
  304. package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
  305. package/dist/types/providers.d.ts +3 -0
  306. package/dist/types/providers.d.ts.map +1 -1
  307. package/dist/types/recorders/core/replayHooks.d.ts +11 -0
  308. package/dist/types/recorders/core/replayHooks.d.ts.map +1 -0
  309. package/dist/types/recorders/core/resilienceHooks.d.ts +2 -1
  310. package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -1
  311. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  312. package/dist/types/resilience/replayAttempt.d.ts +22 -0
  313. package/dist/types/resilience/replayAttempt.d.ts.map +1 -0
  314. package/dist/types/resilience/withCircuitBreaker.d.ts +2 -1
  315. package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
  316. package/dist/types/resilience/withFallback.d.ts +3 -1
  317. package/dist/types/resilience/withFallback.d.ts.map +1 -1
  318. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  319. package/dist/types/thinking/dispatch.d.ts +10 -0
  320. package/dist/types/thinking/dispatch.d.ts.map +1 -0
  321. package/dist/types/thinking/errors.d.ts +3 -3
  322. package/dist/types/thinking/replay.d.ts +68 -0
  323. package/dist/types/thinking/replay.d.ts.map +1 -0
  324. package/dist/types/thinking/replayHistory.d.ts +19 -0
  325. package/dist/types/thinking/replayHistory.d.ts.map +1 -0
  326. package/package.json +1 -1
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  /**
3
- * anthropicThinkingWire — which thinking request each Claude model takes, and
4
- * the one translation of `LLMRequest.thinking` onto the Messages body.
3
+ * anthropicThinkingWire — the one translation of `LLMRequest.thinking` onto
4
+ * the Messages body, in the shape each Claude model takes.
5
5
  *
6
- * Pattern: declaration + pure translation (the `anthropicCacheWire.ts` twin).
7
- * Role: Outer ring. Three jobs, one file:
8
- * 1. `ANTHROPIC_THINKING_MODES` / `anthropicThinkingMode` — which thinking
9
- * request each model takes: ONE table, keyed by model family.
10
- * 2. `thinkingModeWith` — the ONE mode function an adapter declares
6
+ * Pattern: pure translation over a declaration (the `anthropicCacheWire.ts` twin).
7
+ * Role: Outer ring. Two jobs, one file — which mode each model takes is
8
+ * the `thinking` column of the ONE model table
9
+ * (`anthropicModels.ts` · `ANTHROPIC_MODELS`):
10
+ * 1. `thinkingModeWith` — the ONE mode function an adapter declares
11
11
  * (`LLMProvider.thinkingMode`) and builds its body with: the app's own
12
12
  * answer for an id the table cannot read, else the table's.
13
- * 3. `anthropicThinkingPlan` — the `thinking` field a request gets on that
13
+ * 2. `anthropicThinkingPlan` — the `thinking` field a request gets on that
14
14
  * model, or a typed refusal before anything is sent.
15
15
  *
16
16
  * Why it exists: `.thinking({ budget })` used to send
@@ -45,104 +45,15 @@
45
45
  * https://platform.claude.com/docs/en/build-with-claude/claude-on-vertex-ai.
46
46
  *
47
47
  * @example
48
- * anthropicThinkingMode('claude-opus-5-5'); // 'adaptive'
49
- * anthropicThinkingMode('us.anthropic.claude-sonnet-4-5-20250929-v1:0'); // 'budget'
50
- * anthropicThinkingMode('claude-3-5-haiku@20241022'); // 'none'
51
- * anthropicThinkingMode('claude-opus-6'); // 'adaptive' — unknown
48
+ * const modeOf = thinkingModeWith(undefined); // the table's answer, per model
49
+ * anthropicThinkingPlan({ thinking: { budget: 2048 } }, {
50
+ * model: 'claude-opus-5-5', provider: 'anthropic', maxTokensDefault: 4096, thinkingMode: modeOf,
51
+ * }); // { thinking: { type: 'adaptive', display: 'summarized' }, maxTokens: 4096 }
52
52
  */
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
- exports.anthropicThinkingPlan = exports.thinkingModeWith = exports.anthropicThinkingMode = exports.ANTHROPIC_THINKING_MODES = void 0;
54
+ exports.anthropicThinkingPlan = exports.thinkingModeWith = void 0;
55
55
  const errors_js_1 = require("../../thinking/errors.js");
56
- // ─── The declaration ────────────────────────────────────────────────
57
- /**
58
- * Which thinking request each Claude model family takes, keyed by the family
59
- * id (the model id without a date, version or platform prefix — matching is
60
- * {@link anthropicThinkingMode}'s). The ONE table: a model is added here, and
61
- * nowhere else.
62
- */
63
- exports.ANTHROPIC_THINKING_MODES = Object.freeze({
64
- // Adaptive only — `budget_tokens` is a 400 (Claude 4.7 and later).
65
- 'claude-fable-5-1': 'adaptive',
66
- 'claude-mythos-5-1': 'adaptive',
67
- 'claude-fable-5': 'adaptive',
68
- 'claude-mythos-5': 'adaptive',
69
- 'claude-opus-5-5': 'adaptive',
70
- 'claude-opus-5': 'adaptive',
71
- 'claude-opus-4-8': 'adaptive',
72
- 'claude-opus-4-7': 'adaptive',
73
- 'claude-sonnet-5-5': 'adaptive',
74
- 'claude-sonnet-5': 'adaptive',
75
- 'claude-haiku-5-5': 'adaptive',
76
- // Takes both. Adaptive: its thinking `display` defaults to "omitted", which
77
- // a budget body cannot change, so a budget would return empty thinking.
78
- 'claude-mythos-preview': 'adaptive',
79
- // Takes both, the budget deprecated but accepted: the budget is sent, as
80
- // asked. On Opus 4.6 that means no thinking between tool calls — an app that
81
- // wants it declares the model 'adaptive' with the adapter's `thinkingMode`.
82
- 'claude-opus-4-6': 'budget',
83
- 'claude-sonnet-4-6': 'budget',
84
- // Budget only — `type: 'adaptive'` is a 400.
85
- 'claude-opus-4-5': 'budget',
86
- 'claude-sonnet-4-5': 'budget',
87
- 'claude-haiku-4-5': 'budget',
88
- 'claude-opus-4-1': 'budget',
89
- 'claude-opus-4': 'budget',
90
- 'claude-sonnet-4': 'budget',
91
- 'claude-3-7-sonnet': 'budget',
92
- // No thinking. Retired on the Claude API; still served by some platforms
93
- // (Vertex lists claude-3-5-haiku@20241022). Claude 1, 2 and Instant are
94
- // served nowhere and are not listed.
95
- 'claude-3-5-sonnet': 'none',
96
- 'claude-3-5-haiku': 'none',
97
- 'claude-3-opus': 'none',
98
- 'claude-3-sonnet': 'none',
99
- 'claude-3-haiku': 'none',
100
- });
101
- /**
102
- * What may follow a family id and still name that family: nothing; a date
103
- * (`-20250929`, Vertex `@20251101`); the `-0` alias of an x.0 model
104
- * (`claude-opus-4-0`); `-latest`; a Bedrock version (`-v1`, `-v1:0`); or a
105
- * separator that starts a suffix (`:`, `[`). Never another version number —
106
- * so `claude-opus-4` does not claim `claude-opus-4-5`, or a future `-4-9`.
107
- */
108
- const SAME_FAMILY = /^(?:$|-0(?![0-9])|-\d{8}(?![0-9])|-latest(?![a-z0-9])|-v\d|[@:[])/;
109
- /**
110
- * The thinking mode a Claude model id takes on the Anthropic Messages wire.
111
- *
112
- * Reads the id from its `claude-` onward, so platform forms resolve like the
113
- * Claude API id: `anthropic.…` and `us.`/`eu.`/`global.`… Bedrock profiles,
114
- * inference-profile ARNs, Vertex `…@date` ids, and dotted aliases
115
- * (`claude-sonnet-4.5`). An id no family matches answers `'adaptive'` — what
116
- * every Claude model since 4.7 takes (they reject a budget), so a model
117
- * released after this table thinks instead of failing with a 400.
118
- *
119
- * The cost of that default, named: an id that does not say which model it
120
- * serves — an application-inference-profile ARN, a gateway alias, a
121
- * deployment name — is read as adaptive too, and a budget-only model behind
122
- * it (Claude 4.5 and earlier) refuses adaptive. The adapters take a
123
- * `thinkingMode` option for exactly that ({@link thinkingModeWith}).
124
- */
125
- function anthropicThinkingMode(model) {
126
- const id = model.toLowerCase();
127
- const start = id.indexOf('claude-');
128
- if (start < 0)
129
- return 'adaptive';
130
- // `claude-sonnet-4.5` is `claude-sonnet-4-5`: no real id carries a dot after
131
- // `claude-`, so the spelling changes nothing it could be confused with.
132
- const name = id.slice(start).replace(/\./g, '-');
133
- // The longest family that names this id — at most one can, by SAME_FAMILY;
134
- // longest-wins keeps the answer independent of the table's order anyway.
135
- let match;
136
- for (const entry of Object.entries(exports.ANTHROPIC_THINKING_MODES)) {
137
- const family = entry[0];
138
- if (!name.startsWith(family) || !SAME_FAMILY.test(name.slice(family.length)))
139
- continue;
140
- if (match === undefined || family.length > match[0].length)
141
- match = entry;
142
- }
143
- return match === undefined ? 'adaptive' : match[1];
144
- }
145
- exports.anthropicThinkingMode = anthropicThinkingMode;
56
+ const anthropicModels_js_1 = require("./anthropicModels.js");
146
57
  /**
147
58
  * An adapter's ONE mode function: the app's own answer for an id the table
148
59
  * cannot read (the adapter's `thinkingMode` option), else the table's. The
@@ -157,8 +68,8 @@ exports.anthropicThinkingMode = anthropicThinkingMode;
157
68
  */
158
69
  function thinkingModeWith(own) {
159
70
  if (own === undefined)
160
- return anthropicThinkingMode;
161
- return (model) => own(model) ?? anthropicThinkingMode(model);
71
+ return anthropicModels_js_1.anthropicThinkingMode;
72
+ return (model) => own(model) ?? (0, anthropicModels_js_1.anthropicThinkingMode)(model);
162
73
  }
163
74
  exports.thinkingModeWith = thinkingModeWith;
164
75
  /** The smallest `budget_tokens` the API accepts. */
@@ -1 +1 @@
1
- {"version":3,"file":"anthropicThinkingWire.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicThinkingWire.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;;;AAIH,wDAAoE;AAEpE,uEAAuE;AAEvE;;;;;GAKG;AACU,QAAA,wBAAwB,GAA2C,MAAM,CAAC,MAAM,CAAC;IAC5F,mEAAmE;IACnE,kBAAkB,EAAE,UAAU;IAC9B,mBAAmB,EAAE,UAAU;IAC/B,gBAAgB,EAAE,UAAU;IAC5B,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,UAAU;IAC7B,eAAe,EAAE,UAAU;IAC3B,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,UAAU;IAC7B,mBAAmB,EAAE,UAAU;IAC/B,iBAAiB,EAAE,UAAU;IAC7B,kBAAkB,EAAE,UAAU;IAC9B,4EAA4E;IAC5E,wEAAwE;IACxE,uBAAuB,EAAE,UAAU;IACnC,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,QAAQ;IAC7B,6CAA6C;IAC7C,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,QAAQ;IAC7B,kBAAkB,EAAE,QAAQ;IAC5B,iBAAiB,EAAE,QAAQ;IAC3B,eAAe,EAAE,QAAQ;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,QAAQ;IAC7B,yEAAyE;IACzE,wEAAwE;IACxE,qCAAqC;IACrC,mBAAmB,EAAE,MAAM;IAC3B,kBAAkB,EAAE,MAAM;IAC1B,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;IACzB,gBAAgB,EAAE,MAAM;CACzB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,mEAAmE,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACjC,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,KAAkD,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,gCAAwB,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QACvF,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAhBD,sDAgBC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAC9B,GAA8D;IAE9D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,qBAAqB,CAAC;IACpD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AALD,4CAKC;AASD,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,uFAAuF;AACvF,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,KAAK,GAAyB,IAAI,GAAG,CAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,qBAAqB,CACnC,GAAwF,EACxF,IAKC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,MAA0C,EAAE,MAAc,EAAS,EAAE;QACnF,MAAM,IAAI,oCAAwB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,MAAM,IAAI,GAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CACjB,QAAQ,QAAQ,8BAA8B,KAAK,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;YACxF,mDAAmD,CACtD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,CACJ,aAAa,EACb,uFAAuF;YACrF,oDAAoD,CACvD,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,CACJ,aAAa,EACb,eAAe,GAAG,CAAC,WAAW,6DAA6D;YACzF,qFAAqF;YACrF,8DAA8D,CACjE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC5D,MAAM,CACJ,QAAQ,EACR,UAAU,MAAM,iEAAiE;gBAC/E,GAAG,iBAAiB,wCAAwC,iBAAiB,cAAc,CAC9F,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,sDAAsD;QACtD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,CACJ,oBAAoB,EACpB,uFAAuF;gBACrF,wFAAwF;gBACxF,uFAAuF;gBACvF,sFAAsF;gBACtF,sBAAsB,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;IACrD,OAAO;QACL,QAAQ,EACN,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE;YAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE;QACjD,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK;KAC5E,CAAC;AACJ,CAAC;AApED,sDAoEC"}
1
+ {"version":3,"file":"anthropicThinkingWire.js","sourceRoot":"","sources":["../../../src/adapters/llm/anthropicThinkingWire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRequestRefusal = void 0;
4
+ /** Request-contract refusals are terminal, not provider availability failures. */
5
+ const forcedToolChoice_js_1 = require("./forcedToolChoice.js");
6
+ const errors_js_1 = require("../thinking/errors.js");
7
+ const replay_js_1 = require("../thinking/replay.js");
8
+ /** Deliberately narrow: unrelated application errors keep their existing policy. */
9
+ function isRequestRefusal(error) {
10
+ return (error instanceof forcedToolChoice_js_1.UnsupportedToolChoiceError ||
11
+ error instanceof errors_js_1.UnsupportedThinkingError ||
12
+ error instanceof replay_js_1.UnsafeThinkingReplayError);
13
+ }
14
+ exports.isRequestRefusal = isRequestRefusal;
15
+ //# sourceMappingURL=requestRefusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestRefusal.js","sourceRoot":"","sources":["../../src/adapters/requestRefusal.ts"],"names":[],"mappings":";;;AAAA,kFAAkF;AAClF,+DAAmE;AACnE,qDAAiE;AACjE,qDAAkE;AAElE,oFAAoF;AACpF,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,KAAK,YAAY,gDAA0B;QAC3C,KAAK,YAAY,oCAAwB;QACzC,KAAK,YAAY,qCAAyB,CAC3C,CAAC;AACJ,CAAC;AAND,4CAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAwNH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAonBH;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAPD,wCAOC;AAqID;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,SAAgB,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC;AAJD,gDAIC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AA0NH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AA4oBH;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAPD,wCAOC;AAqID;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,SAAgB,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC;AAJD,gDAIC"}
@@ -45,6 +45,9 @@ const extractSequence_js_1 = require("../security/extractSequence.js");
45
45
  const PolicyHaltError_js_1 = require("../security/PolicyHaltError.js");
46
46
  const CacheGateDecider_js_1 = require("../cache/CacheGateDecider.js");
47
47
  const cacheStrategyFor_js_1 = require("../cache/cacheStrategyFor.js");
48
+ const forcedToolChoice_js_1 = require("../adapters/forcedToolChoice.js");
49
+ const requestRefusal_js_1 = require("../adapters/requestRefusal.js");
50
+ const assistantReplay_js_1 = require("./agent/assistantReplay.js");
48
51
  const skillBrains_js_1 = require("./agent/skillBrains.js");
49
52
  const conventions_js_1 = require("../conventions.js");
50
53
  const pause_js_1 = require("./pause.js");
@@ -133,6 +136,7 @@ const EmitBridge_js_1 = require("../recorders/core/EmitBridge.js");
133
136
  const window_js_1 = require("./agent/stages/window.js");
134
137
  const options_js_1 = require("./agent/window/options.js");
135
138
  const deliver_js_1 = require("./agent/stages/deliver.js");
139
+ const providerTargets_js_1 = require("./agent/providerTargets.js");
136
140
  const messagesSlotRefusal_js_1 = require("../lib/injection-engine/messagesSlotRefusal.js");
137
141
  const errors_js_1 = require("./agent/window/errors.js");
138
142
  const checkin_js_1 = require("./checkin.js");
@@ -191,7 +195,7 @@ const buildToolRegistry_js_1 = require("./agent/buildToolRegistry.js");
191
195
  const AgentBuilder_js_1 = require("./agent/AgentBuilder.js");
192
196
  Object.defineProperty(exports, "AgentBuilder", { enumerable: true, get: function () { return AgentBuilder_js_1.AgentBuilder; } });
193
197
  const buildThinkingSubflow_js_1 = require("./slots/buildThinkingSubflow.js");
194
- const thinkingHandlerFor_js_1 = require("../thinking/thinkingHandlerFor.js");
198
+ const dispatch_js_1 = require("../thinking/dispatch.js");
195
199
  // Public types (AgentOptions, AgentInput, AgentOutput) extracted to
196
200
  // ./agent/types.ts and re-exported above (v2.11.1).
197
201
  // AgentState extracted to ./agent/types.ts (v2.11.1).
@@ -618,6 +622,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
618
622
  * kept here rather than read back from the recording. Undefined after a run
619
623
  * that failed or paused. */
620
624
  lastRunAnswer;
625
+ /** Last run's checkpoint owner, including explicit replay edits from a failed child stage. */
626
+ checkpointTracker;
621
627
  /** Whether any run on this instance got past input admission — so a
622
628
  * refused FIRST turn is reported as 'never-run', never as "continue from
623
629
  * your earlier accepted checkpoint" when there is none. */
@@ -1124,17 +1130,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1124
1130
  // A provider that declares none gets no subflow at chart build time.
1125
1131
  // Never chosen by `provider.name`: a renaming wrapper that forwards the
1126
1132
  // declaration keeps it.
1127
- if (thinkingHandlerValue === null) {
1128
- // explicit opt-out
1129
- }
1130
- else if (thinkingHandlerValue !== undefined) {
1131
- this.thinkingHandler = thinkingHandlerValue;
1132
- }
1133
- else {
1134
- const declared = (0, thinkingHandlerFor_js_1.thinkingHandlerFor)(opts.provider);
1135
- if (declared)
1136
- this.thinkingHandler = declared;
1137
- }
1133
+ const handler = (0, dispatch_js_1.thinkingForProviders)(opts.provider, reliabilityConfig?.providers?.map((entry) => entry.provider), thinkingHandlerValue);
1134
+ if (handler !== undefined)
1135
+ this.thinkingHandler = handler;
1138
1136
  if (thinkingBudgetValue !== undefined)
1139
1137
  this.thinkingBudget = thinkingBudgetValue;
1140
1138
  this.appName = voice.appName;
@@ -1638,6 +1636,7 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1638
1636
  history: [],
1639
1637
  lastCompletedIteration: 0,
1640
1638
  };
1639
+ this.checkpointTracker = tracker;
1641
1640
  const stopTracking = this.installCheckpointTracker(tracker);
1642
1641
  // The answer this run produces is the only place the final assistant turn
1643
1642
  // exists (nothing writes it back into `scope.history`), so `checkpoint()`
@@ -1707,6 +1706,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1707
1706
  // either — wrapping this in a checkpoint would invite the caller to
1708
1707
  // retry into the same wall.
1709
1708
  cause instanceof errors_js_1.CompactionUnmeasurableError ||
1709
+ // A forced-output capability refusal is terminal even after a
1710
+ // correction turn: a checkpoint cannot repair this model contract.
1711
+ (0, requestRefusal_js_1.isRequestRefusal)(cause) ||
1710
1712
  // 8.6.0 — a consent block is answered by a PERSON at the identity
1711
1713
  // provider, not by replaying the run. Wrapping it in a crash
1712
1714
  // checkpoint would hand the caller a retry handle for a wall, and
@@ -2255,6 +2257,12 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2255
2257
  // the recording's terms one comment up.
2256
2258
  this.beginIntegrityLedger();
2257
2259
  this.lastRunAnswer = undefined;
2260
+ this.checkpointTracker = {
2261
+ runId: this.currentRunContext.runId,
2262
+ originalInput: { message: '' },
2263
+ history: [],
2264
+ lastCompletedIteration: 0,
2265
+ };
2258
2266
  // One run can never raise on another run's consent block.
2259
2267
  this.consentOutstanding.clear();
2260
2268
  // Beside the `try` whose `finally` clears it (the fresh-run path's terms).
@@ -2353,7 +2361,15 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2353
2361
  * that ends the run carries none. An agent that stored this conversation
2354
2362
  * without that append would drop its own reply every turn and answer the next
2355
2363
  * one having forgotten what it just said.
2356
- *
2364
+ * Provider replay evidence and its normalized thinking travel with that
2365
+ * accepted answer, including a terminal proof with empty text. The answer
2366
+ * remains the delivered text, including output-policy edits; raw provider
2367
+ * text is never substituted back. Evidence comes from live state, not the
2368
+ * redacted observation. Denied, failed and paused runs append no final turn.
2369
+ *
2370
+ * Explicit thinking retirements recorded before transport also apply here:
2371
+ * a failed grouped call cannot restore reasoning omitted from its request.
2372
+ * This copies no other failed-stage state or tool effects into the history.
2357
2373
  * Adds no events, no scope writes and no capture: every recording is
2358
2374
  * byte-identical to an agent that never calls this.
2359
2375
  *
@@ -2387,9 +2403,14 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2387
2403
  if (this.lastInputRefused())
2388
2404
  return undefined;
2389
2405
  const recorded = (state?.history ?? []);
2390
- const history = structuredClone(recorded);
2391
- if (this.lastRunAnswer !== undefined && this.lastRunAnswer.length > 0) {
2392
- history.push({ role: 'assistant', content: this.lastRunAnswer });
2406
+ const history = [...recorded];
2407
+ if (this.lastRunAnswer !== undefined &&
2408
+ (this.lastRunAnswer.length > 0 || state?.llmLatestReplay !== undefined)) {
2409
+ history.push({
2410
+ role: 'assistant',
2411
+ content: this.lastRunAnswer,
2412
+ ...(0, assistantReplay_js_1.assistantReplayFields)(state ?? {}),
2413
+ });
2393
2414
  }
2394
2415
  const folded = this.foldedSpansOf(state);
2395
2416
  const owner = this.conversationOwner();
@@ -2400,7 +2421,7 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2400
2421
  return {
2401
2422
  version: 1,
2402
2423
  runId: this.currentRunContext.runId,
2403
- history,
2424
+ history: structuredClone((0, runCheckpoint_js_1.checkpointReplayHistory)(history, this.checkpointTracker)),
2404
2425
  lastCompletedIteration: typeof state?.iteration === 'number' ? state.iteration : 0,
2405
2426
  originalInput: { message: typeof state?.userMessage === 'string' ? state.userMessage : '' },
2406
2427
  checkpointedAt: Date.now(),
@@ -2932,18 +2953,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2932
2953
  };
2933
2954
  }
2934
2955
  assertDeliverableRoles() {
2935
- const carries = (0, deliver_js_1.carriedRoles)(this.provider);
2936
- const carried = new Set(carries);
2956
+ const providers = (0, providerTargets_js_1.providerTargets)(this.provider, this.model, this.reliabilityConfig?.providers).map((target) => target.provider);
2937
2957
  for (const inj of this.injections) {
2938
2958
  for (const msg of inj.inject?.messages ?? []) {
2939
- if (!carried.has(msg.role)) {
2940
- throw new Error((0, messagesSlotRefusal_js_1.messagesRoleRefusal)({
2941
- site: `Agent injection '${inj.id}'`,
2942
- role: msg.role,
2943
- providerName: this.provider.name,
2944
- carries,
2945
- }));
2946
- }
2959
+ (0, deliver_js_1.assertDeliverableRole)(providers, msg.role, `Agent injection '${inj.id}'`);
2947
2960
  // Content, judged at the same funnel as role (8.18.0). The named
2948
2961
  // factories refuse empty content; a hand-built Injection reached the
2949
2962
  // delivery stage unchecked and put a contentless turn on the wire.
@@ -2980,10 +2993,19 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2980
2993
  assertForcedToolChoiceSupported() {
2981
2994
  if (this.outputEnforcement?.schemaTool === undefined)
2982
2995
  return;
2983
- if (this.provider.carriesForcedToolChoice === true)
2984
- return;
2996
+ const first = this.reliabilityConfig?.providers?.[0];
2997
+ const provider = first?.provider ?? this.provider;
2998
+ const model = first?.model ?? this.model;
2999
+ if (provider.carriesForcedToolChoice === true) {
3000
+ // Configuration resolves the actual model at seed, after this check.
3001
+ // Keep the early wire refusal, but let callLLM judge that final model.
3002
+ if ((first === undefined && this.runConfigFn !== undefined) ||
3003
+ (0, forcedToolChoice_js_1.forcedToolChoiceFor)(provider, model))
3004
+ return;
3005
+ throw new forcedToolChoice_js_1.UnsupportedToolChoiceError({ provider: provider.name, model });
3006
+ }
2985
3007
  throw new Error(`Agent: .outputSchema(parser, { strategy: 'tool-forced' }) needs a provider that puts ` +
2986
- `a forced tool choice on its wire, and '${this.provider.name}' does not declare one. ` +
3008
+ `a forced tool choice on its wire, and '${provider.name}' does not declare one. ` +
2987
3009
  `Anthropic, Bedrock, real OpenAI/Azure and the mock do; an OpenAI-COMPATIBLE endpoint ` +
2988
3010
  `behind a custom baseURL (Ollama, vLLM, …) deliberately does not, because what that ` +
2989
3011
  `server does with tool_choice is not this library's to promise. Use ` +
@@ -4523,6 +4545,11 @@ class Agent extends RunnerBase_js_1.RunnerBase {
4523
4545
  // callLLM extracted to ./agent/stages/callLLM.ts (v2.11.2). Same
4524
4546
  // late-binding pattern as seed for toolSchemas (computed below).
4525
4547
  const callLLM = (0, callLLM_js_1.buildCallLLMStage)({
4548
+ onReplayPrepared: (preparation) => {
4549
+ if (this.checkpointTracker !== undefined &&
4550
+ this.inFlightRunId === this.checkpointTracker.runId)
4551
+ (0, runCheckpoint_js_1.retainReplayRetirements)(this.checkpointTracker, preparation);
4552
+ },
4526
4553
  ...(this.evidenceGate !== undefined &&
4527
4554
  this.evidenceGate.posture !== 'assist' && {
4528
4555
  hasEvidenceRecovery: true,
@@ -5127,6 +5154,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
5127
5154
  this.memories.length > 0) && {
5128
5155
  deliverStage: (0, deliver_js_1.buildDeliverStage)({
5129
5156
  provider: this.provider,
5157
+ ...(this.reliabilityConfig?.providers !== undefined && {
5158
+ providers: (0, providerTargets_js_1.providerTargets)(this.provider, this.model, this.reliabilityConfig.providers).map((target) => target.provider),
5159
+ }),
5130
5160
  memoryIds: this.memories.map((m) => m.id),
5131
5161
  }),
5132
5162
  }),