@kvman/kvcoder 0.1.0

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 (409) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/api.d.ts +386 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +2 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/artifacts/artifact-format.d.ts +9 -0
  8. package/dist/artifacts/artifact-format.d.ts.map +1 -0
  9. package/dist/artifacts/artifact-format.js +32 -0
  10. package/dist/artifacts/artifact-format.js.map +1 -0
  11. package/dist/artifacts/artifact-records.d.ts +12 -0
  12. package/dist/artifacts/artifact-records.d.ts.map +1 -0
  13. package/dist/artifacts/artifact-records.js +17 -0
  14. package/dist/artifacts/artifact-records.js.map +1 -0
  15. package/dist/artifacts/register-artifacts.d.ts +3 -0
  16. package/dist/artifacts/register-artifacts.d.ts.map +1 -0
  17. package/dist/artifacts/register-artifacts.js +37 -0
  18. package/dist/artifacts/register-artifacts.js.map +1 -0
  19. package/dist/calls/binary-checks.d.ts +8 -0
  20. package/dist/calls/binary-checks.d.ts.map +1 -0
  21. package/dist/calls/binary-checks.js +12 -0
  22. package/dist/calls/binary-checks.js.map +1 -0
  23. package/dist/calls/connector-help.d.ts +3 -0
  24. package/dist/calls/connector-help.d.ts.map +1 -0
  25. package/dist/calls/connector-help.js +73 -0
  26. package/dist/calls/connector-help.js.map +1 -0
  27. package/dist/calls/help-text.d.ts +19 -0
  28. package/dist/calls/help-text.d.ts.map +1 -0
  29. package/dist/calls/help-text.js +22 -0
  30. package/dist/calls/help-text.js.map +1 -0
  31. package/dist/calls/line-run.d.ts +33 -0
  32. package/dist/calls/line-run.d.ts.map +1 -0
  33. package/dist/calls/line-run.js +56 -0
  34. package/dist/calls/line-run.js.map +1 -0
  35. package/dist/calls/run-shell.d.ts +12 -0
  36. package/dist/calls/run-shell.d.ts.map +1 -0
  37. package/dist/calls/run-shell.js +88 -0
  38. package/dist/calls/run-shell.js.map +1 -0
  39. package/dist/calls/run-tool.d.ts +49 -0
  40. package/dist/calls/run-tool.d.ts.map +1 -0
  41. package/dist/calls/run-tool.js +66 -0
  42. package/dist/calls/run-tool.js.map +1 -0
  43. package/dist/calls/shell-command.d.ts +25 -0
  44. package/dist/calls/shell-command.d.ts.map +1 -0
  45. package/dist/calls/shell-command.js +31 -0
  46. package/dist/calls/shell-command.js.map +1 -0
  47. package/dist/calls/shell-program.d.ts +5 -0
  48. package/dist/calls/shell-program.d.ts.map +1 -0
  49. package/dist/calls/shell-program.js +8 -0
  50. package/dist/calls/shell-program.js.map +1 -0
  51. package/dist/connector-call.d.ts +66 -0
  52. package/dist/connector-call.d.ts.map +1 -0
  53. package/dist/connector-call.js +133 -0
  54. package/dist/connector-call.js.map +1 -0
  55. package/dist/connectors/artifact.d.ts +51 -0
  56. package/dist/connectors/artifact.d.ts.map +1 -0
  57. package/dist/connectors/artifact.js +101 -0
  58. package/dist/connectors/artifact.js.map +1 -0
  59. package/dist/connectors/ask.d.ts +58 -0
  60. package/dist/connectors/ask.d.ts.map +1 -0
  61. package/dist/connectors/ask.js +85 -0
  62. package/dist/connectors/ask.js.map +1 -0
  63. package/dist/connectors/background.d.ts +29 -0
  64. package/dist/connectors/background.d.ts.map +1 -0
  65. package/dist/connectors/background.js +56 -0
  66. package/dist/connectors/background.js.map +1 -0
  67. package/dist/connectors/binary.d.ts +5 -0
  68. package/dist/connectors/binary.d.ts.map +1 -0
  69. package/dist/connectors/binary.js +27 -0
  70. package/dist/connectors/binary.js.map +1 -0
  71. package/dist/connectors/builtin-connectors.d.ts +217 -0
  72. package/dist/connectors/builtin-connectors.d.ts.map +1 -0
  73. package/dist/connectors/builtin-connectors.js +49 -0
  74. package/dist/connectors/builtin-connectors.js.map +1 -0
  75. package/dist/connectors/connector-command.d.ts +26 -0
  76. package/dist/connectors/connector-command.d.ts.map +1 -0
  77. package/dist/connectors/connector-command.js +17 -0
  78. package/dist/connectors/connector-command.js.map +1 -0
  79. package/dist/connectors/delegate.d.ts +32 -0
  80. package/dist/connectors/delegate.d.ts.map +1 -0
  81. package/dist/connectors/delegate.js +82 -0
  82. package/dist/connectors/delegate.js.map +1 -0
  83. package/dist/connectors/fs.d.ts +60 -0
  84. package/dist/connectors/fs.d.ts.map +1 -0
  85. package/dist/connectors/fs.js +132 -0
  86. package/dist/connectors/fs.js.map +1 -0
  87. package/dist/connectors/mcp.d.ts +37 -0
  88. package/dist/connectors/mcp.d.ts.map +1 -0
  89. package/dist/connectors/mcp.js +69 -0
  90. package/dist/connectors/mcp.js.map +1 -0
  91. package/dist/connectors/payload-fields.d.ts +9 -0
  92. package/dist/connectors/payload-fields.d.ts.map +1 -0
  93. package/dist/connectors/payload-fields.js +13 -0
  94. package/dist/connectors/payload-fields.js.map +1 -0
  95. package/dist/connectors/shell.d.ts +19 -0
  96. package/dist/connectors/shell.d.ts.map +1 -0
  97. package/dist/connectors/shell.js +22 -0
  98. package/dist/connectors/shell.js.map +1 -0
  99. package/dist/delay.d.ts +3 -0
  100. package/dist/delay.d.ts.map +1 -0
  101. package/dist/delay.js +11 -0
  102. package/dist/delay.js.map +1 -0
  103. package/dist/delegate/approved-run.d.ts +13 -0
  104. package/dist/delegate/approved-run.d.ts.map +1 -0
  105. package/dist/delegate/approved-run.js +54 -0
  106. package/dist/delegate/approved-run.js.map +1 -0
  107. package/dist/delegate/programs.d.ts +32 -0
  108. package/dist/delegate/programs.d.ts.map +1 -0
  109. package/dist/delegate/programs.js +67 -0
  110. package/dist/delegate/programs.js.map +1 -0
  111. package/dist/delegate/register-worker-run.d.ts +9 -0
  112. package/dist/delegate/register-worker-run.d.ts.map +1 -0
  113. package/dist/delegate/register-worker-run.js +70 -0
  114. package/dist/delegate/register-worker-run.js.map +1 -0
  115. package/dist/delegate/run-program.d.ts +9 -0
  116. package/dist/delegate/run-program.d.ts.map +1 -0
  117. package/dist/delegate/run-program.js +59 -0
  118. package/dist/delegate/run-program.js.map +1 -0
  119. package/dist/delegate/runs.d.ts +27 -0
  120. package/dist/delegate/runs.d.ts.map +1 -0
  121. package/dist/delegate/runs.js +68 -0
  122. package/dist/delegate/runs.js.map +1 -0
  123. package/dist/delegate/workers.d.ts +266 -0
  124. package/dist/delegate/workers.d.ts.map +1 -0
  125. package/dist/delegate/workers.js +80 -0
  126. package/dist/delegate/workers.js.map +1 -0
  127. package/dist/docs.d.ts +14 -0
  128. package/dist/docs.d.ts.map +1 -0
  129. package/dist/docs.js +59 -0
  130. package/dist/docs.js.map +1 -0
  131. package/dist/files/edit-text.d.ts +13 -0
  132. package/dist/files/edit-text.d.ts.map +1 -0
  133. package/dist/files/edit-text.js +46 -0
  134. package/dist/files/edit-text.js.map +1 -0
  135. package/dist/files/file-queue.d.ts +3 -0
  136. package/dist/files/file-queue.d.ts.map +1 -0
  137. package/dist/files/file-queue.js +17 -0
  138. package/dist/files/file-queue.js.map +1 -0
  139. package/dist/files/list-entries.d.ts +14 -0
  140. package/dist/files/list-entries.d.ts.map +1 -0
  141. package/dist/files/list-entries.js +40 -0
  142. package/dist/files/list-entries.js.map +1 -0
  143. package/dist/files/read-file.d.ts +17 -0
  144. package/dist/files/read-file.d.ts.map +1 -0
  145. package/dist/files/read-file.js +53 -0
  146. package/dist/files/read-file.js.map +1 -0
  147. package/dist/files/search-text.d.ts +14 -0
  148. package/dist/files/search-text.d.ts.map +1 -0
  149. package/dist/files/search-text.js +62 -0
  150. package/dist/files/search-text.js.map +1 -0
  151. package/dist/files/workspace-path.d.ts +5 -0
  152. package/dist/files/workspace-path.d.ts.map +1 -0
  153. package/dist/files/workspace-path.js +37 -0
  154. package/dist/files/workspace-path.js.map +1 -0
  155. package/dist/index.d.ts +6 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +68 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/jobs/job-rows.d.ts +24 -0
  160. package/dist/jobs/job-rows.d.ts.map +1 -0
  161. package/dist/jobs/job-rows.js +74 -0
  162. package/dist/jobs/job-rows.js.map +1 -0
  163. package/dist/jobs/process-handlers.d.ts +8 -0
  164. package/dist/jobs/process-handlers.d.ts.map +1 -0
  165. package/dist/jobs/process-handlers.js +43 -0
  166. package/dist/jobs/process-handlers.js.map +1 -0
  167. package/dist/jobs/process-records.d.ts +15 -0
  168. package/dist/jobs/process-records.d.ts.map +1 -0
  169. package/dist/jobs/process-records.js +30 -0
  170. package/dist/jobs/process-records.js.map +1 -0
  171. package/dist/jobs/process-report.d.ts +8 -0
  172. package/dist/jobs/process-report.d.ts.map +1 -0
  173. package/dist/jobs/process-report.js +44 -0
  174. package/dist/jobs/process-report.js.map +1 -0
  175. package/dist/jobs/process-run.d.ts +26 -0
  176. package/dist/jobs/process-run.d.ts.map +1 -0
  177. package/dist/jobs/process-run.js +70 -0
  178. package/dist/jobs/process-run.js.map +1 -0
  179. package/dist/jobs/process-text.d.ts +5 -0
  180. package/dist/jobs/process-text.d.ts.map +1 -0
  181. package/dist/jobs/process-text.js +11 -0
  182. package/dist/jobs/process-text.js.map +1 -0
  183. package/dist/jobs/register-jobs.d.ts +3 -0
  184. package/dist/jobs/register-jobs.d.ts.map +1 -0
  185. package/dist/jobs/register-jobs.js +61 -0
  186. package/dist/jobs/register-jobs.js.map +1 -0
  187. package/dist/mcp/command-transport.d.ts +17 -0
  188. package/dist/mcp/command-transport.d.ts.map +1 -0
  189. package/dist/mcp/command-transport.js +60 -0
  190. package/dist/mcp/command-transport.js.map +1 -0
  191. package/dist/mcp/connect.d.ts +12 -0
  192. package/dist/mcp/connect.d.ts.map +1 -0
  193. package/dist/mcp/connect.js +54 -0
  194. package/dist/mcp/connect.js.map +1 -0
  195. package/dist/mcp/oauth-provider.d.ts +25 -0
  196. package/dist/mcp/oauth-provider.d.ts.map +1 -0
  197. package/dist/mcp/oauth-provider.js +59 -0
  198. package/dist/mcp/oauth-provider.js.map +1 -0
  199. package/dist/mcp/register-mcp.d.ts +3 -0
  200. package/dist/mcp/register-mcp.d.ts.map +1 -0
  201. package/dist/mcp/register-mcp.js +61 -0
  202. package/dist/mcp/register-mcp.js.map +1 -0
  203. package/dist/mcp/secrets.d.ts +7 -0
  204. package/dist/mcp/secrets.d.ts.map +1 -0
  205. package/dist/mcp/secrets.js +20 -0
  206. package/dist/mcp/secrets.js.map +1 -0
  207. package/dist/mcp/servers.d.ts +33 -0
  208. package/dist/mcp/servers.d.ts.map +1 -0
  209. package/dist/mcp/servers.js +31 -0
  210. package/dist/mcp/servers.js.map +1 -0
  211. package/dist/mcp/sign-in-record.d.ts +10 -0
  212. package/dist/mcp/sign-in-record.d.ts.map +1 -0
  213. package/dist/mcp/sign-in-record.js +4 -0
  214. package/dist/mcp/sign-in-record.js.map +1 -0
  215. package/dist/mcp/sign-in.d.ts +12 -0
  216. package/dist/mcp/sign-in.d.ts.map +1 -0
  217. package/dist/mcp/sign-in.js +75 -0
  218. package/dist/mcp/sign-in.js.map +1 -0
  219. package/dist/mcp/tools.d.ts +19 -0
  220. package/dist/mcp/tools.d.ts.map +1 -0
  221. package/dist/mcp/tools.js +31 -0
  222. package/dist/mcp/tools.js.map +1 -0
  223. package/dist/messages/attachments.d.ts +8 -0
  224. package/dist/messages/attachments.d.ts.map +1 -0
  225. package/dist/messages/attachments.js +48 -0
  226. package/dist/messages/attachments.js.map +1 -0
  227. package/dist/messages/receive-message.d.ts +15 -0
  228. package/dist/messages/receive-message.d.ts.map +1 -0
  229. package/dist/messages/receive-message.js +60 -0
  230. package/dist/messages/receive-message.js.map +1 -0
  231. package/dist/messages/register-messages.d.ts +3 -0
  232. package/dist/messages/register-messages.d.ts.map +1 -0
  233. package/dist/messages/register-messages.js +63 -0
  234. package/dist/messages/register-messages.js.map +1 -0
  235. package/dist/problems.d.ts +8 -0
  236. package/dist/problems.d.ts.map +1 -0
  237. package/dist/problems.js +14 -0
  238. package/dist/problems.js.map +1 -0
  239. package/dist/prompt/build-prompt.d.ts +29 -0
  240. package/dist/prompt/build-prompt.d.ts.map +1 -0
  241. package/dist/prompt/build-prompt.js +60 -0
  242. package/dist/prompt/build-prompt.js.map +1 -0
  243. package/dist/prompt/register-prompt.d.ts +3 -0
  244. package/dist/prompt/register-prompt.d.ts.map +1 -0
  245. package/dist/prompt/register-prompt.js +29 -0
  246. package/dist/prompt/register-prompt.js.map +1 -0
  247. package/dist/prompt/session-prompt.d.ts +24 -0
  248. package/dist/prompt/session-prompt.d.ts.map +1 -0
  249. package/dist/prompt/session-prompt.js +50 -0
  250. package/dist/prompt/session-prompt.js.map +1 -0
  251. package/dist/prompt/working-method.d.ts +7 -0
  252. package/dist/prompt/working-method.d.ts.map +1 -0
  253. package/dist/prompt/working-method.js +51 -0
  254. package/dist/prompt/working-method.js.map +1 -0
  255. package/dist/register-settings.d.ts +142 -0
  256. package/dist/register-settings.d.ts.map +1 -0
  257. package/dist/register-settings.js +51 -0
  258. package/dist/register-settings.js.map +1 -0
  259. package/dist/registry/loaded.d.ts +32 -0
  260. package/dist/registry/loaded.d.ts.map +1 -0
  261. package/dist/registry/loaded.js +41 -0
  262. package/dist/registry/loaded.js.map +1 -0
  263. package/dist/registry/register-connectors.d.ts +32 -0
  264. package/dist/registry/register-connectors.d.ts.map +1 -0
  265. package/dist/registry/register-connectors.js +126 -0
  266. package/dist/registry/register-connectors.js.map +1 -0
  267. package/dist/registry/register-sections.d.ts +18 -0
  268. package/dist/registry/register-sections.d.ts.map +1 -0
  269. package/dist/registry/register-sections.js +99 -0
  270. package/dist/registry/register-sections.js.map +1 -0
  271. package/dist/registry/session-points.d.ts +11 -0
  272. package/dist/registry/session-points.d.ts.map +1 -0
  273. package/dist/registry/session-points.js +89 -0
  274. package/dist/registry/session-points.js.map +1 -0
  275. package/dist/result-text.d.ts +11 -0
  276. package/dist/result-text.d.ts.map +1 -0
  277. package/dist/result-text.js +21 -0
  278. package/dist/result-text.js.map +1 -0
  279. package/dist/schemas/records.d.ts +357 -0
  280. package/dist/schemas/records.d.ts.map +1 -0
  281. package/dist/schemas/records.js +159 -0
  282. package/dist/schemas/records.js.map +1 -0
  283. package/dist/schemas/registry.d.ts +160 -0
  284. package/dist/schemas/registry.d.ts.map +1 -0
  285. package/dist/schemas/registry.js +37 -0
  286. package/dist/schemas/registry.js.map +1 -0
  287. package/dist/sessions/new-session.d.ts +6 -0
  288. package/dist/sessions/new-session.d.ts.map +1 -0
  289. package/dist/sessions/new-session.js +52 -0
  290. package/dist/sessions/new-session.js.map +1 -0
  291. package/dist/sessions/register-fork-export.d.ts +5 -0
  292. package/dist/sessions/register-fork-export.d.ts.map +1 -0
  293. package/dist/sessions/register-fork-export.js +62 -0
  294. package/dist/sessions/register-fork-export.js.map +1 -0
  295. package/dist/sessions/register-lifecycle.d.ts +3 -0
  296. package/dist/sessions/register-lifecycle.d.ts.map +1 -0
  297. package/dist/sessions/register-lifecycle.js +59 -0
  298. package/dist/sessions/register-lifecycle.js.map +1 -0
  299. package/dist/sessions/register-sessions.d.ts +3 -0
  300. package/dist/sessions/register-sessions.d.ts.map +1 -0
  301. package/dist/sessions/register-sessions.js +93 -0
  302. package/dist/sessions/register-sessions.js.map +1 -0
  303. package/dist/sessions/session-lookup.d.ts +10 -0
  304. package/dist/sessions/session-lookup.d.ts.map +1 -0
  305. package/dist/sessions/session-lookup.js +25 -0
  306. package/dist/sessions/session-lookup.js.map +1 -0
  307. package/dist/sessions/session-view.d.ts +118 -0
  308. package/dist/sessions/session-view.d.ts.map +1 -0
  309. package/dist/sessions/session-view.js +105 -0
  310. package/dist/sessions/session-view.js.map +1 -0
  311. package/dist/store/collections.d.ts +471 -0
  312. package/dist/store/collections.d.ts.map +1 -0
  313. package/dist/store/collections.js +46 -0
  314. package/dist/store/collections.js.map +1 -0
  315. package/dist/turns/background.d.ts +6 -0
  316. package/dist/turns/background.d.ts.map +1 -0
  317. package/dist/turns/background.js +27 -0
  318. package/dist/turns/background.js.map +1 -0
  319. package/dist/turns/cancel-turn.d.ts +3 -0
  320. package/dist/turns/cancel-turn.d.ts.map +1 -0
  321. package/dist/turns/cancel-turn.js +31 -0
  322. package/dist/turns/cancel-turn.js.map +1 -0
  323. package/dist/turns/compaction.d.ts +12 -0
  324. package/dist/turns/compaction.d.ts.map +1 -0
  325. package/dist/turns/compaction.js +55 -0
  326. package/dist/turns/compaction.js.map +1 -0
  327. package/dist/turns/end-turn.d.ts +15 -0
  328. package/dist/turns/end-turn.d.ts.map +1 -0
  329. package/dist/turns/end-turn.js +67 -0
  330. package/dist/turns/end-turn.js.map +1 -0
  331. package/dist/turns/history.d.ts +28 -0
  332. package/dist/turns/history.d.ts.map +1 -0
  333. package/dist/turns/history.js +47 -0
  334. package/dist/turns/history.js.map +1 -0
  335. package/dist/turns/lost-reply.d.ts +31 -0
  336. package/dist/turns/lost-reply.d.ts.map +1 -0
  337. package/dist/turns/lost-reply.js +43 -0
  338. package/dist/turns/lost-reply.js.map +1 -0
  339. package/dist/turns/message-blocks.d.ts +9 -0
  340. package/dist/turns/message-blocks.d.ts.map +1 -0
  341. package/dist/turns/message-blocks.js +25 -0
  342. package/dist/turns/message-blocks.js.map +1 -0
  343. package/dist/turns/model-context.d.ts +81 -0
  344. package/dist/turns/model-context.d.ts.map +1 -0
  345. package/dist/turns/model-context.js +46 -0
  346. package/dist/turns/model-context.js.map +1 -0
  347. package/dist/turns/model-info.d.ts +7 -0
  348. package/dist/turns/model-info.d.ts.map +1 -0
  349. package/dist/turns/model-info.js +10 -0
  350. package/dist/turns/model-info.js.map +1 -0
  351. package/dist/turns/model-retry.d.ts +3 -0
  352. package/dist/turns/model-retry.d.ts.map +1 -0
  353. package/dist/turns/model-retry.js +23 -0
  354. package/dist/turns/model-retry.js.map +1 -0
  355. package/dist/turns/register-interruptions.d.ts +3 -0
  356. package/dist/turns/register-interruptions.d.ts.map +1 -0
  357. package/dist/turns/register-interruptions.js +31 -0
  358. package/dist/turns/register-interruptions.js.map +1 -0
  359. package/dist/turns/register-turns.d.ts +3 -0
  360. package/dist/turns/register-turns.d.ts.map +1 -0
  361. package/dist/turns/register-turns.js +66 -0
  362. package/dist/turns/register-turns.js.map +1 -0
  363. package/dist/turns/resolve.d.ts +7 -0
  364. package/dist/turns/resolve.d.ts.map +1 -0
  365. package/dist/turns/resolve.js +29 -0
  366. package/dist/turns/resolve.js.map +1 -0
  367. package/dist/turns/run-calls.d.ts +34 -0
  368. package/dist/turns/run-calls.d.ts.map +1 -0
  369. package/dist/turns/run-calls.js +99 -0
  370. package/dist/turns/run-calls.js.map +1 -0
  371. package/dist/turns/run-command.d.ts +26 -0
  372. package/dist/turns/run-command.d.ts.map +1 -0
  373. package/dist/turns/run-command.js +118 -0
  374. package/dist/turns/run-command.js.map +1 -0
  375. package/dist/turns/settle-calls.d.ts +17 -0
  376. package/dist/turns/settle-calls.d.ts.map +1 -0
  377. package/dist/turns/settle-calls.js +98 -0
  378. package/dist/turns/settle-calls.js.map +1 -0
  379. package/dist/turns/start-turn.d.ts +87 -0
  380. package/dist/turns/start-turn.d.ts.map +1 -0
  381. package/dist/turns/start-turn.js +40 -0
  382. package/dist/turns/start-turn.js.map +1 -0
  383. package/dist/turns/step.d.ts +8 -0
  384. package/dist/turns/step.d.ts.map +1 -0
  385. package/dist/turns/step.js +168 -0
  386. package/dist/turns/step.js.map +1 -0
  387. package/dist/ui/register-ui.d.ts +3 -0
  388. package/dist/ui/register-ui.d.ts.map +1 -0
  389. package/dist/ui/register-ui.js +75 -0
  390. package/dist/ui/register-ui.js.map +1 -0
  391. package/dist/web/components/call.css +2 -0
  392. package/dist/web/components/call.js +386 -0
  393. package/dist/web/components/connectors.css +2 -0
  394. package/dist/web/components/connectors.js +2403 -0
  395. package/dist/web/components/conversation.css +2 -0
  396. package/dist/web/components/conversation.js +4319 -0
  397. package/dist/web/components/mcp-sign-in.css +2 -0
  398. package/dist/web/components/mcp-sign-in.js +265 -0
  399. package/dist/web/components/model.css +2 -0
  400. package/dist/web/components/model.js +545 -0
  401. package/dist/web/components/question.css +2 -0
  402. package/dist/web/components/question.js +321 -0
  403. package/dist/web/components/sessions.css +2 -0
  404. package/dist/web/components/sessions.js +264 -0
  405. package/docs/connectors.md +86 -0
  406. package/docs/sections.md +27 -0
  407. package/locales/ar.json +418 -0
  408. package/locales/en.json +418 -0
  409. package/package.json +70 -0
@@ -0,0 +1,321 @@
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, h as c, inject as l, normalizeClass as u, openBlock as d, ref as f, renderList as p, toDisplayString as m, vModelText as h, withDirectives as g, withKeys as _, withModifiers as v } from "vue";
2
+ //#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
3
+ var y = {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 24,
6
+ height: 24,
7
+ viewBox: "0 0 24 24",
8
+ fill: "none",
9
+ stroke: "currentColor",
10
+ "stroke-width": 2,
11
+ "stroke-linecap": "round",
12
+ "stroke-linejoin": "round"
13
+ }, b = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim();
14
+ //#endregion
15
+ //#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
16
+ function x(e) {
17
+ return e != null;
18
+ }
19
+ function S(e, t = {}) {
20
+ let n = t.attributeNames ?? {}, r = (e) => n[e] ?? e, i = e.size ?? e.width ?? y.width, a = e.size ?? e.height ?? y.height, o = e.aliases?.filter((e) => typeof e == "string" && e.trim() !== "").map((e) => `lucide-${e}`) ?? [], s = [...e.name ? [`lucide-${e.name}`] : [], ...o], c = t.className?.split(" ").filter(Boolean) ?? [], l = t.includeDefaultClasses === !1 ? b(...c) : b("lucide", ...s, ...c), u = t.absoluteStrokeWidth ? Number(t.strokeWidth ?? y["stroke-width"]) * Number(e.size ?? e.width ?? y.width) / Number(t.size ?? t.width ?? y.width) : t.strokeWidth ?? y["stroke-width"];
21
+ return [
22
+ "svg",
23
+ {
24
+ ...Object.entries(y).reduce((e, [t, n]) => (e[r(t)] = n, e), {}),
25
+ ..."color" in t && t.color && { [r("stroke")]: t.color },
26
+ ..."size" in t && x(t.size) && {
27
+ [r("width")]: t.size,
28
+ [r("height")]: t.size
29
+ },
30
+ ..."width" in t && x(t.width) && { [r("width")]: t.width },
31
+ ..."height" in t && x(t.height) && { [r("height")]: t.height },
32
+ [r("stroke-width")]: u,
33
+ ...l && { [r("class")]: l },
34
+ [r("viewBox")]: `0 0 ${i} ${a}`,
35
+ ...t.hasA11yProp === !1 ? { [r("aria-hidden")]: "true" } : {},
36
+ ..."attributes" in t && t.attributes
37
+ },
38
+ e.node.map((e) => {
39
+ let [n, i, a] = e, o = t.nonScalingStroke ? {
40
+ [r("vector-effect")]: "non-scaling-stroke",
41
+ ...i
42
+ } : i;
43
+ return a ? [
44
+ n,
45
+ o,
46
+ a
47
+ ] : [n, o];
48
+ })
49
+ ];
50
+ }
51
+ //#endregion
52
+ //#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/hasA11yProp.mjs
53
+ var C = (e) => {
54
+ for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
55
+ return !1;
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 l(E, {});
59
+ }
60
+ //#endregion
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 O = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
63
+ name: e && T(e),
64
+ node: t ?? n ?? [],
65
+ size: 24,
66
+ aliases: []
67
+ }, absoluteStrokeWidth: i, "absolute-stroke-width": a, nonScalingStroke: o, "non-scaling-stroke": s, strokeWidth: l, "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: 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
+ delete h.class;
70
+ let A = g.default?.(), [, j, M = []] = S(r, {
71
+ color: m ?? v,
72
+ width: f ?? d ?? _,
73
+ height: p ?? d ?? _,
74
+ strokeWidth: l ?? u ?? y,
75
+ absoluteStrokeWidth: O,
76
+ nonScalingStroke: k,
77
+ className: E,
78
+ hasA11yProp: A != null && A.length > 0 || C(h),
79
+ attributes: h
80
+ });
81
+ return c("svg", j, [...M.map(([e, t]) => c(e, t)), ...A ?? []]);
82
+ };
83
+ //#endregion
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 k(e, t = []) {
86
+ let n = typeof e == "string" ? {
87
+ name: e,
88
+ node: t
89
+ } : e;
90
+ return (e, { slots: t }) => c(O, {
91
+ ...e,
92
+ icon: n
93
+ }, t.default ? { default: t.default } : void 0);
94
+ }
95
+ var A = k({
96
+ name: "circle-question-mark",
97
+ size: 24,
98
+ node: [
99
+ ["circle", {
100
+ cx: "12",
101
+ cy: "12",
102
+ r: "10",
103
+ key: "1mglay"
104
+ }],
105
+ ["path", {
106
+ d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",
107
+ key: "1u773s"
108
+ }],
109
+ ["path", {
110
+ d: "M12 17h.01",
111
+ key: "p32p05"
112
+ }]
113
+ ],
114
+ aliases: ["help-circle", "circle-help"]
115
+ });
116
+ //#endregion
117
+ //#region web/src/kvman.ts
118
+ function j() {
119
+ let e = l("kvman");
120
+ if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
121
+ return e;
122
+ }
123
+ function M(e) {
124
+ return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
125
+ }
126
+ //#endregion
127
+ //#region web/src/question-options.ts
128
+ function N(e) {
129
+ return (Array.isArray(e.options) ? e.options : []).map((e) => {
130
+ let t = M(e);
131
+ return {
132
+ id: String(t.id),
133
+ label: String(t.label),
134
+ ...typeof t.description == "string" ? { description: t.description } : {}
135
+ };
136
+ });
137
+ }
138
+ //#endregion
139
+ //#region web/src/QuestionCard.vue?vue&type=script&setup=true&lang.ts
140
+ var P = /*@__PURE__*/ s({
141
+ __name: "QuestionCard",
142
+ props: {
143
+ questionId: {
144
+ type: String,
145
+ required: !0
146
+ },
147
+ question: {
148
+ type: Object,
149
+ required: !0
150
+ }
151
+ },
152
+ emits: ["answer"],
153
+ setup(e, { expose: n, emit: r }) {
154
+ n();
155
+ let i = e, a = r, o = j(), s = t(() => String(i.question.kind ?? "text")), c = t(() => String(i.question.prompt ?? "")), l = t(() => N(i.question)), u = t(() => i.question.multiple === !0), d = t(() => i.question.other === !0), p = f(""), m = f([]), h = f("");
156
+ function g(e) {
157
+ a("answer", {
158
+ questionId: i.questionId,
159
+ answer: e
160
+ });
161
+ }
162
+ function _(e) {
163
+ m.value = u.value ? m.value.includes(e) ? m.value.filter((t) => t !== e) : [...m.value, e] : [e], u.value || (h.value = "");
164
+ }
165
+ function v() {
166
+ let e = h.value.trim();
167
+ g({
168
+ selected: e !== "" && !u.value ? [] : m.value,
169
+ ...e === "" ? {} : { other: e }
170
+ });
171
+ }
172
+ let y = {
173
+ props: i,
174
+ emit: a,
175
+ kvman: o,
176
+ kind: s,
177
+ prompt: c,
178
+ options: l,
179
+ multiple: u,
180
+ offersOther: d,
181
+ text: p,
182
+ selected: m,
183
+ other: h,
184
+ send: g,
185
+ choose: _,
186
+ answerChoice: v,
187
+ get CircleHelp() {
188
+ return A;
189
+ }
190
+ };
191
+ return Object.defineProperty(y, "__isScriptSetup", {
192
+ enumerable: !1,
193
+ value: !0
194
+ }), y;
195
+ }
196
+ }), F = (e, t) => {
197
+ let n = e.__vccOpts || e;
198
+ for (let [e, r] of t) n[e] = r;
199
+ return n;
200
+ }, I = ["aria-label"], L = {
201
+ class: "kvc-card-row",
202
+ style: { "font-weight": "600" }
203
+ }, R = { dir: "auto" }, z = { class: "kvc-card-body" }, B = ["placeholder", "aria-label"], V = { class: "kvc-actions" }, H = ["data-test"], U = [
204
+ "type",
205
+ "checked",
206
+ "name",
207
+ "onChange"
208
+ ], W = { style: {
209
+ display: "flex",
210
+ "flex-direction": "column"
211
+ } }, G = { style: { "font-weight": "500" } }, K = {
212
+ key: 0,
213
+ class: "kvc-muted"
214
+ }, q = ["placeholder", "aria-label"], J = { class: "kvc-actions" }, Y = ["disabled"], X = {
215
+ key: 2,
216
+ class: "kvc-actions"
217
+ };
218
+ function Z(t, n, s, c, l, f) {
219
+ return d(), i("section", {
220
+ class: "kvc-card kvc-ask",
221
+ "data-test": "question-card",
222
+ "aria-label": c.prompt
223
+ }, [a("div", L, [o(c.CircleHelp, {
224
+ size: 18,
225
+ "aria-hidden": "true"
226
+ }), a("span", R, m(c.prompt), 1)]), a("div", z, [c.kind === "text" ? (d(), i(e, { key: 0 }, [g(a("input", {
227
+ "onUpdate:modelValue": n[0] ||= (e) => c.text = e,
228
+ class: "kvc-field",
229
+ dir: "auto",
230
+ placeholder: String(c.props.question.placeholder ?? ""),
231
+ "aria-label": c.prompt,
232
+ "data-test": "answer-text",
233
+ onKeydown: n[1] ||= _(v((e) => c.send({ text: c.text }), ["prevent"]), ["enter"])
234
+ }, null, 40, B), [[h, c.text]]), a("div", V, [a("button", {
235
+ type: "button",
236
+ class: "kvc-button",
237
+ "data-test": "skip",
238
+ onClick: n[2] ||= (e) => c.send({ dismissed: !0 })
239
+ }, m(c.kvman.t("kvcoder.ui.skip")), 1), a("button", {
240
+ type: "button",
241
+ class: "kvc-button kvc-primary",
242
+ "data-test": "answer",
243
+ onClick: n[3] ||= (e) => c.send({ text: c.text })
244
+ }, m(c.kvman.t("kvcoder.ui.answer")), 1)])], 64)) : c.kind === "choice" ? (d(), i(e, { key: 1 }, [
245
+ (d(!0), i(e, null, p(c.options, (e) => (d(), i("label", {
246
+ key: e.id,
247
+ class: "kvc-option",
248
+ "data-test": `option-${e.id}`
249
+ }, [a("input", {
250
+ type: c.multiple ? "checkbox" : "radio",
251
+ checked: c.selected.includes(e.id),
252
+ name: c.props.questionId,
253
+ onChange: (t) => c.choose(e.id)
254
+ }, null, 40, U), a("span", W, [a("span", G, m(e.label), 1), e.description ? (d(), i("span", K, m(e.description), 1)) : r("v-if", !0)])], 8, H))), 128)),
255
+ c.offersOther ? g((d(), i("input", {
256
+ key: 0,
257
+ "onUpdate:modelValue": n[4] ||= (e) => c.other = e,
258
+ class: "kvc-field",
259
+ placeholder: c.kvman.t("kvcoder.ui.other"),
260
+ "aria-label": c.kvman.t("kvcoder.ui.other"),
261
+ "data-test": "answer-other"
262
+ }, null, 8, q)), [[h, c.other]]) : r("v-if", !0),
263
+ a("div", J, [a("button", {
264
+ type: "button",
265
+ class: "kvc-button",
266
+ "data-test": "skip",
267
+ onClick: n[5] ||= (e) => c.send({ dismissed: !0 })
268
+ }, m(c.kvman.t("kvcoder.ui.skip")), 1), a("button", {
269
+ type: "button",
270
+ class: "kvc-button kvc-primary",
271
+ disabled: c.selected.length === 0 && c.other.trim() === "",
272
+ "data-test": "answer",
273
+ onClick: c.answerChoice
274
+ }, m(c.kvman.t("kvcoder.ui.answer")), 9, Y)])
275
+ ], 64)) : (d(), i("div", X, [a("button", {
276
+ type: "button",
277
+ class: "kvc-button",
278
+ "data-test": "answer-no",
279
+ onClick: n[6] ||= (e) => c.send({ confirmed: !1 })
280
+ }, m(c.kvman.t("kvcoder.ui.no")), 1), a("button", {
281
+ type: "button",
282
+ class: u(["kvc-button kvc-primary", { "kvc-danger": c.props.question.danger === !0 }]),
283
+ "data-test": "answer-yes",
284
+ onClick: n[7] ||= (e) => c.send({ confirmed: !0 })
285
+ }, m(c.kvman.t("kvcoder.ui.yes")), 3)]))])], 8, I);
286
+ }
287
+ var Q = /*#__PURE__*/ F(P, [["render", Z], ["__file", "/home/runner/work/kvman/kvman/extensions/kvcoder/web/src/QuestionCard.vue"]]), $ = /*@__PURE__*/ s({
288
+ __name: "question",
289
+ props: {
290
+ questionId: {
291
+ type: String,
292
+ required: !0
293
+ },
294
+ question: {
295
+ type: Object,
296
+ required: !0
297
+ }
298
+ },
299
+ setup(e, { expose: t }) {
300
+ t();
301
+ let n = {
302
+ props: e,
303
+ QuestionCard: Q
304
+ };
305
+ return Object.defineProperty(n, "__isScriptSetup", {
306
+ enumerable: !1,
307
+ value: !0
308
+ }), n;
309
+ }
310
+ });
311
+ //#endregion
312
+ //#region web/components/question.vue
313
+ function ee(e, t, r, i, a, o) {
314
+ return d(), n(i.QuestionCard, {
315
+ "question-id": i.props.questionId,
316
+ question: i.props.question
317
+ }, null, 8, ["question-id", "question"]);
318
+ }
319
+ var te = /*#__PURE__*/ F($, [["render", ee], ["__file", "/home/runner/work/kvman/kvman/extensions/kvcoder/web/components/question.vue"]]);
320
+ //#endregion
321
+ export { te 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-type: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;container-type:inline-size}.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-tabs{border:1px solid var(--kv-color-border);border-radius:10px;gap:2px;min-inline-size:0;padding:3px;display:flex;overflow-x:auto}.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}}.kvc-header{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);flex-wrap:wrap;display:flex;position:relative}.kvc-title{flex-direction:column;flex:auto;min-inline-size:0;display:flex}.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;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);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-output{color:#e6e8ec;font-family:var(--kv-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#15171b;max-block-size:320px;margin:0;padding:10px 14px;font-size:12px;overflow-y:auto}.kvc-output+.kvc-output{border-block-start:1px solid #2c3037}.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{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-composer{padding-block:12px 18px;padding-inline:var(--kv-space-lg)}.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:center;gap:var(--kv-space-lg);padding:var(--kv-space-lg);flex-direction:column;flex:auto;display:flex}.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:var(--kv-color-background);font-weight:500}.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-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{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-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}: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}
2
+ /*$vite$:1*/
@@ -0,0 +1,264 @@
1
+ import { Fragment as e, computed as t, createBlock as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, h as c, inject as l, onUnmounted as u, openBlock as d, renderList as f, shallowRef as p, toDisplayString as m, watch as h } from "vue";
2
+ //#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
3
+ var g = {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: 24,
6
+ height: 24,
7
+ viewBox: "0 0 24 24",
8
+ fill: "none",
9
+ stroke: "currentColor",
10
+ "stroke-width": 2,
11
+ "stroke-linecap": "round",
12
+ "stroke-linejoin": "round"
13
+ }, _ = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim();
14
+ //#endregion
15
+ //#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
16
+ function v(e) {
17
+ return e != null;
18
+ }
19
+ function y(e, t = {}) {
20
+ let n = t.attributeNames ?? {}, r = (e) => n[e] ?? e, i = e.size ?? e.width ?? g.width, a = e.size ?? e.height ?? g.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 ? _(...c) : _("lucide", ...s, ...c), u = t.absoluteStrokeWidth ? Number(t.strokeWidth ?? g["stroke-width"]) * Number(e.size ?? e.width ?? g.width) / Number(t.size ?? t.width ?? g.width) : t.strokeWidth ?? g["stroke-width"];
21
+ return [
22
+ "svg",
23
+ {
24
+ ...Object.entries(g).reduce((e, [t, n]) => (e[r(t)] = n, e), {}),
25
+ ..."color" in t && t.color && { [r("stroke")]: t.color },
26
+ ..."size" in t && v(t.size) && {
27
+ [r("width")]: t.size,
28
+ [r("height")]: t.size
29
+ },
30
+ ..."width" in t && v(t.width) && { [r("width")]: t.width },
31
+ ..."height" in t && v(t.height) && { [r("height")]: t.height },
32
+ [r("stroke-width")]: u,
33
+ ...l && { [r("class")]: l },
34
+ [r("viewBox")]: `0 0 ${i} ${a}`,
35
+ ...t.hasA11yProp === !1 ? { [r("aria-hidden")]: "true" } : {},
36
+ ..."attributes" in t && t.attributes
37
+ },
38
+ e.node.map((e) => {
39
+ let [n, i, a] = e, o = t.nonScalingStroke ? {
40
+ [r("vector-effect")]: "non-scaling-stroke",
41
+ ...i
42
+ } : i;
43
+ return a ? [
44
+ n,
45
+ o,
46
+ a
47
+ ] : [n, o];
48
+ })
49
+ ];
50
+ }
51
+ //#endregion
52
+ //#region ../../node_modules/.pnpm/@lucide+vue@1.49.0_vue@3.5.43_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/shared/src/utils/hasA11yProp.mjs
53
+ var b = (e) => {
54
+ for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
55
+ return !1;
56
+ }, x = (e) => e === "", S = (e) => e?.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), C = /* @__PURE__ */ Symbol("lucide-icons");
57
+ function w() {
58
+ return l(C, {});
59
+ }
60
+ //#endregion
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 T = ({ name: e, iconNode: t, "icon-node": n, icon: r = {
63
+ name: e && S(e),
64
+ node: t ?? n ?? [],
65
+ size: 24,
66
+ aliases: []
67
+ }, absoluteStrokeWidth: i, "absolute-stroke-width": a, nonScalingStroke: o, "non-scaling-stroke": s, strokeWidth: l, "stroke-width": u, size: d, width: f = d, height: p = d, color: m, ...h }, { slots: g }) => {
68
+ let { size: _, color: v, strokeWidth: C = 2, absoluteStrokeWidth: T = !1, nonScalingStroke: E = !1, class: D = "" } = w(), O = x(i) || x(a) || i === !0 || a === !0 || T === !0, k = x(o) || x(s) || o === !0 || s === !0 || E === !0;
69
+ delete h.class;
70
+ let A = g.default?.(), [, j, M = []] = y(r, {
71
+ color: m ?? v,
72
+ width: f ?? d ?? _,
73
+ height: p ?? d ?? _,
74
+ strokeWidth: l ?? u ?? C,
75
+ absoluteStrokeWidth: O,
76
+ nonScalingStroke: k,
77
+ className: D,
78
+ hasA11yProp: A != null && A.length > 0 || b(h),
79
+ attributes: h
80
+ });
81
+ return c("svg", j, [...M.map(([e, t]) => c(e, t)), ...A ?? []]);
82
+ };
83
+ //#endregion
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 = []) {
86
+ let n = typeof e == "string" ? {
87
+ name: e,
88
+ node: t
89
+ } : e;
90
+ return (e, { slots: t }) => c(T, {
91
+ ...e,
92
+ icon: n
93
+ }, t.default ? { default: t.default } : void 0);
94
+ }
95
+ var D = E({
96
+ name: "plus",
97
+ size: 24,
98
+ node: [["path", {
99
+ d: "M5 12h14",
100
+ key: "1ays0h"
101
+ }], ["path", {
102
+ d: "M12 5v14",
103
+ key: "s699le"
104
+ }]]
105
+ });
106
+ //#endregion
107
+ //#region web/src/kvman.ts
108
+ function O() {
109
+ let e = l("kvman");
110
+ if (e === void 0) throw Error("kvcoder components run inside kvwebui, which provides kvman.");
111
+ return e;
112
+ }
113
+ var k = () => document.documentElement.lang === "" ? void 0 : document.documentElement.lang;
114
+ function A(e) {
115
+ return typeof e == "object" && e && !Array.isArray(e) ? Object.fromEntries(Object.entries(e)) : {};
116
+ }
117
+ function j(e, t) {
118
+ return t === "" ? e("kvcoder.ui.newChat") : t;
119
+ }
120
+ function M(e) {
121
+ let t = e.indexOf("/");
122
+ return t < 0 ? `kernel.errors.${e}` : `${e.slice(0, t)}.errors.${e.slice(t + 1)}`;
123
+ }
124
+ function N(e) {
125
+ if (!(e instanceof Error) || !("problem" in e)) return;
126
+ let t = e.problem;
127
+ if (typeof t == "object" && t && "code" in t && typeof t.code == "string") return {
128
+ code: t.code,
129
+ params: P("params" in t ? t.params : void 0)
130
+ };
131
+ }
132
+ function P(e) {
133
+ return Object.fromEntries(Object.entries(A(e)).map(([e, t]) => [e, typeof t == "string" ? t : JSON.stringify(t)]));
134
+ }
135
+ function F(e, t) {
136
+ let n = N(t);
137
+ e.toast(n === void 0 ? "kvcoder.ui.failed" : M(n.code), n?.params ?? {}, "error");
138
+ }
139
+ //#endregion
140
+ //#region web/src/SessionList.vue?vue&type=script&setup=true&lang.ts
141
+ var I = /*@__PURE__*/ s({
142
+ __name: "SessionList",
143
+ props: { sessionId: {
144
+ type: null,
145
+ required: !1
146
+ } },
147
+ setup(e, { expose: n }) {
148
+ n();
149
+ let r = e, i = O(), a = p([]);
150
+ async function o() {
151
+ try {
152
+ a.value = await i.exec("kvcoder.session.list", { limit: 200 });
153
+ } catch (e) {
154
+ F(i, e);
155
+ }
156
+ }
157
+ let s = () => new Date((/* @__PURE__ */ new Date()).toDateString()).getTime(), c = t(() => {
158
+ let e = s();
159
+ return [{
160
+ key: "today",
161
+ items: a.value.filter((t) => Date.parse(t.updatedAt) >= e)
162
+ }, {
163
+ key: "earlier",
164
+ items: a.value.filter((t) => Date.parse(t.updatedAt) < e)
165
+ }].filter((e) => e.items.length > 0);
166
+ }), l = (e) => {
167
+ let t = new Date(e.updatedAt);
168
+ return t.getTime() >= s() ? t.toLocaleTimeString(k(), {
169
+ hour: "2-digit",
170
+ minute: "2-digit"
171
+ }) : t.toLocaleDateString(k(), {
172
+ month: "short",
173
+ day: "numeric"
174
+ });
175
+ }, d = setInterval(() => void o(), 5e3);
176
+ u(() => clearInterval(d)), h([() => r.sessionId, () => i.workspace.value.id], () => void o(), { immediate: !0 });
177
+ let f = {
178
+ props: r,
179
+ kvman: i,
180
+ sessions: a,
181
+ load: o,
182
+ startOfToday: s,
183
+ groups: c,
184
+ when: l,
185
+ timer: d,
186
+ get Plus() {
187
+ return D;
188
+ },
189
+ get titleText() {
190
+ return j;
191
+ }
192
+ };
193
+ return Object.defineProperty(f, "__isScriptSetup", {
194
+ enumerable: !1,
195
+ value: !0
196
+ }), f;
197
+ }
198
+ }), L = (e, t) => {
199
+ let n = e.__vccOpts || e;
200
+ for (let [e, r] of t) n[e] = r;
201
+ return n;
202
+ }, R = ["aria-label"], z = { class: "kvc-group" }, B = [
203
+ "aria-current",
204
+ "data-test",
205
+ "onClick"
206
+ ], V = ["aria-label"], H = {
207
+ key: 1,
208
+ class: "kvc-chip kvc-warn",
209
+ "data-test": "needs-you"
210
+ }, U = {
211
+ key: 2,
212
+ class: "kvc-muted"
213
+ };
214
+ function W(t, n, s, c, l, u) {
215
+ return d(), r("nav", {
216
+ class: "kvc-sessions",
217
+ "aria-label": c.kvman.t("kvcoder.ui.chats"),
218
+ "data-test": "sessions"
219
+ }, [i("button", {
220
+ type: "button",
221
+ class: "kvc-button kvc-primary",
222
+ style: { "margin-block-end": "6px" },
223
+ "data-test": "new-chat",
224
+ onClick: n[0] ||= (e) => c.kvman.navigate("kvcoder.chat")
225
+ }, [o(c.Plus, { size: 16 }), a(m(c.kvman.t("kvcoder.ui.newChat")), 1)]), (d(!0), r(e, null, f(c.groups, (t) => (d(), r(e, { key: t.key }, [i("span", z, m(c.kvman.t(`kvcoder.ui.${t.key}`)), 1), (d(!0), r(e, null, f(t.items, (e) => (d(), r("button", {
226
+ key: e.id,
227
+ type: "button",
228
+ class: "kvc-session",
229
+ "aria-current": e.id === c.props.sessionId ? "page" : void 0,
230
+ "data-test": `session-${e.id}`,
231
+ onClick: (t) => c.kvman.navigate("kvcoder.session", { sessionId: e.id })
232
+ }, [i("span", null, m(c.titleText(c.kvman.t, e.title)), 1), e.status === "running" ? (d(), r("span", {
233
+ key: 0,
234
+ class: "kvc-spin",
235
+ "aria-label": c.kvman.t("kvcoder.ui.status.running"),
236
+ "data-test": "running"
237
+ }, null, 8, V)) : e.status === "waiting" ? (d(), r("span", H, m(c.kvman.t("kvcoder.ui.needsYou")), 1)) : (d(), r("span", U, m(c.when(e)), 1))], 8, B))), 128))], 64))), 128))], 8, R);
238
+ }
239
+ var G = /*#__PURE__*/ L(I, [["render", W], ["__file", "/home/runner/work/kvman/kvman/extensions/kvcoder/web/src/SessionList.vue"]]), K = /*@__PURE__*/ s({
240
+ __name: "sessions",
241
+ props: { sessionId: {
242
+ type: String,
243
+ required: !1
244
+ } },
245
+ setup(e, { expose: t }) {
246
+ t();
247
+ let n = {
248
+ props: e,
249
+ SessionList: G
250
+ };
251
+ return Object.defineProperty(n, "__isScriptSetup", {
252
+ enumerable: !1,
253
+ value: !0
254
+ }), n;
255
+ }
256
+ });
257
+ //#endregion
258
+ //#region web/components/sessions.vue
259
+ function q(e, t, r, i, a, o) {
260
+ return d(), n(i.SessionList, { "session-id": i.props.sessionId }, null, 8, ["session-id"]);
261
+ }
262
+ var J = /*#__PURE__*/ L(K, [["render", q], ["__file", "/home/runner/work/kvman/kvman/extensions/kvcoder/web/components/sessions.vue"]]);
263
+ //#endregion
264
+ export { J as default };