@kvman/kvcoder 0.1.6 → 0.1.8

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 (384) hide show
  1. package/dist/api.d.ts +49 -3
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/calls/run-shell.d.ts.map +1 -1
  4. package/dist/calls/run-shell.js +39 -9
  5. package/dist/calls/run-shell.js.map +1 -1
  6. package/dist/connector-call.d.ts +1 -1
  7. package/dist/connector-call.d.ts.map +1 -1
  8. package/dist/connector-call.js +4 -2
  9. package/dist/connector-call.js.map +1 -1
  10. package/dist/connectors/artifact.d.ts +1 -1
  11. package/dist/connectors/artifact.d.ts.map +1 -1
  12. package/dist/connectors/artifact.js +4 -4
  13. package/dist/connectors/artifact.js.map +1 -1
  14. package/dist/connectors/ask.d.ts +24 -0
  15. package/dist/connectors/ask.d.ts.map +1 -1
  16. package/dist/connectors/ask.js +20 -11
  17. package/dist/connectors/ask.js.map +1 -1
  18. package/dist/connectors/background.d.ts +14 -1
  19. package/dist/connectors/background.d.ts.map +1 -1
  20. package/dist/connectors/background.js +53 -23
  21. package/dist/connectors/background.js.map +1 -1
  22. package/dist/connectors/builtin-connectors.d.ts +110 -0
  23. package/dist/connectors/builtin-connectors.d.ts.map +1 -1
  24. package/dist/connectors/builtin-connectors.js +4 -1
  25. package/dist/connectors/builtin-connectors.js.map +1 -1
  26. package/dist/connectors/delegate.d.ts +3 -2
  27. package/dist/connectors/delegate.d.ts.map +1 -1
  28. package/dist/connectors/delegate.js +27 -9
  29. package/dist/connectors/delegate.js.map +1 -1
  30. package/dist/connectors/execution-map.d.ts +62 -0
  31. package/dist/connectors/execution-map.d.ts.map +1 -0
  32. package/dist/connectors/execution-map.js +142 -0
  33. package/dist/connectors/execution-map.js.map +1 -0
  34. package/dist/connectors/fs.d.ts +32 -1
  35. package/dist/connectors/fs.d.ts.map +1 -1
  36. package/dist/connectors/fs.js +76 -45
  37. package/dist/connectors/fs.js.map +1 -1
  38. package/dist/connectors/mcp.d.ts +18 -1
  39. package/dist/connectors/mcp.d.ts.map +1 -1
  40. package/dist/connectors/mcp.js +54 -6
  41. package/dist/connectors/mcp.js.map +1 -1
  42. package/dist/connectors/payload-fields.d.ts.map +1 -1
  43. package/dist/connectors/payload-fields.js +1 -1
  44. package/dist/connectors/payload-fields.js.map +1 -1
  45. package/dist/delegate/approved-run.d.ts +4 -6
  46. package/dist/delegate/approved-run.d.ts.map +1 -1
  47. package/dist/delegate/approved-run.js +74 -34
  48. package/dist/delegate/approved-run.js.map +1 -1
  49. package/dist/delegate/git-staging.d.ts +12 -0
  50. package/dist/delegate/git-staging.d.ts.map +1 -0
  51. package/dist/delegate/git-staging.js +54 -0
  52. package/dist/delegate/git-staging.js.map +1 -0
  53. package/dist/delegate/permission.d.ts +240 -0
  54. package/dist/delegate/permission.d.ts.map +1 -0
  55. package/dist/delegate/permission.js +78 -0
  56. package/dist/delegate/permission.js.map +1 -0
  57. package/dist/delegate/program-permission.d.ts +27 -0
  58. package/dist/delegate/program-permission.d.ts.map +1 -0
  59. package/dist/delegate/program-permission.js +53 -0
  60. package/dist/delegate/program-permission.js.map +1 -0
  61. package/dist/delegate/register-worker-run.d.ts.map +1 -1
  62. package/dist/delegate/register-worker-run.js +27 -11
  63. package/dist/delegate/register-worker-run.js.map +1 -1
  64. package/dist/delegate/run-program.d.ts.map +1 -1
  65. package/dist/delegate/run-program.js +29 -8
  66. package/dist/delegate/run-program.js.map +1 -1
  67. package/dist/delegate/runs.d.ts +14 -4
  68. package/dist/delegate/runs.d.ts.map +1 -1
  69. package/dist/delegate/runs.js +49 -19
  70. package/dist/delegate/runs.js.map +1 -1
  71. package/dist/delegate/staging-guard.d.ts +9 -0
  72. package/dist/delegate/staging-guard.d.ts.map +1 -0
  73. package/dist/delegate/staging-guard.js +55 -0
  74. package/dist/delegate/staging-guard.js.map +1 -0
  75. package/dist/delegate/start-background.d.ts +7 -0
  76. package/dist/delegate/start-background.d.ts.map +1 -0
  77. package/dist/delegate/start-background.js +32 -0
  78. package/dist/delegate/start-background.js.map +1 -0
  79. package/dist/delegate/start-pending.d.ts +5 -0
  80. package/dist/delegate/start-pending.d.ts.map +1 -0
  81. package/dist/delegate/start-pending.js +42 -0
  82. package/dist/delegate/start-pending.js.map +1 -0
  83. package/dist/delegate/workers.d.ts +5 -2
  84. package/dist/delegate/workers.d.ts.map +1 -1
  85. package/dist/delegate/workers.js +44 -8
  86. package/dist/delegate/workers.js.map +1 -1
  87. package/dist/files/file-change.d.ts +28 -0
  88. package/dist/files/file-change.d.ts.map +1 -0
  89. package/dist/files/file-change.js +125 -0
  90. package/dist/files/file-change.js.map +1 -0
  91. package/dist/files/file-parts.d.ts +18 -0
  92. package/dist/files/file-parts.d.ts.map +1 -0
  93. package/dist/files/file-parts.js +40 -0
  94. package/dist/files/file-parts.js.map +1 -0
  95. package/dist/files/read-file.d.ts +9 -1
  96. package/dist/files/read-file.d.ts.map +1 -1
  97. package/dist/files/read-file.js +35 -13
  98. package/dist/files/read-file.js.map +1 -1
  99. package/dist/files/search-text.d.ts +12 -2
  100. package/dist/files/search-text.d.ts.map +1 -1
  101. package/dist/files/search-text.js +87 -23
  102. package/dist/files/search-text.js.map +1 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/jobs/job-rows.d.ts +11 -2
  107. package/dist/jobs/job-rows.d.ts.map +1 -1
  108. package/dist/jobs/job-rows.js +24 -13
  109. package/dist/jobs/job-rows.js.map +1 -1
  110. package/dist/jobs/process-handlers.d.ts.map +1 -1
  111. package/dist/jobs/process-handlers.js +12 -1
  112. package/dist/jobs/process-handlers.js.map +1 -1
  113. package/dist/jobs/process-report.d.ts.map +1 -1
  114. package/dist/jobs/process-report.js +2 -1
  115. package/dist/jobs/process-report.js.map +1 -1
  116. package/dist/jobs/process-run.d.ts.map +1 -1
  117. package/dist/jobs/process-run.js +2 -1
  118. package/dist/jobs/process-run.js.map +1 -1
  119. package/dist/jobs/register-jobs.d.ts.map +1 -1
  120. package/dist/jobs/register-jobs.js +1 -0
  121. package/dist/jobs/register-jobs.js.map +1 -1
  122. package/dist/maps/map-reminder.d.ts +7 -0
  123. package/dist/maps/map-reminder.d.ts.map +1 -0
  124. package/dist/maps/map-reminder.js +24 -0
  125. package/dist/maps/map-reminder.js.map +1 -0
  126. package/dist/maps/map-rules.d.ts +36 -0
  127. package/dist/maps/map-rules.d.ts.map +1 -0
  128. package/dist/maps/map-rules.js +86 -0
  129. package/dist/maps/map-rules.js.map +1 -0
  130. package/dist/maps/map-schema.d.ts +55 -0
  131. package/dist/maps/map-schema.d.ts.map +1 -0
  132. package/dist/maps/map-schema.js +27 -0
  133. package/dist/maps/map-schema.js.map +1 -0
  134. package/dist/maps/register-maps.d.ts +3 -0
  135. package/dist/maps/register-maps.d.ts.map +1 -0
  136. package/dist/maps/register-maps.js +21 -0
  137. package/dist/maps/register-maps.js.map +1 -0
  138. package/dist/mcp/connect.d.ts +2 -0
  139. package/dist/mcp/connect.d.ts.map +1 -1
  140. package/dist/mcp/connect.js +16 -4
  141. package/dist/mcp/connect.js.map +1 -1
  142. package/dist/mcp/oauth-provider.d.ts +8 -5
  143. package/dist/mcp/oauth-provider.d.ts.map +1 -1
  144. package/dist/mcp/oauth-provider.js +31 -22
  145. package/dist/mcp/oauth-provider.js.map +1 -1
  146. package/dist/mcp/secrets.d.ts +2 -0
  147. package/dist/mcp/secrets.d.ts.map +1 -1
  148. package/dist/mcp/secrets.js +6 -0
  149. package/dist/mcp/secrets.js.map +1 -1
  150. package/dist/mcp/sign-in.d.ts.map +1 -1
  151. package/dist/mcp/sign-in.js +12 -4
  152. package/dist/mcp/sign-in.js.map +1 -1
  153. package/dist/messages/receive-message.d.ts +2 -1
  154. package/dist/messages/receive-message.d.ts.map +1 -1
  155. package/dist/messages/receive-message.js +34 -9
  156. package/dist/messages/receive-message.js.map +1 -1
  157. package/dist/messages/register-messages.d.ts.map +1 -1
  158. package/dist/messages/register-messages.js +13 -8
  159. package/dist/messages/register-messages.js.map +1 -1
  160. package/dist/messages/send-receipt.d.ts +10 -0
  161. package/dist/messages/send-receipt.d.ts.map +1 -0
  162. package/dist/messages/send-receipt.js +14 -0
  163. package/dist/messages/send-receipt.js.map +1 -0
  164. package/dist/prompt/build-prompt.d.ts +1 -0
  165. package/dist/prompt/build-prompt.d.ts.map +1 -1
  166. package/dist/prompt/build-prompt.js +5 -1
  167. package/dist/prompt/build-prompt.js.map +1 -1
  168. package/dist/prompt/project-rules.d.ts +6 -0
  169. package/dist/prompt/project-rules.d.ts.map +1 -0
  170. package/dist/prompt/project-rules.js +37 -0
  171. package/dist/prompt/project-rules.js.map +1 -0
  172. package/dist/prompt/session-grants.d.ts +209 -0
  173. package/dist/prompt/session-grants.d.ts.map +1 -0
  174. package/dist/prompt/session-grants.js +50 -0
  175. package/dist/prompt/session-grants.js.map +1 -0
  176. package/dist/prompt/session-prompt.d.ts +3 -2
  177. package/dist/prompt/session-prompt.d.ts.map +1 -1
  178. package/dist/prompt/session-prompt.js +24 -40
  179. package/dist/prompt/session-prompt.js.map +1 -1
  180. package/dist/prompt/working-method.d.ts.map +1 -1
  181. package/dist/prompt/working-method.js +23 -17
  182. package/dist/prompt/working-method.js.map +1 -1
  183. package/dist/register-settings.d.ts +3 -1
  184. package/dist/register-settings.d.ts.map +1 -1
  185. package/dist/register-settings.js +5 -4
  186. package/dist/register-settings.js.map +1 -1
  187. package/dist/registry/register-connectors.d.ts +9 -0
  188. package/dist/registry/register-connectors.d.ts.map +1 -1
  189. package/dist/registry/register-connectors.js +20 -12
  190. package/dist/registry/register-connectors.js.map +1 -1
  191. package/dist/result-text.d.ts +4 -0
  192. package/dist/result-text.d.ts.map +1 -1
  193. package/dist/result-text.js +9 -0
  194. package/dist/result-text.js.map +1 -1
  195. package/dist/schemas/records.d.ts +142 -0
  196. package/dist/schemas/records.d.ts.map +1 -1
  197. package/dist/schemas/records.js +60 -2
  198. package/dist/schemas/records.js.map +1 -1
  199. package/dist/sessions/execution-root.d.ts +8 -0
  200. package/dist/sessions/execution-root.d.ts.map +1 -0
  201. package/dist/sessions/execution-root.js +25 -0
  202. package/dist/sessions/execution-root.js.map +1 -0
  203. package/dist/sessions/new-session.d.ts +5 -1
  204. package/dist/sessions/new-session.d.ts.map +1 -1
  205. package/dist/sessions/new-session.js +17 -4
  206. package/dist/sessions/new-session.js.map +1 -1
  207. package/dist/sessions/register-context.d.ts.map +1 -1
  208. package/dist/sessions/register-context.js +6 -5
  209. package/dist/sessions/register-context.js.map +1 -1
  210. package/dist/sessions/register-fork-export.d.ts.map +1 -1
  211. package/dist/sessions/register-fork-export.js +5 -3
  212. package/dist/sessions/register-fork-export.js.map +1 -1
  213. package/dist/sessions/register-lifecycle.d.ts.map +1 -1
  214. package/dist/sessions/register-lifecycle.js +14 -5
  215. package/dist/sessions/register-lifecycle.js.map +1 -1
  216. package/dist/sessions/register-sessions.d.ts.map +1 -1
  217. package/dist/sessions/register-sessions.js +0 -2
  218. package/dist/sessions/register-sessions.js.map +1 -1
  219. package/dist/sessions/session-view.d.ts +23 -0
  220. package/dist/sessions/session-view.d.ts.map +1 -1
  221. package/dist/sessions/session-view.js +4 -1
  222. package/dist/sessions/session-view.js.map +1 -1
  223. package/dist/store/all-docs.d.ts +4 -0
  224. package/dist/store/all-docs.d.ts.map +1 -0
  225. package/dist/store/all-docs.js +14 -0
  226. package/dist/store/all-docs.js.map +1 -0
  227. package/dist/store/collections.d.ts +230 -0
  228. package/dist/store/collections.d.ts.map +1 -1
  229. package/dist/store/collections.js +16 -1
  230. package/dist/store/collections.js.map +1 -1
  231. package/dist/turns/answer-fingerprint.d.ts +4 -0
  232. package/dist/turns/answer-fingerprint.d.ts.map +1 -0
  233. package/dist/turns/answer-fingerprint.js +18 -0
  234. package/dist/turns/answer-fingerprint.js.map +1 -0
  235. package/dist/turns/apply-answer.d.ts +19 -0
  236. package/dist/turns/apply-answer.d.ts.map +1 -0
  237. package/dist/turns/apply-answer.js +47 -0
  238. package/dist/turns/apply-answer.js.map +1 -0
  239. package/dist/turns/background.d.ts +3 -0
  240. package/dist/turns/background.d.ts.map +1 -1
  241. package/dist/turns/background.js +13 -12
  242. package/dist/turns/background.js.map +1 -1
  243. package/dist/turns/call-permission.d.ts +22 -0
  244. package/dist/turns/call-permission.d.ts.map +1 -0
  245. package/dist/turns/call-permission.js +49 -0
  246. package/dist/turns/call-permission.js.map +1 -0
  247. package/dist/turns/cancel-step-job.d.ts +14 -0
  248. package/dist/turns/cancel-step-job.d.ts.map +1 -0
  249. package/dist/turns/cancel-step-job.js +35 -0
  250. package/dist/turns/cancel-step-job.js.map +1 -0
  251. package/dist/turns/child-result.d.ts +7 -0
  252. package/dist/turns/child-result.d.ts.map +1 -0
  253. package/dist/turns/child-result.js +24 -0
  254. package/dist/turns/child-result.js.map +1 -0
  255. package/dist/turns/compaction.d.ts +15 -1
  256. package/dist/turns/compaction.d.ts.map +1 -1
  257. package/dist/turns/compaction.js +44 -16
  258. package/dist/turns/compaction.js.map +1 -1
  259. package/dist/turns/end-turn-state.d.ts +42 -0
  260. package/dist/turns/end-turn-state.d.ts.map +1 -0
  261. package/dist/turns/end-turn-state.js +64 -0
  262. package/dist/turns/end-turn-state.js.map +1 -0
  263. package/dist/turns/end-turn.d.ts +7 -8
  264. package/dist/turns/end-turn.d.ts.map +1 -1
  265. package/dist/turns/end-turn.js +52 -55
  266. package/dist/turns/end-turn.js.map +1 -1
  267. package/dist/turns/helper-calls.d.ts +6 -0
  268. package/dist/turns/helper-calls.d.ts.map +1 -0
  269. package/dist/turns/helper-calls.js +8 -0
  270. package/dist/turns/helper-calls.js.map +1 -0
  271. package/dist/turns/history.d.ts +3 -1
  272. package/dist/turns/history.d.ts.map +1 -1
  273. package/dist/turns/history.js +15 -7
  274. package/dist/turns/history.js.map +1 -1
  275. package/dist/turns/lost-reply.d.ts +7 -0
  276. package/dist/turns/lost-reply.d.ts.map +1 -1
  277. package/dist/turns/lost-reply.js +12 -0
  278. package/dist/turns/lost-reply.js.map +1 -1
  279. package/dist/turns/message-blocks.d.ts +2 -0
  280. package/dist/turns/message-blocks.d.ts.map +1 -1
  281. package/dist/turns/message-blocks.js +7 -0
  282. package/dist/turns/message-blocks.js.map +1 -1
  283. package/dist/turns/model-context.d.ts +2 -0
  284. package/dist/turns/model-context.d.ts.map +1 -1
  285. package/dist/turns/model-context.js +23 -4
  286. package/dist/turns/model-context.js.map +1 -1
  287. package/dist/turns/model-retry.d.ts +2 -1
  288. package/dist/turns/model-retry.d.ts.map +1 -1
  289. package/dist/turns/model-retry.js +5 -1
  290. package/dist/turns/model-retry.js.map +1 -1
  291. package/dist/turns/read-only.d.ts +6 -0
  292. package/dist/turns/read-only.d.ts.map +1 -0
  293. package/dist/turns/read-only.js +12 -0
  294. package/dist/turns/read-only.js.map +1 -0
  295. package/dist/turns/receipt-job.d.ts +5 -0
  296. package/dist/turns/receipt-job.d.ts.map +1 -0
  297. package/dist/turns/receipt-job.js +40 -0
  298. package/dist/turns/receipt-job.js.map +1 -0
  299. package/dist/turns/recover-workspace.d.ts +9 -0
  300. package/dist/turns/recover-workspace.d.ts.map +1 -0
  301. package/dist/turns/recover-workspace.js +79 -0
  302. package/dist/turns/recover-workspace.js.map +1 -0
  303. package/dist/turns/recovery-state.d.ts +19 -0
  304. package/dist/turns/recovery-state.d.ts.map +1 -0
  305. package/dist/turns/recovery-state.js +87 -0
  306. package/dist/turns/recovery-state.js.map +1 -0
  307. package/dist/turns/register-interruptions.d.ts.map +1 -1
  308. package/dist/turns/register-interruptions.js +19 -8
  309. package/dist/turns/register-interruptions.js.map +1 -1
  310. package/dist/turns/register-turns.d.ts.map +1 -1
  311. package/dist/turns/register-turns.js +42 -31
  312. package/dist/turns/register-turns.js.map +1 -1
  313. package/dist/turns/resolve.d.ts +4 -0
  314. package/dist/turns/resolve.d.ts.map +1 -1
  315. package/dist/turns/resolve.js +19 -17
  316. package/dist/turns/resolve.js.map +1 -1
  317. package/dist/turns/retry-turn.d.ts +4 -0
  318. package/dist/turns/retry-turn.d.ts.map +1 -0
  319. package/dist/turns/retry-turn.js +20 -0
  320. package/dist/turns/retry-turn.js.map +1 -0
  321. package/dist/turns/run-calls.d.ts +21 -4
  322. package/dist/turns/run-calls.d.ts.map +1 -1
  323. package/dist/turns/run-calls.js +157 -41
  324. package/dist/turns/run-calls.js.map +1 -1
  325. package/dist/turns/run-command.d.ts +5 -3
  326. package/dist/turns/run-command.d.ts.map +1 -1
  327. package/dist/turns/run-command.js +21 -12
  328. package/dist/turns/run-command.js.map +1 -1
  329. package/dist/turns/settle-calls.d.ts +2 -8
  330. package/dist/turns/settle-calls.d.ts.map +1 -1
  331. package/dist/turns/settle-calls.js +26 -35
  332. package/dist/turns/settle-calls.js.map +1 -1
  333. package/dist/turns/start-turn.d.ts +8 -83
  334. package/dist/turns/start-turn.d.ts.map +1 -1
  335. package/dist/turns/start-turn.js +35 -24
  336. package/dist/turns/start-turn.js.map +1 -1
  337. package/dist/turns/step-claim.d.ts +39 -0
  338. package/dist/turns/step-claim.d.ts.map +1 -0
  339. package/dist/turns/step-claim.js +72 -0
  340. package/dist/turns/step-claim.js.map +1 -0
  341. package/dist/turns/step-intents.d.ts +31 -0
  342. package/dist/turns/step-intents.d.ts.map +1 -0
  343. package/dist/turns/step-intents.js +101 -0
  344. package/dist/turns/step-intents.js.map +1 -0
  345. package/dist/turns/step-next.d.ts +17 -0
  346. package/dist/turns/step-next.d.ts.map +1 -0
  347. package/dist/turns/step-next.js +25 -0
  348. package/dist/turns/step-next.js.map +1 -0
  349. package/dist/turns/step.d.ts +1 -1
  350. package/dist/turns/step.d.ts.map +1 -1
  351. package/dist/turns/step.js +108 -88
  352. package/dist/turns/step.js.map +1 -1
  353. package/dist/turns/summary-facts.d.ts +25 -0
  354. package/dist/turns/summary-facts.d.ts.map +1 -0
  355. package/dist/turns/summary-facts.js +63 -0
  356. package/dist/turns/summary-facts.js.map +1 -0
  357. package/dist/turns/usage.d.ts +7 -0
  358. package/dist/turns/usage.d.ts.map +1 -0
  359. package/dist/turns/usage.js +18 -0
  360. package/dist/turns/usage.js.map +1 -0
  361. package/dist/ui/register-ui.js +3 -3
  362. package/dist/ui/register-ui.js.map +1 -1
  363. package/dist/web/components/approval.css +2 -0
  364. package/dist/web/components/approval.js +233 -0
  365. package/dist/web/components/call.css +1 -1
  366. package/dist/web/components/call.js +430 -304
  367. package/dist/web/components/connectors.css +1 -1
  368. package/dist/web/components/connectors.js +595 -592
  369. package/dist/web/components/conversation.css +1 -1
  370. package/dist/web/components/conversation.js +2978 -1637
  371. package/dist/web/components/mcp-sign-in.css +1 -1
  372. package/dist/web/components/model.css +1 -1
  373. package/dist/web/components/model.js +138 -134
  374. package/dist/web/components/question.css +1 -1
  375. package/dist/web/components/question.js +148 -78
  376. package/dist/web/components/sessions.css +1 -1
  377. package/docs/connectors.md +3 -3
  378. package/locales/ar.json +95 -13
  379. package/locales/en.json +95 -13
  380. package/package.json +6 -6
  381. package/dist/turns/cancel-turn.d.ts +0 -3
  382. package/dist/turns/cancel-turn.d.ts.map +0 -1
  383. package/dist/turns/cancel-turn.js +0 -31
  384. package/dist/turns/cancel-turn.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from '@kvman/sdk';
2
- import { checkSchema, outcomeSchema, pendingSchema, sourceSchema, statusSchema, thinkingSchema, titleSchema, usageSchema, messageKindSchema } from "../schemas/records.js";
2
+ import { checkSchema, outcomeSchema, pendingSchema, sourceSchema, statusSchema, thinkingSchema, titleSchema, usageBySchema, usageSchema, messageKindSchema } from "../schemas/records.js";
3
3
  // The public shapes of sessions, messages, and turns (plan 08 §8.1), from kvcoder's records.
4
4
  export const sessionSchema = z.object({
5
5
  id: z.string(),
@@ -11,6 +11,7 @@ export const sessionSchema = z.object({
11
11
  thinking: thinkingSchema,
12
12
  stepJobId: z.string().exactOptional(),
13
13
  usage: usageSchema,
14
+ usageBy: usageBySchema.exactOptional(),
14
15
  durationMs: z.number(),
15
16
  checks: z.array(checkSchema).exactOptional(),
16
17
  createdAt: z.string(),
@@ -55,6 +56,8 @@ export function sessionView(doc) {
55
56
  thinking: doc.thinking,
56
57
  ...(doc.stepJobId === null ? {} : { stepJobId: doc.stepJobId }),
57
58
  usage: doc.usage,
59
+ // Only a session that spent something apart from its own replies says how (ADR 0058, 1).
60
+ ...(Object.values(doc.usageBy).every((part) => part.input + part.output + part.cacheRead + part.cacheWrite === 0) ? {} : { usageBy: doc.usageBy }),
58
61
  durationMs: doc.durationMs,
59
62
  ...(doc.checks === null ? {} : { checks: doc.checks }),
60
63
  createdAt: doc.createdAt,
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/sessions/session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/sessions/session-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FindOptions, Stored } from '@kvman/sdk';
2
+ /** All the records `find` gives, in `order`. */
3
+ export declare function allDocs<Doc>(find: (options: FindOptions) => Promise<Stored<Doc>[]>, order?: 'asc' | 'desc'): Promise<Stored<Doc>[]>;
4
+ //# sourceMappingURL=all-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-docs.d.ts","sourceRoot":"","sources":["../../src/store/all-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOtD,gDAAgD;AAChD,wBAAsB,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAOhJ"}
@@ -0,0 +1,14 @@
1
+ // Every record of a collection that can grow without limit (ADR 0057, 1): read in pages, each from the last id of the
2
+ // one before, so a list, an export, or a cleanup never stops at the first thousand.
3
+ const pageSize = 1000;
4
+ /** All the records `find` gives, in `order`. */
5
+ export async function allDocs(find, order = 'asc') {
6
+ const found = [];
7
+ for (let page = await find({ limit: pageSize, order }); page.length > 0; page = await find({ limit: pageSize, order, after: found.at(-1)?.id ?? '' })) {
8
+ found.push(...page);
9
+ if (page.length < pageSize)
10
+ break;
11
+ }
12
+ return found;
13
+ }
14
+ //# sourceMappingURL=all-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-docs.js","sourceRoot":"","sources":["../../src/store/all-docs.ts"],"names":[],"mappings":"AAEA,sHAAsH;AACtH,oFAAoF;AAEpF,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAM,IAAsD,EAAE,QAAwB,KAAK;IACtH,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACtJ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,MAAM;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -4,15 +4,42 @@ export declare function records(store: Store): {
4
4
  sessions: import("@kvman/sdk").Collection<{
5
5
  title: string;
6
6
  autoTitle: boolean;
7
+ deleting: boolean;
7
8
  status: "idle" | "running" | "waiting";
8
9
  parentId: string | null;
9
10
  worker: {
10
11
  name: string;
11
12
  instructions: string;
13
+ readOnly: boolean;
12
14
  } | null;
13
15
  model: string | null;
14
16
  thinking: "off" | "minimal" | "low" | "medium" | "high";
17
+ usageBy: {
18
+ summary: {
19
+ input: number;
20
+ output: number;
21
+ cacheRead: number;
22
+ cacheWrite: number;
23
+ cost: number;
24
+ };
25
+ title: {
26
+ input: number;
27
+ output: number;
28
+ cacheRead: number;
29
+ cacheWrite: number;
30
+ cost: number;
31
+ };
32
+ helpers: {
33
+ input: number;
34
+ output: number;
35
+ cacheRead: number;
36
+ cacheWrite: number;
37
+ cost: number;
38
+ };
39
+ };
15
40
  stepJobId: string | null;
41
+ stepGeneration: number;
42
+ stepIntentId: string | null;
16
43
  turnId: string | null;
17
44
  endedTurns: number;
18
45
  nextSeq: number;
@@ -33,6 +60,17 @@ export declare function records(store: Store): {
33
60
  createdAt: string;
34
61
  updatedAt: string;
35
62
  }>;
63
+ stepIntents: import("@kvman/sdk").Collection<{
64
+ sessionId: string;
65
+ turnId: string;
66
+ generation: number;
67
+ phase: "prepared" | "claimed" | "settled" | "invalidated" | "needs-review";
68
+ jobId: string | null;
69
+ legacyJobId: string | null;
70
+ reason: string | null;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ }>;
36
74
  messages: import("@kvman/sdk").Collection<{
37
75
  sessionId: string;
38
76
  turnId: string | null;
@@ -62,6 +100,7 @@ export declare function records(store: Store): {
62
100
  cacheWrite: number;
63
101
  cost: number;
64
102
  } | null;
103
+ basis: string | null;
65
104
  durationMs: number | null;
66
105
  createdAt: string;
67
106
  }>;
@@ -83,6 +122,7 @@ export declare function records(store: Store): {
83
122
  fileIds: string[] | null;
84
123
  fileNames: string[] | null;
85
124
  createdAt: string;
125
+ running?: string[];
86
126
  }>;
87
127
  turns: import("@kvman/sdk").Collection<{
88
128
  sessionId: string;
@@ -91,6 +131,7 @@ export declare function records(store: Store): {
91
131
  durationMs: number;
92
132
  steps: number;
93
133
  lost: number;
134
+ incomplete: number;
94
135
  usage: {
95
136
  input: number;
96
137
  output: number;
@@ -126,6 +167,15 @@ export declare function records(store: Store): {
126
167
  timeoutMs: number;
127
168
  } | null;
128
169
  }[];
170
+ deferredCalls: {
171
+ toolCallId: string;
172
+ call: {
173
+ description: string;
174
+ connector: string;
175
+ command: string;
176
+ payload: Record<string, import("zod").JSONType>;
177
+ };
178
+ }[];
129
179
  }>;
130
180
  questions: import("@kvman/sdk").Collection<{
131
181
  sessionId: string;
@@ -135,6 +185,41 @@ export declare function records(store: Store): {
135
185
  kind: "text" | "approval" | "choice" | "confirm";
136
186
  question: Record<string, import("zod").JSONType>;
137
187
  }>;
188
+ answerReceipts: import("@kvman/sdk").Collection<{
189
+ questionId: string;
190
+ sessionId: string;
191
+ turnId: string;
192
+ toolCallId: string;
193
+ questionKind: "text" | "approval" | "choice" | "confirm";
194
+ answerFingerprint: string;
195
+ createdAt: string;
196
+ }>;
197
+ sendReceipts: import("@kvman/sdk").Collection<{
198
+ sendId: string;
199
+ sessionId: string;
200
+ messageFingerprint: string;
201
+ createdAt: string;
202
+ }>;
203
+ fileViews: import("@kvman/sdk").Collection<{
204
+ sessionId: string;
205
+ path: string;
206
+ fingerprint: string;
207
+ updatedAt: string;
208
+ }>;
209
+ fileBackups: import("@kvman/sdk").Collection<{
210
+ sessionId: string;
211
+ path: string;
212
+ previous: string | null;
213
+ written: string;
214
+ createdAt: string;
215
+ }>;
216
+ fileParts: import("@kvman/sdk").Collection<{
217
+ sessionId: string;
218
+ path: string;
219
+ part: number;
220
+ content: string;
221
+ updatedAt: string;
222
+ }>;
138
223
  artifacts: import("@kvman/sdk").Collection<{
139
224
  sessionId: string;
140
225
  artifactId: string;
@@ -145,6 +230,28 @@ export declare function records(store: Store): {
145
230
  createdAt: string;
146
231
  updatedAt: string;
147
232
  }>;
233
+ maps: import("@kvman/sdk").Collection<{
234
+ sessionId: string;
235
+ goal: string;
236
+ steps: {
237
+ id: string;
238
+ title: string;
239
+ description: string | null;
240
+ after: string[];
241
+ uses: string | null;
242
+ check: string;
243
+ status: "done" | "failed" | "todo" | "doing" | "skipped";
244
+ evidence: string | null;
245
+ note: string | null;
246
+ }[];
247
+ notes: {
248
+ text: string;
249
+ createdAt: string;
250
+ }[];
251
+ version: number;
252
+ createdAt: string;
253
+ updatedAt: string;
254
+ }>;
148
255
  background: import("@kvman/sdk").Collection<{
149
256
  sessionId: string;
150
257
  ref: string;
@@ -167,6 +274,14 @@ export declare function records(store: Store): {
167
274
  endedAt: string | null;
168
275
  exitCode: number | null;
169
276
  output: string | null;
277
+ staging: {
278
+ tree: string;
279
+ after: string;
280
+ head: string | null;
281
+ headMoved: boolean;
282
+ paths: number;
283
+ restored: boolean;
284
+ } | null;
170
285
  }>;
171
286
  sections: import("@kvman/sdk").Collection<{
172
287
  owner: string;
@@ -247,15 +362,42 @@ export declare function txRecords(tx: Transaction): {
247
362
  sessions: import("@kvman/sdk").TransactionCollection<{
248
363
  title: string;
249
364
  autoTitle: boolean;
365
+ deleting: boolean;
250
366
  status: "idle" | "running" | "waiting";
251
367
  parentId: string | null;
252
368
  worker: {
253
369
  name: string;
254
370
  instructions: string;
371
+ readOnly: boolean;
255
372
  } | null;
256
373
  model: string | null;
257
374
  thinking: "off" | "minimal" | "low" | "medium" | "high";
375
+ usageBy: {
376
+ summary: {
377
+ input: number;
378
+ output: number;
379
+ cacheRead: number;
380
+ cacheWrite: number;
381
+ cost: number;
382
+ };
383
+ title: {
384
+ input: number;
385
+ output: number;
386
+ cacheRead: number;
387
+ cacheWrite: number;
388
+ cost: number;
389
+ };
390
+ helpers: {
391
+ input: number;
392
+ output: number;
393
+ cacheRead: number;
394
+ cacheWrite: number;
395
+ cost: number;
396
+ };
397
+ };
258
398
  stepJobId: string | null;
399
+ stepGeneration: number;
400
+ stepIntentId: string | null;
259
401
  turnId: string | null;
260
402
  endedTurns: number;
261
403
  nextSeq: number;
@@ -276,6 +418,17 @@ export declare function txRecords(tx: Transaction): {
276
418
  createdAt: string;
277
419
  updatedAt: string;
278
420
  }>;
421
+ stepIntents: import("@kvman/sdk").TransactionCollection<{
422
+ sessionId: string;
423
+ turnId: string;
424
+ generation: number;
425
+ phase: "prepared" | "claimed" | "settled" | "invalidated" | "needs-review";
426
+ jobId: string | null;
427
+ legacyJobId: string | null;
428
+ reason: string | null;
429
+ createdAt: string;
430
+ updatedAt: string;
431
+ }>;
279
432
  messages: import("@kvman/sdk").TransactionCollection<{
280
433
  sessionId: string;
281
434
  turnId: string | null;
@@ -305,6 +458,7 @@ export declare function txRecords(tx: Transaction): {
305
458
  cacheWrite: number;
306
459
  cost: number;
307
460
  } | null;
461
+ basis: string | null;
308
462
  durationMs: number | null;
309
463
  createdAt: string;
310
464
  }>;
@@ -326,6 +480,7 @@ export declare function txRecords(tx: Transaction): {
326
480
  fileIds: string[] | null;
327
481
  fileNames: string[] | null;
328
482
  createdAt: string;
483
+ running?: string[];
329
484
  }>;
330
485
  turns: import("@kvman/sdk").TransactionCollection<{
331
486
  sessionId: string;
@@ -334,6 +489,7 @@ export declare function txRecords(tx: Transaction): {
334
489
  durationMs: number;
335
490
  steps: number;
336
491
  lost: number;
492
+ incomplete: number;
337
493
  usage: {
338
494
  input: number;
339
495
  output: number;
@@ -369,6 +525,15 @@ export declare function txRecords(tx: Transaction): {
369
525
  timeoutMs: number;
370
526
  } | null;
371
527
  }[];
528
+ deferredCalls: {
529
+ toolCallId: string;
530
+ call: {
531
+ description: string;
532
+ connector: string;
533
+ command: string;
534
+ payload: Record<string, import("zod").JSONType>;
535
+ };
536
+ }[];
372
537
  }>;
373
538
  questions: import("@kvman/sdk").TransactionCollection<{
374
539
  sessionId: string;
@@ -378,6 +543,41 @@ export declare function txRecords(tx: Transaction): {
378
543
  kind: "text" | "approval" | "choice" | "confirm";
379
544
  question: Record<string, import("zod").JSONType>;
380
545
  }>;
546
+ answerReceipts: import("@kvman/sdk").TransactionCollection<{
547
+ questionId: string;
548
+ sessionId: string;
549
+ turnId: string;
550
+ toolCallId: string;
551
+ questionKind: "text" | "approval" | "choice" | "confirm";
552
+ answerFingerprint: string;
553
+ createdAt: string;
554
+ }>;
555
+ sendReceipts: import("@kvman/sdk").TransactionCollection<{
556
+ sendId: string;
557
+ sessionId: string;
558
+ messageFingerprint: string;
559
+ createdAt: string;
560
+ }>;
561
+ fileViews: import("@kvman/sdk").TransactionCollection<{
562
+ sessionId: string;
563
+ path: string;
564
+ fingerprint: string;
565
+ updatedAt: string;
566
+ }>;
567
+ fileBackups: import("@kvman/sdk").TransactionCollection<{
568
+ sessionId: string;
569
+ path: string;
570
+ previous: string | null;
571
+ written: string;
572
+ createdAt: string;
573
+ }>;
574
+ fileParts: import("@kvman/sdk").TransactionCollection<{
575
+ sessionId: string;
576
+ path: string;
577
+ part: number;
578
+ content: string;
579
+ updatedAt: string;
580
+ }>;
381
581
  artifacts: import("@kvman/sdk").TransactionCollection<{
382
582
  sessionId: string;
383
583
  artifactId: string;
@@ -388,6 +588,28 @@ export declare function txRecords(tx: Transaction): {
388
588
  createdAt: string;
389
589
  updatedAt: string;
390
590
  }>;
591
+ maps: import("@kvman/sdk").TransactionCollection<{
592
+ sessionId: string;
593
+ goal: string;
594
+ steps: {
595
+ id: string;
596
+ title: string;
597
+ description: string | null;
598
+ after: string[];
599
+ uses: string | null;
600
+ check: string;
601
+ status: "done" | "failed" | "todo" | "doing" | "skipped";
602
+ evidence: string | null;
603
+ note: string | null;
604
+ }[];
605
+ notes: {
606
+ text: string;
607
+ createdAt: string;
608
+ }[];
609
+ version: number;
610
+ createdAt: string;
611
+ updatedAt: string;
612
+ }>;
391
613
  background: import("@kvman/sdk").TransactionCollection<{
392
614
  sessionId: string;
393
615
  ref: string;
@@ -410,6 +632,14 @@ export declare function txRecords(tx: Transaction): {
410
632
  endedAt: string | null;
411
633
  exitCode: number | null;
412
634
  output: string | null;
635
+ staging: {
636
+ tree: string;
637
+ after: string;
638
+ head: string | null;
639
+ headMoved: boolean;
640
+ paths: number;
641
+ restored: boolean;
642
+ } | null;
413
643
  }>;
414
644
  sections: import("@kvman/sdk").TransactionCollection<{
415
645
  owner: string;
@@ -1 +1 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/store/collections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrD,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBnC;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBxC;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/store/collections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAUrD,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnC;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BxC;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { artifactDocSchema, backgroundDocSchema, messageDocSchema, processDocSchema, questionDocSchema, queuedDocSchema, runDocSchema, sessionDocSchema, turnDocSchema } from "../schemas/records.js";
1
+ import { answerReceiptDocSchema, artifactDocSchema, backgroundDocSchema, fileBackupDocSchema, filePartDocSchema, fileViewDocSchema, messageDocSchema, processDocSchema, questionDocSchema, queuedDocSchema, runDocSchema, sendReceiptDocSchema, sessionDocSchema, stepIntentDocSchema, turnDocSchema } from "../schemas/records.js";
2
+ import { mapDocSchema } from "../maps/map-schema.js";
2
3
  import { signInDocSchema } from "../mcp/sign-in-record.js";
3
4
  import { connectorDocSchema, handlerDocSchema, handlerJobDocSchema, sectionDocSchema, slashDocSchema } from "../schemas/registry.js";
4
5
  // kvcoder's collections (plan 08 §8.4 "Where entries live"): sessions and their records, and workspace sections, in
@@ -8,11 +9,18 @@ import { connectorDocSchema, handlerDocSchema, handlerJobDocSchema, sectionDocSc
8
9
  export function records(store) {
9
10
  return {
10
11
  sessions: store.collection('sessions', sessionDocSchema),
12
+ stepIntents: store.collection('step-intents', stepIntentDocSchema),
11
13
  messages: store.collection('messages', messageDocSchema),
12
14
  queued: store.collection('queued', queuedDocSchema),
13
15
  turns: store.collection('turns', turnDocSchema),
14
16
  questions: store.collection('questions', questionDocSchema),
17
+ answerReceipts: store.collection('answer-receipts', answerReceiptDocSchema),
18
+ sendReceipts: store.collection('send-receipts', sendReceiptDocSchema),
19
+ fileViews: store.collection('file-views', fileViewDocSchema),
20
+ fileBackups: store.collection('file-backups', fileBackupDocSchema),
21
+ fileParts: store.collection('file-parts', filePartDocSchema),
15
22
  artifacts: store.collection('artifacts', artifactDocSchema),
23
+ maps: store.collection('maps', mapDocSchema),
16
24
  background: store.collection('background', backgroundDocSchema),
17
25
  runs: store.collection('runs', runDocSchema),
18
26
  sections: store.collection('sections', sectionDocSchema),
@@ -29,11 +37,18 @@ export function records(store) {
29
37
  export function txRecords(tx) {
30
38
  return {
31
39
  sessions: tx.collection('sessions', sessionDocSchema),
40
+ stepIntents: tx.collection('step-intents', stepIntentDocSchema),
32
41
  messages: tx.collection('messages', messageDocSchema),
33
42
  queued: tx.collection('queued', queuedDocSchema),
34
43
  turns: tx.collection('turns', turnDocSchema),
35
44
  questions: tx.collection('questions', questionDocSchema),
45
+ answerReceipts: tx.collection('answer-receipts', answerReceiptDocSchema),
46
+ sendReceipts: tx.collection('send-receipts', sendReceiptDocSchema),
47
+ fileViews: tx.collection('file-views', fileViewDocSchema),
48
+ fileBackups: tx.collection('file-backups', fileBackupDocSchema),
49
+ fileParts: tx.collection('file-parts', filePartDocSchema),
36
50
  artifacts: tx.collection('artifacts', artifactDocSchema),
51
+ maps: tx.collection('maps', mapDocSchema),
37
52
  background: tx.collection('background', backgroundDocSchema),
38
53
  runs: tx.collection('runs', runDocSchema),
39
54
  sections: tx.collection('sections', sectionDocSchema),
@@ -1 +1 @@
1
- {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/store/collections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtM,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAErI,oHAAoH;AACpH,kHAAkH;AAClH,2DAA2D;AAE3D,yDAAyD;AACzD,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxD,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxD,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;QAC/C,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAC3D,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAC3D,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC;QAC/D,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;QAC5C,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxD,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACrE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACjE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAkB,CAAC;QACrE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,CAAC;QACxE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC/D,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACzE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,eAAe,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,SAAS,CAAC,EAAe;IACvC,OAAO;QACL,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACrD,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACrD,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC;QAChD,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;QAC5C,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACxD,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACxD,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC;QAC5D,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;QACzC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACrD,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAClE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC9D,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAkB,CAAC;QAClE,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,CAAC;QACrE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC5D,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACtE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,eAAe,CAAC;KAC/D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/store/collections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type QuestionKind } from '../connectors/ask.ts';
2
+ /** First application must additionally call checkedAnswer with the current question to validate choice membership. */
3
+ export declare function answerFingerprint(kind: QuestionKind, answer: unknown): string;
4
+ //# sourceMappingURL=answer-fingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-fingerprint.d.ts","sourceRoot":"","sources":["../../src/turns/answer-fingerprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAc1E,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAE7E"}
@@ -0,0 +1,18 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { normalizeAnswer } from "../connectors/ask.js";
3
+ // Canonical object keys, exact strings and ordered arrays (ADR0042). This only receives validated values,
4
+ // never parses arbitrary tool output or text, and is a retry identifier rather than a secret-hiding guarantee.
5
+ function canonical(value) {
6
+ if (Array.isArray(value))
7
+ return `[${value.map(canonical).join(',')}]`;
8
+ if (value !== null && typeof value === 'object') {
9
+ const entries = Object.entries(value).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
10
+ return `{${entries.map(([key, child]) => `${JSON.stringify(key)}:${canonical(child)}`).join(',')}}`;
11
+ }
12
+ return JSON.stringify(value);
13
+ }
14
+ /** First application must additionally call checkedAnswer with the current question to validate choice membership. */
15
+ export function answerFingerprint(kind, answer) {
16
+ return createHash('sha256').update(canonical(normalizeAnswer(kind, answer))).digest('hex');
17
+ }
18
+ //# sourceMappingURL=answer-fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-fingerprint.js","sourceRoot":"","sources":["../../src/turns/answer-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AAG1E,0GAA0G;AAC1G,+GAA+G;AAC/G,SAAS,SAAS,CAAC,KAAgB;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,iBAAiB,CAAC,IAAkB,EAAE,MAAe;IACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Ctx, Json, Stored } from '@kvman/sdk';
2
+ import { type AnswerReceiptDoc, type QuestionDoc, type RunCallDoc } from '../schemas/records.ts';
3
+ import type { TxRecords } from '../store/collections.ts';
4
+ import type { StepIdentity } from './step-intents.ts';
5
+ export type AnswerApplication = {
6
+ kind: 'acknowledged';
7
+ receipt: Stored<AnswerReceiptDoc>;
8
+ } | {
9
+ kind: 'applied';
10
+ receipt: Stored<AnswerReceiptDoc>;
11
+ identity: StepIdentity | null;
12
+ } | {
13
+ kind: 'delegate';
14
+ question: Stored<QuestionDoc>;
15
+ call: RunCallDoc;
16
+ };
17
+ /** No awaits or effects: the first valid ordinary application and all its records commit together. */
18
+ export declare function applyAnswer(ctx: Ctx, store: TxRecords, questionId: string, answer: Json, expected?: Stored<QuestionDoc>): AnswerApplication;
19
+ //# sourceMappingURL=apply-answer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-answer.d.ts","sourceRoot":"","sources":["../../src/turns/apply-answer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAAiB,KAAK,gBAAgB,EAAmB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEjI,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAE1E,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,iBAAiB,CA+B3I"}
@@ -0,0 +1,47 @@
1
+ import { checkedAnswer } from "../connectors/ask.js";
2
+ import { isDelegateRun } from "../delegate/approved-run.js";
3
+ import { invalid } from "../problems.js";
4
+ import { runCallSchema } from "../schemas/records.js";
5
+ import { now } from "../sessions/session-lookup.js";
6
+ import { answerFingerprint } from "./answer-fingerprint.js";
7
+ import { heldText, resolvePendingInTx } from "./resolve.js";
8
+ /** No awaits or effects: the first valid ordinary application and all its records commit together. */
9
+ export function applyAnswer(ctx, store, questionId, answer, expected) {
10
+ ctx.job.signal.throwIfAborted();
11
+ const [receipt] = store.answerReceipts.find({ questionId }, { limit: 1 });
12
+ if (receipt !== undefined) {
13
+ if (answerFingerprint(receipt.questionKind, answer) !== receipt.answerFingerprint)
14
+ throw invalid('This question already has a different answer.');
15
+ return { kind: 'acknowledged', receipt };
16
+ }
17
+ const question = store.questions.get(questionId);
18
+ const missing = () => ctx.problem('kvcoder/QUESTION_NOT_FOUND', { questionId });
19
+ if (question === undefined)
20
+ throw missing();
21
+ if (expected !== undefined && (question.sessionId !== expected.sessionId || question.turnId !== expected.turnId || question.toolCallId !== expected.toolCallId || question.kind !== expected.kind || JSON.stringify(question.question) !== JSON.stringify(expected.question)))
22
+ throw missing();
23
+ const session = store.sessions.get(question.sessionId), turn = store.turns.get(question.turnId);
24
+ if (session?.status !== 'waiting' || session.turnId !== question.turnId || turn?.sessionId !== question.sessionId || turn.outcome !== null || turn.endedAt !== null)
25
+ throw missing();
26
+ const candidates = turn.pending.filter(item => item.toolCallId === question.toolCallId || item.questionId === questionId);
27
+ const pending = candidates[0];
28
+ if (candidates.length !== 1 || pending?.toolCallId !== question.toolCallId || pending.questionId !== questionId || pending.kind !== (question.kind === 'approval' ? 'approval' : 'question') || pending.childSessionId !== null || pending.runId !== null || pending.question === null || turn.results.some(item => item.toolCallId === question.toolCallId))
29
+ throw missing();
30
+ const checked = checkedAnswer(question, answer);
31
+ const call = checked.kind === 'approval' && checked.approved ? runCallSchema.parse(question.question) : undefined;
32
+ // Existing run records cannot prove durable launch. Keep grants on their existing separate flow, WITHOUT receipts.
33
+ if (call !== undefined && isDelegateRun(call))
34
+ return { kind: 'delegate', question, call };
35
+ const held = checked.kind === 'result'
36
+ ? heldText(question.toolCallId, checked.text, false)
37
+ : call !== undefined
38
+ ? { toolCallId: question.toolCallId, text: '', details: null, isError: false, run: call }
39
+ : heldText(question.toolCallId, 'denied by the user', true);
40
+ const fingerprint = answerFingerprint(question.kind, answer);
41
+ ctx.job.signal.throwIfAborted();
42
+ store.questions.delete(questionId);
43
+ const identity = resolvePendingInTx(store, question.sessionId, question.toolCallId, held);
44
+ const saved = store.answerReceipts.insert({ questionId, sessionId: question.sessionId, turnId: question.turnId, toolCallId: question.toolCallId, questionKind: question.kind, answerFingerprint: fingerprint, createdAt: now() });
45
+ return { kind: 'applied', receipt: saved, identity };
46
+ }
47
+ //# sourceMappingURL=apply-answer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-answer.js","sourceRoot":"","sources":["../../src/turns/apply-answer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { Ctx } from '@kvman/sdk';
2
2
  import type { Source } from '../schemas/records.ts';
3
+ import { type TxRecords } from '../store/collections.ts';
3
4
  /** The text a background result reaches the model with. */
4
5
  export declare function backgroundText(call: string, ref: string, result: string): string;
6
+ /** Appends or queues the result in the caller's transaction; gives the turn it opened, for the caller to begin after its commit. */
7
+ export declare function appendBackgroundInTx(store: TxRecords, sessionId: string, source: Source, text: string, startTurn: boolean): string | undefined;
5
8
  export declare function appendBackground(ctx: Ctx, sessionId: string, source: Source, text: string, startTurn: boolean): Promise<void>;
6
9
  //# sourceMappingURL=background.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/turns/background.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASpD,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAanI"}
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/turns/background.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpE,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,oIAAoI;AACpI,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS9I;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnI"}