@kvman/kvcoder 0.1.10 → 0.1.12

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