@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
@@ -1,35 +1,35 @@
1
- import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, guardReactiveProps as c, h as l, inject as u, nextTick as d, normalizeProps as f, onBeforeUnmount as p, onMounted as m, openBlock as h, ref as g, renderList as _, shallowRef as v, toDisplayString as y, unref as b, useTemplateRef as x, vModelText as S, watch as C, withDirectives as w, withKeys as T, withModifiers as E } from "vue";
1
+ import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, guardReactiveProps as c, h as l, inject as u, nextTick as d, normalizeProps as f, onBeforeUnmount as p, onMounted as m, openBlock as h, ref as g, renderList as _, resolveDynamicComponent as v, shallowRef as y, toDisplayString as b, unref as x, useTemplateRef as S, vModelText as C, watch as w, withDirectives as T, withKeys as E, withModifiers as D } from "vue";
2
2
  //#region web/src/kvman.ts
3
- function D() {
3
+ function O() {
4
4
  let e = u("kvman");
5
5
  if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
6
6
  return e;
7
7
  }
8
- function O(e) {
8
+ function k(e) {
9
9
  return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
10
10
  }
11
- function k(e) {
11
+ function A(e) {
12
12
  let t = e.indexOf("/");
13
13
  return t < 0 ? `kernel.errors.${e}` : `${e.slice(0, t)}.errors.${e.slice(t + 1)}`;
14
14
  }
15
- function A(e) {
15
+ function j(e) {
16
16
  if (!(e instanceof Error) || !("problem" in e)) return;
17
17
  let t = e.problem;
18
18
  if (typeof t == "object" && t && "code" in t && typeof t.code == "string") return {
19
19
  code: t.code,
20
- params: j("params" in t ? t.params : void 0)
20
+ params: M("params" in t ? t.params : void 0)
21
21
  };
22
22
  }
23
- function j(e) {
24
- return Object.fromEntries(Object.entries(O(e)).map(([e, t]) => [e, typeof t == "string" ? t : JSON.stringify(t)]));
23
+ function M(e) {
24
+ return Object.fromEntries(Object.entries(k(e)).map(([e, t]) => [e, typeof t == "string" ? t : JSON.stringify(t)]));
25
25
  }
26
- function M(e, t) {
27
- let n = A(t);
28
- e.toast(n === void 0 ? "kvcoder.ui.failed" : k(n.code), n?.params ?? {}, "error");
26
+ function N(e, t) {
27
+ let n = j(t);
28
+ e.toast(n === void 0 ? "kvcoder.ui.failed" : A(n.code), n?.params ?? {}, "error");
29
29
  }
30
30
  //#endregion
31
31
  //#region web/src/model-groups.ts
32
- function N(e, t, n) {
32
+ function P(e, t, n) {
33
33
  let r = new Map(e.map((e) => [e.id, e.title])), i = new Set(e.filter((e) => e.status !== "needsKey").map((e) => e.id)), a = t.filter((e) => i.has(e.provider) || e.id === n), o = /* @__PURE__ */ new Map();
34
34
  for (let e of a) {
35
35
  let t = o.get(e.provider) ?? {
@@ -39,7 +39,8 @@ function N(e, t, n) {
39
39
  };
40
40
  t.models.push({
41
41
  id: e.id,
42
- name: e.name
42
+ name: e.name,
43
+ thinkingLevels: e.thinkingLevels
43
44
  }), o.set(e.provider, t);
44
45
  }
45
46
  return [...o.values()].sort((e, t) => e.title.localeCompare(t.title));
@@ -57,7 +58,7 @@ function ee(e, t) {
57
58
  }
58
59
  //#endregion
59
60
  //#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/build/defaultAttributes.mjs
60
- var P = {
61
+ var F = {
61
62
  xmlns: "http://www.w3.org/2000/svg",
62
63
  width: 24,
63
64
  height: 24,
@@ -67,25 +68,25 @@ var P = {
67
68
  "stroke-width": 2,
68
69
  "stroke-linecap": "round",
69
70
  "stroke-linejoin": "round"
70
- }, F = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim();
71
+ }, I = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim();
71
72
  //#endregion
72
73
  //#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/build/buildLucideIconNode.mjs
73
- function I(e) {
74
+ function L(e) {
74
75
  return e != null;
75
76
  }
76
- function L(e, t = {}) {
77
- let n = t.attributeNames ?? {}, r = (e) => n[e] ?? e, i = e.size ?? e.width ?? P.width, a = e.size ?? e.height ?? P.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 ? F(...c) : F("lucide", ...s, ...c), u = t.absoluteStrokeWidth ? Number(t.strokeWidth ?? P["stroke-width"]) * Number(e.size ?? e.width ?? P.width) / Number(t.size ?? t.width ?? P.width) : t.strokeWidth ?? P["stroke-width"];
77
+ function R(e, t = {}) {
78
+ let n = t.attributeNames ?? {}, r = (e) => n[e] ?? e, i = e.size ?? e.width ?? F.width, a = e.size ?? e.height ?? F.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 ? I(...c) : I("lucide", ...s, ...c), u = t.absoluteStrokeWidth ? Number(t.strokeWidth ?? F["stroke-width"]) * Number(e.size ?? e.width ?? F.width) / Number(t.size ?? t.width ?? F.width) : t.strokeWidth ?? F["stroke-width"];
78
79
  return [
79
80
  "svg",
80
81
  {
81
- ...Object.entries(P).reduce((e, [t, n]) => (e[r(t)] = n, e), {}),
82
+ ...Object.entries(F).reduce((e, [t, n]) => (e[r(t)] = n, e), {}),
82
83
  ..."color" in t && t.color && { [r("stroke")]: t.color },
83
- ..."size" in t && I(t.size) && {
84
+ ..."size" in t && L(t.size) && {
84
85
  [r("width")]: t.size,
85
86
  [r("height")]: t.size
86
87
  },
87
- ..."width" in t && I(t.width) && { [r("width")]: t.width },
88
- ..."height" in t && I(t.height) && { [r("height")]: t.height },
88
+ ..."width" in t && L(t.width) && { [r("width")]: t.width },
89
+ ..."height" in t && L(t.height) && { [r("height")]: t.height },
89
90
  [r("stroke-width")]: u,
90
91
  ...l && { [r("class")]: l },
91
92
  [r("viewBox")]: `0 0 ${i} ${a}`,
@@ -107,24 +108,24 @@ function L(e, t = {}) {
107
108
  }
108
109
  //#endregion
109
110
  //#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
110
- var R = (e) => {
111
+ var z = (e) => {
111
112
  for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
112
113
  return !1;
113
- }, z = (e) => e === "", B = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), V = /* @__PURE__ */ Symbol("lucide-icons");
114
- function H() {
115
- return u(V, {});
114
+ }, B = (e) => e === "", V = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), H = /* @__PURE__ */ Symbol("lucide-icons");
115
+ function U() {
116
+ return u(H, {});
116
117
  }
117
118
  //#endregion
118
119
  //#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
119
- var U = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
120
- name: e && B(e),
120
+ var W = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
121
+ name: e && V(e),
121
122
  node: t ?? n ?? [],
122
123
  size: 24,
123
124
  aliases: []
124
125
  }, 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 }) => {
125
- let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class: S = "" } = H(), C = z(i) || z(a) || i === !0 || a === !0 || b === !0, w = z(o) || z(s) || o === !0 || s === !0 || x === !0;
126
+ let { size: _, color: v, strokeWidth: y = 2, absoluteStrokeWidth: b = !1, nonScalingStroke: x = !1, class: S = "" } = U(), C = B(i) || B(a) || i === !0 || a === !0 || b === !0, w = B(o) || B(s) || o === !0 || s === !0 || x === !0;
126
127
  delete h.class;
127
- let T = g.default?.(), [, E, D = []] = L(r, {
128
+ let T = g.default?.(), [, E, D = []] = R(r, {
128
129
  color: m ?? v,
129
130
  width: f ?? d ?? _,
130
131
  height: p ?? d ?? _,
@@ -132,38 +133,38 @@ var U = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
132
133
  absoluteStrokeWidth: C,
133
134
  nonScalingStroke: w,
134
135
  className: S,
135
- hasA11yProp: T != null && T.length > 0 || R(h),
136
+ hasA11yProp: T != null && T.length > 0 || z(h),
136
137
  attributes: h
137
138
  });
138
139
  return l("svg", E, [...D.map(([e, t]) => l(e, t)), ...T ?? []]);
139
140
  };
140
141
  //#endregion
141
142
  //#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
142
- function W(e, t = []) {
143
+ function G(e, t = []) {
143
144
  let n = typeof e == "string" ? {
144
145
  name: e,
145
146
  node: t
146
147
  } : e;
147
- return (e, { slots: t }) => l(U, {
148
+ return (e, { slots: t }) => l(W, {
148
149
  ...e,
149
150
  icon: n
150
151
  }, t.default ? { default: t.default } : void 0);
151
152
  }
152
- var G = W({
153
+ var K = G({
153
154
  name: "check",
154
155
  size: 24,
155
156
  node: [["path", {
156
157
  d: "M20 6 9 17l-5-5",
157
158
  key: "1gmf2c"
158
159
  }]]
159
- }), te = W({
160
+ }), te = G({
160
161
  name: "chevron-down",
161
162
  size: 24,
162
163
  node: [["path", {
163
164
  d: "m6 9 6 6 6-6",
164
165
  key: "qrunsl"
165
166
  }]]
166
- }), ne = W({
167
+ }), ne = G({
167
168
  name: "search",
168
169
  size: 24,
169
170
  node: [["path", {
@@ -178,7 +179,8 @@ var G = W({
178
179
  }), re = { class: "kvc-picker" }, ie = [
179
180
  "aria-expanded",
180
181
  "aria-label",
181
- "disabled"
182
+ "disabled",
183
+ "title"
182
184
  ], ae = { class: "kvc-picker-label" }, oe = ["onKeydown"], se = { class: "kvc-search" }, ce = [
183
185
  "placeholder",
184
186
  "aria-label",
@@ -200,148 +202,159 @@ var G = W({
200
202
  }, ge = {
201
203
  class: "kvc-muted kvc-count",
202
204
  "data-test": "model-count"
203
- }, K = 24, q = /* @__PURE__ */ s({
205
+ }, q = 24, J = /* @__PURE__ */ s({
204
206
  __name: "ModelPicker",
205
207
  props: {
206
208
  groups: {},
207
209
  current: {},
208
210
  empty: {},
209
211
  none: {},
210
- disabled: { type: Boolean }
212
+ disabled: { type: Boolean },
213
+ icon: {}
211
214
  },
212
215
  emits: ["pick", "none"],
213
216
  setup(s, { emit: c }) {
214
- let l = s, u = c, f = D(), m = g(!1), v = g(""), O = g(0), k = x("trigger"), A = x("search"), j = x("panel"), M = t(() => ee(l.groups, v.value)), N = t(() => M.value.groups.flatMap((e) => e.models)), P = t(() => l.groups.flatMap((e) => e.models).find((e) => e.id === l.current)?.name ?? l.current ?? l.empty ?? ""), F = t(() => l.none !== void 0 && v.value.trim() === ""), I = t(() => +!!F.value), L = t(() => N.value.length + I.value), R = (e) => {
215
- let t = N.value.findIndex((t) => t.id === e);
216
- return t < 0 ? -1 : t + I.value;
217
+ let l = s, u = c, f = O(), m = g(!1), y = g(""), k = g(0), A = S("trigger"), j = S("search"), M = S("panel"), N = t(() => ee(l.groups, y.value)), P = t(() => N.value.groups.flatMap((e) => e.models)), F = t(() => l.groups.flatMap((e) => e.models).find((e) => e.id === l.current)?.name ?? l.current ?? l.empty ?? ""), I = t(() => l.none !== void 0 && y.value.trim() === ""), L = t(() => +!!I.value), R = t(() => P.value.length + L.value), z = (e) => {
218
+ let t = P.value.findIndex((t) => t.id === e);
219
+ return t < 0 ? -1 : t + L.value;
217
220
  };
218
- function z() {
219
- m.value = !1, k.value?.focus();
220
- }
221
- async function B() {
222
- v.value = "", O.value = Math.max(R(l.current ?? ""), 0), V = 0, m.value = !0, await d(), U(), A.value?.focus(), q();
221
+ function B() {
222
+ m.value = !1, A.value?.focus();
223
223
  }
224
- let V = 0, H = 0;
225
- function U() {
226
- let e = j.value, t = k.value?.closest(".kvc-conversation")?.getBoundingClientRect();
227
- if (e === null || t === void 0) return;
228
- let n = e.getBoundingClientRect(), r = t.left + K - (n.left - V), i = t.right - K - (n.right - V), a = r > 0 ? r : i < 0 ? i : 0;
229
- a !== V && (V = a, e.style.translate = `${a}px 0`);
224
+ async function V() {
225
+ y.value = "", k.value = Math.max(z(l.current ?? ""), 0), H = 0, m.value = !0, await d(), W(), j.value?.focus(), J();
230
226
  }
227
+ let H = 0, U = 0;
231
228
  function W() {
232
- U(), H = requestAnimationFrame(W);
229
+ let e = M.value, t = A.value?.closest(".kvc-conversation")?.getBoundingClientRect();
230
+ if (e === null || t === void 0) return;
231
+ let n = e.getBoundingClientRect(), r = t.left + q - (n.left - H), i = t.right - q - (n.right - H), a = r > 0 ? r : i < 0 ? i : 0;
232
+ a !== H && (H = a, e.style.translate = `${a}px 0`);
233
233
  }
234
- function q() {
235
- j.value?.querySelector("[data-active=\"true\"]")?.scrollIntoView?.({ block: "nearest" });
234
+ function G() {
235
+ W(), U = requestAnimationFrame(G);
236
236
  }
237
- async function J(e) {
238
- L.value !== 0 && (O.value = (O.value + e + L.value) % L.value, await d(), q());
237
+ function J() {
238
+ M.value?.querySelector("[data-active=\"true\"]")?.scrollIntoView?.({ block: "nearest" });
239
239
  }
240
- function Y(e) {
241
- e !== void 0 && (u("pick", e), z());
240
+ async function Y(e) {
241
+ R.value !== 0 && (k.value = (k.value + e + R.value) % R.value, await d(), J());
242
242
  }
243
- function X() {
244
- u("none"), z();
243
+ function X(e) {
244
+ e !== void 0 && (u("pick", e), B());
245
245
  }
246
246
  function Z() {
247
- F.value && O.value === 0 ? X() : Y(N.value[O.value - I.value]?.id);
247
+ u("none"), B();
248
248
  }
249
- function Q(e) {
250
- e.target instanceof Node && !k.value?.parentElement?.contains(e.target) && (m.value = !1);
249
+ function Q() {
250
+ I.value && k.value === 0 ? Z() : X(P.value[k.value - L.value]?.id);
251
251
  }
252
- return C(v, () => O.value = 0), C(m, (e) => {
253
- e ? (document.addEventListener("pointerdown", Q), H = requestAnimationFrame(W)) : (document.removeEventListener("pointerdown", Q), cancelAnimationFrame(H));
252
+ function $(e) {
253
+ e.target instanceof Node && !A.value?.parentElement?.contains(e.target) && (m.value = !1);
254
+ }
255
+ return w(y, () => k.value = 0), w(m, (e) => {
256
+ e ? (document.addEventListener("pointerdown", $), U = requestAnimationFrame(G)) : (document.removeEventListener("pointerdown", $), cancelAnimationFrame(U));
254
257
  }), p(() => {
255
- document.removeEventListener("pointerdown", Q), cancelAnimationFrame(H);
258
+ document.removeEventListener("pointerdown", $), cancelAnimationFrame(U);
256
259
  }), (t, s) => (h(), i("div", re, [a("button", {
257
260
  ref_key: "trigger",
258
- ref: k,
261
+ ref: A,
259
262
  type: "button",
260
263
  class: "kvc-button",
261
264
  "aria-haspopup": "listbox",
262
265
  "aria-expanded": m.value,
263
- "aria-label": `${b(f).t("kvcoder.ui.model")}: ${P.value}`,
266
+ "aria-label": `${x(f).t("kvcoder.ui.model")}: ${F.value}`,
264
267
  disabled: l.disabled,
268
+ title: F.value,
265
269
  "data-test": "model-picker",
266
- onClick: s[0] ||= (e) => m.value ? z() : B()
267
- }, [a("span", ae, y(P.value), 1), o(b(te), {
268
- size: 16,
269
- "aria-hidden": "true"
270
- })], 8, ie), m.value ? (h(), i("div", {
270
+ onClick: s[0] ||= (e) => m.value ? B() : V()
271
+ }, [
272
+ l.icon ? (h(), n(v(l.icon), {
273
+ key: 0,
274
+ size: 16,
275
+ class: "kvc-picker-icon",
276
+ "aria-hidden": "true"
277
+ })) : r("v-if", !0),
278
+ a("span", ae, b(F.value), 1),
279
+ o(x(te), {
280
+ size: 16,
281
+ "aria-hidden": "true"
282
+ })
283
+ ], 8, ie), m.value ? (h(), i("div", {
271
284
  key: 0,
272
285
  ref_key: "panel",
273
- ref: j,
286
+ ref: M,
274
287
  class: "kvc-popover",
275
288
  "data-test": "model-popover",
276
- onKeydown: T(E(z, ["stop"]), ["esc"])
289
+ onKeydown: E(D(B, ["stop"]), ["esc"])
277
290
  }, [
278
- a("label", se, [o(b(ne), {
291
+ a("label", se, [o(x(ne), {
279
292
  size: 16,
280
293
  "aria-hidden": "true"
281
- }), w(a("input", {
294
+ }), T(a("input", {
282
295
  ref_key: "search",
283
- ref: A,
284
- "onUpdate:modelValue": s[1] ||= (e) => v.value = e,
296
+ ref: j,
297
+ "onUpdate:modelValue": s[1] ||= (e) => y.value = e,
285
298
  type: "search",
286
299
  role: "combobox",
287
300
  "aria-expanded": "true",
288
301
  "aria-controls": "kvc-models",
289
- placeholder: b(f).t("kvcoder.ui.searchModels"),
290
- "aria-label": b(f).t("kvcoder.ui.searchModels"),
302
+ placeholder: x(f).t("kvcoder.ui.searchModels"),
303
+ "aria-label": x(f).t("kvcoder.ui.searchModels"),
291
304
  "data-test": "model-search",
292
305
  onKeydown: [
293
- s[2] ||= T(E((e) => J(1), ["prevent"]), ["down"]),
294
- s[3] ||= T(E((e) => J(-1), ["prevent"]), ["up"]),
295
- T(E(Z, ["prevent"]), ["enter"])
306
+ s[2] ||= E(D((e) => Y(1), ["prevent"]), ["down"]),
307
+ s[3] ||= E(D((e) => Y(-1), ["prevent"]), ["up"]),
308
+ E(D(Q, ["prevent"]), ["enter"])
296
309
  ]
297
- }, null, 40, ce), [[S, v.value]])]),
310
+ }, null, 40, ce), [[C, y.value]])]),
298
311
  a("div", {
299
312
  id: "kvc-models",
300
313
  class: "kvc-options",
301
314
  role: "listbox",
302
- "aria-label": b(f).t("kvcoder.ui.model")
315
+ "aria-label": x(f).t("kvcoder.ui.model")
303
316
  }, [
304
- F.value ? (h(), i("div", {
317
+ I.value ? (h(), i("div", {
305
318
  key: 0,
306
319
  class: "kvc-model",
307
320
  role: "option",
308
321
  "aria-selected": l.current === null,
309
- "data-active": O.value === 0,
322
+ "data-active": k.value === 0,
310
323
  "data-test": "model-none-entry",
311
- onClick: X,
312
- onMousemove: s[4] ||= (e) => O.value = 0
313
- }, [a("span", de, y(l.none), 1), l.current === null ? (h(), n(b(G), {
324
+ onClick: Z,
325
+ onMousemove: s[4] ||= (e) => k.value = 0
326
+ }, [a("span", de, b(l.none), 1), l.current === null ? (h(), n(x(K), {
314
327
  key: 0,
315
328
  size: 16,
316
329
  "aria-hidden": "true"
317
330
  })) : r("v-if", !0)], 40, ue)) : r("v-if", !0),
318
- (h(!0), i(e, null, _(M.value.groups, (t) => (h(), i(e, { key: t.provider }, [a("div", fe, y(t.title), 1), (h(!0), i(e, null, _(t.models, (e) => (h(), i("div", {
331
+ (h(!0), i(e, null, _(N.value.groups, (t) => (h(), i(e, { key: t.provider }, [a("div", fe, b(t.title), 1), (h(!0), i(e, null, _(t.models, (e) => (h(), i("div", {
319
332
  key: e.id,
320
333
  class: "kvc-model",
321
334
  role: "option",
322
335
  "aria-selected": e.id === l.current,
323
- "data-active": R(e.id) === O.value,
336
+ "data-active": z(e.id) === k.value,
324
337
  "data-test": `model-${e.id}`,
325
- onClick: (t) => Y(e.id),
326
- onMousemove: (t) => O.value = R(e.id)
327
- }, [a("span", me, y(e.name), 1), e.id === l.current ? (h(), n(b(G), {
338
+ onClick: (t) => X(e.id),
339
+ onMousemove: (t) => k.value = z(e.id)
340
+ }, [a("span", me, b(e.name), 1), e.id === l.current ? (h(), n(x(K), {
328
341
  key: 0,
329
342
  size: 16,
330
343
  "aria-hidden": "true"
331
344
  })) : r("v-if", !0)], 40, pe))), 128))], 64))), 128)),
332
- M.value.shown === 0 ? (h(), i("p", he, y(b(f).t("kvcoder.ui.noModels")), 1)) : r("v-if", !0)
345
+ N.value.shown === 0 ? (h(), i("p", he, b(x(f).t("kvcoder.ui.noModels")), 1)) : r("v-if", !0)
333
346
  ], 8, le),
334
- a("p", ge, y(b(f).t("kvcoder.ui.modelsCount", {
335
- shown: M.value.shown,
336
- total: M.value.total
347
+ a("p", ge, b(x(f).t("kvcoder.ui.modelsCount", {
348
+ shown: N.value.shown,
349
+ total: N.value.total
337
350
  })), 1)
338
351
  ], 40, oe)) : r("v-if", !0)]));
339
352
  }
340
353
  });
341
354
  //#endregion
342
355
  //#region web/src/use-setting.ts
343
- function J(e, n) {
344
- let r = v(null), i = g("default"), a = g(!1), o = async () => {
356
+ function Y(e, n) {
357
+ let r = y(null), i = g("default"), a = g(!1), o = async () => {
345
358
  let t = (await e.exec("kernel.settings.list", {})).find((e) => e.key === n);
346
359
  r.value = t?.value ?? null, i.value = t?.source ?? "default";
347
360
  }, s = async (t) => {
@@ -349,12 +362,12 @@ function J(e, n) {
349
362
  try {
350
363
  return await t(), await o(), !0;
351
364
  } catch (t) {
352
- return M(e, t), !1;
365
+ return N(e, t), !1;
353
366
  } finally {
354
367
  a.value = !1;
355
368
  }
356
369
  };
357
- return m(o), C(() => [e.scope.value, e.workspace.value.id], o), {
370
+ return m(o), w(() => [e.scope.value, e.workspace.value.id], o), {
358
371
  value: r,
359
372
  saving: a,
360
373
  locked: t(() => e.scope.value === "global" && i.value === "workspace"),
@@ -372,27 +385,27 @@ function J(e, n) {
372
385
  }
373
386
  //#endregion
374
387
  //#region web/src/ModelSetting.vue?vue&type=script&setup=true&lang.ts
375
- var Y = ["data-setting"], X = { class: "kvc-setting-text" }, Z = {
388
+ var X = ["data-setting"], Z = { class: "kvc-setting-text" }, Q = {
376
389
  class: "kvc-setting-title",
377
390
  "data-test": "model-setting-title"
378
- }, Q = {
391
+ }, $ = {
379
392
  class: "kvc-muted",
380
393
  "data-test": "model-setting-description"
381
- }, $ = { class: "kvc-setting-control" }, _e = {
394
+ }, _e = { class: "kvc-setting-control" }, ve = {
382
395
  key: 0,
383
396
  class: "kvc-muted",
384
397
  "data-test": "model-own-value"
385
- }, ve = {
398
+ }, ye = {
386
399
  key: 1,
387
400
  class: "kvc-connectors-state"
388
- }, ye = {
401
+ }, be = {
389
402
  class: "kvc-chip",
390
403
  "data-test": "model-changed"
391
- }, be = ["disabled"], xe = /* @__PURE__ */ s({
404
+ }, xe = ["disabled"], Se = /* @__PURE__ */ s({
392
405
  __name: "ModelSetting",
393
406
  props: { setting: { default: "kvcoder.model" } },
394
407
  setup(e) {
395
- let n = e, s = D(), c = t(() => n.setting === "kvcoder.delegate.model"), l = J(s, n.setting), u = g([]), d = g([]), f = g(null);
408
+ let n = e, s = O(), c = t(() => n.setting === "kvcoder.delegate.model"), l = Y(s, n.setting), u = g([]), d = g([]), f = g(null);
396
409
  m(async () => {
397
410
  try {
398
411
  let [e, t, n] = await Promise.all([
@@ -402,43 +415,43 @@ var Y = ["data-setting"], X = { class: "kvc-setting-text" }, Z = {
402
415
  ]);
403
416
  u.value = e, d.value = t, f.value = n.name ?? n.id;
404
417
  } catch (e) {
405
- M(s, e);
418
+ N(s, e);
406
419
  }
407
420
  });
408
- let p = t(() => typeof l.value.value == "string" ? l.value.value : null), _ = t(() => N(u.value, d.value, p.value)), v = t(() => c.value ? s.t("kvcoder.config.model.chatModel") : f.value === null ? s.t("kvcoder.config.model.defaultUnset") : s.t("kvcoder.config.model.default", { name: f.value })), x = (e) => s.t(`${e}.${s.scope.value}`, { name: s.workspace.value.name });
421
+ let p = t(() => typeof l.value.value == "string" ? l.value.value : null), _ = t(() => P(u.value, d.value, p.value)), v = t(() => c.value ? s.t("kvcoder.config.model.chatModel") : f.value === null ? s.t("kvcoder.config.model.defaultUnset") : s.t("kvcoder.config.model.default", { name: f.value })), y = (e) => s.t(`${e}.${s.scope.value}`, { name: s.workspace.value.name });
409
422
  return (e, t) => (h(), i("div", {
410
423
  class: "kvc-setting",
411
424
  "data-test": "model-setting",
412
425
  "data-setting": n.setting
413
- }, [a("span", X, [a("span", Z, y(b(s).t(`${n.setting}.title`)), 1), a("span", Q, y(b(s).t(`${n.setting}.description`)), 1)]), a("span", $, [o(q, {
426
+ }, [a("span", Z, [a("span", Q, b(x(s).t(`${n.setting}.title`)), 1), a("span", $, b(x(s).t(`${n.setting}.description`)), 1)]), a("span", _e, [o(J, {
414
427
  groups: _.value,
415
428
  current: p.value,
416
429
  empty: v.value,
417
- none: b(s).t(c.value ? "kvcoder.config.model.useChatModel" : "kvcoder.config.model.useDefault"),
418
- disabled: b(l).locked.value || b(l).saving.value,
419
- onPick: t[0] ||= (e) => b(l).set(e),
420
- onNone: t[1] ||= (e) => b(l).set(null)
430
+ none: x(s).t(c.value ? "kvcoder.config.model.useChatModel" : "kvcoder.config.model.useDefault"),
431
+ disabled: x(l).locked.value || x(l).saving.value,
432
+ onPick: t[0] ||= (e) => x(l).set(e),
433
+ onNone: t[1] ||= (e) => x(l).set(null)
421
434
  }, null, 8, [
422
435
  "groups",
423
436
  "current",
424
437
  "empty",
425
438
  "none",
426
439
  "disabled"
427
- ]), b(l).locked.value ? (h(), i("span", _e, y(b(s).t("kvcoder.config.model.ownValue", { name: b(s).workspace.value.name })), 1)) : b(l).changed.value ? (h(), i("span", ve, [a("span", ye, y(x("kvcoder.config.model.changed")), 1), a("button", {
440
+ ]), x(l).locked.value ? (h(), i("span", ve, b(x(s).t("kvcoder.config.model.ownValue", { name: x(s).workspace.value.name })), 1)) : x(l).changed.value ? (h(), i("span", ye, [a("span", be, b(y("kvcoder.config.model.changed")), 1), a("button", {
428
441
  type: "button",
429
442
  class: "kvc-text-button",
430
- disabled: b(l).saving.value,
443
+ disabled: x(l).saving.value,
431
444
  "data-test": "model-reset",
432
- onClick: t[2] ||= (...e) => b(l).reset && b(l).reset(...e)
433
- }, y(x("kvcoder.config.model.reset")), 9, be)])) : r("v-if", !0)])], 8, Y));
445
+ onClick: t[2] ||= (...e) => x(l).reset && x(l).reset(...e)
446
+ }, b(y("kvcoder.config.model.reset")), 9, xe)])) : r("v-if", !0)])], 8, X));
434
447
  }
435
- }), Se = /* @__PURE__ */ s({
448
+ }), Ce = /* @__PURE__ */ s({
436
449
  __name: "model",
437
450
  props: { setting: {} },
438
451
  setup(e) {
439
452
  let t = e;
440
- return (e, r) => (h(), n(xe, f(c(t.setting === void 0 ? {} : { setting: t.setting })), null, 16));
453
+ return (e, r) => (h(), n(Se, f(c(t.setting === void 0 ? {} : { setting: t.setting })), null, 16));
441
454
  }
442
455
  });
443
456
  //#endregion
444
- export { Se as default };
457
+ export { Ce as default };
@@ -0,0 +1,2 @@
1
+ .kvc-workspace{flex-direction:column;flex:1 1 0;align-self:stretch;block-size:100%;min-block-size:24rem;min-inline-size:min(100%,30rem);display:flex;position:relative;container:kvc-workspace/inline-size}.kvc-stage{flex:1 1 0;min-block-size:0;display:flex;position:relative}.kvc-workspace>.kvc-header{background:var(--kv-color-surface);color:var(--kv-color-text)}.kvc-conversation{background:var(--kv-color-surface);min-inline-size:0;color:var(--kv-color-text);flex-direction:column;flex:1 1 0;display:flex}.kvc-artifact-panel{background:var(--kv-color-surface);border-inline-start:1px solid var(--kv-color-border);flex-direction:column;flex:0 0 min(40%,32rem);min-inline-size:0;display:flex;position:relative;container-type:inline-size}.kvc-artifact-panel[data-sized=true]{flex-basis:clamp(20rem, var(--kvc-panel-width), 70%)}.kvc-panel-resizer{z-index:6;cursor:col-resize;touch-action:none;inline-size:8px;position:absolute;inset-block:0;inset-inline-start:-4px}.kvc-panel-resizer:hover,.kvc-panel-resizer:focus-visible,.kvc-panel-resizer[data-dragging=true]{background:color-mix(in srgb, var(--kv-color-primary) 35%, transparent);outline:none}.kvc-artifact-head{align-items:center;gap:var(--kv-space-sm);padding-block:12px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);display:flex}.kvc-artifact-name .kvc-picker{min-inline-size:0}.kvc-artifact-name .kvc-picker>.kvc-button{justify-content:space-between;max-inline-size:100%}.kvc-artifact-name .kvc-picker-label{min-inline-size:0;max-inline-size:none;font-size:15px;font-weight:600}.kvc-artifact-title{font-size:15px;font-weight:600}.kvc-artifact-name{flex-direction:column;flex:1 1 0;gap:2px;min-inline-size:0;display:flex}.kvc-artifact-name>.kvc-muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-tab-icon{display:none}@container (inline-size<=30rem){.kvc-artifact-head{padding-inline:var(--kv-space-md)}.kvc-artifact-actions .kvc-tab{align-items:center;padding-inline:8px;display:flex}.kvc-artifact-actions .kvc-tab-icon{display:block}.kvc-artifact-actions .kvc-tab-text{display:none}}.kvc-artifact-actions{flex:none;align-items:center;gap:6px;margin-inline-start:auto;display:flex}.kvc-button.kvc-icon-button{box-sizing:border-box;flex:none;inline-size:36px;padding-inline:0}.kvc-artifact-body{min-block-size:0;padding-block:var(--kv-space-md);padding-inline:var(--kv-space-lg);flex:auto;overflow:auto}.kvc-artifact-source{font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-artifact-frame{background:#fff;border:0;block-size:100%;inline-size:100%}@container (inline-size<=48rem){.kvc-artifact-panel{z-index:5;inline-size:min(100%,32rem);position:absolute;inset-block:0;inset-inline-end:0;box-shadow:0 12px 32px #00000024}}@container kvc-workspace (inline-size<=48rem){.kvc-panel-resizer{display:none}}.kvc-header{align-items:center;gap:var(--kv-space-sm);padding-block:4px;padding-inline:var(--kv-space-lg);border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-wrap:wrap;flex:auto;align-items:baseline;column-gap:12px;min-inline-size:0;display:flex}.kvc-header-stats{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.kvc-muted{color:var(--kv-color-muted);font-size:12.5px}.kvc-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;padding:3px;display:flex}.kvc-tab{color:var(--kv-color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding-block:4px;padding-inline:12px}.kvc-tab[aria-selected=true],.kvc-tab[aria-pressed=true]{background:var(--kv-color-background);color:var(--kv-color-text);font-weight:500}.kvc-scrollport{flex-direction:column;flex:auto;min-block-size:0;display:flex;position:relative}.kvc-scroll{flex:auto;min-block-size:0;position:relative;overflow-y:auto}.kvc-jump{inline-size:max-content;margin-inline:auto;position:absolute;inset-block-end:12px;inset-inline:0;box-shadow:0 4px 16px #00000029}.kvc-column{box-sizing:border-box;inline-size:100%;max-inline-size:800px;padding:var(--kv-space-md) var(--kv-space-lg);gap:var(--kv-space-md);overflow-wrap:anywhere;flex-direction:column;margin-inline:auto;display:flex}.kvc-user{background:var(--kv-color-background);border-radius:16px;white-space:pre-wrap;border-end-end-radius:4px;align-self:flex-end;max-inline-size:80%;padding-block:10px;padding-inline:14px}.kvc-queued{border:1px dashed var(--kv-color-border);background:0 0}.kvc-answer{gap:var(--kv-space-sm);flex-direction:column;display:flex}.kvc-card{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);overflow:hidden}.kvc-card-row{align-items:center;gap:10px;padding-block:9px;padding-inline:12px;display:flex}.kvc-card-body{border-block-start:1px solid var(--kv-color-border);gap:var(--kv-space-sm);flex-direction:column;padding-block:10px;padding-inline:14px;display:flex}.kvc-lines{text-align:start;flex-direction:column;flex:auto;gap:2px;min-inline-size:0;display:flex}.kvc-failed{border-color:var(--kv-color-danger)}.kvc-mono{font-family:var(--kv-font-mono);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:12.5px}.kvc-card-row>.kvc-muted,.kvc-card-row>.kvc-chip{white-space:nowrap;flex:none}.kvc-card-row>svg{flex:none}.kvc-output{background:var(--kv-color-surface);color:var(--kv-color-text);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-output{max-block-size:none;overflow-y:visible}.kvc-output .kvc-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.kvc-chip{white-space:nowrap;border:1px solid var(--kv-color-border);border-radius:999px;align-items:center;gap:4px;padding-block:2px;padding-inline:8px;font-size:12px;font-weight:500;display:inline-flex}.kvc-ok{color:var(--kv-color-success)}.kvc-warn{color:var(--kv-color-warning)}.kvc-sign-in-failed,.kvc-danger{color:var(--kv-color-danger)}.kvc-notice{align-items:center;gap:var(--kv-space-sm);color:var(--kv-color-muted);font-size:13px;display:flex}.kvc-notice:before,.kvc-notice:after{content:"";background:var(--kv-color-border);flex:auto;block-size:1px}.kvc-ask{border-color:var(--kv-color-warning)}.kvc-option{border:1px solid var(--kv-color-border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.kvc-option:has(input:checked){border-color:var(--kv-color-primary);background:color-mix(in srgb, var(--kv-color-primary) 8%, var(--kv-color-surface))}.kvc-answered-option{color:var(--kv-color-muted);align-items:flex-start;gap:10px;display:flex}.kvc-answered-option[data-chosen=true]{color:var(--kv-color-text);font-weight:500}.kvc-answered-option>svg{flex:none;margin-block-start:3px}.kvc-answered-gap{flex:0 0 16px}.kvc-sr{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.kvc-button{border:1px solid var(--kv-color-border);background:var(--kv-color-surface);min-block-size:36px;color:var(--kv-color-text);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding-inline:14px;font-weight:500;display:inline-flex}a.kvc-button{color:inherit;text-decoration:none}.kvc-button:disabled{opacity:.5;cursor:default}.kvc-primary,.kvc-decide[aria-pressed=true]{background:var(--kv-color-primary);border-color:var(--kv-color-primary);color:var(--kv-color-on-primary)}.kvc-ghost{background:0 0;border-color:#0000}.kvc-actions{gap:var(--kv-space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.kvc-actions>.kvc-button{white-space:nowrap;flex:none}.kvc-composer{z-index:2;background:var(--kv-color-surface);padding-block:12px 18px;padding-inline:var(--kv-space-lg);position:sticky;inset-block-end:0}.kvc-box{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);gap:var(--kv-space-sm);border-radius:16px;flex-direction:column;max-inline-size:760px;margin-inline:auto;padding:10px 12px;display:flex}.kvc-field{box-sizing:border-box;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);inline-size:100%;color:inherit;font:inherit;border-radius:10px;padding-block:8px;padding-inline:12px}.kvc-field:disabled{opacity:.6;cursor:not-allowed}.kvc-box textarea{resize:none;color:inherit;font:inherit;background:0 0;border:0;outline:none;min-block-size:44px}.kvc-start{justify-content:safe center;gap:var(--kv-space-lg);min-height:0;padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.kvc-start-note{text-align:center;margin:0}.kvc-link-button{color:var(--kv-color-primary);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.kvc-start h1{text-align:center;margin:0;font-size:26px;font-weight:600}.kvc-sessions{box-sizing:border-box;border-inline-end:1px solid var(--kv-color-border);flex-direction:column;flex:none;align-self:stretch;gap:2px;max-block-size:100%;inline-size:272px;padding:14px 12px;display:flex;overflow-y:auto}.kvc-session{min-block-size:44px;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding-inline:10px;display:flex}.kvc-session[aria-current=page]{background:color-mix(in srgb, var(--kv-color-primary) 16%, var(--kv-color-surface));font-weight:600}.kvc-session .kvc-muted,.kvc-session .kvc-chip{white-space:nowrap;flex:none}.kvc-session span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.kvc-group{color:var(--kv-color-muted);padding-block:12px 4px;padding-inline:10px;font-size:12px;font-weight:600}.kvc-spin{border:2px solid var(--kv-color-border);border-block-start-color:var(--kv-color-primary);border-radius:50%;flex:none;block-size:14px;inline-size:14px;animation:.9s linear infinite kvc-spin}.kvc-menu{z-index:10;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;min-inline-size:220px;padding:6px;display:flex;position:absolute;inset-block-start:100%;inset-inline-end:0;box-shadow:0 12px 32px #00000024}.kvc-menu button{text-align:start;justify-content:flex-start}.kvc-prompt{padding:var(--kv-space-md);border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.kvc-activity{border:1px solid var(--kv-color-border);border-radius:var(--kv-radius);background:var(--kv-color-background);align-items:center;gap:10px;padding-block:8px;padding-inline:12px;font-size:13.5px;display:flex}.kvc-activity-text{flex-direction:column;flex:auto;gap:6px;min-inline-size:0;display:flex}.kvc-activity-call{flex-direction:column;gap:2px;display:flex}.kvc-oneline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-picker{position:relative}.kvc-picker-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:16rem;overflow:hidden}.kvc-popover{z-index:20;box-sizing:border-box;inline-size:min(26rem, calc(100cqw - 2 * var(--kv-space-lg)));border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;box-shadow:0 12px 32px #00000024}.kvc-choices{inline-size:max-content;min-inline-size:10rem;max-inline-size:min(22rem, calc(100cqw - 2 * var(--kv-space-md)));gap:2px;max-block-size:18rem;overflow-y:auto}.kvc-choices>.kvc-model{flex:none}.kvc-recovery{align-items:center;gap:var(--kv-space-sm);flex-wrap:wrap;display:flex}.kvc-recovery .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-search{border:1px solid var(--kv-color-border);border-radius:10px;align-items:center;gap:8px;padding-inline:10px;display:flex}.kvc-search input{min-inline-size:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:auto;padding-block:8px}.kvc-options{flex-direction:column;max-block-size:18rem;display:flex;overflow-y:auto}.kvc-model{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding-block:7px;padding-inline:10px;display:flex}.kvc-model[data-active=true]{background:var(--kv-color-background)}.kvc-model[aria-selected=true]{font-weight:600}.kvc-model-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kvc-none,.kvc-count{margin:0;padding-inline:10px}@keyframes kvc-spin{to{transform:rotate(360deg)}}.kvc-dot{background:var(--kv-color-success);border-radius:50%;flex:none;block-size:8px;inline-size:8px}.kvc-jobs-panel{max-block-size:70vh;inline-size:min(32rem,100%);inset-inline:auto 0;overflow-y:auto}.kvc-job{border:1px solid var(--kv-color-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.kvc-job-head{justify-content:space-between;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-job-title{flex:auto;min-inline-size:0;font-weight:600}.kvc-job-head>.kvc-muted,.kvc-job-head>.kvc-chip{white-space:nowrap;flex:none}.kvc-job-links{flex-wrap:wrap;gap:4px 12px;display:flex}.kvc-job-links .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-job .kvc-output{background:var(--kv-color-background);border-radius:8px}.kvc-connectors{flex-direction:column;display:flex}.kvc-connectors-state{flex-wrap:wrap;align-items:center;gap:10px;padding-block-end:8px;display:flex}.kvc-text-button{color:var(--kv-color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.kvc-text-button:disabled{opacity:.5;cursor:default}.kvc-connector{border-block-end:1px solid var(--kv-color-border);align-items:center;gap:16px;padding-block:12px;display:flex}.kvc-connector:last-child{border-block-end:0}.kvc-connector-text{flex-direction:column;flex:1;gap:2px;min-inline-size:0;display:flex}.kvc-connector-name{font-size:13.5px;font-weight:600}.kvc-switch{background:var(--kv-color-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;block-size:24px;inline-size:40px;padding:2px;transition:background-color .12s;display:flex}.kvc-switch[aria-checked=true]{background:var(--kv-color-primary)}.kvc-switch:disabled{opacity:.5;cursor:default}.kvc-switch-knob{background:var(--kv-color-surface);border-radius:999px;block-size:20px;inline-size:20px;transition:margin-inline-start .12s}.kvc-switch[aria-checked=true] .kvc-switch-knob{margin-inline-start:16px}.kvc-setting{border-block-end:1px solid var(--kv-color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;padding-block:16px;display:flex}.kvc-setting-text{flex-direction:column;flex:20rem;gap:4px;min-inline-size:15rem;display:flex}.kvc-setting-title{font-weight:600}.kvc-setting-control{flex-direction:column;gap:8px;inline-size:22.5rem;max-inline-size:100%;display:flex}.kvc-setting .kvc-picker>.kvc-button{justify-content:space-between;inline-size:100%}.kvc-setting .kvc-picker-label{max-inline-size:none}.kvc-setting .kvc-popover{inline-size:100%}.kvc-setting .kvc-connectors-state{padding-block-end:0}.kvc-connector-actions{flex:none;align-items:center;gap:8px;display:flex}.kvc-dialog-backdrop{z-index:40;padding:var(--kv-space-md);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.kvc-dialog{box-sizing:border-box;gap:var(--kv-space-sm);inline-size:100%;max-inline-size:44rem;max-block-size:calc(100dvh - 2 * var(--kv-space-md));background:var(--kv-color-surface);color:var(--kv-color-text);padding:var(--kv-space-lg);border-radius:16px;outline:none;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 50px #00000040}.kvc-dialog-head{align-items:flex-start;gap:12px;display:flex}.kvc-dialog-title{font-size:16px;font-weight:600}.kvc-dialog-rows{flex-direction:column;display:flex}.kvc-dialog-rows>.kvc-setting:last-child{border-block-end:0;padding-block-end:0}.kvc-server{align-items:flex-start}.kvc-server-state{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.kvc-server-state[data-status=ready]{color:var(--kv-color-success)}.kvc-server-state[data-status=failed],.kvc-server-state[data-status=signInNeeded]{color:var(--kv-color-warning)}.kvc-server-state[data-status=checking]{color:var(--kv-color-muted)}.kvc-server-reason{overflow-wrap:anywhere;white-space:pre-wrap}.kvc-server-sign-in{align-self:flex-start;margin-block-start:6px}.kvc-sign-in{max-inline-size:32rem;padding:var(--kv-space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-inline:auto;display:flex}.kvc-sign-in-done{color:var(--kv-color-success)}.kvc-sign-in-failed{color:var(--kv-color-danger)}.kvc-danger{background:var(--kv-color-danger);border-color:var(--kv-color-danger);color:var(--kv-color-on-primary)}.kvc-form{gap:var(--kv-space-md);flex-direction:column;padding-block-start:var(--kv-space-sm);display:flex}.kvc-form-field{flex-direction:column;gap:6px;display:flex}.kvc-form-label{padding:0;font-weight:600}.kvc-confirm{border:1px solid var(--kv-color-danger);border-radius:var(--kv-radius);flex-direction:column;gap:8px;padding:12px;display:flex}.kvc-preferences{resize:vertical;min-block-size:6rem;inline-size:100%}.kvc-remember{margin-block-start:4px;display:block}.kvc-fold-body{border-block-start:1px solid var(--kv-color-border);flex-direction:column;gap:6px;padding:6px 8px 8px;display:flex}.kvc-final{border-inline-start:3px solid var(--kv-color-primary);padding-inline-start:12px}.kvc-changes{flex-direction:column;gap:8px;display:flex}.kvc-change-head{text-align:start;flex:auto;align-items:center;gap:8px;min-inline-size:0;display:flex}.kvc-diff>[data-kind=added]{color:var(--kv-color-success,inherit);background:color-mix(in srgb, var(--kv-color-success,green) 12%, transparent)}.kvc-diff>[data-kind=removed]{color:var(--kv-color-danger);background:color-mix(in srgb, var(--kv-color-danger) 12%, transparent)}.kvc-diff>[data-kind=hunk],.kvc-diff>[data-kind=head]{color:var(--kv-color-muted,inherit)}.kvc-picker-icon{flex:none;display:none}.kvc-artifact-name .kvc-picker>.kvc-button{min-block-size:0;padding-block:2px}.kvc-decide{white-space:nowrap}@container kvc-workspace (inline-size<=30rem){.kvc-composer-row .kvc-picker-icon{display:block}.kvc-composer-row .kvc-picker-label{display:none}}.kvc-chats-bar{display:none}@media (width<=60rem){.kvc-sessions{display:none}.kvc-drawer .kvc-sessions{border-inline-end:0;inline-size:100%;display:flex}.kvc-chats-bar{padding-block:4px;padding-inline:var(--kv-space-md);border-block-end:1px solid var(--kv-color-border);display:flex}}.kvc-drawer-backdrop{z-index:40;background:#00000059;position:fixed;inset:0}.kvc-drawer{background:var(--kv-color-surface);inline-size:min(85vw,20rem);position:absolute;inset-block:0;inset-inline-start:0;overflow-y:auto;box-shadow:0 12px 32px #0003}.kvc-rules{flex-direction:column;gap:6px;margin-block-start:8px;display:flex}.kvc-rule{justify-content:space-between;align-items:center;gap:12px;display:flex}.kvc-form-error{color:var(--kv-color-danger);font-size:12.5px}.kvc-form-choice{gap:var(--kv-space-md);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.kvc-form-choice>legend{margin-block-end:6px}.kvc-form-radio{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.kvc-form-value{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:center;gap:8px;display:grid}.kvc-form-set{align-items:center;gap:10px;display:flex}.kvc-form-add{align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.kvc-form textarea.kvc-field{resize:vertical}.kvc-box{position:relative}.kvc-composer-row{align-items:center;gap:8px;display:flex}.kvc-composer-hint{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-inline-size:0;overflow:hidden}.kvc-composer-row .kvc-picker{flex:0 auto;min-inline-size:0}.kvc-composer-row .kvc-picker>.kvc-button{max-inline-size:100%}.kvc-composer-row .kvc-picker-label{min-inline-size:0}.kvc-composer .kvc-popover{inset-block:auto calc(100% + 6px)}.kvc-slash{z-index:20;border:1px solid var(--kv-color-border);background:var(--kv-color-surface);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 32px #00000024}.kvc-slash-row{cursor:pointer;border-radius:8px;align-items:baseline;gap:12px;padding-block:7px;padding-inline:10px;display:flex}.kvc-slash-row[data-active=true]{background:var(--kv-color-background)}.kvc-slash-name{flex:0 0 9rem}.kvc-slash-row .kvc-mono{font-size:13px;font-weight:600}.kvc-call-parts{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;padding-inline:14px}.kvc-summary{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-inline-size:0;font-size:13px;display:flex}.kvc-summary>.kvc-mono{min-inline-size:0}.kvc-block{border-block-start:1px solid var(--kv-color-border);margin:0;padding-block:8px;font-size:13px}.kvc-block:not(.kvc-code-lines){padding-inline:14px}.kvc-code-lines{font-family:var(--kv-font-mono);font-size:12px;line-height:1.55}.kvc-code-line{gap:8px;min-block-size:1.55em;padding-inline:14px;display:flex}.kvc-code-line[data-kind=removed]{background:color-mix(in srgb, var(--kv-color-danger) 14%, transparent)}.kvc-code-line[data-kind=added]{background:color-mix(in srgb, var(--kv-color-success) 14%, transparent)}.kvc-line-number{text-align:end;min-inline-size:3ch;color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:none}.kvc-line-mark{color:var(--kv-color-muted);-webkit-user-select:none;user-select:none;flex:0 0 1ch}.kvc-line-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:auto;min-inline-size:0}.kvc-code-lines .kvc-link,.kvc-fields .kvc-link,.kvc-error .kvc-link{color:var(--kv-color-primary);text-underline-offset:2px;text-decoration:underline}.kvc-prose-lines{font-family:inherit;font-size:13px}.kvc-fold{margin-block-start:6px;margin-inline:14px;display:block}.kvc-output-block{border-block-start:1px solid var(--kv-color-border)}.kvc-output-block>.kvc-fold{margin-block:6px}.kvc-error{color:var(--kv-color-danger);white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.kvc-entries{flex-direction:column;gap:2px;display:flex}.kvc-entry{align-items:center;gap:8px;display:flex}.kvc-entry>.kvc-mono{flex:auto;min-inline-size:0}.kvc-file-path{padding-block-end:4px;font-weight:600}.kvc-block>.kvc-code-lines>.kvc-code-line{padding-inline:0}.kvc-block>.kvc-code-lines>.kvc-fold{margin-inline:0}.kvc-fields{grid-template-columns:minmax(6rem,max-content) minmax(0,1fr);gap:4px 12px;margin:0;display:grid}.kvc-field-row{display:contents}.kvc-steps{gap:6px;padding-inline-start:0;list-style:none;display:grid}.kvc-step-arguments{padding-block-start:2px;padding-inline-start:1.5rem}.kvc-field-row>dt{font-family:var(--kv-font-mono);font-size:12px}.kvc-field-row>dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.kvc-field-block>.kvc-code-line,.kvc-field-block>.kvc-fold{margin-inline:0;padding-inline:0}.kvc-field-table{overflow-x:auto}.kvc-field-table table{border-collapse:collapse;font-size:12.5px}.kvc-field-table th,.kvc-field-table td{text-align:start;vertical-align:top;padding-block:3px;padding-inline:0 14px}.kvc-field-table th{color:var(--kv-color-muted);font-weight:500;font-family:var(--kv-font-mono);font-size:12px}.kvc-field-items{flex-direction:column;gap:2px;display:flex}.kvc-approval{border-block-start:1px solid var(--kv-color-border)}.kvc-approval>.kvc-actions{padding-block-start:0}.kvc-always>.kvc-link-button{margin-inline-end:auto}.kvc-reason,.kvc-always{flex-wrap:wrap;align-items:center;padding-block-start:0}.kvc-reason>textarea{flex:16rem}.kvc-always>input{flex:0 14rem;min-inline-size:8rem}.kvc-run-row{align-items:baseline;gap:10px;display:flex}.kvc-run-row>.kvc-run-call{flex:auto;min-inline-size:0}.kvc-run-row>.kvc-chip,.kvc-run-row>.kvc-muted{white-space:nowrap;flex:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .kvc-flip{transform:scaleX(-1)}.kvc-slash-row[aria-disabled=true]{opacity:.55;cursor:default}.kvc-button:focus-visible,.kvc-text-button:focus-visible,.kvc-link-button:focus-visible,.kvc-session:focus-visible,.kvc-switch:focus-visible,.kvc-chip-remove:focus-visible{outline:2px solid var(--kv-color-primary);outline-offset:2px}.kvc-box:focus-within,.kvc-search:focus-within{outline:2px solid var(--kv-color-primary);outline-offset:1px}.kvc-chip-remove{min-block-size:20px;padding:0}@media (pointer:coarse){.kvc-button{min-block-size:44px}.kvc-button.kvc-icon-button{inline-size:44px}.kvc-text-button,.kvc-link-button{align-items:center;min-block-size:44px;display:inline-flex}.kvc-chip-remove{min-block-size:44px;min-inline-size:44px}.kvc-switch{position:relative}.kvc-switch:after{content:"";position:absolute;inset-block:-10px;inset-inline:-2px}}
2
+ /*$vite$:1*/