agentfootprint 9.128.1 → 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 (379) hide show
  1. package/CAPABILITIES.md +8 -1
  2. package/dist/artifacts/datasetResult.js +2 -2
  3. package/dist/artifacts/datasetResult.js.map +1 -1
  4. package/dist/artifacts/index.js +10 -8
  5. package/dist/artifacts/index.js.map +1 -1
  6. package/dist/artifacts/minting.js +2 -2
  7. package/dist/artifacts/minting.js.map +1 -1
  8. package/dist/core/Agent.js +199 -5
  9. package/dist/core/Agent.js.map +1 -1
  10. package/dist/core/agent/AgentBuilder.js +75 -1
  11. package/dist/core/agent/AgentBuilder.js.map +1 -1
  12. package/dist/core/agent/arguments/ask.js +60 -4
  13. package/dist/core/agent/arguments/ask.js.map +1 -1
  14. package/dist/core/agent/arguments/declare.js +260 -45
  15. package/dist/core/agent/arguments/declare.js.map +1 -1
  16. package/dist/core/agent/arguments/dispatch.js +10 -0
  17. package/dist/core/agent/arguments/dispatch.js.map +1 -1
  18. package/dist/core/agent/arguments/resolve.js +218 -6
  19. package/dist/core/agent/arguments/resolve.js.map +1 -1
  20. package/dist/core/agent/arguments/rows.js +32 -2
  21. package/dist/core/agent/arguments/rows.js.map +1 -1
  22. package/dist/core/agent/arguments/serve.js +89 -4
  23. package/dist/core/agent/arguments/serve.js.map +1 -1
  24. package/dist/core/agent/arguments/subflow.js +41 -6
  25. package/dist/core/agent/arguments/subflow.js.map +1 -1
  26. package/dist/core/agent/buildAgentChart.js.map +1 -1
  27. package/dist/core/agent/coverage/answer.js +9 -4
  28. package/dist/core/agent/coverage/answer.js.map +1 -1
  29. package/dist/core/agent/coverage/period.js +43 -67
  30. package/dist/core/agent/coverage/period.js.map +1 -1
  31. package/dist/core/agent/findings/ledger.js +6 -0
  32. package/dist/core/agent/findings/ledger.js.map +1 -1
  33. package/dist/core/agent/findings/types.js.map +1 -1
  34. package/dist/core/agent/honesty/mounts.js +27 -3
  35. package/dist/core/agent/honesty/mounts.js.map +1 -1
  36. package/dist/core/agent/stages/argumentAsk.js +11 -4
  37. package/dist/core/agent/stages/argumentAsk.js.map +1 -1
  38. package/dist/core/agent/stages/prepareFinal.js +40 -6
  39. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  40. package/dist/core/agent/stages/seed.js +29 -6
  41. package/dist/core/agent/stages/seed.js.map +1 -1
  42. package/dist/core/agent/stages/timeLayer.js +201 -0
  43. package/dist/core/agent/stages/timeLayer.js.map +1 -0
  44. package/dist/core/agent/stages/toolCalls.js +39 -0
  45. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  46. package/dist/core/inputRequest.js +132 -5
  47. package/dist/core/inputRequest.js.map +1 -1
  48. package/dist/core/messageFrom.js +5 -2
  49. package/dist/core/messageFrom.js.map +1 -1
  50. package/dist/core/runCheckpoint.js +16 -2
  51. package/dist/core/runCheckpoint.js.map +1 -1
  52. package/dist/core/time/ask.js +234 -0
  53. package/dist/core/time/ask.js.map +1 -0
  54. package/dist/core/time/axis.js +469 -0
  55. package/dist/core/time/axis.js.map +1 -0
  56. package/dist/core/time/bind.js +265 -0
  57. package/dist/core/time/bind.js.map +1 -0
  58. package/dist/core/time/clock.js +260 -0
  59. package/dist/core/time/clock.js.map +1 -0
  60. package/dist/core/time/convert.js +644 -0
  61. package/dist/core/time/convert.js.map +1 -0
  62. package/dist/core/time/drift.js +89 -0
  63. package/dist/core/time/drift.js.map +1 -0
  64. package/dist/core/time/duration.js +125 -0
  65. package/dist/core/time/duration.js.map +1 -0
  66. package/dist/core/time/instant.js +141 -0
  67. package/dist/core/time/instant.js.map +1 -0
  68. package/dist/core/time/periodForm.js +392 -0
  69. package/dist/core/time/periodForm.js.map +1 -0
  70. package/dist/core/time/present.js +311 -0
  71. package/dist/core/time/present.js.map +1 -0
  72. package/dist/core/time/range.js +256 -0
  73. package/dist/core/time/range.js.map +1 -0
  74. package/dist/core/time/reader.js +205 -0
  75. package/dist/core/time/reader.js.map +1 -0
  76. package/dist/core/time/readingAsk.js +90 -0
  77. package/dist/core/time/readingAsk.js.map +1 -0
  78. package/dist/core/time/resolve.js +663 -0
  79. package/dist/core/time/resolve.js.map +1 -0
  80. package/dist/core/time/resolveRecord.js +164 -0
  81. package/dist/core/time/resolveRecord.js.map +1 -0
  82. package/dist/core/time/rows.js +295 -0
  83. package/dist/core/time/rows.js.map +1 -0
  84. package/dist/core/time/rowsBuild.js +187 -0
  85. package/dist/core/time/rowsBuild.js.map +1 -0
  86. package/dist/core/time/wire.js +86 -0
  87. package/dist/core/time/wire.js.map +1 -0
  88. package/dist/core/time/zone.js +253 -0
  89. package/dist/core/time/zone.js.map +1 -0
  90. package/dist/core/tools.js.map +1 -1
  91. package/dist/esm/artifacts/datasetResult.js +1 -1
  92. package/dist/esm/artifacts/datasetResult.js.map +1 -1
  93. package/dist/esm/artifacts/index.d.ts +1 -1
  94. package/dist/esm/artifacts/index.js +3 -2
  95. package/dist/esm/artifacts/index.js.map +1 -1
  96. package/dist/esm/artifacts/minting.js +1 -1
  97. package/dist/esm/artifacts/minting.js.map +1 -1
  98. package/dist/esm/artifacts/types.d.ts +2 -2
  99. package/dist/esm/core/Agent.d.ts +64 -0
  100. package/dist/esm/core/Agent.js +200 -6
  101. package/dist/esm/core/Agent.js.map +1 -1
  102. package/dist/esm/core/agent/AgentBuilder.d.ts +60 -0
  103. package/dist/esm/core/agent/AgentBuilder.js +75 -1
  104. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  105. package/dist/esm/core/agent/arguments/ask.d.ts +16 -2
  106. package/dist/esm/core/agent/arguments/ask.js +59 -4
  107. package/dist/esm/core/agent/arguments/ask.js.map +1 -1
  108. package/dist/esm/core/agent/arguments/checks.d.ts +1 -1
  109. package/dist/esm/core/agent/arguments/declare.d.ts +76 -15
  110. package/dist/esm/core/agent/arguments/declare.js +255 -44
  111. package/dist/esm/core/agent/arguments/declare.js.map +1 -1
  112. package/dist/esm/core/agent/arguments/dispatch.js +10 -0
  113. package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
  114. package/dist/esm/core/agent/arguments/resolve.d.ts +59 -6
  115. package/dist/esm/core/agent/arguments/resolve.js +218 -8
  116. package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
  117. package/dist/esm/core/agent/arguments/rows.d.ts +29 -2
  118. package/dist/esm/core/agent/arguments/rows.js +30 -1
  119. package/dist/esm/core/agent/arguments/rows.js.map +1 -1
  120. package/dist/esm/core/agent/arguments/serve.d.ts +32 -3
  121. package/dist/esm/core/agent/arguments/serve.js +87 -3
  122. package/dist/esm/core/agent/arguments/serve.js.map +1 -1
  123. package/dist/esm/core/agent/arguments/subflow.d.ts +25 -0
  124. package/dist/esm/core/agent/arguments/subflow.js +42 -7
  125. package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
  126. package/dist/esm/core/agent/buildAgentChart.d.ts +7 -0
  127. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  128. package/dist/esm/core/agent/coverage/answer.d.ts +7 -1
  129. package/dist/esm/core/agent/coverage/answer.js +9 -4
  130. package/dist/esm/core/agent/coverage/answer.js.map +1 -1
  131. package/dist/esm/core/agent/coverage/period.d.ts +8 -3
  132. package/dist/esm/core/agent/coverage/period.js +43 -67
  133. package/dist/esm/core/agent/coverage/period.js.map +1 -1
  134. package/dist/esm/core/agent/findings/ledger.js +6 -0
  135. package/dist/esm/core/agent/findings/ledger.js.map +1 -1
  136. package/dist/esm/core/agent/findings/types.d.ts +2 -1
  137. package/dist/esm/core/agent/findings/types.js.map +1 -1
  138. package/dist/esm/core/agent/honesty/mounts.d.ts +12 -0
  139. package/dist/esm/core/agent/honesty/mounts.js +28 -4
  140. package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
  141. package/dist/esm/core/agent/stages/argumentAsk.d.ts +9 -0
  142. package/dist/esm/core/agent/stages/argumentAsk.js +11 -4
  143. package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
  144. package/dist/esm/core/agent/stages/prepareFinal.d.ts +12 -1
  145. package/dist/esm/core/agent/stages/prepareFinal.js +38 -5
  146. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  147. package/dist/esm/core/agent/stages/seed.d.ts +23 -0
  148. package/dist/esm/core/agent/stages/seed.js +29 -6
  149. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  150. package/dist/esm/core/agent/stages/timeLayer.d.ts +94 -0
  151. package/dist/esm/core/agent/stages/timeLayer.js +193 -0
  152. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -0
  153. package/dist/esm/core/agent/stages/toolCalls.d.ts +21 -0
  154. package/dist/esm/core/agent/stages/toolCalls.js +39 -0
  155. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  156. package/dist/esm/core/agent/types.d.ts +25 -0
  157. package/dist/esm/core/inputRequest.d.ts +50 -6
  158. package/dist/esm/core/inputRequest.js +132 -5
  159. package/dist/esm/core/inputRequest.js.map +1 -1
  160. package/dist/esm/core/messageFrom.d.ts +5 -2
  161. package/dist/esm/core/messageFrom.js +5 -2
  162. package/dist/esm/core/messageFrom.js.map +1 -1
  163. package/dist/esm/core/runCheckpoint.js +16 -2
  164. package/dist/esm/core/runCheckpoint.js.map +1 -1
  165. package/dist/esm/core/time/ask.d.ts +121 -0
  166. package/dist/esm/core/time/ask.js +225 -0
  167. package/dist/esm/core/time/ask.js.map +1 -0
  168. package/dist/esm/core/time/axis.d.ts +224 -0
  169. package/dist/esm/core/time/axis.js +462 -0
  170. package/dist/esm/core/time/axis.js.map +1 -0
  171. package/dist/esm/core/time/bind.d.ts +168 -0
  172. package/dist/esm/core/time/bind.js +259 -0
  173. package/dist/esm/core/time/bind.js.map +1 -0
  174. package/dist/esm/core/time/clock.d.ts +183 -0
  175. package/dist/esm/core/time/clock.js +252 -0
  176. package/dist/esm/core/time/clock.js.map +1 -0
  177. package/dist/esm/core/time/convert.d.ts +179 -0
  178. package/dist/esm/core/time/convert.js +616 -0
  179. package/dist/esm/core/time/convert.js.map +1 -0
  180. package/dist/esm/core/time/drift.d.ts +78 -0
  181. package/dist/esm/core/time/drift.js +85 -0
  182. package/dist/esm/core/time/drift.js.map +1 -0
  183. package/dist/esm/core/time/duration.d.ts +71 -0
  184. package/dist/esm/core/time/duration.js +117 -0
  185. package/dist/esm/core/time/duration.js.map +1 -0
  186. package/dist/esm/core/time/instant.d.ts +75 -0
  187. package/dist/esm/core/time/instant.js +131 -0
  188. package/dist/esm/core/time/instant.js.map +1 -0
  189. package/dist/esm/core/time/periodForm.d.ts +184 -0
  190. package/dist/esm/core/time/periodForm.js +376 -0
  191. package/dist/esm/core/time/periodForm.js.map +1 -0
  192. package/dist/esm/core/time/present.d.ts +105 -0
  193. package/dist/esm/core/time/present.js +304 -0
  194. package/dist/esm/core/time/present.js.map +1 -0
  195. package/dist/esm/core/time/range.d.ts +125 -0
  196. package/dist/esm/core/time/range.js +239 -0
  197. package/dist/esm/core/time/range.js.map +1 -0
  198. package/dist/esm/core/time/reader.d.ts +153 -0
  199. package/dist/esm/core/time/reader.js +199 -0
  200. package/dist/esm/core/time/reader.js.map +1 -0
  201. package/dist/esm/core/time/readingAsk.d.ts +45 -0
  202. package/dist/esm/core/time/readingAsk.js +86 -0
  203. package/dist/esm/core/time/readingAsk.js.map +1 -0
  204. package/dist/esm/core/time/resolve.d.ts +82 -0
  205. package/dist/esm/core/time/resolve.js +654 -0
  206. package/dist/esm/core/time/resolve.js.map +1 -0
  207. package/dist/esm/core/time/resolveRecord.d.ts +160 -0
  208. package/dist/esm/core/time/resolveRecord.js +158 -0
  209. package/dist/esm/core/time/resolveRecord.js.map +1 -0
  210. package/dist/esm/core/time/rows.d.ts +210 -0
  211. package/dist/esm/core/time/rows.js +286 -0
  212. package/dist/esm/core/time/rows.js.map +1 -0
  213. package/dist/esm/core/time/rowsBuild.d.ts +76 -0
  214. package/dist/esm/core/time/rowsBuild.js +179 -0
  215. package/dist/esm/core/time/rowsBuild.js.map +1 -0
  216. package/dist/esm/core/time/wire.d.ts +63 -0
  217. package/dist/esm/core/time/wire.js +81 -0
  218. package/dist/esm/core/time/wire.js.map +1 -0
  219. package/dist/esm/core/time/zone.d.ts +115 -0
  220. package/dist/esm/core/time/zone.js +242 -0
  221. package/dist/esm/core/time/zone.js.map +1 -0
  222. package/dist/esm/core/tools.d.ts +26 -4
  223. package/dist/esm/core/tools.js.map +1 -1
  224. package/dist/esm/events/payloads.d.ts +2 -2
  225. package/dist/esm/index.d.ts +11 -1
  226. package/dist/esm/index.js +3 -1
  227. package/dist/esm/index.js.map +1 -1
  228. package/dist/esm/lib/mcp/elicitation.d.ts +84 -0
  229. package/dist/esm/lib/mcp/elicitation.js +181 -0
  230. package/dist/esm/lib/mcp/elicitation.js.map +1 -0
  231. package/dist/esm/lib/mcp/mcpClient.js +9 -3
  232. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  233. package/dist/esm/lib/mcp/mcpServe.js +6 -2
  234. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  235. package/dist/esm/lib/mcp/mockMcpClient.d.ts +9 -1
  236. package/dist/esm/lib/mcp/mockMcpClient.js +5 -3
  237. package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -1
  238. package/dist/esm/lib/mcp/toolExtras.d.ts +21 -2
  239. package/dist/esm/lib/mcp/toolExtras.js +22 -0
  240. package/dist/esm/lib/mcp/toolExtras.js.map +1 -1
  241. package/dist/esm/lib/mcp/types.d.ts +8 -0
  242. package/dist/esm/locales/index.d.ts +6 -0
  243. package/dist/esm/locales/index.js +6 -0
  244. package/dist/esm/locales/index.js.map +1 -1
  245. package/dist/esm/locales/timeAsk.d.ts +29 -0
  246. package/dist/esm/locales/timeAsk.js +44 -0
  247. package/dist/esm/locales/timeAsk.js.map +1 -0
  248. package/dist/index.js +7 -1
  249. package/dist/index.js.map +1 -1
  250. package/dist/lib/mcp/elicitation.js +186 -0
  251. package/dist/lib/mcp/elicitation.js.map +1 -0
  252. package/dist/lib/mcp/mcpClient.js +8 -2
  253. package/dist/lib/mcp/mcpClient.js.map +1 -1
  254. package/dist/lib/mcp/mcpServe.js +5 -1
  255. package/dist/lib/mcp/mcpServe.js.map +1 -1
  256. package/dist/lib/mcp/mockMcpClient.js +4 -2
  257. package/dist/lib/mcp/mockMcpClient.js.map +1 -1
  258. package/dist/lib/mcp/toolExtras.js +25 -1
  259. package/dist/lib/mcp/toolExtras.js.map +1 -1
  260. package/dist/locales/index.js +8 -1
  261. package/dist/locales/index.js.map +1 -1
  262. package/dist/locales/timeAsk.js +47 -0
  263. package/dist/locales/timeAsk.js.map +1 -0
  264. package/dist/types/artifacts/index.d.ts +1 -1
  265. package/dist/types/artifacts/index.d.ts.map +1 -1
  266. package/dist/types/artifacts/types.d.ts +2 -2
  267. package/dist/types/artifacts/types.d.ts.map +1 -1
  268. package/dist/types/core/Agent.d.ts +64 -0
  269. package/dist/types/core/Agent.d.ts.map +1 -1
  270. package/dist/types/core/agent/AgentBuilder.d.ts +60 -0
  271. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  272. package/dist/types/core/agent/arguments/ask.d.ts +16 -2
  273. package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
  274. package/dist/types/core/agent/arguments/checks.d.ts +1 -1
  275. package/dist/types/core/agent/arguments/checks.d.ts.map +1 -1
  276. package/dist/types/core/agent/arguments/declare.d.ts +76 -15
  277. package/dist/types/core/agent/arguments/declare.d.ts.map +1 -1
  278. package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -1
  279. package/dist/types/core/agent/arguments/resolve.d.ts +59 -6
  280. package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
  281. package/dist/types/core/agent/arguments/rows.d.ts +29 -2
  282. package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
  283. package/dist/types/core/agent/arguments/serve.d.ts +32 -3
  284. package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
  285. package/dist/types/core/agent/arguments/subflow.d.ts +25 -0
  286. package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
  287. package/dist/types/core/agent/buildAgentChart.d.ts +7 -0
  288. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  289. package/dist/types/core/agent/coverage/answer.d.ts +7 -1
  290. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
  291. package/dist/types/core/agent/coverage/period.d.ts +8 -3
  292. package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
  293. package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
  294. package/dist/types/core/agent/findings/types.d.ts +2 -1
  295. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  296. package/dist/types/core/agent/honesty/mounts.d.ts +12 -0
  297. package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
  298. package/dist/types/core/agent/stages/argumentAsk.d.ts +9 -0
  299. package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
  300. package/dist/types/core/agent/stages/prepareFinal.d.ts +12 -1
  301. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  302. package/dist/types/core/agent/stages/seed.d.ts +23 -0
  303. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  304. package/dist/types/core/agent/stages/timeLayer.d.ts +95 -0
  305. package/dist/types/core/agent/stages/timeLayer.d.ts.map +1 -0
  306. package/dist/types/core/agent/stages/toolCalls.d.ts +21 -0
  307. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  308. package/dist/types/core/agent/types.d.ts +25 -0
  309. package/dist/types/core/agent/types.d.ts.map +1 -1
  310. package/dist/types/core/inputRequest.d.ts +50 -6
  311. package/dist/types/core/inputRequest.d.ts.map +1 -1
  312. package/dist/types/core/messageFrom.d.ts +5 -2
  313. package/dist/types/core/messageFrom.d.ts.map +1 -1
  314. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  315. package/dist/types/core/time/ask.d.ts +122 -0
  316. package/dist/types/core/time/ask.d.ts.map +1 -0
  317. package/dist/types/core/time/axis.d.ts +225 -0
  318. package/dist/types/core/time/axis.d.ts.map +1 -0
  319. package/dist/types/core/time/bind.d.ts +169 -0
  320. package/dist/types/core/time/bind.d.ts.map +1 -0
  321. package/dist/types/core/time/clock.d.ts +184 -0
  322. package/dist/types/core/time/clock.d.ts.map +1 -0
  323. package/dist/types/core/time/convert.d.ts +180 -0
  324. package/dist/types/core/time/convert.d.ts.map +1 -0
  325. package/dist/types/core/time/drift.d.ts +79 -0
  326. package/dist/types/core/time/drift.d.ts.map +1 -0
  327. package/dist/types/core/time/duration.d.ts +72 -0
  328. package/dist/types/core/time/duration.d.ts.map +1 -0
  329. package/dist/types/core/time/instant.d.ts +76 -0
  330. package/dist/types/core/time/instant.d.ts.map +1 -0
  331. package/dist/types/core/time/periodForm.d.ts +185 -0
  332. package/dist/types/core/time/periodForm.d.ts.map +1 -0
  333. package/dist/types/core/time/present.d.ts +106 -0
  334. package/dist/types/core/time/present.d.ts.map +1 -0
  335. package/dist/types/core/time/range.d.ts +126 -0
  336. package/dist/types/core/time/range.d.ts.map +1 -0
  337. package/dist/types/core/time/reader.d.ts +154 -0
  338. package/dist/types/core/time/reader.d.ts.map +1 -0
  339. package/dist/types/core/time/readingAsk.d.ts +46 -0
  340. package/dist/types/core/time/readingAsk.d.ts.map +1 -0
  341. package/dist/types/core/time/resolve.d.ts +83 -0
  342. package/dist/types/core/time/resolve.d.ts.map +1 -0
  343. package/dist/types/core/time/resolveRecord.d.ts +161 -0
  344. package/dist/types/core/time/resolveRecord.d.ts.map +1 -0
  345. package/dist/types/core/time/rows.d.ts +211 -0
  346. package/dist/types/core/time/rows.d.ts.map +1 -0
  347. package/dist/types/core/time/rowsBuild.d.ts +77 -0
  348. package/dist/types/core/time/rowsBuild.d.ts.map +1 -0
  349. package/dist/types/core/time/wire.d.ts +64 -0
  350. package/dist/types/core/time/wire.d.ts.map +1 -0
  351. package/dist/types/core/time/zone.d.ts +116 -0
  352. package/dist/types/core/time/zone.d.ts.map +1 -0
  353. package/dist/types/core/tools.d.ts +26 -4
  354. package/dist/types/core/tools.d.ts.map +1 -1
  355. package/dist/types/events/payloads.d.ts +2 -2
  356. package/dist/types/events/payloads.d.ts.map +1 -1
  357. package/dist/types/index.d.ts +11 -1
  358. package/dist/types/index.d.ts.map +1 -1
  359. package/dist/types/lib/mcp/elicitation.d.ts +85 -0
  360. package/dist/types/lib/mcp/elicitation.d.ts.map +1 -0
  361. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  362. package/dist/types/lib/mcp/mockMcpClient.d.ts +9 -1
  363. package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -1
  364. package/dist/types/lib/mcp/toolExtras.d.ts +21 -2
  365. package/dist/types/lib/mcp/toolExtras.d.ts.map +1 -1
  366. package/dist/types/lib/mcp/types.d.ts +8 -0
  367. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  368. package/dist/types/locales/index.d.ts +6 -0
  369. package/dist/types/locales/index.d.ts.map +1 -1
  370. package/dist/types/locales/timeAsk.d.ts +30 -0
  371. package/dist/types/locales/timeAsk.d.ts.map +1 -0
  372. package/package.json +1 -1
  373. package/dist/artifacts/timeAxis.js +0 -218
  374. package/dist/artifacts/timeAxis.js.map +0 -1
  375. package/dist/esm/artifacts/timeAxis.d.ts +0 -114
  376. package/dist/esm/artifacts/timeAxis.js +0 -212
  377. package/dist/esm/artifacts/timeAxis.js.map +0 -1
  378. package/dist/types/artifacts/timeAxis.d.ts +0 -115
  379. package/dist/types/artifacts/timeAxis.d.ts.map +0 -1
package/CAPABILITIES.md CHANGED
@@ -51,7 +51,14 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
51
51
  | naming your own branches and nodes — which prefix is reserved, and telling framework plumbing from consumer structure in a trace | `RESERVED_SUBFLOW_PREFIX` + `isReservedSubflowSegment` | `src/conventions.ts` | 9.49.0 |
52
52
  | keeping a large tool result out of the model's context | `artifacts` (bare store, or `{ store, placement: { maxInlineChars }, recordings }` — `placement` omitted ⇒ never placed; `recordings: true` / `{ label }`, default off) + `wants` + `placement` | `src/artifacts/` | 9.21.0 |
53
53
  | the ticket placement just minted being REFUSED by your own `wants` argument as a kind mismatch — because the mint says `tool-result/<toolName>` and your consumer says `dataset/rows` | `Tool.resultKind` + `placedResultKind(toolName, declared?)` (the mint speaks the consumer's vocabulary; the exact-match matcher is untouched) | `src/artifacts/placement.ts` | 9.70.0 |
54
- | a viewer guessing which column of a dataset is time (epoch seconds under `ts`, wall-clock strings, a `bucket` column) and opening a series as a table | `timeAxis` on `PutArtifactInput` / `ArtifactMeta` (column · `'iso'`/`'epoch-s'`/`'epoch-ms'` · zone · interval · aggregate) + `readTimeAxis` + `describeTimeAxis` + `timeAxisIssues` (judged at mint, never repaired) | `src/artifacts/timeAxis.ts` | 9.128.0 |
54
+ | a viewer guessing which column of a dataset is time (epoch seconds under `ts`, wall-clock strings, a `bucket` column) and opening a series as a table | `timeAxis` on `PutArtifactInput` / `ArtifactMeta` (column · `'iso'`/`'epoch-s'`/`'epoch-ms'` · zone · interval · aggregate) + `readTimeAxis` + `describeTimeAxis` + `timeAxisIssues` (judged at mint, never repaired) | `src/core/time/axis.ts` | 9.128.0 |
55
+ | a chart or check comparing a dataset's time values as spellings — epoch seconds beside ISO strings, `+02:00` beside `Z`, a wall-clock string with no offset silently read as UTC, two `01:30` rows in the hour the clocks go back; a READ-SIDE view (the stored rows are never rewritten): UTC instants at one precision, sorted, each with its row; an offset-less value under a zone-less axis is counted (`status: 'naive-values'`) or refused (`naive: 'refuse'`), never read as UTC; a fall-back wall time placed by row order and noted, else counted `dstAmbiguous`; a skipped one `dstGap` (the axis is re-exported from `src/artifacts/`) | `normaliseInstants` + `NormalisedAxis` | `src/core/time/axis.ts` | 9.129.0 |
56
+ | a second parser for an instant, a look-back like `30m`/`24h`, a time zone or a `from..to` range inside the library — three separately written grammars used to disagree (an `iso-range` argument took 30 February, a declared period took a lower-case `t`); ONE owner now, with two named instant profiles (`lenient` for a period a result declares, `strict` for a value sent to a tool), a duration grammar with the unit set named per use (look-back `mhdw`, no digit cap; `s` only by opt-in), IANA zones through `Intl` with abbreviations and bare offsets refused, Temporal's four DST words, and one conversion per boundary a half-open range crosses; internal until the run clock ships | `instantOf` + `durationMs` / `spellDuration` + `isZoneName` / `wallToInstant` + `parseRange` / `spellRange` + `fromInclusive` / `toInclusive` | `src/core/time/` | 9.129.0 |
57
+ | a run that reads "now" and the person's time zone from the SERVER — "since 8" answered in the host's zone, a default nobody chose, a resume half an hour later silently re-anchoring the question — the clock as a declared, recorded input: the zone per run (`run({ time: { zone } })`), `.time({ zone })` an optional fallback, a run with neither REFUSED before the turn starts; `now` the app's (the message's time) else the turn's start, recorded `nowSource: 'default'`; one `clock` row per turn on the ledger (with a UI-set `time.window`, `source: 'control'`), one `call` row per dispatched call with `dispatchedAt`, a resume's differing `time` kept out and recorded as `clock-on-resume`; the limits block's `Period:` lines rendered in the run's zone with the zone named (`2026-10-09 08:00–08:40 America/Los_Angeles (UTC-07:00)`) while the typed record keeps the instants; nothing served to the model | `AgentBuilder.time()` + `AgentInput.time` / `AgentRunOptions.time` (`RunTime`) + `TimeClock` + `ClockRow` / `ClockOnResumeRow` / `CallRow` | `src/core/time/clock.ts` | 9.129.0 |
58
+ | an app's date parser silently choosing MDY, reading `8:40` as morning, guessing a year, taking `PST` as a zone, or re-reading a message differently on a resume — the person's words read ONLY through a reader the app arms (`.time({ reader })`, no default), which returns zone-less PARTS and a verbatim quote (checked: an out-of-text quote is refused and keeps no text); the library resolves every candidate window against the run clock (three date orders, am and pm, both instants of a DST overlap or gap, a day word, a look-back, a range read to the end of its grain; an abbreviation is asked, never mapped); a v1 policy (`dateOrder`, `year`, both `'ask'` by default) removes readings and the removal is recorded; one `time-reading` row per mention (or one `mentions: 0` row), once per message — only a message a person wrote, never a composed run's — with the reader's id, version, kind and locale and the tz database version; a resume or retry reads the row, never the reader; a `kind: 'model'` reader's window is never `said` and waits for the person's confirmation; nothing served to the model | `TimeReader` + `TimeParts` + `TimePolicy` + `TimeCandidate` / `ReadingChoice` + `TimeReadingRow` (`.time({ reader, policy })`) | `src/core/time/resolve.ts` | 9.129.0 |
59
+ | every app re-checking a time answer the person typed into an ask — a window written backwards, a date-time with no offset, `PST` for a zone, a wall time the clocks skip — and re-asking in silence; a `requestInput` field declares a `format` — `'instant'`, `'time-range'` or `'zone'` — (refused unless `type: 'string'`; a malformed choice or supplied value refused at definition) and the resume door judges the answer with the time layer's one judge: a refused one is NOT taken — the same ask returns with `refused: { answer, reason }` and `repeat: { count }`, the field missing again, nothing run; the reason is a catalog sentence the app can reword (`.time({ messages })`), and only a check the app armed produces one (the DST check needs `.time()`'s zone); `labels` per choice, free entry open unless `strict`; over MCP a range travels as two `date-time` elicitation properties | `InputField.format` / `labels` / `strict` + `defaultTimeAskMessages` + `elicitationOf` / `answerFromElicitation` | `src/core/time/ask.ts` | 9.129.0 |
60
+ | a tool whose period is two epoch-millisecond arguments (or a joined range, a date, a look-back in seconds) being sent the person's window in the wrong shape, rounded silently, or overwritten — and every host tool re-parsing its own argument to say what its read covered; the tool DECLARES every shape its period takes (`forms`: `bounds` · `joined` · `object` · `day` · `lookback` with `units`; today's `{ argument, spelling }` is shorthand, plus `accepts`, `wall-range` + `zoneArgument`) and facts about its source (`direction`, `retention`, `maxRange`, `granularity`, `filtersToAsked`, `wallZone`), judged at definition, dispatch and MCP ingest (`_meta.agentfootprint.period`); under `.time()` a period the model left out is filled from the turn's ONE window of the person's (a settled reading, or a UI `time.window`) into the first form that holds it exactly, filed as theirs (`said` + `matched: 'mention'`; a model reader's as a reading; a UI window as `app`); two mentions fill nothing; a sent window is bound by quote or value, or runs as sent and is recorded `model-chosen` (standing "not sure"); one `call-window` row per call; the tool is handed `ctx.time` (`asked`, `zone`, `now`, `dispatchedAt`; over MCP in the call's `_meta.agentfootprint.time`); the tool's facts join the time answer's re-check | `ToolPeriod.forms` / `PeriodForm` / `PeriodFacts` + `ToolExecutionContext.time` (`TimeContext`) + `CallWindowRow` | `src/core/time/convert.ts` | 9.129.0 |
61
+ | a tool whose period cannot hold the person's window exactly being sent a narrower window, a silently wider one, or a window its source cannot hold — a look-back tool asked for "yesterday", a `day` tool asked for two days, a log store asked for tomorrow, a look-back re-read half an hour later after a pause; under `.time()` the fill takes the first exact form, else the first that holds MORE (a whole day; the covering look-back from now, never over `maxRange`) and records it (`call-window` `sent` + `differs.extra`, or `trimmedByTool` under `filtersToAsked`; the note says wider); a window outside `direction`, wholly beyond `retention`, over `maxRange`, spanning days for a `day`-only tool, or a sent wall time the zone skips is REFUSED before dispatch with a past-tense reason naming the declared fact (`how: 'refused'`); a window partly beyond `retention` runs, marked; after drift past the tool's step the library's own look-back fill is redrawn into an absolute form and the model's runs as sent (`call` row `drift`: `redrawn` or `shifted`) | `PeriodFacts` + `convertWidened` + `driftAtDispatch` + `CallWindowRow` + `CallRow.drift` | `src/core/time/` | 9.129.0 |
55
62
  | letting the UI draw an artifact without the model naming a component | `registerArtifactComponent` (in the `agentfootprint-lens` package) | — | — |
56
63
  | finding which tools the model keeps writing by hand | `agentfootprint.tools.code_run` + `codeShape` | `src/core/codeRunnerTool.ts` | 9.46.0 |
57
64
  | a skill wrongly activated by a keyword staying loaded for the whole turn — suspending/parking a map's prompt + tools when its contribution goes unused, WITHOUT touching its cursor, and re-engaging it on evidence | `.maps({ renewalGrace })` (default 3) + `MountedMap.nonParkable` + `advanceEngagement` + `agentfootprint.map.engaged/parked` + skip reason `'parked'` | `src/maps/` | 9.58.0 |
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stageDatasetArtifacts = exports.withDatasetArtifacts = void 0;
4
4
  const types_js_1 = require("./types.js");
5
- const timeAxis_js_1 = require("./timeAxis.js");
5
+ const axis_js_1 = require("../core/time/axis.js");
6
6
  const projection_js_1 = require("../lib/semantics/projection.js");
7
7
  /**
8
8
  * Adapt any local, HTTP-backed or MCP Tool using the SAME already-bound execution capability.
@@ -109,7 +109,7 @@ function assertInputs(datasets) {
109
109
  // store would come back as a 'store-unavailable' receipt, which is a
110
110
  // different fact from "the producer declared something unreadable".
111
111
  if (input.timeAxis !== undefined) {
112
- const issues = (0, timeAxis_js_1.timeAxisIssues)(input.timeAxis);
112
+ const issues = (0, axis_js_1.timeAxisIssues)(input.timeAxis);
113
113
  if (issues.length > 0) {
114
114
  throw new types_js_1.InvalidArtifactError(`Dataset '${entry.key}': ${issues.join(' ')}`);
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datasetResult.js","sourceRoot":"","sources":["../../src/artifacts/datasetResult.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasetResult.js","sourceRoot":"","sources":["../../src/artifacts/datasetResult.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  * this folder for the one-job map and the import direction.
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.TIME_AXIS_UNITS = exports.TIME_AXIS_AGGREGATES = exports.timeAxisIssues = exports.readTimeAxis = exports.describeTimeAxis = exports.stageDatasetArtifacts = exports.withDatasetArtifacts = exports.placedToolResult = exports.placedResultKind = exports.isPlacedToolResult = exports.assertArtifactPlacement = exports.runArtifactStoreConformance = exports.runArtifactStoreCase = exports.formatArtifactStoreReport = exports.artifactStoreConformance = exports.UnserializableRecordingError = exports.chartWalkPutInput = exports.CHART_WALK_ARTIFACT_KIND = exports.RECORDING_MEDIA_TYPE = exports.RECORDING_ARTIFACT_KIND = exports.recordingPutInput = exports.presentArtifact = exports.PRESENT_TOOL_NAME = exports.wantsNeedsStoreRefusal = exports.resolveToolWants = exports.assertToolWants = exports.unconfiguredArtifacts = exports.bindArtifacts = exports.collectStream = exports.canStreamArtifacts = exports.canPutArtifactStream = exports.canGetArtifactStream = exports.bytesAsStream = exports.assertStreamBytes = exports.gcsArtifacts = exports.s3Artifacts = exports.UnreadableArtifactStoreError = exports.sqliteArtifacts = exports.UnreadableArtifactFileError = exports.fileArtifacts = exports.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION = exports.inMemoryArtifacts = exports.mintArtifactRef = exports.isArtifactRef = exports.ARTIFACT_REF_PREFIX = exports.UnknownParentRefError = exports.InvalidArtifactError = exports.ArtifactIntegrityError = void 0;
14
+ exports.TIME_AXIS_UNITS = exports.TIME_AXIS_AGGREGATES = exports.timeAxisIssues = exports.readTimeAxis = exports.normaliseInstants = exports.describeTimeAxis = exports.stageDatasetArtifacts = exports.withDatasetArtifacts = exports.placedToolResult = exports.placedResultKind = exports.isPlacedToolResult = exports.assertArtifactPlacement = exports.runArtifactStoreConformance = exports.runArtifactStoreCase = exports.formatArtifactStoreReport = exports.artifactStoreConformance = exports.UnserializableRecordingError = exports.chartWalkPutInput = exports.CHART_WALK_ARTIFACT_KIND = exports.RECORDING_MEDIA_TYPE = exports.RECORDING_ARTIFACT_KIND = exports.recordingPutInput = exports.presentArtifact = exports.PRESENT_TOOL_NAME = exports.wantsNeedsStoreRefusal = exports.resolveToolWants = exports.assertToolWants = exports.unconfiguredArtifacts = exports.bindArtifacts = exports.collectStream = exports.canStreamArtifacts = exports.canPutArtifactStream = exports.canGetArtifactStream = exports.bytesAsStream = exports.assertStreamBytes = exports.gcsArtifacts = exports.s3Artifacts = exports.UnreadableArtifactStoreError = exports.sqliteArtifacts = exports.UnreadableArtifactFileError = exports.fileArtifacts = exports.DEFAULT_IN_MEMORY_ARTIFACT_RETENTION = exports.inMemoryArtifacts = exports.mintArtifactRef = exports.isArtifactRef = exports.ARTIFACT_REF_PREFIX = exports.UnknownParentRefError = exports.InvalidArtifactError = exports.ArtifactIntegrityError = void 0;
15
15
  var types_js_1 = require("./types.js");
16
16
  Object.defineProperty(exports, "ArtifactIntegrityError", { enumerable: true, get: function () { return types_js_1.ArtifactIntegrityError; } });
17
17
  Object.defineProperty(exports, "InvalidArtifactError", { enumerable: true, get: function () { return types_js_1.InvalidArtifactError; } });
@@ -74,11 +74,13 @@ Object.defineProperty(exports, "placedToolResult", { enumerable: true, get: func
74
74
  var datasetResult_js_1 = require("./datasetResult.js");
75
75
  Object.defineProperty(exports, "withDatasetArtifacts", { enumerable: true, get: function () { return datasetResult_js_1.withDatasetArtifacts; } });
76
76
  Object.defineProperty(exports, "stageDatasetArtifacts", { enumerable: true, get: function () { return datasetResult_js_1.stageDatasetArtifacts; } });
77
- // A dataset's declared TIME AXIS — judged at mint, read by consumers.
78
- var timeAxis_js_1 = require("./timeAxis.js");
79
- Object.defineProperty(exports, "describeTimeAxis", { enumerable: true, get: function () { return timeAxis_js_1.describeTimeAxis; } });
80
- Object.defineProperty(exports, "readTimeAxis", { enumerable: true, get: function () { return timeAxis_js_1.readTimeAxis; } });
81
- Object.defineProperty(exports, "timeAxisIssues", { enumerable: true, get: function () { return timeAxis_js_1.timeAxisIssues; } });
82
- Object.defineProperty(exports, "TIME_AXIS_AGGREGATES", { enumerable: true, get: function () { return timeAxis_js_1.TIME_AXIS_AGGREGATES; } });
83
- Object.defineProperty(exports, "TIME_AXIS_UNITS", { enumerable: true, get: function () { return timeAxis_js_1.TIME_AXIS_UNITS; } });
77
+ // A dataset's declared TIME AXIS — judged at mint, read by consumers. Owned by
78
+ // the time layer (`core/time/axis.ts`); re-exported here, where datasets live.
79
+ var axis_js_1 = require("../core/time/axis.js");
80
+ Object.defineProperty(exports, "describeTimeAxis", { enumerable: true, get: function () { return axis_js_1.describeTimeAxis; } });
81
+ Object.defineProperty(exports, "normaliseInstants", { enumerable: true, get: function () { return axis_js_1.normaliseInstants; } });
82
+ Object.defineProperty(exports, "readTimeAxis", { enumerable: true, get: function () { return axis_js_1.readTimeAxis; } });
83
+ Object.defineProperty(exports, "timeAxisIssues", { enumerable: true, get: function () { return axis_js_1.timeAxisIssues; } });
84
+ Object.defineProperty(exports, "TIME_AXIS_AGGREGATES", { enumerable: true, get: function () { return axis_js_1.TIME_AXIS_AGGREGATES; } });
85
+ Object.defineProperty(exports, "TIME_AXIS_UNITS", { enumerable: true, get: function () { return axis_js_1.TIME_AXIS_UNITS; } });
84
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,uCAkBoB;AAjBlB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AAgBvB,yCAAkF;AAAzE,gHAAA,mBAAmB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAE5D,+DAKgC;AAJ9B,yHAAA,iBAAiB,OAAA;AACjB,4IAAA,oCAAoC,OAAA;AAItC,uDAI4B;AAH1B,iHAAA,aAAa,OAAA;AACb,+HAAA,2BAA2B,OAAA;AAG7B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,kIAAA,4BAA4B,OAAA;AAI9B,mDAAwE;AAA/D,6GAAA,WAAW,OAAA;AACpB,qDAA2E;AAAlE,+GAAA,YAAY,OAAA;AACrB,+CAUwB;AATtB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AAKf,iDAUyB;AATvB,8GAAA,aAAa,OAAA;AACb,sHAAA,qBAAqB,OAAA;AASvB,uCAOoB;AANlB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AAKxB,2CAMsB;AALpB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAKjB,+DASgC;AAR9B,yHAAA,iBAAiB,OAAA;AACjB,+HAAA,uBAAuB,OAAA;AACvB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,oIAAA,4BAA4B,OAAA;AAI9B,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,mCAAmC;AACnC,mDAagC;AAZ9B,oHAAA,wBAAwB,OAAA;AACxB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,uHAAA,2BAA2B,OAAA;AAU7B,+CAOwB;AANtB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA;AAClB,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAIlB,uDAQ4B;AAP1B,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AAOvB,sEAAsE;AACtE,6CAUuB;AATrB,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AACZ,6GAAA,cAAc,OAAA;AACd,mHAAA,oBAAoB,OAAA;AACpB,8GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,uCAkBoB;AAjBlB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AAgBvB,yCAAkF;AAAzE,gHAAA,mBAAmB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAE5D,+DAKgC;AAJ9B,yHAAA,iBAAiB,OAAA;AACjB,4IAAA,oCAAoC,OAAA;AAItC,uDAI4B;AAH1B,iHAAA,aAAa,OAAA;AACb,+HAAA,2BAA2B,OAAA;AAG7B,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,kIAAA,4BAA4B,OAAA;AAI9B,mDAAwE;AAA/D,6GAAA,WAAW,OAAA;AACpB,qDAA2E;AAAlE,+GAAA,YAAY,OAAA;AACrB,+CAUwB;AATtB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AAKf,iDAUyB;AATvB,8GAAA,aAAa,OAAA;AACb,sHAAA,qBAAqB,OAAA;AASvB,uCAOoB;AANlB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AAKxB,2CAMsB;AALpB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AAKjB,+DASgC;AAR9B,yHAAA,iBAAiB,OAAA;AACjB,+HAAA,uBAAuB,OAAA;AACvB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,oIAAA,4BAA4B,OAAA;AAI9B,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,mCAAmC;AACnC,mDAagC;AAZ9B,oHAAA,wBAAwB,OAAA;AACxB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,uHAAA,2BAA2B,OAAA;AAU7B,+CAOwB;AANtB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA;AAClB,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAIlB,uDAQ4B;AAP1B,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AAOvB,+EAA+E;AAC/E,+EAA+E;AAC/E,gDAkB8B;AAjB5B,2GAAA,gBAAgB,OAAA;AAChB,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,yGAAA,cAAc,OAAA;AACd,+GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAA"}
@@ -15,7 +15,7 @@ exports.prepareArtifact = void 0;
15
15
  const naming_js_1 = require("./naming.js");
16
16
  const payload_js_1 = require("./payload.js");
17
17
  const retention_js_1 = require("./retention.js");
18
- const timeAxis_js_1 = require("./timeAxis.js");
18
+ const axis_js_1 = require("../core/time/axis.js");
19
19
  const types_js_1 = require("./types.js");
20
20
  /**
21
21
  * Validate a put and build the meta it mints.
@@ -49,7 +49,7 @@ async function prepareArtifact(input, resolveParent, retention, now) {
49
49
  // A declared time axis is judged, never repaired: a ticket whose
50
50
  // description the store had "fixed" would carry a promise nobody made.
51
51
  if (input.timeAxis !== undefined) {
52
- const issues = (0, timeAxis_js_1.timeAxisIssues)(input.timeAxis);
52
+ const issues = (0, axis_js_1.timeAxisIssues)(input.timeAxis);
53
53
  if (issues.length > 0)
54
54
  throw new types_js_1.InvalidArtifactError(issues.join(' '));
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"minting.js","sourceRoot":"","sources":["../../src/artifacts/minting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minting.js","sourceRoot":"","sources":["../../src/artifacts/minting.ts"],"names":[],"mappings":"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"}
@@ -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