agentfootprint 9.127.0 → 9.129.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 (409) hide show
  1. package/CAPABILITIES.md +8 -0
  2. package/dist/artifacts/conformance/cases.js +40 -0
  3. package/dist/artifacts/conformance/cases.js.map +1 -1
  4. package/dist/artifacts/datasetResult.js +11 -0
  5. package/dist/artifacts/datasetResult.js.map +1 -1
  6. package/dist/artifacts/index.js +10 -1
  7. package/dist/artifacts/index.js.map +1 -1
  8. package/dist/artifacts/minting.js +19 -0
  9. package/dist/artifacts/minting.js.map +1 -1
  10. package/dist/artifacts/sqliteArtifacts.js +15 -2
  11. package/dist/artifacts/sqliteArtifacts.js.map +1 -1
  12. package/dist/artifacts/types.js.map +1 -1
  13. package/dist/core/Agent.js +199 -5
  14. package/dist/core/Agent.js.map +1 -1
  15. package/dist/core/agent/AgentBuilder.js +75 -1
  16. package/dist/core/agent/AgentBuilder.js.map +1 -1
  17. package/dist/core/agent/arguments/ask.js +60 -4
  18. package/dist/core/agent/arguments/ask.js.map +1 -1
  19. package/dist/core/agent/arguments/declare.js +260 -45
  20. package/dist/core/agent/arguments/declare.js.map +1 -1
  21. package/dist/core/agent/arguments/dispatch.js +10 -0
  22. package/dist/core/agent/arguments/dispatch.js.map +1 -1
  23. package/dist/core/agent/arguments/resolve.js +218 -6
  24. package/dist/core/agent/arguments/resolve.js.map +1 -1
  25. package/dist/core/agent/arguments/rows.js +32 -2
  26. package/dist/core/agent/arguments/rows.js.map +1 -1
  27. package/dist/core/agent/arguments/serve.js +89 -4
  28. package/dist/core/agent/arguments/serve.js.map +1 -1
  29. package/dist/core/agent/arguments/subflow.js +41 -6
  30. package/dist/core/agent/arguments/subflow.js.map +1 -1
  31. package/dist/core/agent/buildAgentChart.js.map +1 -1
  32. package/dist/core/agent/coverage/answer.js +9 -4
  33. package/dist/core/agent/coverage/answer.js.map +1 -1
  34. package/dist/core/agent/coverage/period.js +43 -67
  35. package/dist/core/agent/coverage/period.js.map +1 -1
  36. package/dist/core/agent/evidence/evidenceIndex.js +79 -11
  37. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  38. package/dist/core/agent/evidence/normalize.js +105 -1
  39. package/dist/core/agent/evidence/normalize.js.map +1 -1
  40. package/dist/core/agent/findings/ledger.js +6 -0
  41. package/dist/core/agent/findings/ledger.js.map +1 -1
  42. package/dist/core/agent/findings/types.js.map +1 -1
  43. package/dist/core/agent/honesty/mounts.js +27 -3
  44. package/dist/core/agent/honesty/mounts.js.map +1 -1
  45. package/dist/core/agent/stages/argumentAsk.js +11 -4
  46. package/dist/core/agent/stages/argumentAsk.js.map +1 -1
  47. package/dist/core/agent/stages/prepareFinal.js +40 -6
  48. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  49. package/dist/core/agent/stages/seed.js +29 -6
  50. package/dist/core/agent/stages/seed.js.map +1 -1
  51. package/dist/core/agent/stages/timeLayer.js +201 -0
  52. package/dist/core/agent/stages/timeLayer.js.map +1 -0
  53. package/dist/core/agent/stages/toolCalls.js +40 -0
  54. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  55. package/dist/core/inputRequest.js +132 -5
  56. package/dist/core/inputRequest.js.map +1 -1
  57. package/dist/core/messageFrom.js +5 -2
  58. package/dist/core/messageFrom.js.map +1 -1
  59. package/dist/core/runCheckpoint.js +16 -2
  60. package/dist/core/runCheckpoint.js.map +1 -1
  61. package/dist/core/time/ask.js +234 -0
  62. package/dist/core/time/ask.js.map +1 -0
  63. package/dist/core/time/axis.js +469 -0
  64. package/dist/core/time/axis.js.map +1 -0
  65. package/dist/core/time/bind.js +265 -0
  66. package/dist/core/time/bind.js.map +1 -0
  67. package/dist/core/time/clock.js +260 -0
  68. package/dist/core/time/clock.js.map +1 -0
  69. package/dist/core/time/convert.js +644 -0
  70. package/dist/core/time/convert.js.map +1 -0
  71. package/dist/core/time/drift.js +89 -0
  72. package/dist/core/time/drift.js.map +1 -0
  73. package/dist/core/time/duration.js +125 -0
  74. package/dist/core/time/duration.js.map +1 -0
  75. package/dist/core/time/instant.js +141 -0
  76. package/dist/core/time/instant.js.map +1 -0
  77. package/dist/core/time/periodForm.js +392 -0
  78. package/dist/core/time/periodForm.js.map +1 -0
  79. package/dist/core/time/present.js +311 -0
  80. package/dist/core/time/present.js.map +1 -0
  81. package/dist/core/time/range.js +256 -0
  82. package/dist/core/time/range.js.map +1 -0
  83. package/dist/core/time/reader.js +205 -0
  84. package/dist/core/time/reader.js.map +1 -0
  85. package/dist/core/time/readingAsk.js +90 -0
  86. package/dist/core/time/readingAsk.js.map +1 -0
  87. package/dist/core/time/resolve.js +663 -0
  88. package/dist/core/time/resolve.js.map +1 -0
  89. package/dist/core/time/resolveRecord.js +164 -0
  90. package/dist/core/time/resolveRecord.js.map +1 -0
  91. package/dist/core/time/rows.js +295 -0
  92. package/dist/core/time/rows.js.map +1 -0
  93. package/dist/core/time/rowsBuild.js +187 -0
  94. package/dist/core/time/rowsBuild.js.map +1 -0
  95. package/dist/core/time/wire.js +86 -0
  96. package/dist/core/time/wire.js.map +1 -0
  97. package/dist/core/time/zone.js +253 -0
  98. package/dist/core/time/zone.js.map +1 -0
  99. package/dist/core/tools.js.map +1 -1
  100. package/dist/esm/artifacts/conformance/cases.js +40 -0
  101. package/dist/esm/artifacts/conformance/cases.js.map +1 -1
  102. package/dist/esm/artifacts/conformance/types.d.ts +1 -1
  103. package/dist/esm/artifacts/datasetResult.d.ts +1 -1
  104. package/dist/esm/artifacts/datasetResult.js +11 -0
  105. package/dist/esm/artifacts/datasetResult.js.map +1 -1
  106. package/dist/esm/artifacts/index.d.ts +1 -0
  107. package/dist/esm/artifacts/index.js +3 -0
  108. package/dist/esm/artifacts/index.js.map +1 -1
  109. package/dist/esm/artifacts/minting.js +19 -0
  110. package/dist/esm/artifacts/minting.js.map +1 -1
  111. package/dist/esm/artifacts/sqliteArtifacts.js +15 -2
  112. package/dist/esm/artifacts/sqliteArtifacts.js.map +1 -1
  113. package/dist/esm/artifacts/types.d.ts +8 -0
  114. package/dist/esm/artifacts/types.js.map +1 -1
  115. package/dist/esm/core/Agent.d.ts +64 -0
  116. package/dist/esm/core/Agent.js +200 -6
  117. package/dist/esm/core/Agent.js.map +1 -1
  118. package/dist/esm/core/agent/AgentBuilder.d.ts +60 -0
  119. package/dist/esm/core/agent/AgentBuilder.js +75 -1
  120. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  121. package/dist/esm/core/agent/arguments/ask.d.ts +16 -2
  122. package/dist/esm/core/agent/arguments/ask.js +59 -4
  123. package/dist/esm/core/agent/arguments/ask.js.map +1 -1
  124. package/dist/esm/core/agent/arguments/checks.d.ts +1 -1
  125. package/dist/esm/core/agent/arguments/declare.d.ts +76 -15
  126. package/dist/esm/core/agent/arguments/declare.js +255 -44
  127. package/dist/esm/core/agent/arguments/declare.js.map +1 -1
  128. package/dist/esm/core/agent/arguments/dispatch.js +10 -0
  129. package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
  130. package/dist/esm/core/agent/arguments/resolve.d.ts +59 -6
  131. package/dist/esm/core/agent/arguments/resolve.js +218 -8
  132. package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
  133. package/dist/esm/core/agent/arguments/rows.d.ts +29 -2
  134. package/dist/esm/core/agent/arguments/rows.js +30 -1
  135. package/dist/esm/core/agent/arguments/rows.js.map +1 -1
  136. package/dist/esm/core/agent/arguments/serve.d.ts +32 -3
  137. package/dist/esm/core/agent/arguments/serve.js +87 -3
  138. package/dist/esm/core/agent/arguments/serve.js.map +1 -1
  139. package/dist/esm/core/agent/arguments/subflow.d.ts +25 -0
  140. package/dist/esm/core/agent/arguments/subflow.js +42 -7
  141. package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
  142. package/dist/esm/core/agent/buildAgentChart.d.ts +7 -0
  143. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  144. package/dist/esm/core/agent/coverage/answer.d.ts +7 -1
  145. package/dist/esm/core/agent/coverage/answer.js +9 -4
  146. package/dist/esm/core/agent/coverage/answer.js.map +1 -1
  147. package/dist/esm/core/agent/coverage/period.d.ts +8 -3
  148. package/dist/esm/core/agent/coverage/period.js +43 -67
  149. package/dist/esm/core/agent/coverage/period.js.map +1 -1
  150. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +11 -5
  151. package/dist/esm/core/agent/evidence/evidenceIndex.js +80 -12
  152. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  153. package/dist/esm/core/agent/evidence/normalize.d.ts +34 -0
  154. package/dist/esm/core/agent/evidence/normalize.js +103 -0
  155. package/dist/esm/core/agent/evidence/normalize.js.map +1 -1
  156. package/dist/esm/core/agent/findings/ledger.js +6 -0
  157. package/dist/esm/core/agent/findings/ledger.js.map +1 -1
  158. package/dist/esm/core/agent/findings/types.d.ts +2 -1
  159. package/dist/esm/core/agent/findings/types.js.map +1 -1
  160. package/dist/esm/core/agent/honesty/mounts.d.ts +12 -0
  161. package/dist/esm/core/agent/honesty/mounts.js +28 -4
  162. package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
  163. package/dist/esm/core/agent/stages/argumentAsk.d.ts +9 -0
  164. package/dist/esm/core/agent/stages/argumentAsk.js +11 -4
  165. package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
  166. package/dist/esm/core/agent/stages/prepareFinal.d.ts +12 -1
  167. package/dist/esm/core/agent/stages/prepareFinal.js +38 -5
  168. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  169. package/dist/esm/core/agent/stages/seed.d.ts +23 -0
  170. package/dist/esm/core/agent/stages/seed.js +29 -6
  171. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  172. package/dist/esm/core/agent/stages/timeLayer.d.ts +94 -0
  173. package/dist/esm/core/agent/stages/timeLayer.js +193 -0
  174. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -0
  175. package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
  176. package/dist/esm/core/agent/stages/toolCalls.js +40 -0
  177. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  178. package/dist/esm/core/agent/types.d.ts +25 -0
  179. package/dist/esm/core/inputRequest.d.ts +50 -6
  180. package/dist/esm/core/inputRequest.js +132 -5
  181. package/dist/esm/core/inputRequest.js.map +1 -1
  182. package/dist/esm/core/messageFrom.d.ts +5 -2
  183. package/dist/esm/core/messageFrom.js +5 -2
  184. package/dist/esm/core/messageFrom.js.map +1 -1
  185. package/dist/esm/core/runCheckpoint.js +16 -2
  186. package/dist/esm/core/runCheckpoint.js.map +1 -1
  187. package/dist/esm/core/time/ask.d.ts +121 -0
  188. package/dist/esm/core/time/ask.js +225 -0
  189. package/dist/esm/core/time/ask.js.map +1 -0
  190. package/dist/esm/core/time/axis.d.ts +224 -0
  191. package/dist/esm/core/time/axis.js +462 -0
  192. package/dist/esm/core/time/axis.js.map +1 -0
  193. package/dist/esm/core/time/bind.d.ts +168 -0
  194. package/dist/esm/core/time/bind.js +259 -0
  195. package/dist/esm/core/time/bind.js.map +1 -0
  196. package/dist/esm/core/time/clock.d.ts +183 -0
  197. package/dist/esm/core/time/clock.js +252 -0
  198. package/dist/esm/core/time/clock.js.map +1 -0
  199. package/dist/esm/core/time/convert.d.ts +179 -0
  200. package/dist/esm/core/time/convert.js +616 -0
  201. package/dist/esm/core/time/convert.js.map +1 -0
  202. package/dist/esm/core/time/drift.d.ts +78 -0
  203. package/dist/esm/core/time/drift.js +85 -0
  204. package/dist/esm/core/time/drift.js.map +1 -0
  205. package/dist/esm/core/time/duration.d.ts +71 -0
  206. package/dist/esm/core/time/duration.js +117 -0
  207. package/dist/esm/core/time/duration.js.map +1 -0
  208. package/dist/esm/core/time/instant.d.ts +75 -0
  209. package/dist/esm/core/time/instant.js +131 -0
  210. package/dist/esm/core/time/instant.js.map +1 -0
  211. package/dist/esm/core/time/periodForm.d.ts +184 -0
  212. package/dist/esm/core/time/periodForm.js +376 -0
  213. package/dist/esm/core/time/periodForm.js.map +1 -0
  214. package/dist/esm/core/time/present.d.ts +105 -0
  215. package/dist/esm/core/time/present.js +304 -0
  216. package/dist/esm/core/time/present.js.map +1 -0
  217. package/dist/esm/core/time/range.d.ts +125 -0
  218. package/dist/esm/core/time/range.js +239 -0
  219. package/dist/esm/core/time/range.js.map +1 -0
  220. package/dist/esm/core/time/reader.d.ts +153 -0
  221. package/dist/esm/core/time/reader.js +199 -0
  222. package/dist/esm/core/time/reader.js.map +1 -0
  223. package/dist/esm/core/time/readingAsk.d.ts +45 -0
  224. package/dist/esm/core/time/readingAsk.js +86 -0
  225. package/dist/esm/core/time/readingAsk.js.map +1 -0
  226. package/dist/esm/core/time/resolve.d.ts +82 -0
  227. package/dist/esm/core/time/resolve.js +654 -0
  228. package/dist/esm/core/time/resolve.js.map +1 -0
  229. package/dist/esm/core/time/resolveRecord.d.ts +160 -0
  230. package/dist/esm/core/time/resolveRecord.js +158 -0
  231. package/dist/esm/core/time/resolveRecord.js.map +1 -0
  232. package/dist/esm/core/time/rows.d.ts +210 -0
  233. package/dist/esm/core/time/rows.js +286 -0
  234. package/dist/esm/core/time/rows.js.map +1 -0
  235. package/dist/esm/core/time/rowsBuild.d.ts +76 -0
  236. package/dist/esm/core/time/rowsBuild.js +179 -0
  237. package/dist/esm/core/time/rowsBuild.js.map +1 -0
  238. package/dist/esm/core/time/wire.d.ts +63 -0
  239. package/dist/esm/core/time/wire.js +81 -0
  240. package/dist/esm/core/time/wire.js.map +1 -0
  241. package/dist/esm/core/time/zone.d.ts +115 -0
  242. package/dist/esm/core/time/zone.js +242 -0
  243. package/dist/esm/core/time/zone.js.map +1 -0
  244. package/dist/esm/core/tools.d.ts +26 -4
  245. package/dist/esm/core/tools.js.map +1 -1
  246. package/dist/esm/events/payloads.d.ts +4 -1
  247. package/dist/esm/hosting/standingAgent.js +1 -0
  248. package/dist/esm/hosting/standingAgent.js.map +1 -1
  249. package/dist/esm/index.d.ts +11 -1
  250. package/dist/esm/index.js +3 -1
  251. package/dist/esm/index.js.map +1 -1
  252. package/dist/esm/lib/mcp/elicitation.d.ts +84 -0
  253. package/dist/esm/lib/mcp/elicitation.js +181 -0
  254. package/dist/esm/lib/mcp/elicitation.js.map +1 -0
  255. package/dist/esm/lib/mcp/mcpClient.js +9 -3
  256. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  257. package/dist/esm/lib/mcp/mcpServe.js +6 -2
  258. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  259. package/dist/esm/lib/mcp/mockMcpClient.d.ts +9 -1
  260. package/dist/esm/lib/mcp/mockMcpClient.js +5 -3
  261. package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
  262. package/dist/esm/lib/mcp/toolExtras.d.ts +21 -2
  263. package/dist/esm/lib/mcp/toolExtras.js +22 -0
  264. package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
  265. package/dist/esm/lib/mcp/types.d.ts +8 -0
  266. package/dist/esm/locales/index.d.ts +6 -0
  267. package/dist/esm/locales/index.js +6 -0
  268. package/dist/esm/locales/index.js.map +1 -1
  269. package/dist/esm/locales/timeAsk.d.ts +29 -0
  270. package/dist/esm/locales/timeAsk.js +44 -0
  271. package/dist/esm/locales/timeAsk.js.map +1 -0
  272. package/dist/hosting/standingAgent.js +1 -0
  273. package/dist/hosting/standingAgent.js.map +1 -1
  274. package/dist/index.js +12 -1
  275. package/dist/index.js.map +1 -1
  276. package/dist/lib/mcp/elicitation.js +186 -0
  277. package/dist/lib/mcp/elicitation.js.map +1 -0
  278. package/dist/lib/mcp/mcpClient.js +8 -2
  279. package/dist/lib/mcp/mcpClient.js.map +1 -1
  280. package/dist/lib/mcp/mcpServe.js +5 -1
  281. package/dist/lib/mcp/mcpServe.js.map +1 -1
  282. package/dist/lib/mcp/mockMcpClient.js +4 -2
  283. package/dist/lib/mcp/mockMcpClient.js.map +1 -1
  284. package/dist/lib/mcp/toolExtras.js +25 -1
  285. package/dist/lib/mcp/toolExtras.js.map +1 -1
  286. package/dist/locales/index.js +8 -1
  287. package/dist/locales/index.js.map +1 -1
  288. package/dist/locales/timeAsk.js +47 -0
  289. package/dist/locales/timeAsk.js.map +1 -0
  290. package/dist/types/artifacts/conformance/cases.d.ts.map +1 -1
  291. package/dist/types/artifacts/conformance/types.d.ts +1 -1
  292. package/dist/types/artifacts/conformance/types.d.ts.map +1 -1
  293. package/dist/types/artifacts/datasetResult.d.ts +1 -1
  294. package/dist/types/artifacts/datasetResult.d.ts.map +1 -1
  295. package/dist/types/artifacts/index.d.ts +1 -0
  296. package/dist/types/artifacts/index.d.ts.map +1 -1
  297. package/dist/types/artifacts/minting.d.ts.map +1 -1
  298. package/dist/types/artifacts/sqliteArtifacts.d.ts.map +1 -1
  299. package/dist/types/artifacts/types.d.ts +8 -0
  300. package/dist/types/artifacts/types.d.ts.map +1 -1
  301. package/dist/types/core/Agent.d.ts +64 -0
  302. package/dist/types/core/Agent.d.ts.map +1 -1
  303. package/dist/types/core/agent/AgentBuilder.d.ts +60 -0
  304. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  305. package/dist/types/core/agent/arguments/ask.d.ts +16 -2
  306. package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
  307. package/dist/types/core/agent/arguments/checks.d.ts +1 -1
  308. package/dist/types/core/agent/arguments/checks.d.ts.map +1 -1
  309. package/dist/types/core/agent/arguments/declare.d.ts +76 -15
  310. package/dist/types/core/agent/arguments/declare.d.ts.map +1 -1
  311. package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -1
  312. package/dist/types/core/agent/arguments/resolve.d.ts +59 -6
  313. package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
  314. package/dist/types/core/agent/arguments/rows.d.ts +29 -2
  315. package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
  316. package/dist/types/core/agent/arguments/serve.d.ts +32 -3
  317. package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
  318. package/dist/types/core/agent/arguments/subflow.d.ts +25 -0
  319. package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
  320. package/dist/types/core/agent/buildAgentChart.d.ts +7 -0
  321. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  322. package/dist/types/core/agent/coverage/answer.d.ts +7 -1
  323. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
  324. package/dist/types/core/agent/coverage/period.d.ts +8 -3
  325. package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
  326. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +11 -5
  327. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  328. package/dist/types/core/agent/evidence/normalize.d.ts +34 -0
  329. package/dist/types/core/agent/evidence/normalize.d.ts.map +1 -1
  330. package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
  331. package/dist/types/core/agent/findings/types.d.ts +2 -1
  332. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  333. package/dist/types/core/agent/honesty/mounts.d.ts +12 -0
  334. package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
  335. package/dist/types/core/agent/stages/argumentAsk.d.ts +9 -0
  336. package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
  337. package/dist/types/core/agent/stages/prepareFinal.d.ts +12 -1
  338. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  339. package/dist/types/core/agent/stages/seed.d.ts +23 -0
  340. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  341. package/dist/types/core/agent/stages/timeLayer.d.ts +95 -0
  342. package/dist/types/core/agent/stages/timeLayer.d.ts.map +1 -0
  343. package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
  344. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  345. package/dist/types/core/agent/types.d.ts +25 -0
  346. package/dist/types/core/agent/types.d.ts.map +1 -1
  347. package/dist/types/core/inputRequest.d.ts +50 -6
  348. package/dist/types/core/inputRequest.d.ts.map +1 -1
  349. package/dist/types/core/messageFrom.d.ts +5 -2
  350. package/dist/types/core/messageFrom.d.ts.map +1 -1
  351. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  352. package/dist/types/core/time/ask.d.ts +122 -0
  353. package/dist/types/core/time/ask.d.ts.map +1 -0
  354. package/dist/types/core/time/axis.d.ts +225 -0
  355. package/dist/types/core/time/axis.d.ts.map +1 -0
  356. package/dist/types/core/time/bind.d.ts +169 -0
  357. package/dist/types/core/time/bind.d.ts.map +1 -0
  358. package/dist/types/core/time/clock.d.ts +184 -0
  359. package/dist/types/core/time/clock.d.ts.map +1 -0
  360. package/dist/types/core/time/convert.d.ts +180 -0
  361. package/dist/types/core/time/convert.d.ts.map +1 -0
  362. package/dist/types/core/time/drift.d.ts +79 -0
  363. package/dist/types/core/time/drift.d.ts.map +1 -0
  364. package/dist/types/core/time/duration.d.ts +72 -0
  365. package/dist/types/core/time/duration.d.ts.map +1 -0
  366. package/dist/types/core/time/instant.d.ts +76 -0
  367. package/dist/types/core/time/instant.d.ts.map +1 -0
  368. package/dist/types/core/time/periodForm.d.ts +185 -0
  369. package/dist/types/core/time/periodForm.d.ts.map +1 -0
  370. package/dist/types/core/time/present.d.ts +106 -0
  371. package/dist/types/core/time/present.d.ts.map +1 -0
  372. package/dist/types/core/time/range.d.ts +126 -0
  373. package/dist/types/core/time/range.d.ts.map +1 -0
  374. package/dist/types/core/time/reader.d.ts +154 -0
  375. package/dist/types/core/time/reader.d.ts.map +1 -0
  376. package/dist/types/core/time/readingAsk.d.ts +46 -0
  377. package/dist/types/core/time/readingAsk.d.ts.map +1 -0
  378. package/dist/types/core/time/resolve.d.ts +83 -0
  379. package/dist/types/core/time/resolve.d.ts.map +1 -0
  380. package/dist/types/core/time/resolveRecord.d.ts +161 -0
  381. package/dist/types/core/time/resolveRecord.d.ts.map +1 -0
  382. package/dist/types/core/time/rows.d.ts +211 -0
  383. package/dist/types/core/time/rows.d.ts.map +1 -0
  384. package/dist/types/core/time/rowsBuild.d.ts +77 -0
  385. package/dist/types/core/time/rowsBuild.d.ts.map +1 -0
  386. package/dist/types/core/time/wire.d.ts +64 -0
  387. package/dist/types/core/time/wire.d.ts.map +1 -0
  388. package/dist/types/core/time/zone.d.ts +116 -0
  389. package/dist/types/core/time/zone.d.ts.map +1 -0
  390. package/dist/types/core/tools.d.ts +26 -4
  391. package/dist/types/core/tools.d.ts.map +1 -1
  392. package/dist/types/events/payloads.d.ts +4 -1
  393. package/dist/types/events/payloads.d.ts.map +1 -1
  394. package/dist/types/index.d.ts +11 -1
  395. package/dist/types/index.d.ts.map +1 -1
  396. package/dist/types/lib/mcp/elicitation.d.ts +85 -0
  397. package/dist/types/lib/mcp/elicitation.d.ts.map +1 -0
  398. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  399. package/dist/types/lib/mcp/mockMcpClient.d.ts +9 -1
  400. package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
  401. package/dist/types/lib/mcp/toolExtras.d.ts +21 -2
  402. package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
  403. package/dist/types/lib/mcp/types.d.ts +8 -0
  404. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  405. package/dist/types/locales/index.d.ts +6 -0
  406. package/dist/types/locales/index.d.ts.map +1 -1
  407. package/dist/types/locales/timeAsk.d.ts +30 -0
  408. package/dist/types/locales/timeAsk.d.ts.map +1 -0
  409. package/package.json +1 -1
@@ -153,6 +153,8 @@ const conversation_js_1 = require("./conversation.js");
153
153
  const inputRequest_js_1 = require("./inputRequest.js");
154
154
  const outputSchema_js_1 = require("./outputSchema.js");
155
155
  const runInput_js_1 = require("./runInput.js");
156
+ const rows_js_1 = require("./time/rows.js");
157
+ const clock_js_1 = require("./time/clock.js");
156
158
  const outputRetry_js_1 = require("./agent/stages/outputRetry.js");
157
159
  const RunnerBase_js_1 = require("./RunnerBase.js");
158
160
  const validators_js_1 = require("./agent/validators.js");
@@ -365,6 +367,20 @@ class Agent extends RunnerBase_js_1.RunnerBase {
365
367
  * ask, and that undefined is the whole zero-cost guarantee: no stage, no
366
368
  * witness row, no stamp, no event, no bridge. */
367
369
  answerLayerOption;
370
+ /** `.time()` (the time layer, `core/time/`): the fallback zone, as read.
371
+ * Undefined on every agent that did not ask — then no clock is read, no
372
+ * time row is filed and `time` on a run is refused. */
373
+ timeOptions;
374
+ /** The clock the CURRENT `run()`'s seed stamps — set by `run()` (refusing a
375
+ * run with no zone), read by seed through `SeedStageDeps.timeClock`, and
376
+ * cleared when `run()` ends, so a later turn this agent did not start (its
377
+ * chart mounted in a composition) never stamps a clock nobody declared for
378
+ * it (`seedClockDraft`). */
379
+ runClockDraft;
380
+ /** The `time` the CURRENT resume passed, as read — TAKEN once by the first
381
+ * ToolCalls pass of the resumed leg (`ToolCallsHandlerDeps.time`), and
382
+ * cleared when `run()` or `resume()` ends. */
383
+ resumePassedTime;
368
384
  /** Tool choice by classifier (9.105.0, `.toolChoice()`): the classifier,
369
385
  * the serve dial and the app's own doors. Threaded to the tools slot (the
370
386
  * pick and the narrowing), to call-llm (`toolChoice: true`, the outcome
@@ -804,6 +820,18 @@ class Agent extends RunnerBase_js_1.RunnerBase {
804
820
  else if (typeof opts.answerLayer === 'object' && opts.answerLayer !== null) {
805
821
  this.answerLayerOption = opts.answerLayer.standingLine === true ? { standingLine: true } : {};
806
822
  }
823
+ // The time layer's door (`.time()` / `AgentOptions.time`): `true` or the
824
+ // options, read once; a malformed zone is refused here, at build.
825
+ if (opts.time !== undefined) {
826
+ const read = (0, clock_js_1.readTimeOptions)(opts.time === true ? undefined : opts.time);
827
+ if ('problem' in read)
828
+ throw new Error(`Agent: time ${read.problem}.`);
829
+ this.timeOptions = read.value;
830
+ // The reader reads only a person's message — a composition hands the
831
+ // `messageFrom: 'composed'` marker only to a runner that reads it.
832
+ if (read.value.reader !== undefined)
833
+ (0, messageFrom_js_1.readsMessageFrom)(this);
834
+ }
807
835
  if (opts.findings?.argumentSources === true || inputsLayer?.argumentSources === true) {
808
836
  this.argumentSourcesArmed = true;
809
837
  // Declared sources read `AgentInput.messageFrom` — a composition hands
@@ -1493,6 +1521,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1493
1521
  // not at the resume of a pause it would have made impossible to resume.
1494
1522
  (0, callerIdentity_js_1.assertIdentityShape)(runInput.identity, 'Agent.run');
1495
1523
  (0, callerIdentity_js_1.assertIdentityShape)(options?.identity, 'Agent.run');
1524
+ // The run's clock (the time layer): read or refused HERE, before the turn
1525
+ // starts — a run with no zone anywhere never runs on the server's zone.
1526
+ const clockDraft = this.clockDraftFor(runInput.time ?? options?.time, 'Agent.run');
1527
+ const engineOptions = withoutTime(options);
1496
1528
  // Timing next, and before the executor exists: both of these refuse a call
1497
1529
  // that would have SUCCEEDED into corrupted per-instance state or an
1498
1530
  // orphaned human question. See ./conversation.ts for why they are throws.
@@ -1524,7 +1556,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1524
1556
  // (helper used in the catch block below — module-private function
1525
1557
  // declared at file end via hoisting)
1526
1558
  this.answeredAsk = undefined;
1527
- const executor = this.createExecutor(options);
1559
+ this.resumePassedTime = undefined;
1560
+ const executor = this.createExecutor(engineOptions);
1528
1561
  this.inFlightRunId = this.currentRunContext.runId;
1529
1562
  // One disposition ledger per run (9.60.0) — registration mirrors what
1530
1563
  // this agent's configuration makes applicable; dev posture runs the
@@ -1549,22 +1582,28 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1549
1582
  this.lastRunAnswer = undefined;
1550
1583
  // One run can never raise on another run's consent block.
1551
1584
  this.consentOutstanding.clear();
1585
+ // Set here, beside the `try` whose `finally` clears it, so no exit path
1586
+ // can leave it behind for a turn this `run()` did not start.
1587
+ this.runClockDraft = clockDraft;
1552
1588
  try {
1553
1589
  const result = await executor.run({
1554
1590
  input: {
1555
1591
  message: runInput.message,
1556
1592
  ...(this.lastRunIdentity !== undefined && { identity: this.lastRunIdentity }),
1557
1593
  // A composed message reaches seed only on an agent that reads it
1558
- // (declared sources) — every other run's input is the bytes it was.
1594
+ // (declared sources, or the time layer's reader) — every other run's
1595
+ // input is the bytes it was.
1559
1596
  ...(messageFrom === 'composed' &&
1560
- this.argumentSourcesArmed === true && { messageFrom: 'composed' }),
1597
+ (this.argumentSourcesArmed === true || this.timeOptions?.reader !== undefined) && {
1598
+ messageFrom: 'composed',
1599
+ }),
1561
1600
  },
1562
1601
  // Co-engineered boundary (#16): the engine's loop-iteration limit
1563
1602
  // (footprintjs 9 default 1000) must never fire BELOW the agent's own
1564
1603
  // budget — give it headroom (×2 + 10 covers double-hop loop shapes).
1565
1604
  // Consumer-provided options win.
1566
1605
  maxIterations: this.maxIterations * 2 + 10,
1567
- ...(options ?? {}),
1606
+ ...(engineOptions ?? {}),
1568
1607
  });
1569
1608
  const finalized = this.finalizeResult(executor, result);
1570
1609
  if (typeof finalized === 'string')
@@ -1658,6 +1697,11 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1658
1697
  throw cause;
1659
1698
  }
1660
1699
  finally {
1700
+ // The time layer's per-run inputs end with the run: a stale draft would
1701
+ // be stamped by the next seed this agent did not start (a composition
1702
+ // mounting its chart) as if the app had declared it.
1703
+ this.runClockDraft = undefined;
1704
+ this.resumePassedTime = undefined;
1661
1705
  // The run's disposition rows, on EVERY path — success, failure, pause —
1662
1706
  // and BEFORE the recording stops, so a recording carries its run's
1663
1707
  // checker accounting (9.60.0).
@@ -1841,6 +1885,79 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1841
1885
  identityFor(options, cp) {
1842
1886
  return options?.identity ?? cp.identity;
1843
1887
  }
1888
+ /**
1889
+ * A run's `time`, read into the turn's clock draft (the time layer) — or
1890
+ * refused, before the turn starts: `time` on an agent without `.time()`, a
1891
+ * malformed value, or no zone anywhere (the run's, else the builder's).
1892
+ * `undefined` on an agent without the layer.
1893
+ *
1894
+ * @internal
1895
+ */
1896
+ clockDraftFor(time, runner) {
1897
+ const passed = this.passedTimeFor(time, runner);
1898
+ if (this.timeOptions === undefined)
1899
+ return undefined;
1900
+ const draft = (0, clock_js_1.draftClock)(passed, this.timeOptions);
1901
+ if (draft === 'no-zone') {
1902
+ throw new runInput_js_1.InvalidRunInputError({
1903
+ runner,
1904
+ received: 'a run with no time zone',
1905
+ hint: "this agent's time layer needs the person's zone — pass run({ message, time: { zone: " +
1906
+ "'America/Los_Angeles' } }) or declare a fallback with .time({ zone }); the server's " +
1907
+ 'zone is never used',
1908
+ });
1909
+ }
1910
+ return draft;
1911
+ }
1912
+ /**
1913
+ * The clock draft seed stamps (the time layer): the one `run()` read — or,
1914
+ * for a turn this agent's `run()` did not start (its chart mounted in a
1915
+ * composition, which passes no `time`), the builder's fallback zone with
1916
+ * the turn's start as `now` (`zoneSource: 'builder'`, `nowSource:
1917
+ * 'default'` — the same record a `run()` with no `time` files). With no
1918
+ * fallback zone that turn is refused, as `run()` refuses it: the server's
1919
+ * zone is never used.
1920
+ *
1921
+ * @internal
1922
+ */
1923
+ seedClockDraft() {
1924
+ if (this.runClockDraft !== undefined)
1925
+ return this.runClockDraft;
1926
+ const draft = (0, clock_js_1.draftClock)(undefined, this.timeOptions ?? {});
1927
+ if (draft === 'no-zone') {
1928
+ throw new runInput_js_1.InvalidRunInputError({
1929
+ runner: 'Agent (mounted in a composition)',
1930
+ received: 'a turn with no time zone',
1931
+ hint: "this agent's time layer needs the person's zone, and a composition passes no time to " +
1932
+ "the agents it mounts — declare a fallback with .time({ zone: 'America/Los_Angeles' }); " +
1933
+ "the server's zone is never used",
1934
+ });
1935
+ }
1936
+ return draft;
1937
+ }
1938
+ /**
1939
+ * A `time` passed to a run or a resume, read — or refused by name: passed to
1940
+ * an agent without `.time()` (a door that ignored it would look configured
1941
+ * and do nothing), or malformed.
1942
+ *
1943
+ * @internal
1944
+ */
1945
+ passedTimeFor(time, runner) {
1946
+ if (time === undefined)
1947
+ return undefined;
1948
+ if (this.timeOptions === undefined) {
1949
+ throw new runInput_js_1.InvalidRunInputError({
1950
+ runner,
1951
+ received: 'time',
1952
+ hint: 'this agent reads no clock — arm the time layer with .time() to pass time',
1953
+ });
1954
+ }
1955
+ const read = (0, clock_js_1.readRunTime)(time);
1956
+ if ('problem' in read) {
1957
+ throw new runInput_js_1.InvalidRunInputError({ runner, received: 'a malformed time', hint: read.problem });
1958
+ }
1959
+ return read.value;
1960
+ }
1844
1961
  /**
1845
1962
  * Install a per-run checkpoint tracker. Listens for the agent's
1846
1963
  * own iteration_end events on `this.dispatcher` and snapshots the
@@ -1936,6 +2053,11 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1936
2053
  // answer is a value (often a string) and must stay accepted, so the only
1937
2054
  // sound question is "what was asked?".
1938
2055
  (0, callerIdentity_js_1.assertIdentityShape)(options?.identity, 'Agent.resume');
2056
+ // A resume's `time` (the time layer) is read or refused before anything
2057
+ // moves; it is never applied — the paused turn's clock is kept, and a
2058
+ // differing value is recorded by the ToolCalls resume door.
2059
+ const passedTime = this.passedTimeFor(options?.time, 'Agent.resume');
2060
+ options = withoutTime(options);
1939
2061
  const gate = (0, pause_js_1.pauseDemandsDecision)(checkpoint.pauseData);
1940
2062
  if (gate && !(0, checkin_js_1.isCheckInDecision)(input))
1941
2063
  throw new pause_js_1.DecisionRequiredError(gate, input);
@@ -1967,7 +2089,7 @@ class Agent extends RunnerBase_js_1.RunnerBase {
1967
2089
  let answeredAsk;
1968
2090
  if (awaitingInput !== undefined) {
1969
2091
  this.assertNotRunning('Agent.resume');
1970
- const answered = (0, inputRequest_js_1.applyInputResponse)(awaitingInput, input);
2092
+ const answered = (0, inputRequest_js_1.applyInputResponse)(awaitingInput, input, this.timeAnswerContextOf(checkpoint.sharedState));
1971
2093
  if ('cancel' in answered) {
1972
2094
  throw new TypeError('[input request] Cancel a hosted request through its host, or abandonPause() before starting another run.');
1973
2095
  }
@@ -2048,6 +2170,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2048
2170
  this.lastRunAnswer = undefined;
2049
2171
  // One run can never raise on another run's consent block.
2050
2172
  this.consentOutstanding.clear();
2173
+ // Beside the `try` whose `finally` clears it (the fresh-run path's terms).
2174
+ this.resumePassedTime = passedTime;
2051
2175
  try {
2052
2176
  const result = await executor.resume(checkpoint, input, resumeOptions);
2053
2177
  const finalized = this.finalizeResult(executor, result);
@@ -2067,6 +2191,8 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2067
2191
  throw cause;
2068
2192
  }
2069
2193
  finally {
2194
+ // A resume's passed `time` ends with the resume (the fresh-run path's terms).
2195
+ this.resumePassedTime = undefined;
2070
2196
  // Same terms as the fresh-run path: rows on every exit, before the
2071
2197
  // recording stops (9.60.0).
2072
2198
  this.fileIntegrityDisposition();
@@ -2242,6 +2368,26 @@ class Agent extends RunnerBase_js_1.RunnerBase {
2242
2368
  return undefined;
2243
2369
  return structuredClone(spans);
2244
2370
  }
2371
+ /**
2372
+ * What the resume door checks a time field's answer with (the time design
2373
+ * § 6.2, step T4): the paused turn's clock zone — the kept `clock` row, so
2374
+ * a resume that passes another `time` changes nothing — and the app's
2375
+ * catalog overrides. `undefined` without `.time()`: a `format` field is
2376
+ * then judged for shape, order and offset only, in the default words.
2377
+ *
2378
+ * @internal
2379
+ */
2380
+ timeAnswerContextOf(state) {
2381
+ if (this.timeOptions === undefined)
2382
+ return undefined;
2383
+ const ledger = state?.findingsLedger;
2384
+ const zone = (0, rows_js_1.clockOf)(Array.isArray(ledger) ? ledger : undefined)?.zone;
2385
+ const messages = this.timeOptions.messages;
2386
+ return {
2387
+ ...(zone !== undefined && { zone }),
2388
+ ...(messages !== undefined && { messages }),
2389
+ };
2390
+ }
2245
2391
  /**
2246
2392
  * The findings ledger for a checkpoint (9.101.0) — `foldedSpansOf`'s twin:
2247
2393
  * one reader for `checkpoint()` and the crash carrier, `undefined` when the
@@ -3683,6 +3829,16 @@ class Agent extends RunnerBase_js_1.RunnerBase {
3683
3829
  get honestyLayers() {
3684
3830
  return seededHonestyLayers;
3685
3831
  },
3832
+ // The time layer's clock: the draft `run()` read (refusing a run with no
3833
+ // zone), stamped by seed as the turn's one `clock` row. Absent → the
3834
+ // deps object seed always had.
3835
+ ...(this.timeOptions !== undefined && { timeClock: () => this.seedClockDraft() }),
3836
+ // The time layer's reader: seed reads the person's words once per turn,
3837
+ // after the clock. Absent → nothing is read.
3838
+ ...(this.timeOptions?.reader !== undefined &&
3839
+ this.timeOptions.policy !== undefined && {
3840
+ timeReader: { reader: this.timeOptions.reader, policy: this.timeOptions.policy },
3841
+ }),
3686
3842
  // Declared sources (honesty layer 2): the seed twin plants `_findings.from`
3687
3843
  // on ruled tools, and the run's `messageFrom` constant is written — only
3688
3844
  // under the arm (refused at build without the inputs layer).
@@ -3937,6 +4093,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
3937
4093
  });
3938
4094
  ledgerRestoreArmed = true;
3939
4095
  }
4096
+ // The time layer's rows ride the same ledger: a continued conversation
4097
+ // keeps its earlier turns' clocks (each turn files its own).
4098
+ if (this.timeOptions !== undefined)
4099
+ ledgerRestoreArmed = true;
3940
4100
  // The gate's admissible set, for the record (9.50.0): declared hops from
3941
4101
  // the cursor plus the open skills — the SAME two resolvers the read_skill
3942
4102
  // offer and the refusal messages are built from (`readSkillOfferFor`),
@@ -4552,6 +4712,18 @@ class Agent extends RunnerBase_js_1.RunnerBase {
4552
4712
  // never allocates it.
4553
4713
  currentRun: () => this.toolRunFacts(),
4554
4714
  answeredAsk: () => this.answeredAsk,
4715
+ // The time layer: each dispatched call files its `call` row, and the
4716
+ // resume door compares a resume's passed `time` with the kept clock.
4717
+ ...(this.timeOptions !== undefined && {
4718
+ time: {
4719
+ takePassedOnResume: () => {
4720
+ const passed = this.resumePassedTime;
4721
+ this.resumePassedTime = undefined;
4722
+ return passed;
4723
+ },
4724
+ ...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
4725
+ },
4726
+ }),
4555
4727
  emitForRun: (type, payload, runContext) => this.emitLateFact(type, payload, runContext),
4556
4728
  toolSessions: () => this.toolSessions(),
4557
4729
  // 8.6.0 — what a run does when a declared credential needs 3LO consent.
@@ -4643,6 +4815,13 @@ class Agent extends RunnerBase_js_1.RunnerBase {
4643
4815
  inputsLayer: {
4644
4816
  toolOf: (toolName) => resolveForLayer(toolName).tool,
4645
4817
  ...(this.toolMiddleware.length > 0 && { rewrites: true }),
4818
+ // The time layer (step T5a): a tool whose period declares forms is filled from the
4819
+ // turn's one window, bound to the person's window, or recorded as the model's.
4820
+ ...(this.timeOptions !== undefined && {
4821
+ time: {
4822
+ ...(this.timeOptions.zone !== undefined && { appZone: this.timeOptions.zone }),
4823
+ },
4824
+ }),
4646
4825
  // Declared sources: the layer reads `_findings.from` and checks it against
4647
4826
  // the corpora the mount hands in — the app's `externalGrounds` among them.
4648
4827
  ...(argumentSources && {
@@ -4703,6 +4882,9 @@ class Agent extends RunnerBase_js_1.RunnerBase {
4703
4882
  // gets the stage that appends nothing and carries the limits as data.
4704
4883
  ...(this.limitsTravelWithTheAnswerValue && !limitsAsData && { attachCoverageLimits: true }),
4705
4884
  ...(limitsAsData && { coverageLimitsAsData: true }),
4885
+ // The time layer: the prose limits block renders its `Period:` lines in
4886
+ // the run's clock zone. Absent → the final stage it always mounted.
4887
+ ...(this.timeOptions !== undefined && { timeLayer: true }),
4706
4888
  ...(this.answerValidationConfig !== undefined && { hasAnswerValidation: true }),
4707
4889
  // The out-of-budget wrap-up branch (9.56.0) — the conditional-mount law
4708
4890
  // above, decided once beside the Route decider that routes to it so the
@@ -4766,4 +4948,16 @@ function boundInsertionOrder(held, max) {
4766
4948
  held.delete(oldest.value);
4767
4949
  }
4768
4950
  }
4951
+ /**
4952
+ * The run options without the time layer's `time` — what the engine is handed.
4953
+ * The SAME object when it carries no `time` key, so a run that passed none
4954
+ * hands the executor exactly the options it always did.
4955
+ */
4956
+ function withoutTime(options) {
4957
+ if (options === undefined || !('time' in options))
4958
+ return options;
4959
+ const { time: _time, ...rest } = options;
4960
+ void _time;
4961
+ return rest;
4962
+ }
4769
4963
  //# sourceMappingURL=Agent.js.map