@kvman/kvcoder 0.1.15 → 0.1.16

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 (247) hide show
  1. package/dist/artifacts/ended-url.d.ts +4 -0
  2. package/dist/artifacts/ended-url.d.ts.map +1 -0
  3. package/dist/artifacts/ended-url.js +30 -0
  4. package/dist/artifacts/ended-url.js.map +1 -0
  5. package/dist/calls/line-run.d.ts +1 -0
  6. package/dist/calls/line-run.d.ts.map +1 -1
  7. package/dist/calls/line-run.js +4 -1
  8. package/dist/calls/line-run.js.map +1 -1
  9. package/dist/calls/run-tool.d.ts +38 -1
  10. package/dist/calls/run-tool.d.ts.map +1 -1
  11. package/dist/calls/run-tool.js +46 -1
  12. package/dist/calls/run-tool.js.map +1 -1
  13. package/dist/connector-call.d.ts +7 -2
  14. package/dist/connector-call.d.ts.map +1 -1
  15. package/dist/connector-call.js +8 -4
  16. package/dist/connector-call.js.map +1 -1
  17. package/dist/connectors/artifact.d.ts.map +1 -1
  18. package/dist/connectors/artifact.js +10 -2
  19. package/dist/connectors/artifact.js.map +1 -1
  20. package/dist/connectors/background.d.ts +1 -1
  21. package/dist/connectors/background.d.ts.map +1 -1
  22. package/dist/connectors/background.js +5 -2
  23. package/dist/connectors/background.js.map +1 -1
  24. package/dist/connectors/binary.js +2 -2
  25. package/dist/connectors/binary.js.map +1 -1
  26. package/dist/connectors/builtin-connectors.d.ts +16 -3
  27. package/dist/connectors/builtin-connectors.d.ts.map +1 -1
  28. package/dist/connectors/delegate.d.ts +20 -13
  29. package/dist/connectors/delegate.d.ts.map +1 -1
  30. package/dist/connectors/delegate.js +27 -20
  31. package/dist/connectors/delegate.js.map +1 -1
  32. package/dist/connectors/execution-map.d.ts +1 -1
  33. package/dist/connectors/execution-map.d.ts.map +1 -1
  34. package/dist/connectors/execution-map.js +1 -1
  35. package/dist/connectors/execution-map.js.map +1 -1
  36. package/dist/connectors/mcp.d.ts +1 -1
  37. package/dist/connectors/mcp.d.ts.map +1 -1
  38. package/dist/connectors/mcp.js +12 -7
  39. package/dist/connectors/mcp.js.map +1 -1
  40. package/dist/connectors/payload-fields.d.ts +1 -0
  41. package/dist/connectors/payload-fields.d.ts.map +1 -1
  42. package/dist/connectors/payload-fields.js +1 -0
  43. package/dist/connectors/payload-fields.js.map +1 -1
  44. package/dist/connectors/shell.d.ts +1 -0
  45. package/dist/connectors/shell.d.ts.map +1 -1
  46. package/dist/connectors/shell.js +2 -2
  47. package/dist/connectors/shell.js.map +1 -1
  48. package/dist/delegate/approved-run.d.ts.map +1 -1
  49. package/dist/delegate/approved-run.js +4 -11
  50. package/dist/delegate/approved-run.js.map +1 -1
  51. package/dist/delegate/brief.d.ts +34 -0
  52. package/dist/delegate/brief.d.ts.map +1 -0
  53. package/dist/delegate/brief.js +84 -0
  54. package/dist/delegate/brief.js.map +1 -0
  55. package/dist/delegate/continue-helper.d.ts.map +1 -1
  56. package/dist/delegate/continue-helper.js +6 -7
  57. package/dist/delegate/continue-helper.js.map +1 -1
  58. package/dist/delegate/permission.d.ts +26 -1
  59. package/dist/delegate/permission.d.ts.map +1 -1
  60. package/dist/delegate/program-permission.d.ts +1 -1
  61. package/dist/delegate/runs.d.ts +7 -3
  62. package/dist/delegate/runs.d.ts.map +1 -1
  63. package/dist/delegate/runs.js +2 -2
  64. package/dist/delegate/runs.js.map +1 -1
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +4 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/jobs/notify-watch.d.ts +5 -0
  69. package/dist/jobs/notify-watch.d.ts.map +1 -0
  70. package/dist/jobs/notify-watch.js +53 -0
  71. package/dist/jobs/notify-watch.js.map +1 -0
  72. package/dist/jobs/process-handlers.d.ts.map +1 -1
  73. package/dist/jobs/process-handlers.js +2 -1
  74. package/dist/jobs/process-handlers.js.map +1 -1
  75. package/dist/jobs/process-records.d.ts +4 -1
  76. package/dist/jobs/process-records.d.ts.map +1 -1
  77. package/dist/jobs/process-records.js +6 -2
  78. package/dist/jobs/process-records.js.map +1 -1
  79. package/dist/jobs/process-report.d.ts +2 -1
  80. package/dist/jobs/process-report.d.ts.map +1 -1
  81. package/dist/jobs/process-report.js +8 -5
  82. package/dist/jobs/process-report.js.map +1 -1
  83. package/dist/jobs/process-run.d.ts +1 -1
  84. package/dist/jobs/process-run.d.ts.map +1 -1
  85. package/dist/jobs/process-run.js +7 -3
  86. package/dist/jobs/process-run.js.map +1 -1
  87. package/dist/mcp/connect.d.ts +10 -5
  88. package/dist/mcp/connect.d.ts.map +1 -1
  89. package/dist/mcp/connect.js +22 -9
  90. package/dist/mcp/connect.js.map +1 -1
  91. package/dist/mcp/servers.d.ts +4 -0
  92. package/dist/mcp/servers.d.ts.map +1 -1
  93. package/dist/mcp/servers.js +5 -1
  94. package/dist/mcp/servers.js.map +1 -1
  95. package/dist/mcp/turn-servers.d.ts +8 -0
  96. package/dist/mcp/turn-servers.d.ts.map +1 -0
  97. package/dist/mcp/turn-servers.js +88 -0
  98. package/dist/mcp/turn-servers.js.map +1 -0
  99. package/dist/prompt/build-prompt.d.ts +1 -1
  100. package/dist/prompt/build-prompt.d.ts.map +1 -1
  101. package/dist/prompt/build-prompt.js +2 -3
  102. package/dist/prompt/build-prompt.js.map +1 -1
  103. package/dist/prompt/kept-rules.d.ts +6 -0
  104. package/dist/prompt/kept-rules.d.ts.map +1 -0
  105. package/dist/prompt/kept-rules.js +47 -0
  106. package/dist/prompt/kept-rules.js.map +1 -0
  107. package/dist/prompt/project-rules.d.ts +7 -2
  108. package/dist/prompt/project-rules.d.ts.map +1 -1
  109. package/dist/prompt/project-rules.js +27 -16
  110. package/dist/prompt/project-rules.js.map +1 -1
  111. package/dist/prompt/session-grants.d.ts +16 -23
  112. package/dist/prompt/session-grants.d.ts.map +1 -1
  113. package/dist/prompt/session-prompt.d.ts +1 -1
  114. package/dist/prompt/session-prompt.d.ts.map +1 -1
  115. package/dist/prompt/session-prompt.js +16 -9
  116. package/dist/prompt/session-prompt.js.map +1 -1
  117. package/dist/prompt/working-method.js +7 -7
  118. package/dist/prompt/working-method.js.map +1 -1
  119. package/dist/register-settings.d.ts +1 -0
  120. package/dist/register-settings.d.ts.map +1 -1
  121. package/dist/register-settings.js +1 -0
  122. package/dist/register-settings.js.map +1 -1
  123. package/dist/registry/register-connectors.d.ts +17 -1
  124. package/dist/registry/register-connectors.d.ts.map +1 -1
  125. package/dist/registry/register-connectors.js +11 -7
  126. package/dist/registry/register-connectors.js.map +1 -1
  127. package/dist/schemas/delegate-brief.d.ts +20 -0
  128. package/dist/schemas/delegate-brief.d.ts.map +1 -0
  129. package/dist/schemas/delegate-brief.js +9 -0
  130. package/dist/schemas/delegate-brief.js.map +1 -0
  131. package/dist/schemas/kept-rule.d.ts +12 -0
  132. package/dist/schemas/kept-rule.d.ts.map +1 -0
  133. package/dist/schemas/kept-rule.js +7 -0
  134. package/dist/schemas/kept-rule.js.map +1 -0
  135. package/dist/schemas/mcp-session.d.ts +15 -0
  136. package/dist/schemas/mcp-session.d.ts.map +1 -0
  137. package/dist/schemas/mcp-session.js +14 -0
  138. package/dist/schemas/mcp-session.js.map +1 -0
  139. package/dist/schemas/process-doc.d.ts +22 -0
  140. package/dist/schemas/process-doc.d.ts.map +1 -0
  141. package/dist/schemas/process-doc.js +20 -0
  142. package/dist/schemas/process-doc.js.map +1 -0
  143. package/dist/schemas/read-ending.d.ts +8 -0
  144. package/dist/schemas/read-ending.d.ts.map +1 -0
  145. package/dist/schemas/read-ending.js +4 -0
  146. package/dist/schemas/read-ending.js.map +1 -0
  147. package/dist/schemas/records.d.ts +29 -23
  148. package/dist/schemas/records.d.ts.map +1 -1
  149. package/dist/schemas/records.js +14 -16
  150. package/dist/schemas/records.js.map +1 -1
  151. package/dist/schemas/registry.d.ts +1 -0
  152. package/dist/schemas/registry.d.ts.map +1 -1
  153. package/dist/schemas/registry.js +3 -2
  154. package/dist/schemas/registry.js.map +1 -1
  155. package/dist/schemas/sent-record.d.ts +13 -0
  156. package/dist/schemas/sent-record.d.ts.map +1 -0
  157. package/dist/schemas/sent-record.js +7 -0
  158. package/dist/schemas/sent-record.js.map +1 -0
  159. package/dist/sessions/new-session.d.ts.map +1 -1
  160. package/dist/sessions/new-session.js +2 -0
  161. package/dist/sessions/new-session.js.map +1 -1
  162. package/dist/sessions/session-view.d.ts +7 -2
  163. package/dist/sessions/session-view.d.ts.map +1 -1
  164. package/dist/sessions/session-view.js +3 -0
  165. package/dist/sessions/session-view.js.map +1 -1
  166. package/dist/store/collections.d.ts +74 -6
  167. package/dist/store/collections.d.ts.map +1 -1
  168. package/dist/store/collections.js +6 -0
  169. package/dist/store/collections.js.map +1 -1
  170. package/dist/thinking-levels.d.ts +2 -0
  171. package/dist/thinking-levels.d.ts.map +1 -1
  172. package/dist/thinking-levels.js +4 -0
  173. package/dist/thinking-levels.js.map +1 -1
  174. package/dist/turns/background.d.ts +3 -0
  175. package/dist/turns/background.d.ts.map +1 -1
  176. package/dist/turns/background.js +10 -0
  177. package/dist/turns/background.js.map +1 -1
  178. package/dist/turns/clear-results.d.ts +2 -2
  179. package/dist/turns/clear-results.d.ts.map +1 -1
  180. package/dist/turns/clear-results.js +31 -15
  181. package/dist/turns/clear-results.js.map +1 -1
  182. package/dist/turns/collapse.d.ts +12 -0
  183. package/dist/turns/collapse.d.ts.map +1 -0
  184. package/dist/turns/collapse.js +67 -0
  185. package/dist/turns/collapse.js.map +1 -0
  186. package/dist/turns/connection-wait.d.ts +12 -0
  187. package/dist/turns/connection-wait.d.ts.map +1 -0
  188. package/dist/turns/connection-wait.js +56 -0
  189. package/dist/turns/connection-wait.js.map +1 -0
  190. package/dist/turns/end-turn-state.js +2 -2
  191. package/dist/turns/end-turn-state.js.map +1 -1
  192. package/dist/turns/end-turn.d.ts.map +1 -1
  193. package/dist/turns/end-turn.js +3 -0
  194. package/dist/turns/end-turn.js.map +1 -1
  195. package/dist/turns/history.d.ts +2 -0
  196. package/dist/turns/history.d.ts.map +1 -1
  197. package/dist/turns/history.js +1 -0
  198. package/dist/turns/history.js.map +1 -1
  199. package/dist/turns/model-context.d.ts +6 -2
  200. package/dist/turns/model-context.d.ts.map +1 -1
  201. package/dist/turns/model-context.js +26 -8
  202. package/dist/turns/model-context.js.map +1 -1
  203. package/dist/turns/model-retry.d.ts +5 -2
  204. package/dist/turns/model-retry.d.ts.map +1 -1
  205. package/dist/turns/model-retry.js +5 -3
  206. package/dist/turns/model-retry.js.map +1 -1
  207. package/dist/turns/read-endings.d.ts +8 -0
  208. package/dist/turns/read-endings.d.ts.map +1 -0
  209. package/dist/turns/read-endings.js +24 -0
  210. package/dist/turns/read-endings.js.map +1 -0
  211. package/dist/turns/run-calls.d.ts +0 -6
  212. package/dist/turns/run-calls.d.ts.map +1 -1
  213. package/dist/turns/run-calls.js +24 -26
  214. package/dist/turns/run-calls.js.map +1 -1
  215. package/dist/turns/run-command.d.ts +2 -0
  216. package/dist/turns/run-command.d.ts.map +1 -1
  217. package/dist/turns/run-command.js +6 -0
  218. package/dist/turns/run-command.js.map +1 -1
  219. package/dist/turns/run-scope.d.ts +7 -0
  220. package/dist/turns/run-scope.d.ts.map +1 -0
  221. package/dist/turns/run-scope.js +24 -0
  222. package/dist/turns/run-scope.js.map +1 -0
  223. package/dist/turns/sent-record.d.ts +4 -0
  224. package/dist/turns/sent-record.d.ts.map +1 -0
  225. package/dist/turns/sent-record.js +11 -0
  226. package/dist/turns/sent-record.js.map +1 -0
  227. package/dist/turns/settle-calls.d.ts.map +1 -1
  228. package/dist/turns/settle-calls.js +1 -19
  229. package/dist/turns/settle-calls.js.map +1 -1
  230. package/dist/turns/start-turn.js +1 -1
  231. package/dist/turns/start-turn.js.map +1 -1
  232. package/dist/turns/step.d.ts.map +1 -1
  233. package/dist/turns/step.js +36 -9
  234. package/dist/turns/step.js.map +1 -1
  235. package/dist/ui/register-ui.js +1 -1
  236. package/dist/ui/register-ui.js.map +1 -1
  237. package/dist/web/components/call.js +1 -1
  238. package/dist/web/components/connectors.js +186 -155
  239. package/dist/web/components/conversation.js +1453 -1378
  240. package/docs/connectors.md +3 -3
  241. package/locales/ar.json +17 -1
  242. package/locales/en.json +17 -1
  243. package/package.json +18 -3
  244. package/dist/delegate/start-pending.d.ts +0 -5
  245. package/dist/delegate/start-pending.d.ts.map +0 -1
  246. package/dist/delegate/start-pending.js +0 -42
  247. package/dist/delegate/start-pending.js.map +0 -1
@@ -32,11 +32,11 @@ ctx.registerHandler('kernel.started', {
32
32
  - `kvcoder.connector.register` takes exactly one of `commands` or `binary`, plus `name` and `description`.
33
33
  - To register several connectors in one call, pass `{ connectors: [ … ] }`, each entry shaped as one connector. All are checked first and stored together: the call registers all of them or none, and a name given twice fails `VALIDATION_FAILED`.
34
34
  - `name`: the `connector` the agent names. Names, and each command's `name`, are lowercase kebab-case single words: `model-list`, not `model list`. A command can't be named `help`.
35
- - `description`: what the agent sees in the prompt's connector index. Say what the connector is for and when to use it. kvcoder adds the command names after it (`Commands: add, list, help.`), so the index is never out of date. The prompt lists the payloads of kvcoder's own connectors (`shell`, `fs`, `artifact`, `background`, `ask`, `delegate`); the agent learns a registered connector's payloads from `help`, so clear field names and descriptions matter.
35
+ - `description`: what the agent sees in the prompt's connector index. Say what the connector is for and when to use it. kvcoder adds each command after it, one line each with its payload's signature, such as `add { text (≤200), done? }`, then `help`, so the index is never out of date and the agent needs no `help` call to use a command; `help` still gives each field's description, so clear field names and descriptions matter.
36
36
  - `commands`: each command's `name`, the public `command` it runs, and optional `examples` (`{ description, input }`). `help` shows the registered descriptions, JSON Schemas, and examples, so give every input field a `.describe()`.
37
37
  - `asks: true` on a command makes the person approve every call of it first (see **A command that asks** below). The field takes only `true`; leave it out for a command that runs at once.
38
38
  - Each `command` must be a public command or query of the registering extension, or registration fails `VALIDATION_FAILED`. The command runs through `ctx.exec` with the payload as its input, so validation, cancel, and timeouts are the kernel's, and it runs to its end inside the agent's step.
39
- - The result the agent reads is the output as JSON on one line, or `error <code>: <message>`. A payload that doesn't fit returns each problem and then the payload's signature, such as `{ text (≤200), done? }`, where `(≤N)` is a string's `max` length from your zod schema, so the agent can correct it in one try; a payload that isn't a plain object returns its JSON Schema on one line instead.
39
+ - The result the agent reads is the output as JSON on one line, or `error <code>: <message>`. A payload that doesn't fit returns each problem and then the payload's signature, such as `{ text (≤200), done? }`, where `(≤N)` is a string's `max` length from your zod schema, so the agent can correct it in one try; a payload that isn't a plain object returns its JSON Schema on one line instead. The command's `help` text follows, after a blank line.
40
40
  - `binary`: a program on the system, with `{ check, install?, help? }`. `check` is a line whose exit code 0 means the program is usable; the connector is listed, and can be called, only while its check passes.
41
41
 
42
42
  ## A command that asks
@@ -63,7 +63,7 @@ await ctx.exec('kvcoder.connector.register', {
63
63
  });
64
64
  ```
65
65
 
66
- The agent calls a binary connector with two commands. `exec { args?, background?, timeoutMs?, risky }` runs the program with those arguments in the real shell, in the workspace folder. `help {}` describes `exec` and prints the program's own help (`gh --help`), and `help { "command": "pr" }` prints `gh pr --help`. For a program whose help is asked another way, register the line with `{command}` standing for the command: `help: 'go help {command}'`.
66
+ The agent calls a binary connector with two commands. `exec { args?, background?, notify?, timeoutMs?, risky }` runs the program with those arguments in the real shell, in the workspace folder. `help {}` describes `exec` and prints the program's own help (`gh --help`), and `help { "command": "pr" }` prints `gh pr --help`. For a program whose help is asked another way, register the line with `{command}` standing for the command: `help: 'go help {command}'`.
67
67
 
68
68
  `kvcoder.connector.unregister { name }` removes one of the caller's own connectors; a missing name does nothing. `kvcoder.connector.list` answers every registered connector and program, each with `enabled`. The setting `kvcoder.connectors.disabled` lists the names that are turned off, kvcoder's own seven included: such a connector is left out of the prompt and can't be called, from the next step.
69
69
 
package/locales/ar.json CHANGED
@@ -656,5 +656,21 @@
656
656
  "kvcoder.artifacts.keepDays.title": "أيام الاحتفاظ بالمخرجات",
657
657
  "kvcoder.artifacts.keepDays.description": "عدد الأيام التي يُحتفظ فيها بمُخرَج محادثة خاملة بعد آخر تغيير له. 0 يحتفظ بها كلها.",
658
658
  "kvcoder.ui.artifacts.delete": "حذف",
659
- "kvcoder.ui.artifacts.deleteConfirm": "هل تريد حذف هذا المُخرَج؟"
659
+ "kvcoder.ui.artifacts.deleteConfirm": "هل تريد حذف هذا المُخرَج؟",
660
+ "kvcoder.delegate.thinkingLimit.title": "أعلى تفكير للمساعدين",
661
+ "kvcoder.delegate.thinkingLimit.description": "أقصى مقدار يفكّر به أي مساعد، مهما حدّد عامله أو المحادثة. المرتفع يُبعد المساعدين عن أبطأ المستويات.",
662
+ "kvcoder.delegate.thinkingLimit.options.off": "بدون",
663
+ "kvcoder.delegate.thinkingLimit.options.minimal": "أدنى",
664
+ "kvcoder.delegate.thinkingLimit.options.low": "منخفض",
665
+ "kvcoder.delegate.thinkingLimit.options.medium": "متوسط",
666
+ "kvcoder.delegate.thinkingLimit.options.high": "مرتفع",
667
+ "kvcoder.delegate.thinkingLimit.options.xhigh": "مرتفع جدًا",
668
+ "kvcoder.delegate.thinkingLimit.options.max": "أقصى",
669
+ "kvcoder.background.notify.watch.description": "ينتظر انتهاء أمر في الخلفية بُدئ مع notify، ثم يُعلم محادثته، ويبدأ دورًا إن كانت المحادثة خاملة.",
670
+ "kvcoder.notices.CONNECTION_WAITING": "فشل الاتصال بـ{model}؛ يعيد kvman المحاولة كل دقيقتين. أرسل رسالة لتحاول الآن.",
671
+ "kvcoder.turn.resume.description": "يعيد تشغيل خطوة دور ينتظر عودة الاتصال.",
672
+ "kvcoder.config.mcp.form.port": "المنفذ (اختياري)",
673
+ "kvcoder.config.mcp.form.portHint": "إن كان الأمر يقدّم MCP عبر HTTP على هذا المنفذ، يبقيه kvman عاملًا طوال الدور، فيحتفظ المتصفح بصفحته بين الاستدعاءات.",
674
+ "kvcoder.config.mcp.invalid.port": "اكتب عددًا صحيحًا من 1024 إلى 65535، أو اتركه فارغًا.",
675
+ "kvcoder.ui.helper.step": "الخطوة {step} من {budget}"
660
676
  }
package/locales/en.json CHANGED
@@ -656,5 +656,21 @@
656
656
  "kvcoder.artifacts.keepDays.title": "Days to keep artifacts",
657
657
  "kvcoder.artifacts.keepDays.description": "How many days an idle chat's artifact is kept after its last change. 0 keeps them all.",
658
658
  "kvcoder.ui.artifacts.delete": "Delete",
659
- "kvcoder.ui.artifacts.deleteConfirm": "Delete this artifact?"
659
+ "kvcoder.ui.artifacts.deleteConfirm": "Delete this artifact?",
660
+ "kvcoder.delegate.thinkingLimit.title": "Helpers' highest thinking",
661
+ "kvcoder.delegate.thinkingLimit.description": "The most any helper thinks, whatever its worker or the chat sets. High keeps helpers from the slowest levels.",
662
+ "kvcoder.delegate.thinkingLimit.options.off": "Off",
663
+ "kvcoder.delegate.thinkingLimit.options.minimal": "Minimal",
664
+ "kvcoder.delegate.thinkingLimit.options.low": "Low",
665
+ "kvcoder.delegate.thinkingLimit.options.medium": "Medium",
666
+ "kvcoder.delegate.thinkingLimit.options.high": "High",
667
+ "kvcoder.delegate.thinkingLimit.options.xhigh": "Extra high",
668
+ "kvcoder.delegate.thinkingLimit.options.max": "Max",
669
+ "kvcoder.background.notify.watch.description": "Waits for a background line started with notify to end, then tells its chat, starting a turn when the chat is idle.",
670
+ "kvcoder.notices.CONNECTION_WAITING": "The connection to {model} failed; kvman tries again every 2 minutes. Send a message to try now.",
671
+ "kvcoder.turn.resume.description": "Runs again the step of a turn that waits for the connection.",
672
+ "kvcoder.config.mcp.form.port": "Port (optional)",
673
+ "kvcoder.config.mcp.form.portHint": "When the command serves MCP over HTTP on this port, kvman keeps it running for a whole turn, so a browser keeps its page between calls.",
674
+ "kvcoder.config.mcp.invalid.port": "Give a whole number from 1024 to 65535, or leave it empty.",
675
+ "kvcoder.ui.helper.step": "step {step} of {budget}"
660
676
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvman/kvcoder",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "kvcoder: the app-building harness, with one run tool over connectors, sections, and its conversation UI.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "@kvman/sdk": "^0.1.5"
37
37
  },
38
38
  "dependencies": {
39
- "@kvman/kvai": "0.1.7",
39
+ "@kvman/kvai": "0.1.8",
40
40
  "@lucide/vue": "1.49.0",
41
41
  "@modelcontextprotocol/sdk": "1.32.1",
42
42
  "cross-spawn": "7.0.6",
@@ -46,7 +46,7 @@
46
46
  "devDependencies": {
47
47
  "@kvman/kvwebui": "0.1.8",
48
48
  "@kvman/sdk": "0.1.5",
49
- "@kvman/testkit": "0.1.9",
49
+ "@kvman/testkit": "0.1.10",
50
50
  "@types/cross-spawn": "6.0.6",
51
51
  "@types/turndown": "5.0.6",
52
52
  "@vitejs/plugin-vue": "6.0.9",
@@ -187,6 +187,21 @@
187
187
  "ref"
188
188
  ]
189
189
  ],
190
+ "read-endings": [
191
+ [
192
+ "sessionId",
193
+ "ref"
194
+ ]
195
+ ],
196
+ "mcp-sessions": [
197
+ [
198
+ "turnId"
199
+ ],
200
+ [
201
+ "turnId",
202
+ "server"
203
+ ]
204
+ ],
190
205
  "runs": [
191
206
  [
192
207
  "sessionId"
@@ -1,5 +0,0 @@
1
- import { type Ctx } from '@kvman/sdk';
2
- import { type PendingAuthority } from './permission.ts';
3
- /** Parent grants, not child tool scope, authorize a newly published foreground resource. */
4
- export declare function startPending(ctx: Ctx, authority: PendingAuthority): Promise<void>;
5
- //# sourceMappingURL=start-pending.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-pending.d.ts","sourceRoot":"","sources":["../../src/delegate/start-pending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAAkE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxH,4FAA4F;AAC5F,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvF"}
@@ -1,42 +0,0 @@
1
- import { ProblemError } from '@kvman/sdk';
2
- import { startChild } from "../connectors/delegate.js";
3
- import { invalid } from "../problems.js";
4
- import { prepareGrants } from "../prompt/session-grants.js";
5
- import { delegationInTx, refusePending, waitingInTx } from "./permission.js";
6
- import { launchRun } from "./runs.js";
7
- /** Parent grants, not child tool scope, authorize a newly published foreground resource. */
8
- export async function startPending(ctx, authority) {
9
- const { sessionId, pending } = authority;
10
- try {
11
- const prepared = await prepareGrants(ctx);
12
- const guard = store => {
13
- ctx.job.signal.throwIfAborted();
14
- if (waitingInTx(store, authority) === undefined)
15
- throw invalid('The originating delegation is no longer current.');
16
- if (pending.kind === 'worker' && pending.runId !== null && pending.childSessionId === null && pending.questionId === null && pending.question === null) {
17
- const run = store.runs.get(pending.runId);
18
- if (run?.status !== 'running' || run.sessionId !== sessionId || run.toolCallId !== pending.toolCallId)
19
- throw invalid('The worker run is no longer current.');
20
- return delegationInTx(store, sessionId, prepared, run.worker, run.kind).session;
21
- }
22
- if (pending.kind === 'subagent' && pending.childSessionId !== null && pending.runId === null && pending.questionId === null && pending.question === null) {
23
- const child = store.sessions.get(pending.childSessionId);
24
- if (child?.parentId !== sessionId || child.worker === null || child === undefined)
25
- throw invalid('The child no longer belongs to its originating session.');
26
- return delegationInTx(store, sessionId, prepared, child.worker.name, 'subagent').session;
27
- }
28
- throw invalid('The delegation binding is invalid.');
29
- };
30
- if (pending.childSessionId !== null)
31
- await startChild(ctx, pending.childSessionId, guard);
32
- else if (pending.runId !== null)
33
- await launchRun(ctx, pending.runId, guard);
34
- }
35
- catch (error) {
36
- if (!(error instanceof ProblemError) || ctx.job.signal.aborted)
37
- throw error;
38
- await refusePending(ctx, authority, error);
39
- // Stale resources are retained for separately approved owned cleanup, not used to mutate a newer turn.
40
- }
41
- }
42
- //# sourceMappingURL=start-pending.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-pending.js","sourceRoot":"","sources":["../../src/delegate/start-pending.ts"],"names":[],"mappings":"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"}