@kvman/kvcoder 0.1.10 → 0.1.12

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 (328) hide show
  1. package/dist/api.d.ts +48 -2
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/calls/call-name.d.ts +8 -0
  4. package/dist/calls/call-name.d.ts.map +1 -0
  5. package/dist/calls/call-name.js +47 -0
  6. package/dist/calls/call-name.js.map +1 -0
  7. package/dist/calls/line-run.d.ts +1 -4
  8. package/dist/calls/line-run.d.ts.map +1 -1
  9. package/dist/calls/line-run.js +2 -2
  10. package/dist/calls/line-run.js.map +1 -1
  11. package/dist/calls/run-tool.d.ts +1 -6
  12. package/dist/calls/run-tool.d.ts.map +1 -1
  13. package/dist/calls/run-tool.js +5 -6
  14. package/dist/calls/run-tool.js.map +1 -1
  15. package/dist/connector-call.d.ts +3 -3
  16. package/dist/connector-call.d.ts.map +1 -1
  17. package/dist/connector-call.js +5 -3
  18. package/dist/connector-call.js.map +1 -1
  19. package/dist/connectors/artifact.d.ts +2 -1
  20. package/dist/connectors/artifact.d.ts.map +1 -1
  21. package/dist/connectors/artifact.js +1 -1
  22. package/dist/connectors/artifact.js.map +1 -1
  23. package/dist/connectors/background.d.ts.map +1 -1
  24. package/dist/connectors/background.js +17 -7
  25. package/dist/connectors/background.js.map +1 -1
  26. package/dist/connectors/binary.js +2 -2
  27. package/dist/connectors/binary.js.map +1 -1
  28. package/dist/connectors/builtin-connectors.d.ts +62 -2
  29. package/dist/connectors/builtin-connectors.d.ts.map +1 -1
  30. package/dist/connectors/builtin-connectors.js +4 -1
  31. package/dist/connectors/builtin-connectors.js.map +1 -1
  32. package/dist/connectors/connector-command.d.ts +0 -1
  33. package/dist/connectors/connector-command.d.ts.map +1 -1
  34. package/dist/connectors/connector-command.js +1 -1
  35. package/dist/connectors/connector-command.js.map +1 -1
  36. package/dist/connectors/delegate.d.ts +17 -0
  37. package/dist/connectors/delegate.d.ts.map +1 -1
  38. package/dist/connectors/delegate.js +31 -6
  39. package/dist/connectors/delegate.js.map +1 -1
  40. package/dist/connectors/execution-map.d.ts +14 -3
  41. package/dist/connectors/execution-map.d.ts.map +1 -1
  42. package/dist/connectors/execution-map.js +43 -12
  43. package/dist/connectors/execution-map.js.map +1 -1
  44. package/dist/connectors/fs.d.ts +29 -1
  45. package/dist/connectors/fs.d.ts.map +1 -1
  46. package/dist/connectors/fs.js +46 -9
  47. package/dist/connectors/fs.js.map +1 -1
  48. package/dist/connectors/payload-fields.d.ts +3 -0
  49. package/dist/connectors/payload-fields.d.ts.map +1 -1
  50. package/dist/connectors/payload-fields.js +8 -2
  51. package/dist/connectors/payload-fields.js.map +1 -1
  52. package/dist/connectors/shell.js +1 -1
  53. package/dist/connectors/shell.js.map +1 -1
  54. package/dist/connectors/web.d.ts +16 -0
  55. package/dist/connectors/web.d.ts.map +1 -0
  56. package/dist/connectors/web.js +22 -0
  57. package/dist/connectors/web.js.map +1 -0
  58. package/dist/delegate/approved-run.js +2 -2
  59. package/dist/delegate/approved-run.js.map +1 -1
  60. package/dist/delegate/continue-helper.d.ts +18 -0
  61. package/dist/delegate/continue-helper.d.ts.map +1 -0
  62. package/dist/delegate/continue-helper.js +64 -0
  63. package/dist/delegate/continue-helper.js.map +1 -0
  64. package/dist/delegate/permission.d.ts +11 -5
  65. package/dist/delegate/permission.d.ts.map +1 -1
  66. package/dist/delegate/runs.d.ts +9 -11
  67. package/dist/delegate/runs.d.ts.map +1 -1
  68. package/dist/delegate/runs.js +13 -9
  69. package/dist/delegate/runs.js.map +1 -1
  70. package/dist/delegate/workers.d.ts +6 -0
  71. package/dist/delegate/workers.d.ts.map +1 -1
  72. package/dist/files/change-diff.d.ts +17 -0
  73. package/dist/files/change-diff.d.ts.map +1 -0
  74. package/dist/files/change-diff.js +59 -0
  75. package/dist/files/change-diff.js.map +1 -0
  76. package/dist/files/edit-places.d.ts +11 -0
  77. package/dist/files/edit-places.d.ts.map +1 -0
  78. package/dist/files/edit-places.js +105 -0
  79. package/dist/files/edit-places.js.map +1 -0
  80. package/dist/files/edit-text.d.ts +1 -0
  81. package/dist/files/edit-text.d.ts.map +1 -1
  82. package/dist/files/edit-text.js +22 -10
  83. package/dist/files/edit-text.js.map +1 -1
  84. package/dist/files/file-change.d.ts.map +1 -1
  85. package/dist/files/file-change.js +12 -0
  86. package/dist/files/file-change.js.map +1 -1
  87. package/dist/files/find-paths.d.ts +9 -0
  88. package/dist/files/find-paths.d.ts.map +1 -0
  89. package/dist/files/find-paths.js +38 -0
  90. package/dist/files/find-paths.js.map +1 -0
  91. package/dist/files/read-file.d.ts +3 -1
  92. package/dist/files/read-file.d.ts.map +1 -1
  93. package/dist/files/read-file.js +7 -6
  94. package/dist/files/read-file.js.map +1 -1
  95. package/dist/files/read-files.d.ts +11 -0
  96. package/dist/files/read-files.d.ts.map +1 -0
  97. package/dist/files/read-files.js +35 -0
  98. package/dist/files/read-files.js.map +1 -0
  99. package/dist/files/read-text.d.ts +63 -0
  100. package/dist/files/read-text.d.ts.map +1 -0
  101. package/dist/files/read-text.js +67 -0
  102. package/dist/files/read-text.js.map +1 -0
  103. package/dist/files/register-changes.d.ts +3 -0
  104. package/dist/files/register-changes.d.ts.map +1 -0
  105. package/dist/files/register-changes.js +78 -0
  106. package/dist/files/register-changes.js.map +1 -0
  107. package/dist/files/search-text.d.ts +10 -1
  108. package/dist/files/search-text.d.ts.map +1 -1
  109. package/dist/files/search-text.js +32 -57
  110. package/dist/files/search-text.js.map +1 -1
  111. package/dist/files/workspace-files.d.ts +5 -0
  112. package/dist/files/workspace-files.d.ts.map +1 -0
  113. package/dist/files/workspace-files.js +66 -0
  114. package/dist/files/workspace-files.js.map +1 -0
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +6 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/jobs/helper-progress.d.ts +11 -0
  119. package/dist/jobs/helper-progress.d.ts.map +1 -0
  120. package/dist/jobs/helper-progress.js +38 -0
  121. package/dist/jobs/helper-progress.js.map +1 -0
  122. package/dist/jobs/job-rows.d.ts +3 -1
  123. package/dist/jobs/job-rows.d.ts.map +1 -1
  124. package/dist/jobs/job-rows.js +46 -22
  125. package/dist/jobs/job-rows.js.map +1 -1
  126. package/dist/jobs/process-report.d.ts +1 -1
  127. package/dist/jobs/process-report.d.ts.map +1 -1
  128. package/dist/jobs/process-report.js +11 -6
  129. package/dist/jobs/process-report.js.map +1 -1
  130. package/dist/jobs/process-run.d.ts +2 -5
  131. package/dist/jobs/process-run.d.ts.map +1 -1
  132. package/dist/jobs/process-run.js +6 -5
  133. package/dist/jobs/process-run.js.map +1 -1
  134. package/dist/jobs/register-jobs.js +3 -3
  135. package/dist/jobs/register-jobs.js.map +1 -1
  136. package/dist/maps/map-rules.d.ts +4 -2
  137. package/dist/maps/map-rules.d.ts.map +1 -1
  138. package/dist/maps/map-rules.js +7 -4
  139. package/dist/maps/map-rules.js.map +1 -1
  140. package/dist/maps/map-schema.d.ts +4 -4
  141. package/dist/maps/map-schema.d.ts.map +1 -1
  142. package/dist/maps/map-schema.js +10 -3
  143. package/dist/maps/map-schema.js.map +1 -1
  144. package/dist/prompt/build-prompt.d.ts +4 -0
  145. package/dist/prompt/build-prompt.d.ts.map +1 -1
  146. package/dist/prompt/build-prompt.js +8 -4
  147. package/dist/prompt/build-prompt.js.map +1 -1
  148. package/dist/prompt/person-preferences.d.ts +5 -0
  149. package/dist/prompt/person-preferences.d.ts.map +1 -0
  150. package/dist/prompt/person-preferences.js +14 -0
  151. package/dist/prompt/person-preferences.js.map +1 -0
  152. package/dist/prompt/session-grants.d.ts +7 -3
  153. package/dist/prompt/session-grants.d.ts.map +1 -1
  154. package/dist/prompt/session-grants.js +3 -2
  155. package/dist/prompt/session-grants.js.map +1 -1
  156. package/dist/prompt/session-prompt.d.ts.map +1 -1
  157. package/dist/prompt/session-prompt.js +15 -6
  158. package/dist/prompt/session-prompt.js.map +1 -1
  159. package/dist/prompt/working-method.d.ts +2 -2
  160. package/dist/prompt/working-method.d.ts.map +1 -1
  161. package/dist/prompt/working-method.js +51 -45
  162. package/dist/prompt/working-method.js.map +1 -1
  163. package/dist/register-settings.d.ts +27 -0
  164. package/dist/register-settings.d.ts.map +1 -1
  165. package/dist/register-settings.js +13 -0
  166. package/dist/register-settings.js.map +1 -1
  167. package/dist/schemas/approval-rule.d.ts +9 -0
  168. package/dist/schemas/approval-rule.d.ts.map +1 -0
  169. package/dist/schemas/approval-rule.js +7 -0
  170. package/dist/schemas/approval-rule.js.map +1 -0
  171. package/dist/schemas/check.d.ts +7 -0
  172. package/dist/schemas/check.d.ts.map +1 -0
  173. package/dist/schemas/check.js +9 -0
  174. package/dist/schemas/check.js.map +1 -0
  175. package/dist/schemas/records.d.ts +20 -6
  176. package/dist/schemas/records.d.ts.map +1 -1
  177. package/dist/schemas/records.js +15 -4
  178. package/dist/schemas/records.js.map +1 -1
  179. package/dist/sessions/new-session.d.ts.map +1 -1
  180. package/dist/sessions/new-session.js +8 -3
  181. package/dist/sessions/new-session.js.map +1 -1
  182. package/dist/sessions/register-fork-export.d.ts.map +1 -1
  183. package/dist/sessions/register-fork-export.js +3 -2
  184. package/dist/sessions/register-fork-export.js.map +1 -1
  185. package/dist/sessions/register-sessions.d.ts.map +1 -1
  186. package/dist/sessions/register-sessions.js +21 -10
  187. package/dist/sessions/register-sessions.js.map +1 -1
  188. package/dist/sessions/session-view.d.ts +10 -1
  189. package/dist/sessions/session-view.d.ts.map +1 -1
  190. package/dist/sessions/session-view.js +6 -1
  191. package/dist/sessions/session-view.js.map +1 -1
  192. package/dist/sessions/waiting-on.d.ts +7 -0
  193. package/dist/sessions/waiting-on.d.ts.map +1 -0
  194. package/dist/sessions/waiting-on.js +20 -0
  195. package/dist/sessions/waiting-on.js.map +1 -0
  196. package/dist/store/collections.d.ts +26 -8
  197. package/dist/store/collections.d.ts.map +1 -1
  198. package/dist/store/collections.js +3 -1
  199. package/dist/store/collections.js.map +1 -1
  200. package/dist/thinking-levels.d.ts +6 -0
  201. package/dist/thinking-levels.d.ts.map +1 -0
  202. package/dist/thinking-levels.js +13 -0
  203. package/dist/thinking-levels.js.map +1 -0
  204. package/dist/turns/answer-extras.d.ts +21 -0
  205. package/dist/turns/answer-extras.d.ts.map +1 -0
  206. package/dist/turns/answer-extras.js +43 -0
  207. package/dist/turns/answer-extras.js.map +1 -0
  208. package/dist/turns/answer-fingerprint.d.ts +6 -2
  209. package/dist/turns/answer-fingerprint.d.ts.map +1 -1
  210. package/dist/turns/answer-fingerprint.js +9 -3
  211. package/dist/turns/answer-fingerprint.js.map +1 -1
  212. package/dist/turns/apply-answer.d.ts +2 -1
  213. package/dist/turns/apply-answer.d.ts.map +1 -1
  214. package/dist/turns/apply-answer.js +10 -4
  215. package/dist/turns/apply-answer.js.map +1 -1
  216. package/dist/turns/approval-rules.d.ts +13 -0
  217. package/dist/turns/approval-rules.d.ts.map +1 -0
  218. package/dist/turns/approval-rules.js +65 -0
  219. package/dist/turns/approval-rules.js.map +1 -0
  220. package/dist/turns/cache-retention.d.ts +6 -0
  221. package/dist/turns/cache-retention.d.ts.map +1 -0
  222. package/dist/turns/cache-retention.js +7 -0
  223. package/dist/turns/cache-retention.js.map +1 -0
  224. package/dist/turns/call-results.d.ts +6 -0
  225. package/dist/turns/call-results.d.ts.map +1 -0
  226. package/dist/turns/call-results.js +21 -0
  227. package/dist/turns/call-results.js.map +1 -0
  228. package/dist/turns/check-after-edits.d.ts +8 -0
  229. package/dist/turns/check-after-edits.d.ts.map +1 -0
  230. package/dist/turns/check-after-edits.js +23 -0
  231. package/dist/turns/check-after-edits.js.map +1 -0
  232. package/dist/turns/child-result.d.ts.map +1 -1
  233. package/dist/turns/child-result.js +4 -2
  234. package/dist/turns/child-result.js.map +1 -1
  235. package/dist/turns/clear-results.d.ts +15 -0
  236. package/dist/turns/clear-results.d.ts.map +1 -0
  237. package/dist/turns/clear-results.js +58 -0
  238. package/dist/turns/clear-results.js.map +1 -0
  239. package/dist/turns/cleared-results.d.ts +17 -0
  240. package/dist/turns/cleared-results.d.ts.map +1 -0
  241. package/dist/turns/cleared-results.js +46 -0
  242. package/dist/turns/cleared-results.js.map +1 -0
  243. package/dist/turns/compaction.d.ts.map +1 -1
  244. package/dist/turns/compaction.js +8 -7
  245. package/dist/turns/compaction.js.map +1 -1
  246. package/dist/turns/end-turn-state.d.ts.map +1 -1
  247. package/dist/turns/end-turn-state.js +2 -0
  248. package/dist/turns/end-turn-state.js.map +1 -1
  249. package/dist/turns/ended-calls.d.ts +6 -0
  250. package/dist/turns/ended-calls.d.ts.map +1 -0
  251. package/dist/turns/ended-calls.js +43 -0
  252. package/dist/turns/ended-calls.js.map +1 -0
  253. package/dist/turns/file-results.d.ts +15 -0
  254. package/dist/turns/file-results.d.ts.map +1 -0
  255. package/dist/turns/file-results.js +39 -0
  256. package/dist/turns/file-results.js.map +1 -0
  257. package/dist/turns/lost-reply.js +2 -2
  258. package/dist/turns/lost-reply.js.map +1 -1
  259. package/dist/turns/model-context.d.ts +2 -0
  260. package/dist/turns/model-context.d.ts.map +1 -1
  261. package/dist/turns/model-context.js +41 -3
  262. package/dist/turns/model-context.js.map +1 -1
  263. package/dist/turns/model-info.d.ts +4 -0
  264. package/dist/turns/model-info.d.ts.map +1 -1
  265. package/dist/turns/model-info.js +7 -1
  266. package/dist/turns/model-info.js.map +1 -1
  267. package/dist/turns/model-retry.d.ts.map +1 -1
  268. package/dist/turns/model-retry.js +5 -4
  269. package/dist/turns/model-retry.js.map +1 -1
  270. package/dist/turns/read-again.d.ts +11 -5
  271. package/dist/turns/read-again.d.ts.map +1 -1
  272. package/dist/turns/read-again.js +39 -10
  273. package/dist/turns/read-again.js.map +1 -1
  274. package/dist/turns/register-turns.d.ts.map +1 -1
  275. package/dist/turns/register-turns.js +12 -4
  276. package/dist/turns/register-turns.js.map +1 -1
  277. package/dist/turns/run-calls.d.ts +4 -0
  278. package/dist/turns/run-calls.d.ts.map +1 -1
  279. package/dist/turns/run-calls.js +56 -10
  280. package/dist/turns/run-calls.js.map +1 -1
  281. package/dist/turns/run-command.d.ts.map +1 -1
  282. package/dist/turns/run-command.js +8 -10
  283. package/dist/turns/run-command.js.map +1 -1
  284. package/dist/turns/sent-size.d.ts +6 -2
  285. package/dist/turns/sent-size.d.ts.map +1 -1
  286. package/dist/turns/sent-size.js +8 -4
  287. package/dist/turns/sent-size.js.map +1 -1
  288. package/dist/turns/settle-calls.d.ts +1 -7
  289. package/dist/turns/settle-calls.d.ts.map +1 -1
  290. package/dist/turns/settle-calls.js +2 -19
  291. package/dist/turns/settle-calls.js.map +1 -1
  292. package/dist/turns/step.d.ts.map +1 -1
  293. package/dist/turns/step.js +68 -10
  294. package/dist/turns/step.js.map +1 -1
  295. package/dist/ui/register-ui.js +2 -2
  296. package/dist/ui/register-ui.js.map +1 -1
  297. package/dist/web/components/approval.css +1 -1
  298. package/dist/web/components/approval.js +122 -89
  299. package/dist/web/components/call.css +1 -1
  300. package/dist/web/components/call.js +431 -306
  301. package/dist/web/components/connectors.css +1 -1
  302. package/dist/web/components/connectors.js +553 -521
  303. package/dist/web/components/conversation.css +1 -1
  304. package/dist/web/components/conversation.js +2636 -1520
  305. package/dist/web/components/mcp-sign-in.css +1 -1
  306. package/dist/web/components/model.css +1 -1
  307. package/dist/web/components/model.js +140 -127
  308. package/dist/web/components/preferences.css +2 -0
  309. package/dist/web/components/preferences.js +151 -0
  310. package/dist/web/components/question.css +1 -1
  311. package/dist/web/components/sessions.css +1 -1
  312. package/dist/web/components/sessions.js +44 -21
  313. package/dist/web-fetch/fetch-page.d.ts +28 -0
  314. package/dist/web-fetch/fetch-page.d.ts.map +1 -0
  315. package/dist/web-fetch/fetch-page.js +108 -0
  316. package/dist/web-fetch/fetch-page.js.map +1 -0
  317. package/dist/web-fetch/private-address.d.ts +3 -0
  318. package/dist/web-fetch/private-address.d.ts.map +1 -0
  319. package/dist/web-fetch/private-address.js +69 -0
  320. package/dist/web-fetch/private-address.js.map +1 -0
  321. package/dist/web-fetch/web-hosts.d.ts +7 -0
  322. package/dist/web-fetch/web-hosts.d.ts.map +1 -0
  323. package/dist/web-fetch/web-hosts.js +19 -0
  324. package/dist/web-fetch/web-hosts.js.map +1 -0
  325. package/docs/connectors.md +5 -6
  326. package/locales/ar.json +81 -5
  327. package/locales/en.json +81 -5
  328. package/package.json +152 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-after-edits.js","sourceRoot":"","sources":["../../src/turns/check-after-edits.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,qHAAqH;AACrH,6HAA6H;AAG7H,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AACpF,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,KAAuC,EAAE,SAA6B;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACvI,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC;AAED,yDAAyD;AACzD,SAAS,IAAI,CAAC,MAAc;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AACjJ,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAQ,EAAE,SAAiB,EAAE,KAAyB;IACrF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,6BAA6B,KAAK,CAAC,IAAI,eAAe,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC;AAC5I,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"child-result.d.ts","sourceRoot":"","sources":["../../src/turns/child-result.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAezD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAQvH"}
1
+ {"version":3,"file":"child-result.d.ts","sourceRoot":"","sources":["../../src/turns/child-result.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAezD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAUvH"}
@@ -13,12 +13,14 @@ function stoppedBy(store, childId) {
13
13
  export function childResultInTx(store, childId, outcome) {
14
14
  const [last] = store.messages.find({ sessionId: childId, kind: 'assistant' }, { limit: 1, order: 'desc' });
15
15
  const answer = last === undefined ? '' : textOf(last.content['content']);
16
+ // Every helper result ends with the helper's id, which `delegate continue` takes (ADR 0085, 4).
17
+ const id = `\n\n(helper ${childId})`;
16
18
  if (outcome === 'done')
17
- return { text: truncate(answer), isError: false };
19
+ return { text: `${truncate(answer)}${id}`, isError: false };
18
20
  const why = stoppedBy(store, childId);
19
21
  const lines = [`subagent ended ${outcome}${why === undefined ? '' : `: ${why.code}`}`, ...(why?.reason === undefined ? [] : [why.reason])];
20
22
  if (answer !== '')
21
23
  lines.push('', 'Its last message before it stopped (unfinished, not a result):', answer);
22
- return { text: truncate(lines.join('\n')), isError: true };
24
+ return { text: `${truncate(lines.join('\n'))}${id}`, isError: true };
23
25
  }
24
26
  //# sourceMappingURL=child-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"child-result.js","sourceRoot":"","sources":["../../src/turns/child-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,kHAAkH;AAClH,uGAAuG;AAEvG,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAErI,qHAAqH;AACrH,SAAS,SAAS,CAAC,KAAgB,EAAE,OAAe;IAClD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,OAAe,EAAE,OAAgB;IACjF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,kBAAkB,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3I,IAAI,MAAM,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gEAAgE,EAAE,MAAM,CAAC,CAAC;IAC5G,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"child-result.js","sourceRoot":"","sources":["../../src/turns/child-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,kHAAkH;AAClH,uGAAuG;AAEvG,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAErI,qHAAqH;AACrH,SAAS,SAAS,CAAC,KAAgB,EAAE,OAAe;IAClD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,OAAe,EAAE,OAAgB;IACjF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3G,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,gGAAgG;IAChG,MAAM,EAAE,GAAG,eAAe,OAAO,GAAG,CAAC;IACrC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpF,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,kBAAkB,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3I,IAAI,MAAM,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gEAAgE,EAAE,MAAM,CAAC,CAAC;IAC5G,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Ctx, Stored } from '@kvman/sdk';
2
+ import type { SessionDoc } from '../schemas/records.ts';
3
+ import { type Measured } from './compaction.ts';
4
+ import { type History } from './model-context.ts';
5
+ import type { StepLease } from './step-claim.ts';
6
+ /** The newest result that may be cleared, and how many tokens the results not yet cleared up to it hold. */
7
+ export declare function clearable(history: History): {
8
+ seq: number;
9
+ tokens: number;
10
+ } | undefined;
11
+ /** Clears old results when one of the two moments has come; says whether it did. */
12
+ export declare function clearOldResults(ctx: Ctx, session: Stored<SessionDoc>, lease: StepLease, firstStep: boolean, measured: Measured & {
13
+ prompt: string;
14
+ }): Promise<boolean>;
15
+ //# sourceMappingURL=clear-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-results.d.ts","sourceRoot":"","sources":["../../src/turns/clear-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAWjD,4GAA4G;AAC5G,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAcvF;AAQD,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB5K"}
@@ -0,0 +1,58 @@
1
+ import { txRecords } from "../store/collections.js";
2
+ import { isCleared } from "./cleared-results.js";
3
+ import { promptTokens } from "./compaction.js";
4
+ import { modelInfo } from "./model-info.js";
5
+ import { sentHistory } from "./model-context.js";
6
+ import { sentCharacters } from "./sent-size.js";
7
+ import { liveStep } from "./step-intents.js";
8
+ // When old tool results are cleared (plan 08 §8.1, ADR 0094, 1): at the start of a step, over the results older than
9
+ // the newest 40,000 tokens of results; at a turn's first step after an hour without a model call, when the provider's
10
+ // cache has expired anyway, or at any step when there is much to clear and the prompt is half full.
11
+ const keptTokens = 40_000;
12
+ const worthTokens = 20_000;
13
+ const cacheExpiredMs = 60 * 60 * 1000;
14
+ /** The newest result that may be cleared, and how many tokens the results not yet cleared up to it hold. */
15
+ export function clearable(history) {
16
+ let kept = 0;
17
+ let found;
18
+ for (const message of [...history.messages].reverse()) {
19
+ if (message.kind !== 'toolResult')
20
+ continue;
21
+ const tokens = sentCharacters(message) / 4;
22
+ if (kept < keptTokens) {
23
+ kept += tokens;
24
+ continue;
25
+ }
26
+ if (isCleared(message, history.cleared))
27
+ break;
28
+ found = { seq: found?.seq ?? message.seq, tokens: (found?.tokens ?? 0) + tokens };
29
+ }
30
+ return found;
31
+ }
32
+ // The time of the chat's newest model call, from the replies it sends.
33
+ const lastCallAt = (history) => {
34
+ const reply = history.messages.findLast((message) => message.kind === 'assistant');
35
+ return reply === undefined ? undefined : Date.parse(reply.createdAt);
36
+ };
37
+ /** Clears old results when one of the two moments has come; says whether it did. */
38
+ export async function clearOldResults(ctx, session, lease, firstStep, measured) {
39
+ const history = await sentHistory(ctx, session.id, session.nextSeq);
40
+ const candidate = clearable(history);
41
+ if (candidate === undefined)
42
+ return false;
43
+ const last = lastCallAt(history);
44
+ const expired = firstStep && last !== undefined && Date.now() - last > cacheExpiredMs;
45
+ const window = (await modelInfo(ctx, session.model))?.contextWindow;
46
+ const full = candidate.tokens > worthTokens && window !== undefined && promptTokens(measured.prompt, history, measured).tokens > window / 2;
47
+ if (!expired && !full)
48
+ return false;
49
+ return ctx.store.transaction((tx) => {
50
+ ctx.job.signal.throwIfAborted();
51
+ const store = txRecords(tx);
52
+ if (liveStep(store, lease, lease.jobId) === undefined)
53
+ return false;
54
+ store.sessions.update(session.id, { clearedThroughSeq: candidate.seq });
55
+ return true;
56
+ });
57
+ }
58
+ //# sourceMappingURL=clear-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-results.js","sourceRoot":"","sources":["../../src/turns/clear-results.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Json, Stored } from '@kvman/sdk';
2
+ import type { MessageDoc } from '../schemas/records.ts';
3
+ /** Whether the model is sent this message as a cleared result. */
4
+ export declare const isCleared: (message: Pick<MessageDoc, "kind" | "seq">, clearedThrough: number) => boolean;
5
+ /** What a cleared result reads. */
6
+ export declare const clearedText: (call: string) => string;
7
+ /** Each call of the messages, by its id, named as `background` names a call. */
8
+ export declare function callNames(messages: readonly Stored<MessageDoc>[]): Map<string, string>;
9
+ /** The ids of the calls whose results are sent cleared. */
10
+ export declare function clearedCalls(messages: readonly Stored<MessageDoc>[], clearedThrough: number): Set<string>;
11
+ /** The longest text a cleared call keeps (ADR 0097, 4). */
12
+ export declare const keptCharacters = 500;
13
+ /** A cleared call's payload: every string longer than 500 characters replaced by a line that says how long it was. */
14
+ export declare function clearedPayload(value: Json): Json;
15
+ /** The characters a message is sent as, a cleared result counting its line. */
16
+ export declare const sentSize: (message: Stored<MessageDoc>, clearedThrough: number) => number;
17
+ //# sourceMappingURL=cleared-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleared-results.d.ts","sourceRoot":"","sources":["../../src/turns/cleared-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOxD,kEAAkE;AAClE,eAAO,MAAM,SAAS,GAAI,SAAS,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,gBAAgB,MAAM,KAAG,OAAyE,CAAC;AAExK,mCAAmC;AACnC,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAAkF,CAAC;AAI9H,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAatF;AAED,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAEzG;AAED,2DAA2D;AAC3D,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,sHAAsH;AACtH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAKhD;AAED,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,MAAM,KAAG,MAAsG,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { callName } from "../calls/call-name.js";
2
+ import { sentCharacters } from "./sent-size.js";
3
+ // Old tool results sent as a line that names the call (plan 08 §8.1, ADR 0094, 1): the result at or before the chat's
4
+ // `clearedThroughSeq` is replaced in what the model is sent, and its call's long texts too (ADR 0097, 4); the stored
5
+ // messages are unchanged.
6
+ /** Whether the model is sent this message as a cleared result. */
7
+ export const isCleared = (message, clearedThrough) => message.kind === 'toolResult' && message.seq <= clearedThrough;
8
+ /** What a cleared result reads. */
9
+ export const clearedText = (call) => `[cleared to save memory: ${call}. Make the call again if you need it.]`;
10
+ const fields = (value) => (typeof value === 'object' && value !== null && !Array.isArray(value) ? value : {});
11
+ /** Each call of the messages, by its id, named as `background` names a call. */
12
+ export function callNames(messages) {
13
+ const names = new Map();
14
+ for (const message of messages) {
15
+ const blocks = message.kind === 'assistant' ? message.content['content'] : undefined;
16
+ if (!Array.isArray(blocks))
17
+ continue;
18
+ for (const block of blocks) {
19
+ const call = fields(block);
20
+ const args = fields(call['arguments']);
21
+ if (call['type'] !== 'toolCall' || typeof call['id'] !== 'string')
22
+ continue;
23
+ names.set(call['id'], typeof args['connector'] === 'string' && typeof args['command'] === 'string' ? callName(args['connector'], args['command'], fields(args['payload'])) : String(call['name'] ?? 'a call'));
24
+ }
25
+ }
26
+ return names;
27
+ }
28
+ /** The ids of the calls whose results are sent cleared. */
29
+ export function clearedCalls(messages, clearedThrough) {
30
+ return new Set(messages.flatMap((message) => (isCleared(message, clearedThrough) && typeof message.content['toolCallId'] === 'string' ? [message.content['toolCallId']] : [])));
31
+ }
32
+ /** The longest text a cleared call keeps (ADR 0097, 4). */
33
+ export const keptCharacters = 500;
34
+ /** A cleared call's payload: every string longer than 500 characters replaced by a line that says how long it was. */
35
+ export function clearedPayload(value) {
36
+ if (typeof value === 'string')
37
+ return value.length > keptCharacters ? `[cleared to save memory: ${String(value.length)} characters]` : value;
38
+ if (Array.isArray(value))
39
+ return value.map(clearedPayload);
40
+ if (typeof value !== 'object' || value === null)
41
+ return value;
42
+ return Object.fromEntries(Object.entries(value).flatMap(([name, field]) => (field === undefined ? [] : [[name, clearedPayload(field)]])));
43
+ }
44
+ /** The characters a message is sent as, a cleared result counting its line. */
45
+ export const sentSize = (message, clearedThrough) => (isCleared(message, clearedThrough) ? clearedText('').length + 40 : sentCharacters(message));
46
+ //# sourceMappingURL=cleared-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleared-results.js","sourceRoot":"","sources":["../../src/turns/cleared-results.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/turns/compaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK9D,OAAO,EAAmD,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAcnG,uHAAuH;AACvH,eAAO,MAAM,kBAAkB,qpCACqnC,CAAC;AAOrpC,iHAAiH;AACjH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAAoF,CAAC;AAE5J,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAOpH;AAED,0GAA0G;AAC1G,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAYrK,uJAAuJ;AACvJ,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA+B9G"}
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/turns/compaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM9D,OAAO,EAAmD,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAcnG,uHAAuH;AACvH,eAAO,MAAM,kBAAkB,qpCACqnC,CAAC;AAOrpC,iHAAiH;AACjH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAAoF,CAAC;AAE5J,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAOpH;AAED,0GAA0G;AAC1G,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAYrK,uJAAuJ;AACvJ,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA+B9G"}
@@ -5,11 +5,12 @@ import { runTool } from "../calls/run-tool.js";
5
5
  import { txRecords } from "../store/collections.js";
6
6
  import { currentStep } from "./step-claim.js";
7
7
  import { liveStep } from "./step-intents.js";
8
+ import { cacheRetentionOf } from "./cache-retention.js";
8
9
  import { olderCount } from "./call-groups.js";
9
10
  import { appendMessage, appendNotice } from "./history.js";
10
11
  import { modelInfo } from "./model-info.js";
11
12
  import { modelMessages, sentHistory, summaryText, textOf } from "./model-context.js";
12
- import { sentCharacters } from "./sent-size.js";
13
+ import { sentSize } from "./cleared-results.js";
13
14
  import { personMessages, storedPerson, summaryFacts } from "./summary-facts.js";
14
15
  // Compaction (plan 08 §8.1): above `kvcoder.compactAt` of the model's window, by the provider's own count, kvai summarizes the
15
16
  // older messages, the last `kvcoder.compactKeep` stay whole (ADR 0020, 1) with the reply whose results they start at
@@ -21,7 +22,7 @@ import { personMessages, storedPerson, summaryFacts } from "./summary-facts.js";
21
22
  const minimumShare = 0.1;
22
23
  /** What a summary is asked for (ADR 0066, 1): the headings the next run needs, and not the lists kvman adds itself. */
23
24
  export const summaryInstruction = "Summarize the conversation above for the agent that continues it, so that it can go on without reading anything again. Use these headings, and leave one out when it has nothing. Request: what the person asked for, and every standing instruction they gave. State now: what exists and works, what was verified and how. Next step: the exact thing to do next. Decisions: each one with its reason. Files: each path that matters, what is in it and what you changed, with the names and lines the next steps need. Commands that work: the exact lines to build, test, and run. What failed: what was tried and why it did not work. Waiting on: questions, approvals, and runs that are not finished. Keep names, paths, and numbers exact. Write at most 1,500 words: fold an earlier summary into this one instead of repeating it, and leave out what the files themselves record. kvman adds the person's own messages, the execution map, the files changed, the background runs, and the artifacts itself, so don't list those. This instruction comes from kvman, not from the person: don't record it in the summary as a request or a direction. Reply with the summary only, and call no tool.";
24
- const sentTokens = (messages) => messages.reduce((total, message) => total + sentCharacters(message), 0) / 4;
25
+ const sentTokens = (messages, cleared) => messages.reduce((total, message) => total + sentSize(message, cleared), 0) / 4;
25
26
  // The whole prompt of a model call, as its provider counted it; 0 when the provider reported none.
26
27
  const reportedPrompt = (message) => (message.usage === null ? 0 : message.usage.input + message.usage.cacheRead + message.usage.cacheWrite);
27
28
  /** What a provider's count was measured with: the system prompt and the tool names of the call (ADR 0058, 2). */
@@ -35,8 +36,8 @@ export function promptTokens(prompt, history, now) {
35
36
  const counted = history.messages[index];
36
37
  const same = counted !== undefined && counted.basis === now.basis && (now.model === null || counted.model === now.model);
37
38
  if (counted === undefined || !same)
38
- return { tokens: (prompt.length + summaryText(history.summary).length) / 4 + sentTokens(history.messages), estimated: true };
39
- return { tokens: reportedPrompt(counted) + (counted.usage?.output ?? 0) + sentTokens(history.messages.slice(index + 1)), estimated: false };
39
+ return { tokens: (prompt.length + summaryText(history.summary).length) / 4 + sentTokens(history.messages, history.cleared), estimated: true };
40
+ return { tokens: reportedPrompt(counted) + (counted.usage?.output ?? 0) + sentTokens(history.messages.slice(index + 1), history.cleared), estimated: false };
40
41
  }
41
42
  async function summaryFailed(ctx, session, code, options) {
42
43
  await ctx.store.transaction(tx => {
@@ -56,14 +57,14 @@ export async function compact(ctx, session, options) {
56
57
  return false;
57
58
  const older = history.messages.slice(0, olderCount(history.messages, options.keep));
58
59
  const last = older.at(-1);
59
- if (last === undefined || (info !== undefined && sentTokens(older) < info.contextWindow * minimumShare))
60
+ if (last === undefined || (info !== undefined && sentTokens(older, history.cleared) < info.contextWindow * minimumShare))
60
61
  return false;
61
62
  ctx.job.progress({ type: 'compaction', state: 'started' });
62
63
  try {
63
- const messages = [...(await modelMessages(ctx, { summary: history.summary, messages: older })), { role: 'user', content: summaryInstruction, timestamp: Date.now() }];
64
+ const messages = [...(await modelMessages(ctx, { summary: history.summary, messages: older, cleared: history.cleared })), { role: 'user', content: summaryInstruction, timestamp: Date.now() }];
64
65
  if (options.lease !== undefined && await currentStep(ctx, options.lease) === undefined)
65
66
  return false;
66
- const answer = await ctx.exec('kvai.complete', { ...(session.model === null ? {} : { model: session.model }), sessionId: session.id, systemPrompt: options.prompt, messages, tools: [runTool(options.tools)], thinking: session.thinking });
67
+ const answer = await ctx.exec('kvai.complete', { ...(session.model === null ? {} : { model: session.model }), sessionId: session.id, ...cacheRetentionOf(session), systemPrompt: options.prompt, messages, tools: [runTool(options.tools)], thinking: session.thinking });
67
68
  const text = textOf(answer.message.content);
68
69
  if (text.trim() === '')
69
70
  return await summaryFailed(ctx, session, 'kvcoder/SUMMARY_EMPTY', options);
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/turns/compaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/turns/compaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"end-turn-state.d.ts","sourceRoot":"","sources":["../../src/turns/end-turn-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAqD,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzG,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,2HAA2H;AAC3H,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AACvH,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACzI,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CACtI,CAAC;AAwBF,8HAA8H;AAC9H,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAyBjL"}
1
+ {"version":3,"file":"end-turn-state.d.ts","sourceRoot":"","sources":["../../src/turns/end-turn-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAqD,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzG,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,2HAA2H;AAC3H,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AACvH,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IACzI,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CACtI,CAAC;AAwBF,8HAA8H;AAC9H,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CA0BjL"}
@@ -1,6 +1,7 @@
1
1
  import { now } from "../sessions/session-lookup.js";
2
2
  import { appendBackgroundInTx, backgroundText } from "./background.js";
3
3
  import { childResultInTx } from "./child-result.js";
4
+ import { appendEndedCalls } from "./ended-calls.js";
4
5
  import { appendNotice, appendQueued } from "./history.js";
5
6
  import { heldText, resolvePendingInTx } from "./resolve.js";
6
7
  import { invalidateStep, liveStep, prepareStep, settleStep } from "./step-intents.js";
@@ -51,6 +52,7 @@ export function endTurnState(store, sessionId, turnId, outcome, by, notice, auth
51
52
  const runs = turn.pending.flatMap(item => item.runId === null ? [] : [item.runId]);
52
53
  const endedAt = now();
53
54
  const durationMs = Math.max(Date.parse(endedAt) - Date.parse(turn.startedAt), 0);
55
+ appendEndedCalls(store, session, turn, outcome);
54
56
  store.turns.update(turnId, { endedAt, durationMs, outcome, calls: [], pending: [], results: [], deferredCalls: [] });
55
57
  for (const question of store.questions.find({ sessionId }, { limit: 1000 }))
56
58
  store.questions.delete(question.id);
@@ -1 +1 @@
1
- {"version":3,"file":"end-turn-state.js","sourceRoot":"","sources":["../../src/turns/end-turn-state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAC;AAYzG,qHAAqH;AACrH,2GAA2G;AAC3G,SAAS,YAAY,CAAC,KAAgB,EAAE,KAAyB,EAAE,OAAgB,EAAE,EAAW,EAAE,MAA0B;IAC1H,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/H,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjI,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC;IACtM,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;AACvF,CAAC;AAED,8HAA8H;AAC9H,MAAM,UAAU,YAAY,CAAC,KAAgB,EAAE,SAAiB,EAAE,MAAc,EAAE,OAAgB,EAAE,EAAW,EAAE,MAAe,EAAE,SAAwB;IACxJ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE,MAAM,KAAK,MAAM,IAAI,IAAI,EAAE,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpI,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACvF,IAAI,EAAE,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/F,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QACvD,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACpJ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;IACvE,CAAC;IACD,iHAAiH;IACjH,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/T,MAAM,cAAc,GAAG,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACpM,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,cAAc,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACzG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IACrH,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjH,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7N,MAAM,QAAQ,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACvJ,CAAC"}
1
+ {"version":3,"file":"end-turn-state.js","sourceRoot":"","sources":["../../src/turns/end-turn-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Stored } from '@kvman/sdk';
2
+ import type { Outcome, SessionDoc, TurnDoc } from '../schemas/records.ts';
3
+ import type { TxRecords } from '../store/collections.ts';
4
+ /** Appends, in the ending transaction, a result for each call of the turn's last reply that has none. */
5
+ export declare function appendEndedCalls(store: TxRecords, session: Stored<SessionDoc>, turn: Stored<TurnDoc>, outcome: Outcome): void;
6
+ //# sourceMappingURL=ended-calls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ended-calls.d.ts","sourceRoot":"","sources":["../../src/turns/ended-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAc,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAsCzD,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAS7H"}
@@ -0,0 +1,43 @@
1
+ import { appendResults } from "./call-results.js";
2
+ import { heldText } from "./resolve.js";
3
+ const why = {
4
+ cancelled: 'the person stopped the turn',
5
+ interrupted: 'kvman stopped',
6
+ failed: 'the turn failed',
7
+ maxSteps: 'the turn reached its step limit',
8
+ };
9
+ const notRun = (reason) => `not run: ${reason}`;
10
+ const stopped = (reason) => `stopped while it ran (${reason}): what it changed is unknown, so check before you run it again`;
11
+ function replyCalls(content) {
12
+ if (!Array.isArray(content))
13
+ return [];
14
+ return content.flatMap((block) => (block.type === 'toolCall' && block.id !== undefined && block.name !== undefined ? [{ toolCallId: block.id, toolName: block.name }] : []));
15
+ }
16
+ // What a call without a stored result returns, from what the turn still held for it.
17
+ function endedResult(turn, toolCallId, reason) {
18
+ const held = turn.results.find((result) => result.toolCallId === toolCallId);
19
+ // A held result with a `run` is an approved call that the next step would have run.
20
+ if (held !== undefined && held.run === null)
21
+ return held;
22
+ if (held !== undefined || turn.deferredCalls.some((deferred) => deferred.toolCallId === toolCallId))
23
+ return heldText(toolCallId, notRun(reason), true);
24
+ const pending = turn.pending.find((item) => item.toolCallId === toolCallId);
25
+ if (pending?.kind === 'question' || pending?.kind === 'approval')
26
+ return heldText(toolCallId, notRun(reason), true);
27
+ return heldText(toolCallId, stopped(reason), true);
28
+ }
29
+ /** Appends, in the ending transaction, a result for each call of the turn's last reply that has none. */
30
+ export function appendEndedCalls(store, session, turn, outcome) {
31
+ // A turn ends `done` only on a reply with no calls.
32
+ if (outcome === 'done')
33
+ return;
34
+ const [reply] = store.messages.find({ sessionId: session.id, turnId: turn.id, kind: 'assistant' }, { limit: 1, order: 'desc' });
35
+ if (reply === undefined)
36
+ return;
37
+ const answered = new Set(store.messages.find({ sessionId: session.id, turnId: turn.id, kind: 'toolResult' }, { limit: 1000, order: 'desc' }).filter((message) => message.seq > reply.seq).map((message) => String(message.content['toolCallId'])));
38
+ const calls = replyCalls(reply.content['content']).filter((call) => !answered.has(call.toolCallId));
39
+ if (calls.length === 0)
40
+ return;
41
+ appendResults(store, session, turn.id, calls, calls.map((call) => endedResult(turn, call.toolCallId, why[outcome])));
42
+ }
43
+ //# sourceMappingURL=ended-calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ended-calls.js","sourceRoot":"","sources":["../../src/turns/ended-calls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type Ctx, type Json } from '@kvman/sdk';
2
+ import type { RunCall } from '../calls/run-tool.ts';
3
+ /** The registrations whose result the model reads as text, not JSON. */
4
+ export declare const fileRead: string;
5
+ export declare const filesRead: string;
6
+ /** What the model reads, and the output the call's details keep. */
7
+ export type FileResult = {
8
+ text: string;
9
+ output: string;
10
+ };
11
+ /** A file call's result, or `undefined` for any other call. */
12
+ export declare function fileResult(ctx: Ctx, sessionId: string, call: RunCall, registration: string, value: unknown): Promise<FileResult | undefined>;
13
+ /** The files a successful read let the chat see, read now or held from before: what it may change (ADR 0053, 2). */
14
+ export declare function seenFiles(call: RunCall, registration: string, details: Json): string[];
15
+ //# sourceMappingURL=file-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-results.d.ts","sourceRoot":"","sources":["../../src/turns/file-results.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAUpD,wEAAwE;AACxE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAgD,CAAC;AAGvE,oEAAoE;AACpE,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,+DAA+D;AAC/D,wBAAsB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAclJ;AAED,oHAAoH;AACpH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,CAKtF"}
@@ -0,0 +1,39 @@
1
+ import { z } from '@kvman/sdk';
2
+ import { builtinCommands } from "../connectors/builtin-connectors.js";
3
+ import { editText, editValueSchema, fileReadSchema, filesEntrySchema, filesEntryText, readText, unchangedText } from "../files/read-text.js";
4
+ import { heldReads, sameRead } from "./read-again.js";
5
+ // What the model reads of `fs read`, `fs read-files`, and `fs edit` (plan 08 §8.3 and §8.5, ADR 0097, 2): numbered
6
+ // lines, while the call's `details` keep the JSON the call card shows. Lines the chat already holds read as unchanged.
7
+ const readFilesSchema = z.object({ files: z.array(filesEntrySchema) });
8
+ /** The registrations whose result the model reads as text, not JSON. */
9
+ export const fileRead = builtinCommands.fs.read.registration;
10
+ export const filesRead = builtinCommands.fs['read-files'].registration;
11
+ const fileEdit = builtinCommands.fs.edit.registration;
12
+ /** A file call's result, or `undefined` for any other call. */
13
+ export async function fileResult(ctx, sessionId, call, registration, value) {
14
+ if (registration === fileRead) {
15
+ const read = fileReadSchema.parse(value);
16
+ if ((await heldReads(ctx, sessionId)).some((held) => sameRead(held, read)))
17
+ return { text: unchangedText(read.path), output: unchangedText(read.path) };
18
+ const fromColumn = call.payload['fromColumn'];
19
+ return { text: readText(read, typeof fromColumn === 'number' ? fromColumn : 1), output: JSON.stringify(read) };
20
+ }
21
+ if (registration === filesRead) {
22
+ const held = await heldReads(ctx, sessionId);
23
+ const files = readFilesSchema.parse(value).files.map((entry) => ('content' in entry && held.some((read) => sameRead(read, entry)) ? { path: entry.path, unchanged: true } : entry));
24
+ return { text: files.map(filesEntryText).join('\n\n'), output: JSON.stringify({ files }) };
25
+ }
26
+ if (registration === fileEdit)
27
+ return { text: editText(editValueSchema.parse(value)), output: JSON.stringify(value) };
28
+ return undefined;
29
+ }
30
+ /** The files a successful read let the chat see, read now or held from before: what it may change (ADR 0053, 2). */
31
+ export function seenFiles(call, registration, details) {
32
+ if (registration === fileRead)
33
+ return typeof call.payload['path'] === 'string' ? [call.payload['path']] : [];
34
+ const output = registration === filesRead && typeof details === 'object' && details !== null && !Array.isArray(details) ? details['output'] : undefined;
35
+ if (typeof output !== 'string')
36
+ return [];
37
+ return readFilesSchema.parse(JSON.parse(output)).files.flatMap((entry) => ('content' in entry || 'unchanged' in entry ? [entry.path] : []));
38
+ }
39
+ //# sourceMappingURL=file-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-results.js","sourceRoot":"","sources":["../../src/turns/file-results.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export function lostTokens(blocks, usage) {
24
24
  /** What the model is told about its lost reply. */
25
25
  export function lostHint(tokens) {
26
26
  const about = Math.round(tokens / 100) * 100;
27
- return `Your last reply was lost on the way: the provider produced about ${String(about)} tokens, but no tool call or text reached me. Send it again now, calling the tool directly. If it was a large file, send the content in smaller pieces: one file per reply, under about 150 lines each, with \`fs write\`.`;
27
+ return `Your last reply was lost on the way: the provider produced about ${String(about)} tokens, but no tool call or text reached me. Send it again now, calling the tool directly. If it held a large file, write that file in parts of under about 150 lines with \`fs part\`, then \`fs assemble\`; only that file needs parts.`;
28
28
  }
29
29
  /** The automatic retries of an incomplete reply in one turn. */
30
30
  export const incompleteRetries = 1;
@@ -36,7 +36,7 @@ export function incompleteReply(blocks, stopReason) {
36
36
  /** What the model is told about its incomplete reply. */
37
37
  export function incompleteHint(reason) {
38
38
  const what = reason === 'empty' ? 'empty: no text and no tool call reached me' : 'cut off at the length limit before it finished';
39
- return `Your last reply was ${what}. Go on from where it stopped, in smaller pieces: one tool call per reply, and for a long file save it in parts with fs part and then write it with fs assemble.`;
39
+ return `Your last reply was ${what}. Go on from where it stopped. If it was writing a long file, save that file in parts with fs part and then write it with fs assemble.`;
40
40
  }
41
41
  /** A reply's blocks with a call that has a name but no id given one, and a call with no name dropped and counted (ADR 0009, 192). */
42
42
  export function repairedCalls(blocks) {
@@ -1 +1 @@
1
- {"version":3,"file":"lost-reply.js","sourceRoot":"","sources":["../../src/turns/lost-reply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,8HAA8H;AAC9H,qHAAqH;AACrH,oEAAoE;AAEpE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,mHAAmH;AACnH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAI7B,MAAM,UAAU,GAAG,CAAC,MAA6B,EAAE,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhM,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAAC,MAA6B,EAAE,KAAyD;IACxH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAC1J,OAAO,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAC/F,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAC,MAA6B,EAAE,KAAyD;IACjH,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,IAAI,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACjH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC7C,OAAO,oEAAoE,MAAM,CAAC,KAAK,CAAC,4NAA4N,CAAC;AACvT,CAAC;AAKD,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,MAAM,UAAU,eAAe,CAAC,MAA6B,EAAE,UAAkB;IAC/E,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACjH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,gDAAgD,CAAC;IAClI,OAAO,uBAAuB,IAAI,kKAAkK,CAAC;AACvM,CAAC;AAID,qIAAqI;AACrI,MAAM,UAAU,aAAa,CAA0B,MAAwB;IAC7E,MAAM,IAAI,GAAY,EAAE,CAAC;IACzB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE;YAAE,MAAM,IAAI,CAAC,CAAC;;YAC/D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"lost-reply.js","sourceRoot":"","sources":["../../src/turns/lost-reply.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { type Ctx, type Json, type Stored } from '@kvman/sdk';
2
2
  import type { MessageDoc } from '../schemas/records.ts';
3
+ /** The summary, the model-visible messages after it, and the last result sent cleared (ADR 0094, 1; -1 for none). */
3
4
  export type History = {
4
5
  summary: Stored<MessageDoc> | undefined;
5
6
  messages: Stored<MessageDoc>[];
7
+ cleared: number;
6
8
  };
7
9
  /** The summary and the model-visible messages after it. */
8
10
  export declare function sentHistory(ctx: Ctx, sessionId: string, nextSeq: number): Promise<History>;
@@ -1 +1 @@
1
- {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../../src/turns/model-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAUxD,MAAM,MAAM,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAA;CAAE,CAAC;AAIlG,2DAA2D;AAC3D,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhG;AAED,6DAA6D;AAC7D,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAMxD;AA0CD,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,GAAG,MAAM,CAIpF;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAI7D"}
1
+ {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../../src/turns/model-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAYxD,qHAAqH;AACrH,MAAM,MAAM,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAInH,2DAA2D;AAC3D,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhG;AAED,6DAA6D;AAC7D,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAMxD;AAiED,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,GAAG,MAAM,CAIpF;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAY7D"}