agentfootprint 9.128.1 → 9.131.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 (603) hide show
  1. package/CAPABILITIES.md +13 -1
  2. package/dist/adapters/llm/AnthropicProvider.js +10 -111
  3. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  4. package/dist/adapters/llm/BedrockProvider.js +11 -4
  5. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  6. package/dist/adapters/llm/InvokeModelGatewayProvider.js +167 -35
  7. package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  8. package/dist/adapters/llm/OpenAIProvider.js +5 -0
  9. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  10. package/dist/adapters/llm/anthropicMessagesWire.js +20 -6
  11. package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
  12. package/dist/adapters/llm/retryAfter.js +61 -0
  13. package/dist/adapters/llm/retryAfter.js.map +1 -0
  14. package/dist/adapters/types.js.map +1 -1
  15. package/dist/artifacts/datasetResult.js +2 -2
  16. package/dist/artifacts/datasetResult.js.map +1 -1
  17. package/dist/artifacts/index.js +10 -8
  18. package/dist/artifacts/index.js.map +1 -1
  19. package/dist/artifacts/minting.js +2 -2
  20. package/dist/artifacts/minting.js.map +1 -1
  21. package/dist/core/Agent.js +229 -5
  22. package/dist/core/Agent.js.map +1 -1
  23. package/dist/core/agent/AgentBuilder.js +75 -1
  24. package/dist/core/agent/AgentBuilder.js.map +1 -1
  25. package/dist/core/agent/arguments/ask.js +356 -14
  26. package/dist/core/agent/arguments/ask.js.map +1 -1
  27. package/dist/core/agent/arguments/declare.js +260 -45
  28. package/dist/core/agent/arguments/declare.js.map +1 -1
  29. package/dist/core/agent/arguments/dispatch.js +25 -1
  30. package/dist/core/agent/arguments/dispatch.js.map +1 -1
  31. package/dist/core/agent/arguments/resolve.js +239 -6
  32. package/dist/core/agent/arguments/resolve.js.map +1 -1
  33. package/dist/core/agent/arguments/rows.js +37 -2
  34. package/dist/core/agent/arguments/rows.js.map +1 -1
  35. package/dist/core/agent/arguments/serve.js +332 -4
  36. package/dist/core/agent/arguments/serve.js.map +1 -1
  37. package/dist/core/agent/arguments/subflow.js +46 -7
  38. package/dist/core/agent/arguments/subflow.js.map +1 -1
  39. package/dist/core/agent/assessment/assess.js +45 -6
  40. package/dist/core/agent/assessment/assess.js.map +1 -1
  41. package/dist/core/agent/assessment/compose.js +3 -0
  42. package/dist/core/agent/assessment/compose.js.map +1 -1
  43. package/dist/core/agent/assessment/reasons.js +18 -0
  44. package/dist/core/agent/assessment/reasons.js.map +1 -1
  45. package/dist/core/agent/buildAgentChart.js +31 -1
  46. package/dist/core/agent/buildAgentChart.js.map +1 -1
  47. package/dist/core/agent/buildDynamicAgentChart.js +9 -0
  48. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  49. package/dist/core/agent/coverage/answer.js +24 -7
  50. package/dist/core/agent/coverage/answer.js.map +1 -1
  51. package/dist/core/agent/coverage/period.js +110 -69
  52. package/dist/core/agent/coverage/period.js.map +1 -1
  53. package/dist/core/agent/coverage/timeLimitFacts.js +70 -0
  54. package/dist/core/agent/coverage/timeLimitFacts.js.map +1 -0
  55. package/dist/core/agent/coverage/timeLimits.js +72 -0
  56. package/dist/core/agent/coverage/timeLimits.js.map +1 -0
  57. package/dist/core/agent/evidence/evidenceIndex.js +48 -7
  58. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  59. package/dist/core/agent/evidence/gate.js +9 -4
  60. package/dist/core/agent/evidence/gate.js.map +1 -1
  61. package/dist/core/agent/evidence/normalize.js +1 -105
  62. package/dist/core/agent/evidence/normalize.js.map +1 -1
  63. package/dist/core/agent/findings/ledger.js +14 -0
  64. package/dist/core/agent/findings/ledger.js.map +1 -1
  65. package/dist/core/agent/findings/types.js.map +1 -1
  66. package/dist/core/agent/honesty/mounts.js +105 -4
  67. package/dist/core/agent/honesty/mounts.js.map +1 -1
  68. package/dist/core/agent/results/subflow.js +43 -11
  69. package/dist/core/agent/results/subflow.js.map +1 -1
  70. package/dist/core/agent/stages/argumentAsk.js +85 -6
  71. package/dist/core/agent/stages/argumentAsk.js.map +1 -1
  72. package/dist/core/agent/stages/callLLM.js +16 -0
  73. package/dist/core/agent/stages/callLLM.js.map +1 -1
  74. package/dist/core/agent/stages/prepareFinal.js +61 -8
  75. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  76. package/dist/core/agent/stages/route.js +64 -6
  77. package/dist/core/agent/stages/route.js.map +1 -1
  78. package/dist/core/agent/stages/seed.js +29 -6
  79. package/dist/core/agent/stages/seed.js.map +1 -1
  80. package/dist/core/agent/stages/timeLayer.js +201 -0
  81. package/dist/core/agent/stages/timeLayer.js.map +1 -0
  82. package/dist/core/agent/stages/timeLineage.js +61 -0
  83. package/dist/core/agent/stages/timeLineage.js.map +1 -0
  84. package/dist/core/agent/stages/toolCalls.js +70 -0
  85. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  86. package/dist/core/inputRequest.js +132 -5
  87. package/dist/core/inputRequest.js.map +1 -1
  88. package/dist/core/messageFrom.js +5 -2
  89. package/dist/core/messageFrom.js.map +1 -1
  90. package/dist/core/runCheckpoint.js +17 -2
  91. package/dist/core/runCheckpoint.js.map +1 -1
  92. package/dist/core/slots/buildToolsSlot.js +30 -2
  93. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  94. package/dist/core/time/ask.js +239 -0
  95. package/dist/core/time/ask.js.map +1 -0
  96. package/dist/core/time/axis.js +469 -0
  97. package/dist/core/time/axis.js.map +1 -0
  98. package/dist/core/time/bind.js +235 -0
  99. package/dist/core/time/bind.js.map +1 -0
  100. package/dist/core/time/check.js +261 -0
  101. package/dist/core/time/check.js.map +1 -0
  102. package/dist/core/time/checkRecord.js +97 -0
  103. package/dist/core/time/checkRecord.js.map +1 -0
  104. package/dist/core/time/clock.js +260 -0
  105. package/dist/core/time/clock.js.map +1 -0
  106. package/dist/core/time/convert.js +634 -0
  107. package/dist/core/time/convert.js.map +1 -0
  108. package/dist/core/time/drift.js +96 -0
  109. package/dist/core/time/drift.js.map +1 -0
  110. package/dist/core/time/duration.js +125 -0
  111. package/dist/core/time/duration.js.map +1 -0
  112. package/dist/core/time/forms.js +273 -0
  113. package/dist/core/time/forms.js.map +1 -0
  114. package/dist/core/time/instant.js +141 -0
  115. package/dist/core/time/instant.js.map +1 -0
  116. package/dist/core/time/periodForm.js +392 -0
  117. package/dist/core/time/periodForm.js.map +1 -0
  118. package/dist/core/time/present.js +312 -0
  119. package/dist/core/time/present.js.map +1 -0
  120. package/dist/core/time/range.js +267 -0
  121. package/dist/core/time/range.js.map +1 -0
  122. package/dist/core/time/reader.js +209 -0
  123. package/dist/core/time/reader.js.map +1 -0
  124. package/dist/core/time/readers/english.js +576 -0
  125. package/dist/core/time/readers/english.js.map +1 -0
  126. package/dist/core/time/readingAsk.js +94 -0
  127. package/dist/core/time/readingAsk.js.map +1 -0
  128. package/dist/core/time/resolve.js +694 -0
  129. package/dist/core/time/resolve.js.map +1 -0
  130. package/dist/core/time/resolveRecord.js +164 -0
  131. package/dist/core/time/resolveRecord.js.map +1 -0
  132. package/dist/core/time/rows.js +412 -0
  133. package/dist/core/time/rows.js.map +1 -0
  134. package/dist/core/time/rowsBuild.js +193 -0
  135. package/dist/core/time/rowsBuild.js.map +1 -0
  136. package/dist/core/time/textForms.js +133 -0
  137. package/dist/core/time/textForms.js.map +1 -0
  138. package/dist/core/time/windows.js +172 -0
  139. package/dist/core/time/windows.js.map +1 -0
  140. package/dist/core/time/wire.js +86 -0
  141. package/dist/core/time/wire.js.map +1 -0
  142. package/dist/core/time/zone.js +253 -0
  143. package/dist/core/time/zone.js.map +1 -0
  144. package/dist/core/tools.js.map +1 -1
  145. package/dist/esm/adapters/llm/AnthropicProvider.js +8 -109
  146. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  147. package/dist/esm/adapters/llm/BedrockProvider.js +11 -4
  148. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  149. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
  150. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +167 -35
  151. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  152. package/dist/esm/adapters/llm/OpenAIProvider.js +5 -0
  153. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  154. package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +6 -1
  155. package/dist/esm/adapters/llm/anthropicMessagesWire.js +20 -6
  156. package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
  157. package/dist/esm/adapters/llm/retryAfter.d.ts +27 -0
  158. package/dist/esm/adapters/llm/retryAfter.js +56 -0
  159. package/dist/esm/adapters/llm/retryAfter.js.map +1 -0
  160. package/dist/esm/adapters/types.d.ts +9 -0
  161. package/dist/esm/adapters/types.js.map +1 -1
  162. package/dist/esm/artifacts/datasetResult.js +1 -1
  163. package/dist/esm/artifacts/datasetResult.js.map +1 -1
  164. package/dist/esm/artifacts/index.d.ts +1 -1
  165. package/dist/esm/artifacts/index.js +3 -2
  166. package/dist/esm/artifacts/index.js.map +1 -1
  167. package/dist/esm/artifacts/minting.js +1 -1
  168. package/dist/esm/artifacts/minting.js.map +1 -1
  169. package/dist/esm/artifacts/types.d.ts +2 -2
  170. package/dist/esm/core/Agent.d.ts +64 -0
  171. package/dist/esm/core/Agent.js +230 -6
  172. package/dist/esm/core/Agent.js.map +1 -1
  173. package/dist/esm/core/agent/AgentBuilder.d.ts +60 -0
  174. package/dist/esm/core/agent/AgentBuilder.js +75 -1
  175. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  176. package/dist/esm/core/agent/arguments/ask.d.ts +88 -5
  177. package/dist/esm/core/agent/arguments/ask.js +349 -8
  178. package/dist/esm/core/agent/arguments/ask.js.map +1 -1
  179. package/dist/esm/core/agent/arguments/checks.d.ts +1 -1
  180. package/dist/esm/core/agent/arguments/declare.d.ts +76 -15
  181. package/dist/esm/core/agent/arguments/declare.js +255 -44
  182. package/dist/esm/core/agent/arguments/declare.js.map +1 -1
  183. package/dist/esm/core/agent/arguments/dispatch.js +25 -1
  184. package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
  185. package/dist/esm/core/agent/arguments/resolve.d.ts +77 -7
  186. package/dist/esm/core/agent/arguments/resolve.js +239 -8
  187. package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
  188. package/dist/esm/core/agent/arguments/rows.d.ts +31 -2
  189. package/dist/esm/core/agent/arguments/rows.js +35 -1
  190. package/dist/esm/core/agent/arguments/rows.js.map +1 -1
  191. package/dist/esm/core/agent/arguments/serve.d.ts +133 -4
  192. package/dist/esm/core/agent/arguments/serve.js +328 -4
  193. package/dist/esm/core/agent/arguments/serve.js.map +1 -1
  194. package/dist/esm/core/agent/arguments/subflow.d.ts +28 -0
  195. package/dist/esm/core/agent/arguments/subflow.js +47 -8
  196. package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
  197. package/dist/esm/core/agent/assessment/assess.js +45 -6
  198. package/dist/esm/core/agent/assessment/assess.js.map +1 -1
  199. package/dist/esm/core/agent/assessment/compose.js +3 -0
  200. package/dist/esm/core/agent/assessment/compose.js.map +1 -1
  201. package/dist/esm/core/agent/assessment/reasons.js +18 -0
  202. package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
  203. package/dist/esm/core/agent/assessment/types.d.ts +15 -1
  204. package/dist/esm/core/agent/buildAgentChart.d.ts +41 -0
  205. package/dist/esm/core/agent/buildAgentChart.js +28 -0
  206. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  207. package/dist/esm/core/agent/buildDynamicAgentChart.d.ts +1 -1
  208. package/dist/esm/core/agent/buildDynamicAgentChart.js +9 -0
  209. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  210. package/dist/esm/core/agent/coverage/answer.d.ts +20 -1
  211. package/dist/esm/core/agent/coverage/answer.js +23 -6
  212. package/dist/esm/core/agent/coverage/answer.js.map +1 -1
  213. package/dist/esm/core/agent/coverage/period.d.ts +49 -3
  214. package/dist/esm/core/agent/coverage/period.js +107 -68
  215. package/dist/esm/core/agent/coverage/period.js.map +1 -1
  216. package/dist/esm/core/agent/coverage/timeLimitFacts.d.ts +56 -0
  217. package/dist/esm/core/agent/coverage/timeLimitFacts.js +65 -0
  218. package/dist/esm/core/agent/coverage/timeLimitFacts.js.map +1 -0
  219. package/dist/esm/core/agent/coverage/timeLimits.d.ts +46 -0
  220. package/dist/esm/core/agent/coverage/timeLimits.js +67 -0
  221. package/dist/esm/core/agent/coverage/timeLimits.js.map +1 -0
  222. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +25 -2
  223. package/dist/esm/core/agent/evidence/evidenceIndex.js +47 -7
  224. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  225. package/dist/esm/core/agent/evidence/gate.d.ts +7 -0
  226. package/dist/esm/core/agent/evidence/gate.js +9 -4
  227. package/dist/esm/core/agent/evidence/gate.js.map +1 -1
  228. package/dist/esm/core/agent/evidence/normalize.d.ts +0 -34
  229. package/dist/esm/core/agent/evidence/normalize.js +0 -103
  230. package/dist/esm/core/agent/evidence/normalize.js.map +1 -1
  231. package/dist/esm/core/agent/evidence/types.d.ts +12 -1
  232. package/dist/esm/core/agent/findings/ledger.js +14 -0
  233. package/dist/esm/core/agent/findings/ledger.js.map +1 -1
  234. package/dist/esm/core/agent/findings/types.d.ts +2 -1
  235. package/dist/esm/core/agent/findings/types.js.map +1 -1
  236. package/dist/esm/core/agent/honesty/mounts.d.ts +25 -0
  237. package/dist/esm/core/agent/honesty/mounts.js +104 -4
  238. package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
  239. package/dist/esm/core/agent/results/subflow.d.ts +34 -2
  240. package/dist/esm/core/agent/results/subflow.js +43 -11
  241. package/dist/esm/core/agent/results/subflow.js.map +1 -1
  242. package/dist/esm/core/agent/stages/argumentAsk.d.ts +19 -0
  243. package/dist/esm/core/agent/stages/argumentAsk.js +85 -6
  244. package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
  245. package/dist/esm/core/agent/stages/callLLM.d.ts +6 -0
  246. package/dist/esm/core/agent/stages/callLLM.js +16 -0
  247. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  248. package/dist/esm/core/agent/stages/prepareFinal.d.ts +13 -1
  249. package/dist/esm/core/agent/stages/prepareFinal.js +59 -7
  250. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  251. package/dist/esm/core/agent/stages/route.d.ts +29 -1
  252. package/dist/esm/core/agent/stages/route.js +64 -7
  253. package/dist/esm/core/agent/stages/route.js.map +1 -1
  254. package/dist/esm/core/agent/stages/seed.d.ts +23 -0
  255. package/dist/esm/core/agent/stages/seed.js +29 -6
  256. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  257. package/dist/esm/core/agent/stages/timeLayer.d.ts +94 -0
  258. package/dist/esm/core/agent/stages/timeLayer.js +193 -0
  259. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -0
  260. package/dist/esm/core/agent/stages/timeLineage.d.ts +31 -0
  261. package/dist/esm/core/agent/stages/timeLineage.js +57 -0
  262. package/dist/esm/core/agent/stages/timeLineage.js.map +1 -0
  263. package/dist/esm/core/agent/stages/toolCalls.d.ts +32 -0
  264. package/dist/esm/core/agent/stages/toolCalls.js +70 -0
  265. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  266. package/dist/esm/core/agent/types.d.ts +37 -0
  267. package/dist/esm/core/inputRequest.d.ts +50 -6
  268. package/dist/esm/core/inputRequest.js +132 -5
  269. package/dist/esm/core/inputRequest.js.map +1 -1
  270. package/dist/esm/core/messageFrom.d.ts +5 -2
  271. package/dist/esm/core/messageFrom.js +5 -2
  272. package/dist/esm/core/messageFrom.js.map +1 -1
  273. package/dist/esm/core/runCheckpoint.js +17 -2
  274. package/dist/esm/core/runCheckpoint.js.map +1 -1
  275. package/dist/esm/core/slots/buildToolsSlot.d.ts +29 -0
  276. package/dist/esm/core/slots/buildToolsSlot.js +30 -2
  277. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  278. package/dist/esm/core/time/ask.d.ts +126 -0
  279. package/dist/esm/core/time/ask.js +230 -0
  280. package/dist/esm/core/time/ask.js.map +1 -0
  281. package/dist/esm/core/time/axis.d.ts +224 -0
  282. package/dist/esm/core/time/axis.js +462 -0
  283. package/dist/esm/core/time/axis.js.map +1 -0
  284. package/dist/esm/core/time/bind.d.ts +143 -0
  285. package/dist/esm/core/time/bind.js +227 -0
  286. package/dist/esm/core/time/bind.js.map +1 -0
  287. package/dist/esm/core/time/check.d.ts +113 -0
  288. package/dist/esm/core/time/check.js +252 -0
  289. package/dist/esm/core/time/check.js.map +1 -0
  290. package/dist/esm/core/time/checkRecord.d.ts +74 -0
  291. package/dist/esm/core/time/checkRecord.js +90 -0
  292. package/dist/esm/core/time/checkRecord.js.map +1 -0
  293. package/dist/esm/core/time/clock.d.ts +183 -0
  294. package/dist/esm/core/time/clock.js +252 -0
  295. package/dist/esm/core/time/clock.js.map +1 -0
  296. package/dist/esm/core/time/convert.d.ts +178 -0
  297. package/dist/esm/core/time/convert.js +609 -0
  298. package/dist/esm/core/time/convert.js.map +1 -0
  299. package/dist/esm/core/time/drift.d.ts +85 -0
  300. package/dist/esm/core/time/drift.js +91 -0
  301. package/dist/esm/core/time/drift.js.map +1 -0
  302. package/dist/esm/core/time/duration.d.ts +71 -0
  303. package/dist/esm/core/time/duration.js +117 -0
  304. package/dist/esm/core/time/duration.js.map +1 -0
  305. package/dist/esm/core/time/forms.d.ts +84 -0
  306. package/dist/esm/core/time/forms.js +268 -0
  307. package/dist/esm/core/time/forms.js.map +1 -0
  308. package/dist/esm/core/time/instant.d.ts +75 -0
  309. package/dist/esm/core/time/instant.js +131 -0
  310. package/dist/esm/core/time/instant.js.map +1 -0
  311. package/dist/esm/core/time/periodForm.d.ts +184 -0
  312. package/dist/esm/core/time/periodForm.js +376 -0
  313. package/dist/esm/core/time/periodForm.js.map +1 -0
  314. package/dist/esm/core/time/present.d.ts +107 -0
  315. package/dist/esm/core/time/present.js +305 -0
  316. package/dist/esm/core/time/present.js.map +1 -0
  317. package/dist/esm/core/time/range.d.ts +127 -0
  318. package/dist/esm/core/time/range.js +249 -0
  319. package/dist/esm/core/time/range.js.map +1 -0
  320. package/dist/esm/core/time/reader.d.ts +162 -0
  321. package/dist/esm/core/time/reader.js +203 -0
  322. package/dist/esm/core/time/reader.js.map +1 -0
  323. package/dist/esm/core/time/readers/english.d.ts +99 -0
  324. package/dist/esm/core/time/readers/english.js +572 -0
  325. package/dist/esm/core/time/readers/english.js.map +1 -0
  326. package/dist/esm/core/time/readingAsk.d.ts +45 -0
  327. package/dist/esm/core/time/readingAsk.js +90 -0
  328. package/dist/esm/core/time/readingAsk.js.map +1 -0
  329. package/dist/esm/core/time/resolve.d.ts +103 -0
  330. package/dist/esm/core/time/resolve.js +684 -0
  331. package/dist/esm/core/time/resolve.js.map +1 -0
  332. package/dist/esm/core/time/resolveRecord.d.ts +160 -0
  333. package/dist/esm/core/time/resolveRecord.js +158 -0
  334. package/dist/esm/core/time/resolveRecord.js.map +1 -0
  335. package/dist/esm/core/time/rows.d.ts +297 -0
  336. package/dist/esm/core/time/rows.js +397 -0
  337. package/dist/esm/core/time/rows.js.map +1 -0
  338. package/dist/esm/core/time/rowsBuild.d.ts +82 -0
  339. package/dist/esm/core/time/rowsBuild.js +185 -0
  340. package/dist/esm/core/time/rowsBuild.js.map +1 -0
  341. package/dist/esm/core/time/textForms.d.ts +53 -0
  342. package/dist/esm/core/time/textForms.js +126 -0
  343. package/dist/esm/core/time/textForms.js.map +1 -0
  344. package/dist/esm/core/time/windows.d.ts +113 -0
  345. package/dist/esm/core/time/windows.js +166 -0
  346. package/dist/esm/core/time/windows.js.map +1 -0
  347. package/dist/esm/core/time/wire.d.ts +63 -0
  348. package/dist/esm/core/time/wire.js +81 -0
  349. package/dist/esm/core/time/wire.js.map +1 -0
  350. package/dist/esm/core/time/zone.d.ts +115 -0
  351. package/dist/esm/core/time/zone.js +242 -0
  352. package/dist/esm/core/time/zone.js.map +1 -0
  353. package/dist/esm/core/tools.d.ts +26 -4
  354. package/dist/esm/core/tools.js.map +1 -1
  355. package/dist/esm/events/payloads.d.ts +16 -2
  356. package/dist/esm/index.d.ts +13 -1
  357. package/dist/esm/index.js +6 -1
  358. package/dist/esm/index.js.map +1 -1
  359. package/dist/esm/lib/answer-account/facts/howSure.js +7 -0
  360. package/dist/esm/lib/answer-account/facts/howSure.js.map +1 -1
  361. package/dist/esm/lib/answer-account/templates.d.ts +3 -0
  362. package/dist/esm/lib/answer-account/templates.js +4 -0
  363. package/dist/esm/lib/answer-account/templates.js.map +1 -1
  364. package/dist/esm/lib/mcp/elicitation.d.ts +84 -0
  365. package/dist/esm/lib/mcp/elicitation.js +181 -0
  366. package/dist/esm/lib/mcp/elicitation.js.map +1 -0
  367. package/dist/esm/lib/mcp/mcpClient.js +9 -3
  368. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  369. package/dist/esm/lib/mcp/mcpServe.js +6 -2
  370. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  371. package/dist/esm/lib/mcp/mockMcpClient.d.ts +9 -1
  372. package/dist/esm/lib/mcp/mockMcpClient.js +5 -3
  373. package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
  374. package/dist/esm/lib/mcp/toolExtras.d.ts +21 -2
  375. package/dist/esm/lib/mcp/toolExtras.js +22 -0
  376. package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
  377. package/dist/esm/lib/mcp/types.d.ts +8 -0
  378. package/dist/esm/lib/time-travel/receipt.d.ts +1 -1
  379. package/dist/esm/lib/time-travel/servedView.d.ts +1 -1
  380. package/dist/esm/lib/time-travel/servedView.js +9 -0
  381. package/dist/esm/lib/time-travel/servedView.js.map +1 -1
  382. package/dist/esm/locales/index.d.ts +6 -0
  383. package/dist/esm/locales/index.js +6 -0
  384. package/dist/esm/locales/index.js.map +1 -1
  385. package/dist/esm/locales/timeAsk.d.ts +29 -0
  386. package/dist/esm/locales/timeAsk.js +44 -0
  387. package/dist/esm/locales/timeAsk.js.map +1 -0
  388. package/dist/esm/recorders/core/resilienceHooks.js +1 -0
  389. package/dist/esm/recorders/core/resilienceHooks.js.map +1 -1
  390. package/dist/esm/resilience/statedWait.d.ts +22 -0
  391. package/dist/esm/resilience/statedWait.js +35 -0
  392. package/dist/esm/resilience/statedWait.js.map +1 -0
  393. package/dist/esm/resilience/withRetry.d.ts +13 -2
  394. package/dist/esm/resilience/withRetry.js +16 -1
  395. package/dist/esm/resilience/withRetry.js.map +1 -1
  396. package/dist/index.js +11 -1
  397. package/dist/index.js.map +1 -1
  398. package/dist/lib/answer-account/facts/howSure.js +7 -0
  399. package/dist/lib/answer-account/facts/howSure.js.map +1 -1
  400. package/dist/lib/answer-account/templates.js +4 -0
  401. package/dist/lib/answer-account/templates.js.map +1 -1
  402. package/dist/lib/mcp/elicitation.js +186 -0
  403. package/dist/lib/mcp/elicitation.js.map +1 -0
  404. package/dist/lib/mcp/mcpClient.js +8 -2
  405. package/dist/lib/mcp/mcpClient.js.map +1 -1
  406. package/dist/lib/mcp/mcpServe.js +5 -1
  407. package/dist/lib/mcp/mcpServe.js.map +1 -1
  408. package/dist/lib/mcp/mockMcpClient.js +4 -2
  409. package/dist/lib/mcp/mockMcpClient.js.map +1 -1
  410. package/dist/lib/mcp/toolExtras.js +25 -1
  411. package/dist/lib/mcp/toolExtras.js.map +1 -1
  412. package/dist/lib/time-travel/servedView.js +9 -0
  413. package/dist/lib/time-travel/servedView.js.map +1 -1
  414. package/dist/locales/index.js +8 -1
  415. package/dist/locales/index.js.map +1 -1
  416. package/dist/locales/timeAsk.js +47 -0
  417. package/dist/locales/timeAsk.js.map +1 -0
  418. package/dist/recorders/core/resilienceHooks.js +1 -0
  419. package/dist/recorders/core/resilienceHooks.js.map +1 -1
  420. package/dist/resilience/statedWait.js +39 -0
  421. package/dist/resilience/statedWait.js.map +1 -0
  422. package/dist/resilience/withRetry.js +16 -1
  423. package/dist/resilience/withRetry.js.map +1 -1
  424. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  425. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  426. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
  427. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
  428. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  429. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +6 -1
  430. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
  431. package/dist/types/adapters/llm/retryAfter.d.ts +28 -0
  432. package/dist/types/adapters/llm/retryAfter.d.ts.map +1 -0
  433. package/dist/types/adapters/types.d.ts +9 -0
  434. package/dist/types/adapters/types.d.ts.map +1 -1
  435. package/dist/types/artifacts/index.d.ts +1 -1
  436. package/dist/types/artifacts/index.d.ts.map +1 -1
  437. package/dist/types/artifacts/types.d.ts +2 -2
  438. package/dist/types/artifacts/types.d.ts.map +1 -1
  439. package/dist/types/core/Agent.d.ts +64 -0
  440. package/dist/types/core/Agent.d.ts.map +1 -1
  441. package/dist/types/core/agent/AgentBuilder.d.ts +60 -0
  442. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  443. package/dist/types/core/agent/arguments/ask.d.ts +88 -5
  444. package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
  445. package/dist/types/core/agent/arguments/checks.d.ts +1 -1
  446. package/dist/types/core/agent/arguments/checks.d.ts.map +1 -1
  447. package/dist/types/core/agent/arguments/declare.d.ts +76 -15
  448. package/dist/types/core/agent/arguments/declare.d.ts.map +1 -1
  449. package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -1
  450. package/dist/types/core/agent/arguments/resolve.d.ts +77 -7
  451. package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
  452. package/dist/types/core/agent/arguments/rows.d.ts +31 -2
  453. package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
  454. package/dist/types/core/agent/arguments/serve.d.ts +133 -4
  455. package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
  456. package/dist/types/core/agent/arguments/subflow.d.ts +28 -0
  457. package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
  458. package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
  459. package/dist/types/core/agent/assessment/compose.d.ts.map +1 -1
  460. package/dist/types/core/agent/assessment/reasons.d.ts.map +1 -1
  461. package/dist/types/core/agent/assessment/types.d.ts +15 -1
  462. package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
  463. package/dist/types/core/agent/buildAgentChart.d.ts +41 -0
  464. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  465. package/dist/types/core/agent/buildDynamicAgentChart.d.ts +1 -1
  466. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  467. package/dist/types/core/agent/coverage/answer.d.ts +20 -1
  468. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
  469. package/dist/types/core/agent/coverage/period.d.ts +49 -3
  470. package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
  471. package/dist/types/core/agent/coverage/timeLimitFacts.d.ts +57 -0
  472. package/dist/types/core/agent/coverage/timeLimitFacts.d.ts.map +1 -0
  473. package/dist/types/core/agent/coverage/timeLimits.d.ts +47 -0
  474. package/dist/types/core/agent/coverage/timeLimits.d.ts.map +1 -0
  475. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +25 -2
  476. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  477. package/dist/types/core/agent/evidence/gate.d.ts +7 -0
  478. package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
  479. package/dist/types/core/agent/evidence/normalize.d.ts +0 -34
  480. package/dist/types/core/agent/evidence/normalize.d.ts.map +1 -1
  481. package/dist/types/core/agent/evidence/types.d.ts +12 -1
  482. package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
  483. package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
  484. package/dist/types/core/agent/findings/types.d.ts +2 -1
  485. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  486. package/dist/types/core/agent/honesty/mounts.d.ts +25 -0
  487. package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
  488. package/dist/types/core/agent/results/subflow.d.ts +34 -2
  489. package/dist/types/core/agent/results/subflow.d.ts.map +1 -1
  490. package/dist/types/core/agent/stages/argumentAsk.d.ts +19 -0
  491. package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
  492. package/dist/types/core/agent/stages/callLLM.d.ts +6 -0
  493. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  494. package/dist/types/core/agent/stages/prepareFinal.d.ts +13 -1
  495. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  496. package/dist/types/core/agent/stages/route.d.ts +29 -1
  497. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  498. package/dist/types/core/agent/stages/seed.d.ts +23 -0
  499. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  500. package/dist/types/core/agent/stages/timeLayer.d.ts +95 -0
  501. package/dist/types/core/agent/stages/timeLayer.d.ts.map +1 -0
  502. package/dist/types/core/agent/stages/timeLineage.d.ts +32 -0
  503. package/dist/types/core/agent/stages/timeLineage.d.ts.map +1 -0
  504. package/dist/types/core/agent/stages/toolCalls.d.ts +32 -0
  505. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  506. package/dist/types/core/agent/types.d.ts +37 -0
  507. package/dist/types/core/agent/types.d.ts.map +1 -1
  508. package/dist/types/core/inputRequest.d.ts +50 -6
  509. package/dist/types/core/inputRequest.d.ts.map +1 -1
  510. package/dist/types/core/messageFrom.d.ts +5 -2
  511. package/dist/types/core/messageFrom.d.ts.map +1 -1
  512. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  513. package/dist/types/core/slots/buildToolsSlot.d.ts +29 -0
  514. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  515. package/dist/types/core/time/ask.d.ts +127 -0
  516. package/dist/types/core/time/ask.d.ts.map +1 -0
  517. package/dist/types/core/time/axis.d.ts +225 -0
  518. package/dist/types/core/time/axis.d.ts.map +1 -0
  519. package/dist/types/core/time/bind.d.ts +144 -0
  520. package/dist/types/core/time/bind.d.ts.map +1 -0
  521. package/dist/types/core/time/check.d.ts +114 -0
  522. package/dist/types/core/time/check.d.ts.map +1 -0
  523. package/dist/types/core/time/checkRecord.d.ts +75 -0
  524. package/dist/types/core/time/checkRecord.d.ts.map +1 -0
  525. package/dist/types/core/time/clock.d.ts +184 -0
  526. package/dist/types/core/time/clock.d.ts.map +1 -0
  527. package/dist/types/core/time/convert.d.ts +179 -0
  528. package/dist/types/core/time/convert.d.ts.map +1 -0
  529. package/dist/types/core/time/drift.d.ts +86 -0
  530. package/dist/types/core/time/drift.d.ts.map +1 -0
  531. package/dist/types/core/time/duration.d.ts +72 -0
  532. package/dist/types/core/time/duration.d.ts.map +1 -0
  533. package/dist/types/core/time/forms.d.ts +85 -0
  534. package/dist/types/core/time/forms.d.ts.map +1 -0
  535. package/dist/types/core/time/instant.d.ts +76 -0
  536. package/dist/types/core/time/instant.d.ts.map +1 -0
  537. package/dist/types/core/time/periodForm.d.ts +185 -0
  538. package/dist/types/core/time/periodForm.d.ts.map +1 -0
  539. package/dist/types/core/time/present.d.ts +108 -0
  540. package/dist/types/core/time/present.d.ts.map +1 -0
  541. package/dist/types/core/time/range.d.ts +128 -0
  542. package/dist/types/core/time/range.d.ts.map +1 -0
  543. package/dist/types/core/time/reader.d.ts +163 -0
  544. package/dist/types/core/time/reader.d.ts.map +1 -0
  545. package/dist/types/core/time/readers/english.d.ts +100 -0
  546. package/dist/types/core/time/readers/english.d.ts.map +1 -0
  547. package/dist/types/core/time/readingAsk.d.ts +46 -0
  548. package/dist/types/core/time/readingAsk.d.ts.map +1 -0
  549. package/dist/types/core/time/resolve.d.ts +104 -0
  550. package/dist/types/core/time/resolve.d.ts.map +1 -0
  551. package/dist/types/core/time/resolveRecord.d.ts +161 -0
  552. package/dist/types/core/time/resolveRecord.d.ts.map +1 -0
  553. package/dist/types/core/time/rows.d.ts +298 -0
  554. package/dist/types/core/time/rows.d.ts.map +1 -0
  555. package/dist/types/core/time/rowsBuild.d.ts +83 -0
  556. package/dist/types/core/time/rowsBuild.d.ts.map +1 -0
  557. package/dist/types/core/time/textForms.d.ts +54 -0
  558. package/dist/types/core/time/textForms.d.ts.map +1 -0
  559. package/dist/types/core/time/windows.d.ts +114 -0
  560. package/dist/types/core/time/windows.d.ts.map +1 -0
  561. package/dist/types/core/time/wire.d.ts +64 -0
  562. package/dist/types/core/time/wire.d.ts.map +1 -0
  563. package/dist/types/core/time/zone.d.ts +116 -0
  564. package/dist/types/core/time/zone.d.ts.map +1 -0
  565. package/dist/types/core/tools.d.ts +26 -4
  566. package/dist/types/core/tools.d.ts.map +1 -1
  567. package/dist/types/events/payloads.d.ts +16 -2
  568. package/dist/types/events/payloads.d.ts.map +1 -1
  569. package/dist/types/index.d.ts +13 -1
  570. package/dist/types/index.d.ts.map +1 -1
  571. package/dist/types/lib/answer-account/facts/howSure.d.ts.map +1 -1
  572. package/dist/types/lib/answer-account/templates.d.ts +3 -0
  573. package/dist/types/lib/answer-account/templates.d.ts.map +1 -1
  574. package/dist/types/lib/mcp/elicitation.d.ts +85 -0
  575. package/dist/types/lib/mcp/elicitation.d.ts.map +1 -0
  576. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  577. package/dist/types/lib/mcp/mockMcpClient.d.ts +9 -1
  578. package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
  579. package/dist/types/lib/mcp/toolExtras.d.ts +21 -2
  580. package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
  581. package/dist/types/lib/mcp/types.d.ts +8 -0
  582. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  583. package/dist/types/lib/time-travel/receipt.d.ts +1 -1
  584. package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
  585. package/dist/types/lib/time-travel/servedView.d.ts +1 -1
  586. package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
  587. package/dist/types/locales/index.d.ts +6 -0
  588. package/dist/types/locales/index.d.ts.map +1 -1
  589. package/dist/types/locales/timeAsk.d.ts +30 -0
  590. package/dist/types/locales/timeAsk.d.ts.map +1 -0
  591. package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -1
  592. package/dist/types/resilience/statedWait.d.ts +23 -0
  593. package/dist/types/resilience/statedWait.d.ts.map +1 -0
  594. package/dist/types/resilience/withRetry.d.ts +13 -2
  595. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  596. package/package.json +1 -1
  597. package/dist/artifacts/timeAxis.js +0 -218
  598. package/dist/artifacts/timeAxis.js.map +0 -1
  599. package/dist/esm/artifacts/timeAxis.d.ts +0 -114
  600. package/dist/esm/artifacts/timeAxis.js +0 -212
  601. package/dist/esm/artifacts/timeAxis.js.map +0 -1
  602. package/dist/types/artifacts/timeAxis.d.ts +0 -115
  603. package/dist/types/artifacts/timeAxis.d.ts.map +0 -1
@@ -124,9 +124,11 @@ import { makeRouteTurnStage } from './agent/stages/routeTurn.js';
124
124
  import { applyOutputFallback, } from './outputFallback.js';
125
125
  import { assertContinuable, buildCheckpoint, classifyFailurePhase, RunCheckpointError, validateCheckpoint, } from './runCheckpoint.js';
126
126
  import { NoConversationError, PendingQuestionError, ResumeIdentityConflictError, RunInFlightError, } from './conversation.js';
127
- import { applyInputResponse, readAwaitingInput } from './inputRequest.js';
127
+ import { applyInputResponse, readAwaitingInput, } from './inputRequest.js';
128
128
  import { applyOutputSchema, OutputSchemaError } from './outputSchema.js';
129
129
  import { InvalidRunInputError, normalizeRunInput } from './runInput.js';
130
+ import { clockOf } from './time/rows.js';
131
+ import { draftClock, readRunTime, readTimeOptions, } from './time/clock.js';
130
132
  import { buildOutputRetryStage } from './agent/stages/outputRetry.js';
131
133
  import { RunnerBase, makeRunId } from './RunnerBase.js';
132
134
  import { clampIterations, validateMemoryIdUniqueness, validateToolNameUniqueness, } from './agent/validators.js';
@@ -339,6 +341,20 @@ export class Agent extends RunnerBase {
339
341
  * ask, and that undefined is the whole zero-cost guarantee: no stage, no
340
342
  * witness row, no stamp, no event, no bridge. */
341
343
  answerLayerOption;
344
+ /** `.time()` (the time layer, `core/time/`): the fallback zone, as read.
345
+ * Undefined on every agent that did not ask — then no clock is read, no
346
+ * time row is filed and `time` on a run is refused. */
347
+ timeOptions;
348
+ /** The clock the CURRENT `run()`'s seed stamps — set by `run()` (refusing a
349
+ * run with no zone), read by seed through `SeedStageDeps.timeClock`, and
350
+ * cleared when `run()` ends, so a later turn this agent did not start (its
351
+ * chart mounted in a composition) never stamps a clock nobody declared for
352
+ * it (`seedClockDraft`). */
353
+ runClockDraft;
354
+ /** The `time` the CURRENT resume passed, as read — TAKEN once by the first
355
+ * ToolCalls pass of the resumed leg (`ToolCallsHandlerDeps.time`), and
356
+ * cleared when `run()` or `resume()` ends. */
357
+ resumePassedTime;
342
358
  /** Tool choice by classifier (9.105.0, `.toolChoice()`): the classifier,
343
359
  * the serve dial and the app's own doors. Threaded to the tools slot (the
344
360
  * pick and the narrowing), to call-llm (`toolChoice: true`, the outcome
@@ -778,6 +794,18 @@ export class Agent extends RunnerBase {
778
794
  else if (typeof opts.answerLayer === 'object' && opts.answerLayer !== null) {
779
795
  this.answerLayerOption = opts.answerLayer.standingLine === true ? { standingLine: true } : {};
780
796
  }
797
+ // The time layer's door (`.time()` / `AgentOptions.time`): `true` or the
798
+ // options, read once; a malformed zone is refused here, at build.
799
+ if (opts.time !== undefined) {
800
+ const read = readTimeOptions(opts.time === true ? undefined : opts.time);
801
+ if ('problem' in read)
802
+ throw new Error(`Agent: time ${read.problem}.`);
803
+ this.timeOptions = read.value;
804
+ // The reader reads only a person's message — a composition hands the
805
+ // `messageFrom: 'composed'` marker only to a runner that reads it.
806
+ if (read.value.reader !== undefined)
807
+ readsMessageFrom(this);
808
+ }
781
809
  if (opts.findings?.argumentSources === true || inputsLayer?.argumentSources === true) {
782
810
  this.argumentSourcesArmed = true;
783
811
  // Declared sources read `AgentInput.messageFrom` — a composition hands
@@ -1467,6 +1495,10 @@ export class Agent extends RunnerBase {
1467
1495
  // not at the resume of a pause it would have made impossible to resume.
1468
1496
  assertIdentityShape(runInput.identity, 'Agent.run');
1469
1497
  assertIdentityShape(options?.identity, 'Agent.run');
1498
+ // The run's clock (the time layer): read or refused HERE, before the turn
1499
+ // starts — a run with no zone anywhere never runs on the server's zone.
1500
+ const clockDraft = this.clockDraftFor(runInput.time ?? options?.time, 'Agent.run');
1501
+ const engineOptions = withoutTime(options);
1470
1502
  // Timing next, and before the executor exists: both of these refuse a call
1471
1503
  // that would have SUCCEEDED into corrupted per-instance state or an
1472
1504
  // orphaned human question. See ./conversation.ts for why they are throws.
@@ -1498,7 +1530,8 @@ export class Agent extends RunnerBase {
1498
1530
  // (helper used in the catch block below — module-private function
1499
1531
  // declared at file end via hoisting)
1500
1532
  this.answeredAsk = undefined;
1501
- const executor = this.createExecutor(options);
1533
+ this.resumePassedTime = undefined;
1534
+ const executor = this.createExecutor(engineOptions);
1502
1535
  this.inFlightRunId = this.currentRunContext.runId;
1503
1536
  // One disposition ledger per run (9.60.0) — registration mirrors what
1504
1537
  // this agent's configuration makes applicable; dev posture runs the
@@ -1523,22 +1556,28 @@ export class Agent extends RunnerBase {
1523
1556
  this.lastRunAnswer = undefined;
1524
1557
  // One run can never raise on another run's consent block.
1525
1558
  this.consentOutstanding.clear();
1559
+ // Set here, beside the `try` whose `finally` clears it, so no exit path
1560
+ // can leave it behind for a turn this `run()` did not start.
1561
+ this.runClockDraft = clockDraft;
1526
1562
  try {
1527
1563
  const result = await executor.run({
1528
1564
  input: {
1529
1565
  message: runInput.message,
1530
1566
  ...(this.lastRunIdentity !== undefined && { identity: this.lastRunIdentity }),
1531
1567
  // A composed message reaches seed only on an agent that reads it
1532
- // (declared sources) — every other run's input is the bytes it was.
1568
+ // (declared sources, or the time layer's reader) — every other run's
1569
+ // input is the bytes it was.
1533
1570
  ...(messageFrom === 'composed' &&
1534
- this.argumentSourcesArmed === true && { messageFrom: 'composed' }),
1571
+ (this.argumentSourcesArmed === true || this.timeOptions?.reader !== undefined) && {
1572
+ messageFrom: 'composed',
1573
+ }),
1535
1574
  },
1536
1575
  // Co-engineered boundary (#16): the engine's loop-iteration limit
1537
1576
  // (footprintjs 9 default 1000) must never fire BELOW the agent's own
1538
1577
  // budget — give it headroom (×2 + 10 covers double-hop loop shapes).
1539
1578
  // Consumer-provided options win.
1540
1579
  maxIterations: this.maxIterations * 2 + 10,
1541
- ...(options ?? {}),
1580
+ ...(engineOptions ?? {}),
1542
1581
  });
1543
1582
  const finalized = this.finalizeResult(executor, result);
1544
1583
  if (typeof finalized === 'string')
@@ -1632,6 +1671,11 @@ export class Agent extends RunnerBase {
1632
1671
  throw cause;
1633
1672
  }
1634
1673
  finally {
1674
+ // The time layer's per-run inputs end with the run: a stale draft would
1675
+ // be stamped by the next seed this agent did not start (a composition
1676
+ // mounting its chart) as if the app had declared it.
1677
+ this.runClockDraft = undefined;
1678
+ this.resumePassedTime = undefined;
1635
1679
  // The run's disposition rows, on EVERY path — success, failure, pause —
1636
1680
  // and BEFORE the recording stops, so a recording carries its run's
1637
1681
  // checker accounting (9.60.0).
@@ -1815,6 +1859,79 @@ export class Agent extends RunnerBase {
1815
1859
  identityFor(options, cp) {
1816
1860
  return options?.identity ?? cp.identity;
1817
1861
  }
1862
+ /**
1863
+ * A run's `time`, read into the turn's clock draft (the time layer) — or
1864
+ * refused, before the turn starts: `time` on an agent without `.time()`, a
1865
+ * malformed value, or no zone anywhere (the run's, else the builder's).
1866
+ * `undefined` on an agent without the layer.
1867
+ *
1868
+ * @internal
1869
+ */
1870
+ clockDraftFor(time, runner) {
1871
+ const passed = this.passedTimeFor(time, runner);
1872
+ if (this.timeOptions === undefined)
1873
+ return undefined;
1874
+ const draft = draftClock(passed, this.timeOptions);
1875
+ if (draft === 'no-zone') {
1876
+ throw new InvalidRunInputError({
1877
+ runner,
1878
+ received: 'a run with no time zone',
1879
+ hint: "this agent's time layer needs the person's zone — pass run({ message, time: { zone: " +
1880
+ "'America/Los_Angeles' } }) or declare a fallback with .time({ zone }); the server's " +
1881
+ 'zone is never used',
1882
+ });
1883
+ }
1884
+ return draft;
1885
+ }
1886
+ /**
1887
+ * The clock draft seed stamps (the time layer): the one `run()` read — or,
1888
+ * for a turn this agent's `run()` did not start (its chart mounted in a
1889
+ * composition, which passes no `time`), the builder's fallback zone with
1890
+ * the turn's start as `now` (`zoneSource: 'builder'`, `nowSource:
1891
+ * 'default'` — the same record a `run()` with no `time` files). With no
1892
+ * fallback zone that turn is refused, as `run()` refuses it: the server's
1893
+ * zone is never used.
1894
+ *
1895
+ * @internal
1896
+ */
1897
+ seedClockDraft() {
1898
+ if (this.runClockDraft !== undefined)
1899
+ return this.runClockDraft;
1900
+ const draft = draftClock(undefined, this.timeOptions ?? {});
1901
+ if (draft === 'no-zone') {
1902
+ throw new InvalidRunInputError({
1903
+ runner: 'Agent (mounted in a composition)',
1904
+ received: 'a turn with no time zone',
1905
+ hint: "this agent's time layer needs the person's zone, and a composition passes no time to " +
1906
+ "the agents it mounts — declare a fallback with .time({ zone: 'America/Los_Angeles' }); " +
1907
+ "the server's zone is never used",
1908
+ });
1909
+ }
1910
+ return draft;
1911
+ }
1912
+ /**
1913
+ * A `time` passed to a run or a resume, read — or refused by name: passed to
1914
+ * an agent without `.time()` (a door that ignored it would look configured
1915
+ * and do nothing), or malformed.
1916
+ *
1917
+ * @internal
1918
+ */
1919
+ passedTimeFor(time, runner) {
1920
+ if (time === undefined)
1921
+ return undefined;
1922
+ if (this.timeOptions === undefined) {
1923
+ throw new InvalidRunInputError({
1924
+ runner,
1925
+ received: 'time',
1926
+ hint: 'this agent reads no clock — arm the time layer with .time() to pass time',
1927
+ });
1928
+ }
1929
+ const read = readRunTime(time);
1930
+ if ('problem' in read) {
1931
+ throw new InvalidRunInputError({ runner, received: 'a malformed time', hint: read.problem });
1932
+ }
1933
+ return read.value;
1934
+ }
1818
1935
  /**
1819
1936
  * Install a per-run checkpoint tracker. Listens for the agent's
1820
1937
  * own iteration_end events on `this.dispatcher` and snapshots the
@@ -1910,6 +2027,11 @@ export class Agent extends RunnerBase {
1910
2027
  // answer is a value (often a string) and must stay accepted, so the only
1911
2028
  // sound question is "what was asked?".
1912
2029
  assertIdentityShape(options?.identity, 'Agent.resume');
2030
+ // A resume's `time` (the time layer) is read or refused before anything
2031
+ // moves; it is never applied — the paused turn's clock is kept, and a
2032
+ // differing value is recorded by the ToolCalls resume door.
2033
+ const passedTime = this.passedTimeFor(options?.time, 'Agent.resume');
2034
+ options = withoutTime(options);
1913
2035
  const gate = pauseDemandsDecision(checkpoint.pauseData);
1914
2036
  if (gate && !isCheckInDecision(input))
1915
2037
  throw new DecisionRequiredError(gate, input);
@@ -1941,7 +2063,7 @@ export class Agent extends RunnerBase {
1941
2063
  let answeredAsk;
1942
2064
  if (awaitingInput !== undefined) {
1943
2065
  this.assertNotRunning('Agent.resume');
1944
- const answered = applyInputResponse(awaitingInput, input);
2066
+ const answered = applyInputResponse(awaitingInput, input, this.timeAnswerContextOf(checkpoint.sharedState));
1945
2067
  if ('cancel' in answered) {
1946
2068
  throw new TypeError('[input request] Cancel a hosted request through its host, or abandonPause() before starting another run.');
1947
2069
  }
@@ -2022,6 +2144,8 @@ export class Agent extends RunnerBase {
2022
2144
  this.lastRunAnswer = undefined;
2023
2145
  // One run can never raise on another run's consent block.
2024
2146
  this.consentOutstanding.clear();
2147
+ // Beside the `try` whose `finally` clears it (the fresh-run path's terms).
2148
+ this.resumePassedTime = passedTime;
2025
2149
  try {
2026
2150
  const result = await executor.resume(checkpoint, input, resumeOptions);
2027
2151
  const finalized = this.finalizeResult(executor, result);
@@ -2041,6 +2165,8 @@ export class Agent extends RunnerBase {
2041
2165
  throw cause;
2042
2166
  }
2043
2167
  finally {
2168
+ // A resume's passed `time` ends with the resume (the fresh-run path's terms).
2169
+ this.resumePassedTime = undefined;
2044
2170
  // Same terms as the fresh-run path: rows on every exit, before the
2045
2171
  // recording stops (9.60.0).
2046
2172
  this.fileIntegrityDisposition();
@@ -2216,6 +2342,26 @@ export class Agent extends RunnerBase {
2216
2342
  return undefined;
2217
2343
  return structuredClone(spans);
2218
2344
  }
2345
+ /**
2346
+ * What the resume door checks a time field's answer with (the time design
2347
+ * § 6.2, step T4): the paused turn's clock zone — the kept `clock` row, so
2348
+ * a resume that passes another `time` changes nothing — and the app's
2349
+ * catalog overrides. `undefined` without `.time()`: a `format` field is
2350
+ * then judged for shape, order and offset only, in the default words.
2351
+ *
2352
+ * @internal
2353
+ */
2354
+ timeAnswerContextOf(state) {
2355
+ if (this.timeOptions === undefined)
2356
+ return undefined;
2357
+ const ledger = state?.findingsLedger;
2358
+ const zone = clockOf(Array.isArray(ledger) ? ledger : undefined)?.zone;
2359
+ const messages = this.timeOptions.messages;
2360
+ return {
2361
+ ...(zone !== undefined && { zone }),
2362
+ ...(messages !== undefined && { messages }),
2363
+ };
2364
+ }
2219
2365
  /**
2220
2366
  * The findings ledger for a checkpoint (9.101.0) — `foldedSpansOf`'s twin:
2221
2367
  * one reader for `checkpoint()` and the crash carrier, `undefined` when the
@@ -3657,6 +3803,16 @@ export class Agent extends RunnerBase {
3657
3803
  get honestyLayers() {
3658
3804
  return seededHonestyLayers;
3659
3805
  },
3806
+ // The time layer's clock: the draft `run()` read (refusing a run with no
3807
+ // zone), stamped by seed as the turn's one `clock` row. Absent → the
3808
+ // deps object seed always had.
3809
+ ...(this.timeOptions !== undefined && { timeClock: () => this.seedClockDraft() }),
3810
+ // The time layer's reader: seed reads the person's words once per turn,
3811
+ // after the clock. Absent → nothing is read.
3812
+ ...(this.timeOptions?.reader !== undefined &&
3813
+ this.timeOptions.policy !== undefined && {
3814
+ timeReader: { reader: this.timeOptions.reader, policy: this.timeOptions.policy },
3815
+ }),
3660
3816
  // Declared sources (honesty layer 2): the seed twin plants `_findings.from`
3661
3817
  // on ruled tools, and the run's `messageFrom` constant is written — only
3662
3818
  // under the arm (refused at build without the inputs layer).
@@ -3911,6 +4067,10 @@ export class Agent extends RunnerBase {
3911
4067
  });
3912
4068
  ledgerRestoreArmed = true;
3913
4069
  }
4070
+ // The time layer's rows ride the same ledger: a continued conversation
4071
+ // keeps its earlier turns' clocks (each turn files its own).
4072
+ if (this.timeOptions !== undefined)
4073
+ ledgerRestoreArmed = true;
3914
4074
  // The gate's admissible set, for the record (9.50.0): declared hops from
3915
4075
  // the cursor plus the open skills — the SAME two resolvers the read_skill
3916
4076
  // offer and the refusal messages are built from (`readSkillOfferFor`),
@@ -4126,6 +4286,16 @@ export class Agent extends RunnerBase {
4126
4286
  // The inputs layer (honesty layer 2): the same site decorates a ruled
4127
4287
  // tool's schema first — value-conditional, the same grammar.
4128
4288
  ...(inputsArmed && { inputsLayer: true }),
4289
+ // …and, under `.time({ reader })` (step T6b), the ONE served time sentence on each tool
4290
+ // that declares a period: the windows the reader settled this turn, in that tool's form.
4291
+ ...(inputsArmed &&
4292
+ this.timeOptions?.reader !== undefined && {
4293
+ timeWindows: {
4294
+ ...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
4295
+ },
4296
+ }),
4297
+ // …and, under `.time()` (step T8), the turn's time limits in the same line.
4298
+ ...(inputsArmed && this.timeOptions !== undefined && { timeLimits: true }),
4129
4299
  // …and, under declared sources, plants `_findings.from` on ruled tools only.
4130
4300
  ...(argumentSources && { argumentSources: true }),
4131
4301
  // Tool choice by classifier (9.105.0): the pick and the narrowing live
@@ -4177,6 +4347,10 @@ export class Agent extends RunnerBase {
4177
4347
  // constant on every call, under the one gate — an unarmed agent reads
4178
4348
  // no new key.
4179
4349
  ...(this.ontology !== undefined && { ontology: true }),
4350
+ // The time layer's served line (step T6b): read only where the Tools
4351
+ // mount can compose it — the `timeReader` arm of the chart deps.
4352
+ // Step T8 widens it to `.time()`: the same line then carries the turn's time limits.
4353
+ ...(inputsArmed && this.timeOptions !== undefined && { timeLine: true }),
4180
4354
  // The receipt's salt (9.88.0) — read per call, like seed's own accessor.
4181
4355
  getRunId: () => this.currentRunContext?.runId,
4182
4356
  // …and its off switch. Value-conditional, so an agent on the default
@@ -4343,6 +4517,9 @@ export class Agent extends RunnerBase {
4343
4517
  return rules.ruled.find((r) => r.argument === argument)?.assume;
4344
4518
  }),
4345
4519
  answeredValues: answeredValuesOf,
4520
+ // Under `.time()` (step T7): the turn's time spellings by
4521
+ // lineage — said ones exempt, derived ones filed, not flagged.
4522
+ ...(this.timeOptions !== undefined && { timeLineage: true }),
4346
4523
  }),
4347
4524
  }
4348
4525
  : undefined,
@@ -4526,6 +4703,28 @@ export class Agent extends RunnerBase {
4526
4703
  // never allocates it.
4527
4704
  currentRun: () => this.toolRunFacts(),
4528
4705
  answeredAsk: () => this.answeredAsk,
4706
+ // The time layer: each dispatched call files its `call` row, and the
4707
+ // resume door compares a resume's passed `time` with the kept clock.
4708
+ ...(this.timeOptions !== undefined && {
4709
+ time: {
4710
+ takePassedOnResume: () => {
4711
+ const passed = this.resumePassedTime;
4712
+ this.resumePassedTime = undefined;
4713
+ return passed;
4714
+ },
4715
+ ...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
4716
+ // The reader (step T6b): the batch ask asks an open mention's window.
4717
+ ...(this.timeOptions.reader !== undefined &&
4718
+ this.timeOptions.policy !== undefined && {
4719
+ reader: {
4720
+ policy: this.timeOptions.policy,
4721
+ ...(this.timeOptions.messages !== undefined && {
4722
+ messages: this.timeOptions.messages,
4723
+ }),
4724
+ },
4725
+ }),
4726
+ },
4727
+ }),
4529
4728
  emitForRun: (type, payload, runContext) => this.emitLateFact(type, payload, runContext),
4530
4729
  toolSessions: () => this.toolSessions(),
4531
4730
  // 8.6.0 — what a run does when a declared credential needs 3LO consent.
@@ -4617,6 +4816,13 @@ export class Agent extends RunnerBase {
4617
4816
  inputsLayer: {
4618
4817
  toolOf: (toolName) => resolveForLayer(toolName).tool,
4619
4818
  ...(this.toolMiddleware.length > 0 && { rewrites: true }),
4819
+ // The time layer (step T5a): a tool whose period declares forms is filled from the
4820
+ // turn's one window, bound to the person's window, or recorded as the model's.
4821
+ ...(this.timeOptions !== undefined && {
4822
+ time: {
4823
+ ...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
4824
+ },
4825
+ }),
4620
4826
  // Declared sources: the layer reads `_findings.from` and checks it against
4621
4827
  // the corpora the mount hands in — the app's `externalGrounds` among them.
4622
4828
  ...(argumentSources && {
@@ -4677,6 +4883,12 @@ export class Agent extends RunnerBase {
4677
4883
  // gets the stage that appends nothing and carries the limits as data.
4678
4884
  ...(this.limitsTravelWithTheAnswerValue && !limitsAsData && { attachCoverageLimits: true }),
4679
4885
  ...(limitsAsData && { coverageLimitsAsData: true }),
4886
+ // The time layer: the prose limits block renders its `Period:` lines in
4887
+ // the run's clock zone. Absent → the final stage it always mounted.
4888
+ ...(this.timeOptions !== undefined && { timeLayer: true }),
4889
+ // The reader (step T6b): the Tools mount hands the slot the turn's settled windows.
4890
+ ...(inputsArmed && this.timeOptions?.reader !== undefined && { timeReader: true }),
4891
+ ...(inputsArmed && this.timeOptions !== undefined && { timeLimits: true }),
4680
4892
  ...(this.answerValidationConfig !== undefined && { hasAnswerValidation: true }),
4681
4893
  // The out-of-budget wrap-up branch (9.56.0) — the conditional-mount law
4682
4894
  // above, decided once beside the Route decider that routes to it so the
@@ -4739,4 +4951,16 @@ function boundInsertionOrder(held, max) {
4739
4951
  held.delete(oldest.value);
4740
4952
  }
4741
4953
  }
4954
+ /**
4955
+ * The run options without the time layer's `time` — what the engine is handed.
4956
+ * The SAME object when it carries no `time` key, so a run that passed none
4957
+ * hands the executor exactly the options it always did.
4958
+ */
4959
+ function withoutTime(options) {
4960
+ if (options === undefined || !('time' in options))
4961
+ return options;
4962
+ const { time: _time, ...rest } = options;
4963
+ void _time;
4964
+ return rest;
4965
+ }
4742
4966
  //# sourceMappingURL=Agent.js.map