@zythum02/fello-server 0.1.53 → 0.1.55

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 (443) hide show
  1. package/out/renderer/assets/{_baseUniq-CJr3HkLS.js → _baseUniq-BdLqGxOi.js} +1 -1
  2. package/out/renderer/assets/_baseUniq-BdLqGxOi.js.br +0 -0
  3. package/out/renderer/assets/_baseUniq-BdLqGxOi.js.gz +0 -0
  4. package/out/renderer/assets/{arc-POsBroTF.js → arc-UpL8po5R.js} +1 -1
  5. package/out/renderer/assets/arc-UpL8po5R.js.br +0 -0
  6. package/out/renderer/assets/arc-UpL8po5R.js.gz +0 -0
  7. package/out/renderer/assets/{architectureDiagram-Q4EWVU46-CmToUhDb.js → architectureDiagram-Q4EWVU46-ManEkEbl.js} +6 -6
  8. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ManEkEbl.js.br +0 -0
  9. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ManEkEbl.js.gz +0 -0
  10. package/out/renderer/assets/arrow-left-BnuWerui.js +14 -0
  11. package/out/renderer/assets/arrow-up-quD46bYg.js +36 -0
  12. package/out/renderer/assets/{automation-Cyz3eLWp.js → automation-cVl19jbl.js} +22 -9
  13. package/out/renderer/assets/automation-cVl19jbl.js.br +0 -0
  14. package/out/renderer/assets/automation-cVl19jbl.js.gz +0 -0
  15. package/out/renderer/assets/{blockDiagram-DXYQGD6D-M2nnTg9f.js → blockDiagram-DXYQGD6D-B7n8X8F6.js} +7 -7
  16. package/out/renderer/assets/blockDiagram-DXYQGD6D-B7n8X8F6.js.br +0 -0
  17. package/out/renderer/assets/blockDiagram-DXYQGD6D-B7n8X8F6.js.gz +0 -0
  18. package/out/renderer/assets/{c4Diagram-AHTNJAMY-CwLtsy_0.js → c4Diagram-AHTNJAMY-BoP_JNY0.js} +3 -3
  19. package/out/renderer/assets/c4Diagram-AHTNJAMY-BoP_JNY0.js.br +0 -0
  20. package/out/renderer/assets/c4Diagram-AHTNJAMY-BoP_JNY0.js.gz +0 -0
  21. package/out/renderer/assets/{channel-BUNDMqpH.js → channel-BTAU8ahK.js} +1 -1
  22. package/out/renderer/assets/{chunk-4BX2VUAB-B2qXmkDT.js → chunk-4BX2VUAB-BCKz1EgZ.js} +1 -1
  23. package/out/renderer/assets/{chunk-4TB4RGXK-DXLZpPY5.js → chunk-4TB4RGXK-B2HhnMqB.js} +5 -5
  24. package/out/renderer/assets/chunk-4TB4RGXK-B2HhnMqB.js.br +0 -0
  25. package/out/renderer/assets/chunk-4TB4RGXK-B2HhnMqB.js.gz +0 -0
  26. package/out/renderer/assets/{chunk-55IACEB6-CJeyefxI.js → chunk-55IACEB6-Drurz_4k.js} +1 -1
  27. package/out/renderer/assets/{chunk-EDXVE4YY-CNjJEQfY.js → chunk-EDXVE4YY-Xfghcg7b.js} +1 -1
  28. package/out/renderer/assets/chunk-EDXVE4YY-Xfghcg7b.js.br +0 -0
  29. package/out/renderer/assets/chunk-EDXVE4YY-Xfghcg7b.js.gz +0 -0
  30. package/out/renderer/assets/{chunk-FMBD7UC4-DOAOsjRu.js → chunk-FMBD7UC4-Birgz8kz.js} +1 -1
  31. package/out/renderer/assets/{chunk-OYMX7WX6-BG4B1VQ7.js → chunk-OYMX7WX6-Cv4jgShd.js} +3 -3
  32. package/out/renderer/assets/chunk-OYMX7WX6-Cv4jgShd.js.br +0 -0
  33. package/out/renderer/assets/chunk-OYMX7WX6-Cv4jgShd.js.gz +0 -0
  34. package/out/renderer/assets/{chunk-QZHKN3VN-B9zfXYIQ.js → chunk-QZHKN3VN-DkqKjktH.js} +1 -1
  35. package/out/renderer/assets/{chunk-YZCP3GAM-jeoI2tsD.js → chunk-YZCP3GAM-CJK_tBTq.js} +1 -1
  36. package/out/renderer/assets/chunk-YZCP3GAM-CJK_tBTq.js.br +0 -0
  37. package/out/renderer/assets/chunk-YZCP3GAM-CJK_tBTq.js.gz +0 -0
  38. package/out/renderer/assets/circle-x-C9_Yp0Tg.js +16 -0
  39. package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-DWPFF3Yt.js → classDiagram-6PBFFD2Q-Bf4To0VI.js} +7 -7
  40. package/out/renderer/assets/{classDiagram-6PBFFD2Q-DWPFF3Yt.js → classDiagram-v2-HSJHXN6E-Bf4To0VI.js} +7 -7
  41. package/out/renderer/assets/{clone-Dcvr9oKv.js → clone-Ci5J50Pn.js} +1 -1
  42. package/out/renderer/assets/{code-editor-CEXlC4aV.js → code-editor-BwPwET3m.js} +2 -2
  43. package/out/renderer/assets/code-editor-BwPwET3m.js.br +0 -0
  44. package/out/renderer/assets/code-editor-BwPwET3m.js.gz +0 -0
  45. package/out/renderer/assets/{collapsible-CMuCJUWG.js → collapsible-CMQ8h8ID.js} +43 -53
  46. package/out/renderer/assets/collapsible-CMQ8h8ID.js.br +0 -0
  47. package/out/renderer/assets/collapsible-CMQ8h8ID.js.gz +0 -0
  48. package/out/renderer/assets/command-nKlwdb6i.js +19 -0
  49. package/out/renderer/assets/comment-ui-runtime-BsK8pmUT-C8f5Wrup.js +53 -0
  50. package/out/renderer/assets/comment-ui-runtime-BsK8pmUT-C8f5Wrup.js.br +0 -0
  51. package/out/renderer/assets/comment-ui-runtime-BsK8pmUT-C8f5Wrup.js.gz +0 -0
  52. package/out/renderer/assets/{cose-bilkent-S5V4N54A-B3bgImVS.js → cose-bilkent-S5V4N54A-BZpcn2q9.js} +2 -2
  53. package/out/renderer/assets/cose-bilkent-S5V4N54A-BZpcn2q9.js.br +0 -0
  54. package/out/renderer/assets/cose-bilkent-S5V4N54A-BZpcn2q9.js.gz +0 -0
  55. package/out/renderer/assets/{dagre-KV5264BT-DTbumBA_.js → dagre-KV5264BT-onHZodsn.js} +7 -7
  56. package/out/renderer/assets/dagre-KV5264BT-onHZodsn.js.br +0 -0
  57. package/out/renderer/assets/dagre-KV5264BT-onHZodsn.js.gz +0 -0
  58. package/out/renderer/assets/delimited-text-worker-host-BVY-Ecni-D1eBZLWW.js +25 -0
  59. package/out/renderer/assets/delimited-text-worker-host-BVY-Ecni-D1eBZLWW.js.br +0 -0
  60. package/out/renderer/assets/delimited-text-worker-host-BVY-Ecni-D1eBZLWW.js.gz +0 -0
  61. package/out/renderer/assets/{diagram-5BDNPKRD-B34Y6e8q.js → diagram-5BDNPKRD-y3QVYwp7.js} +7 -7
  62. package/out/renderer/assets/diagram-5BDNPKRD-y3QVYwp7.js.br +0 -0
  63. package/out/renderer/assets/diagram-5BDNPKRD-y3QVYwp7.js.gz +0 -0
  64. package/out/renderer/assets/{diagram-G4DWMVQ6-BBiBmFR4.js → diagram-G4DWMVQ6-LB3RUjrJ.js} +7 -7
  65. package/out/renderer/assets/diagram-G4DWMVQ6-LB3RUjrJ.js.br +0 -0
  66. package/out/renderer/assets/diagram-G4DWMVQ6-LB3RUjrJ.js.gz +0 -0
  67. package/out/renderer/assets/{diagram-MMDJMWI5-P-YslDjG.js → diagram-MMDJMWI5-7NpY26IL.js} +6 -6
  68. package/out/renderer/assets/diagram-MMDJMWI5-7NpY26IL.js.br +0 -0
  69. package/out/renderer/assets/diagram-MMDJMWI5-7NpY26IL.js.gz +0 -0
  70. package/out/renderer/assets/{diagram-TYMM5635-D_cLard_.js → diagram-TYMM5635-DRM1RRr4.js} +6 -6
  71. package/out/renderer/assets/diagram-TYMM5635-DRM1RRr4.js.br +0 -0
  72. package/out/renderer/assets/diagram-TYMM5635-DRM1RRr4.js.gz +0 -0
  73. package/out/renderer/assets/docx_parser_bg-C1Wf3n7F.wasm +0 -0
  74. package/out/renderer/assets/ellipsis-D_eCkauJ.js +16 -0
  75. package/out/renderer/assets/{erDiagram-SMLLAGMA-C1MHqKvC.js → erDiagram-SMLLAGMA-DNIZ639C.js} +5 -5
  76. package/out/renderer/assets/erDiagram-SMLLAGMA-DNIZ639C.js.br +0 -0
  77. package/out/renderer/assets/erDiagram-SMLLAGMA-DNIZ639C.js.gz +0 -0
  78. package/out/renderer/assets/{field-DR3J0r9e.js → field-YZTi9Jxc.js} +1 -1
  79. package/out/renderer/assets/field-YZTi9Jxc.js.br +0 -0
  80. package/out/renderer/assets/field-YZTi9Jxc.js.gz +0 -0
  81. package/out/renderer/assets/file-text-DDtS1g4Q.js +23 -0
  82. package/out/renderer/assets/{flowDiagram-DWJPFMVM-DprlEc3Z.js → flowDiagram-DWJPFMVM-C0ghMibN.js} +7 -7
  83. package/out/renderer/assets/flowDiagram-DWJPFMVM-C0ghMibN.js.br +0 -0
  84. package/out/renderer/assets/flowDiagram-DWJPFMVM-C0ghMibN.js.gz +0 -0
  85. package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-CbTdumBm.js → ganttDiagram-T4ZO3ILL-tqeHqMu4.js} +3 -3
  86. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-tqeHqMu4.js.br +0 -0
  87. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-tqeHqMu4.js.gz +0 -0
  88. package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-06bme-w8.js → gitGraphDiagram-UUTBAWPF-D6acFhfE.js} +7 -7
  89. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D6acFhfE.js.br +0 -0
  90. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D6acFhfE.js.gz +0 -0
  91. package/out/renderer/assets/{graph-BZhxluo9.js → graph-DqFGMaSz.js} +2 -2
  92. package/out/renderer/assets/graph-DqFGMaSz.js.br +0 -0
  93. package/out/renderer/assets/graph-DqFGMaSz.js.gz +0 -0
  94. package/out/renderer/assets/highlighted-body-KPVGNVTW-D2IZ7Enb.js +18 -0
  95. package/out/renderer/assets/index-BZTYKZe8.css +382 -0
  96. package/out/renderer/assets/index-BZTYKZe8.css.br +0 -0
  97. package/out/renderer/assets/index-BZTYKZe8.css.gz +0 -0
  98. package/out/renderer/assets/{index-LmYTNvdF.js → index-BeEZXfJZ.js} +6397 -3000
  99. package/out/renderer/assets/index-BeEZXfJZ.js.br +0 -0
  100. package/out/renderer/assets/index-BeEZXfJZ.js.gz +0 -0
  101. package/out/renderer/assets/{infoDiagram-42DDH7IO-DqivEzWL.js → infoDiagram-42DDH7IO-BJeydI3V.js} +5 -5
  102. package/out/renderer/assets/infoDiagram-42DDH7IO-BJeydI3V.js.br +0 -0
  103. package/out/renderer/assets/infoDiagram-42DDH7IO-BJeydI3V.js.gz +0 -0
  104. package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-BKcg_z4w.js → ishikawaDiagram-UXIWVN3A-DPgToD8D.js} +2 -2
  105. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-DPgToD8D.js.br +0 -0
  106. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-DPgToD8D.js.gz +0 -0
  107. package/out/renderer/assets/{item-BHEUMM9H.js → item-SQsw2AyN.js} +20 -2
  108. package/out/renderer/assets/item-SQsw2AyN.js.br +0 -0
  109. package/out/renderer/assets/item-SQsw2AyN.js.gz +0 -0
  110. package/out/renderer/assets/{journeyDiagram-VCZTEJTY-Bvv8xuxQ.js → journeyDiagram-VCZTEJTY-CAnZXd__.js} +5 -5
  111. package/out/renderer/assets/journeyDiagram-VCZTEJTY-CAnZXd__.js.br +0 -0
  112. package/out/renderer/assets/journeyDiagram-VCZTEJTY-CAnZXd__.js.gz +0 -0
  113. package/out/renderer/assets/{kanban-definition-6JOO6SKY-C-gRMpeM.js → kanban-definition-6JOO6SKY-VCfgwCTi.js} +3 -3
  114. package/out/renderer/assets/kanban-definition-6JOO6SKY-VCfgwCTi.js.br +0 -0
  115. package/out/renderer/assets/kanban-definition-6JOO6SKY-VCfgwCTi.js.gz +0 -0
  116. package/out/renderer/assets/{layout-B4dSyItA.js → layout-lw2KhCMB.js} +4 -4
  117. package/out/renderer/assets/layout-lw2KhCMB.js.br +0 -0
  118. package/out/renderer/assets/layout-lw2KhCMB.js.gz +0 -0
  119. package/out/renderer/assets/{linear-CoVhuer7.js → linear-DmbMR7a-.js} +1 -1
  120. package/out/renderer/assets/linear-DmbMR7a-.js.br +0 -0
  121. package/out/renderer/assets/linear-DmbMR7a-.js.gz +0 -0
  122. package/out/renderer/assets/link-2-CWpGKoWR.js +40 -0
  123. package/out/renderer/assets/link-2-CWpGKoWR.js.br +0 -0
  124. package/out/renderer/assets/link-2-CWpGKoWR.js.gz +0 -0
  125. package/out/renderer/assets/{mermaid-GHXKKRXX-CZqkhGx7.js → mermaid-HWGCJPDP-BufLuIVq.js} +2175 -1421
  126. package/out/renderer/assets/mermaid-HWGCJPDP-BufLuIVq.js.br +0 -0
  127. package/out/renderer/assets/mermaid-HWGCJPDP-BufLuIVq.js.gz +0 -0
  128. package/out/renderer/assets/mic-UZHvCQhw.js +32 -0
  129. package/out/renderer/assets/{min-emzuJjmk.js → min-BCqStlR1.js} +2 -2
  130. package/out/renderer/assets/min-BCqStlR1.js.br +0 -0
  131. package/out/renderer/assets/min-BCqStlR1.js.gz +0 -0
  132. package/out/renderer/assets/{mindmap-definition-QFDTVHPH-DQ4JNECm.js → mindmap-definition-QFDTVHPH-C0dBO3f9.js} +4 -4
  133. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C0dBO3f9.js.br +0 -0
  134. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C0dBO3f9.js.gz +0 -0
  135. package/out/renderer/assets/open-guide-CWoE2W97.js +25 -0
  136. package/out/renderer/assets/package-search-SZPcR_1L.js +24 -0
  137. package/out/renderer/assets/{pdf-worker-wrapper-D6dv_dnM.js → pdf-worker-wrapper-BhxTGpd_.js} +4272 -4031
  138. package/out/renderer/assets/pdf-worker-wrapper-BhxTGpd_.js.br +0 -0
  139. package/out/renderer/assets/pdf-worker-wrapper-BhxTGpd_.js.gz +0 -0
  140. package/out/renderer/assets/{pieDiagram-DEJITSTG-0H6CGQQt.js → pieDiagram-DEJITSTG-Dv_tH6Z_.js} +7 -7
  141. package/out/renderer/assets/pieDiagram-DEJITSTG-Dv_tH6Z_.js.br +0 -0
  142. package/out/renderer/assets/pieDiagram-DEJITSTG-Dv_tH6Z_.js.gz +0 -0
  143. package/out/renderer/assets/plus-BZ0wwKkh.js +14 -0
  144. package/out/renderer/assets/pptx_parser_bg-DWVXsmNT.wasm +0 -0
  145. package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-D0aPKp5z.js → quadrantDiagram-34T5L4WZ-Cvsj5cyu.js} +3 -3
  146. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-Cvsj5cyu.js.br +0 -0
  147. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-Cvsj5cyu.js.gz +0 -0
  148. package/out/renderer/assets/render-worker-CeK_iqK3-CEdVqR_f.js +10 -0
  149. package/out/renderer/assets/render-worker-CeK_iqK3-CEdVqR_f.js.br +0 -0
  150. package/out/renderer/assets/render-worker-CeK_iqK3-CEdVqR_f.js.gz +0 -0
  151. package/out/renderer/assets/render-worker-DusrDhPk-5_1DCyiC.js +11 -0
  152. package/out/renderer/assets/render-worker-DusrDhPk-5_1DCyiC.js.br +0 -0
  153. package/out/renderer/assets/render-worker-DusrDhPk-5_1DCyiC.js.gz +0 -0
  154. package/out/renderer/assets/render-worker-host-BfbnEChF-eMcx2LD6.js +7 -0
  155. package/out/renderer/assets/render-worker-host-DNL9dWRh-0PvDWYen.js +7 -0
  156. package/out/renderer/assets/render-worker-host-IkHrYOci-Bq59hMNS.js +7 -0
  157. package/out/renderer/assets/render-worker-n2ZG0lrQ-wiQeYL70.js +31 -0
  158. package/out/renderer/assets/render-worker-n2ZG0lrQ-wiQeYL70.js.br +0 -0
  159. package/out/renderer/assets/render-worker-n2ZG0lrQ-wiQeYL70.js.gz +0 -0
  160. package/out/renderer/assets/{requirementDiagram-MS252O5E-BkzwapW_.js → requirementDiagram-MS252O5E-CxM7H308.js} +4 -4
  161. package/out/renderer/assets/requirementDiagram-MS252O5E-CxM7H308.js.br +0 -0
  162. package/out/renderer/assets/requirementDiagram-MS252O5E-CxM7H308.js.gz +0 -0
  163. package/out/renderer/assets/{resizable-cStzNJ8V.js → resizable-DD8ADhVy.js} +216 -207
  164. package/out/renderer/assets/resizable-DD8ADhVy.js.br +0 -0
  165. package/out/renderer/assets/resizable-DD8ADhVy.js.gz +0 -0
  166. package/out/renderer/assets/{sankeyDiagram-XADWPNL6-Dbde7usj.js → sankeyDiagram-XADWPNL6-BGTOA6ee.js} +2 -2
  167. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BGTOA6ee.js.br +0 -0
  168. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BGTOA6ee.js.gz +0 -0
  169. package/out/renderer/assets/{schedule-DNMCsk-G.js → schedule-DMyyz9A1.js} +24 -13
  170. package/out/renderer/assets/schedule-DMyyz9A1.js.br +0 -0
  171. package/out/renderer/assets/schedule-DMyyz9A1.js.gz +0 -0
  172. package/out/renderer/assets/{schemas-c0X-G5_P.js → schemas-BL-_QQNp.js} +2248 -1112
  173. package/out/renderer/assets/schemas-BL-_QQNp.js.br +0 -0
  174. package/out/renderer/assets/schemas-BL-_QQNp.js.gz +0 -0
  175. package/out/renderer/assets/search-XexOgLud.js +26 -0
  176. package/out/renderer/assets/{sequenceDiagram-FGHM5R23-DI8l1pSL.js → sequenceDiagram-FGHM5R23-DezlXo1X.js} +4 -4
  177. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DezlXo1X.js.br +0 -0
  178. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DezlXo1X.js.gz +0 -0
  179. package/out/renderer/assets/{session-Bn5k9ScR.js → session-DQEqHTKb.js} +1238 -451
  180. package/out/renderer/assets/session-DQEqHTKb.js.br +0 -0
  181. package/out/renderer/assets/session-DQEqHTKb.js.gz +0 -0
  182. package/out/renderer/assets/{setting-dialog-sqfPfGsy.js → setting-dialog-BdiZbd8J.js} +79 -25
  183. package/out/renderer/assets/setting-dialog-BdiZbd8J.js.br +0 -0
  184. package/out/renderer/assets/setting-dialog-BdiZbd8J.js.gz +0 -0
  185. package/out/renderer/assets/settings-2-q22Cv4G7.js +16 -0
  186. package/out/renderer/assets/{settings-agents-Bntc31Nn.js → settings-agents-f3HkdiTw.js} +28 -16
  187. package/out/renderer/assets/settings-agents-f3HkdiTw.js.br +0 -0
  188. package/out/renderer/assets/settings-agents-f3HkdiTw.js.gz +0 -0
  189. package/out/renderer/assets/{settings-general-DhbLb9cP.js → settings-general-BcCOVmx3.js} +75 -41
  190. package/out/renderer/assets/settings-general-BcCOVmx3.js.br +0 -0
  191. package/out/renderer/assets/settings-general-BcCOVmx3.js.gz +0 -0
  192. package/out/renderer/assets/{settings-ilink-C7nGGjwT.js → settings-ilink-Da336Koc.js} +15 -10
  193. package/out/renderer/assets/settings-ilink-Da336Koc.js.br +0 -0
  194. package/out/renderer/assets/settings-ilink-Da336Koc.js.gz +0 -0
  195. package/out/renderer/assets/{settings-image-generation-H2dgqG7Y.js → settings-image-generation-RmWs73ZG.js} +8 -8
  196. package/out/renderer/assets/settings-image-generation-RmWs73ZG.js.br +0 -0
  197. package/out/renderer/assets/settings-image-generation-RmWs73ZG.js.gz +0 -0
  198. package/out/renderer/assets/{settings-layout-ATto1xpJ.js → settings-layout-DL6ZEzgP.js} +27 -15
  199. package/out/renderer/assets/settings-layout-DL6ZEzgP.js.br +0 -0
  200. package/out/renderer/assets/settings-layout-DL6ZEzgP.js.gz +0 -0
  201. package/out/renderer/assets/{settings-mcp-DUdMuoJ-.js → settings-mcp-BKW8JKtO.js} +26 -21
  202. package/out/renderer/assets/settings-mcp-BKW8JKtO.js.br +0 -0
  203. package/out/renderer/assets/settings-mcp-BKW8JKtO.js.gz +0 -0
  204. package/out/renderer/assets/{settings-memory-CJLG4aHW.js → settings-memory-o4r-_vob.js} +13 -9
  205. package/out/renderer/assets/settings-memory-o4r-_vob.js.br +0 -0
  206. package/out/renderer/assets/settings-memory-o4r-_vob.js.gz +0 -0
  207. package/out/renderer/assets/settings-shortcuts-BmUGS1q_.js +280 -0
  208. package/out/renderer/assets/settings-shortcuts-BmUGS1q_.js.br +0 -0
  209. package/out/renderer/assets/settings-shortcuts-BmUGS1q_.js.gz +0 -0
  210. package/out/renderer/assets/{settings-snippets-B4VcnD5Z.js → settings-snippets-CpAOJmDF.js} +9 -9
  211. package/out/renderer/assets/settings-snippets-CpAOJmDF.js.br +0 -0
  212. package/out/renderer/assets/settings-snippets-CpAOJmDF.js.gz +0 -0
  213. package/out/renderer/assets/{settings-speech-to-text-DQ7lfkTu.js → settings-speech-to-text-C8KHNGE4.js} +7 -7
  214. package/out/renderer/assets/settings-speech-to-text-C8KHNGE4.js.br +0 -0
  215. package/out/renderer/assets/settings-speech-to-text-C8KHNGE4.js.gz +0 -0
  216. package/out/renderer/assets/{settings-webui-DZf9O-6j.js → settings-webui-DIEKvTrI.js} +2 -2
  217. package/out/renderer/assets/settings-webui-DIEKvTrI.js.br +0 -0
  218. package/out/renderer/assets/settings-webui-DIEKvTrI.js.gz +0 -0
  219. package/out/renderer/assets/{skills-installed-Dp0r_4I-.js → skills-installed-BuWBDk6r.js} +5 -5
  220. package/out/renderer/assets/skills-installed-BuWBDk6r.js.br +0 -0
  221. package/out/renderer/assets/skills-installed-BuWBDk6r.js.gz +0 -0
  222. package/out/renderer/assets/{skills-layout-D-5rlY38.js → skills-layout-ByPhfHG6.js} +2 -2
  223. package/out/renderer/assets/skills-layout-ByPhfHG6.js.br +0 -0
  224. package/out/renderer/assets/skills-layout-ByPhfHG6.js.gz +0 -0
  225. package/out/renderer/assets/{skills-skills-sh-CcLoIrSw.js → skills-skills-sh-wR7YNmAJ.js} +4 -4
  226. package/out/renderer/assets/skills-skills-sh-wR7YNmAJ.js.br +0 -0
  227. package/out/renderer/assets/skills-skills-sh-wR7YNmAJ.js.gz +0 -0
  228. package/out/renderer/assets/{sortable.esm-knFxDx0Y.js → sortable.esm-BWvT9HIK.js} +15 -10
  229. package/out/renderer/assets/sortable.esm-BWvT9HIK.js.br +0 -0
  230. package/out/renderer/assets/sortable.esm-BWvT9HIK.js.gz +0 -0
  231. package/out/renderer/assets/{standard-schema-dKXoCekr.js → standard-schema-BkTVIf7N.js} +376 -170
  232. package/out/renderer/assets/standard-schema-BkTVIf7N.js.br +0 -0
  233. package/out/renderer/assets/standard-schema-BkTVIf7N.js.gz +0 -0
  234. package/out/renderer/assets/{stateDiagram-FHFEXIEX-DWWz4PMv.js → stateDiagram-FHFEXIEX-xdKKCs-p.js} +9 -9
  235. package/out/renderer/assets/stateDiagram-FHFEXIEX-xdKKCs-p.js.br +0 -0
  236. package/out/renderer/assets/stateDiagram-FHFEXIEX-xdKKCs-p.js.gz +0 -0
  237. package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-Dm2qD5bg.js → stateDiagram-v2-QKLJ7IA2-BaaiQ6Kr.js} +5 -5
  238. package/out/renderer/assets/{task-C5dyYbfn.js → task-PHAOSE-W.js} +12 -12
  239. package/out/renderer/assets/task-PHAOSE-W.js.br +0 -0
  240. package/out/renderer/assets/task-PHAOSE-W.js.gz +0 -0
  241. package/out/renderer/assets/{textarea-DTqKlQbL.js → textarea-1ZWl3C-x.js} +2 -2
  242. package/out/renderer/assets/{timeline-definition-GMOUNBTQ-A1tEoL9d.js → timeline-definition-GMOUNBTQ-DFLeLybV.js} +3 -3
  243. package/out/renderer/assets/timeline-definition-GMOUNBTQ-DFLeLybV.js.br +0 -0
  244. package/out/renderer/assets/timeline-definition-GMOUNBTQ-DFLeLybV.js.gz +0 -0
  245. package/out/renderer/assets/{vennDiagram-DHZGUBPP-tNdYrJi_.js → vennDiagram-DHZGUBPP-PKmZLY7H.js} +2 -2
  246. package/out/renderer/assets/vennDiagram-DHZGUBPP-PKmZLY7H.js.br +0 -0
  247. package/out/renderer/assets/vennDiagram-DHZGUBPP-PKmZLY7H.js.gz +0 -0
  248. package/out/renderer/assets/{wardley-RL74JXVD-BxN5_Sp6.js → wardley-RL74JXVD-BCH2vKnv.js} +4 -4
  249. package/out/renderer/assets/wardley-RL74JXVD-BCH2vKnv.js.br +0 -0
  250. package/out/renderer/assets/wardley-RL74JXVD-BCH2vKnv.js.gz +0 -0
  251. package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-B_3jA8zU.js → wardleyDiagram-NUSXRM2D-Bkd3xMno.js} +6 -6
  252. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-Bkd3xMno.js.br +0 -0
  253. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-Bkd3xMno.js.gz +0 -0
  254. package/out/renderer/assets/wrench-8H0LZ83G.js +48 -0
  255. package/out/renderer/assets/wrench-8H0LZ83G.js.br +0 -0
  256. package/out/renderer/assets/wrench-8H0LZ83G.js.gz +0 -0
  257. package/out/renderer/assets/{xlsx-view-Bv0YhA5m.js → xlsx-view-BYx5Ha2P.js} +49972 -32651
  258. package/out/renderer/assets/xlsx-view-BYx5Ha2P.js.br +0 -0
  259. package/out/renderer/assets/xlsx-view-BYx5Ha2P.js.gz +0 -0
  260. package/out/renderer/assets/{xlsx-view-Chm2gOCI.css → xlsx-view-CylPXjk8.css} +592 -530
  261. package/out/renderer/assets/xlsx-view-CylPXjk8.css.br +0 -0
  262. package/out/renderer/assets/xlsx-view-CylPXjk8.css.gz +0 -0
  263. package/out/renderer/assets/xlsx_parser_bg-B1AkeRhV.wasm +0 -0
  264. package/out/renderer/assets/{xychartDiagram-5P7HB3ND-NNVuzC4j.js → xychartDiagram-5P7HB3ND-DCOm4uPr.js} +3 -3
  265. package/out/renderer/assets/xychartDiagram-5P7HB3ND-DCOm4uPr.js.br +0 -0
  266. package/out/renderer/assets/xychartDiagram-5P7HB3ND-DCOm4uPr.js.gz +0 -0
  267. package/out/renderer/index.html +2 -2
  268. package/out/renderer/index.html.br +0 -0
  269. package/out/renderer/index.html.gz +0 -0
  270. package/out/scripts/mcp-skills/server.mjs +1 -1
  271. package/out/server/main.js +87 -5
  272. package/package.json +16 -16
  273. package/out/renderer/assets/_baseUniq-CJr3HkLS.js.br +0 -0
  274. package/out/renderer/assets/_baseUniq-CJr3HkLS.js.gz +0 -0
  275. package/out/renderer/assets/arc-POsBroTF.js.br +0 -0
  276. package/out/renderer/assets/arc-POsBroTF.js.gz +0 -0
  277. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CmToUhDb.js.br +0 -0
  278. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CmToUhDb.js.gz +0 -0
  279. package/out/renderer/assets/arrow-left-CxS1t3f7.js +0 -9
  280. package/out/renderer/assets/automation-Cyz3eLWp.js.br +0 -0
  281. package/out/renderer/assets/automation-Cyz3eLWp.js.gz +0 -0
  282. package/out/renderer/assets/blockDiagram-DXYQGD6D-M2nnTg9f.js.br +0 -0
  283. package/out/renderer/assets/blockDiagram-DXYQGD6D-M2nnTg9f.js.gz +0 -0
  284. package/out/renderer/assets/c4Diagram-AHTNJAMY-CwLtsy_0.js.br +0 -0
  285. package/out/renderer/assets/c4Diagram-AHTNJAMY-CwLtsy_0.js.gz +0 -0
  286. package/out/renderer/assets/chunk-4TB4RGXK-DXLZpPY5.js.br +0 -0
  287. package/out/renderer/assets/chunk-4TB4RGXK-DXLZpPY5.js.gz +0 -0
  288. package/out/renderer/assets/chunk-EDXVE4YY-CNjJEQfY.js.br +0 -0
  289. package/out/renderer/assets/chunk-EDXVE4YY-CNjJEQfY.js.gz +0 -0
  290. package/out/renderer/assets/chunk-OYMX7WX6-BG4B1VQ7.js.br +0 -0
  291. package/out/renderer/assets/chunk-OYMX7WX6-BG4B1VQ7.js.gz +0 -0
  292. package/out/renderer/assets/chunk-YZCP3GAM-jeoI2tsD.js.br +0 -0
  293. package/out/renderer/assets/chunk-YZCP3GAM-jeoI2tsD.js.gz +0 -0
  294. package/out/renderer/assets/circle-x-B1kBsMlS.js +0 -10
  295. package/out/renderer/assets/code-editor-CEXlC4aV.js.br +0 -0
  296. package/out/renderer/assets/code-editor-CEXlC4aV.js.gz +0 -0
  297. package/out/renderer/assets/collapsible-CMuCJUWG.js.br +0 -0
  298. package/out/renderer/assets/collapsible-CMuCJUWG.js.gz +0 -0
  299. package/out/renderer/assets/cose-bilkent-S5V4N54A-B3bgImVS.js.br +0 -0
  300. package/out/renderer/assets/cose-bilkent-S5V4N54A-B3bgImVS.js.gz +0 -0
  301. package/out/renderer/assets/dagre-KV5264BT-DTbumBA_.js.br +0 -0
  302. package/out/renderer/assets/dagre-KV5264BT-DTbumBA_.js.gz +0 -0
  303. package/out/renderer/assets/diagram-5BDNPKRD-B34Y6e8q.js.br +0 -0
  304. package/out/renderer/assets/diagram-5BDNPKRD-B34Y6e8q.js.gz +0 -0
  305. package/out/renderer/assets/diagram-G4DWMVQ6-BBiBmFR4.js.br +0 -0
  306. package/out/renderer/assets/diagram-G4DWMVQ6-BBiBmFR4.js.gz +0 -0
  307. package/out/renderer/assets/diagram-MMDJMWI5-P-YslDjG.js.br +0 -0
  308. package/out/renderer/assets/diagram-MMDJMWI5-P-YslDjG.js.gz +0 -0
  309. package/out/renderer/assets/diagram-TYMM5635-D_cLard_.js.br +0 -0
  310. package/out/renderer/assets/diagram-TYMM5635-D_cLard_.js.gz +0 -0
  311. package/out/renderer/assets/docx_parser_bg-CIRepKGp.wasm +0 -0
  312. package/out/renderer/assets/ellipsis-D1agTYu1.js +0 -10
  313. package/out/renderer/assets/erDiagram-SMLLAGMA-C1MHqKvC.js.br +0 -0
  314. package/out/renderer/assets/erDiagram-SMLLAGMA-C1MHqKvC.js.gz +0 -0
  315. package/out/renderer/assets/field-DR3J0r9e.js.br +0 -0
  316. package/out/renderer/assets/field-DR3J0r9e.js.gz +0 -0
  317. package/out/renderer/assets/file-text-nGCW6zu1.js +0 -18
  318. package/out/renderer/assets/flowDiagram-DWJPFMVM-DprlEc3Z.js.br +0 -0
  319. package/out/renderer/assets/flowDiagram-DWJPFMVM-DprlEc3Z.js.gz +0 -0
  320. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CbTdumBm.js.br +0 -0
  321. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CbTdumBm.js.gz +0 -0
  322. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-06bme-w8.js.br +0 -0
  323. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-06bme-w8.js.gz +0 -0
  324. package/out/renderer/assets/graph-BZhxluo9.js.br +0 -0
  325. package/out/renderer/assets/graph-BZhxluo9.js.gz +0 -0
  326. package/out/renderer/assets/highlighted-body-OFNGDK62-CvDMJtXf.js +0 -18
  327. package/out/renderer/assets/index-LmYTNvdF.js.br +0 -0
  328. package/out/renderer/assets/index-LmYTNvdF.js.gz +0 -0
  329. package/out/renderer/assets/index-aGJ_yZib.css +0 -382
  330. package/out/renderer/assets/index-aGJ_yZib.css.br +0 -0
  331. package/out/renderer/assets/index-aGJ_yZib.css.gz +0 -0
  332. package/out/renderer/assets/infoDiagram-42DDH7IO-DqivEzWL.js.br +0 -0
  333. package/out/renderer/assets/infoDiagram-42DDH7IO-DqivEzWL.js.gz +0 -0
  334. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-BKcg_z4w.js.br +0 -0
  335. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-BKcg_z4w.js.gz +0 -0
  336. package/out/renderer/assets/item-BHEUMM9H.js.br +0 -0
  337. package/out/renderer/assets/item-BHEUMM9H.js.gz +0 -0
  338. package/out/renderer/assets/journeyDiagram-VCZTEJTY-Bvv8xuxQ.js.br +0 -0
  339. package/out/renderer/assets/journeyDiagram-VCZTEJTY-Bvv8xuxQ.js.gz +0 -0
  340. package/out/renderer/assets/kanban-definition-6JOO6SKY-C-gRMpeM.js.br +0 -0
  341. package/out/renderer/assets/kanban-definition-6JOO6SKY-C-gRMpeM.js.gz +0 -0
  342. package/out/renderer/assets/layout-B4dSyItA.js.br +0 -0
  343. package/out/renderer/assets/layout-B4dSyItA.js.gz +0 -0
  344. package/out/renderer/assets/linear-CoVhuer7.js.br +0 -0
  345. package/out/renderer/assets/linear-CoVhuer7.js.gz +0 -0
  346. package/out/renderer/assets/link-2-DHUPzNSt.js +0 -24
  347. package/out/renderer/assets/mermaid-GHXKKRXX-CZqkhGx7.js.br +0 -0
  348. package/out/renderer/assets/mermaid-GHXKKRXX-CZqkhGx7.js.gz +0 -0
  349. package/out/renderer/assets/mic-BgSvicCB.js +0 -22
  350. package/out/renderer/assets/min-emzuJjmk.js.br +0 -0
  351. package/out/renderer/assets/min-emzuJjmk.js.gz +0 -0
  352. package/out/renderer/assets/mindmap-definition-QFDTVHPH-DQ4JNECm.js.br +0 -0
  353. package/out/renderer/assets/mindmap-definition-QFDTVHPH-DQ4JNECm.js.gz +0 -0
  354. package/out/renderer/assets/open-guide-CfLO-Sdk.js +0 -20
  355. package/out/renderer/assets/package-search-CrF2Iegl.js +0 -19
  356. package/out/renderer/assets/pdf-worker-wrapper-D6dv_dnM.js.br +0 -0
  357. package/out/renderer/assets/pdf-worker-wrapper-D6dv_dnM.js.gz +0 -0
  358. package/out/renderer/assets/pieDiagram-DEJITSTG-0H6CGQQt.js.br +0 -0
  359. package/out/renderer/assets/pieDiagram-DEJITSTG-0H6CGQQt.js.gz +0 -0
  360. package/out/renderer/assets/plus-YNCXW-GD.js +0 -9
  361. package/out/renderer/assets/pptx_parser_bg-Dnsy0qwf.wasm +0 -0
  362. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-D0aPKp5z.js.br +0 -0
  363. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-D0aPKp5z.js.gz +0 -0
  364. package/out/renderer/assets/refresh-cw-Bvm578nW.js +0 -11
  365. package/out/renderer/assets/render-worker-host-BG3a7brz-Q7Y2znhP.js +0 -25
  366. package/out/renderer/assets/render-worker-host-BG3a7brz-Q7Y2znhP.js.br +0 -0
  367. package/out/renderer/assets/render-worker-host-BG3a7brz-Q7Y2znhP.js.gz +0 -0
  368. package/out/renderer/assets/render-worker-host-CsB-dPJv-gJhIrzf_.js +0 -25
  369. package/out/renderer/assets/render-worker-host-CsB-dPJv-gJhIrzf_.js.br +0 -0
  370. package/out/renderer/assets/render-worker-host-CsB-dPJv-gJhIrzf_.js.gz +0 -0
  371. package/out/renderer/assets/render-worker-host-Cyv5Hkbh-BAiWfcv_.js +0 -25
  372. package/out/renderer/assets/render-worker-host-Cyv5Hkbh-BAiWfcv_.js.br +0 -0
  373. package/out/renderer/assets/render-worker-host-Cyv5Hkbh-BAiWfcv_.js.gz +0 -0
  374. package/out/renderer/assets/requirementDiagram-MS252O5E-BkzwapW_.js.br +0 -0
  375. package/out/renderer/assets/requirementDiagram-MS252O5E-BkzwapW_.js.gz +0 -0
  376. package/out/renderer/assets/resizable-cStzNJ8V.js.br +0 -0
  377. package/out/renderer/assets/resizable-cStzNJ8V.js.gz +0 -0
  378. package/out/renderer/assets/sankeyDiagram-XADWPNL6-Dbde7usj.js.br +0 -0
  379. package/out/renderer/assets/sankeyDiagram-XADWPNL6-Dbde7usj.js.gz +0 -0
  380. package/out/renderer/assets/schedule-DNMCsk-G.js.br +0 -0
  381. package/out/renderer/assets/schedule-DNMCsk-G.js.gz +0 -0
  382. package/out/renderer/assets/schemas-c0X-G5_P.js.br +0 -0
  383. package/out/renderer/assets/schemas-c0X-G5_P.js.gz +0 -0
  384. package/out/renderer/assets/search-BEY9yGF_.js +0 -16
  385. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DI8l1pSL.js.br +0 -0
  386. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DI8l1pSL.js.gz +0 -0
  387. package/out/renderer/assets/session-Bn5k9ScR.js.br +0 -0
  388. package/out/renderer/assets/session-Bn5k9ScR.js.gz +0 -0
  389. package/out/renderer/assets/setting-dialog-sqfPfGsy.js.br +0 -0
  390. package/out/renderer/assets/setting-dialog-sqfPfGsy.js.gz +0 -0
  391. package/out/renderer/assets/settings-2-DRhoXOO8.js +0 -11
  392. package/out/renderer/assets/settings-agents-Bntc31Nn.js.br +0 -0
  393. package/out/renderer/assets/settings-agents-Bntc31Nn.js.gz +0 -0
  394. package/out/renderer/assets/settings-general-DhbLb9cP.js.br +0 -0
  395. package/out/renderer/assets/settings-general-DhbLb9cP.js.gz +0 -0
  396. package/out/renderer/assets/settings-ilink-C7nGGjwT.js.br +0 -0
  397. package/out/renderer/assets/settings-ilink-C7nGGjwT.js.gz +0 -0
  398. package/out/renderer/assets/settings-image-generation-H2dgqG7Y.js.br +0 -0
  399. package/out/renderer/assets/settings-image-generation-H2dgqG7Y.js.gz +0 -0
  400. package/out/renderer/assets/settings-layout-ATto1xpJ.js.br +0 -0
  401. package/out/renderer/assets/settings-layout-ATto1xpJ.js.gz +0 -0
  402. package/out/renderer/assets/settings-mcp-DUdMuoJ-.js.br +0 -0
  403. package/out/renderer/assets/settings-mcp-DUdMuoJ-.js.gz +0 -0
  404. package/out/renderer/assets/settings-memory-CJLG4aHW.js.br +0 -0
  405. package/out/renderer/assets/settings-memory-CJLG4aHW.js.gz +0 -0
  406. package/out/renderer/assets/settings-snippets-B4VcnD5Z.js.br +0 -0
  407. package/out/renderer/assets/settings-snippets-B4VcnD5Z.js.gz +0 -0
  408. package/out/renderer/assets/settings-speech-to-text-DQ7lfkTu.js.br +0 -0
  409. package/out/renderer/assets/settings-speech-to-text-DQ7lfkTu.js.gz +0 -0
  410. package/out/renderer/assets/settings-webui-DZf9O-6j.js.br +0 -0
  411. package/out/renderer/assets/settings-webui-DZf9O-6j.js.gz +0 -0
  412. package/out/renderer/assets/skills-installed-Dp0r_4I-.js.br +0 -0
  413. package/out/renderer/assets/skills-installed-Dp0r_4I-.js.gz +0 -0
  414. package/out/renderer/assets/skills-layout-D-5rlY38.js.br +0 -0
  415. package/out/renderer/assets/skills-layout-D-5rlY38.js.gz +0 -0
  416. package/out/renderer/assets/skills-skills-sh-CcLoIrSw.js.br +0 -0
  417. package/out/renderer/assets/skills-skills-sh-CcLoIrSw.js.gz +0 -0
  418. package/out/renderer/assets/sortable.esm-knFxDx0Y.js.br +0 -0
  419. package/out/renderer/assets/sortable.esm-knFxDx0Y.js.gz +0 -0
  420. package/out/renderer/assets/standard-schema-dKXoCekr.js.br +0 -0
  421. package/out/renderer/assets/standard-schema-dKXoCekr.js.gz +0 -0
  422. package/out/renderer/assets/stateDiagram-FHFEXIEX-DWWz4PMv.js.br +0 -0
  423. package/out/renderer/assets/stateDiagram-FHFEXIEX-DWWz4PMv.js.gz +0 -0
  424. package/out/renderer/assets/task-C5dyYbfn.js.br +0 -0
  425. package/out/renderer/assets/task-C5dyYbfn.js.gz +0 -0
  426. package/out/renderer/assets/timeline-definition-GMOUNBTQ-A1tEoL9d.js.br +0 -0
  427. package/out/renderer/assets/timeline-definition-GMOUNBTQ-A1tEoL9d.js.gz +0 -0
  428. package/out/renderer/assets/vennDiagram-DHZGUBPP-tNdYrJi_.js.br +0 -0
  429. package/out/renderer/assets/vennDiagram-DHZGUBPP-tNdYrJi_.js.gz +0 -0
  430. package/out/renderer/assets/wardley-RL74JXVD-BxN5_Sp6.js.br +0 -0
  431. package/out/renderer/assets/wardley-RL74JXVD-BxN5_Sp6.js.gz +0 -0
  432. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-B_3jA8zU.js.br +0 -0
  433. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-B_3jA8zU.js.gz +0 -0
  434. package/out/renderer/assets/wrench-7r-g9MUq.js +0 -33
  435. package/out/renderer/assets/wrench-7r-g9MUq.js.br +0 -0
  436. package/out/renderer/assets/wrench-7r-g9MUq.js.gz +0 -0
  437. package/out/renderer/assets/xlsx-view-Bv0YhA5m.js.br +0 -0
  438. package/out/renderer/assets/xlsx-view-Bv0YhA5m.js.gz +0 -0
  439. package/out/renderer/assets/xlsx-view-Chm2gOCI.css.br +0 -0
  440. package/out/renderer/assets/xlsx-view-Chm2gOCI.css.gz +0 -0
  441. package/out/renderer/assets/xlsx_parser_bg-BM7cLtfq.wasm +0 -0
  442. package/out/renderer/assets/xychartDiagram-5P7HB3ND-NNVuzC4j.js.br +0 -0
  443. package/out/renderer/assets/xychartDiagram-5P7HB3ND-NNVuzC4j.js.gz +0 -0
@@ -1,16 +1,21 @@
1
- import { h as createLucideIcon, u as useTranslation, r as reactExports, j as jsxRuntimeExports, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, I as Input, b as useMessage, a as useAppStore, e as request, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, t as DialogDescription, ab as ALL_FEATURES, ac as FEATURE_I18N_KEYS, c as Switch, H as DialogFooter, B as Button, R as LoaderCircle } from "./index-LmYTNvdF.js";
2
- import { T as Textarea } from "./textarea-DTqKlQbL.js";
3
- import { F as FieldGroup, a as Field, b as FieldLabel } from "./field-DR3J0r9e.js";
4
- const __iconNode = [
5
- [
6
- "path",
7
- {
8
- d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
9
- key: "10ikf1"
10
- }
1
+ import { c as createLucideIcon, u as useTranslation, r as reactExports, j as jsxRuntimeExports, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, I as Input, b as useMessage, a as useAppStore, f as request, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, t as DialogDescription, af as ALL_FEATURES, ag as FEATURE_I18N_KEYS, d as Switch, ah as Tabs, ai as TabsList, aj as TabsTrigger, H as DialogFooter, B as Button, R as LoaderCircle } from "./index-BeEZXfJZ.js";
2
+ import { T as Textarea } from "./textarea-1ZWl3C-x.js";
3
+ import { F as FieldGroup, a as Field, b as FieldLabel } from "./field-YZTi9Jxc.js";
4
+ const __iconData = {
5
+ name: "play",
6
+ size: 24,
7
+ node: [
8
+ [
9
+ "path",
10
+ {
11
+ d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
12
+ key: "10ikf1"
13
+ }
14
+ ]
11
15
  ]
12
- ];
13
- const Play = createLucideIcon("play", __iconNode);
16
+ };
17
+ __iconData.node;
18
+ const Play = createLucideIcon(__iconData);
14
19
  const HOURS = Array.from({ length: 24 }, (_, i) => i);
15
20
  const MINUTES = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55];
16
21
  const INTERVALS = [1, 2, 3, 4, 6, 8, 12];
@@ -118,7 +123,7 @@ function CronEditor({ value, onChange, timezone }) {
118
123
  if (v) handlePresetChange(v);
119
124
  },
120
125
  children: [
121
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-32 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
126
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! flex-1 min-w-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
122
127
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: presetItems.map((p) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: p.value, children: p.label }, p.value)) })
123
128
  ]
124
129
  }
@@ -141,7 +146,7 @@ function CronEditor({ value, onChange, timezone }) {
141
146
  if (v) updateParts({ interval: parseInt(v) });
142
147
  },
143
148
  children: [
144
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-7 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
149
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
145
150
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: intervalItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
146
151
  ]
147
152
  }
@@ -156,7 +161,7 @@ function CronEditor({ value, onChange, timezone }) {
156
161
  if (v) updateParts({ minute: parseInt(v) });
157
162
  },
158
163
  children: [
159
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-7 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
164
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
160
165
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: minuteItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
161
166
  ]
162
167
  }
@@ -171,7 +176,7 @@ function CronEditor({ value, onChange, timezone }) {
171
176
  if (v) updateParts({ dow: v });
172
177
  },
173
178
  children: [
174
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-7 text-xs! w-18", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
179
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-18", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
175
180
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: dowItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
176
181
  ]
177
182
  }
@@ -186,7 +191,7 @@ function CronEditor({ value, onChange, timezone }) {
186
191
  if (v) updateParts({ hour: parseInt(v) });
187
192
  },
188
193
  children: [
189
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-7 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
194
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
190
195
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: hourItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
191
196
  ]
192
197
  }
@@ -201,7 +206,7 @@ function CronEditor({ value, onChange, timezone }) {
201
206
  if (v) updateParts({ minute: parseInt(v) });
202
207
  },
203
208
  children: [
204
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-7 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
209
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
205
210
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: minuteItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
206
211
  ]
207
212
  }
@@ -288,6 +293,9 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
288
293
  const [name, setName] = reactExports.useState(isEdit ? schedule.name : "");
289
294
  const [agentId, setAgentId] = reactExports.useState(isEdit ? schedule.agentId : enabledAgents[0]?.id ?? "");
290
295
  const [modelId, setModelId] = reactExports.useState(isEdit ? schedule.modelId ?? "" : "");
296
+ const [remainingRuns, setRemainingRuns] = reactExports.useState(
297
+ isEdit && schedule.remainingRuns !== null ? String(schedule.remainingRuns) : ""
298
+ );
291
299
  const [prompt, setPrompt] = reactExports.useState(isEdit ? schedule.prompt : "");
292
300
  const [cronType, setCronType] = reactExports.useState(
293
301
  isEdit ? schedule.cron.type : "cron"
@@ -308,6 +316,7 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
308
316
  setName(schedule.name);
309
317
  setAgentId(schedule.agentId);
310
318
  setModelId(schedule.modelId ?? "");
319
+ setRemainingRuns(schedule.remainingRuns !== null ? String(schedule.remainingRuns) : "");
311
320
  setPrompt(schedule.prompt);
312
321
  setCronType(schedule.cron.type);
313
322
  setCronExpr(schedule.cron.expr ?? "0 9 * * 1-5");
@@ -317,6 +326,7 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
317
326
  setName("");
318
327
  setAgentId(enabledAgents[0]?.id ?? "");
319
328
  setModelId("");
329
+ setRemainingRuns("");
320
330
  setPrompt("");
321
331
  setCronType("cron");
322
332
  setCronExpr("0 9 * * 1-5");
@@ -331,6 +341,15 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
331
341
  return void toast.error(t("automation.validation.agentRequired", "Agent is required"));
332
342
  if (!prompt.trim())
333
343
  return void toast.error(t("automation.validation.promptRequired", "Prompt is required"));
344
+ let parsedRemainingRuns = null;
345
+ if (cronType === "cron") {
346
+ const runsText = remainingRuns.trim();
347
+ if (runsText !== "" && !/^\d+$/.test(runsText))
348
+ return void toast.error(
349
+ t("automation.validation.runLimitInvalid", "Run limit must be a non-negative integer")
350
+ );
351
+ parsedRemainingRuns = runsText === "" ? null : Number(runsText);
352
+ }
334
353
  setSaving(true);
335
354
  try {
336
355
  if (isEdit) {
@@ -342,6 +361,7 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
342
361
  modelId: modelId.trim() || void 0,
343
362
  prompt: prompt.trim(),
344
363
  cron: { type: cronType, expr: cronType === "cron" ? cronExpr.trim() : void 0 },
364
+ remainingRuns: parsedRemainingRuns,
345
365
  features,
346
366
  mcpServers: mcpServerIds
347
367
  }
@@ -353,6 +373,7 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
353
373
  modelId: modelId.trim() || void 0,
354
374
  prompt: prompt.trim(),
355
375
  cron: { type: cronType, expr: cronType === "cron" ? cronExpr.trim() : void 0 },
376
+ remainingRuns: parsedRemainingRuns,
356
377
  features,
357
378
  mcpServers: mcpServerIds
358
379
  });
@@ -437,7 +458,7 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
437
458
  placeholder: t("automation.promptPlaceholder", "What should the agent do?"),
438
459
  value: prompt,
439
460
  onChange: (e) => setPrompt(e.target.value),
440
- className: "text-xs! min-h-46 flex-1 text-foreground/70 focus-visible:ring-0.5"
461
+ className: "text-xs! min-h-64 flex-1 text-foreground/70 focus-visible:ring-0.5"
441
462
  }
442
463
  )
443
464
  ] })
@@ -535,16 +556,49 @@ function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
535
556
  ] }),
536
557
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
537
558
  /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { className: "text-xs text-muted-foreground", children: t("automation.schedule", "Schedule") }),
538
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
539
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-xs text-foreground/70", children: [
559
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2.5 rounded-lg border border-border/70 bg-secondary/30 p-2.5", children: [
560
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
540
561
  /* @__PURE__ */ jsxRuntimeExports.jsx(
541
- Switch,
562
+ Tabs,
542
563
  {
543
- checked: cronType === "cron",
544
- onCheckedChange: (c) => setCronType(c ? "cron" : "manual")
564
+ value: cronType,
565
+ onValueChange: (v) => setCronType(v),
566
+ className: "gap-0",
567
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(TabsList, { className: "h-7! gap-0.5 rounded-md border border-border bg-secondary/60 p-0.5", children: [
568
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TabsTrigger, { value: "cron", className: "h-full min-w-11 rounded-sm px-2 text-xs", children: t("automation.timed", "Timed") }),
569
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
570
+ TabsTrigger,
571
+ {
572
+ value: "manual",
573
+ className: "h-full min-w-11 rounded-sm px-2 text-xs",
574
+ children: t("automation.manual", "Manual")
575
+ }
576
+ )
577
+ ] })
545
578
  }
546
579
  ),
547
- t("automation.timedExecution", "Timed (cron)")
580
+ cronType === "cron" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
581
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
582
+ FieldLabel,
583
+ {
584
+ htmlFor: "auto-remaining-runs",
585
+ className: "shrink-0 text-[11px] text-muted-foreground",
586
+ children: t("automation.remainingRuns", "Run Limit")
587
+ }
588
+ ),
589
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
590
+ Input,
591
+ {
592
+ id: "auto-remaining-runs",
593
+ inputMode: "numeric",
594
+ title: t("automation.remainingRunsDesc", "Empty = unlimited"),
595
+ placeholder: t("automation.remainingRunsPlaceholder", "∞"),
596
+ value: remainingRuns,
597
+ onChange: (e) => setRemainingRuns(e.target.value),
598
+ className: "h-6 w-12 shrink-0 px-1 text-center text-xs! text-foreground/70 focus-visible:ring-0.5"
599
+ }
600
+ )
601
+ ] })
548
602
  ] }),
549
603
  cronType === "cron" ? /* @__PURE__ */ jsxRuntimeExports.jsx(CronEditor, { value: cronExpr, onChange: setCronExpr, timezone }) : /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("automation.manualDesc", "Manual trigger only. No automatic scheduling.") })
550
604
  ] })
@@ -0,0 +1,16 @@
1
+ import { c as createLucideIcon } from "./index-BeEZXfJZ.js";
2
+ const __iconData = {
3
+ name: "settings-2",
4
+ size: 24,
5
+ node: [
6
+ ["path", { d: "M14 17H5", key: "gfn3mx" }],
7
+ ["path", { d: "M19 7h-9", key: "6i9tg" }],
8
+ ["circle", { cx: "17", cy: "17", r: "3", key: "18b49y" }],
9
+ ["circle", { cx: "7", cy: "7", r: "3", key: "dfmy0x" }]
10
+ ]
11
+ };
12
+ __iconData.node;
13
+ const Settings2 = createLucideIcon(__iconData);
14
+ export {
15
+ Settings2 as S
16
+ };
@@ -1,14 +1,13 @@
1
- import { u as useTranslation, r as reactExports, j as jsxRuntimeExports, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, t as DialogDescription, I as Input, A as DropdownMenu, E as DropdownMenuTrigger, B as Button, F as DropdownMenuContent, G as DropdownMenuItem, H as DialogFooter, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, a as useAppStore, b as useMessage, S as ScrollArea, k as ContextMenu, l as ContextMenuTrigger, c as Switch, m as ContextMenuContent, n as ContextMenuItem, P as Pencil, o as ContextMenuSeparator, T as Trash2, e as request, f as extractErrorMessage } from "./index-LmYTNvdF.js";
2
- import { B as BookOpen, o as openGuide } from "./open-guide-CfLO-Sdk.js";
3
- import { u as useSensors, a as useSensor, D as DndContext, c as closestCenter, S as SortableContext, v as verticalListSortingStrategy, s as sortableKeyboardCoordinates, K as KeyboardSensor, P as PointerSensor, b as useSortable, C as CSS, G as GripVertical } from "./sortable.esm-knFxDx0Y.js";
4
- import { u as useForm, C as Controller, i } from "./standard-schema-dKXoCekr.js";
5
- import { T as Textarea } from "./textarea-DTqKlQbL.js";
6
- import { F as FieldGroup, a as Field, b as FieldLabel, c as FieldError } from "./field-DR3J0r9e.js";
7
- import { E as Ellipsis } from "./ellipsis-D1agTYu1.js";
8
- import { o as object, s as string } from "./schemas-c0X-G5_P.js";
9
- import { P as Plus } from "./plus-YNCXW-GD.js";
10
- import { R as RefreshCw } from "./refresh-cw-Bvm578nW.js";
11
- import { C as CircleX } from "./circle-x-B1kBsMlS.js";
1
+ import { u as useTranslation, r as reactExports, j as jsxRuntimeExports, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, t as DialogDescription, I as Input, A as DropdownMenu, E as DropdownMenuTrigger, B as Button, F as DropdownMenuContent, G as DropdownMenuItem, H as DialogFooter, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, a as useAppStore, b as useMessage, S as ScrollArea, k as ContextMenu, l as ContextMenuTrigger, d as Switch, m as ContextMenuContent, n as ContextMenuItem, P as Pencil, a6 as RefreshCw, o as ContextMenuSeparator, T as Trash, ac as resetAgent, g as extractErrorMessage, ad as clearAgentSessions, ae as updateAgentSettings } from "./index-BeEZXfJZ.js";
2
+ import { B as BookOpen, o as openGuide } from "./open-guide-CWoE2W97.js";
3
+ import { u as useSensors, a as useSensor, D as DndContext, c as closestCenter, S as SortableContext, v as verticalListSortingStrategy, s as sortableKeyboardCoordinates, K as KeyboardSensor, P as PointerSensor, b as useSortable, C as CSS, G as GripVertical } from "./sortable.esm-BWvT9HIK.js";
4
+ import { u as useForm, C as Controller, i } from "./standard-schema-BkTVIf7N.js";
5
+ import { T as Textarea } from "./textarea-1ZWl3C-x.js";
6
+ import { F as FieldGroup, a as Field, b as FieldLabel, c as FieldError } from "./field-YZTi9Jxc.js";
7
+ import { E as Ellipsis } from "./ellipsis-D_eCkauJ.js";
8
+ import { o as object, s as string } from "./schemas-BL-_QQNp.js";
9
+ import { P as Plus } from "./plus-BZ0wwKkh.js";
10
+ import { C as CircleX } from "./circle-x-C9_Yp0Tg.js";
12
11
  function isValidStringMap$1(raw) {
13
12
  const trimmed = raw.trim();
14
13
  if (!trimmed) return true;
@@ -694,7 +693,7 @@ function AgentSortableItem({ id, children }) {
694
693
  type: "button",
695
694
  ...attributes,
696
695
  ...listeners,
697
- className: "cursor-grab active:cursor-grabbing p-0.5 rounded hover:bg-accent/50 text-muted-foreground shrink-0",
696
+ className: "-ml-4.5 cursor-grab active:cursor-grabbing p-0.5 rounded hover:bg-accent/50 text-muted-foreground shrink-0",
698
697
  title: t("settings.agents.dragToReorder", "Drag to reorder"),
699
698
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(GripVertical, { className: "size-3.5 -ml-1" })
700
699
  }
@@ -724,7 +723,18 @@ function SettingsAgents() {
724
723
  }, [configuredAgents]);
725
724
  const handleSave = async (updatedAgents) => {
726
725
  try {
727
- await request.updateSettings({ agents: updatedAgents });
726
+ const currentAgents = useAppStore.getState().configuredAgents;
727
+ const currentById = new Map(currentAgents.map((agent) => [agent.id, agent]));
728
+ const updatedById = new Map(updatedAgents.map((agent) => [agent.id, agent]));
729
+ const affectedAgentIds = /* @__PURE__ */ new Set();
730
+ for (const [id, currentAgent] of currentById) {
731
+ const updatedAgent = updatedById.get(id);
732
+ if (!updatedAgent || JSON.stringify(currentAgent) !== JSON.stringify(updatedAgent)) {
733
+ affectedAgentIds.add(id);
734
+ }
735
+ }
736
+ const sessionIds = useAppStore.getState().sessions.filter((session) => affectedAgentIds.has(session.agentId)).map((session) => session.id);
737
+ await updateAgentSettings(updatedAgents, sessionIds);
728
738
  setConfiguredAgents(updatedAgents);
729
739
  } catch (err) {
730
740
  toast.error(
@@ -819,7 +829,8 @@ function SettingsAgents() {
819
829
  };
820
830
  const handleReset = async (id) => {
821
831
  try {
822
- await request.resetAgent({ agentId: id });
832
+ const sessionIds = useAppStore.getState().sessions.filter((session) => session.agentId === id).map((session) => session.id);
833
+ await resetAgent(id, sessionIds);
823
834
  toast.success(t("settings.agents.resetSuccess", "Agent reset."));
824
835
  } catch (err) {
825
836
  toast.error(
@@ -841,7 +852,8 @@ function SettingsAgents() {
841
852
  });
842
853
  if (!result) return;
843
854
  try {
844
- const res = await request.clearAgentSessions({ agentId: id });
855
+ const sessionIds = useAppStore.getState().sessions.filter((session) => session.agentId === id).map((session) => session.id);
856
+ const res = await clearAgentSessions(id, sessionIds);
845
857
  toast.success(
846
858
  t("settings.agents.deleteAllSessionsSuccess", "{{count}} session(s) deleted.", {
847
859
  count: res.deletedSessionIds.length
@@ -997,7 +1009,7 @@ function SettingsAgents() {
997
1009
  variant: "destructive",
998
1010
  onClick: () => handleDelete(agent.id),
999
1011
  children: [
1000
- /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, { className: "size-3" }),
1012
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Trash, { className: "size-3" }),
1001
1013
  t("settings.agents.delete", "Delete")
1002
1014
  ]
1003
1015
  }
@@ -1,5 +1,5 @@
1
- import { aJ as shimExports, aK as NOOP, aL as useCSPContext, j as jsxRuntimeExports, u as useTranslation, a as useAppStore, b as useMessage, r as reactExports, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, I as Input, H as DialogFooter, B as Button, e as request, i as isWebUI, V as electron, f as extractErrorMessage, aM as clamp, aN as fieldValidityMapping, am as formatErrorMessage, ai as useBaseUiId, aj as useStableCallback, aO as useFormContext, aP as useFieldRootContext, aQ as useLabelableContext, ag as useControlled, az as none, aR as useRegisterFieldControl, aS as useValueChanged, aT as areArraysEqual, ak as createChangeEventDetails, aU as keyboard, aV as inputChange, aW as createGenericEventDetails, au as useIsoLayoutEffect, aX as activeElement, aY as ownerDocument, aZ as contains, ap as useRenderElement, a_ as CompositeList, a$ as getDefaultLabelId, b0 as resolveAriaLabelledBy, b1 as useDirection, ay as getWindow, as as useValueAsRef, b2 as getTarget, b3 as useAnimationFrame, ax as addEventListener, b4 as isElement, b5 as drag, b6 as trackPress, b7 as useLabelableId, b8 as useCompositeListItem, a2 as mergeProps, b9 as visuallyHidden, ar as useMergedRefs, ba as COMPOSITE_KEYS, bb as PAGE_UP, bc as PAGE_DOWN, bd as HOME, be as END, bf as ARROW_LEFT, bg as ARROW_DOWN, bh as ARROW_RIGHT, bi as ARROW_UP, bj as matchesFocusVisible, M as cn, S as ScrollArea, c as Switch, aa as ChevronRight, bk as EDITOR_LABELS, bl as L, bm as N, bn as _, bo as D, bp as w } from "./index-LmYTNvdF.js";
2
- import { a as Field, b as FieldLabel } from "./field-DR3J0r9e.js";
1
+ import { aS as shimExports, aT as NOOP, aU as useCSPContext, j as jsxRuntimeExports, u as useTranslation, a as useAppStore, b as useMessage, r as reactExports, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, I as Input, H as DialogFooter, B as Button, f as request, i as isWebUI, V as electron, g as extractErrorMessage, aV as clamp, aW as fieldValidityMapping, ay as formatErrorMessage, au as useBaseUiId, av as useStableCallback, aX as useFormContext, aY as useFieldRootContext, aZ as useLabelableContext, as as useControlled, aL as none, a_ as useRegisterFieldControl, a$ as useValueChanged, b0 as areArraysEqual, aw as createChangeEventDetails, b1 as keyboard, b2 as inputChange, b3 as createGenericEventDetails, aG as useIsoLayoutEffect, b4 as activeElement, b5 as ownerDocument, b6 as contains, aB as useRenderElement, b7 as CompositeList, b8 as getDefaultLabelId, b9 as resolveAriaLabelledBy, ba as useDirection, aK as getWindow, aE as useValueAsRef, bb as getTarget, bc as useAnimationFrame, aJ as addEventListener, bd as isElement, be as drag, bf as trackPress, bg as useLabelableId, bh as useCompositeListItem, ab as mergeProps, bi as visuallyHidden, aD as useMergedRefs, bj as COMPOSITE_KEYS, bk as PAGE_UP, bl as PAGE_DOWN, bm as HOME, bn as END, bo as ARROW_LEFT, bp as ARROW_DOWN, bq as ARROW_RIGHT, br as ARROW_UP, bs as matchesFocusVisible, M as cn, S as ScrollArea, d as Switch, a7 as ChevronRight, bt as EDITOR_LABELS, bu as L, bv as N, bw as _, bx as D, by as w } from "./index-BeEZXfJZ.js";
2
+ import { a as Field, b as FieldLabel } from "./field-YZTi9Jxc.js";
3
3
  const script = "";
4
4
  function subscribe() {
5
5
  return NOOP;
@@ -285,13 +285,13 @@ function SettingsProxyDialog({ open, onOpenChange }) {
285
285
  function asc(a, b) {
286
286
  return a - b;
287
287
  }
288
- function getSliderValue(valueInput, index, min, max, range, values) {
288
+ function getSliderValue(valueInput, index2, min, max, range, values) {
289
289
  const clamped = clamp(valueInput, min, max);
290
290
  if (!range) {
291
291
  return clamped;
292
292
  }
293
293
  const output = values.slice();
294
- output[index] = clamp(clamped, values[index - 1] ?? -Infinity, values[index + 1] ?? Infinity);
294
+ output[index2] = clamp(clamped, values[index2 - 1] ?? -Infinity, values[index2 + 1] ?? Infinity);
295
295
  return output.sort(asc);
296
296
  }
297
297
  function validateMinimumDistance(values, step, minStepsBetweenValues) {
@@ -448,12 +448,12 @@ const SliderRoot = /* @__PURE__ */ reactExports.forwardRef(function SliderRoot2(
448
448
  setValueUnwrapped(newValue);
449
449
  return true;
450
450
  });
451
- const handleInputChange = useStableCallback((valueInput, index, event) => {
452
- const newValue = getSliderValue(valueInput, index, min, max, range, values);
451
+ const handleInputChange = useStableCallback((valueInput, index2, event) => {
452
+ const newValue = getSliderValue(valueInput, index2, min, max, range, values);
453
453
  if (validateMinimumDistance(newValue, step, minStepsBetweenValues)) {
454
454
  const reason = "key" in event ? keyboard : inputChange;
455
455
  const applied = setValue(newValue, createChangeEventDetails(reason, event.nativeEvent, void 0, {
456
- activeThumbIndex: index
456
+ activeThumbIndex: index2
457
457
  }));
458
458
  setTouched(true);
459
459
  if (applied) {
@@ -593,15 +593,15 @@ function roundValueToStep(value, step, min) {
593
593
  const nearest = Math.round((value - min) / step) * step + min;
594
594
  return Number(nearest.toFixed(Math.max(getDecimalPrecision(step), getDecimalPrecision(min))));
595
595
  }
596
- function getPushedThumbValues(values, index, nextValue, min, max, step, minStepsBetweenValues, initialValues) {
596
+ function getPushedThumbValues(values, index2, nextValue, min, max, step, minStepsBetweenValues, initialValues) {
597
597
  const nextValues = values.slice();
598
598
  const minValueDifference = step * minStepsBetweenValues;
599
599
  const lastIndex = nextValues.length - 1;
600
600
  const baseInitialValues = initialValues ?? values;
601
- const indexMin = min + index * minValueDifference;
602
- const indexMax = max - (lastIndex - index) * minValueDifference;
603
- nextValues[index] = clamp(nextValue, indexMin, indexMax);
604
- for (let i = index + 1; i <= lastIndex; i += 1) {
601
+ const indexMin = min + index2 * minValueDifference;
602
+ const indexMax = max - (lastIndex - index2) * minValueDifference;
603
+ nextValues[index2] = clamp(nextValue, indexMin, indexMax);
604
+ for (let i = index2 + 1; i <= lastIndex; i += 1) {
605
605
  const minAllowed = nextValues[i - 1] + minValueDifference;
606
606
  const maxAllowed = max - (lastIndex - i) * minValueDifference;
607
607
  const initialValue = baseInitialValues[i];
@@ -611,7 +611,7 @@ function getPushedThumbValues(values, index, nextValue, min, max, step, minSteps
611
611
  }
612
612
  nextValues[i] = clamp(candidate, minAllowed, maxAllowed);
613
613
  }
614
- for (let i = index - 1; i >= 0; i -= 1) {
614
+ for (let i = index2 - 1; i >= 0; i -= 1) {
615
615
  const maxAllowed = nextValues[i + 1] - minValueDifference;
616
616
  const minAllowed = min + i * minValueDifference;
617
617
  const initialValue = baseInitialValues[i];
@@ -668,15 +668,15 @@ function resolveThumbCollision(behavior, values, currentValues, initialValues, p
668
668
  };
669
669
  }
670
670
  const targetIndex = shouldSwapForward ? pressedIndex + 1 : pressedIndex - 1;
671
- const initialValuesForPush = candidateValues.map((_2, index) => {
672
- if (index === pressedIndex) {
671
+ const initialValuesForPush = candidateValues.map((_2, index2) => {
672
+ if (index2 === pressedIndex) {
673
673
  return pressedValueAfterClamp;
674
674
  }
675
- const baseline = baselineValues[index];
675
+ const baseline = baselineValues[index2];
676
676
  if (baseline != null) {
677
677
  return baseline;
678
678
  }
679
- return activeValues[index];
679
+ return activeValues[index2];
680
680
  });
681
681
  let nextValueForTarget = nextValue;
682
682
  if (shouldSwapForward) {
@@ -1104,16 +1104,17 @@ const SliderTrack = /* @__PURE__ */ reactExports.forwardRef(function SliderTrack
1104
1104
  function valueToPercent(value, min, max) {
1105
1105
  return (value - min) * 100 / (max - min);
1106
1106
  }
1107
+ const index = "data-index";
1107
1108
  var _PrehydrationScript;
1108
1109
  const ALL_KEYS = /* @__PURE__ */ new Set([...COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN]);
1109
- function getDefaultAriaValueText(values, index, format, locale) {
1110
- if (index < 0) {
1110
+ function getDefaultAriaValueText(values, index2, format, locale) {
1111
+ if (index2 < 0) {
1111
1112
  return void 0;
1112
1113
  }
1113
1114
  if (values.length === 2) {
1114
- return `${formatNumber(values[index], locale, format)} ${index === 0 ? "start" : "end"} range`;
1115
+ return `${formatNumber(values[index2], locale, format)} ${index2 === 0 ? "start" : "end"} range`;
1115
1116
  }
1116
- return format ? formatNumber(values[index], locale, format) : void 0;
1117
+ return format ? formatNumber(values[index2], locale, format) : void 0;
1117
1118
  }
1118
1119
  function getNewValue(thumbValue, increment, direction, min, max) {
1119
1120
  const value = thumbValue + increment * direction;
@@ -1208,9 +1209,9 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1208
1209
  } = useCompositeListItem({
1209
1210
  metadata: thumbMetadata
1210
1211
  });
1211
- const index = !range ? 0 : indexProp ?? compositeIndex;
1212
- const last = index === sliderValues.length - 1;
1213
- const thumbValue = sliderValues[index];
1212
+ const index$1 = !range ? 0 : indexProp ?? compositeIndex;
1213
+ const last = index$1 === sliderValues.length - 1;
1214
+ const thumbValue = sliderValues[index$1];
1214
1215
  const thumbValuePercent = valueToPercent(thumbValue, min, max);
1215
1216
  const [positionPercent, setPositionPercent] = reactExports.useState();
1216
1217
  const isHydrating = useIsHydrating();
@@ -1229,7 +1230,7 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1229
1230
  const nextPositionPercent = thumbOffsetFromControlEdge / controlRect[side] * 100;
1230
1231
  const nextInsetPosition = Number.isFinite(nextPositionPercent) ? nextPositionPercent : void 0;
1231
1232
  setPositionPercent(nextInsetPosition);
1232
- if (index === 0) {
1233
+ if (index$1 === 0) {
1233
1234
  setIndicatorPosition((prevPosition) => [nextInsetPosition, prevPosition[1]]);
1234
1235
  } else if (last) {
1235
1236
  setIndicatorPosition((prevPosition) => [prevPosition[0], nextInsetPosition]);
@@ -1269,12 +1270,12 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1269
1270
  const crossOffsetProperty = vertical ? "left" : "top";
1270
1271
  let zIndex;
1271
1272
  if (range) {
1272
- if (activeIndex === index) {
1273
+ if (activeIndex === index$1) {
1273
1274
  zIndex = 2;
1274
- } else if (safeLastUsedThumbIndex === index) {
1275
+ } else if (safeLastUsedThumbIndex === index$1) {
1275
1276
  zIndex = 1;
1276
1277
  }
1277
- } else if (activeIndex === index) {
1278
+ } else if (activeIndex === index$1) {
1278
1279
  zIndex = 1;
1279
1280
  }
1280
1281
  let thumbStyle;
@@ -1297,14 +1298,14 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1297
1298
  if (vertical) {
1298
1299
  cssWritingMode = rtl ? "vertical-rl" : "vertical-lr";
1299
1300
  }
1300
- const ariaLabel = typeof getAriaLabelProp === "function" ? getAriaLabelProp(index) : ariaLabelProp;
1301
+ const ariaLabel = typeof getAriaLabelProp === "function" ? getAriaLabelProp(index$1) : ariaLabelProp;
1301
1302
  const inputProps = mergeProps({
1302
1303
  "aria-label": ariaLabel,
1303
1304
  "aria-labelledby": ariaLabelledByProp ?? (ariaLabel == null ? labelId : void 0),
1304
1305
  "aria-describedby": ariaDescribedByProp,
1305
1306
  "aria-orientation": orientation,
1306
1307
  "aria-valuenow": thumbValue,
1307
- "aria-valuetext": typeof getAriaValueTextProp === "function" ? getAriaValueTextProp(formatNumber(thumbValue, locale, format), thumbValue, index) : ariaValueTextProp ?? getDefaultAriaValueText(sliderValues, index, format, locale),
1308
+ "aria-valuetext": typeof getAriaValueTextProp === "function" ? getAriaValueTextProp(formatNumber(thumbValue, locale, format), thumbValue, index$1) : ariaValueTextProp ?? getDefaultAriaValueText(sliderValues, index$1, format, locale),
1308
1309
  disabled,
1309
1310
  form,
1310
1311
  id: inputId,
@@ -1312,12 +1313,12 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1312
1313
  min,
1313
1314
  name,
1314
1315
  onChange(event) {
1315
- handleInputChange(event.currentTarget.valueAsNumber, index, event);
1316
+ handleInputChange(event.currentTarget.valueAsNumber, index$1, event);
1316
1317
  },
1317
1318
  onFocus(event) {
1318
1319
  const isRestoringFocusVisible = restoringFocusVisibleRef.current;
1319
1320
  restoringFocusVisibleRef.current = false;
1320
- setActive(index);
1321
+ setActive(index$1);
1321
1322
  setFocused(true);
1322
1323
  if (isRestoringFocusVisible) {
1323
1324
  event.stopPropagation();
@@ -1335,7 +1336,7 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1335
1336
  setTouched(true);
1336
1337
  setFocused(false);
1337
1338
  if (validationMode === "onBlur") {
1338
- validation.commit(getSliderValue(thumbValue, index, min, max, range, sliderValues));
1339
+ validation.commit(getSliderValue(thumbValue, index$1, min, max, range, sliderValues));
1339
1340
  }
1340
1341
  },
1341
1342
  onKeyDown(event) {
@@ -1374,10 +1375,10 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1374
1375
  direction2 = -1;
1375
1376
  break;
1376
1377
  case END:
1377
- newValue = range && Number.isFinite(sliderValues[index + 1]) ? sliderValues[index + 1] - step * minStepsBetweenValues : max;
1378
+ newValue = range && Number.isFinite(sliderValues[index$1 + 1]) ? sliderValues[index$1 + 1] - step * minStepsBetweenValues : max;
1378
1379
  break;
1379
1380
  case HOME:
1380
- newValue = range && Number.isFinite(sliderValues[index - 1]) ? sliderValues[index - 1] + step * minStepsBetweenValues : min;
1381
+ newValue = range && Number.isFinite(sliderValues[index$1 - 1]) ? sliderValues[index$1 - 1] + step * minStepsBetweenValues : min;
1381
1382
  break;
1382
1383
  }
1383
1384
  if (direction2 !== 0) {
@@ -1395,7 +1396,7 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1395
1396
  focusVisible: true
1396
1397
  });
1397
1398
  }
1398
- handleInputChange(newValue, index, event);
1399
+ handleInputChange(newValue, index$1, event);
1399
1400
  event.preventDefault();
1400
1401
  }
1401
1402
  },
@@ -1420,7 +1421,7 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1420
1421
  state,
1421
1422
  ref: [forwardedRef, listItemRef, thumbRef],
1422
1423
  props: [{
1423
- ["data-index"]: index,
1424
+ [index]: index$1,
1424
1425
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(reactExports.Fragment, {
1425
1426
  children: [childrenProp, /* @__PURE__ */ jsxRuntimeExports.jsx("input", {
1426
1427
  ref: mergedInputRef,
@@ -1435,7 +1436,7 @@ const SliderThumb = /* @__PURE__ */ reactExports.forwardRef(function SliderThumb
1435
1436
  if (disabled) {
1436
1437
  return;
1437
1438
  }
1438
- pressedThumbIndexRef.current = index;
1439
+ pressedThumbIndexRef.current = index$1;
1439
1440
  const midpoint = getMidpoint(event.currentTarget, vertical);
1440
1441
  pressedThumbCenterOffsetRef.current = (vertical ? event.clientY : event.clientX) - midpoint;
1441
1442
  },
@@ -1534,13 +1535,13 @@ function Slider({
1534
1535
  )
1535
1536
  }
1536
1537
  ),
1537
- Array.from({ length: _values.length }, (_2, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1538
+ Array.from({ length: _values.length }, (_2, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1538
1539
  SliderThumb,
1539
1540
  {
1540
1541
  "data-slot": "slider-thumb",
1541
- className: "relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50"
1542
+ className: "relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-1 focus-visible:ring-1 focus-visible:outline-hidden active:ring-1 disabled:pointer-events-none disabled:opacity-50"
1542
1543
  },
1543
- index
1544
+ index2
1544
1545
  ))
1545
1546
  ] })
1546
1547
  }
@@ -1559,6 +1560,8 @@ function SettingsGeneral() {
1559
1560
  setEditor,
1560
1561
  sound,
1561
1562
  setSound,
1563
+ voiceInput,
1564
+ setVoiceInput,
1562
1565
  proxy
1563
1566
  } = useAppStore();
1564
1567
  const { toast } = useMessage();
@@ -1609,6 +1612,17 @@ function SettingsGeneral() {
1609
1612
  );
1610
1613
  }
1611
1614
  };
1615
+ const handleVoiceInputShortcutChange = async (checked) => {
1616
+ const newVoiceInput = { ...voiceInput, altDoublePress: checked };
1617
+ setVoiceInput(newVoiceInput);
1618
+ try {
1619
+ await request.updateSettings({ voiceInput: newVoiceInput });
1620
+ } catch {
1621
+ toast.error(
1622
+ t("settings.general.saveVoiceInputFailed", "Failed to save voice input setting.")
1623
+ );
1624
+ }
1625
+ };
1612
1626
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col h-full", children: [
1613
1627
  /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-6 px-5 py-4 w-full max-w-4xl mx-auto", children: [
1614
1628
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
@@ -1685,6 +1699,26 @@ function SettingsGeneral() {
1685
1699
  ] }) })
1686
1700
  ] }),
1687
1701
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border" }),
1702
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
1703
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "text-xs font-semibold text-muted-foreground/60 uppercase tracking-wider mb-3", children: t("settings.general.groupVoiceInput", "Voice Input") }),
1704
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [
1705
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-1.5", children: [
1706
+ /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "text-sm font-medium leading-none", children: t("settings.general.altDoublePress", "Double-press Alt") }),
1707
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground/90", children: t(
1708
+ "settings.general.altDoublePressDesc",
1709
+ "Double-press Alt quickly while an input is focused to start or stop voice input."
1710
+ ) })
1711
+ ] }),
1712
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
1713
+ Switch,
1714
+ {
1715
+ checked: voiceInput.altDoublePress,
1716
+ onCheckedChange: handleVoiceInputShortcutChange
1717
+ }
1718
+ )
1719
+ ] }) })
1720
+ ] }),
1721
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border" }),
1688
1722
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
1689
1723
  /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "text-xs font-semibold text-muted-foreground/60 uppercase tracking-wider mb-3", children: t("settings.general.groupNetwork", "Network") }),
1690
1724
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [