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
@@ -95,7 +95,9 @@ export function dropUsedKept(scope, resolutions, calls) {
95
95
  * model's sentence (`keptNote`); nothing kept, nothing written.
96
96
  */
97
97
  export function keepAnswers(scope, toolName, resolution) {
98
- const answered = (resolution?.fills ?? []).filter((f) => f.source === 'answered');
98
+ const answered = (resolution?.fills ?? []).filter((f) =>
99
+ // An `object` form's window is not kept: a kept answer is one flat value (`kept.ts`).
100
+ f.source === 'answered' && (typeof f.value !== 'object' || f.value === null));
99
101
  if (answered.length === 0)
100
102
  return [];
101
103
  scope.argumentAnswersKept = withKept(scope.$getValue('argumentAnswersKept'), scope.turnNumber, toolName, answered);
@@ -150,6 +152,28 @@ export function noteFor(toolName, tool, resolution, ranWith, proposed, options)
150
152
  if (ran.length === 0)
151
153
  return '';
152
154
  return filledNote(toolName, ran.map((f) => {
155
+ // A value the library wrote from the window the person CHOSE when asked (the lazy
156
+ // word-driven ask) is a window fill: its clause says whose window, and whether it reads wider.
157
+ if (f.source === 'answered' && f.window === true) {
158
+ return {
159
+ argument: f.argument,
160
+ value: f.value,
161
+ hidden: hidesArgument(tool, f.argument, f.value),
162
+ source: 'window',
163
+ from: 'answered',
164
+ ...(f.wider !== undefined && { wider: f.wider }),
165
+ };
166
+ }
167
+ if (f.source === 'window') {
168
+ return {
169
+ argument: f.argument,
170
+ value: f.value,
171
+ hidden: hidesArgument(tool, f.argument, f.value),
172
+ source: 'window',
173
+ from: f.from,
174
+ ...(f.wider !== undefined && { wider: f.wider }),
175
+ };
176
+ }
153
177
  const carried = f.source === 'answered' ? carriedValue(proposed, f.argument) : undefined;
154
178
  return {
155
179
  argument: f.argument,
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../../../src/core/agent/arguments/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../../../src/core/agent/arguments/dispatch.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,10 @@
58
58
  * and never repaired.
59
59
  */
60
60
  import type { InputValue } from '../../inputRequest.js';
61
+ import { type CallWindow, type TurnWindows, type WindowSource } from '../../time/bind.js';
62
+ import type { InstantText } from '../../time/instant.js';
63
+ import type { CallWindowRow } from '../../time/rows.js';
64
+ import type { ZoneName } from '../../time/zone.js';
61
65
  import { type SourceCheck, type SourceCorpus } from './checks.js';
62
66
  import { type RuledToolLike } from './declare.js';
63
67
  import { type KeptAnswer } from './kept.js';
@@ -128,6 +132,28 @@ export interface CheckedArgument {
128
132
  * reads `'REDACTED'` on the row and rides no ask.
129
133
  */
130
134
  readonly quoteShown?: true;
135
+ /**
136
+ * Under `.time()`: the library fills the value from the turn's ONE window of
137
+ * the person's (`core/time/bind.ts`) — who that window is. Set with `filled`.
138
+ */
139
+ readonly window?: WindowSource;
140
+ }
141
+ /**
142
+ * Under `.time()` (the time layer, step T5a): the turn's windows and clock, as
143
+ * the record holds them — the `time-reading` rows and the `clock` row of this
144
+ * turn, read by `core/time/bind.ts` · `turnWindowsOf`. A tool whose period
145
+ * declares forms is then filled from the turn's one window, bound to the
146
+ * person's window, or recorded as the model's (`callWindowOf`). Absent → the
147
+ * arm is off and every call is resolved exactly as before.
148
+ */
149
+ export interface TimeArm {
150
+ readonly turn: TurnWindows;
151
+ /** The turn's frozen clock. */
152
+ readonly now: InstantText;
153
+ /** The clock's zone. */
154
+ readonly zone: ZoneName;
155
+ /** The app's `.time({ zone })` — a form declaring `wallZone: 'app'` reads in it. */
156
+ readonly appZone?: ZoneName;
131
157
  }
132
158
  /**
133
159
  * The declared sources, as the layer's stages are handed them: each call's
@@ -150,13 +176,36 @@ export interface SourcesArm {
150
176
  }
151
177
  /**
152
178
  * One value the library fills into a call, raw: the declared default
153
- * (`default`), or the person's answer to the batch ask (`answered`).
179
+ * (`default`), the person's answer to the batch ask (`answered`), or — under
180
+ * `.time()` — the turn's one window of the person's, converted into the tool's
181
+ * form (`window`; `from` says whose window: their words, a model reader's
182
+ * reading, a UI control). A window fill of an `object` form is an object.
154
183
  */
155
- export interface ArgumentFill {
184
+ export type ArgumentFill = {
156
185
  readonly argument: string;
157
186
  readonly value: InputValue;
158
- readonly source: 'default' | 'answered';
159
- }
187
+ readonly source: 'default';
188
+ } | {
189
+ readonly argument: string;
190
+ /** A window answered for an `object` form is an object (the lazy word-driven ask). */
191
+ readonly value: InputValue | Readonly<Record<string, InputValue>>;
192
+ readonly source: 'answered';
193
+ /** The value was written by the library from the WINDOW the person chose (the lazy word-driven ask). */
194
+ readonly window?: true;
195
+ /** …and no form held that window exactly, so it reads a wider one (as a `window` fill's `wider`). */
196
+ readonly wider?: 'reads-more' | 'tool-trims';
197
+ } | {
198
+ readonly argument: string;
199
+ readonly value: InputValue | Readonly<Record<string, InputValue>>;
200
+ readonly source: 'window';
201
+ readonly from: WindowSource;
202
+ /**
203
+ * No form holds the window exactly, so the value reads a WIDER one (step
204
+ * T5b): `reads-more` — the call reads parts nobody asked for;
205
+ * `tool-trims` — the tool declares `filtersToAsked` and drops them.
206
+ */
207
+ readonly wider?: 'reads-more' | 'tool-trims';
208
+ };
160
209
  /**
161
210
  * What ToolCalls applies to ONE call of the batch the layer resolved: the
162
211
  * values to fill, or the sentence the call reads instead of running. Working
@@ -190,6 +239,14 @@ export interface ArgumentResolution {
190
239
  readonly argument: string;
191
240
  readonly quote: string;
192
241
  }[];
242
+ /**
243
+ * Under `.time({ reader })`: the call left its period out while the turn's
244
+ * one mention was still OPEN (`core/time/bind.ts` · `not-filled` /
245
+ * `open-reading`) — its period arguments in `ask` are asked as that
246
+ * mention's window, in one field for the batch (`ask.ts` · `planAskFields`,
247
+ * the lazy word-driven ask of time design § 5.2), not one by one.
248
+ */
249
+ readonly window?: true;
193
250
  }
194
251
  /**
195
252
  * Every call of the batch whose tool carries rules — read through `rulesOf`,
@@ -200,6 +257,19 @@ export interface ArgumentResolution {
200
257
  * arguments: that argument is planned FREE, to be checked and filed.
201
258
  */
202
259
  export declare function declareBatch(calls: readonly BatchCall[], toolOf: ToolOf, sources?: SourcesArm): PlannedCall[];
260
+ /**
261
+ * Under `.time()`: per planned call whose tool's period declares forms, which
262
+ * window the call carries (`core/time/bind.ts` · `callWindowOf`) — a pure
263
+ * function of the call, the tool's forms and facts, the turn's windows and the
264
+ * model's declared quotes. Empty when the arm is off. Every stage asks it
265
+ * afresh (the same inputs, the same answer), so no decision is staged twice.
266
+ */
267
+ export declare function timeDecisionsOf(plan: readonly PlannedCall[], calls: readonly BatchCall[], toolOf: ToolOf, time: TimeArm | undefined, sources?: SourcesArm): ReadonlyMap<string, CallWindow>;
268
+ /** The `call-window` rows for this batch's decisions, in batch order (`core/time/rows.ts`). */
269
+ export declare function callWindowRowsOf(decisions: ReadonlyMap<string, CallWindow>, calls: readonly BatchCall[], stamp: {
270
+ readonly turn: number;
271
+ readonly iteration: number;
272
+ }): CallWindowRow[];
203
273
  /**
204
274
  * Where each ruled value of each planned call came from, by the table above.
205
275
  * Unarmed (no `sources`), a present value either IS the declared default (an
@@ -210,7 +280,7 @@ export declare function declareBatch(calls: readonly BatchCall[], toolOf: ToolOf
210
280
  * names — is checked (`checks.ts` · `checkSource`), and an untraced value on
211
281
  * an `ask` rule is asked about (`asked: 'unverified'`).
212
282
  */
213
- export declare function verifyPlan(plan: readonly PlannedCall[], calls: readonly BatchCall[], toolOf: ToolOf, kept?: readonly KeptAnswer[], sources?: SourcesArm): CheckedArgument[];
283
+ export declare function verifyPlan(plan: readonly PlannedCall[], calls: readonly BatchCall[], toolOf: ToolOf, kept?: readonly KeptAnswer[], sources?: SourcesArm, time?: TimeArm): CheckedArgument[];
214
284
  /**
215
285
  * One row per checked argument, its value in the tool's OWN argument view
216
286
  * (`shownArgsOf`) — a fill is shown as the call will run with it, a model's
@@ -226,7 +296,7 @@ export declare function verifyPlan(plan: readonly PlannedCall[], calls: readonly
226
296
  export declare function rowsOf(checked: readonly CheckedArgument[], calls: readonly BatchCall[], toolOf: ToolOf, stamp: {
227
297
  readonly turn: number;
228
298
  readonly iteration: number;
229
- }, kept?: readonly KeptAnswer[], sources?: SourcesArm): ArgumentRow[];
299
+ }, kept?: readonly KeptAnswer[], sources?: SourcesArm, decisions?: ReadonlyMap<string, CallWindow>): ArgumentRow[];
230
300
  /**
231
301
  * What ToolCalls applies: per call, the declared defaults and the kept answers
232
302
  * to fill and the `ask` arguments to ask the person for (with, under declared
@@ -234,4 +304,4 @@ export declare function rowsOf(checked: readonly CheckedArgument[], calls: reado
234
304
  * rules could not be read — the sentence it reads instead of running. Nothing
235
305
  * for a call that runs as the model sent it.
236
306
  */
237
- export declare function resolutionsOf(plan: readonly PlannedCall[], checked: readonly CheckedArgument[], toolOf: ToolOf, iteration: number, kept?: readonly KeptAnswer[], sources?: SourcesArm): ArgumentResolution[];
307
+ export declare function resolutionsOf(plan: readonly PlannedCall[], checked: readonly CheckedArgument[], toolOf: ToolOf, iteration: number, kept?: readonly KeptAnswer[], sources?: SourcesArm, decisions?: ReadonlyMap<string, CallWindow>): ArgumentResolution[];
@@ -57,13 +57,16 @@
57
57
  * whose tool's rules cannot be read at dispatch is refused, never run unruled
58
58
  * and never repaired.
59
59
  */
60
+ import { callWindowOf, } from '../../time/bind.js';
61
+ import { formArguments, granularityMsOf } from '../../time/convert.js';
62
+ import { callWindowRow } from '../../time/rowsBuild.js';
60
63
  import { shownArgsOf } from '../../toolShownArgs.js';
61
64
  import { validatePropertyValue } from '../toolArgsValidation.js';
62
65
  import { checkSource, isTraced } from './checks.js';
63
- import { isMissing, isRefused, rulesOf, sameArgumentValue, } from './declare.js';
66
+ import { isMissing, isRefused, periodArgumentsOf, periodFactsOf, periodFormsOf, rulesOf, sameArgumentValue, } from './declare.js';
64
67
  import { keptAnswerFor } from './kept.js';
65
- import { HIDDEN_VALUE, answeredRowOf, argumentRowOf, askedRowOf, sourcedRowOf, } from './rows.js';
66
- import { unreadableRulesRefusal } from './serve.js';
68
+ import { HIDDEN_VALUE, answeredRowOf, argumentRowOf, askedRowOf, sourcedRowOf, windowRowOf, } from './rows.js';
69
+ import { timeRefusal, unreadableRulesRefusal } from './serve.js';
67
70
  // ─── DECLARE ────────────────────────────────────────────────────────────
68
71
  /** The free arguments (no rule) a call's `from` entries name, in declared order. */
69
72
  function freeNamed(sources, toolCallId, ruled) {
@@ -193,6 +196,131 @@ function placeChecked(base, check) {
193
196
  function quotesMayShow(sources) {
194
197
  return sources?.corpus !== undefined && sources.argumentViews !== true;
195
198
  }
199
+ /**
200
+ * The quotes the model declared as the person's (`source: 'user'`) for a
201
+ * call's period arguments — `undefined` when declared sources are off for the
202
+ * call (the arm is off, or the call declares nothing). Read from the entries
203
+ * alone, so every stage (with or without the corpora) decides alike.
204
+ */
205
+ function periodQuotesOf(sources, toolCallId, periodArguments) {
206
+ if (sources === undefined || !sources.declared.has(toolCallId))
207
+ return undefined;
208
+ const from = sources.declared.get(toolCallId)?.from ?? [];
209
+ return from
210
+ .filter((e) => e.source === 'user' && e.quote !== undefined && periodArguments.has(e.argument))
211
+ .map((e) => e.quote);
212
+ }
213
+ /**
214
+ * Under `.time()`: per planned call whose tool's period declares forms, which
215
+ * window the call carries (`core/time/bind.ts` · `callWindowOf`) — a pure
216
+ * function of the call, the tool's forms and facts, the turn's windows and the
217
+ * model's declared quotes. Empty when the arm is off. Every stage asks it
218
+ * afresh (the same inputs, the same answer), so no decision is staged twice.
219
+ */
220
+ export function timeDecisionsOf(plan, calls, toolOf, time, sources) {
221
+ const decisions = new Map();
222
+ if (time === undefined)
223
+ return decisions;
224
+ const byId = callById(calls);
225
+ for (const planned of plan) {
226
+ if (planned.refused !== undefined)
227
+ continue;
228
+ const call = byId.get(planned.toolCallId);
229
+ const rules = readableRules(toolOf, planned.toolName);
230
+ const forms = periodFormsOf(rules?.period);
231
+ if (call === undefined || rules === undefined || forms.length === 0)
232
+ continue;
233
+ const quotes = periodQuotesOf(sources, call.id, periodArgumentsOf(rules.period));
234
+ decisions.set(call.id, callWindowOf({
235
+ args: call.args,
236
+ forms,
237
+ isMissing: (argument) => isMissing(call.args, argument),
238
+ ...(quotes !== undefined && { quotes }),
239
+ facts: periodFactsOf(rules.period),
240
+ }, time.turn, {
241
+ now: time.now,
242
+ zone: time.zone,
243
+ ...(time.appZone !== undefined && { appZone: time.appZone }),
244
+ granularityMs: granularityMsOf(periodFactsOf(rules.period)),
245
+ }));
246
+ }
247
+ return decisions;
248
+ }
249
+ /** The `call-window` rows for this batch's decisions, in batch order (`core/time/rows.ts`). */
250
+ export function callWindowRowsOf(decisions, calls, stamp) {
251
+ return calls.flatMap((c) => {
252
+ const decision = decisions.get(c.id);
253
+ return decision === undefined
254
+ ? []
255
+ : [callWindowRow({ toolCallId: c.id, toolName: c.name }, decision, stamp)];
256
+ });
257
+ }
258
+ /** The arguments a decision FILLS — the chosen form's, by name — or none. */
259
+ function filledArguments(decision) {
260
+ return decision?.how === 'filled'
261
+ ? new Set(Object.keys(decision.conversion.values))
262
+ : new Set();
263
+ }
264
+ /** The arguments of every form of a decided call — a filled call leaves the others' alone. */
265
+ function formArgumentsOf(toolOf, toolName) {
266
+ const forms = periodFormsOf(readableRules(toolOf, toolName)?.period);
267
+ return new Set(forms.flatMap((f) => formArguments(f).map((a) => a.argument)));
268
+ }
269
+ /**
270
+ * The arguments of every form OTHER than the one a present window was read
271
+ * back from (`bound`, `model-chosen`, `model`) that the read form does not
272
+ * also name — an alternative the call did not take. Empty for any other
273
+ * decision; a ruled argument outside every form is never in it.
274
+ */
275
+ function untakenFormArgumentsOf(toolOf, toolName, decision) {
276
+ if (decision === undefined ||
277
+ (decision.how !== 'bound' && decision.how !== 'model-chosen' && decision.how !== 'model')) {
278
+ return new Set();
279
+ }
280
+ const forms = periodFormsOf(readableRules(toolOf, toolName)?.period);
281
+ const used = forms[decision.form];
282
+ if (used === undefined)
283
+ return new Set();
284
+ const mine = new Set(formArguments(used).map((a) => a.argument));
285
+ return new Set(forms.flatMap((f) => formArguments(f).map((a) => a.argument)).filter((a) => !mine.has(a)));
286
+ }
287
+ /** The argument-row source a window fills with: the person's answer, a reading of their words, or the app's control. */
288
+ const sourceOfWindow = (window) => window === 'control' ? 'app' : window === 'answered' ? 'answered' : 'said';
289
+ /**
290
+ * A present period value's check under a time decision: BOUND to the person's
291
+ * window by the model's quote → the person's (`matched: 'mention'`: `answered`
292
+ * for a window they settled in the time ask; `said` + `reading` for a `model`
293
+ * reader's window); a window that
294
+ * DIFFERS from the person's runs as sent (the v1 law, § 7.3) — never asked.
295
+ * The binding raises the row ONLY when the quote itself checked out — found in
296
+ * the person's words (`source: 'said'`, nothing `failed`). A quote the check
297
+ * refused (made up, or another runner's words) is a claim that failed: the
298
+ * row keeps its own verdict and the call runs as sent, like a value binding.
299
+ */
300
+ function checkUnderWindow(check, decision) {
301
+ if (decision?.how === 'bound' &&
302
+ decision.by === 'quote' &&
303
+ check.failed === undefined &&
304
+ check.source === 'said') {
305
+ const { failed: _f, coincides: _c, reading: _r, ...kept } = check;
306
+ void _f;
307
+ void _c;
308
+ void _r;
309
+ return {
310
+ check: {
311
+ ...kept,
312
+ // A window the person settled in the time ask is their ANSWER, not their chat words.
313
+ source: decision.window.source === 'answered' ? 'answered' : 'said',
314
+ matched: 'mention',
315
+ ...(decision.window.source === 'derived-from-reading' && { reading: true }),
316
+ },
317
+ runs: true,
318
+ };
319
+ }
320
+ // Bound by value (the sent window IS the person's, but no declared quote names it) and a window
321
+ // that differs both run as sent; neither is raised to the person's words.
322
+ return { check, runs: decision?.how === 'model-chosen' || decision?.how === 'bound' };
323
+ }
196
324
  /**
197
325
  * Where each ruled value of each planned call came from, by the table above.
198
326
  * Unarmed (no `sources`), a present value either IS the declared default (an
@@ -203,8 +331,9 @@ function quotesMayShow(sources) {
203
331
  * names — is checked (`checks.ts` · `checkSource`), and an untraced value on
204
332
  * an `ask` rule is asked about (`asked: 'unverified'`).
205
333
  */
206
- export function verifyPlan(plan, calls, toolOf, kept, sources) {
334
+ export function verifyPlan(plan, calls, toolOf, kept, sources, time) {
207
335
  const byId = callById(calls);
336
+ const decisions = timeDecisionsOf(plan, calls, toolOf, time, sources);
208
337
  const checked = [];
209
338
  // Quotes are shown on this batch's rows and ask only when no tool in reach can hide
210
339
  // arguments — and never beside a call whose name nothing answers (no view to ask).
@@ -221,6 +350,25 @@ export function verifyPlan(plan, calls, toolOf, kept, sources) {
221
350
  if (call === undefined)
222
351
  continue;
223
352
  const rules = readableRules(toolOf, planned.toolName);
353
+ const decision = decisions.get(planned.toolCallId);
354
+ // Refused before dispatch on its window (step T5b): the call will not run, so none of its
355
+ // arguments is filled, asked or filed — its `call-window` row is the record.
356
+ if (decision?.how === 'refused')
357
+ continue;
358
+ const filled = filledArguments(decision);
359
+ const alternatives = filled.size > 0 ? formArgumentsOf(toolOf, planned.toolName) : filled;
360
+ // A window the model SENT in one form: another form's missing arguments were an alternative
361
+ // it did not take — never filled or asked (step T5b: a look-back sent to a tool that also
362
+ // takes bounds must run, so the clock at dispatch can record it).
363
+ const untaken = untakenFormArgumentsOf(toolOf, planned.toolName, decision);
364
+ // The person named a time the library could only PROPOSE (the owner's decision "Always
365
+ // confirm"): a period left out is asked as that mention's window even where the tool's
366
+ // rule assumes one — its default would silently stand in for what the person said.
367
+ const proposed = decision?.how === 'not-filled' &&
368
+ decision.why === 'open-reading' &&
369
+ (time?.turn.open?.length ?? 0) > 0
370
+ ? formArgumentsOf(toolOf, planned.toolName)
371
+ : undefined;
224
372
  for (const p of planned.ruled) {
225
373
  const base = {
226
374
  toolCallId: planned.toolCallId,
@@ -229,9 +377,32 @@ export function verifyPlan(plan, calls, toolOf, kept, sources) {
229
377
  rule: p.rule,
230
378
  ...(p.period === true && { period: true }),
231
379
  };
380
+ // Under `.time()`: the turn's one window fills the chosen form's arguments; another
381
+ // form's arguments were an alternative the call no longer needs — never filled or asked.
382
+ if (decision?.how === 'filled' && filled.has(p.argument)) {
383
+ const from = decision.window.source;
384
+ checked.push({ ...base, source: sourceOfWindow(from), filled: true, window: from });
385
+ continue;
386
+ }
387
+ if (alternatives.has(p.argument))
388
+ continue;
389
+ if (p.missing && untaken.has(p.argument))
390
+ continue;
232
391
  const rule = rules?.ruled.find((r) => r.argument === p.argument);
233
392
  const check = p.missing ? undefined : sourceCheckOf(sources, toolOf, call, p.argument, rule);
234
393
  if (check !== undefined) {
394
+ if (p.period === true && decision !== undefined) {
395
+ const under = checkUnderWindow(check, decision);
396
+ checked.push(under.runs || isTraced(under.check)
397
+ ? {
398
+ ...base,
399
+ ...quoteOf(call, p.argument),
400
+ source: under.check.source,
401
+ check: under.check,
402
+ }
403
+ : placeChecked({ ...base, ...quoteOf(call, p.argument) }, under.check));
404
+ continue;
405
+ }
235
406
  checked.push(placeChecked({ ...base, ...quoteOf(call, p.argument) }, check));
236
407
  continue;
237
408
  }
@@ -247,6 +418,10 @@ export function verifyPlan(plan, calls, toolOf, kept, sources) {
247
418
  }
248
419
  continue;
249
420
  }
421
+ if (p.missing && proposed?.has(p.argument) === true) {
422
+ checked.push({ ...base, asked: 'missing' });
423
+ continue;
424
+ }
250
425
  const assumed = declaredDefault(toolOf, planned.toolName, p.argument);
251
426
  if (assumed === undefined)
252
427
  continue;
@@ -319,11 +494,27 @@ function sourcedRow(c, call, toolOf, sources, stamp) {
319
494
  }, stamp);
320
495
  }
321
496
  /** One checked argument's row, on the unarmed paths (and a missing value's under the arm). */
322
- function plainRow(c, call, toolOf, stamp, kept) {
497
+ function plainRow(c, call, toolOf, stamp, kept, decision) {
323
498
  const tool = toolOf(c.toolName);
324
499
  const who = { ...c, rule: ruleOf(c) };
325
500
  if (c.asked !== undefined)
326
501
  return askedRowOf(who, stamp);
502
+ if (c.filled === true && c.window !== undefined) {
503
+ const value = windowValue(decision, c.argument);
504
+ if (value === undefined)
505
+ return undefined;
506
+ const shown = shownArgsOf(tool, { ...call.args, [c.argument]: value });
507
+ return windowRowOf({
508
+ toolCallId: c.toolCallId,
509
+ toolName: c.toolName,
510
+ argument: c.argument,
511
+ rule: ruleOf(c),
512
+ ...(c.period === true && { period: true }),
513
+ // A name nothing answers has no view to ask — shown as hidden, never raw.
514
+ shownValue: tool === undefined ? HIDDEN_VALUE : shown[c.argument],
515
+ window: c.window,
516
+ }, stamp);
517
+ }
327
518
  if (c.filled === true && c.source === 'answered') {
328
519
  const answer = keptValue(toolOf, kept, c.toolName, c.argument);
329
520
  if (answer === undefined)
@@ -357,6 +548,10 @@ function plainRow(c, call, toolOf, stamp, kept) {
357
548
  ...(c.source === 'default' && { shownProposed: shown }),
358
549
  }, stamp);
359
550
  }
551
+ /** The value a window fill writes into `argument`, raw — `undefined` when the decision fills none. */
552
+ function windowValue(decision, argument) {
553
+ return decision?.how === 'filled' ? decision.conversion.values[argument] : undefined;
554
+ }
360
555
  /**
361
556
  * `row` with the call's dropped `from` entries counted — the call's FIRST row
362
557
  * carries the count when no basis row does (`sources.ts` · `CallSources`),
@@ -378,7 +573,7 @@ function withMalformed(row, malformed) {
378
573
  * dropped `from` entries when no basis row does. The raw value never reaches
379
574
  * a row.
380
575
  */
381
- export function rowsOf(checked, calls, toolOf, stamp, kept, sources) {
576
+ export function rowsOf(checked, calls, toolOf, stamp, kept, sources, decisions) {
382
577
  const byId = callById(calls);
383
578
  const rows = [];
384
579
  const counted = new Set();
@@ -388,7 +583,7 @@ export function rowsOf(checked, calls, toolOf, stamp, kept, sources) {
388
583
  continue;
389
584
  const row = c.check !== undefined
390
585
  ? sourcedRow({ ...c, check: c.check }, call, toolOf, sources, stamp)
391
- : plainRow(c, call, toolOf, stamp, kept);
586
+ : plainRow(c, call, toolOf, stamp, kept, decisions?.get(c.toolCallId));
392
587
  if (row === undefined)
393
588
  continue;
394
589
  const malformed = sources?.declared.get(c.toolCallId)?.malformed;
@@ -423,7 +618,7 @@ function quotedFor(c, sources) {
423
618
  * rules could not be read — the sentence it reads instead of running. Nothing
424
619
  * for a call that runs as the model sent it.
425
620
  */
426
- export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources) {
621
+ export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources, decisions) {
427
622
  const resolutions = [];
428
623
  for (const planned of plan) {
429
624
  if (planned.refused !== undefined) {
@@ -434,6 +629,15 @@ export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources) {
434
629
  });
435
630
  continue;
436
631
  }
632
+ const decision = decisions?.get(planned.toolCallId);
633
+ if (decision?.how === 'refused') {
634
+ resolutions.push({
635
+ toolCallId: planned.toolCallId,
636
+ iteration,
637
+ refused: timeRefusal(planned.toolName, decision.refused, periodFactsOf(readableRules(toolOf, planned.toolName)?.period), decision.argument),
638
+ });
639
+ continue;
640
+ }
437
641
  const fills = [];
438
642
  const ask = [];
439
643
  const quoted = [];
@@ -449,6 +653,8 @@ export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources) {
449
653
  }
450
654
  if (c.filled !== true)
451
655
  continue;
656
+ if (c.window !== undefined)
657
+ continue; // the window's fills are added per call, below
452
658
  if (c.source === 'answered') {
453
659
  const answer = keptValue(toolOf, kept, c.toolName, c.argument);
454
660
  if (answer !== undefined) {
@@ -460,6 +666,30 @@ export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources) {
460
666
  if (value !== undefined)
461
667
  fills.push({ argument: c.argument, value, source: 'default' });
462
668
  }
669
+ // Under `.time()`: every argument the turn's one window fills — the ruled ones filed above,
670
+ // and an `object` form's (a ruled argument is a flat value, so an object carries no rule).
671
+ if (decision?.how === 'filled') {
672
+ const wider = 'sent' in decision.conversion
673
+ ? decision.trimmedByTool === true
674
+ ? 'tool-trims'
675
+ : 'reads-more'
676
+ : undefined;
677
+ for (const [argument, value] of Object.entries(decision.conversion.values)) {
678
+ fills.push({
679
+ argument,
680
+ value: value,
681
+ source: 'window',
682
+ from: decision.window.source,
683
+ ...(wider !== undefined && { wider }),
684
+ });
685
+ }
686
+ }
687
+ // The lazy word-driven ask: a period left out while the turn's one mention is open is asked
688
+ // as that mention's window — only where the tool's own rule asks for a period argument.
689
+ const forms = formArgumentsOf(toolOf, planned.toolName);
690
+ const window = decision?.how === 'not-filled' &&
691
+ decision.why === 'open-reading' &&
692
+ ask.some((a) => forms.has(a));
463
693
  if (fills.length > 0 || ask.length > 0) {
464
694
  resolutions.push({
465
695
  toolCallId: planned.toolCallId,
@@ -467,6 +697,7 @@ export function resolutionsOf(plan, checked, toolOf, iteration, kept, sources) {
467
697
  ...(fills.length > 0 && { fills }),
468
698
  ...(ask.length > 0 && { ask }),
469
699
  ...(quoted.length > 0 && { quoted }),
700
+ ...(window && { window: true }),
470
701
  });
471
702
  }
472
703
  }