@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,18 @@
1
+ import { type Ctx, type Stored } from '@kvman/sdk';
2
+ import { type DelegateContinue } from '../connectors/delegate.ts';
3
+ import type { SessionDoc } from '../schemas/records.ts';
4
+ import type { StepLease } from '../turns/step-claim.ts';
5
+ import type { CreationGuard } from './permission.ts';
6
+ import { type SubagentWorker } from './workers.ts';
7
+ /** The ended helper `id` of the chat, with its worker as the list has it now; a Problem for anything else. */
8
+ export declare function continuableHelper(ctx: Ctx, sessionId: string, id: string): Promise<{
9
+ child: Stored<SessionDoc>;
10
+ worker: SubagentWorker;
11
+ }>;
12
+ export declare function registerContinueCheck(ctx: Ctx): void;
13
+ /**
14
+ * Gives the helper its message, in the transaction that checks the originating step and the grants again; with
15
+ * `background`, the chat also records it as a background run, or starts the record over when it already has one.
16
+ */
17
+ export declare function messageHelper(ctx: Ctx, lease: StepLease, request: DelegateContinue, guard: CreationGuard): Promise<boolean>;
18
+ //# sourceMappingURL=continue-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue-helper.d.ts","sourceRoot":"","sources":["../../src/delegate/continue-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE5G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAK/E,8GAA8G;AAC9G,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CAU/I;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAWpD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAejI"}
@@ -0,0 +1,64 @@
1
+ import { z } from '@kvman/sdk';
2
+ import { callInput } from "../connectors/connector-command.js";
3
+ import { delegateCommands, delegateContinueSchema } from "../connectors/delegate.js";
4
+ import { invalid } from "../problems.js";
5
+ import { now } from "../sessions/session-lookup.js";
6
+ import { records, txRecords } from "../store/collections.js";
7
+ import { appendMessage, userContent } from "../turns/history.js";
8
+ import { liveStep } from "../turns/step-intents.js";
9
+ import { availableWorker, isProgram } from "./workers.js";
10
+ // `delegate continue` (plan 08 §8.5, ADR 0085, 4): a follow-up to an ended subagent helper of this chat, which goes on
11
+ // with its own history, worker, instructions, model, and thinking. Its check refuses what can't be continued.
12
+ /** The ended helper `id` of the chat, with its worker as the list has it now; a Problem for anything else. */
13
+ export async function continuableHelper(ctx, sessionId, id) {
14
+ const store = records(ctx.store);
15
+ const run = await store.runs.get(id);
16
+ if (run?.sessionId === sessionId)
17
+ throw invalid(`${id} is a program worker's run; only a subagent helper can be continued.`, { id });
18
+ const [parent, child] = await Promise.all([store.sessions.get(sessionId), store.sessions.get(id)]);
19
+ if (child?.parentId !== sessionId || child.worker === null)
20
+ throw ctx.problem('kvcoder/JOB_NOT_FOUND', { sessionId, id });
21
+ if (child.status !== 'idle' || child.turnId !== null)
22
+ throw invalid(`The helper ${id} is still working; wait for it or stop it, then continue it.`, { id });
23
+ const worker = await availableWorker(ctx, parent?.checks ?? null, child.worker.name);
24
+ if (isProgram(worker))
25
+ throw invalid(`${id} is a program worker's run; only a subagent helper can be continued.`, { id });
26
+ return { child, worker };
27
+ }
28
+ export function registerContinueCheck(ctx) {
29
+ ctx.registerCommand('kvcoder.delegate.continue.check', {
30
+ description: delegateCommands.continue.description,
31
+ input: callInput(delegateContinueSchema),
32
+ output: z.object({}),
33
+ retries: 0,
34
+ handle: async ({ sessionId, payload }) => {
35
+ await continuableHelper(ctx, sessionId, payload.id);
36
+ return {};
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * Gives the helper its message, in the transaction that checks the originating step and the grants again; with
42
+ * `background`, the chat also records it as a background run, or starts the record over when it already has one.
43
+ */
44
+ export async function messageHelper(ctx, lease, request, guard) {
45
+ return ctx.store.transaction((tx) => {
46
+ const store = txRecords(tx);
47
+ const parent = guard(store);
48
+ const child = store.sessions.get(request.id);
49
+ if (child?.parentId !== parent.id || child.status !== 'idle' || child.turnId !== null)
50
+ throw invalid(`The helper ${request.id} can no longer be continued.`, { id: request.id });
51
+ if (request.background === true) {
52
+ if (liveStep(store, lease, lease.jobId) === undefined)
53
+ return false;
54
+ const [entry] = store.background.find({ sessionId: parent.id, ref: child.id }, { limit: 1 });
55
+ if (entry === undefined)
56
+ store.background.insert({ sessionId: parent.id, ref: child.id, kind: 'subagent', call: child.title, startedAt: now() });
57
+ else
58
+ store.background.update(entry.id, { startedAt: now() });
59
+ }
60
+ appendMessage(store, child, { kind: 'user', content: userContent(request.message), source: { kind: 'subagent', sessionId: parent.id } });
61
+ return true;
62
+ });
63
+ }
64
+ //# sourceMappingURL=continue-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue-helper.js","sourceRoot":"","sources":["../../src/delegate/continue-helper.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,10 @@ export declare function waitingInTx(store: TxRecords, authority: PendingAuthorit
24
24
  readOnly: boolean;
25
25
  } | null;
26
26
  model: string | null;
27
- thinking: "off" | "minimal" | "low" | "medium" | "high";
27
+ thinking: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
28
+ decides: boolean;
29
+ clearedThroughSeq: number | null;
30
+ webHosts: string[];
28
31
  usageBy: {
29
32
  summary: {
30
33
  input: number;
@@ -105,10 +108,10 @@ export declare function waitingInTx(store: TxRecords, authority: PendingAuthorit
105
108
  details: import("zod").JSONType;
106
109
  isError: boolean;
107
110
  run: {
108
- description: string;
109
111
  connector: string;
110
112
  command: string;
111
113
  payload: Record<string, import("zod").JSONType>;
114
+ description?: string;
112
115
  } | {
113
116
  command: string;
114
117
  timeoutMs: number;
@@ -117,10 +120,10 @@ export declare function waitingInTx(store: TxRecords, authority: PendingAuthorit
117
120
  deferredCalls: {
118
121
  toolCallId: string;
119
122
  call: {
120
- description: string;
121
123
  connector: string;
122
124
  command: string;
123
125
  payload: Record<string, import("zod").JSONType>;
126
+ description?: string;
124
127
  };
125
128
  }[];
126
129
  }>;
@@ -141,7 +144,10 @@ export declare function delegationInTx(store: TxRecords, sessionId: string, prep
141
144
  readOnly: boolean;
142
145
  } | null;
143
146
  model: string | null;
144
- thinking: "off" | "minimal" | "low" | "medium" | "high";
147
+ thinking: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
148
+ decides: boolean;
149
+ clearedThroughSeq: number | null;
150
+ webHosts: string[];
145
151
  usageBy: {
146
152
  summary: {
147
153
  input: number;
@@ -215,7 +221,7 @@ export declare function delegationInTx(store: TxRecords, sessionId: string, prep
215
221
  readOnly: boolean;
216
222
  connectors: string[] | null;
217
223
  model: string | null;
218
- thinking: "off" | "minimal" | "low" | "medium" | "high" | null;
224
+ thinking: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null;
219
225
  name: string;
220
226
  description: string;
221
227
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/delegate/permission.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAQxE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAOpG;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlI;AAED,0GAA0G;AAC1G,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAStG;AAED,iGAAiG;AACjG,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUtH"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/delegate/permission.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAQxE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAOpG;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlI;AAED,0GAA0G;AAC1G,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAStG;AAED,iGAAiG;AACjG,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUtH"}
@@ -1,4 +1,5 @@
1
1
  import type { Ctx, Stored } from '@kvman/sdk';
2
+ import type { DelegateRun } from '../connectors/delegate.ts';
2
3
  import type { HeldResult, RunDoc, RunStaging } from '../schemas/records.ts';
3
4
  import { type TxRecords } from '../store/collections.ts';
4
5
  import { type CreationGuard } from './permission.ts';
@@ -10,15 +11,9 @@ export type RunEnd = {
10
11
  isError: boolean;
11
12
  staging?: RunStaging;
12
13
  };
13
- /** Records a run of `worker` on `task`; `toolCallId` is the call that waits on it, or `null` for a background run. */
14
- export declare function recordRun(store: TxRecords, sessionId: string, worker: ProgramWorker, call: {
15
- description: string;
16
- task: string;
17
- }, toolCallId: string | null): Stored<RunDoc>;
18
- export declare function createRun(ctx: Ctx, sessionId: string, worker: ProgramWorker, call: {
19
- description: string;
20
- task: string;
21
- }, toolCallId: string | null, guard: CreationGuard): Promise<Stored<RunDoc>>;
14
+ /** Records a run of `worker` on `task`, named by its title (ADR 0089, 1); `toolCallId` is the call that waits on it, or `null` for a background run. */
15
+ export declare function recordRun(store: TxRecords, sessionId: string, worker: ProgramWorker, run: Pick<DelegateRun, 'title' | 'task'>, toolCallId: string | null): Stored<RunDoc>;
16
+ export declare function createRun(ctx: Ctx, sessionId: string, worker: ProgramWorker, run: Pick<DelegateRun, 'title' | 'task'>, toolCallId: string | null, guard: CreationGuard): Promise<Stored<RunDoc>>;
22
17
  /** Queues the job that runs a recorded run. */
23
18
  export declare function launchRun(ctx: Ctx, runId: string, guard: CreationGuard): Promise<void>;
24
19
  /**
@@ -26,8 +21,11 @@ export declare function launchRun(ctx: Ctx, runId: string, guard: CreationGuard)
26
21
  * as a background message, which may start a turn.
27
22
  */
28
23
  export declare function finishRun(ctx: Ctx, runId: string, end: RunEnd, startTurn: boolean): Promise<boolean>;
29
- /** Stops a run for the agent or the person: its result is that it was stopped (ADR 0021, 34). `false` for one that had ended. */
30
- export declare function stopRun(ctx: Ctx, run: Stored<RunDoc>): Promise<boolean>;
24
+ /**
25
+ * Stops a run for the agent or the person: its result is that it was stopped (ADR 0021, 34). The agent's own stop tells
26
+ * the chat nothing more, since its result says so (ADR 0085, 5). `false` for one that had ended.
27
+ */
28
+ export declare function stopRun(ctx: Ctx, run: Stored<RunDoc>, by: 'agent' | 'person'): Promise<boolean>;
31
29
  /** Stops a run whose turn or chat is going away: nothing is told to anyone. */
32
30
  export declare function dropRun(ctx: Ctx, run: Stored<RunDoc>): Promise<void>;
33
31
  /** Stops every run a session still has going, and forgets all of them (the chat is deleted). */
@@ -1 +1 @@
1
- {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/delegate/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAErJ,sHAAsH;AACtH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAG5K;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAMzM;AAED,+CAA+C;AAC/C,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5F;AAiBD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1G;AAOD,iIAAiI;AACjI,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7E;AAED,+EAA+E;AAC/E,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED,gGAAgG;AAChG,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,MAAM,MAAM,KAAG,UAA8C,CAAC"}
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/delegate/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,MAAM,MAAM,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAErJ,wJAAwJ;AACxJ,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAGzK;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAMtM;AAED,+CAA+C;AAC/C,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5F;AAiBD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1G;AAOD;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAKrG;AAED,+EAA+E;AAC/E,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED,gGAAgG;AAChG,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,MAAM,MAAM,KAAG,UAA8C,CAAC"}
@@ -6,16 +6,16 @@ import { appendBackgroundInTx, backgroundText } from "../turns/background.js";
6
6
  import { heldText, resolvePendingInTx } from "../turns/resolve.js";
7
7
  import { beginTurn, dispatchStep } from "../turns/start-turn.js";
8
8
  import { commandLine } from "./programs.js";
9
- /** Records a run of `worker` on `task`; `toolCallId` is the call that waits on it, or `null` for a background run. */
10
- export function recordRun(store, sessionId, worker, call, toolCallId) {
11
- const line = commandLine(worker, call.task);
12
- return store.runs.insert({ sessionId, toolCallId, worker: worker.name, kind: worker.kind, call: call.description, command: line.command, args: line.args, timeoutMs: worker.timeoutMs, jobId: null, status: 'running', startedAt: now(), endedAt: null, exitCode: null, output: null, staging: null });
9
+ /** Records a run of `worker` on `task`, named by its title (ADR 0089, 1); `toolCallId` is the call that waits on it, or `null` for a background run. */
10
+ export function recordRun(store, sessionId, worker, run, toolCallId) {
11
+ const line = commandLine(worker, run.task);
12
+ return store.runs.insert({ sessionId, toolCallId, worker: worker.name, kind: worker.kind, call: run.title, command: line.command, args: line.args, timeoutMs: worker.timeoutMs, jobId: null, status: 'running', startedAt: now(), endedAt: null, exitCode: null, output: null, staging: null });
13
13
  }
14
- export async function createRun(ctx, sessionId, worker, call, toolCallId, guard) {
14
+ export async function createRun(ctx, sessionId, worker, run, toolCallId, guard) {
15
15
  return ctx.store.transaction(tx => {
16
16
  const store = txRecords(tx);
17
17
  guard(store);
18
- return recordRun(store, sessionId, worker, call, toolCallId);
18
+ return recordRun(store, sessionId, worker, run, toolCallId);
19
19
  });
20
20
  }
21
21
  /** Queues the job that runs a recorded run. */
@@ -73,9 +73,13 @@ async function cancelJobOf(ctx, run) {
73
73
  if (jobId !== null)
74
74
  await ctx.cancel(jobId);
75
75
  }
76
- /** Stops a run for the agent or the person: its result is that it was stopped (ADR 0021, 34). `false` for one that had ended. */
77
- export async function stopRun(ctx, run) {
78
- const stopped = await finishRun(ctx, run.id, { status: 'cancelled', exitCode: null, text: `${run.worker} was stopped`, isError: true }, false);
76
+ /**
77
+ * Stops a run for the agent or the person: its result is that it was stopped (ADR 0021, 34). The agent's own stop tells
78
+ * the chat nothing more, since its result says so (ADR 0085, 5). `false` for one that had ended.
79
+ */
80
+ export async function stopRun(ctx, run, by) {
81
+ const end = { status: 'cancelled', exitCode: null, text: `${run.worker} was stopped`, isError: true };
82
+ const stopped = by === 'person' ? await finishRun(ctx, run.id, end, false) : await markEnded(ctx, run.id, end);
79
83
  if (stopped)
80
84
  await cancelJobOf(ctx, run);
81
85
  return stopped;
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/delegate/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/delegate/runs.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare const subagentWorkerSchema: z.ZodObject<{
11
11
  low: "low";
12
12
  medium: "medium";
13
13
  high: "high";
14
+ xhigh: "xhigh";
15
+ max: "max";
14
16
  }>>;
15
17
  name: z.ZodString;
16
18
  description: z.ZodString;
@@ -96,6 +98,8 @@ export declare const workerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
96
98
  low: "low";
97
99
  medium: "medium";
98
100
  high: "high";
101
+ xhigh: "xhigh";
102
+ max: "max";
99
103
  }>>;
100
104
  name: z.ZodString;
101
105
  description: z.ZodString;
@@ -176,6 +180,8 @@ export declare const workersSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObj
176
180
  low: "low";
177
181
  medium: "medium";
178
182
  high: "high";
183
+ xhigh: "xhigh";
184
+ max: "max";
179
185
  }>>;
180
186
  name: z.ZodString;
181
187
  description: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/delegate/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAkBvD,uLAAuL;AACvL,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;kBAAyN,CAAC;AAW3P,4EAA4E;AAC5E,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA6C,CAAC;AAExF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBAAmM,CAAC;AACrO,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;kBAA6M,CAAC;AACzO,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;kBAM8E,CAAC;AAE9G,4FAA4F;AAC5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAiH,CAAC;AAE3I,4EAA4E;AAC5E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAsJ,CAAC;AAEjL,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE5D,uDAAuD;AACvD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,aAA2C,CAAC;AAEjG,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAA0B,CAAC;AA4C1E,gKAAgK;AAChK,eAAO,MAAM,cAAc,EAAE,cAAc,EAM1C,CAAC;AAEF,kEAAkE;AAClE,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/D;AAED,KAAK,MAAM,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,IAAI,CAAC;AAElE,0GAA0G;AAC1G,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGlF;AAMD,6FAA6F;AAC7F,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7F;AAED,wDAAwD;AACxD,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/delegate/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAkBvD,uLAAuL;AACvL,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;kBAAyN,CAAC;AAW3P,4EAA4E;AAC5E,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA6C,CAAC;AAExF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBAAmM,CAAC;AACrO,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;kBAA6M,CAAC;AACzO,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;kBAM8E,CAAC;AAE9G,4FAA4F;AAC5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAiH,CAAC;AAE3I,4EAA4E;AAC5E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAsJ,CAAC;AAEjL,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE5D,uDAAuD;AACvD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAAM,IAAI,aAA2C,CAAC;AAEjG,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAA0B,CAAC;AA4C1E,gKAAgK;AAChK,eAAO,MAAM,cAAc,EAAE,cAAc,EAM1C,CAAC;AAEF,kEAAkE;AAClE,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/D;AAED,KAAK,MAAM,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,IAAI,CAAC;AAElE,0GAA0G;AAC1G,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGlF;AAMD,6FAA6F;AAC7F,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7F;AAED,wDAAwD;AACxD,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
@@ -0,0 +1,17 @@
1
+ export type FileState = 'changed' | 'created' | 'deleted';
2
+ export type FileDiff = {
3
+ added: number;
4
+ removed: number;
5
+ diff: string;
6
+ };
7
+ /** Git in the workspace folder: its exit code and output, or `undefined` when Git can't be run at all. */
8
+ export type Git = (args: readonly string[]) => Promise<{
9
+ code: number;
10
+ out: string;
11
+ } | undefined>;
12
+ export declare function gitIn(cwd: string, signal: AbortSignal): Git;
13
+ /** The file's change against `HEAD`. */
14
+ export declare function headDiff(git: Git, shown: string): Promise<FileDiff | undefined>;
15
+ /** The file's change against an earlier copy (`null` for nothing): Git's `--no-index` exits 1 when they differ. */
16
+ export declare function copyDiff(git: Git, shown: string, real: string | undefined, earlier: Buffer | null): Promise<FileDiff | undefined>;
17
+ //# sourceMappingURL=change-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-diff.d.ts","sourceRoot":"","sources":["../../src/files/change-diff.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,0GAA0G;AAC1G,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAAC;AAIlG,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAY3D;AAcD,wCAAwC;AACxC,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAGrF;AAED,mHAAmH;AACnH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAYvI"}
@@ -0,0 +1,59 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import path from 'node:path';
5
+ import { promisify } from 'node:util';
6
+ // The diff of one file a chat changed (plan 08 §8.6, ADR 0093, 2), with Git run as a program, never a shell: against
7
+ // `HEAD` when Git tracks the file, else against an earlier copy, or nothing for a file the chat created.
8
+ const run = promisify(execFile);
9
+ const diffLimit = 64 * 1024;
10
+ const failureOf = (error) => (typeof error === 'object' && error !== null ? error : {});
11
+ export function gitIn(cwd, signal) {
12
+ return async (args) => {
13
+ try {
14
+ return { code: 0, out: (await run('git', ['-c', 'core.fsmonitor=false', ...args], { cwd, signal, timeout: 10_000, maxBuffer: 16 * 1024 * 1024 })).stdout };
15
+ }
16
+ catch (error) {
17
+ signal.throwIfAborted();
18
+ const failed = failureOf(error);
19
+ if (failed.code === 'ENOENT')
20
+ return undefined;
21
+ if (typeof failed.code === 'number')
22
+ return { code: failed.code, out: typeof failed.stdout === 'string' ? failed.stdout : '' };
23
+ throw error;
24
+ }
25
+ };
26
+ }
27
+ // The diff's own header names the file as the person knows it, not the copies Git compared.
28
+ function counted(diff, shown) {
29
+ const lines = diff.split('\n');
30
+ const start = lines.findIndex((line) => line.startsWith('@@'));
31
+ if (start < 0)
32
+ return { added: 0, removed: 0, diff: '' };
33
+ const body = lines.slice(start);
34
+ const added = body.filter((line) => line.startsWith('+')).length;
35
+ const removed = body.filter((line) => line.startsWith('-')).length;
36
+ const whole = [`--- a/${shown}`, `+++ b/${shown}`, ...body].join('\n');
37
+ return { added, removed, diff: whole.length > diffLimit ? `${whole.slice(0, diffLimit)}\n[… cut at 64 KB …]` : whole };
38
+ }
39
+ /** The file's change against `HEAD`. */
40
+ export async function headDiff(git, shown) {
41
+ const done = await git(['diff', '--no-color', '--no-ext-diff', 'HEAD', '--', shown]);
42
+ return done === undefined ? undefined : counted(done.out, shown);
43
+ }
44
+ /** The file's change against an earlier copy (`null` for nothing): Git's `--no-index` exits 1 when they differ. */
45
+ export async function copyDiff(git, shown, real, earlier) {
46
+ const folder = await mkdtemp(path.join(tmpdir(), 'kvcoder-diff-'));
47
+ try {
48
+ const before = path.join(folder, 'before');
49
+ const empty = path.join(folder, 'empty');
50
+ await writeFile(before, earlier ?? Buffer.alloc(0));
51
+ await writeFile(empty, Buffer.alloc(0));
52
+ const done = await git(['diff', '--no-index', '--no-color', '--no-ext-diff', '--', before, real ?? empty]);
53
+ return done === undefined ? undefined : counted(done.out, shown);
54
+ }
55
+ finally {
56
+ await rm(folder, { recursive: true, force: true });
57
+ }
58
+ }
59
+ //# sourceMappingURL=change-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-diff.js","sourceRoot":"","sources":["../../src/files/change-diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** The lines an `oldText` found at these offsets starts on, and the first few shown with a line around each. */
2
+ export declare function manyPlaces(content: string, offsets: readonly number[]): {
3
+ lines: string;
4
+ shown: string;
5
+ };
6
+ /** What an error for an `oldText` that isn't found adds: where it may have meant, or nothing. */
7
+ export declare function nearPlaces(content: string, oldText: string): {
8
+ sentence: string;
9
+ shown: string;
10
+ } | undefined;
11
+ //# sourceMappingURL=edit-places.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-places.d.ts","sourceRoot":"","sources":["../../src/files/edit-places.ts"],"names":[],"mappings":"AA2DA,gHAAgH;AAChH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAKxG;AA2BD,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAa5G"}
@@ -0,0 +1,105 @@
1
+ import { linesOf, numberedLine } from "./read-text.js";
2
+ // Where a failed edit could have meant (plan 08 §8.5, ADR 0097, 3): the lines of an `oldText` found several times, or
3
+ // for one not found, where it matches when whitespace is ignored, else where its first line appears. Shown lines are
4
+ // numbered as a read numbers them. Nothing is ever applied from here.
5
+ const listedLimit = 20;
6
+ const shownMatches = 5;
7
+ const placesShown = 3;
8
+ const placeLines = 20;
9
+ const lineCharacters = 200;
10
+ /** The line number of each character offset, counting from 1. */
11
+ function lineFinder(content) {
12
+ const starts = [0];
13
+ for (let index = content.indexOf('\n'); index >= 0; index = content.indexOf('\n', index + 1))
14
+ starts.push(index + 1);
15
+ return (offset) => {
16
+ let low = 0;
17
+ let high = starts.length - 1;
18
+ while (low < high) {
19
+ const middle = Math.ceil((low + high) / 2);
20
+ if ((starts[middle] ?? 0) <= offset)
21
+ low = middle;
22
+ else
23
+ high = middle - 1;
24
+ }
25
+ return low + 1;
26
+ };
27
+ }
28
+ const cutLine = (line) => (line.length > lineCharacters ? `${line.slice(0, lineCharacters)}…` : line);
29
+ // The file's lines `from` to `to`, numbered, at most 20 of them.
30
+ function shownLines(lines, from, to) {
31
+ const first = Math.max(from, 1);
32
+ const last = Math.min(to, lines.length, first + placeLines - 1);
33
+ const shown = [];
34
+ for (let number = first; number <= last; number += 1)
35
+ shown.push(numberedLine(number, cutLine((lines[number - 1] ?? '').replace(/\r?\n$/, ''))));
36
+ return shown.join('\n');
37
+ }
38
+ // The places' lines, numbered, places whose lines overlap shown once together.
39
+ function shownPlaces(lines, ranges) {
40
+ const merged = [];
41
+ for (const range of [...ranges].sort((first, second) => first.from - second.from)) {
42
+ const last = merged.at(-1);
43
+ if (last !== undefined && range.from <= last.to)
44
+ last.to = Math.max(last.to, range.to);
45
+ else
46
+ merged.push({ ...range });
47
+ }
48
+ return merged.map((range) => shownLines(lines, range.from, range.to)).join('\n\n');
49
+ }
50
+ const listed = (places, limit) => {
51
+ const more = places.length > limit ? ` and ${String(places.length - limit)} more` : '';
52
+ return `${places.slice(0, limit).join(', ')}${more}`;
53
+ };
54
+ const lineWord = (places) => (places.length === 1 ? 'line' : 'lines');
55
+ const distinct = (numbers) => [...new Set(numbers)];
56
+ /** The lines an `oldText` found at these offsets starts on, and the first few shown with a line around each. */
57
+ export function manyPlaces(content, offsets) {
58
+ const lineOf = lineFinder(content);
59
+ const numbers = distinct(offsets.map(lineOf));
60
+ const lines = linesOf(content);
61
+ return { lines: `${lineWord(numbers)} ${listed(numbers, listedLimit)}`, shown: shownPlaces(lines, numbers.slice(0, shownMatches).map((line) => ({ from: line - 1, to: line + 1 }))) };
62
+ }
63
+ // The content with each run of whitespace as one space, and where each of its characters came from.
64
+ function loosened(content) {
65
+ let text = '';
66
+ const origins = [];
67
+ for (const match of content.matchAll(/\s+|\S+/g)) {
68
+ const isSpace = /^\s/.test(match[0]);
69
+ text += isSpace ? ' ' : match[0];
70
+ for (let index = 0; index < (isSpace ? 1 : match[0].length); index += 1)
71
+ origins.push(match.index + index);
72
+ }
73
+ return { text, origins };
74
+ }
75
+ // The places, as first and last line, where the text matches with each run of whitespace taken as one space.
76
+ function looseMatches(content, oldText) {
77
+ const needle = oldText.trim().replace(/\s+/g, ' ');
78
+ if (needle === '')
79
+ return [];
80
+ const loose = loosened(content);
81
+ const lineOf = lineFinder(content);
82
+ const found = [];
83
+ for (let index = loose.text.indexOf(needle); index >= 0; index = loose.text.indexOf(needle, index + needle.length)) {
84
+ found.push({ first: lineOf(loose.origins[index] ?? 0), last: lineOf(loose.origins[index + needle.length - 1] ?? 0) });
85
+ }
86
+ return found;
87
+ }
88
+ /** What an error for an `oldText` that isn't found adds: where it may have meant, or nothing. */
89
+ export function nearPlaces(content, oldText) {
90
+ const lines = linesOf(content);
91
+ const loose = looseMatches(content, oldText);
92
+ if (loose.length > 0) {
93
+ const places = loose.map((place) => (place.first === place.last ? String(place.first) : `${String(place.first)}–${String(place.last)}`));
94
+ return { sentence: `It matches when whitespace is ignored at ${loose.length === 1 && loose[0]?.first === loose[0]?.last ? 'line' : 'lines'} ${listed(places, placesShown)}; the file's lines there are below.`, shown: shownPlaces(lines, loose.slice(0, placesShown).map((place) => ({ from: place.first, to: place.last }))) };
95
+ }
96
+ const firstLine = oldText.split('\n').find((line) => line.trim() !== '')?.trim();
97
+ if (firstLine === undefined)
98
+ return undefined;
99
+ const found = lines.flatMap((line, index) => (line.includes(firstLine) ? [index + 1] : []));
100
+ if (found.length === 0)
101
+ return undefined;
102
+ const length = linesOf(oldText.trim()).length;
103
+ return { sentence: `Its first line appears at ${lineWord(found)} ${listed(found, placesShown)}; the file's lines there are below.`, shown: shownPlaces(lines, found.slice(0, placesShown).map((line) => ({ from: line - 1, to: line + length - 1 }))) };
104
+ }
105
+ //# sourceMappingURL=edit-places.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-places.js","sourceRoot":"","sources":["../../src/files/edit-places.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export type TextEdit = {
2
2
  oldText: string;
3
3
  newText: string;
4
+ replaceAll?: boolean | undefined;
4
5
  };
5
6
  /** The edited file's text, how many replacements were made, and the first and last changed lines, counted in the edited text. */
6
7
  export type EditedText = {
@@ -1 +1 @@
1
- {"version":3,"file":"edit-text.d.ts","sourceRoot":"","sources":["../../src/files/edit-text.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,iIAAiI;AACjI,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAiCnH,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAgBnF"}
1
+ {"version":3,"file":"edit-text.d.ts","sourceRoot":"","sources":["../../src/files/edit-text.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9F,iIAAiI;AACjI,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AA6CnH,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAgBnF"}