agentfootprint 9.129.0 → 9.131.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CAPABILITIES.md +5 -0
  2. package/dist/adapters/llm/AnthropicProvider.js +10 -111
  3. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  4. package/dist/adapters/llm/BedrockProvider.js +11 -4
  5. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  6. package/dist/adapters/llm/InvokeModelGatewayProvider.js +167 -35
  7. package/dist/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  8. package/dist/adapters/llm/OpenAIProvider.js +5 -0
  9. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  10. package/dist/adapters/llm/anthropicMessagesWire.js +20 -6
  11. package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
  12. package/dist/adapters/llm/retryAfter.js +61 -0
  13. package/dist/adapters/llm/retryAfter.js.map +1 -0
  14. package/dist/adapters/types.js.map +1 -1
  15. package/dist/core/Agent.js +30 -0
  16. package/dist/core/Agent.js.map +1 -1
  17. package/dist/core/agent/arguments/ask.js +297 -11
  18. package/dist/core/agent/arguments/ask.js.map +1 -1
  19. package/dist/core/agent/arguments/dispatch.js +15 -1
  20. package/dist/core/agent/arguments/dispatch.js.map +1 -1
  21. package/dist/core/agent/arguments/resolve.js +26 -5
  22. package/dist/core/agent/arguments/resolve.js.map +1 -1
  23. package/dist/core/agent/arguments/rows.js +10 -5
  24. package/dist/core/agent/arguments/rows.js.map +1 -1
  25. package/dist/core/agent/arguments/serve.js +248 -5
  26. package/dist/core/agent/arguments/serve.js.map +1 -1
  27. package/dist/core/agent/arguments/subflow.js +7 -3
  28. package/dist/core/agent/arguments/subflow.js.map +1 -1
  29. package/dist/core/agent/assessment/assess.js +45 -6
  30. package/dist/core/agent/assessment/assess.js.map +1 -1
  31. package/dist/core/agent/assessment/compose.js +3 -0
  32. package/dist/core/agent/assessment/compose.js.map +1 -1
  33. package/dist/core/agent/assessment/reasons.js +18 -0
  34. package/dist/core/agent/assessment/reasons.js.map +1 -1
  35. package/dist/core/agent/buildAgentChart.js +31 -1
  36. package/dist/core/agent/buildAgentChart.js.map +1 -1
  37. package/dist/core/agent/buildDynamicAgentChart.js +9 -0
  38. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  39. package/dist/core/agent/coverage/answer.js +19 -7
  40. package/dist/core/agent/coverage/answer.js.map +1 -1
  41. package/dist/core/agent/coverage/period.js +67 -2
  42. package/dist/core/agent/coverage/period.js.map +1 -1
  43. package/dist/core/agent/coverage/timeLimitFacts.js +70 -0
  44. package/dist/core/agent/coverage/timeLimitFacts.js.map +1 -0
  45. package/dist/core/agent/coverage/timeLimits.js +72 -0
  46. package/dist/core/agent/coverage/timeLimits.js.map +1 -0
  47. package/dist/core/agent/evidence/evidenceIndex.js +48 -7
  48. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  49. package/dist/core/agent/evidence/gate.js +9 -4
  50. package/dist/core/agent/evidence/gate.js.map +1 -1
  51. package/dist/core/agent/evidence/normalize.js +1 -105
  52. package/dist/core/agent/evidence/normalize.js.map +1 -1
  53. package/dist/core/agent/findings/ledger.js +8 -0
  54. package/dist/core/agent/findings/ledger.js.map +1 -1
  55. package/dist/core/agent/findings/types.js.map +1 -1
  56. package/dist/core/agent/honesty/mounts.js +79 -2
  57. package/dist/core/agent/honesty/mounts.js.map +1 -1
  58. package/dist/core/agent/results/subflow.js +43 -11
  59. package/dist/core/agent/results/subflow.js.map +1 -1
  60. package/dist/core/agent/stages/argumentAsk.js +75 -3
  61. package/dist/core/agent/stages/argumentAsk.js.map +1 -1
  62. package/dist/core/agent/stages/callLLM.js +16 -0
  63. package/dist/core/agent/stages/callLLM.js.map +1 -1
  64. package/dist/core/agent/stages/prepareFinal.js +28 -9
  65. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  66. package/dist/core/agent/stages/route.js +64 -6
  67. package/dist/core/agent/stages/route.js.map +1 -1
  68. package/dist/core/agent/stages/timeLineage.js +61 -0
  69. package/dist/core/agent/stages/timeLineage.js.map +1 -0
  70. package/dist/core/agent/stages/toolCalls.js +32 -1
  71. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  72. package/dist/core/runCheckpoint.js +2 -1
  73. package/dist/core/runCheckpoint.js.map +1 -1
  74. package/dist/core/slots/buildToolsSlot.js +30 -2
  75. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  76. package/dist/core/time/ask.js +8 -3
  77. package/dist/core/time/ask.js.map +1 -1
  78. package/dist/core/time/bind.js +25 -55
  79. package/dist/core/time/bind.js.map +1 -1
  80. package/dist/core/time/check.js +261 -0
  81. package/dist/core/time/check.js.map +1 -0
  82. package/dist/core/time/checkRecord.js +97 -0
  83. package/dist/core/time/checkRecord.js.map +1 -0
  84. package/dist/core/time/convert.js +2 -12
  85. package/dist/core/time/convert.js.map +1 -1
  86. package/dist/core/time/drift.js +17 -10
  87. package/dist/core/time/drift.js.map +1 -1
  88. package/dist/core/time/forms.js +273 -0
  89. package/dist/core/time/forms.js.map +1 -0
  90. package/dist/core/time/present.js +2 -1
  91. package/dist/core/time/present.js.map +1 -1
  92. package/dist/core/time/range.js +12 -1
  93. package/dist/core/time/range.js.map +1 -1
  94. package/dist/core/time/reader.js +6 -2
  95. package/dist/core/time/reader.js.map +1 -1
  96. package/dist/core/time/readers/english.js +576 -0
  97. package/dist/core/time/readers/english.js.map +1 -0
  98. package/dist/core/time/readingAsk.js +8 -4
  99. package/dist/core/time/readingAsk.js.map +1 -1
  100. package/dist/core/time/resolve.js +43 -12
  101. package/dist/core/time/resolve.js.map +1 -1
  102. package/dist/core/time/rows.js +123 -6
  103. package/dist/core/time/rows.js.map +1 -1
  104. package/dist/core/time/rowsBuild.js +10 -4
  105. package/dist/core/time/rowsBuild.js.map +1 -1
  106. package/dist/core/time/textForms.js +133 -0
  107. package/dist/core/time/textForms.js.map +1 -0
  108. package/dist/core/time/windows.js +172 -0
  109. package/dist/core/time/windows.js.map +1 -0
  110. package/dist/esm/adapters/llm/AnthropicProvider.js +8 -109
  111. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  112. package/dist/esm/adapters/llm/BedrockProvider.js +11 -4
  113. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  114. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
  115. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js +167 -35
  116. package/dist/esm/adapters/llm/InvokeModelGatewayProvider.js.map +1 -1
  117. package/dist/esm/adapters/llm/OpenAIProvider.js +5 -0
  118. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  119. package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +6 -1
  120. package/dist/esm/adapters/llm/anthropicMessagesWire.js +20 -6
  121. package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
  122. package/dist/esm/adapters/llm/retryAfter.d.ts +27 -0
  123. package/dist/esm/adapters/llm/retryAfter.js +56 -0
  124. package/dist/esm/adapters/llm/retryAfter.js.map +1 -0
  125. package/dist/esm/adapters/types.d.ts +9 -0
  126. package/dist/esm/adapters/types.js.map +1 -1
  127. package/dist/esm/core/Agent.js +30 -0
  128. package/dist/esm/core/Agent.js.map +1 -1
  129. package/dist/esm/core/agent/arguments/ask.d.ts +72 -3
  130. package/dist/esm/core/agent/arguments/ask.js +291 -5
  131. package/dist/esm/core/agent/arguments/ask.js.map +1 -1
  132. package/dist/esm/core/agent/arguments/dispatch.js +15 -1
  133. package/dist/esm/core/agent/arguments/dispatch.js.map +1 -1
  134. package/dist/esm/core/agent/arguments/resolve.d.ts +18 -1
  135. package/dist/esm/core/agent/arguments/resolve.js +26 -5
  136. package/dist/esm/core/agent/arguments/resolve.js.map +1 -1
  137. package/dist/esm/core/agent/arguments/rows.d.ts +8 -6
  138. package/dist/esm/core/agent/arguments/rows.js +10 -5
  139. package/dist/esm/core/agent/arguments/rows.js.map +1 -1
  140. package/dist/esm/core/agent/arguments/serve.d.ts +104 -4
  141. package/dist/esm/core/agent/arguments/serve.js +245 -5
  142. package/dist/esm/core/agent/arguments/serve.js.map +1 -1
  143. package/dist/esm/core/agent/arguments/subflow.d.ts +5 -2
  144. package/dist/esm/core/agent/arguments/subflow.js +7 -3
  145. package/dist/esm/core/agent/arguments/subflow.js.map +1 -1
  146. package/dist/esm/core/agent/assessment/assess.js +45 -6
  147. package/dist/esm/core/agent/assessment/assess.js.map +1 -1
  148. package/dist/esm/core/agent/assessment/compose.js +3 -0
  149. package/dist/esm/core/agent/assessment/compose.js.map +1 -1
  150. package/dist/esm/core/agent/assessment/reasons.js +18 -0
  151. package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
  152. package/dist/esm/core/agent/assessment/types.d.ts +15 -1
  153. package/dist/esm/core/agent/buildAgentChart.d.ts +34 -0
  154. package/dist/esm/core/agent/buildAgentChart.js +28 -0
  155. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  156. package/dist/esm/core/agent/buildDynamicAgentChart.d.ts +1 -1
  157. package/dist/esm/core/agent/buildDynamicAgentChart.js +9 -0
  158. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  159. package/dist/esm/core/agent/coverage/answer.d.ts +14 -1
  160. package/dist/esm/core/agent/coverage/answer.js +18 -6
  161. package/dist/esm/core/agent/coverage/answer.js.map +1 -1
  162. package/dist/esm/core/agent/coverage/period.d.ts +41 -0
  163. package/dist/esm/core/agent/coverage/period.js +64 -1
  164. package/dist/esm/core/agent/coverage/period.js.map +1 -1
  165. package/dist/esm/core/agent/coverage/timeLimitFacts.d.ts +56 -0
  166. package/dist/esm/core/agent/coverage/timeLimitFacts.js +65 -0
  167. package/dist/esm/core/agent/coverage/timeLimitFacts.js.map +1 -0
  168. package/dist/esm/core/agent/coverage/timeLimits.d.ts +46 -0
  169. package/dist/esm/core/agent/coverage/timeLimits.js +67 -0
  170. package/dist/esm/core/agent/coverage/timeLimits.js.map +1 -0
  171. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +25 -2
  172. package/dist/esm/core/agent/evidence/evidenceIndex.js +47 -7
  173. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  174. package/dist/esm/core/agent/evidence/gate.d.ts +7 -0
  175. package/dist/esm/core/agent/evidence/gate.js +9 -4
  176. package/dist/esm/core/agent/evidence/gate.js.map +1 -1
  177. package/dist/esm/core/agent/evidence/normalize.d.ts +0 -34
  178. package/dist/esm/core/agent/evidence/normalize.js +0 -103
  179. package/dist/esm/core/agent/evidence/normalize.js.map +1 -1
  180. package/dist/esm/core/agent/evidence/types.d.ts +12 -1
  181. package/dist/esm/core/agent/findings/ledger.js +8 -0
  182. package/dist/esm/core/agent/findings/ledger.js.map +1 -1
  183. package/dist/esm/core/agent/findings/types.d.ts +2 -2
  184. package/dist/esm/core/agent/findings/types.js.map +1 -1
  185. package/dist/esm/core/agent/honesty/mounts.d.ts +13 -0
  186. package/dist/esm/core/agent/honesty/mounts.js +79 -3
  187. package/dist/esm/core/agent/honesty/mounts.js.map +1 -1
  188. package/dist/esm/core/agent/results/subflow.d.ts +34 -2
  189. package/dist/esm/core/agent/results/subflow.js +43 -11
  190. package/dist/esm/core/agent/results/subflow.js.map +1 -1
  191. package/dist/esm/core/agent/stages/argumentAsk.d.ts +10 -0
  192. package/dist/esm/core/agent/stages/argumentAsk.js +76 -4
  193. package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
  194. package/dist/esm/core/agent/stages/callLLM.d.ts +6 -0
  195. package/dist/esm/core/agent/stages/callLLM.js +16 -0
  196. package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
  197. package/dist/esm/core/agent/stages/prepareFinal.d.ts +3 -2
  198. package/dist/esm/core/agent/stages/prepareFinal.js +28 -9
  199. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  200. package/dist/esm/core/agent/stages/route.d.ts +29 -1
  201. package/dist/esm/core/agent/stages/route.js +64 -7
  202. package/dist/esm/core/agent/stages/route.js.map +1 -1
  203. package/dist/esm/core/agent/stages/timeLineage.d.ts +31 -0
  204. package/dist/esm/core/agent/stages/timeLineage.js +57 -0
  205. package/dist/esm/core/agent/stages/timeLineage.js.map +1 -0
  206. package/dist/esm/core/agent/stages/toolCalls.d.ts +11 -0
  207. package/dist/esm/core/agent/stages/toolCalls.js +32 -1
  208. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  209. package/dist/esm/core/agent/types.d.ts +12 -0
  210. package/dist/esm/core/runCheckpoint.js +2 -1
  211. package/dist/esm/core/runCheckpoint.js.map +1 -1
  212. package/dist/esm/core/slots/buildToolsSlot.d.ts +29 -0
  213. package/dist/esm/core/slots/buildToolsSlot.js +30 -2
  214. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  215. package/dist/esm/core/time/ask.d.ts +8 -3
  216. package/dist/esm/core/time/ask.js +8 -3
  217. package/dist/esm/core/time/ask.js.map +1 -1
  218. package/dist/esm/core/time/bind.d.ts +8 -33
  219. package/dist/esm/core/time/bind.js +21 -53
  220. package/dist/esm/core/time/bind.js.map +1 -1
  221. package/dist/esm/core/time/check.d.ts +113 -0
  222. package/dist/esm/core/time/check.js +252 -0
  223. package/dist/esm/core/time/check.js.map +1 -0
  224. package/dist/esm/core/time/checkRecord.d.ts +74 -0
  225. package/dist/esm/core/time/checkRecord.js +90 -0
  226. package/dist/esm/core/time/checkRecord.js.map +1 -0
  227. package/dist/esm/core/time/convert.d.ts +2 -3
  228. package/dist/esm/core/time/convert.js +5 -12
  229. package/dist/esm/core/time/convert.js.map +1 -1
  230. package/dist/esm/core/time/drift.d.ts +7 -0
  231. package/dist/esm/core/time/drift.js +15 -9
  232. package/dist/esm/core/time/drift.js.map +1 -1
  233. package/dist/esm/core/time/forms.d.ts +84 -0
  234. package/dist/esm/core/time/forms.js +268 -0
  235. package/dist/esm/core/time/forms.js.map +1 -0
  236. package/dist/esm/core/time/present.d.ts +5 -3
  237. package/dist/esm/core/time/present.js +2 -1
  238. package/dist/esm/core/time/present.js.map +1 -1
  239. package/dist/esm/core/time/range.d.ts +2 -0
  240. package/dist/esm/core/time/range.js +10 -0
  241. package/dist/esm/core/time/range.js.map +1 -1
  242. package/dist/esm/core/time/reader.d.ts +12 -3
  243. package/dist/esm/core/time/reader.js +6 -2
  244. package/dist/esm/core/time/reader.js.map +1 -1
  245. package/dist/esm/core/time/readers/english.d.ts +99 -0
  246. package/dist/esm/core/time/readers/english.js +572 -0
  247. package/dist/esm/core/time/readers/english.js.map +1 -0
  248. package/dist/esm/core/time/readingAsk.js +8 -4
  249. package/dist/esm/core/time/readingAsk.js.map +1 -1
  250. package/dist/esm/core/time/resolve.d.ts +27 -6
  251. package/dist/esm/core/time/resolve.js +41 -11
  252. package/dist/esm/core/time/resolve.js.map +1 -1
  253. package/dist/esm/core/time/rows.d.ts +91 -4
  254. package/dist/esm/core/time/rows.js +116 -5
  255. package/dist/esm/core/time/rows.js.map +1 -1
  256. package/dist/esm/core/time/rowsBuild.d.ts +8 -2
  257. package/dist/esm/core/time/rowsBuild.js +10 -4
  258. package/dist/esm/core/time/rowsBuild.js.map +1 -1
  259. package/dist/esm/core/time/textForms.d.ts +53 -0
  260. package/dist/esm/core/time/textForms.js +126 -0
  261. package/dist/esm/core/time/textForms.js.map +1 -0
  262. package/dist/esm/core/time/windows.d.ts +113 -0
  263. package/dist/esm/core/time/windows.js +166 -0
  264. package/dist/esm/core/time/windows.js.map +1 -0
  265. package/dist/esm/events/payloads.d.ts +14 -0
  266. package/dist/esm/index.d.ts +2 -0
  267. package/dist/esm/index.js +3 -0
  268. package/dist/esm/index.js.map +1 -1
  269. package/dist/esm/lib/answer-account/facts/howSure.js +7 -0
  270. package/dist/esm/lib/answer-account/facts/howSure.js.map +1 -1
  271. package/dist/esm/lib/answer-account/templates.d.ts +3 -0
  272. package/dist/esm/lib/answer-account/templates.js +4 -0
  273. package/dist/esm/lib/answer-account/templates.js.map +1 -1
  274. package/dist/esm/lib/time-travel/receipt.d.ts +1 -1
  275. package/dist/esm/lib/time-travel/servedView.d.ts +1 -1
  276. package/dist/esm/lib/time-travel/servedView.js +9 -0
  277. package/dist/esm/lib/time-travel/servedView.js.map +1 -1
  278. package/dist/esm/locales/timeAsk.d.ts +1 -1
  279. package/dist/esm/locales/timeAsk.js +2 -2
  280. package/dist/esm/locales/timeAsk.js.map +1 -1
  281. package/dist/esm/recorders/core/resilienceHooks.js +1 -0
  282. package/dist/esm/recorders/core/resilienceHooks.js.map +1 -1
  283. package/dist/esm/resilience/statedWait.d.ts +22 -0
  284. package/dist/esm/resilience/statedWait.js +35 -0
  285. package/dist/esm/resilience/statedWait.js.map +1 -0
  286. package/dist/esm/resilience/withRetry.d.ts +13 -2
  287. package/dist/esm/resilience/withRetry.js +16 -1
  288. package/dist/esm/resilience/withRetry.js.map +1 -1
  289. package/dist/index.js +5 -1
  290. package/dist/index.js.map +1 -1
  291. package/dist/lib/answer-account/facts/howSure.js +7 -0
  292. package/dist/lib/answer-account/facts/howSure.js.map +1 -1
  293. package/dist/lib/answer-account/templates.js +4 -0
  294. package/dist/lib/answer-account/templates.js.map +1 -1
  295. package/dist/lib/time-travel/servedView.js +9 -0
  296. package/dist/lib/time-travel/servedView.js.map +1 -1
  297. package/dist/locales/timeAsk.js +2 -2
  298. package/dist/locales/timeAsk.js.map +1 -1
  299. package/dist/recorders/core/resilienceHooks.js +1 -0
  300. package/dist/recorders/core/resilienceHooks.js.map +1 -1
  301. package/dist/resilience/statedWait.js +39 -0
  302. package/dist/resilience/statedWait.js.map +1 -0
  303. package/dist/resilience/withRetry.js +16 -1
  304. package/dist/resilience/withRetry.js.map +1 -1
  305. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  306. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  307. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts +38 -4
  308. package/dist/types/adapters/llm/InvokeModelGatewayProvider.d.ts.map +1 -1
  309. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  310. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +6 -1
  311. package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
  312. package/dist/types/adapters/llm/retryAfter.d.ts +28 -0
  313. package/dist/types/adapters/llm/retryAfter.d.ts.map +1 -0
  314. package/dist/types/adapters/types.d.ts +9 -0
  315. package/dist/types/adapters/types.d.ts.map +1 -1
  316. package/dist/types/core/Agent.d.ts.map +1 -1
  317. package/dist/types/core/agent/arguments/ask.d.ts +72 -3
  318. package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
  319. package/dist/types/core/agent/arguments/dispatch.d.ts.map +1 -1
  320. package/dist/types/core/agent/arguments/resolve.d.ts +18 -1
  321. package/dist/types/core/agent/arguments/resolve.d.ts.map +1 -1
  322. package/dist/types/core/agent/arguments/rows.d.ts +8 -6
  323. package/dist/types/core/agent/arguments/rows.d.ts.map +1 -1
  324. package/dist/types/core/agent/arguments/serve.d.ts +104 -4
  325. package/dist/types/core/agent/arguments/serve.d.ts.map +1 -1
  326. package/dist/types/core/agent/arguments/subflow.d.ts +5 -2
  327. package/dist/types/core/agent/arguments/subflow.d.ts.map +1 -1
  328. package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
  329. package/dist/types/core/agent/assessment/compose.d.ts.map +1 -1
  330. package/dist/types/core/agent/assessment/reasons.d.ts.map +1 -1
  331. package/dist/types/core/agent/assessment/types.d.ts +15 -1
  332. package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
  333. package/dist/types/core/agent/buildAgentChart.d.ts +34 -0
  334. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  335. package/dist/types/core/agent/buildDynamicAgentChart.d.ts +1 -1
  336. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  337. package/dist/types/core/agent/coverage/answer.d.ts +14 -1
  338. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -1
  339. package/dist/types/core/agent/coverage/period.d.ts +41 -0
  340. package/dist/types/core/agent/coverage/period.d.ts.map +1 -1
  341. package/dist/types/core/agent/coverage/timeLimitFacts.d.ts +57 -0
  342. package/dist/types/core/agent/coverage/timeLimitFacts.d.ts.map +1 -0
  343. package/dist/types/core/agent/coverage/timeLimits.d.ts +47 -0
  344. package/dist/types/core/agent/coverage/timeLimits.d.ts.map +1 -0
  345. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +25 -2
  346. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  347. package/dist/types/core/agent/evidence/gate.d.ts +7 -0
  348. package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
  349. package/dist/types/core/agent/evidence/normalize.d.ts +0 -34
  350. package/dist/types/core/agent/evidence/normalize.d.ts.map +1 -1
  351. package/dist/types/core/agent/evidence/types.d.ts +12 -1
  352. package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
  353. package/dist/types/core/agent/findings/ledger.d.ts.map +1 -1
  354. package/dist/types/core/agent/findings/types.d.ts +2 -2
  355. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  356. package/dist/types/core/agent/honesty/mounts.d.ts +13 -0
  357. package/dist/types/core/agent/honesty/mounts.d.ts.map +1 -1
  358. package/dist/types/core/agent/results/subflow.d.ts +34 -2
  359. package/dist/types/core/agent/results/subflow.d.ts.map +1 -1
  360. package/dist/types/core/agent/stages/argumentAsk.d.ts +10 -0
  361. package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
  362. package/dist/types/core/agent/stages/callLLM.d.ts +6 -0
  363. package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
  364. package/dist/types/core/agent/stages/prepareFinal.d.ts +3 -2
  365. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  366. package/dist/types/core/agent/stages/route.d.ts +29 -1
  367. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  368. package/dist/types/core/agent/stages/timeLineage.d.ts +32 -0
  369. package/dist/types/core/agent/stages/timeLineage.d.ts.map +1 -0
  370. package/dist/types/core/agent/stages/toolCalls.d.ts +11 -0
  371. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  372. package/dist/types/core/agent/types.d.ts +12 -0
  373. package/dist/types/core/agent/types.d.ts.map +1 -1
  374. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  375. package/dist/types/core/slots/buildToolsSlot.d.ts +29 -0
  376. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  377. package/dist/types/core/time/ask.d.ts +8 -3
  378. package/dist/types/core/time/ask.d.ts.map +1 -1
  379. package/dist/types/core/time/bind.d.ts +8 -33
  380. package/dist/types/core/time/bind.d.ts.map +1 -1
  381. package/dist/types/core/time/check.d.ts +114 -0
  382. package/dist/types/core/time/check.d.ts.map +1 -0
  383. package/dist/types/core/time/checkRecord.d.ts +75 -0
  384. package/dist/types/core/time/checkRecord.d.ts.map +1 -0
  385. package/dist/types/core/time/convert.d.ts +2 -3
  386. package/dist/types/core/time/convert.d.ts.map +1 -1
  387. package/dist/types/core/time/drift.d.ts +7 -0
  388. package/dist/types/core/time/drift.d.ts.map +1 -1
  389. package/dist/types/core/time/forms.d.ts +85 -0
  390. package/dist/types/core/time/forms.d.ts.map +1 -0
  391. package/dist/types/core/time/present.d.ts +5 -3
  392. package/dist/types/core/time/present.d.ts.map +1 -1
  393. package/dist/types/core/time/range.d.ts +2 -0
  394. package/dist/types/core/time/range.d.ts.map +1 -1
  395. package/dist/types/core/time/reader.d.ts +12 -3
  396. package/dist/types/core/time/reader.d.ts.map +1 -1
  397. package/dist/types/core/time/readers/english.d.ts +100 -0
  398. package/dist/types/core/time/readers/english.d.ts.map +1 -0
  399. package/dist/types/core/time/readingAsk.d.ts.map +1 -1
  400. package/dist/types/core/time/resolve.d.ts +27 -6
  401. package/dist/types/core/time/resolve.d.ts.map +1 -1
  402. package/dist/types/core/time/rows.d.ts +91 -4
  403. package/dist/types/core/time/rows.d.ts.map +1 -1
  404. package/dist/types/core/time/rowsBuild.d.ts +8 -2
  405. package/dist/types/core/time/rowsBuild.d.ts.map +1 -1
  406. package/dist/types/core/time/textForms.d.ts +54 -0
  407. package/dist/types/core/time/textForms.d.ts.map +1 -0
  408. package/dist/types/core/time/windows.d.ts +114 -0
  409. package/dist/types/core/time/windows.d.ts.map +1 -0
  410. package/dist/types/events/payloads.d.ts +14 -0
  411. package/dist/types/events/payloads.d.ts.map +1 -1
  412. package/dist/types/index.d.ts +2 -0
  413. package/dist/types/index.d.ts.map +1 -1
  414. package/dist/types/lib/answer-account/facts/howSure.d.ts.map +1 -1
  415. package/dist/types/lib/answer-account/templates.d.ts +3 -0
  416. package/dist/types/lib/answer-account/templates.d.ts.map +1 -1
  417. package/dist/types/lib/time-travel/receipt.d.ts +1 -1
  418. package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
  419. package/dist/types/lib/time-travel/servedView.d.ts +1 -1
  420. package/dist/types/lib/time-travel/servedView.d.ts.map +1 -1
  421. package/dist/types/locales/timeAsk.d.ts +1 -1
  422. package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -1
  423. package/dist/types/resilience/statedWait.d.ts +23 -0
  424. package/dist/types/resilience/statedWait.d.ts.map +1 -0
  425. package/dist/types/resilience/withRetry.d.ts +13 -2
  426. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  427. package/package.json +1 -1
@@ -0,0 +1,85 @@
1
+ /**
2
+ * core/time/forms — every spelling of a time the answer may write, split by
3
+ * WHO produced it (time design § 9.5, step T7).
4
+ *
5
+ * Pattern: a pure function over recorded values — the person's text, or one
6
+ * window the record holds — never over the answer. The evidence gate
7
+ * asks it (`evidence/evidenceIndex.ts` · `exemptFromRun`,
8
+ * `stages/timeLineage.ts` · `timeLineageOf`) and never keeps a time table of
9
+ * its own.
10
+ * Role: core/ leaf (the time layer). Imports `windows.ts`, `rows.ts`,
11
+ * `resolve.ts`, `textForms.ts` (the text rule, split out so the
12
+ * evidence gate's synchronous corpus never loads the resolver),
13
+ * `instant.ts` and `zone.ts` only. Loaded under `.time()` only,
14
+ * through `import()` (`stages/timeLineage.ts`).
15
+ * Emits: N/A.
16
+ *
17
+ * ## The two lists
18
+ *
19
+ * - **`said`** — spellings of the parts the PERSON said, at the grain they
20
+ * said them: "8 AM" said at grain hour is also `8:00` and `08:00` — the
21
+ * same instant at that grain, equality and not a new fact. They count as
22
+ * the person's words (the gate exempts them).
23
+ * - **`derived`** — everything the LIBRARY produced from a reading: an
24
+ * implied year, the zone's abbreviation in effect (`PDT` for a said `PST`),
25
+ * offsets, UTC and epoch spellings, the end-of-grain `08:41`, a look-back's
26
+ * duration, and every part of a `model` reading. The gate files an answer
27
+ * value found only here with the lineage `derived-from-reading`: it can
28
+ * support "not sure", never "known", and it is never called invented.
29
+ *
30
+ * A time value no recorded reading produced is in neither list and still
31
+ * fails the gate. Library text is never evidence: without `derived`, a model
32
+ * echoing the served time line back would read as the person's words.
33
+ */
34
+ import { type TimeForms } from './textForms.js';
35
+ import { type TurnWindow } from './windows.js';
36
+ import { type TimeCandidate } from './resolve.js';
37
+ export type { TimeForms };
38
+ /** One window the record holds, as the spellings read it. */
39
+ export interface FormsWindow extends Pick<TurnWindow, 'source' | 'range' | 'zone' | 'lookback'> {
40
+ /**
41
+ * The reading this window IS, when the person confirmed a `rule` reading
42
+ * of their words — which parts they WROTE, and how the range was read.
43
+ * Absent: a window they typed in the ask, a UI control, a `model` reading.
44
+ */
45
+ readonly reading?: Pick<TimeCandidate, 'said' | 'notes' | 'grain'>;
46
+ /** On an `answered` window: the person picked the offered reading, or wrote their own. */
47
+ readonly answer?: TurnWindow['answer'];
48
+ }
49
+ /** What {@link timeFormsOf} spells: words the person or the app wrote, or one recorded window. */
50
+ export type TimeFormsSource = {
51
+ readonly text: string;
52
+ } | {
53
+ readonly window: FormsWindow;
54
+ };
55
+ /**
56
+ * The spellings of one source's times, split by lineage (§ 9.5).
57
+ *
58
+ * A `text` — the person's message, their typed answer, the app's prompt —
59
+ * has only `said` spellings, and each is a SPELLING, never an
60
+ * interpretation: an ISO date → its year, month and day; a 12-hour reading
61
+ * (`8 Am`) → its 24-hour, padded and glued forms; a 24-hour reading
62
+ * (`20:00`) → the same set. Slash dates are never read (their order is a
63
+ * locale) and durations never (a quantity is not a time of day).
64
+ *
65
+ * A `window` — the turn's recorded window — splits by who produced each
66
+ * part: the person's said parts at grain, or everything of a window they
67
+ * typed or set in a UI, are `said`; the rest is `derived`. A `model`
68
+ * reading's window (`derived-from-reading`) has no `said` spelling at all.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * timeFormsOf({ text: 'what connected 8 Am to 8:40 AM PST' }).said;
73
+ * // ['8:00', '08:00', '8:00am', '8:40', '08:40', '8:40am']
74
+ * timeFormsOf({ text: '2026-10-09' }).said; // ['2026', '10', '9']
75
+ * timeFormsOf({ text: 'took 2h' }); // { said: [], derived: [] }
76
+ * ```
77
+ */
78
+ export declare function timeFormsOf(source: TimeFormsSource): TimeForms;
79
+ /**
80
+ * Every recorded window of the LATEST turn on the ledger (its `clock` row's
81
+ * turn), with the reading each one is — what the gate spells. Empty when no
82
+ * clock was filed (an agent without `.time()`).
83
+ */
84
+ export declare function turnFormsWindowsOf(ledger: readonly unknown[] | undefined): readonly FormsWindow[];
85
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../../src/core/time/forms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AAItB,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,6DAA6D;AAC7D,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;IACnE,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACxC;AAED,kGAAkG;AAClG,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAK3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAG9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GAAG,SAAS,WAAW,EAAE,CAMjG"}
@@ -82,8 +82,9 @@ export declare function presentInstant(value: InstantText, presentation: Present
82
82
  */
83
83
  export declare function presentSpan(from: InstantText, to: InstantText, presentation: Presentation): string;
84
84
  /**
85
- * A presentation bound into the two renderers a coverage `Period:` line uses
86
- * (`agent/coverage/period.ts` · `periodLine`). The coverage module is on every
85
+ * A presentation bound into the three renderers the coverage limits lines use
86
+ * (`agent/coverage/period.ts` · `periodLine` for a `Period:` line, and
87
+ * `periodCheckLine` for a result check's ranges). The coverage module is on every
87
88
  * agent's graph and this one loads only under `.time()`, so it is HANDED the
88
89
  * renderers (`agent/stages/prepareFinal.ts` loads this module through
89
90
  * `import()`) and never imports them — the optional-family law of docs-next's
@@ -92,8 +93,9 @@ export declare function presentSpan(from: InstantText, to: InstantText, presenta
92
93
  export interface BoundPresentation {
93
94
  readonly span: (from: InstantText, to: InstantText) => string;
94
95
  readonly instant: (value: InstantText) => string;
96
+ readonly range: (range: TimeRange, grain?: Grain) => string;
95
97
  }
96
- /** {@link presentSpan} and {@link presentInstant}, bound to one presentation. */
98
+ /** {@link presentSpan}, {@link presentInstant} and {@link presentRange}, bound to one presentation. */
97
99
  export declare function bindPresentation(presentation: Presentation): BoundPresentation;
98
100
  /**
99
101
  * A half-open range for a person. With the `grain` the person said, the end
@@ -1 +1 @@
1
- {"version":3,"file":"present.d.ts","sourceRoot":"","sources":["../../../../src/core/time/present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,OAAO,EAAa,KAAK,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAA+C,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAmNrF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CASrF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,WAAW,EACf,YAAY,EAAE,YAAY,GACzB,MAAM,CAWR;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;CAClD;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB,CAK9E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CA4BhG"}
1
+ {"version":3,"file":"present.d.ts","sourceRoot":"","sources":["../../../../src/core/time/present.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH,OAAO,EAAa,KAAK,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAA+C,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAmNrF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CASrF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,WAAW,EACf,YAAY,EAAE,YAAY,GACzB,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC;CAC7D;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB,CAM9E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CA4BhG"}
@@ -111,6 +111,8 @@ export declare function lookbackOf(range: TimeRange, units: string): {
111
111
  } | undefined;
112
112
  /** Whether `outer` holds every instant of `inner` (half-open). */
113
113
  export declare function covers(outer: TimeRange, inner: TimeRange): boolean;
114
+ /** Whether two ranges hold the same instants (their spellings and offsets aside). */
115
+ export declare function sameRange(a: TimeRange, b: TimeRange): boolean;
114
116
  /** Whether `a` and `b` share at least one instant (half-open: touching ends do not overlap). */
115
117
  export declare function overlaps(a: TimeRange, b: TimeRange): boolean;
116
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../../src/core/time/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;CAC1B;AAED,4GAA4G;AAC5G,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;CAC1B;AAED,8GAA8G;AAC9G,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AAErC,4DAA4D;AAC5D,MAAM,MAAM,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,cAAc,GACtB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,SAAS,CAOrD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,WAAiB,GAAG,SAAS,GAAG,SAAS,CAK3F;AAED,6GAA6G;AAC7G,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAQ9D;AA+BD,uHAAuH;AACvH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,GAAE,WAAiB,GAAG,MAAM,CAG9E;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,WAAW,EAAE,YAAY,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,SAAI,GAAG,SAAS,CAiBxE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,SAAI,GAAG,aAAa,CAUvE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAQlF;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAQlF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACZ,SAAS,CAWX;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,CAQ9E;AAED,kEAAkE;AAClE,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAIlE;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAI5D;AAOD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAe1D"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../../src/core/time/range.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,12 @@
22
22
  * | each mention's parts: the {@link TimeParts} shape, every field in range, no unknown key, at most {@link MAX_PARSES} | the mention is refused (`malformed`) |
23
23
  *
24
24
  * None of these checks what a word MEANS: a model that reads "yesterday" as
25
- * the wrong day passes every one of them. That is why a `kind: 'model'`
26
- * reading is never the person's words (`resolve.ts` · `chooseReading`).
25
+ * the wrong day passes every one of them. That is why NO reading is ever the
26
+ * person's words — a `rule` reading as much as a `model` one (the owner's
27
+ * decision "Always confirm", time design TQ29): a reading only PROPOSES a
28
+ * window, offered through the time ask with its zone, and only what the
29
+ * person picks or types in that form is theirs (`rowsBuild.ts` ·
30
+ * `timeReadingRows`).
27
31
  *
28
32
  * @example
29
33
  * ```ts
@@ -61,7 +65,12 @@ export interface TimeReader {
61
65
  readonly version: string;
62
66
  /** The language it reads, e.g. `'en-US'`. */
63
67
  readonly locale: string;
64
- /** `'rule'`: deterministic over the text. `'model'`: an LLM or other learned reader — its readings are never the person's words. */
68
+ /**
69
+ * `'rule'`: deterministic over the text. `'model'`: an LLM or other learned
70
+ * reader. Neither kind's reading is ever the person's words: a `rule`
71
+ * reading is offered through the time ask to confirm; a `model` reading
72
+ * fills as a reading (`derived-from-reading`) until the person confirms it.
73
+ */
65
74
  readonly kind: 'rule' | 'model';
66
75
  read(text: string, context: TimeReadContext): TimeReading | Promise<TimeReading>;
67
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../../src/core/time/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../../src/core/time/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * core/time/readers/english — the library's careful English reader (time
3
+ * design § 5.3): a tokenizer over a small, closed set of phrases, and
4
+ * "unreadable" for every other time phrase it recognises.
5
+ *
6
+ * Pattern: Strategy behind the `TimeReader` port (`../reader.ts`). It
7
+ * TOKENIZES only: it returns the parts it sees and the verbatim
8
+ * quote. It never resolves an instant, never applies a date order,
9
+ * never maps a zone abbreviation and never refuses a future date —
10
+ * all of that is `resolve.ts`'s, the policy's or the ask's.
11
+ * Role: core/ leaf (the time layer). Imports only the port's types. Armed
12
+ * by the app: `.time({ reader: englishTimeReader() })` — there is no
13
+ * default reader.
14
+ * Emits: N/A.
15
+ *
16
+ * ## What it reads (the v1 rows of § 5.3)
17
+ *
18
+ * | Phrase | Example | Parts |
19
+ * |--------|---------|-------|
20
+ * | an ISO date or instant | `2026-10-09`, `2026-10-09T08:00-07:00` | `date: fixed`, `wall`, `zoneToken` |
21
+ * | a numeric date | `10/09/26`, `10/9` | `date: numeric` — the ORDER is not decided here |
22
+ * | a clock time | `8 AM`, `8:40`, `20:40`, `8:40 p.m.` | `wall` (a bare `8` is a time only as a range's first side: `8 to 9 AM`) |
23
+ * | a range between two of the above | `8 AM to 8:40 AM`, `08:00–08:40`, `between 8 and 9 AM` | `rangeOf` (a day or zone said once for both sides is the whole mention's) |
24
+ * | a zone after a time or date | `America/Los_Angeles`, `UTC-07:00`, `PST` | `zoneToken`, as written (an abbreviation is ASKED — v1 ships no map) |
25
+ * | a day word | today, yesterday, tomorrow | `relative: { unit: 'day', offset }` |
26
+ * | a relative span from now | last 40 minutes, past 2 hours, the last hour, the past week | `relative: { unit, count }` — a look-back in minutes, hours, days or weeks |
27
+ *
28
+ * ## What it says "unreadable" for — never a partial reading
29
+ *
30
+ * Parts of the day (`yesterday morning`, `tonight`, `noon`), calendar spans
31
+ * (`last week`, `this month`), week days and named months (`Friday`,
32
+ * `Oct 9`), `N hours ago`, spans in words (`last two hours`), in a unit it
33
+ * does not read (`last 30 seconds`, `last 3 months`) or said with `previous`
34
+ * (`previous 7 days` — often relative to another window), a look-ahead (`next 2 hours`), an
35
+ * ordinal day (`the 9th`), `8 o'clock`, and any v1 phrase a modifier changes
36
+ * (`since 8 AM`, `before yesterday`, `around 8:40`, `earlier today`,
37
+ * `8 AM to now`, `past 8 PM`, `8 AM-ish`, `from 3 PM yesterday` with no `to`) and
38
+ * a meridiem the number contradicts (`13:00 PM`). Such a phrase is ONE mention
39
+ * with `problem: 'unreadable'`, quoting the whole phrase: reading `yesterday`
40
+ * out of `yesterday morning` would silently widen what the person said.
41
+ *
42
+ * ## It only PROPOSES — the person confirms (the owner's decision "Always confirm")
43
+ *
44
+ * Nothing this reader reads is ever filed as the person's words. Seven review
45
+ * rounds each found the next English spelling a word list, an allow-list or a
46
+ * position rule missed (a zone named in words, a look-back tied to an event,
47
+ * an open end, a half-read range), so the owner decided (2026-09-30, time
48
+ * design TQ29): every reading of a chat message is a PROPOSAL, offered
49
+ * through the time ask pre-filled and editable, with its window AND its zone
50
+ * ("I read “last 2 hours” as … in America/Los_Angeles — is that right?").
51
+ * Only what the person picks or types in that form is theirs. The library
52
+ * owns the law (`../rowsBuild.ts` · `timeReadingRows`), so this reader returns
53
+ * parts and quotes only — no confirm flag, no leftover list, no allow-list.
54
+ * A form may later skip the click only when a registered benchmark shows it
55
+ * is always read right (TQ29's growth rule).
56
+ *
57
+ * A numeric date the tokens could split two ways stays ONE parse — `10/09/26`
58
+ * is three numbers; which is the month is the policy's or the person's.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const reader = englishTimeReader();
63
+ * reader.read('errors on 10/09/26 8 AM to 8:40 AM PST', { locale: 'en-US' });
64
+ * // { mentions: [{ quote: '10/09/26 8 AM to 8:40 AM PST', parses: [{
65
+ * // date: { kind: 'numeric', fields: [10, 9, 26], yearDigits: 2 }, zoneToken: 'PST',
66
+ * // rangeOf: [{ wall: { h: 8, meridiem: 'am' } }, { wall: { h: 8, m: 40, meridiem: 'am' } }] }] }] }
67
+ * reader.read('errors in the last 2 hours', { locale: 'en-US' });
68
+ * // { mentions: [{ quote: 'last 2 hours', parses: [{ relative: { unit: 'hour', count: 2 } }] }] }
69
+ * reader.read('what failed yesterday morning?', { locale: 'en-US' });
70
+ * // { mentions: [{ quote: 'yesterday morning', parses: [], problem: 'unreadable' }] }
71
+ * ```
72
+ */
73
+ import { type TimeReader } from '../reader.js';
74
+ /** The reader's recorded identity — on every `time-reading` row with its version. */
75
+ export declare const ENGLISH_TIME_READER_ID = "agentfootprint/english";
76
+ /** Raised whenever what the reader returns for some text changes. */
77
+ export declare const ENGLISH_TIME_READER_VERSION = "1.0.0";
78
+ /** Options for {@link englishTimeReader}. */
79
+ export interface EnglishTimeReaderOptions {
80
+ /**
81
+ * The language tag the time ask's labels are rendered in (`present.ts`),
82
+ * e.g. `'en-GB'`. Default `'en-US'`. It never decides a date order — that is
83
+ * the policy's (`dateOrder`) or the person's.
84
+ */
85
+ readonly locale?: string;
86
+ }
87
+ /**
88
+ * The library's careful English reader: a `kind: 'rule'` tokenizer over the
89
+ * v1 phrases of the time design's § 5.3, "unreadable" for every other time
90
+ * phrase it recognises. No dependency; deterministic over the text.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * Agent.create({ provider, model })
95
+ * .time({ zone: 'America/Los_Angeles', reader: englishTimeReader() })
96
+ * .build();
97
+ * ```
98
+ */
99
+ export declare function englishTimeReader(options?: EnglishTimeReaderOptions): TimeReader;
100
+ //# sourceMappingURL=english.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"english.d.ts","sourceRoot":"","sources":["../../../../../src/core/time/readers/english.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAEH,OAAO,EAML,KAAK,UAAU,EAIhB,MAAM,cAAc,CAAC;AAItB,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,qEAAqE;AACrE,eAAO,MAAM,2BAA2B,UAAU,CAAC;AA+iBnD,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,UAAU,CAQpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"readingAsk.d.ts","sourceRoot":"","sources":["../../../../src/core/time/readingAsk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAuB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,uGAAuG;AACvG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAWD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,EAAE,SAAS,GACV,OAAO,GAAG,SAAS,CA4CrB"}
1
+ {"version":3,"file":"readingAsk.d.ts","sourceRoot":"","sources":["../../../../src/core/time/readingAsk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAuB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,uGAAuG;AACvG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAWD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,EAAE,SAAS,GACV,OAAO,GAAG,SAAS,CA+CrB"}
@@ -47,7 +47,13 @@
47
47
  * removed a reading — a choice nobody said, recorded), several (`open`, with
48
48
  * the questions an ask must settle), or none. A `kind: 'model'` reader's
49
49
  * window is never settled by the library: it stays `open` until the person
50
- * confirms it (§ 5.5), and its candidates carry `said: []`.
50
+ * confirms it (§ 5.5), and its candidates carry `said: []`. Since the
51
+ * owner's decision "Always confirm" (time design TQ29) neither is ANY
52
+ * reading the record files: `rowsBuild.ts` · `timeReadingRows` passes
53
+ * `confirm: true` for every reader's reading, so only the person's answer
54
+ * in the time ask settles a window. The `confirm` parameter's default
55
+ * (`kind === 'model'`) is the unit's, for a caller that resolves parts
56
+ * outside the record.
51
57
  *
52
58
  * @example
53
59
  * ```ts
@@ -61,23 +67,38 @@
61
67
  * // { by: 'policy', candidate: 1, policy: { dateOrder: 'DMY' } }
62
68
  * ```
63
69
  */
70
+ import { type ZoneName } from './zone.js';
64
71
  import type { TimeParts } from './reader.js';
65
72
  import { type MentionResolution, type ReadingChoice, type ResolveClock, type TimePolicy } from './resolveRecord.js';
66
73
  export { candidateIsWellFormed, choiceIsWellFormed, DEFAULT_TIME_POLICY, readPolicy, } from './resolveRecord.js';
67
74
  export type { MentionResolution, OpenQuestion, ReadingChoice, ReadingTags, ResolveClock, ResolvedWindow, TimeCandidate, TimeNote, TimePart, TimePolicy, TimeWindow, } from './resolveRecord.js';
75
+ /**
76
+ * The parts with every zone token this layer cannot read (an abbreviation such
77
+ * as `PST`) replaced by the zone the PERSON named when asked (§ 6.3) — the
78
+ * whole mention's and each range side's. A token it can read is kept.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * withZoneAnswered([{ wall: { h: 8, meridiem: 'am' }, zoneToken: 'PST' }], 'America/Los_Angeles');
83
+ * // [{ wall: { h: 8, meridiem: 'am' }, zoneToken: 'America/Los_Angeles' }]
84
+ * ```
85
+ */
86
+ export declare function withZoneAnswered(parses: readonly TimeParts[], zone: ZoneName): TimeParts[];
68
87
  /**
69
88
  * Every candidate window of one mention's parses, resolved against the
70
- * clock. A `model` reader's candidates carry `said: []` (§ 5.5).
89
+ * clock. A reading the person must confirm (`confirm: true` — every reading
90
+ * the record files, TQ29; a `model` reader's by default) carries `said: []`.
71
91
  */
72
92
  export declare function resolveMention(parses: readonly TimeParts[], clock: ResolveClock, reader: {
73
93
  readonly id: string;
74
94
  readonly kind: 'rule' | 'model';
75
- }): MentionResolution;
95
+ }, confirm?: boolean): MentionResolution;
76
96
  /**
77
97
  * How one mention settles under the app's policy (§ 5.1, § 11). The policy
78
98
  * only removes readings; it never adds one. A DST choice, a meridiem, a
79
- * zone the person named that is no zone, and a `model` reader's window are
80
- * never settled here — they stay `open` for the person.
99
+ * zone the person named that is no zone, and a reading to confirm
100
+ * (`confirm` — every reading the record files, TQ29) are never settled here
101
+ * — they stay `open` for the person.
81
102
  */
82
- export declare function chooseReading(resolution: MentionResolution, policy: TimePolicy, kind: 'rule' | 'model', problem?: 'unreadable'): ReadingChoice;
103
+ export declare function chooseReading(resolution: MentionResolution, policy: TimePolicy, kind: 'rule' | 'model', problem?: 'unreadable', confirm?: boolean): ReadingChoice;
83
104
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/core/time/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;AACvD,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EAElB,KAAK,YAAY,EAIjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,oBAAoB,CAAC;AAghB5B;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC/D,iBAAiB,CA4BnB;AA2CD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,aAAa,CAsCf"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/core/time/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAIH,OAAO,EAQL,KAAK,QAAQ,EACd,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;AACvD,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EAElB,KAAK,YAAY,EAIjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,oBAAoB,CAAC;AA6B5B;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,CAW1F;AAqfD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAChE,OAAO,GAAE,OAAiC,GACzC,iBAAiB,CA4BnB;AAwCD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,OAA0B,GAClC,aAAa,CAsCf"}
@@ -19,7 +19,7 @@
19
19
  * precedent: no event field ships without a reader in the same
20
20
  * release). The lens reads the rows.
21
21
  *
22
- * Five kinds, each filed only while `.time()` is armed:
22
+ * Eight kinds, each filed only while `.time()` is armed:
23
23
  *
24
24
  * | Kind | Filed | Carries |
25
25
  * |------|-------|---------|
@@ -27,7 +27,10 @@
27
27
  * | `clock-on-resume` | first thing in the resumed leg's ToolCalls stage — either pause shape: the pausable resume door, or the stage re-run an `interrupt()` pause makes — when a resume passed a `time` that differs from the kept clock | what was passed and what was kept — the kept clock still rules |
28
28
  * | `call` | once per dispatched call, just before the tool runs | `dispatchedAt`: the wall clock at dispatch (a look-back is evaluated by the TOOL at dispatch, which after a pause is later than `now`); `drift` when a look-back was sent more than the tool's step after `now` — `redrawn` into an absolute form, or `shifted` (§ 7.4, `drift.ts`) |
29
29
  * | `call-window` | by the inputs layer, once per call to a tool that declares period forms, before it dispatches | which window the call carries: filled from the turn's one window (exactly, or wider — with what the read adds), bound to one (by quote or value), the model's own (beside the person's when it differs), unread, not filled and why, or refused before dispatch and why |
30
- * | `time-reading` | by seed, once per MENTION the armed reader (`.time({ reader })`) found in the person's message — or ONE row with `mentions: 0` when it found none, so a retry knows the message was read | the quote, the parts, every candidate `resolve.ts` made of them, how the reading settled (`choice`), the reader's id, version, kind and locale, and the tz database version; a refused mention keeps only why |
30
+ * | `time-reading` | by seed, once per MENTION the armed reader (`.time({ reader })`) found in the person's message — or ONE row with `mentions: 0` when it found none, so a retry knows the message was read | the quote, the parts, every candidate `resolve.ts` made of them, how the reading settled (`choice` — never settled by the library: every reading is a PROPOSAL, `open` with `confirm`, its candidates `said: []`), the reader's id, version, kind and locale, and the tz database version; a refused mention keeps only why |
31
+ * | `time-answer` | by the batch ask, once per mention the person settled in the time ask — the only door by which a window of words becomes the person's | the mention, the window and its zone, and `how`: `confirmed` (they picked a reading the library offered — the click) or `edited` (they wrote their own) |
32
+ * | `time-derived` | by the Route decider, once per judged answer that stands, when the evidence gate found values no tool result carried that the library itself spelled from this turn's time readings (§ 9.5, step T7 — `forms.ts` · `timeFormsOf`'s `derived` list) | the values, normalized and clipped as the gate reports them — the lineage `derived-from-reading`: never invented, never the person's |
33
+ * | `source-clock` | by ToolCalls, once per call and zone, when the call minted a dataset whose declared time axis names a `zone` (§ 9.6, step T8) | the tool, the call and the zone its rows' wall times are in — read by the limits block's `Clocks` lines and `check.ts` · `clocksDiffer` |
31
34
  *
32
35
  * Readers that switch over every row kind must skip one they do not know.
33
36
  */
@@ -127,6 +130,29 @@ export interface TimeReadingRow {
127
130
  /** How the reading settled under the policy — `open` waits for the person. */
128
131
  readonly choice?: ReadingChoice;
129
132
  }
133
+ /**
134
+ * The window the person settled for one mention in the time ask — the ONLY
135
+ * door by which a window of words becomes the person's (the owner's decision
136
+ * "Always confirm", time design TQ29). Filed by the batch ask when a window
137
+ * answer binds (`arguments/ask.ts` · `bindAnswer`); read back by
138
+ * `bind.ts` · `turnWindowsOf`, so the rest of the turn uses it as an
139
+ * `answered` window and the served sentence names it with its source.
140
+ */
141
+ export interface TimeAnswerRow extends TimeRange {
142
+ readonly kind: 'time-answer';
143
+ readonly turn: number;
144
+ readonly iteration: number;
145
+ /** The `time-reading` row's mention the answer settles. */
146
+ readonly mention: number;
147
+ /** The zone the window was answered in — the reading's, or the turn's clock for free entry. */
148
+ readonly zone: ZoneName;
149
+ /**
150
+ * `confirmed`: the person picked a reading the library offered (the
151
+ * pre-filled choice — their click); `edited`: they wrote a window of their
152
+ * own. Both are the person's answer.
153
+ */
154
+ readonly how: 'confirmed' | 'edited';
155
+ }
130
156
  /** The person's window a `call-window` row names — its range, who gave it, and its mention. */
131
157
  export interface PersonWindow extends TimeRange {
132
158
  readonly source: WindowSource;
@@ -184,12 +210,73 @@ export interface CallWindowRow {
184
210
  /** On a `dst-gap` refusal: the argument whose wall time the zone skips. */
185
211
  readonly argument?: string;
186
212
  }
213
+ /**
214
+ * The answer's values the library itself spelled from a time reading of this
215
+ * turn (§ 9.5, step T7) — an implied year, an offset, the end-of-grain
216
+ * minute, a value of the served time line. The lineage `derived-from-reading`:
217
+ * the answer's standing reads it as "not sure" at most, never "known", and the
218
+ * gate never calls these invented.
219
+ */
220
+ export interface TimeDerivedRow {
221
+ readonly kind: 'time-derived';
222
+ readonly turn: number;
223
+ readonly iteration: number;
224
+ /** The values as the gate reports them — normalized, clipped, at most `MAX_DERIVED_VALUES`. */
225
+ readonly values: readonly string[];
226
+ }
227
+ /** The most values one `time-derived` row carries (the gate's report bound). */
228
+ export declare const MAX_DERIVED_VALUES = 12;
229
+ /** The longest value a `time-derived` row carries (the gate's clip). */
230
+ export declare const MAX_DERIVED_VALUE_CHARS = 64;
231
+ /**
232
+ * A wall-clock source (§ 9.6, step T8): the call minted a dataset whose
233
+ * declared time axis (`axis.ts` · `DatasetTimeAxis`, its `zone`) says its rows are
234
+ * wall times in `zone`. One row per call and zone. A period's offset is never
235
+ * read as a clock — only a declared axis zone files this row.
236
+ */
237
+ export interface SourceClockRow {
238
+ readonly kind: 'source-clock';
239
+ readonly turn: number;
240
+ readonly iteration: number;
241
+ readonly toolCallId: string;
242
+ readonly toolName: string;
243
+ readonly zone: ZoneName;
244
+ }
187
245
  /** Every time-layer row kind. */
188
- export type TimeRow = ClockRow | ClockOnResumeRow | CallRow | TimeReadingRow | CallWindowRow;
246
+ export type TimeRow = ClockRow | ClockOnResumeRow | CallRow | TimeReadingRow | CallWindowRow | TimeAnswerRow | TimeDerivedRow | SourceClockRow;
189
247
  /** This turn's `call-window` row for one call, if the inputs layer filed one — `ctx.time` reads it. */
190
248
  export declare function callWindowOfCall(ledger: readonly unknown[] | undefined, toolCallId: string, turn: number): CallWindowRow | undefined;
191
249
  /** The `time-reading` rows filed for `turn` — read back on a resume or a retry, never re-read. */
192
250
  export declare function readingsOf(ledger: readonly unknown[] | undefined, turn: number): readonly TimeReadingRow[];
251
+ /** The `time-answer` row for one window the person settled in the time ask. */
252
+ export declare function timeAnswerRow(answer: {
253
+ readonly mention: number;
254
+ readonly range: TimeRange;
255
+ readonly zone: ZoneName;
256
+ readonly how: 'confirmed' | 'edited';
257
+ }, at: {
258
+ readonly turn: number;
259
+ readonly iteration: number;
260
+ }): TimeAnswerRow;
261
+ /** The `time-derived` row for one judged answer — `values` cut to {@link MAX_DERIVED_VALUES}. */
262
+ export declare function timeDerivedRow(values: readonly string[], at: {
263
+ readonly turn: number;
264
+ readonly iteration: number;
265
+ }): TimeDerivedRow;
266
+ /** The `source-clock` row for one call's dataset whose declared axis names `zone`. */
267
+ export declare function sourceClockRow(call: {
268
+ readonly toolCallId: string;
269
+ readonly toolName: string;
270
+ }, at: {
271
+ readonly turn: number;
272
+ readonly iteration: number;
273
+ }, zone: ZoneName): SourceClockRow;
274
+ /** This turn's `call` row for one call — the last filed (a resumed leg files its own). */
275
+ export declare function callRowOfCall(ledger: readonly unknown[] | undefined, toolCallId: string, turn: number): CallRow | undefined;
276
+ /** The `source-clock` rows filed for `turn`, in the order filed. */
277
+ export declare function sourceClocksOf(ledger: readonly unknown[] | undefined, turn: number | undefined): readonly SourceClockRow[];
278
+ /** The `time-answer` rows filed for `turn`, in the order filed. */
279
+ export declare function answersOf(ledger: readonly unknown[] | undefined, turn: number): readonly TimeAnswerRow[];
193
280
  /**
194
281
  * The clock of the LATEST turn on the ledger — the last `clock` row — or
195
282
  * `undefined` when none was filed (an agent without `.time()`, or a turn
@@ -200,7 +287,7 @@ export declare function readingsOf(ledger: readonly unknown[] | undefined, turn:
200
287
  export declare function clockOf(ledger: readonly unknown[] | undefined): ClockRow | undefined;
201
288
  /**
202
289
  * The checkpoint door's test for a time-layer row — `true` only for a row of
203
- * one of the five kinds with every field this module files, well formed.
290
+ * one of the eight kinds with every field this module files, well formed.
204
291
  * Any other kind answers `false` (the caller routes by kind first).
205
292
  */
206
293
  export declare function timeRowIsWellFormed(row: Readonly<Record<string, unknown>>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../../src/core/time/rows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../../src/core/time/rows.ts"],"names":[],"mappings":"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"}
@@ -52,8 +52,14 @@ export declare function clockOnResumeRow(passed: ReadRunTime, kept: ClockRow, at
52
52
  }): ClockOnResumeRow | undefined;
53
53
  /**
54
54
  * The `time-reading` rows for one checked reading (`reader.ts` ·
55
- * `checkReading`): one per mention, resolved against the turn's clock and
56
- * settled under the policy — or one `mentions: 0` row.
55
+ * `checkReading`): one per mention, resolved against the turn's clock — or
56
+ * one `mentions: 0` row. The one owner of the law "a reading only PROPOSES"
57
+ * (the owner's decision "Always confirm", time design TQ29): whatever the
58
+ * reader's kind, no reading is settled by the library and none is the
59
+ * person's words — its candidates carry `said: []` and its choice stays
60
+ * `open` with `confirm` (the policy may still remove readings), so the time
61
+ * ask offers it, pre-filled with its window and zone, and only the person's
62
+ * answer settles it (`rows.ts` · `TimeAnswerRow`).
57
63
  */
58
64
  export declare function timeReadingRows(input: {
59
65
  readonly mentions: readonly CheckedMention[];
@@ -1 +1 @@
1
- {"version":3,"file":"rowsBuild.d.ts","sourceRoot":"","sources":["../../../../src/core/time/rowsBuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AACxD,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,QAAQ,EAER,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AAInB,oCAAoC;AACpC,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACzD,MAAM,CAAC,EAAE,SAAS,GACjB,QAAQ,CAaV;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAChE,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACzD,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAUT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,gBAAgB,GAAG,SAAS,CAc9B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,GAAG,cAAc,EAAE,CAwBnB;AASD,kFAAkF;AAClF,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ,EAAE,UAAU,EACpB,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,aAAa,CAgEf"}
1
+ {"version":3,"file":"rowsBuild.d.ts","sourceRoot":"","sources":["../../../../src/core/time/rowsBuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AACxD,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,QAAQ,EAER,eAAe,EACf,cAAc,EACf,MAAM,WAAW,CAAC;AAInB,oCAAoC;AACpC,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACzD,MAAM,CAAC,EAAE,SAAS,GACjB,QAAQ,CAaV;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAChE,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACzD,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAUT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,gBAAgB,GAAG,SAAS,CAc9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,GAAG,cAAc,EAAE,CAwBnB;AASD,kFAAkF;AAClF,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ,EAAE,UAAU,EACpB,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD,aAAa,CAgEf"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * core/time/textForms — the spellings of the times written in TEXT (time
3
+ * design § 9.5, step T7): the text rule of `forms.ts` · `timeFormsOf`, and
4
+ * the small spelling parts both halves share.
5
+ *
6
+ * Pattern: pure regular expressions over the text — no reading, no resolver.
7
+ * Role: split from `forms.ts` BY FILE for the synchronous doors: the
8
+ * evidence gate's exempt corpus (`evidence/evidenceIndex.ts` ·
9
+ * `addExempt`) runs on every agent with a gate, and a bundler places
10
+ * a whole file on the synchronous graph — so the window half, which
11
+ * re-resolves a recorded reading (`resolve.ts`), stays behind
12
+ * `import()` (the optional-family law,
13
+ * `test/lib/trace-toolpack/browserGraph.test.ts`). Imports nothing.
14
+ * Emits: N/A.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * timeFormsOfText('2026-10-09').said; // ['2026', '10', '9']
19
+ * timeFormsOfText('took 2h'); // { said: [], derived: [] }
20
+ * ```
21
+ */
22
+ /** The two lineages of the spellings of one source — see the file header. */
23
+ export interface TimeForms {
24
+ readonly said: readonly string[];
25
+ readonly derived: readonly string[];
26
+ }
27
+ /**
28
+ * The spellings of the times written in `text` — `said` only (the text rule of
29
+ * `forms.ts` · `timeFormsOf`, which delegates here): an ISO date → its year,
30
+ * month and day; a 12-hour or 24-hour clock reading → its spellings. Slash
31
+ * dates and durations are never read.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * timeFormsOfText('what connected 8 Am to 8:40 AM PST').said;
36
+ * // ['8:00', '08:00', '8:00am', '8:40', '08:40', '8:40am']
37
+ * ```
38
+ */
39
+ export declare function timeFormsOfText(text: string): TimeForms;
40
+ /**
41
+ * The spellings of ONE clock time: the 24-hour form bare and padded
42
+ * (`8:00`, `08:00`, `20:00`), the 12-hour colon form (`8:00`) and its glued
43
+ * suffix form (`8:00pm`). After tokenizing, `8:00 PM` and `8:00 AM` both read
44
+ * `8:00` — the same hour on a 12-hour dial.
45
+ */
46
+ export declare function clockSpellings(h24: number, minutes: string): readonly string[];
47
+ export declare const pad2: (n: number) => string;
48
+ /** An insertion-ordered set of spellings. */
49
+ export declare class Spellings {
50
+ private readonly seen;
51
+ push(...forms: readonly string[]): void;
52
+ list(): readonly string[];
53
+ }
54
+ //# sourceMappingURL=textForms.d.ts.map