@kvman/kvcoder 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/api.d.ts +49 -3
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/calls/run-shell.d.ts.map +1 -1
  4. package/dist/calls/run-shell.js +39 -9
  5. package/dist/calls/run-shell.js.map +1 -1
  6. package/dist/connector-call.d.ts +1 -1
  7. package/dist/connector-call.d.ts.map +1 -1
  8. package/dist/connector-call.js +4 -2
  9. package/dist/connector-call.js.map +1 -1
  10. package/dist/connectors/artifact.d.ts +1 -1
  11. package/dist/connectors/artifact.d.ts.map +1 -1
  12. package/dist/connectors/artifact.js +4 -4
  13. package/dist/connectors/artifact.js.map +1 -1
  14. package/dist/connectors/ask.d.ts +24 -0
  15. package/dist/connectors/ask.d.ts.map +1 -1
  16. package/dist/connectors/ask.js +20 -11
  17. package/dist/connectors/ask.js.map +1 -1
  18. package/dist/connectors/background.d.ts +14 -1
  19. package/dist/connectors/background.d.ts.map +1 -1
  20. package/dist/connectors/background.js +53 -23
  21. package/dist/connectors/background.js.map +1 -1
  22. package/dist/connectors/builtin-connectors.d.ts +110 -0
  23. package/dist/connectors/builtin-connectors.d.ts.map +1 -1
  24. package/dist/connectors/builtin-connectors.js +4 -1
  25. package/dist/connectors/builtin-connectors.js.map +1 -1
  26. package/dist/connectors/delegate.d.ts +3 -2
  27. package/dist/connectors/delegate.d.ts.map +1 -1
  28. package/dist/connectors/delegate.js +27 -9
  29. package/dist/connectors/delegate.js.map +1 -1
  30. package/dist/connectors/execution-map.d.ts +62 -0
  31. package/dist/connectors/execution-map.d.ts.map +1 -0
  32. package/dist/connectors/execution-map.js +142 -0
  33. package/dist/connectors/execution-map.js.map +1 -0
  34. package/dist/connectors/fs.d.ts +32 -1
  35. package/dist/connectors/fs.d.ts.map +1 -1
  36. package/dist/connectors/fs.js +76 -45
  37. package/dist/connectors/fs.js.map +1 -1
  38. package/dist/connectors/mcp.d.ts +18 -1
  39. package/dist/connectors/mcp.d.ts.map +1 -1
  40. package/dist/connectors/mcp.js +54 -6
  41. package/dist/connectors/mcp.js.map +1 -1
  42. package/dist/connectors/payload-fields.d.ts.map +1 -1
  43. package/dist/connectors/payload-fields.js +1 -1
  44. package/dist/connectors/payload-fields.js.map +1 -1
  45. package/dist/delegate/approved-run.d.ts +4 -6
  46. package/dist/delegate/approved-run.d.ts.map +1 -1
  47. package/dist/delegate/approved-run.js +74 -34
  48. package/dist/delegate/approved-run.js.map +1 -1
  49. package/dist/delegate/git-staging.d.ts +12 -0
  50. package/dist/delegate/git-staging.d.ts.map +1 -0
  51. package/dist/delegate/git-staging.js +54 -0
  52. package/dist/delegate/git-staging.js.map +1 -0
  53. package/dist/delegate/permission.d.ts +240 -0
  54. package/dist/delegate/permission.d.ts.map +1 -0
  55. package/dist/delegate/permission.js +78 -0
  56. package/dist/delegate/permission.js.map +1 -0
  57. package/dist/delegate/program-permission.d.ts +27 -0
  58. package/dist/delegate/program-permission.d.ts.map +1 -0
  59. package/dist/delegate/program-permission.js +53 -0
  60. package/dist/delegate/program-permission.js.map +1 -0
  61. package/dist/delegate/register-worker-run.d.ts.map +1 -1
  62. package/dist/delegate/register-worker-run.js +27 -11
  63. package/dist/delegate/register-worker-run.js.map +1 -1
  64. package/dist/delegate/run-program.d.ts.map +1 -1
  65. package/dist/delegate/run-program.js +29 -8
  66. package/dist/delegate/run-program.js.map +1 -1
  67. package/dist/delegate/runs.d.ts +14 -4
  68. package/dist/delegate/runs.d.ts.map +1 -1
  69. package/dist/delegate/runs.js +49 -19
  70. package/dist/delegate/runs.js.map +1 -1
  71. package/dist/delegate/staging-guard.d.ts +9 -0
  72. package/dist/delegate/staging-guard.d.ts.map +1 -0
  73. package/dist/delegate/staging-guard.js +55 -0
  74. package/dist/delegate/staging-guard.js.map +1 -0
  75. package/dist/delegate/start-background.d.ts +7 -0
  76. package/dist/delegate/start-background.d.ts.map +1 -0
  77. package/dist/delegate/start-background.js +32 -0
  78. package/dist/delegate/start-background.js.map +1 -0
  79. package/dist/delegate/start-pending.d.ts +5 -0
  80. package/dist/delegate/start-pending.d.ts.map +1 -0
  81. package/dist/delegate/start-pending.js +42 -0
  82. package/dist/delegate/start-pending.js.map +1 -0
  83. package/dist/delegate/workers.d.ts +5 -2
  84. package/dist/delegate/workers.d.ts.map +1 -1
  85. package/dist/delegate/workers.js +44 -8
  86. package/dist/delegate/workers.js.map +1 -1
  87. package/dist/files/file-change.d.ts +28 -0
  88. package/dist/files/file-change.d.ts.map +1 -0
  89. package/dist/files/file-change.js +125 -0
  90. package/dist/files/file-change.js.map +1 -0
  91. package/dist/files/file-parts.d.ts +18 -0
  92. package/dist/files/file-parts.d.ts.map +1 -0
  93. package/dist/files/file-parts.js +40 -0
  94. package/dist/files/file-parts.js.map +1 -0
  95. package/dist/files/read-file.d.ts +9 -1
  96. package/dist/files/read-file.d.ts.map +1 -1
  97. package/dist/files/read-file.js +35 -13
  98. package/dist/files/read-file.js.map +1 -1
  99. package/dist/files/search-text.d.ts +12 -2
  100. package/dist/files/search-text.d.ts.map +1 -1
  101. package/dist/files/search-text.js +87 -23
  102. package/dist/files/search-text.js.map +1 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/jobs/job-rows.d.ts +11 -2
  107. package/dist/jobs/job-rows.d.ts.map +1 -1
  108. package/dist/jobs/job-rows.js +24 -13
  109. package/dist/jobs/job-rows.js.map +1 -1
  110. package/dist/jobs/process-handlers.d.ts.map +1 -1
  111. package/dist/jobs/process-handlers.js +12 -1
  112. package/dist/jobs/process-handlers.js.map +1 -1
  113. package/dist/jobs/process-report.d.ts.map +1 -1
  114. package/dist/jobs/process-report.js +2 -1
  115. package/dist/jobs/process-report.js.map +1 -1
  116. package/dist/jobs/process-run.d.ts.map +1 -1
  117. package/dist/jobs/process-run.js +2 -1
  118. package/dist/jobs/process-run.js.map +1 -1
  119. package/dist/jobs/register-jobs.d.ts.map +1 -1
  120. package/dist/jobs/register-jobs.js +1 -0
  121. package/dist/jobs/register-jobs.js.map +1 -1
  122. package/dist/maps/map-reminder.d.ts +7 -0
  123. package/dist/maps/map-reminder.d.ts.map +1 -0
  124. package/dist/maps/map-reminder.js +24 -0
  125. package/dist/maps/map-reminder.js.map +1 -0
  126. package/dist/maps/map-rules.d.ts +36 -0
  127. package/dist/maps/map-rules.d.ts.map +1 -0
  128. package/dist/maps/map-rules.js +86 -0
  129. package/dist/maps/map-rules.js.map +1 -0
  130. package/dist/maps/map-schema.d.ts +55 -0
  131. package/dist/maps/map-schema.d.ts.map +1 -0
  132. package/dist/maps/map-schema.js +27 -0
  133. package/dist/maps/map-schema.js.map +1 -0
  134. package/dist/maps/register-maps.d.ts +3 -0
  135. package/dist/maps/register-maps.d.ts.map +1 -0
  136. package/dist/maps/register-maps.js +21 -0
  137. package/dist/maps/register-maps.js.map +1 -0
  138. package/dist/mcp/connect.d.ts +2 -0
  139. package/dist/mcp/connect.d.ts.map +1 -1
  140. package/dist/mcp/connect.js +16 -4
  141. package/dist/mcp/connect.js.map +1 -1
  142. package/dist/mcp/oauth-provider.d.ts +8 -5
  143. package/dist/mcp/oauth-provider.d.ts.map +1 -1
  144. package/dist/mcp/oauth-provider.js +31 -22
  145. package/dist/mcp/oauth-provider.js.map +1 -1
  146. package/dist/mcp/secrets.d.ts +2 -0
  147. package/dist/mcp/secrets.d.ts.map +1 -1
  148. package/dist/mcp/secrets.js +6 -0
  149. package/dist/mcp/secrets.js.map +1 -1
  150. package/dist/mcp/sign-in.d.ts.map +1 -1
  151. package/dist/mcp/sign-in.js +12 -4
  152. package/dist/mcp/sign-in.js.map +1 -1
  153. package/dist/messages/receive-message.d.ts +2 -1
  154. package/dist/messages/receive-message.d.ts.map +1 -1
  155. package/dist/messages/receive-message.js +34 -9
  156. package/dist/messages/receive-message.js.map +1 -1
  157. package/dist/messages/register-messages.d.ts.map +1 -1
  158. package/dist/messages/register-messages.js +13 -8
  159. package/dist/messages/register-messages.js.map +1 -1
  160. package/dist/messages/send-receipt.d.ts +10 -0
  161. package/dist/messages/send-receipt.d.ts.map +1 -0
  162. package/dist/messages/send-receipt.js +14 -0
  163. package/dist/messages/send-receipt.js.map +1 -0
  164. package/dist/prompt/build-prompt.d.ts +1 -0
  165. package/dist/prompt/build-prompt.d.ts.map +1 -1
  166. package/dist/prompt/build-prompt.js +5 -1
  167. package/dist/prompt/build-prompt.js.map +1 -1
  168. package/dist/prompt/project-rules.d.ts +6 -0
  169. package/dist/prompt/project-rules.d.ts.map +1 -0
  170. package/dist/prompt/project-rules.js +37 -0
  171. package/dist/prompt/project-rules.js.map +1 -0
  172. package/dist/prompt/session-grants.d.ts +209 -0
  173. package/dist/prompt/session-grants.d.ts.map +1 -0
  174. package/dist/prompt/session-grants.js +50 -0
  175. package/dist/prompt/session-grants.js.map +1 -0
  176. package/dist/prompt/session-prompt.d.ts +3 -2
  177. package/dist/prompt/session-prompt.d.ts.map +1 -1
  178. package/dist/prompt/session-prompt.js +24 -40
  179. package/dist/prompt/session-prompt.js.map +1 -1
  180. package/dist/prompt/working-method.d.ts.map +1 -1
  181. package/dist/prompt/working-method.js +22 -16
  182. package/dist/prompt/working-method.js.map +1 -1
  183. package/dist/register-settings.d.ts +3 -1
  184. package/dist/register-settings.d.ts.map +1 -1
  185. package/dist/register-settings.js +5 -4
  186. package/dist/register-settings.js.map +1 -1
  187. package/dist/registry/register-connectors.d.ts +9 -0
  188. package/dist/registry/register-connectors.d.ts.map +1 -1
  189. package/dist/registry/register-connectors.js +20 -12
  190. package/dist/registry/register-connectors.js.map +1 -1
  191. package/dist/result-text.d.ts +4 -0
  192. package/dist/result-text.d.ts.map +1 -1
  193. package/dist/result-text.js +9 -0
  194. package/dist/result-text.js.map +1 -1
  195. package/dist/schemas/records.d.ts +142 -0
  196. package/dist/schemas/records.d.ts.map +1 -1
  197. package/dist/schemas/records.js +60 -2
  198. package/dist/schemas/records.js.map +1 -1
  199. package/dist/sessions/execution-root.d.ts +8 -0
  200. package/dist/sessions/execution-root.d.ts.map +1 -0
  201. package/dist/sessions/execution-root.js +25 -0
  202. package/dist/sessions/execution-root.js.map +1 -0
  203. package/dist/sessions/new-session.d.ts +5 -1
  204. package/dist/sessions/new-session.d.ts.map +1 -1
  205. package/dist/sessions/new-session.js +17 -4
  206. package/dist/sessions/new-session.js.map +1 -1
  207. package/dist/sessions/register-context.d.ts.map +1 -1
  208. package/dist/sessions/register-context.js +6 -5
  209. package/dist/sessions/register-context.js.map +1 -1
  210. package/dist/sessions/register-fork-export.d.ts.map +1 -1
  211. package/dist/sessions/register-fork-export.js +5 -3
  212. package/dist/sessions/register-fork-export.js.map +1 -1
  213. package/dist/sessions/register-lifecycle.d.ts.map +1 -1
  214. package/dist/sessions/register-lifecycle.js +14 -5
  215. package/dist/sessions/register-lifecycle.js.map +1 -1
  216. package/dist/sessions/register-sessions.d.ts.map +1 -1
  217. package/dist/sessions/register-sessions.js +0 -2
  218. package/dist/sessions/register-sessions.js.map +1 -1
  219. package/dist/sessions/session-view.d.ts +23 -0
  220. package/dist/sessions/session-view.d.ts.map +1 -1
  221. package/dist/sessions/session-view.js +4 -1
  222. package/dist/sessions/session-view.js.map +1 -1
  223. package/dist/store/all-docs.d.ts +4 -0
  224. package/dist/store/all-docs.d.ts.map +1 -0
  225. package/dist/store/all-docs.js +14 -0
  226. package/dist/store/all-docs.js.map +1 -0
  227. package/dist/store/collections.d.ts +230 -0
  228. package/dist/store/collections.d.ts.map +1 -1
  229. package/dist/store/collections.js +16 -1
  230. package/dist/store/collections.js.map +1 -1
  231. package/dist/turns/answer-fingerprint.d.ts +4 -0
  232. package/dist/turns/answer-fingerprint.d.ts.map +1 -0
  233. package/dist/turns/answer-fingerprint.js +18 -0
  234. package/dist/turns/answer-fingerprint.js.map +1 -0
  235. package/dist/turns/apply-answer.d.ts +19 -0
  236. package/dist/turns/apply-answer.d.ts.map +1 -0
  237. package/dist/turns/apply-answer.js +47 -0
  238. package/dist/turns/apply-answer.js.map +1 -0
  239. package/dist/turns/background.d.ts +3 -0
  240. package/dist/turns/background.d.ts.map +1 -1
  241. package/dist/turns/background.js +13 -12
  242. package/dist/turns/background.js.map +1 -1
  243. package/dist/turns/call-permission.d.ts +22 -0
  244. package/dist/turns/call-permission.d.ts.map +1 -0
  245. package/dist/turns/call-permission.js +49 -0
  246. package/dist/turns/call-permission.js.map +1 -0
  247. package/dist/turns/cancel-step-job.d.ts +14 -0
  248. package/dist/turns/cancel-step-job.d.ts.map +1 -0
  249. package/dist/turns/cancel-step-job.js +35 -0
  250. package/dist/turns/cancel-step-job.js.map +1 -0
  251. package/dist/turns/child-result.d.ts +7 -0
  252. package/dist/turns/child-result.d.ts.map +1 -0
  253. package/dist/turns/child-result.js +24 -0
  254. package/dist/turns/child-result.js.map +1 -0
  255. package/dist/turns/compaction.d.ts +15 -1
  256. package/dist/turns/compaction.d.ts.map +1 -1
  257. package/dist/turns/compaction.js +44 -16
  258. package/dist/turns/compaction.js.map +1 -1
  259. package/dist/turns/end-turn-state.d.ts +42 -0
  260. package/dist/turns/end-turn-state.d.ts.map +1 -0
  261. package/dist/turns/end-turn-state.js +64 -0
  262. package/dist/turns/end-turn-state.js.map +1 -0
  263. package/dist/turns/end-turn.d.ts +7 -8
  264. package/dist/turns/end-turn.d.ts.map +1 -1
  265. package/dist/turns/end-turn.js +52 -55
  266. package/dist/turns/end-turn.js.map +1 -1
  267. package/dist/turns/helper-calls.d.ts +6 -0
  268. package/dist/turns/helper-calls.d.ts.map +1 -0
  269. package/dist/turns/helper-calls.js +8 -0
  270. package/dist/turns/helper-calls.js.map +1 -0
  271. package/dist/turns/history.d.ts +3 -1
  272. package/dist/turns/history.d.ts.map +1 -1
  273. package/dist/turns/history.js +15 -7
  274. package/dist/turns/history.js.map +1 -1
  275. package/dist/turns/lost-reply.d.ts +7 -0
  276. package/dist/turns/lost-reply.d.ts.map +1 -1
  277. package/dist/turns/lost-reply.js +12 -0
  278. package/dist/turns/lost-reply.js.map +1 -1
  279. package/dist/turns/message-blocks.d.ts +2 -0
  280. package/dist/turns/message-blocks.d.ts.map +1 -1
  281. package/dist/turns/message-blocks.js +7 -0
  282. package/dist/turns/message-blocks.js.map +1 -1
  283. package/dist/turns/model-context.d.ts +2 -0
  284. package/dist/turns/model-context.d.ts.map +1 -1
  285. package/dist/turns/model-context.js +23 -4
  286. package/dist/turns/model-context.js.map +1 -1
  287. package/dist/turns/model-retry.d.ts +2 -1
  288. package/dist/turns/model-retry.d.ts.map +1 -1
  289. package/dist/turns/model-retry.js +5 -1
  290. package/dist/turns/model-retry.js.map +1 -1
  291. package/dist/turns/read-only.d.ts +6 -0
  292. package/dist/turns/read-only.d.ts.map +1 -0
  293. package/dist/turns/read-only.js +12 -0
  294. package/dist/turns/read-only.js.map +1 -0
  295. package/dist/turns/receipt-job.d.ts +5 -0
  296. package/dist/turns/receipt-job.d.ts.map +1 -0
  297. package/dist/turns/receipt-job.js +40 -0
  298. package/dist/turns/receipt-job.js.map +1 -0
  299. package/dist/turns/recover-workspace.d.ts +9 -0
  300. package/dist/turns/recover-workspace.d.ts.map +1 -0
  301. package/dist/turns/recover-workspace.js +79 -0
  302. package/dist/turns/recover-workspace.js.map +1 -0
  303. package/dist/turns/recovery-state.d.ts +19 -0
  304. package/dist/turns/recovery-state.d.ts.map +1 -0
  305. package/dist/turns/recovery-state.js +87 -0
  306. package/dist/turns/recovery-state.js.map +1 -0
  307. package/dist/turns/register-interruptions.d.ts.map +1 -1
  308. package/dist/turns/register-interruptions.js +19 -8
  309. package/dist/turns/register-interruptions.js.map +1 -1
  310. package/dist/turns/register-turns.d.ts.map +1 -1
  311. package/dist/turns/register-turns.js +42 -31
  312. package/dist/turns/register-turns.js.map +1 -1
  313. package/dist/turns/resolve.d.ts +4 -0
  314. package/dist/turns/resolve.d.ts.map +1 -1
  315. package/dist/turns/resolve.js +19 -17
  316. package/dist/turns/resolve.js.map +1 -1
  317. package/dist/turns/retry-turn.d.ts +4 -0
  318. package/dist/turns/retry-turn.d.ts.map +1 -0
  319. package/dist/turns/retry-turn.js +20 -0
  320. package/dist/turns/retry-turn.js.map +1 -0
  321. package/dist/turns/run-calls.d.ts +21 -4
  322. package/dist/turns/run-calls.d.ts.map +1 -1
  323. package/dist/turns/run-calls.js +157 -41
  324. package/dist/turns/run-calls.js.map +1 -1
  325. package/dist/turns/run-command.d.ts +5 -3
  326. package/dist/turns/run-command.d.ts.map +1 -1
  327. package/dist/turns/run-command.js +21 -12
  328. package/dist/turns/run-command.js.map +1 -1
  329. package/dist/turns/settle-calls.d.ts +2 -8
  330. package/dist/turns/settle-calls.d.ts.map +1 -1
  331. package/dist/turns/settle-calls.js +26 -35
  332. package/dist/turns/settle-calls.js.map +1 -1
  333. package/dist/turns/start-turn.d.ts +8 -83
  334. package/dist/turns/start-turn.d.ts.map +1 -1
  335. package/dist/turns/start-turn.js +35 -24
  336. package/dist/turns/start-turn.js.map +1 -1
  337. package/dist/turns/step-claim.d.ts +39 -0
  338. package/dist/turns/step-claim.d.ts.map +1 -0
  339. package/dist/turns/step-claim.js +72 -0
  340. package/dist/turns/step-claim.js.map +1 -0
  341. package/dist/turns/step-intents.d.ts +31 -0
  342. package/dist/turns/step-intents.d.ts.map +1 -0
  343. package/dist/turns/step-intents.js +101 -0
  344. package/dist/turns/step-intents.js.map +1 -0
  345. package/dist/turns/step-next.d.ts +17 -0
  346. package/dist/turns/step-next.d.ts.map +1 -0
  347. package/dist/turns/step-next.js +25 -0
  348. package/dist/turns/step-next.js.map +1 -0
  349. package/dist/turns/step.d.ts +1 -1
  350. package/dist/turns/step.d.ts.map +1 -1
  351. package/dist/turns/step.js +108 -88
  352. package/dist/turns/step.js.map +1 -1
  353. package/dist/turns/summary-facts.d.ts +25 -0
  354. package/dist/turns/summary-facts.d.ts.map +1 -0
  355. package/dist/turns/summary-facts.js +63 -0
  356. package/dist/turns/summary-facts.js.map +1 -0
  357. package/dist/turns/usage.d.ts +7 -0
  358. package/dist/turns/usage.d.ts.map +1 -0
  359. package/dist/turns/usage.js +18 -0
  360. package/dist/turns/usage.js.map +1 -0
  361. package/dist/ui/register-ui.js +3 -3
  362. package/dist/ui/register-ui.js.map +1 -1
  363. package/dist/web/components/approval.css +2 -0
  364. package/dist/web/components/approval.js +233 -0
  365. package/dist/web/components/call.css +1 -1
  366. package/dist/web/components/call.js +383 -287
  367. package/dist/web/components/connectors.css +1 -1
  368. package/dist/web/components/connectors.js +595 -592
  369. package/dist/web/components/conversation.css +1 -1
  370. package/dist/web/components/conversation.js +2902 -1593
  371. package/dist/web/components/mcp-sign-in.css +1 -1
  372. package/dist/web/components/model.css +1 -1
  373. package/dist/web/components/model.js +138 -134
  374. package/dist/web/components/question.css +1 -1
  375. package/dist/web/components/question.js +148 -78
  376. package/dist/web/components/sessions.css +1 -1
  377. package/docs/connectors.md +2 -2
  378. package/locales/ar.json +88 -12
  379. package/locales/en.json +88 -12
  380. package/package.json +6 -6
  381. package/dist/turns/cancel-turn.d.ts +0 -3
  382. package/dist/turns/cancel-turn.d.ts.map +0 -1
  383. package/dist/turns/cancel-turn.js +0 -31
  384. package/dist/turns/cancel-turn.js.map +0 -1
@@ -16,7 +16,7 @@ var y = {
16
16
  function x(e) {
17
17
  return e != null;
18
18
  }
19
- function ee(e, t = {}) {
19
+ function S(e, t = {}) {
20
20
  let n = t.attributeNames ?? {}, r = (e) => n[e] ?? e, i = e.size ?? e.width ?? y.width, a = e.size ?? e.height ?? y.height, o = e.aliases?.filter((e) => typeof e == "string" && e.trim() !== "").map((e) => `lucide-${e}`) ?? [], s = [...e.name ? [`lucide-${e.name}`] : [], ...o], c = t.className?.split(" ").filter(Boolean) ?? [], l = t.includeDefaultClasses === !1 ? b(...c) : b("lucide", ...s, ...c), u = t.absoluteStrokeWidth ? Number(t.strokeWidth ?? y["stroke-width"]) * Number(e.size ?? e.width ?? y.width) / Number(t.size ?? t.width ?? y.width) : t.strokeWidth ?? y["stroke-width"];
21
21
  return [
22
22
  "svg",
@@ -50,63 +50,63 @@ function ee(e, t = {}) {
50
50
  }
51
51
  //#endregion
52
52
  //#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/hasA11yProp.mjs
53
- var S = (e) => {
53
+ var C = (e) => {
54
54
  for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
55
55
  return !1;
56
- }, C = (e) => e === "", te = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), ne = /* @__PURE__ */ Symbol("lucide-icons");
57
- function re() {
58
- return u(ne, {});
56
+ }, w = (e) => e === "", T = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = /* @__PURE__ */ Symbol("lucide-icons");
57
+ function ee() {
58
+ return u(E, {});
59
59
  }
60
60
  //#endregion
61
61
  //#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
62
- var w = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
63
- name: e && te(e),
62
+ var te = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
63
+ name: e && T(e),
64
64
  node: t ?? n ?? [],
65
65
  size: 24,
66
66
  aliases: []
67
67
  }, absoluteStrokeWidth: i, "absolute-stroke-width": a, nonScalingStroke: o, "non-scaling-stroke": s, strokeWidth: c, "stroke-width": u, size: d, width: f = d, height: p = d, color: m, ...h }, { slots: g }) => {
68
- let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class: ne = "" } = re(), w = C(i) || C(a) || i === !0 || a === !0 || b === !0, T = C(o) || C(s) || o === !0 || s === !0 || x === !0;
68
+ let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class: E = "" } = ee(), te = w(i) || w(a) || i === !0 || a === !0 || b === !0, D = w(o) || w(s) || o === !0 || s === !0 || x === !0;
69
69
  delete h.class;
70
- let E = g.default?.(), [, D, O = []] = ee(r, {
70
+ let O = g.default?.(), [, k, A = []] = S(r, {
71
71
  color: m ?? v,
72
72
  width: f ?? d ?? _,
73
73
  height: p ?? d ?? _,
74
74
  strokeWidth: c ?? u ?? y,
75
- absoluteStrokeWidth: w,
76
- nonScalingStroke: T,
77
- className: ne,
78
- hasA11yProp: E != null && E.length > 0 || S(h),
75
+ absoluteStrokeWidth: te,
76
+ nonScalingStroke: D,
77
+ className: E,
78
+ hasA11yProp: O != null && O.length > 0 || C(h),
79
79
  attributes: h
80
80
  });
81
- return l("svg", D, [...O.map(([e, t]) => l(e, t)), ...E ?? []]);
81
+ return l("svg", k, [...A.map(([e, t]) => l(e, t)), ...O ?? []]);
82
82
  };
83
83
  //#endregion
84
84
  //#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/createLucideIcon.mjs
85
- function T(e, t = []) {
85
+ function D(e, t = []) {
86
86
  let n = typeof e == "string" ? {
87
87
  name: e,
88
88
  node: t
89
89
  } : e;
90
- return (e, { slots: t }) => l(w, {
90
+ return (e, { slots: t }) => l(te, {
91
91
  ...e,
92
92
  icon: n
93
93
  }, t.default ? { default: t.default } : void 0);
94
94
  }
95
- var E = T({
95
+ var O = D({
96
96
  name: "chevron-down",
97
97
  size: 24,
98
98
  node: [["path", {
99
99
  d: "m6 9 6 6 6-6",
100
100
  key: "qrunsl"
101
101
  }]]
102
- }), D = T({
102
+ }), k = D({
103
103
  name: "chevron-right",
104
104
  size: 24,
105
105
  node: [["path", {
106
106
  d: "m9 18 6-6-6-6",
107
107
  key: "mthhwq"
108
108
  }]]
109
- }), O = T({
109
+ }), A = D({
110
110
  name: "file",
111
111
  size: 24,
112
112
  node: [["path", {
@@ -116,55 +116,127 @@ var E = T({
116
116
  d: "M14 2v5a1 1 0 0 0 1 1h5",
117
117
  key: "wfsgrz"
118
118
  }]]
119
- }), ie = T({
119
+ }), ne = D({
120
120
  name: "folder",
121
121
  size: 24,
122
122
  node: [["path", {
123
123
  d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
124
124
  key: "1kt360"
125
125
  }]]
126
- }), k = 3;
127
- function A(e) {
126
+ });
127
+ //#endregion
128
+ //#region web/src/kvman.ts
129
+ function j() {
130
+ let e = u("kvman");
131
+ if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
132
+ return e;
133
+ }
134
+ function M(e) {
135
+ return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
136
+ }
137
+ //#endregion
138
+ //#region web/src/call-results.ts
139
+ function re(e) {
140
+ let { replacements: t, firstChangedLine: n } = M(e);
141
+ return typeof t == "number" && typeof n == "number" ? {
142
+ replacements: t,
143
+ firstChangedLine: n
144
+ } : void 0;
145
+ }
146
+ function ie(e) {
147
+ let { fromLine: t, content: n } = M(e);
148
+ return typeof t == "number" && typeof n == "string" ? {
149
+ fromLine: t,
150
+ content: n
151
+ } : void 0;
152
+ }
153
+ function ae(e) {
154
+ let { name: t, kind: n, bytes: r } = M(e);
155
+ return typeof t == "string" && (n === "file" || n === "folder") && typeof r == "number" ? [{
156
+ name: t,
157
+ kind: n,
158
+ bytes: r
159
+ }] : [];
160
+ }
161
+ function oe(e) {
162
+ let t = M(e).entries;
163
+ return Array.isArray(t) ? t.flatMap(ae) : void 0;
164
+ }
165
+ function se(e) {
166
+ let { path: t, matches: n } = M(e);
167
+ return typeof t != "string" || !Array.isArray(n) ? [] : [{
168
+ path: t,
169
+ matches: n.flatMap((e) => {
170
+ let { line: t, text: n } = M(e);
171
+ return typeof t == "number" && typeof n == "string" ? [{
172
+ line: t,
173
+ text: n
174
+ }] : [];
175
+ })
176
+ }];
177
+ }
178
+ var ce = [
179
+ "running",
180
+ "succeeded",
181
+ "failed",
182
+ "cancelled",
183
+ "interrupted"
184
+ ];
185
+ function le(e, t) {
186
+ return ce.some((e) => e === t) ? e(`kvcoder.ui.jobs.status.${t}`) : t;
187
+ }
188
+ function N(e) {
189
+ let { kind: t, call: n, status: r, startedAt: i, endedAt: a, exitCode: o, output: s, problem: c } = M(e);
190
+ if (typeof n != "string" || typeof r != "string") return;
191
+ let l = typeof i == "string" && typeof a == "string" ? Date.parse(a) - Date.parse(i) : NaN;
192
+ return {
193
+ call: n,
194
+ status: r,
195
+ answer: t === "subagent",
196
+ ...Number.isFinite(l) && l >= 0 ? { ranMs: l } : {},
197
+ ...typeof o == "number" && o !== 0 ? { exitCode: o } : {},
198
+ ...s === void 0 ? {} : { output: s },
199
+ ...c === void 0 ? {} : { problem: c }
200
+ };
201
+ }
202
+ function ue(e) {
203
+ let t = M(e).files;
204
+ return Array.isArray(t) ? t.flatMap(se) : void 0;
205
+ }
206
+ //#endregion
207
+ //#region web/src/edit-diff.ts
208
+ var P = 3;
209
+ function F(e) {
128
210
  if (e === "") return [];
129
211
  let t = e.split("\n");
130
212
  return e.endsWith("\n") ? t.slice(0, -1) : t;
131
213
  }
132
- function ae(e, t) {
214
+ function I(e, t) {
133
215
  let n = 0;
134
216
  for (; n < e.length && n < t.length && e[n] === t[n];) n += 1;
135
217
  return n;
136
218
  }
137
- function oe(e, t) {
138
- let n = A(e), r = A(t), i = ae(n, r), a = ae(n.slice(i).reverse(), r.slice(i).reverse()), o = (e, t) => t.map((t) => ({
219
+ function L(e, t) {
220
+ let n = F(e), r = F(t), i = I(n, r), a = I(n.slice(i).reverse(), r.slice(i).reverse()), o = (e, t) => t.map((t) => ({
139
221
  kind: e,
140
222
  text: t
141
223
  }));
142
224
  return [
143
- ...o("context", n.slice(Math.max(i - k, 0), i)),
225
+ ...o("context", n.slice(Math.max(i - P, 0), i)),
144
226
  ...o("removed", n.slice(i, n.length - a)),
145
227
  ...o("added", r.slice(i, r.length - a)),
146
- ...o("context", n.slice(n.length - a, n.length - a + k))
228
+ ...o("context", n.slice(n.length - a, n.length - a + P))
147
229
  ];
148
230
  }
149
- function se(e) {
231
+ function de(e) {
150
232
  return {
151
233
  added: e.filter((e) => e.kind === "added").length,
152
234
  removed: e.filter((e) => e.kind === "removed").length
153
235
  };
154
236
  }
155
237
  //#endregion
156
- //#region web/src/kvman.ts
157
- function j() {
158
- let e = u("kvman");
159
- if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
160
- return e;
161
- }
162
- function M(e) {
163
- return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
164
- }
165
- //#endregion
166
238
  //#region web/src/call-summary.ts
167
- function ce(e) {
239
+ function fe(e) {
168
240
  if (e !== void 0 && /^\s*[[{]/.test(e)) try {
169
241
  return JSON.parse(e);
170
242
  } catch (e) {
@@ -172,12 +244,12 @@ function ce(e) {
172
244
  throw e;
173
245
  }
174
246
  }
175
- var N = 1024;
176
- function P(e, t) {
177
- return t < N ? e("kvcoder.ui.call.bytes", { count: t }) : t < N * N ? e("kvcoder.ui.call.kilobytes", { count: (t / N).toFixed(1) }) : e("kvcoder.ui.call.megabytes", { count: (t / (N * N)).toFixed(1) });
247
+ var R = 1024;
248
+ function z(e, t) {
249
+ return t < R ? e("kvcoder.ui.call.bytes", { count: t }) : t < R * R ? e("kvcoder.ui.call.kilobytes", { count: (t / R).toFixed(1) }) : e("kvcoder.ui.call.megabytes", { count: (t / (R * R)).toFixed(1) });
178
250
  }
179
- var F = (e) => typeof e == "string" && e !== "" ? e : void 0;
180
- function I(e) {
251
+ var B = (e) => typeof e == "string" && e !== "" ? e : void 0;
252
+ function V(e) {
181
253
  let t = e.edits;
182
254
  return Array.isArray(t) ? t.flatMap((e) => {
183
255
  let { oldText: t, newText: n } = M(e);
@@ -187,28 +259,28 @@ function I(e) {
187
259
  }] : [];
188
260
  }) : [];
189
261
  }
190
- function le(e) {
191
- let t = I(e).map((e) => se(oe(e.oldText, e.newText)));
262
+ function pe(e) {
263
+ let t = V(e).map((e) => de(L(e.oldText, e.newText)));
192
264
  return `+${t.reduce((e, t) => e + t.added, 0)} −${t.reduce((e, t) => e + t.removed, 0)}`;
193
265
  }
194
- function ue(e, t) {
195
- if (typeof t.bytes == "number" && typeof t.created == "boolean") return e(t.created ? "kvcoder.ui.call.created" : "kvcoder.ui.call.replaced", { size: P(e, t.bytes) });
266
+ function me(e, t) {
267
+ if (typeof t.bytes == "number" && typeof t.created == "boolean") return e(t.created ? "kvcoder.ui.call.created" : "kvcoder.ui.call.replaced", { size: z(e, t.bytes) });
196
268
  }
197
- function de(e, t) {
269
+ function he(e, t) {
198
270
  let { fromLine: n, totalLines: r, content: i } = t;
199
271
  if (typeof n != "number" || typeof r != "number" || typeof i != "string") return;
200
- let a = A(i).length;
272
+ let a = F(i).length;
201
273
  return a === 0 ? void 0 : e("kvcoder.ui.call.lines", {
202
274
  from: n,
203
275
  to: n + a - 1,
204
276
  total: r
205
277
  });
206
278
  }
207
- function fe(e, t) {
279
+ function ge(e, t) {
208
280
  let n = t.entries;
209
281
  if (Array.isArray(n)) return e(t.truncated === !0 ? "kvcoder.ui.call.entriesFirst" : "kvcoder.ui.call.entries", { count: n.length });
210
282
  }
211
- function pe(e, t) {
283
+ function _e(e, t) {
212
284
  let n = t.files;
213
285
  if (!Array.isArray(n)) return;
214
286
  let r = n.reduce((e, t) => {
@@ -220,70 +292,82 @@ function pe(e, t) {
220
292
  files: n.length
221
293
  });
222
294
  }
223
- var L = (e, t, n) => Array.isArray(n) ? e(t, { count: n.length }) : void 0;
224
- function R(e, t, n) {
295
+ var H = (e, t, n) => Array.isArray(n) ? e(t, { count: n.length }) : void 0;
296
+ function U(e, t, n) {
225
297
  return {
226
298
  ...e === void 0 ? {} : { words: e },
227
299
  ...t === void 0 ? {} : { subject: t },
228
300
  ...n === void 0 ? {} : { outcome: n }
229
301
  };
230
302
  }
231
- function me(e, t, n, r) {
232
- let i = r === void 0 ? void 0 : M(r), a = F(n.path);
233
- if (t === "edit") return R(e("kvcoder.ui.call.edit"), a, i === void 0 ? void 0 : le(n));
234
- if (t === "write") return R(e("kvcoder.ui.call.write"), a, i === void 0 ? void 0 : ue(e, i));
235
- if (t === "read") return R(e("kvcoder.ui.call.read"), a, i === void 0 ? void 0 : de(e, i));
236
- if (t === "list") return R(e("kvcoder.ui.call.list"), a ?? ".", i === void 0 ? void 0 : fe(e, i));
237
- if (t === "search") return R(e("kvcoder.ui.call.search"), F(n.pattern), i === void 0 ? void 0 : pe(e, i));
238
- }
239
- function he(e, t, n, r) {
240
- let i = [F(n.server), F(n.tool)].filter((e) => e !== void 0).join(" · ");
241
- if (t === "call") return R(void 0, i === "" ? void 0 : i);
242
- if (t === "tools") return R(e("kvcoder.ui.call.tools"), i === "" ? void 0 : i, L(e, "kvcoder.ui.call.toolCount", M(r).tools));
243
- }
244
- function ge(e, t, n, r) {
245
- if (t === "list") return R(e("kvcoder.ui.call.backgroundRuns"), void 0, L(e, "kvcoder.ui.call.runCount", r));
246
- if (t === "output") return R(e("kvcoder.ui.call.output"), F(n.id));
247
- if (t === "stop") return R(e("kvcoder.ui.call.stop"), F(n.id));
248
- }
249
- function _e(e, t, n) {
303
+ function ve(e, t, n, r) {
304
+ let i = r === void 0 ? void 0 : M(r), a = B(n.path);
305
+ if (t === "edit") return U(e("kvcoder.ui.call.edit"), a, i === void 0 ? void 0 : pe(n));
306
+ if (t === "write") return U(e("kvcoder.ui.call.write"), a, i === void 0 ? void 0 : me(e, i));
307
+ if (t === "read") return U(e("kvcoder.ui.call.read"), a, i === void 0 ? void 0 : he(e, i));
308
+ if (t === "list") return U(e("kvcoder.ui.call.list"), a ?? ".", i === void 0 ? void 0 : ge(e, i));
309
+ if (t === "search") return U(e("kvcoder.ui.call.search"), B(n.pattern), i === void 0 ? void 0 : _e(e, i));
310
+ }
311
+ function ye(e, t, n, r) {
312
+ let i = B(n.server), a = [i, B(n.tool)].filter((e) => e !== void 0).join(" · ");
313
+ if (t === "call") return U(void 0, a === "" ? void 0 : a);
314
+ if (t === "run") {
315
+ let e = n.steps;
316
+ return U(void 0, [i, (Array.isArray(e) ? e.flatMap((e) => B(M(e).tool) === void 0 ? [] : [String(M(e).tool)]) : []).join(", ")].filter((e) => e !== void 0 && e !== "").join(" · "));
317
+ }
318
+ if (t === "tools") return U(e("kvcoder.ui.call.tools"), a === "" ? void 0 : a, H(e, "kvcoder.ui.call.toolCount", M(r).tools));
319
+ }
320
+ function be(e, t, n, r) {
321
+ if (t === "list") return U(e("kvcoder.ui.call.backgroundRuns"), void 0, H(e, "kvcoder.ui.call.runCount", r));
322
+ if (t === "output" || t === "wait") {
323
+ let i = N(r);
324
+ return U(e(`kvcoder.ui.call.${t}`), B(n.id), i === void 0 ? void 0 : le(e, i.status));
325
+ }
326
+ if (t === "stop") return U(e("kvcoder.ui.call.stop"), B(n.id));
327
+ }
328
+ function xe(e, t, n, r) {
329
+ let i = B(M(r).progress), a = n.steps, o = Array.isArray(a) ? a.flatMap((e) => B(M(e).id) === void 0 ? [] : [String(M(e).id)]).join(", ") : void 0;
330
+ return t === "set" ? U(e("kvcoder.ui.call.mapSet"), B(n.goal), i) : t === "update" ? U(e("kvcoder.ui.call.mapUpdate"), o === "" ? void 0 : o, i) : t === "note" ? U(e("kvcoder.ui.call.mapNote"), B(n.text)) : t === "get" ? U(e("kvcoder.ui.call.mapGet"), void 0, i) : void 0;
331
+ }
332
+ function Se(e, t, n) {
250
333
  let { connector: r, command: i } = t, a = t.fields ?? {};
251
334
  if (r !== void 0 && i !== void 0) {
252
335
  if (t.line !== void 0) return { subject: `$ ${t.line}` };
253
- if (r === "fs") return me(e, i, a, n);
254
- if (r === "mcp") return he(e, i, a, n);
255
- if (r === "background") return ge(e, i, a, n);
256
- if (r === "delegate" && i === "run") return R(e("kvcoder.ui.call.delegate"), [F(a.worker), F(a.title)].filter((e) => e !== void 0).join(" · "));
257
- if (r === "artifact" && i === "get") return R(e("kvcoder.ui.call.readArtifact"), F(a.id));
336
+ if (r === "fs") return ve(e, i, a, n);
337
+ if (r === "mcp") return ye(e, i, a, n);
338
+ if (r === "background") return be(e, i, a, n);
339
+ if (r === "execution-map") return xe(e, i, a, n);
340
+ if (r === "delegate" && i === "run") return U(e("kvcoder.ui.call.delegate"), [B(a.worker), B(a.title)].filter((e) => e !== void 0).join(" · "));
341
+ if (r === "artifact" && i === "get") return U(e("kvcoder.ui.call.readArtifact"), B(a.id));
258
342
  }
259
343
  }
260
344
  //#endregion
261
345
  //#region web/src/call-view.ts
262
- var z = 200, ve = [
346
+ var Ce = 200, we = [
263
347
  "text",
264
348
  "choice",
265
349
  "confirm"
266
350
  ];
267
- function ye(e) {
351
+ function Te(e) {
268
352
  return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : void 0;
269
353
  }
270
- var B = (e) => typeof e == "string" && e.trim() !== "" ? e : void 0;
271
- function be(e, t) {
272
- let n = B(t.args);
273
- return B(t.line) ?? (n === void 0 ? e : `${e} ${n}`);
354
+ var W = (e) => typeof e == "string" && e.trim() !== "" ? e : void 0;
355
+ function Ee(e, t) {
356
+ let n = W(t.args);
357
+ return W(t.line) ?? (n === void 0 ? e : `${e} ${n}`);
274
358
  }
275
- function xe(e) {
276
- let t = B(e.title) ?? B(e.description), n = B(e.command);
359
+ function De(e) {
360
+ let t = W(e.title) ?? W(e.description), n = W(e.command);
277
361
  return {
278
362
  ...t === void 0 ? {} : { description: t },
279
363
  ...n === void 0 ? {} : { line: n },
280
364
  ...e.mode === "async" ? { background: !0 } : {}
281
365
  };
282
366
  }
283
- function Se(e) {
284
- let t = B(e.connector), n = B(e.command);
285
- if (t === void 0) return xe(e);
286
- let r = B(e.description), i = ye(typeof e.payload == "string" ? void 0 : e.payload) ?? {}, a = t === "ask" ? ve.find((e) => e === n) : void 0;
367
+ function Oe(e) {
368
+ let t = W(e.connector), n = W(e.command);
369
+ if (t === void 0) return De(e);
370
+ let r = W(e.description), i = Te(typeof e.payload == "string" ? void 0 : e.payload) ?? {}, a = t === "ask" ? we.find((e) => e === n) : void 0;
287
371
  return {
288
372
  ...r === void 0 ? {} : { description: r },
289
373
  connector: t,
@@ -291,7 +375,7 @@ function Se(e) {
291
375
  command: n,
292
376
  label: `${t} · ${n}`
293
377
  },
294
- ...n === "exec" ? { line: be(t, i) } : {},
378
+ ...n === "exec" ? { line: Ee(t, i) } : {},
295
379
  fields: i,
296
380
  ...i.risky === !0 ? { risky: !0 } : {},
297
381
  ...i.background === !0 ? { background: !0 } : {},
@@ -301,60 +385,60 @@ function Se(e) {
301
385
  } }
302
386
  };
303
387
  }
304
- var Ce = [
388
+ var ke = [
305
389
  "edit",
306
390
  "write",
307
391
  "read",
308
392
  "list",
309
393
  "search"
310
394
  ];
311
- function V(e) {
312
- return e.line === void 0 ? e.connector === "fs" ? Ce.find((t) => t === e.command) ?? "fields" : e.connector === "mcp" && e.command === "call" ? "mcp-call" : e.connector === "delegate" && e.command === "run" ? "delegate" : "fields" : "line";
395
+ function G(e) {
396
+ return e.line === void 0 ? e.connector === "fs" ? ke.find((t) => t === e.command) ?? "fields" : e.connector === "mcp" && e.command === "call" ? "mcp-call" : e.connector === "background" && (e.command === "output" || e.command === "wait") ? "run-output" : e.connector === "delegate" && e.command === "run" ? "delegate" : "fields" : "line";
313
397
  }
314
- function H(e) {
398
+ function K(e) {
315
399
  let t = e.replace(/\s+/g, " ");
316
- return t.length > z ? `${t.slice(0, z)}…` : t;
400
+ return t.length > Ce ? `${t.slice(0, Ce)}…` : t;
317
401
  }
318
402
  //#endregion
319
403
  //#region web/src/field-rows.ts
320
- var we = "—", U = (e) => e === null || typeof e == "string" || typeof e == "number" || typeof e == "boolean", W = (e) => e === null ? we : String(e);
321
- function G(e) {
404
+ var Ae = "—", je = (e) => e === null || typeof e == "string" || typeof e == "number" || typeof e == "boolean", Me = (e) => e === null ? Ae : String(e);
405
+ function Ne(e) {
322
406
  return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : void 0;
323
407
  }
324
- function Te(e) {
325
- let t = G(e);
408
+ function Pe(e) {
409
+ let t = Ne(e);
326
410
  if (t === void 0) return;
327
411
  let n = {};
328
412
  for (let [e, r] of Object.entries(t)) {
329
- if (!U(r)) return;
413
+ if (!je(r)) return;
330
414
  n[e] = r;
331
415
  }
332
416
  return n;
333
417
  }
334
- function Ee(e) {
418
+ function Fe(e) {
335
419
  let t = [...new Set(e.flatMap((e) => Object.keys(e)))];
336
420
  return {
337
421
  kind: "table",
338
422
  columns: t,
339
- rows: e.map((e) => t.map((t) => t in e ? W(e[t] ?? null) : ""))
423
+ rows: e.map((e) => t.map((t) => t in e ? Me(e[t] ?? null) : ""))
340
424
  };
341
425
  }
342
- function De(e) {
426
+ function Ie(e) {
343
427
  if (e.length === 0) return { kind: "empty" };
344
- if (e.every(U)) return {
428
+ if (e.every(je)) return {
345
429
  kind: "items",
346
- items: e.map(W)
430
+ items: e.map(Me)
347
431
  };
348
- let t = e.map(Te).filter((e) => e !== void 0);
349
- return t.length === e.length ? Ee(t) : {
432
+ let t = e.map(Pe).filter((e) => e !== void 0);
433
+ return t.length === e.length ? Fe(t) : {
350
434
  kind: "rows",
351
435
  rows: e.map((e, t) => ({
352
436
  name: String(t + 1),
353
- value: K(e)
437
+ value: q(e)
354
438
  }))
355
439
  };
356
440
  }
357
- function K(e) {
441
+ function q(e) {
358
442
  if (typeof e == "string") return e.includes("\n") ? {
359
443
  kind: "block",
360
444
  text: e
@@ -366,27 +450,27 @@ function K(e) {
366
450
  kind: "text",
367
451
  text: String(e)
368
452
  };
369
- if (Array.isArray(e)) return De(e);
370
- let t = G(e);
453
+ if (Array.isArray(e)) return Ie(e);
454
+ let t = Ne(e);
371
455
  return t === void 0 || Object.keys(t).length === 0 ? { kind: "empty" } : {
372
456
  kind: "rows",
373
- rows: Oe(t)
457
+ rows: Le(t)
374
458
  };
375
459
  }
376
- function Oe(e) {
460
+ function Le(e) {
377
461
  return Object.entries(e).map(([e, t]) => ({
378
462
  name: e,
379
- value: K(t)
463
+ value: q(t)
380
464
  }));
381
465
  }
382
- function q(e, t) {
466
+ function J(e, t) {
383
467
  return t || e.length <= 12 ? e : e.slice(0, 12);
384
468
  }
385
- var J = (e) => A(e).map((e) => ({ text: e })), Y = (e, t) => A(e).map((e, n) => ({
469
+ var Re = (e) => F(e).map((e) => ({ text: e })), ze = (e, t) => F(e).map((e, n) => ({
386
470
  text: e,
387
471
  number: t + n
388
472
  }));
389
- function ke(e, t) {
473
+ function Be(e, t) {
390
474
  return t || e.length <= 17 ? e : [
391
475
  ...e.slice(0, 12),
392
476
  "⋯",
@@ -395,7 +479,7 @@ function ke(e, t) {
395
479
  }
396
480
  //#endregion
397
481
  //#region web/src/FoldButton.vue?vue&type=script&setup=true&lang.ts
398
- var Ae = ["aria-expanded"], X = /* @__PURE__ */ c({
482
+ var Ve = ["aria-expanded"], Y = /* @__PURE__ */ c({
399
483
  __name: "FoldButton",
400
484
  props: {
401
485
  count: {},
@@ -412,13 +496,13 @@ var Ae = ["aria-expanded"], X = /* @__PURE__ */ c({
412
496
  "aria-expanded": n.open,
413
497
  "data-test": "show-all",
414
498
  onClick: t[0] ||= (e) => a("toggle")
415
- }, _(n.open ? v(o).t("kvcoder.ui.call.showFewer") : v(o).t("kvcoder.ui.call.showAll", { count: n.count })), 9, Ae)) : r("v-if", !0);
499
+ }, _(n.open ? v(o).t("kvcoder.ui.call.showFewer") : v(o).t("kvcoder.ui.call.showAll", { count: n.count })), 9, Ve)) : r("v-if", !0);
416
500
  }
417
- }), je = /http:\/\/(?:127\.0\.0\.1|localhost):\d+[^\s"'`<>()[\]{}]*/g, Me = /[.,;:!?]+$/;
418
- function Ne(e) {
501
+ }), He = /http:\/\/(?:127\.0\.0\.1|localhost):\d+[^\s"'`<>()[\]{}]*/g, Ue = /[.,;:!?]+$/;
502
+ function We(e) {
419
503
  let t = [], n = 0;
420
- for (let r of e.matchAll(je)) {
421
- let i = r[0].replace(Me, "");
504
+ for (let r of e.matchAll(He)) {
505
+ let i = r[0].replace(Ue, "");
422
506
  r.index > n && t.push({
423
507
  kind: "text",
424
508
  text: e.slice(n, r.index)
@@ -434,130 +518,130 @@ function Ne(e) {
434
518
  }
435
519
  //#endregion
436
520
  //#region web/src/LinkedText.vue?vue&type=script&setup=true&lang.ts
437
- var Pe = ["href"], Z = /* @__PURE__ */ c({
521
+ var Ge = ["href"], X = /* @__PURE__ */ c({
438
522
  __name: "LinkedText",
439
523
  props: { text: {} },
440
524
  setup(n) {
441
- let r = n, a = t(() => Ne(r.text));
525
+ let r = n, a = t(() => We(r.text));
442
526
  return (t, n) => (f(!0), i(e, null, m(a.value, (t, n) => (f(), i(e, { key: n }, [t.kind === "link" ? (f(), i("a", {
443
527
  key: 0,
444
528
  href: t.href,
445
529
  target: "_blank",
446
530
  rel: "noopener noreferrer",
447
531
  class: "kvc-link"
448
- }, _(t.href), 9, Pe)) : (f(), i(e, { key: 1 }, [o(_(t.text), 1)], 64))], 64))), 128));
532
+ }, _(t.href), 9, Ge)) : (f(), i(e, { key: 1 }, [o(_(t.text), 1)], 64))], 64))), 128));
449
533
  }
450
- }), Fe = { class: "kvc-code-lines" }, Ie = ["dir", "data-kind"], Le = {
534
+ }), Ke = { class: "kvc-code-lines" }, qe = ["dir", "data-kind"], Je = {
451
535
  key: 0,
452
536
  class: "kvc-line-number",
453
537
  "data-test": "call-line-number"
454
- }, Re = {
538
+ }, Ye = {
455
539
  key: 1,
456
540
  class: "kvc-line-mark",
457
541
  "aria-hidden": "true"
458
- }, ze = {
542
+ }, Xe = {
459
543
  class: "kvc-line-text",
460
544
  dir: "auto",
461
545
  "data-test": "call-line-text"
462
- }, Q = /* @__PURE__ */ c({
546
+ }, Z = /* @__PURE__ */ c({
463
547
  __name: "FoldedLines",
464
548
  props: { lines: {} },
465
549
  setup(n) {
466
- let o = n, c = p(!1), l = t(() => q(o.lines, c.value)), u = t(() => o.lines.some((e) => e.number !== void 0)), d = t(() => o.lines.some((e) => e.kind !== void 0)), h = {
550
+ let o = n, c = p(!1), l = t(() => J(o.lines, c.value)), u = t(() => o.lines.some((e) => e.number !== void 0)), d = t(() => o.lines.some((e) => e.kind !== void 0)), h = {
467
551
  context: " ",
468
552
  removed: "−",
469
553
  added: "+"
470
554
  };
471
- return (t, n) => (f(), i("div", Fe, [(f(!0), i(e, null, m(l.value, (e, t) => (f(), i("div", {
555
+ return (t, n) => (f(), i("div", Ke, [(f(!0), i(e, null, m(l.value, (e, t) => (f(), i("div", {
472
556
  key: t,
473
557
  class: "kvc-code-line",
474
558
  dir: u.value || d.value ? "ltr" : void 0,
475
559
  "data-kind": e.kind,
476
560
  "data-test": "call-line-row"
477
561
  }, [
478
- u.value ? (f(), i("span", Le, _(e.number), 1)) : r("v-if", !0),
479
- d.value ? (f(), i("span", Re, _(h[e.kind ?? "context"]), 1)) : r("v-if", !0),
480
- a("span", ze, [s(Z, { text: e.text }, null, 8, ["text"])])
481
- ], 8, Ie))), 128)), s(X, {
562
+ u.value ? (f(), i("span", Je, _(e.number), 1)) : r("v-if", !0),
563
+ d.value ? (f(), i("span", Ye, _(h[e.kind ?? "context"]), 1)) : r("v-if", !0),
564
+ a("span", Xe, [s(X, { text: e.text }, null, 8, ["text"])])
565
+ ], 8, qe))), 128)), s(Y, {
482
566
  count: o.lines.length,
483
567
  open: c.value,
484
568
  onToggle: n[0] ||= (e) => c.value = !c.value
485
569
  }, null, 8, ["count", "open"])]));
486
570
  }
487
- }), Be = {
571
+ }), Ze = {
488
572
  key: 0,
489
573
  dir: "auto",
490
574
  "data-test": "field-text"
491
- }, Ve = {
575
+ }, Qe = {
492
576
  key: 1,
493
577
  class: "kvc-muted",
494
578
  "data-test": "field-empty"
495
- }, He = {
579
+ }, $e = {
496
580
  key: 3,
497
581
  class: "kvc-field-table"
498
- }, Ue = { "data-test": "field-table" }, We = {
582
+ }, et = { "data-test": "field-table" }, tt = {
499
583
  key: 4,
500
584
  class: "kvc-field-items",
501
585
  "data-test": "field-items"
502
- }, Ge = {
586
+ }, nt = {
503
587
  key: 5,
504
588
  class: "kvc-fields",
505
589
  "data-test": "call-fields"
506
- }, Ke = ["data-name"], qe = {
590
+ }, rt = ["data-name"], it = {
507
591
  class: "kvc-muted",
508
592
  dir: "ltr"
509
- }, Je = { "data-test": "field-value" }, Ye = /* @__PURE__ */ c({
593
+ }, at = { "data-test": "field-value" }, Q = /* @__PURE__ */ c({
510
594
  __name: "FieldsView",
511
595
  props: { value: {} },
512
596
  setup(r) {
513
- let o = r, c = p(!1), l = t(() => o.value.kind === "table" ? q(o.value.rows, c.value) : []), u = t(() => o.value.kind === "items" ? q(o.value.items, c.value) : []);
597
+ let o = r, c = p(!1), l = t(() => o.value.kind === "table" ? J(o.value.rows, c.value) : []), u = t(() => o.value.kind === "items" ? J(o.value.items, c.value) : []);
514
598
  return (t, r) => {
515
599
  let d = h("FieldsView", !0);
516
- return o.value.kind === "text" ? (f(), i("span", Be, [s(Z, { text: o.value.text }, null, 8, ["text"])])) : o.value.kind === "empty" ? (f(), i("span", Ve, "—")) : o.value.kind === "block" ? (f(), n(Q, {
600
+ return o.value.kind === "text" ? (f(), i("span", Ze, [s(X, { text: o.value.text }, null, 8, ["text"])])) : o.value.kind === "empty" ? (f(), i("span", Qe, "—")) : o.value.kind === "block" ? (f(), n(Z, {
517
601
  key: 2,
518
602
  class: "kvc-field-block",
519
- lines: v(J)(o.value.text),
603
+ lines: v(Re)(o.value.text),
520
604
  "data-test": "field-block"
521
- }, null, 8, ["lines"])) : o.value.kind === "table" ? (f(), i("div", He, [a("table", Ue, [a("thead", null, [a("tr", null, [(f(!0), i(e, null, m(o.value.columns, (e) => (f(), i("th", {
605
+ }, null, 8, ["lines"])) : o.value.kind === "table" ? (f(), i("div", $e, [a("table", et, [a("thead", null, [a("tr", null, [(f(!0), i(e, null, m(o.value.columns, (e) => (f(), i("th", {
522
606
  key: e,
523
607
  scope: "col",
524
608
  dir: "ltr"
525
609
  }, _(e), 1))), 128))])]), a("tbody", null, [(f(!0), i(e, null, m(l.value, (t, n) => (f(), i("tr", { key: n }, [(f(!0), i(e, null, m(t, (e, t) => (f(), i("td", {
526
610
  key: t,
527
611
  dir: "auto"
528
- }, [s(Z, { text: e }, null, 8, ["text"])]))), 128))]))), 128))])]), s(X, {
612
+ }, [s(X, { text: e }, null, 8, ["text"])]))), 128))]))), 128))])]), s(Y, {
529
613
  count: o.value.rows.length,
530
614
  open: c.value,
531
615
  onToggle: r[0] ||= (e) => c.value = !c.value
532
- }, null, 8, ["count", "open"])])) : o.value.kind === "items" ? (f(), i("div", We, [(f(!0), i(e, null, m(u.value, (e, t) => (f(), i("div", {
616
+ }, null, 8, ["count", "open"])])) : o.value.kind === "items" ? (f(), i("div", tt, [(f(!0), i(e, null, m(u.value, (e, t) => (f(), i("div", {
533
617
  key: t,
534
618
  dir: "auto"
535
- }, [s(Z, { text: e }, null, 8, ["text"])]))), 128)), s(X, {
619
+ }, [s(X, { text: e }, null, 8, ["text"])]))), 128)), s(Y, {
536
620
  count: o.value.items.length,
537
621
  open: c.value,
538
622
  onToggle: r[1] ||= (e) => c.value = !c.value
539
- }, null, 8, ["count", "open"])])) : (f(), i("dl", Ge, [(f(!0), i(e, null, m(o.value.rows, (e) => (f(), i("div", {
623
+ }, null, 8, ["count", "open"])])) : (f(), i("dl", nt, [(f(!0), i(e, null, m(o.value.rows, (e) => (f(), i("div", {
540
624
  key: e.name,
541
625
  class: "kvc-field-row",
542
626
  "data-name": e.name,
543
627
  "data-test": "field-row"
544
- }, [a("dt", qe, _(e.name), 1), a("dd", Je, [s(d, { value: e.value }, null, 8, ["value"])])], 8, Ke))), 128))]));
628
+ }, [a("dt", it, _(e.name), 1), a("dd", at, [s(d, { value: e.value }, null, 8, ["value"])])], 8, rt))), 128))]));
545
629
  };
546
630
  }
547
- }), Xe = ["aria-label"], Ze = ["aria-label"], Qe = /* @__PURE__ */ c({
631
+ }), ot = ["aria-label"], st = ["aria-label"], ct = /* @__PURE__ */ c({
548
632
  __name: "CallRequest",
549
633
  props: { view: {} },
550
634
  setup(a) {
551
- let o = a, c = j(), l = t(() => V(o.view)), u = t(() => o.view.fields ?? {}), d = t(() => I(u.value).map((e) => oe(e.oldText, e.newText))), p = t(() => typeof u.value.content == "string" ? u.value.content : ""), h = t(() => typeof u.value.task == "string" ? u.value.task : ""), g = t(() => l.value === "mcp-call" ? M(u.value.arguments) : l.value === "fields" ? u.value : {});
552
- return (t, a) => l.value === "edit" ? (f(!0), i(e, { key: 0 }, m(d.value, (e, t) => (f(), n(Q, {
635
+ let o = a, c = j(), l = t(() => G(o.view)), u = t(() => o.view.fields ?? {}), d = t(() => V(u.value).map((e) => L(e.oldText, e.newText))), p = t(() => typeof u.value.content == "string" ? u.value.content : ""), h = t(() => typeof u.value.task == "string" ? u.value.task : ""), g = t(() => l.value === "mcp-call" ? M(u.value.arguments) : l.value === "fields" ? u.value : {});
636
+ return (t, a) => l.value === "edit" ? (f(!0), i(e, { key: 0 }, m(d.value, (e, t) => (f(), n(Z, {
553
637
  key: t,
554
638
  class: "kvc-block",
555
639
  lines: e,
556
640
  "data-test": "call-diff"
557
- }, null, 8, ["lines"]))), 128)) : l.value === "write" ? (f(), n(Q, {
641
+ }, null, 8, ["lines"]))), 128)) : l.value === "write" ? (f(), n(Z, {
558
642
  key: 1,
559
643
  class: "kvc-block",
560
- lines: v(Y)(p.value, 1),
644
+ lines: v(ze)(p.value, 1),
561
645
  "data-test": "call-content"
562
646
  }, null, 8, ["lines"])) : l.value === "line" ? (f(), i("pre", {
563
647
  key: 2,
@@ -565,10 +649,10 @@ var Pe = ["href"], Z = /* @__PURE__ */ c({
565
649
  dir: "ltr",
566
650
  "aria-label": v(c).t("kvcoder.ui.command"),
567
651
  "data-test": "call-payload"
568
- }, "$ " + _(o.view.line), 9, Xe)) : l.value === "delegate" ? (f(), n(Q, {
652
+ }, "$ " + _(o.view.line), 9, ot)) : l.value === "delegate" ? (f(), n(Z, {
569
653
  key: 3,
570
654
  class: "kvc-block kvc-prose-lines",
571
- lines: v(J)(h.value),
655
+ lines: v(Re)(h.value),
572
656
  "aria-label": v(c).t("kvcoder.ui.call.task"),
573
657
  "data-test": "call-task"
574
658
  }, null, 8, ["lines", "aria-label"])) : Object.keys(g.value).length > 0 ? (f(), i("div", {
@@ -576,67 +660,19 @@ var Pe = ["href"], Z = /* @__PURE__ */ c({
576
660
  class: "kvc-block",
577
661
  "aria-label": v(c).t("kvcoder.ui.call.payload"),
578
662
  "data-test": "call-payload-fields"
579
- }, [s(Ye, { value: v(K)(g.value) }, null, 8, ["value"])], 8, Ze)) : r("v-if", !0);
663
+ }, [s(Q, { value: v(q)(g.value) }, null, 8, ["value"])], 8, st)) : r("v-if", !0);
580
664
  }
581
- });
582
- //#endregion
583
- //#region web/src/call-results.ts
584
- function $e(e) {
585
- let { replacements: t, firstChangedLine: n } = M(e);
586
- return typeof t == "number" && typeof n == "number" ? {
587
- replacements: t,
588
- firstChangedLine: n
589
- } : void 0;
590
- }
591
- function et(e) {
592
- let { fromLine: t, content: n } = M(e);
593
- return typeof t == "number" && typeof n == "string" ? {
594
- fromLine: t,
595
- content: n
596
- } : void 0;
597
- }
598
- function tt(e) {
599
- let { name: t, kind: n, bytes: r } = M(e);
600
- return typeof t == "string" && (n === "file" || n === "folder") && typeof r == "number" ? [{
601
- name: t,
602
- kind: n,
603
- bytes: r
604
- }] : [];
605
- }
606
- function nt(e) {
607
- let t = M(e).entries;
608
- return Array.isArray(t) ? t.flatMap(tt) : void 0;
609
- }
610
- function rt(e) {
611
- let { path: t, matches: n } = M(e);
612
- return typeof t != "string" || !Array.isArray(n) ? [] : [{
613
- path: t,
614
- matches: n.flatMap((e) => {
615
- let { line: t, text: n } = M(e);
616
- return typeof t == "number" && typeof n == "string" ? [{
617
- line: t,
618
- text: n
619
- }] : [];
620
- })
621
- }];
622
- }
623
- function it(e) {
624
- let t = M(e).files;
625
- return Array.isArray(t) ? t.flatMap(rt) : void 0;
626
- }
627
- //#endregion
628
- //#region web/src/FoldedOutput.vue?vue&type=script&setup=true&lang.ts
629
- var at = { class: "kvc-output-block" }, ot = ["aria-label"], st = /* @__PURE__ */ c({
665
+ }), lt = { class: "kvc-output-block" }, ut = ["aria-label"], dt = /* @__PURE__ */ c({
630
666
  __name: "FoldedOutput",
631
667
  props: { output: {} },
632
668
  setup(e) {
633
- let n = e, r = j(), o = p(!1), c = t(() => n.output.split("\n")), l = t(() => ke(c.value, o.value).join("\n"));
634
- return (e, t) => (f(), i("div", at, [a("pre", {
669
+ let n = e, r = j(), o = p(!1), c = t(() => n.output.split("\n")), l = t(() => Be(c.value, o.value).join("\n"));
670
+ return (e, t) => (f(), i("div", lt, [a("pre", {
635
671
  class: "kvc-output",
636
672
  dir: "auto",
637
673
  "aria-label": v(r).t("kvcoder.ui.output"),
638
674
  "data-test": "call-output"
639
- }, [s(Z, { text: l.value }, null, 8, ["text"])], 8, ot), s(X, {
675
+ }, [s(X, { text: l.value }, null, 8, ["text"])], 8, ut), s(Y, {
640
676
  count: c.value.length,
641
677
  open: o.value,
642
678
  over: v(12) + v(5),
@@ -647,26 +683,97 @@ var at = { class: "kvc-output-block" }, ot = ["aria-label"], st = /* @__PURE__ *
647
683
  "over"
648
684
  ])]));
649
685
  }
650
- }), ct = {
686
+ });
687
+ //#endregion
688
+ //#region web/src/durations.ts
689
+ function $(e, t) {
690
+ if (t < 1e3) return e("kvcoder.ui.milliseconds", { count: Math.round(t) });
691
+ if (t < 1e4) return e("kvcoder.ui.seconds", { count: (t / 1e3).toFixed(1) });
692
+ let n = Math.round(t / 1e3);
693
+ return n < 60 ? e("kvcoder.ui.seconds", { count: n }) : e("kvcoder.ui.minutesSeconds", {
694
+ minutes: Math.floor(n / 60),
695
+ seconds: n % 60
696
+ });
697
+ }
698
+ //#endregion
699
+ //#region web/src/RunOutput.vue?vue&type=script&setup=true&lang.ts
700
+ var ft = {
701
+ class: "kvc-block kvc-run-row",
702
+ "data-test": "run-row"
703
+ }, pt = {
704
+ class: "kvc-run-call",
705
+ dir: "auto",
706
+ "data-test": "run-call"
707
+ }, mt = {
708
+ class: "kvc-chip",
709
+ "data-test": "run-status"
710
+ }, ht = {
711
+ key: 0,
712
+ class: "kvc-muted",
713
+ "data-test": "run-time"
714
+ }, gt = ["aria-label"], _t = ["aria-label"], vt = ["aria-label"], yt = ["aria-label"], bt = /* @__PURE__ */ c({
715
+ __name: "RunOutput",
716
+ props: { run: {} },
717
+ setup(c) {
718
+ let l = c, u = j(), d = (e) => typeof e == "string" ? e : void 0, p = t(() => d(l.run.output)), m = t(() => d(l.run.problem)), h = t(() => ({
719
+ type: "markdown",
720
+ text: "kvcoder.markdown",
721
+ params: { text: p.value ?? "" }
722
+ }));
723
+ return (t, c) => (f(), i(e, null, [
724
+ a("div", ft, [
725
+ a("span", pt, _(l.run.call), 1),
726
+ a("span", mt, [o(_(v(le)(v(u).t, l.run.status)), 1), l.run.exitCode === void 0 ? r("v-if", !0) : (f(), i(e, { key: 0 }, [o(" · " + _(v(u).t("kvcoder.ui.exitCode", { code: l.run.exitCode })), 1)], 64))]),
727
+ l.run.ranMs === void 0 ? r("v-if", !0) : (f(), i("span", ht, _(v($)(v(u).t, l.run.ranMs)), 1))
728
+ ]),
729
+ m.value === void 0 ? l.run.problem === void 0 ? r("v-if", !0) : (f(), i("div", {
730
+ key: 1,
731
+ class: "kvc-block kvc-error",
732
+ "aria-label": v(u).t("kvcoder.ui.call.error"),
733
+ "data-test": "run-problem"
734
+ }, [s(Q, { value: v(q)(l.run.problem) }, null, 8, ["value"])], 8, _t)) : (f(), i("pre", {
735
+ key: 0,
736
+ class: "kvc-block kvc-error",
737
+ dir: "auto",
738
+ "aria-label": v(u).t("kvcoder.ui.call.error"),
739
+ "data-test": "run-problem"
740
+ }, [s(X, { text: m.value }, null, 8, ["text"])], 8, gt)),
741
+ p.value === void 0 && l.run.output !== void 0 ? (f(), i("div", {
742
+ key: 2,
743
+ class: "kvc-block",
744
+ "aria-label": v(u).t("kvcoder.ui.output"),
745
+ "data-test": "call-result-fields"
746
+ }, [s(Q, { value: v(q)(l.run.output) }, null, 8, ["value"])], 8, vt)) : l.run.answer && p.value ? (f(), i("div", {
747
+ key: 3,
748
+ class: "kvc-block",
749
+ "aria-label": v(u).t("kvcoder.ui.call.answer"),
750
+ "data-test": "call-answer"
751
+ }, [(f(), n(g(v(u).View), { view: h.value }, null, 8, ["view"]))], 8, yt)) : p.value ? (f(), n(dt, {
752
+ key: 4,
753
+ output: p.value
754
+ }, null, 8, ["output"])) : r("v-if", !0)
755
+ ], 64));
756
+ }
757
+ }), xt = {
651
758
  key: 0,
652
759
  class: "kvc-muted kvc-call-parts",
653
760
  "data-test": "call-replacements"
654
- }, lt = {
761
+ }, St = {
655
762
  key: 2,
656
763
  class: "kvc-block kvc-entries",
657
764
  "data-test": "call-entries"
658
- }, ut = ["data-kind"], dt = {
765
+ }, Ct = ["data-kind"], wt = {
659
766
  class: "kvc-mono",
660
767
  dir: "auto",
661
768
  "data-test": "call-entry-name"
662
- }, ft = {
769
+ }, Tt = {
663
770
  key: 0,
664
771
  class: "kvc-muted",
665
772
  "data-test": "call-entry-size"
666
- }, pt = {
773
+ }, Et = {
667
774
  class: "kvc-mono kvc-file-path",
668
775
  "data-test": "call-file-path"
669
- }, mt = ["aria-label"], ht = ["aria-label"], gt = /* @__PURE__ */ c({
776
+ }, Dt = ["aria-label"], Ot = ["aria-label"], kt = /* @__PURE__ */ c({
670
777
  __name: "CallResult",
671
778
  props: {
672
779
  view: {},
@@ -674,75 +781,78 @@ var at = { class: "kvc-output-block" }, ot = ["aria-label"], st = /* @__PURE__ *
674
781
  result: {}
675
782
  },
676
783
  setup(o) {
677
- let c = o, l = j(), u = t(() => V(c.view)), d = t(() => u.value === "edit" ? $e(c.result) : void 0), h = t(() => u.value === "read" ? et(c.result) : void 0), y = t(() => u.value === "list" ? nt(c.result) : void 0), b = t(() => u.value === "search" ? it(c.result) : void 0), x = p(!1), ee = t(() => q(y.value ?? [], x.value)), S = t(() => ({
784
+ let c = o, l = j(), u = t(() => G(c.view)), d = t(() => u.value === "edit" ? re(c.result) : void 0), h = t(() => u.value === "read" ? ie(c.result) : void 0), y = t(() => u.value === "list" ? oe(c.result) : void 0), b = t(() => u.value === "search" ? ue(c.result) : void 0), x = t(() => u.value === "run-output" ? N(c.result) : void 0), S = p(!1), C = t(() => J(y.value ?? [], S.value)), w = t(() => ({
678
785
  type: "markdown",
679
786
  text: "kvcoder.markdown",
680
787
  params: { text: c.output }
681
- })), C = t(() => u.value !== "line" && typeof c.result == "object" && c.result !== null);
682
- return (t, o) => d.value === void 0 ? h.value === void 0 ? y.value === void 0 ? b.value === void 0 ? u.value === "write" && C.value ? (f(), i(e, { key: 4 }, [], 64)) : u.value === "delegate" && c.output !== "" ? (f(), i("div", {
683
- key: 5,
788
+ })), T = t(() => u.value !== "line" && typeof c.result == "object" && c.result !== null);
789
+ return (t, o) => d.value === void 0 ? h.value === void 0 ? y.value === void 0 ? b.value === void 0 ? u.value === "write" && T.value ? (f(), i(e, { key: 4 }, [], 64)) : x.value === void 0 ? u.value === "delegate" && c.output !== "" ? (f(), i("div", {
790
+ key: 6,
684
791
  class: "kvc-block",
685
792
  "aria-label": v(l).t("kvcoder.ui.call.answer"),
686
793
  "data-test": "call-answer"
687
- }, [(f(), n(g(v(l).View), { view: S.value }, null, 8, ["view"]))], 8, mt)) : C.value ? (f(), i("div", {
688
- key: 6,
794
+ }, [(f(), n(g(v(l).View), { view: w.value }, null, 8, ["view"]))], 8, Dt)) : T.value ? (f(), i("div", {
795
+ key: 7,
689
796
  class: "kvc-block",
690
797
  "aria-label": v(l).t("kvcoder.ui.output"),
691
798
  "data-test": "call-result-fields"
692
- }, [s(Ye, { value: v(K)(c.result) }, null, 8, ["value"])], 8, ht)) : c.output === "" ? r("v-if", !0) : (f(), n(st, {
693
- key: 7,
799
+ }, [s(Q, { value: v(q)(c.result) }, null, 8, ["value"])], 8, Ot)) : c.output === "" ? r("v-if", !0) : (f(), n(dt, {
800
+ key: 8,
694
801
  output: c.output
695
- }, null, 8, ["output"])) : (f(!0), i(e, { key: 3 }, m(b.value, (e) => (f(), i("div", {
802
+ }, null, 8, ["output"])) : (f(), n(bt, {
803
+ key: 5,
804
+ run: x.value
805
+ }, null, 8, ["run"])) : (f(!0), i(e, { key: 3 }, m(b.value, (e) => (f(), i("div", {
696
806
  key: e.path,
697
807
  class: "kvc-block",
698
808
  "data-test": "call-file"
699
- }, [a("div", pt, _(e.path), 1), s(Q, { lines: e.matches.map((e) => ({
809
+ }, [a("div", Et, _(e.path), 1), s(Z, { lines: e.matches.map((e) => ({
700
810
  text: e.text,
701
811
  number: e.line
702
- })) }, null, 8, ["lines"])]))), 128)) : (f(), i("div", lt, [(f(!0), i(e, null, m(ee.value, (e) => (f(), i("div", {
812
+ })) }, null, 8, ["lines"])]))), 128)) : (f(), i("div", St, [(f(!0), i(e, null, m(C.value, (e) => (f(), i("div", {
703
813
  key: e.name,
704
814
  class: "kvc-entry",
705
815
  "data-kind": e.kind,
706
816
  "data-test": "call-entry"
707
817
  }, [
708
- (f(), n(g(e.kind === "folder" ? v(ie) : v(O)), {
818
+ (f(), n(g(e.kind === "folder" ? v(ne) : v(A)), {
709
819
  size: 14,
710
820
  "aria-hidden": "true"
711
821
  })),
712
- a("span", dt, _(e.name), 1),
713
- e.kind === "file" ? (f(), i("span", ft, _(v(P)(v(l).t, e.bytes)), 1)) : r("v-if", !0)
714
- ], 8, ut))), 128)), s(X, {
822
+ a("span", wt, _(e.name), 1),
823
+ e.kind === "file" ? (f(), i("span", Tt, _(v(z)(v(l).t, e.bytes)), 1)) : r("v-if", !0)
824
+ ], 8, Ct))), 128)), s(Y, {
715
825
  count: y.value.length,
716
- open: x.value,
717
- onToggle: o[0] ||= (e) => x.value = !x.value
718
- }, null, 8, ["count", "open"])])) : (f(), n(Q, {
826
+ open: S.value,
827
+ onToggle: o[0] ||= (e) => S.value = !S.value
828
+ }, null, 8, ["count", "open"])])) : (f(), n(Z, {
719
829
  key: 1,
720
830
  class: "kvc-block",
721
- lines: v(Y)(h.value.content, h.value.fromLine),
831
+ lines: v(ze)(h.value.content, h.value.fromLine),
722
832
  "data-test": "call-content"
723
- }, null, 8, ["lines"])) : (f(), i("p", ct, _(v(l).t("kvcoder.ui.call.replacements", {
833
+ }, null, 8, ["lines"])) : (f(), i("p", xt, _(v(l).t("kvcoder.ui.call.replacements", {
724
834
  count: d.value.replacements,
725
835
  line: d.value.firstChangedLine
726
836
  })), 1));
727
837
  }
728
- }), _t = {
838
+ }), At = {
729
839
  key: 0,
730
840
  class: "kvc-summary",
731
841
  "data-test": "call-summary"
732
- }, vt = {
842
+ }, jt = {
733
843
  key: 0,
734
844
  "data-test": "call-words"
735
- }, yt = {
845
+ }, Mt = {
736
846
  key: 1,
737
847
  class: "kvc-mono",
738
848
  "data-test": "call-subject"
739
- }, bt = ["dir"], xt = {
849
+ }, Nt = ["dir"], Pt = {
740
850
  key: 1,
741
851
  class: "kvc-muted",
742
852
  dir: "ltr",
743
853
  style: { "align-self": "flex-start" },
744
854
  "data-test": "call-label"
745
- }, St = /* @__PURE__ */ c({
855
+ }, Ft = /* @__PURE__ */ c({
746
856
  __name: "CallSummaryLine",
747
857
  props: {
748
858
  view: {},
@@ -750,60 +860,46 @@ var at = { class: "kvc-output-block" }, ot = ["aria-label"], st = /* @__PURE__ *
750
860
  whole: { type: Boolean }
751
861
  },
752
862
  setup(e) {
753
- let n = e, a = j(), o = t(() => _e(a.t, n.view, n.result)), s = t(() => /\p{L}/u.test(o.value?.outcome ?? "") ? void 0 : "ltr"), c = t(() => o.value?.subject === void 0 || n.whole === !0 ? o.value?.subject : H(o.value.subject));
754
- return (e, t) => o.value === void 0 ? n.view.label ? (f(), i("span", xt, _(n.view.label), 1)) : r("v-if", !0) : (f(), i("span", _t, [
755
- o.value.words ? (f(), i("span", vt, _(o.value.words), 1)) : r("v-if", !0),
756
- c.value ? (f(), i("span", yt, _(c.value), 1)) : r("v-if", !0),
863
+ let n = e, a = j(), o = t(() => Se(a.t, n.view, n.result)), s = t(() => /\p{L}/u.test(o.value?.outcome ?? "") ? void 0 : "ltr"), c = t(() => o.value?.subject === void 0 || n.whole === !0 ? o.value?.subject : K(o.value.subject));
864
+ return (e, t) => o.value === void 0 ? n.view.label ? (f(), i("span", Pt, _(n.view.label), 1)) : r("v-if", !0) : (f(), i("span", At, [
865
+ o.value.words ? (f(), i("span", jt, _(o.value.words), 1)) : r("v-if", !0),
866
+ c.value ? (f(), i("span", Mt, _(c.value), 1)) : r("v-if", !0),
757
867
  o.value.outcome ? (f(), i("span", {
758
868
  key: 2,
759
869
  class: "kvc-muted",
760
870
  dir: s.value,
761
871
  "data-test": "call-outcome"
762
- }, _(o.value.outcome), 9, bt)) : r("v-if", !0)
872
+ }, _(o.value.outcome), 9, Nt)) : r("v-if", !0)
763
873
  ]));
764
874
  }
765
- });
766
- //#endregion
767
- //#region web/src/durations.ts
768
- function $(e, t) {
769
- if (t < 1e3) return e("kvcoder.ui.milliseconds", { count: Math.round(t) });
770
- if (t < 1e4) return e("kvcoder.ui.seconds", { count: (t / 1e3).toFixed(1) });
771
- let n = Math.round(t / 1e3);
772
- return n < 60 ? e("kvcoder.ui.seconds", { count: n }) : e("kvcoder.ui.minutesSeconds", {
773
- minutes: Math.floor(n / 60),
774
- seconds: n % 60
775
- });
776
- }
777
- //#endregion
778
- //#region web/src/CallCard.vue?vue&type=script&setup=true&lang.ts
779
- var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-lines" }, Et = {
875
+ }), It = ["aria-expanded", "disabled"], Lt = ["aria-label"], Rt = { class: "kvc-lines" }, zt = {
780
876
  key: 0,
781
877
  style: { "font-weight": "600" },
782
878
  "data-test": "call-description"
783
- }, Dt = {
879
+ }, Bt = {
784
880
  key: 1,
785
881
  class: "kvc-oneline",
786
882
  "data-test": "call-line"
787
- }, Ot = { class: "kvc-mono" }, kt = {
883
+ }, Vt = { class: "kvc-mono" }, Ht = {
788
884
  key: 2,
789
885
  class: "kvc-chip kvc-warn",
790
886
  "data-test": "call-risky"
791
- }, At = {
887
+ }, Ut = {
792
888
  key: 3,
793
889
  class: "kvc-chip",
794
890
  "data-test": "call-background"
795
- }, jt = {
891
+ }, Wt = {
796
892
  key: 4,
797
893
  class: "kvc-chip kvc-danger",
798
894
  "data-test": "call-failed"
799
- }, Mt = {
895
+ }, Gt = {
800
896
  class: "kvc-muted",
801
897
  "data-test": "call-time"
802
- }, Nt = {
898
+ }, Kt = {
803
899
  key: 0,
804
900
  class: "kvc-muted kvc-call-parts",
805
901
  "data-test": "call-parts"
806
- }, Pt = ["aria-label"], Ft = /* @__PURE__ */ c({
902
+ }, qt = ["aria-label"], Jt = /* @__PURE__ */ c({
807
903
  __name: "CallCard",
808
904
  props: {
809
905
  view: {},
@@ -813,7 +909,7 @@ var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-
813
909
  running: { type: Boolean }
814
910
  },
815
911
  setup(o) {
816
- let c = o, l = j(), u = t(() => V(c.view)), m = p(c.output !== void 0 && (c.failed === !0 || u.value === "edit" || u.value === "write")), h = t(() => c.failed === !0 ? void 0 : ce(c.output)), y = t(() => c.failed === !0 && u.value !== "line"), b = t(() => c.durationMs === void 0 ? "" : $(l.t, (c.view.writtenMs ?? 0) + c.durationMs)), x = t(() => {
912
+ let c = o, l = j(), u = t(() => G(c.view)), m = p(c.output !== void 0 && (c.failed === !0 || u.value === "edit" || u.value === "write")), h = t(() => c.failed === !0 ? void 0 : fe(c.output)), y = t(() => c.failed === !0 && u.value !== "line"), b = t(() => c.durationMs === void 0 ? "" : $(l.t, (c.view.writtenMs ?? 0) + c.durationMs)), x = t(() => {
817
913
  if (c.durationMs === void 0) return "";
818
914
  let e = $(l.t, c.durationMs);
819
915
  return c.view.writtenMs === void 0 ? l.t("kvcoder.ui.callRan", { ran: e }) : l.t("kvcoder.ui.callParts", {
@@ -839,30 +935,30 @@ var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-
839
935
  key: 0,
840
936
  class: "kvc-spin",
841
937
  "aria-label": v(l).t("kvcoder.ui.running")
842
- }, null, 8, wt)) : (f(), n(g(m.value ? v(E) : v(D)), {
938
+ }, null, 8, Lt)) : (f(), n(g(m.value ? v(O) : v(k)), {
843
939
  key: 1,
844
940
  size: 16,
845
941
  "aria-hidden": "true"
846
942
  })),
847
- a("span", Tt, [c.view.description ? (f(), i("span", Et, _(c.view.description), 1)) : c.view.connector === void 0 && c.view.line ? (f(), i("span", Dt, [a("span", Ot, _(v(H)(c.view.line)), 1)])) : r("v-if", !0), s(St, {
943
+ a("span", Rt, [c.view.description ? (f(), i("span", zt, _(c.view.description), 1)) : c.view.connector === void 0 && c.view.line ? (f(), i("span", Bt, [a("span", Vt, _(v(K)(c.view.line)), 1)])) : r("v-if", !0), s(Ft, {
848
944
  view: c.view,
849
945
  result: h.value
850
946
  }, null, 8, ["view", "result"])]),
851
- c.view.risky ? (f(), i("span", kt, _(v(l).t("kvcoder.ui.call.risky")), 1)) : r("v-if", !0),
852
- c.view.background ? (f(), i("span", At, _(v(l).t("kvcoder.ui.jobs.background")), 1)) : r("v-if", !0),
853
- c.failed ? (f(), i("span", jt, _(v(l).t("kvcoder.ui.callFailed")), 1)) : r("v-if", !0),
854
- a("span", Mt, _(b.value), 1)
855
- ], 8, Ct), m.value && c.output !== void 0 ? (f(), i(e, { key: 0 }, [
856
- x.value === "" ? r("v-if", !0) : (f(), i("p", Nt, _(x.value), 1)),
947
+ c.view.risky ? (f(), i("span", Ht, _(v(l).t("kvcoder.ui.call.risky")), 1)) : r("v-if", !0),
948
+ c.view.background ? (f(), i("span", Ut, _(v(l).t("kvcoder.ui.jobs.background")), 1)) : r("v-if", !0),
949
+ c.failed ? (f(), i("span", Wt, _(v(l).t("kvcoder.ui.callFailed")), 1)) : r("v-if", !0),
950
+ a("span", Gt, _(b.value), 1)
951
+ ], 8, It), m.value && c.output !== void 0 ? (f(), i(e, { key: 0 }, [
952
+ x.value === "" ? r("v-if", !0) : (f(), i("p", Kt, _(x.value), 1)),
857
953
  y.value ? (f(), i("pre", {
858
954
  key: 1,
859
955
  class: "kvc-block kvc-error",
860
956
  dir: "auto",
861
957
  "aria-label": v(l).t("kvcoder.ui.call.error"),
862
958
  "data-test": "call-error"
863
- }, [s(Z, { text: c.output }, null, 8, ["text"])], 8, Pt)) : r("v-if", !0),
864
- s(Qe, { view: c.view }, null, 8, ["view"]),
865
- y.value ? r("v-if", !0) : (f(), n(gt, {
959
+ }, [s(X, { text: c.output }, null, 8, ["text"])], 8, qt)) : r("v-if", !0),
960
+ s(ct, { view: c.view }, null, 8, ["view"]),
961
+ y.value ? r("v-if", !0) : (f(), n(kt, {
866
962
  key: 2,
867
963
  view: c.view,
868
964
  output: c.output,
@@ -874,7 +970,7 @@ var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-
874
970
  ]))
875
971
  ], 64)) : r("v-if", !0)], 2));
876
972
  }
877
- }), It = /* @__PURE__ */ c({
973
+ }), Yt = /* @__PURE__ */ c({
878
974
  __name: "call",
879
975
  props: {
880
976
  description: {},
@@ -890,13 +986,13 @@ var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-
890
986
  let r = e, i = t(() => r.connector === void 0 ? {
891
987
  ...r.description === void 0 ? {} : { description: r.description },
892
988
  ...r.line === void 0 ? {} : { line: r.line }
893
- } : Se({
989
+ } : Oe({
894
990
  description: r.description,
895
991
  connector: r.connector,
896
992
  command: r.command,
897
993
  payload: r.payload ?? {}
898
994
  }));
899
- return (e, t) => (f(), n(Ft, {
995
+ return (e, t) => (f(), n(Jt, {
900
996
  view: i.value,
901
997
  failed: r.failed,
902
998
  "duration-ms": r.durationMs,
@@ -910,4 +1006,4 @@ var Ct = ["aria-expanded", "disabled"], wt = ["aria-label"], Tt = { class: "kvc-
910
1006
  }
911
1007
  });
912
1008
  //#endregion
913
- export { It as default };
1009
+ export { Yt as default };