agentfootprint 9.41.0 → 9.44.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 (367) hide show
  1. package/AGENTS.md +30 -1
  2. package/CLAUDE.md +3 -1
  3. package/ai-instructions/claude-code/SKILL.md +31 -1
  4. package/dist/adapters/hosting/agentcore.js +163 -23
  5. package/dist/adapters/hosting/agentcore.js.map +1 -1
  6. package/dist/adapters/hosting/firestoreSessions.js +184 -14
  7. package/dist/adapters/hosting/firestoreSessions.js.map +1 -1
  8. package/dist/adapters/hosting/googleAgentEngine.js +29 -0
  9. package/dist/adapters/hosting/googleAgentEngine.js.map +1 -1
  10. package/dist/artifacts/conformance/cases.js +20 -0
  11. package/dist/artifacts/conformance/cases.js.map +1 -1
  12. package/dist/artifacts/scopePath.js +41 -1
  13. package/dist/artifacts/scopePath.js.map +1 -1
  14. package/dist/core/Agent.js +17 -1
  15. package/dist/core/Agent.js.map +1 -1
  16. package/dist/core/agent/AgentBuilder.js +56 -1
  17. package/dist/core/agent/AgentBuilder.js.map +1 -1
  18. package/dist/core/agent/buildAgentChart.js +5 -1
  19. package/dist/core/agent/buildAgentChart.js.map +1 -1
  20. package/dist/core/agent/buildDynamicAgentChart.js +5 -1
  21. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  22. package/dist/core/agent/coverage/absent.js +163 -0
  23. package/dist/core/agent/coverage/absent.js.map +1 -0
  24. package/dist/core/agent/coverage/answer.js +90 -0
  25. package/dist/core/agent/coverage/answer.js.map +1 -0
  26. package/dist/core/agent/coverage/evidence.js +90 -0
  27. package/dist/core/agent/coverage/evidence.js.map +1 -0
  28. package/dist/core/agent/coverage/index.js +37 -0
  29. package/dist/core/agent/coverage/index.js.map +1 -0
  30. package/dist/core/agent/coverage/items.js +91 -0
  31. package/dist/core/agent/coverage/items.js.map +1 -0
  32. package/dist/core/agent/coverage/ledger.js +131 -0
  33. package/dist/core/agent/coverage/ledger.js.map +1 -0
  34. package/dist/core/agent/coverage/read.js +56 -0
  35. package/dist/core/agent/coverage/read.js.map +1 -0
  36. package/dist/core/agent/coverage/types.js +15 -0
  37. package/dist/core/agent/coverage/types.js.map +1 -0
  38. package/dist/core/agent/evidence/evidenceIndex.js +18 -1
  39. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  40. package/dist/core/agent/stages/prepareFinal.js +44 -3
  41. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  42. package/dist/core/agent/stages/toolCalls.js +109 -3
  43. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  44. package/dist/core/agent/toolEffects.js +1 -1
  45. package/dist/core/outputFallback.js.map +1 -1
  46. package/dist/debug.js +49 -25
  47. package/dist/debug.js.map +1 -1
  48. package/dist/esm/adapters/hosting/agentcore.d.ts +8 -0
  49. package/dist/esm/adapters/hosting/agentcore.js +163 -23
  50. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  51. package/dist/esm/adapters/hosting/firestoreSessions.d.ts +162 -14
  52. package/dist/esm/adapters/hosting/firestoreSessions.js +182 -13
  53. package/dist/esm/adapters/hosting/firestoreSessions.js.map +1 -1
  54. package/dist/esm/adapters/hosting/googleAgentEngine.d.ts +16 -1
  55. package/dist/esm/adapters/hosting/googleAgentEngine.js +29 -0
  56. package/dist/esm/adapters/hosting/googleAgentEngine.js.map +1 -1
  57. package/dist/esm/artifacts/conformance/cases.js +20 -0
  58. package/dist/esm/artifacts/conformance/cases.js.map +1 -1
  59. package/dist/esm/artifacts/scopePath.d.ts +31 -0
  60. package/dist/esm/artifacts/scopePath.js +41 -1
  61. package/dist/esm/artifacts/scopePath.js.map +1 -1
  62. package/dist/esm/core/Agent.d.ts +8 -1
  63. package/dist/esm/core/Agent.js +18 -2
  64. package/dist/esm/core/Agent.js.map +1 -1
  65. package/dist/esm/core/agent/AgentBuilder.d.ts +43 -0
  66. package/dist/esm/core/agent/AgentBuilder.js +56 -1
  67. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  68. package/dist/esm/core/agent/buildAgentChart.d.ts +9 -0
  69. package/dist/esm/core/agent/buildAgentChart.js +6 -2
  70. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  71. package/dist/esm/core/agent/buildDynamicAgentChart.js +6 -2
  72. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  73. package/dist/esm/core/agent/coverage/absent.d.ts +104 -0
  74. package/dist/esm/core/agent/coverage/absent.js +157 -0
  75. package/dist/esm/core/agent/coverage/absent.js.map +1 -0
  76. package/dist/esm/core/agent/coverage/answer.d.ts +46 -0
  77. package/dist/esm/core/agent/coverage/answer.js +86 -0
  78. package/dist/esm/core/agent/coverage/answer.js.map +1 -0
  79. package/dist/esm/core/agent/coverage/evidence.d.ts +68 -0
  80. package/dist/esm/core/agent/coverage/evidence.js +86 -0
  81. package/dist/esm/core/agent/coverage/evidence.js.map +1 -0
  82. package/dist/esm/core/agent/coverage/index.d.ts +17 -0
  83. package/dist/esm/core/agent/coverage/index.js +17 -0
  84. package/dist/esm/core/agent/coverage/index.js.map +1 -0
  85. package/dist/esm/core/agent/coverage/items.d.ts +35 -0
  86. package/dist/esm/core/agent/coverage/items.js +85 -0
  87. package/dist/esm/core/agent/coverage/items.js.map +1 -0
  88. package/dist/esm/core/agent/coverage/ledger.d.ts +80 -0
  89. package/dist/esm/core/agent/coverage/ledger.js +125 -0
  90. package/dist/esm/core/agent/coverage/ledger.js.map +1 -0
  91. package/dist/esm/core/agent/coverage/read.d.ts +51 -0
  92. package/dist/esm/core/agent/coverage/read.js +52 -0
  93. package/dist/esm/core/agent/coverage/read.js.map +1 -0
  94. package/dist/esm/core/agent/coverage/types.d.ts +142 -0
  95. package/dist/esm/core/agent/coverage/types.js +14 -0
  96. package/dist/esm/core/agent/coverage/types.js.map +1 -0
  97. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +7 -0
  98. package/dist/esm/core/agent/evidence/evidenceIndex.js +18 -1
  99. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  100. package/dist/esm/core/agent/stages/prepareFinal.d.ts +18 -0
  101. package/dist/esm/core/agent/stages/prepareFinal.js +42 -2
  102. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  103. package/dist/esm/core/agent/stages/toolCalls.js +109 -3
  104. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  105. package/dist/esm/core/agent/toolEffects.d.ts +2 -2
  106. package/dist/esm/core/agent/toolEffects.js +1 -1
  107. package/dist/esm/core/agent/types.d.ts +14 -0
  108. package/dist/esm/core/outputFallback.d.ts +15 -1
  109. package/dist/esm/core/outputFallback.js.map +1 -1
  110. package/dist/esm/debug.d.ts +1 -0
  111. package/dist/esm/debug.js +7 -0
  112. package/dist/esm/debug.js.map +1 -1
  113. package/dist/esm/events/dispatcher.d.ts +1 -1
  114. package/dist/esm/events/dispatcher.js.map +1 -1
  115. package/dist/esm/events/payloads.d.ts +82 -0
  116. package/dist/esm/events/registry.d.ts +11 -1
  117. package/dist/esm/events/registry.js +10 -0
  118. package/dist/esm/events/registry.js.map +1 -1
  119. package/dist/esm/hosting/conformance/cases.d.ts +2 -1
  120. package/dist/esm/hosting/conformance/cases.js +229 -22
  121. package/dist/esm/hosting/conformance/cases.js.map +1 -1
  122. package/dist/esm/hosting/conformance/types.d.ts +7 -7
  123. package/dist/esm/hosting/errors.d.ts +28 -0
  124. package/dist/esm/hosting/errors.js +40 -0
  125. package/dist/esm/hosting/errors.js.map +1 -1
  126. package/dist/esm/hosting/index.d.ts +11 -3
  127. package/dist/esm/hosting/index.js +15 -2
  128. package/dist/esm/hosting/index.js.map +1 -1
  129. package/dist/esm/hosting/memorySessions.js +39 -0
  130. package/dist/esm/hosting/memorySessions.js.map +1 -1
  131. package/dist/esm/hosting/sessionRetention.d.ts +56 -0
  132. package/dist/esm/hosting/sessionRetention.js +69 -0
  133. package/dist/esm/hosting/sessionRetention.js.map +1 -0
  134. package/dist/esm/hosting/sqliteSessions.d.ts +11 -1
  135. package/dist/esm/hosting/sqliteSessions.js +51 -0
  136. package/dist/esm/hosting/sqliteSessions.js.map +1 -1
  137. package/dist/esm/hosting/types.d.ts +184 -0
  138. package/dist/esm/hosting/types.js +9 -0
  139. package/dist/esm/hosting/types.js.map +1 -1
  140. package/dist/esm/hosting-providers.d.ts +15 -11
  141. package/dist/esm/hosting-providers.js +21 -11
  142. package/dist/esm/hosting-providers.js.map +1 -1
  143. package/dist/esm/index.d.ts +1 -0
  144. package/dist/esm/index.js +18 -0
  145. package/dist/esm/index.js.map +1 -1
  146. package/dist/esm/lib/context-bisect/arms/apply.d.ts +54 -0
  147. package/dist/esm/lib/context-bisect/arms/apply.js +41 -0
  148. package/dist/esm/lib/context-bisect/arms/apply.js.map +1 -0
  149. package/dist/esm/lib/context-bisect/arms/compare.d.ts +27 -0
  150. package/dist/esm/lib/context-bisect/arms/compare.js +112 -0
  151. package/dist/esm/lib/context-bisect/arms/compare.js.map +1 -0
  152. package/dist/esm/lib/context-bisect/arms/index.d.ts +16 -0
  153. package/dist/esm/lib/context-bisect/arms/index.js +16 -0
  154. package/dist/esm/lib/context-bisect/arms/index.js.map +1 -0
  155. package/dist/esm/lib/context-bisect/arms/manifest.d.ts +79 -0
  156. package/dist/esm/lib/context-bisect/arms/manifest.js +199 -0
  157. package/dist/esm/lib/context-bisect/arms/manifest.js.map +1 -0
  158. package/dist/esm/lib/context-bisect/arms/probe.d.ts +54 -0
  159. package/dist/esm/lib/context-bisect/arms/probe.js +125 -0
  160. package/dist/esm/lib/context-bisect/arms/probe.js.map +1 -0
  161. package/dist/esm/lib/context-bisect/arms/types.d.ts +319 -0
  162. package/dist/esm/lib/context-bisect/arms/types.js +67 -0
  163. package/dist/esm/lib/context-bisect/arms/types.js.map +1 -0
  164. package/dist/esm/lib/context-bisect/arms/validate.d.ts +26 -0
  165. package/dist/esm/lib/context-bisect/arms/validate.js +122 -0
  166. package/dist/esm/lib/context-bisect/arms/validate.js.map +1 -0
  167. package/dist/esm/lib/context-bisect/arms/verdict.d.ts +53 -0
  168. package/dist/esm/lib/context-bisect/arms/verdict.js +103 -0
  169. package/dist/esm/lib/context-bisect/arms/verdict.js.map +1 -0
  170. package/dist/esm/lib/context-bisect/index.d.ts +1 -0
  171. package/dist/esm/lib/context-bisect/index.js +5 -0
  172. package/dist/esm/lib/context-bisect/index.js.map +1 -1
  173. package/dist/esm/lib/injection-engine/index.d.ts +1 -1
  174. package/dist/esm/lib/injection-engine/index.js +3 -1
  175. package/dist/esm/lib/injection-engine/index.js.map +1 -1
  176. package/dist/esm/lib/injection-engine/skillExamples.d.ts +16 -13
  177. package/dist/esm/lib/injection-engine/skillExamples.js +16 -60
  178. package/dist/esm/lib/injection-engine/skillExamples.js.map +1 -1
  179. package/dist/esm/lib/injection-engine/skillGraph.d.ts +50 -0
  180. package/dist/esm/lib/injection-engine/skillGraph.js +52 -1
  181. package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
  182. package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +6 -5
  183. package/dist/esm/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  184. package/dist/esm/lib/injection-engine/skillNeverRoutes.d.ts +131 -0
  185. package/dist/esm/lib/injection-engine/skillNeverRoutes.js +228 -0
  186. package/dist/esm/lib/injection-engine/skillNeverRoutes.js.map +1 -0
  187. package/dist/esm/lib/injection-engine/skillPartition.d.ts +69 -0
  188. package/dist/esm/lib/injection-engine/skillPartition.js +273 -0
  189. package/dist/esm/lib/injection-engine/skillPartition.js.map +1 -0
  190. package/dist/esm/lib/injection-engine/skillsFromDir.d.ts +83 -3
  191. package/dist/esm/lib/injection-engine/skillsFromDir.js +118 -7
  192. package/dist/esm/lib/injection-engine/skillsFromDir.js.map +1 -1
  193. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.d.ts +105 -0
  194. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.js +169 -0
  195. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.js.map +1 -0
  196. package/dist/esm/lib/injection-engine/startRuleClaim.d.ts +91 -0
  197. package/dist/esm/lib/injection-engine/startRuleClaim.js +78 -0
  198. package/dist/esm/lib/injection-engine/startRuleClaim.js.map +1 -0
  199. package/dist/esm/lib/injection-engine/toolOutcome.d.ts +12 -3
  200. package/dist/esm/lib/injection-engine/toolOutcome.js +2 -1
  201. package/dist/esm/lib/injection-engine/toolOutcome.js.map +1 -1
  202. package/dist/events/dispatcher.js.map +1 -1
  203. package/dist/events/registry.js +10 -0
  204. package/dist/events/registry.js.map +1 -1
  205. package/dist/hosting/conformance/cases.js +229 -22
  206. package/dist/hosting/conformance/cases.js.map +1 -1
  207. package/dist/hosting/errors.js +42 -1
  208. package/dist/hosting/errors.js.map +1 -1
  209. package/dist/hosting/index.js +18 -2
  210. package/dist/hosting/index.js.map +1 -1
  211. package/dist/hosting/memorySessions.js +39 -0
  212. package/dist/hosting/memorySessions.js.map +1 -1
  213. package/dist/hosting/sessionRetention.js +73 -0
  214. package/dist/hosting/sessionRetention.js.map +1 -0
  215. package/dist/hosting/sqliteSessions.js +51 -0
  216. package/dist/hosting/sqliteSessions.js.map +1 -1
  217. package/dist/hosting/types.js +10 -1
  218. package/dist/hosting/types.js.map +1 -1
  219. package/dist/hosting-providers.js +21 -11
  220. package/dist/hosting-providers.js.map +1 -1
  221. package/dist/index.js +72 -43
  222. package/dist/index.js.map +1 -1
  223. package/dist/lib/context-bisect/arms/apply.js +45 -0
  224. package/dist/lib/context-bisect/arms/apply.js.map +1 -0
  225. package/dist/lib/context-bisect/arms/compare.js +116 -0
  226. package/dist/lib/context-bisect/arms/compare.js.map +1 -0
  227. package/dist/lib/context-bisect/arms/index.js +35 -0
  228. package/dist/lib/context-bisect/arms/index.js.map +1 -0
  229. package/dist/lib/context-bisect/arms/manifest.js +207 -0
  230. package/dist/lib/context-bisect/arms/manifest.js.map +1 -0
  231. package/dist/lib/context-bisect/arms/probe.js +132 -0
  232. package/dist/lib/context-bisect/arms/probe.js.map +1 -0
  233. package/dist/lib/context-bisect/arms/types.js +68 -0
  234. package/dist/lib/context-bisect/arms/types.js.map +1 -0
  235. package/dist/lib/context-bisect/arms/validate.js +128 -0
  236. package/dist/lib/context-bisect/arms/validate.js.map +1 -0
  237. package/dist/lib/context-bisect/arms/verdict.js +107 -0
  238. package/dist/lib/context-bisect/arms/verdict.js.map +1 -0
  239. package/dist/lib/context-bisect/index.js +23 -1
  240. package/dist/lib/context-bisect/index.js.map +1 -1
  241. package/dist/lib/injection-engine/index.js +4 -1
  242. package/dist/lib/injection-engine/index.js.map +1 -1
  243. package/dist/lib/injection-engine/skillExamples.js +24 -68
  244. package/dist/lib/injection-engine/skillExamples.js.map +1 -1
  245. package/dist/lib/injection-engine/skillGraph.js +52 -1
  246. package/dist/lib/injection-engine/skillGraph.js.map +1 -1
  247. package/dist/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  248. package/dist/lib/injection-engine/skillNeverRoutes.js +234 -0
  249. package/dist/lib/injection-engine/skillNeverRoutes.js.map +1 -0
  250. package/dist/lib/injection-engine/skillPartition.js +277 -0
  251. package/dist/lib/injection-engine/skillPartition.js.map +1 -0
  252. package/dist/lib/injection-engine/skillsFromDir.js +121 -9
  253. package/dist/lib/injection-engine/skillsFromDir.js.map +1 -1
  254. package/dist/lib/injection-engine/skillsFromDirRoutes.js +174 -0
  255. package/dist/lib/injection-engine/skillsFromDirRoutes.js.map +1 -0
  256. package/dist/lib/injection-engine/startRuleClaim.js +85 -0
  257. package/dist/lib/injection-engine/startRuleClaim.js.map +1 -0
  258. package/dist/lib/injection-engine/toolOutcome.js +2 -1
  259. package/dist/lib/injection-engine/toolOutcome.js.map +1 -1
  260. package/dist/types/adapters/hosting/agentcore.d.ts +8 -0
  261. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  262. package/dist/types/adapters/hosting/firestoreSessions.d.ts +162 -14
  263. package/dist/types/adapters/hosting/firestoreSessions.d.ts.map +1 -1
  264. package/dist/types/adapters/hosting/googleAgentEngine.d.ts +16 -1
  265. package/dist/types/adapters/hosting/googleAgentEngine.d.ts.map +1 -1
  266. package/dist/types/artifacts/conformance/cases.d.ts.map +1 -1
  267. package/dist/types/artifacts/scopePath.d.ts +31 -0
  268. package/dist/types/artifacts/scopePath.d.ts.map +1 -1
  269. package/dist/types/core/Agent.d.ts +8 -1
  270. package/dist/types/core/Agent.d.ts.map +1 -1
  271. package/dist/types/core/agent/AgentBuilder.d.ts +43 -0
  272. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  273. package/dist/types/core/agent/buildAgentChart.d.ts +9 -0
  274. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  275. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  276. package/dist/types/core/agent/coverage/absent.d.ts +105 -0
  277. package/dist/types/core/agent/coverage/absent.d.ts.map +1 -0
  278. package/dist/types/core/agent/coverage/answer.d.ts +47 -0
  279. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -0
  280. package/dist/types/core/agent/coverage/evidence.d.ts +69 -0
  281. package/dist/types/core/agent/coverage/evidence.d.ts.map +1 -0
  282. package/dist/types/core/agent/coverage/index.d.ts +18 -0
  283. package/dist/types/core/agent/coverage/index.d.ts.map +1 -0
  284. package/dist/types/core/agent/coverage/items.d.ts +36 -0
  285. package/dist/types/core/agent/coverage/items.d.ts.map +1 -0
  286. package/dist/types/core/agent/coverage/ledger.d.ts +81 -0
  287. package/dist/types/core/agent/coverage/ledger.d.ts.map +1 -0
  288. package/dist/types/core/agent/coverage/read.d.ts +52 -0
  289. package/dist/types/core/agent/coverage/read.d.ts.map +1 -0
  290. package/dist/types/core/agent/coverage/types.d.ts +143 -0
  291. package/dist/types/core/agent/coverage/types.d.ts.map +1 -0
  292. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +7 -0
  293. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  294. package/dist/types/core/agent/stages/prepareFinal.d.ts +18 -0
  295. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  296. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  297. package/dist/types/core/agent/toolEffects.d.ts +2 -2
  298. package/dist/types/core/agent/types.d.ts +14 -0
  299. package/dist/types/core/agent/types.d.ts.map +1 -1
  300. package/dist/types/core/outputFallback.d.ts +15 -1
  301. package/dist/types/core/outputFallback.d.ts.map +1 -1
  302. package/dist/types/debug.d.ts +1 -0
  303. package/dist/types/debug.d.ts.map +1 -1
  304. package/dist/types/events/dispatcher.d.ts +1 -1
  305. package/dist/types/events/dispatcher.d.ts.map +1 -1
  306. package/dist/types/events/payloads.d.ts +82 -0
  307. package/dist/types/events/payloads.d.ts.map +1 -1
  308. package/dist/types/events/registry.d.ts +11 -1
  309. package/dist/types/events/registry.d.ts.map +1 -1
  310. package/dist/types/hosting/conformance/cases.d.ts +2 -1
  311. package/dist/types/hosting/conformance/cases.d.ts.map +1 -1
  312. package/dist/types/hosting/conformance/types.d.ts +7 -7
  313. package/dist/types/hosting/conformance/types.d.ts.map +1 -1
  314. package/dist/types/hosting/errors.d.ts +28 -0
  315. package/dist/types/hosting/errors.d.ts.map +1 -1
  316. package/dist/types/hosting/index.d.ts +11 -3
  317. package/dist/types/hosting/index.d.ts.map +1 -1
  318. package/dist/types/hosting/memorySessions.d.ts.map +1 -1
  319. package/dist/types/hosting/sessionRetention.d.ts +57 -0
  320. package/dist/types/hosting/sessionRetention.d.ts.map +1 -0
  321. package/dist/types/hosting/sqliteSessions.d.ts +11 -1
  322. package/dist/types/hosting/sqliteSessions.d.ts.map +1 -1
  323. package/dist/types/hosting/types.d.ts +184 -0
  324. package/dist/types/hosting/types.d.ts.map +1 -1
  325. package/dist/types/hosting-providers.d.ts +15 -11
  326. package/dist/types/hosting-providers.d.ts.map +1 -1
  327. package/dist/types/index.d.ts +1 -0
  328. package/dist/types/index.d.ts.map +1 -1
  329. package/dist/types/lib/context-bisect/arms/apply.d.ts +55 -0
  330. package/dist/types/lib/context-bisect/arms/apply.d.ts.map +1 -0
  331. package/dist/types/lib/context-bisect/arms/compare.d.ts +28 -0
  332. package/dist/types/lib/context-bisect/arms/compare.d.ts.map +1 -0
  333. package/dist/types/lib/context-bisect/arms/index.d.ts +17 -0
  334. package/dist/types/lib/context-bisect/arms/index.d.ts.map +1 -0
  335. package/dist/types/lib/context-bisect/arms/manifest.d.ts +80 -0
  336. package/dist/types/lib/context-bisect/arms/manifest.d.ts.map +1 -0
  337. package/dist/types/lib/context-bisect/arms/probe.d.ts +55 -0
  338. package/dist/types/lib/context-bisect/arms/probe.d.ts.map +1 -0
  339. package/dist/types/lib/context-bisect/arms/types.d.ts +320 -0
  340. package/dist/types/lib/context-bisect/arms/types.d.ts.map +1 -0
  341. package/dist/types/lib/context-bisect/arms/validate.d.ts +27 -0
  342. package/dist/types/lib/context-bisect/arms/validate.d.ts.map +1 -0
  343. package/dist/types/lib/context-bisect/arms/verdict.d.ts +54 -0
  344. package/dist/types/lib/context-bisect/arms/verdict.d.ts.map +1 -0
  345. package/dist/types/lib/context-bisect/index.d.ts +1 -0
  346. package/dist/types/lib/context-bisect/index.d.ts.map +1 -1
  347. package/dist/types/lib/injection-engine/index.d.ts +1 -1
  348. package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
  349. package/dist/types/lib/injection-engine/skillExamples.d.ts +16 -13
  350. package/dist/types/lib/injection-engine/skillExamples.d.ts.map +1 -1
  351. package/dist/types/lib/injection-engine/skillGraph.d.ts +50 -0
  352. package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
  353. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts +6 -5
  354. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts.map +1 -1
  355. package/dist/types/lib/injection-engine/skillNeverRoutes.d.ts +132 -0
  356. package/dist/types/lib/injection-engine/skillNeverRoutes.d.ts.map +1 -0
  357. package/dist/types/lib/injection-engine/skillPartition.d.ts +70 -0
  358. package/dist/types/lib/injection-engine/skillPartition.d.ts.map +1 -0
  359. package/dist/types/lib/injection-engine/skillsFromDir.d.ts +83 -3
  360. package/dist/types/lib/injection-engine/skillsFromDir.d.ts.map +1 -1
  361. package/dist/types/lib/injection-engine/skillsFromDirRoutes.d.ts +106 -0
  362. package/dist/types/lib/injection-engine/skillsFromDirRoutes.d.ts.map +1 -0
  363. package/dist/types/lib/injection-engine/startRuleClaim.d.ts +92 -0
  364. package/dist/types/lib/injection-engine/startRuleClaim.d.ts.map +1 -0
  365. package/dist/types/lib/injection-engine/toolOutcome.d.ts +12 -3
  366. package/dist/types/lib/injection-engine/toolOutcome.d.ts.map +1 -1
  367. package/package.json +1 -1
@@ -11,9 +11,9 @@
11
11
  * containers, one conversation" answer Google has.
12
12
  *
13
13
  * ── The shape, said plainly ─────────────────────────────────────────────────
14
- * One collection. One document per session. Six fields:
14
+ * One collection. One document per session. Seven fields:
15
15
  *
16
- * sessionId · format · savedAt · envelope · owner · messageCount
16
+ * sessionId · format · savedAt · envelope · owner · messageCount · expiresAt
17
17
  *
18
18
  * That is the SQLite table, moved. It is deliberately the same shape, because
19
19
  * the two stores implement the same port under the same laws, and a reader who
@@ -95,6 +95,45 @@
95
95
  * in, and names those fields rather than restating the service's message — see
96
96
  * {@link firestoreFailure} for why no Google text is ever echoed here.
97
97
  *
98
+ * ── Retention: a SECOND timestamp, not a converted one (9.42.0) ─────────────
99
+ * A native Firestore TTL policy deletes a document when a field of type
100
+ * **Timestamp** is in the past. `savedAt` is a NUMBER — epoch milliseconds —
101
+ * so until this release an operator could not point a policy at this
102
+ * collection at all without a library change. The fix is a second field,
103
+ * `expiresAt`, written as a `Date` (the client stores one as a Timestamp) on
104
+ * every persist, holding `savedAt + expireAfterMs`. Give the store no
105
+ * `expireAfterMs` and the field is written as `null`, which a TTL policy
106
+ * ignores, and nothing about this release changes.
107
+ *
108
+ * **`savedAt` was NOT converted, and that is the load-bearing decision.** It is
109
+ * the ordering key of the composite index, the field the listing sorts by, and
110
+ * the first half of every cursor this store has ever minted (`<savedAt>:<docId>`,
111
+ * parsed with `parseFloat` and handed back to `startAfter` as a number).
112
+ * Converting it would have meant a new index, a new cursor grammar, and every
113
+ * pagination token issued by an earlier release becoming unreadable — but the
114
+ * decisive one is quieter: **Firestore's value ordering sorts by TYPE first.**
115
+ * Every number sorts before every timestamp. A collection holding old
116
+ * number-`savedAt` documents beside new timestamp-`savedAt` ones would list
117
+ * them in two blocks, all of one type then all of the other, with a person's
118
+ * conversations silently out of order by the type of the field rather than by
119
+ * when they were written. A second field costs one small write per turn and
120
+ * has no such shadow.
121
+ *
122
+ * So the migration consequence, plainly:
123
+ *
124
+ * • **Every document already stored stays readable and listable.** Nothing
125
+ * about `savedAt`, the index, the cursor or the query changed, and a
126
+ * document written by 9.33–9.41 is read by this release unchanged.
127
+ * • **Old documents do not start expiring.** They carry no `expiresAt`, and
128
+ * a TTL policy ignores a document whose field is missing. A conversation
129
+ * that is still being used gains one on its next turn; a conversation
130
+ * nobody ever writes to again keeps living. If those matter, delete them
131
+ * by hand once (a query on `savedAt` plus `forget`, or a `gcloud`
132
+ * bulk-delete) — this adapter will not walk your collection behind your
133
+ * back.
134
+ * • **The policy is still yours to create.** `retention().enableWith` prints
135
+ * the exact command with your collection and database in it.
136
+ *
98
137
  * ── The ceiling, since a store should name its own ──────────────────────────
99
138
  * A Firestore document is capped at 1 MiB. A conversation whose stored envelope
100
139
  * approaches that is refused BY NAME before the write
@@ -122,8 +161,29 @@
122
161
  * for it. So the write is a transaction.
123
162
  *
124
163
  * ── How much of this is verified ────────────────────────────────────────────
125
- * **Contract-shaped and tested. NOT field-validated.** Nothing here has been run
126
- * against a live Firestore by this repository.
164
+ * **Field-validated except the ownership refusal (2026-08).** An independent
165
+ * field trial ran THIS adapter against a real Firestore and exercised seven of
166
+ * its eight areas live: the round trip, the server-side indexed listing with
167
+ * its document-name tiebreak and real cursor, the missing-index refusal, the
168
+ * hashed document name, the size ceiling, ownership derived from the envelope,
169
+ * and `forget`.
170
+ *
171
+ * The eighth is named because under-claiming and over-claiming are the same
172
+ * defect: **the refusal of a turn signed by somebody else** — the
173
+ * `resolveSessionOwner` conflict this file's `persist` raises out of the
174
+ * transaction — was NOT exercised, because it did not exist when the trial
175
+ * ran. It is held by tests here, including the contested-write case of the
176
+ * shared conformance battery, and by nothing in the field. Two writers racing
177
+ * for one fresh session against a real Firestore, with the real client's
178
+ * transaction retry underneath, is exactly the shape a double models by
179
+ * assumption; the sibling Vertex adapter's equivalent was found in the field
180
+ * and not in a test suite.
181
+ *
182
+ * This section said "NOT field-validated. Nothing here has been run against a
183
+ * live Firestore" for two releases after that stopped being true. Under-claiming
184
+ * is the safe direction and it is still the same defect class the trials keep
185
+ * reporting: a status that does not track the evidence is a status nobody can
186
+ * use, whichever way it is wrong.
127
187
  *
128
188
  * The pin is the `firestoreSessions` row of `GOOGLE_SURFACE_PINS` in
129
189
  * `test/adapters/google/googlePin.ts`, asserted by
@@ -148,7 +208,8 @@
148
208
  * everywhere. That the row spells those members the way Google does is held by a
149
209
  * hand check against a real install, not by a test that runs here.
150
210
  *
151
- * The DESIGN is informed by an independent field trial of a different Firestore
211
+ * The DESIGN was informed, before any of that, by an EARLIER and separate trial
212
+ * of a DIFFERENT Firestore
152
213
  * session adapter, which ran against a real Firestore and passed eight ownership
153
214
  * and history checks — and whose own report named the defect this adapter does
154
215
  * not reproduce: that adapter read every document for one owner, sorted them in
@@ -158,7 +219,7 @@
158
219
  * real service; it proves nothing about this file's query, cursor, transaction
159
220
  * or index, because that adapter had none of them.
160
221
  */
161
- import type { SessionLifecycle } from '../../hosting/types.js';
222
+ import type { SessionExpiryPolicy, SessionLifecycle } from '../../hosting/types.js';
162
223
  /** One document as it came back. `firestore.d.ts` line 1605. */
163
224
  export interface FirestoreDocumentSnapshotLike {
164
225
  /** A PROPERTY, not a method — `readonly exists: boolean`. */
@@ -282,6 +343,39 @@ export interface FirestoreSessionsOptions {
282
343
  * still loading the module?" is a fair question to have answered here.
283
344
  */
284
345
  readonly firestore?: FirestoreLike;
346
+ /**
347
+ * How long after its last turn a conversation should expire, in
348
+ * milliseconds. Omit and nothing expires (9.42.0).
349
+ *
350
+ * Setting it makes every write stamp {@link EXPIRES_AT_FIELD} —
351
+ * `savedAt + expireAfterMs`, as a timestamp — which is the field a **native
352
+ * Firestore TTL policy** reads. The policy itself is yours to enable, once,
353
+ * with the command {@link FirestoreSessions.retention} hands you; this store
354
+ * writes what it reads and never deletes a document on a clock of its own.
355
+ * Both halves are needed and neither is silent about the other: with no
356
+ * policy the field is inert data, and with no `expireAfterMs` the policy has
357
+ * nothing to act on.
358
+ *
359
+ * **The clock is the conversation's own `savedAt`, not this process's.** So
360
+ * the expiry is IDLE time: every turn pushes it out, and a conversation dies
361
+ * `expireAfterMs` after somebody last spoke, which is what a session
362
+ * retention rule almost always means. It also makes the stamp a pure
363
+ * function of the envelope — the same conversation stamps the same instant
364
+ * on any machine, whatever its clock says.
365
+ *
366
+ * **It does not reach backwards.** Documents written before this was
367
+ * configured carry no expiry field, and a TTL policy ignores a document
368
+ * whose field is missing — so old conversations expire only once they are
369
+ * written again. See the module header for what to do about the ones that
370
+ * never will be.
371
+ *
372
+ * Named `expireAfterMs` rather than `ttlMs` deliberately, even though the
373
+ * artifact stores in this package spell their dial the second way: theirs is
374
+ * stamped once at mint and measured from creation, and this one is measured
375
+ * from the LAST turn and moves on every write. One word for two clocks would
376
+ * be the cheaper name and the more expensive mistake.
377
+ */
378
+ readonly expireAfterMs?: number;
285
379
  /**
286
380
  * @internal Test seam only — the `@google-cloud/firestore` module, injected.
287
381
  * Lets the suite exercise every path (including the refusals) without a
@@ -292,6 +386,34 @@ export interface FirestoreSessionsOptions {
292
386
  }
293
387
  /** Where sessions live when the caller names no collection. */
294
388
  export declare const DEFAULT_SESSION_COLLECTION = "agentfootprint_sessions";
389
+ /**
390
+ * The document field a native TTL policy is configured against (9.42.0).
391
+ *
392
+ * A SECOND field beside `savedAt`, never a change to it — see the module
393
+ * header for why converting the ordering key would have re-sorted every
394
+ * conversation already in the collection.
395
+ *
396
+ * Exported because an operator has to type this name into the console or the
397
+ * `gcloud` line, and a field name that lives only inside a string literal is a
398
+ * field name somebody will mistype at 2am.
399
+ */
400
+ export declare const EXPIRES_AT_FIELD = "expiresAt";
401
+ /**
402
+ * The one step that turns the TTL policy on, with this store's own collection
403
+ * and database already in it.
404
+ *
405
+ * One spelling, shared by the retention answer and the documentation that
406
+ * quotes it, for the same reason the missing-index refusal prints the whole
407
+ * `gcloud` line: the person reading it can fix this in sixty seconds, and only
408
+ * if nobody makes them go and look up the flags first.
409
+ *
410
+ * `--database` is always printed, including for `(default)`, where gcloud
411
+ * would have assumed it — a project may hold several databases, and a policy
412
+ * created on the wrong one leaves conversations living forever with nothing to
413
+ * suggest why. Single-quoted, because `(default)` is bare parentheses and a
414
+ * syntax error in every shell this will be pasted into.
415
+ */
416
+ export declare function ttlPolicyCommand(collection: string, database?: string): string;
295
417
  /**
296
418
  * Firestore's hard ceiling on one document, in bytes. Not ours — the service's.
297
419
  *
@@ -321,6 +443,21 @@ export interface FirestoreSessions extends SessionLifecycle {
321
443
  readonly collection: string;
322
444
  /** Forget one session. A session that was never there is not an error. */
323
445
  forget(sessionId: string): Promise<void>;
446
+ /**
447
+ * How conversations here stop existing: **the backend does it**, on a native
448
+ * TTL policy an operator enables once, against {@link EXPIRES_AT_FIELD}
449
+ * (9.42.0).
450
+ *
451
+ * Narrowed from the port's optional member to a required one, and to the one
452
+ * arm this store can be: a caller holding a `FirestoreSessions` needs no
453
+ * feature check and no branch, and gets a compile error rather than a
454
+ * runtime surprise if they reach for a sweep that does not exist here.
455
+ *
456
+ * `active` says whether this store was built with `expireAfterMs` and is
457
+ * therefore stamping anything; `enableWith` is the exact command, with this
458
+ * store's collection and database already filled in.
459
+ */
460
+ retention(): SessionExpiryPolicy;
324
461
  /**
325
462
  * The document name one session id maps to — the sha-256 above.
326
463
  *
@@ -401,20 +538,31 @@ export declare class EnvelopeTooLargeError extends Error {
401
538
  * Conversations in Firestore — a fleet-shared session store with no instance to
402
539
  * run.
403
540
  *
404
- * **Status: contract-shaped and tested, NOT field-validated.** Every SDK member
405
- * it calls was read off a real install of `@google-cloud/firestore` 9.0.0 and
406
- * hand-verified there; the test that re-checks those names against the real
407
- * package SKIPS in this repository, because the package is deliberately not
408
- * installed here. What runs in CI is the dispatch pin. No test here pretends to
409
- * have reached Google. See the module header for the full account, and for what
410
- * a field trial of a DIFFERENT adapter did and did not establish about this
411
- * design.
541
+ * **Status: field-validated except the ownership refusal (2026-08).** An
542
+ * independent field trial ran this adapter against a real Firestore and
543
+ * exercised seven of its eight areas live — round trip, indexed and cursored
544
+ * listing, the missing-index refusal, the hashed document name, the size
545
+ * ceiling, derived ownership and `forget`. The eighth, the refusal of a turn
546
+ * signed by somebody ELSE, was added after the trial and is held by tests
547
+ * here and by nothing in the field. Every SDK member it calls was read off a
548
+ * real install of `@google-cloud/firestore` 9.0.0 and hand-verified there; the
549
+ * test that re-checks those names against the real package SKIPS in this
550
+ * repository, because the package is deliberately not installed here. What
551
+ * runs in CI is the dispatch pin. See the module header for the full account.
412
552
  *
413
553
  * @throws FirestoreIndexMissingError from `listByUser` until the composite index
414
554
  * exists — see the module header for the exact index.
415
555
  * @throws EnvelopeTooLargeError from `persist` for a conversation above
416
556
  * {@link FIRESTORE_MAX_ENVELOPE_BYTES}. Never truncated.
417
557
  *
558
+ * @example Conversations that expire 30 days after their last turn
559
+ * const sessions = firestoreSessions({
560
+ * project: 'my-project',
561
+ * expireAfterMs: 30 * 24 * 60 * 60 * 1000,
562
+ * });
563
+ * // Then, ONCE, as an operator — the store prints the exact command:
564
+ * console.log(sessions.retention().enableWith);
565
+ *
418
566
  * @example A standing agent whose conversations are shared across instances
419
567
  * import { standingAgent, nodeHost } from 'agentfootprint/hosting';
420
568
  * import { firestoreSessions } from 'agentfootprint/hosting';
@@ -11,9 +11,9 @@
11
11
  * containers, one conversation" answer Google has.
12
12
  *
13
13
  * ── The shape, said plainly ─────────────────────────────────────────────────
14
- * One collection. One document per session. Six fields:
14
+ * One collection. One document per session. Seven fields:
15
15
  *
16
- * sessionId · format · savedAt · envelope · owner · messageCount
16
+ * sessionId · format · savedAt · envelope · owner · messageCount · expiresAt
17
17
  *
18
18
  * That is the SQLite table, moved. It is deliberately the same shape, because
19
19
  * the two stores implement the same port under the same laws, and a reader who
@@ -95,6 +95,45 @@
95
95
  * in, and names those fields rather than restating the service's message — see
96
96
  * {@link firestoreFailure} for why no Google text is ever echoed here.
97
97
  *
98
+ * ── Retention: a SECOND timestamp, not a converted one (9.42.0) ─────────────
99
+ * A native Firestore TTL policy deletes a document when a field of type
100
+ * **Timestamp** is in the past. `savedAt` is a NUMBER — epoch milliseconds —
101
+ * so until this release an operator could not point a policy at this
102
+ * collection at all without a library change. The fix is a second field,
103
+ * `expiresAt`, written as a `Date` (the client stores one as a Timestamp) on
104
+ * every persist, holding `savedAt + expireAfterMs`. Give the store no
105
+ * `expireAfterMs` and the field is written as `null`, which a TTL policy
106
+ * ignores, and nothing about this release changes.
107
+ *
108
+ * **`savedAt` was NOT converted, and that is the load-bearing decision.** It is
109
+ * the ordering key of the composite index, the field the listing sorts by, and
110
+ * the first half of every cursor this store has ever minted (`<savedAt>:<docId>`,
111
+ * parsed with `parseFloat` and handed back to `startAfter` as a number).
112
+ * Converting it would have meant a new index, a new cursor grammar, and every
113
+ * pagination token issued by an earlier release becoming unreadable — but the
114
+ * decisive one is quieter: **Firestore's value ordering sorts by TYPE first.**
115
+ * Every number sorts before every timestamp. A collection holding old
116
+ * number-`savedAt` documents beside new timestamp-`savedAt` ones would list
117
+ * them in two blocks, all of one type then all of the other, with a person's
118
+ * conversations silently out of order by the type of the field rather than by
119
+ * when they were written. A second field costs one small write per turn and
120
+ * has no such shadow.
121
+ *
122
+ * So the migration consequence, plainly:
123
+ *
124
+ * • **Every document already stored stays readable and listable.** Nothing
125
+ * about `savedAt`, the index, the cursor or the query changed, and a
126
+ * document written by 9.33–9.41 is read by this release unchanged.
127
+ * • **Old documents do not start expiring.** They carry no `expiresAt`, and
128
+ * a TTL policy ignores a document whose field is missing. A conversation
129
+ * that is still being used gains one on its next turn; a conversation
130
+ * nobody ever writes to again keeps living. If those matter, delete them
131
+ * by hand once (a query on `savedAt` plus `forget`, or a `gcloud`
132
+ * bulk-delete) — this adapter will not walk your collection behind your
133
+ * back.
134
+ * • **The policy is still yours to create.** `retention().enableWith` prints
135
+ * the exact command with your collection and database in it.
136
+ *
98
137
  * ── The ceiling, since a store should name its own ──────────────────────────
99
138
  * A Firestore document is capped at 1 MiB. A conversation whose stored envelope
100
139
  * approaches that is refused BY NAME before the write
@@ -122,8 +161,29 @@
122
161
  * for it. So the write is a transaction.
123
162
  *
124
163
  * ── How much of this is verified ────────────────────────────────────────────
125
- * **Contract-shaped and tested. NOT field-validated.** Nothing here has been run
126
- * against a live Firestore by this repository.
164
+ * **Field-validated except the ownership refusal (2026-08).** An independent
165
+ * field trial ran THIS adapter against a real Firestore and exercised seven of
166
+ * its eight areas live: the round trip, the server-side indexed listing with
167
+ * its document-name tiebreak and real cursor, the missing-index refusal, the
168
+ * hashed document name, the size ceiling, ownership derived from the envelope,
169
+ * and `forget`.
170
+ *
171
+ * The eighth is named because under-claiming and over-claiming are the same
172
+ * defect: **the refusal of a turn signed by somebody else** — the
173
+ * `resolveSessionOwner` conflict this file's `persist` raises out of the
174
+ * transaction — was NOT exercised, because it did not exist when the trial
175
+ * ran. It is held by tests here, including the contested-write case of the
176
+ * shared conformance battery, and by nothing in the field. Two writers racing
177
+ * for one fresh session against a real Firestore, with the real client's
178
+ * transaction retry underneath, is exactly the shape a double models by
179
+ * assumption; the sibling Vertex adapter's equivalent was found in the field
180
+ * and not in a test suite.
181
+ *
182
+ * This section said "NOT field-validated. Nothing here has been run against a
183
+ * live Firestore" for two releases after that stopped being true. Under-claiming
184
+ * is the safe direction and it is still the same defect class the trials keep
185
+ * reporting: a status that does not track the evidence is a status nobody can
186
+ * use, whichever way it is wrong.
127
187
  *
128
188
  * The pin is the `firestoreSessions` row of `GOOGLE_SURFACE_PINS` in
129
189
  * `test/adapters/google/googlePin.ts`, asserted by
@@ -148,7 +208,8 @@
148
208
  * everywhere. That the row spells those members the way Google does is held by a
149
209
  * hand check against a real install, not by a test that runs here.
150
210
  *
151
- * The DESIGN is informed by an independent field trial of a different Firestore
211
+ * The DESIGN was informed, before any of that, by an EARLIER and separate trial
212
+ * of a DIFFERENT Firestore
152
213
  * session adapter, which ran against a real Firestore and passed eight ownership
153
214
  * and history checks — and whose own report named the defect this adapter does
154
215
  * not reproduce: that adapter read every document for one owner, sorted them in
@@ -166,6 +227,42 @@ import { lazyRequire } from '../../lib/lazyRequire.js';
166
227
  const ADAPTER = 'firestoreSessions';
167
228
  /** Where sessions live when the caller names no collection. */
168
229
  export const DEFAULT_SESSION_COLLECTION = 'agentfootprint_sessions';
230
+ /**
231
+ * The document field a native TTL policy is configured against (9.42.0).
232
+ *
233
+ * A SECOND field beside `savedAt`, never a change to it — see the module
234
+ * header for why converting the ordering key would have re-sorted every
235
+ * conversation already in the collection.
236
+ *
237
+ * Exported because an operator has to type this name into the console or the
238
+ * `gcloud` line, and a field name that lives only inside a string literal is a
239
+ * field name somebody will mistype at 2am.
240
+ */
241
+ export const EXPIRES_AT_FIELD = 'expiresAt';
242
+ /**
243
+ * The one step that turns the TTL policy on, with this store's own collection
244
+ * and database already in it.
245
+ *
246
+ * One spelling, shared by the retention answer and the documentation that
247
+ * quotes it, for the same reason the missing-index refusal prints the whole
248
+ * `gcloud` line: the person reading it can fix this in sixty seconds, and only
249
+ * if nobody makes them go and look up the flags first.
250
+ *
251
+ * `--database` is always printed, including for `(default)`, where gcloud
252
+ * would have assumed it — a project may hold several databases, and a policy
253
+ * created on the wrong one leaves conversations living forever with nothing to
254
+ * suggest why. Single-quoted, because `(default)` is bare parentheses and a
255
+ * syntax error in every shell this will be pasted into.
256
+ */
257
+ export function ttlPolicyCommand(collection, database) {
258
+ const flagValue = `'${database ?? '<the database your Firestore client was built for>'}'`;
259
+ return (`gcloud firestore fields ttls update ${EXPIRES_AT_FIELD} ` +
260
+ `--collection-group=${collection} --enable-ttl --database=${flagValue}` +
261
+ (database === undefined
262
+ ? ` (this store did not build the Firestore client, so it cannot name the database — ` +
263
+ `fill that flag in from wherever the client was constructed)`
264
+ : ``));
265
+ }
169
266
  /** How many rows one `listByUser` page carries when the caller names no limit. */
170
267
  const DEFAULT_PAGE = 50;
171
268
  /**
@@ -294,20 +391,31 @@ export class EnvelopeTooLargeError extends Error {
294
391
  * Conversations in Firestore — a fleet-shared session store with no instance to
295
392
  * run.
296
393
  *
297
- * **Status: contract-shaped and tested, NOT field-validated.** Every SDK member
298
- * it calls was read off a real install of `@google-cloud/firestore` 9.0.0 and
299
- * hand-verified there; the test that re-checks those names against the real
300
- * package SKIPS in this repository, because the package is deliberately not
301
- * installed here. What runs in CI is the dispatch pin. No test here pretends to
302
- * have reached Google. See the module header for the full account, and for what
303
- * a field trial of a DIFFERENT adapter did and did not establish about this
304
- * design.
394
+ * **Status: field-validated except the ownership refusal (2026-08).** An
395
+ * independent field trial ran this adapter against a real Firestore and
396
+ * exercised seven of its eight areas live — round trip, indexed and cursored
397
+ * listing, the missing-index refusal, the hashed document name, the size
398
+ * ceiling, derived ownership and `forget`. The eighth, the refusal of a turn
399
+ * signed by somebody ELSE, was added after the trial and is held by tests
400
+ * here and by nothing in the field. Every SDK member it calls was read off a
401
+ * real install of `@google-cloud/firestore` 9.0.0 and hand-verified there; the
402
+ * test that re-checks those names against the real package SKIPS in this
403
+ * repository, because the package is deliberately not installed here. What
404
+ * runs in CI is the dispatch pin. See the module header for the full account.
305
405
  *
306
406
  * @throws FirestoreIndexMissingError from `listByUser` until the composite index
307
407
  * exists — see the module header for the exact index.
308
408
  * @throws EnvelopeTooLargeError from `persist` for a conversation above
309
409
  * {@link FIRESTORE_MAX_ENVELOPE_BYTES}. Never truncated.
310
410
  *
411
+ * @example Conversations that expire 30 days after their last turn
412
+ * const sessions = firestoreSessions({
413
+ * project: 'my-project',
414
+ * expireAfterMs: 30 * 24 * 60 * 60 * 1000,
415
+ * });
416
+ * // Then, ONCE, as an operator — the store prints the exact command:
417
+ * console.log(sessions.retention().enableWith);
418
+ *
311
419
  * @example A standing agent whose conversations are shared across instances
312
420
  * import { standingAgent, nodeHost } from 'agentfootprint/hosting';
313
421
  * import { firestoreSessions } from 'agentfootprint/hosting';
@@ -359,6 +467,16 @@ export function firestoreSessions(options = {}) {
359
467
  };
360
468
  const collection = () => db.collection(collectionName);
361
469
  const docFor = (sessionId) => collection().doc(documentIdFor(sessionId));
470
+ /**
471
+ * When this conversation should expire, or `null` for a store that was not
472
+ * given a retention setting.
473
+ *
474
+ * Idle expiry, measured from the envelope's own `savedAt`: every turn moves
475
+ * it, so a live conversation never expires underneath somebody.
476
+ */
477
+ const expiresAtFor = (savedAt) => options.expireAfterMs === undefined || !Number.isFinite(options.expireAfterMs)
478
+ ? null
479
+ : new Date(savedAt + options.expireAfterMs);
362
480
  /** The stored row, read back without trusting any of its types. */
363
481
  const readRow = async (sessionId, operation) => {
364
482
  let snapshot;
@@ -423,6 +541,27 @@ export function firestoreSessions(options = {}) {
423
541
  savedAt: checked.savedAt,
424
542
  envelope: json,
425
543
  messageCount: envelopeTranscript(checked).length,
544
+ // The TTL field (9.42.0) — a SECOND field, never a change to
545
+ // `savedAt`. See the module header: `savedAt` is the ordering key of
546
+ // the composite index and the first half of every cursor this store
547
+ // has ever minted, and Firestore sorts values by TYPE before value, so
548
+ // making it a timestamp would have put every document written from now
549
+ // on into a different sort bucket from every document already stored.
550
+ //
551
+ // A `Date`, which the client converts to a Timestamp on write — and a
552
+ // TTL policy acts only on a Timestamp. Writing one this way rather
553
+ // than through `Timestamp.fromMillis` is deliberate: it adds no member
554
+ // to the SDK surface this adapter dispatches (so the pin row is
555
+ // unchanged and no new name had to be hand-verified against a real
556
+ // install), and it works identically for a caller who passed their own
557
+ // client.
558
+ //
559
+ // `null` when nothing was configured, never `undefined`: the default
560
+ // client throws on `undefined`, and a TTL policy ignores a field that
561
+ // is null or missing — so an unconfigured store writes an inert field
562
+ // rather than an absent one, exactly as `owner` does one line down and
563
+ // for the same reason.
564
+ [EXPIRES_AT_FIELD]: expiresAtFor(checked.savedAt),
426
565
  };
427
566
  // WRITE ONCE for the owner, LAST WRITE WINS for everything else — the one
428
567
  // rule every store in this package shares, and since 9.36.1 the one
@@ -602,6 +741,36 @@ export function firestoreSessions(options = {}) {
602
741
  throw firestoreFailure('forgetting a session', collectionName, err);
603
742
  }
604
743
  },
744
+ // ── Retention (9.42.0) ──────────────────────────────────────────────
745
+ //
746
+ // `'the-backend'`, and the honest answer rather than the convenient one.
747
+ // This store COULD have offered a sweep — query the old documents, delete
748
+ // them one at a time — and it would have been a worse answer at every
749
+ // scale: a full index read plus one write per document, billed, repeated
750
+ // nightly, to do a job the service already does for free and does not
751
+ // charge a delete for. A port member exists so a caller can find out what
752
+ // a store really does; a store that implemented the OTHER arm because it
753
+ // was implementable would be answering a different question.
754
+ //
755
+ // It works on a closed store on purpose — it reads no document and calls
756
+ // no SDK member. An operator asking "what expires these, and how do I turn
757
+ // it on?" during a shutdown or an incident should get the answer, not the
758
+ // refusal that guards the data plane.
759
+ retention: () => ({
760
+ deletedBy: 'the-backend',
761
+ // Whether this store is really stamping the field, which is a different
762
+ // fact from whether the mechanism exists. Reported rather than implied:
763
+ // "there is a TTL field" and "conversations are expiring" are the two
764
+ // things an auditor must not be allowed to confuse.
765
+ active: options.expireAfterMs !== undefined && Number.isFinite(options.expireAfterMs),
766
+ expiresOn: EXPIRES_AT_FIELD,
767
+ enableWith: `${ttlPolicyCommand(collectionName, databaseName)} — or Firestore console → ` +
768
+ `Time-to-live (TTL) → Create policy, on collection '${collectionName}' and field ` +
769
+ `'${EXPIRES_AT_FIELD}'. The policy deletes a document within 24 hours of the ` +
770
+ `instant in that field; it is not a hard deadline and the service says so. ` +
771
+ `Documents stored before 'expireAfterMs' was configured carry no such field and ` +
772
+ `are never deleted by it — they expire only once they are written again.`,
773
+ }),
605
774
  async close() {
606
775
  if (closed)
607
776
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"firestoreSessions.js","sourceRoot":"","sources":["../../../../src/adapters/hosting/firestoreSessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestoreSessions.js","sourceRoot":"","sources":["../../../../src/adapters/hosting/firestoreSessions.ts"],"names":[],"mappings":"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"}
@@ -100,7 +100,7 @@
100
100
  * be read must never be answered with a fresh start — that failure is
101
101
  * indistinguishable, from the outside, from a brand-new user.
102
102
  */
103
- import type { CheckpointEnvelope, SessionLifecycle } from '../../hosting/types.js';
103
+ import type { CheckpointEnvelope, SessionExpiryPolicy, SessionLifecycle } from '../../hosting/types.js';
104
104
  import { type AiPlatformConnection } from '../google/aiPlatform.js';
105
105
  /**
106
106
  * The `sessionState` key the envelope lives under.
@@ -195,6 +195,21 @@ export interface AgentEngineSessions extends SessionLifecycle {
195
195
  readonly parent: string;
196
196
  /** Forget one session. A session that was never there is not an error. */
197
197
  forget(sessionId: string): Promise<void>;
198
+ /**
199
+ * How conversations here stop existing: **the service does it**, on the
200
+ * `ttl` this store was built with (9.42.0).
201
+ *
202
+ * Narrowed from the port's optional member to a required one, and to the one
203
+ * arm this store can be — a caller holding an `AgentEngineSessions` needs no
204
+ * feature check, and reaching for a sweep that does not exist here is a
205
+ * compile error rather than a surprise at 3am.
206
+ *
207
+ * There is nothing to call and nothing for a cron job to do. `active` says
208
+ * whether a `ttl` was given at all; `enableWith` says what to pass and
209
+ * repeats the two facts a caller has to plan around — the service's 24-hour
210
+ * floor, and that the value is sent on CREATE only.
211
+ */
212
+ retention(): SessionExpiryPolicy;
198
213
  /**
199
214
  * Stop using this store. Idempotent, and **final** — reading or writing
200
215
  * afterwards refuses by name rather than quietly reconnecting, because a