@zythum02/fello-server 0.1.55 → 0.1.57

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 (396) hide show
  1. package/out/renderer/assets/PopoverPopup-BcHY-oda.js +591 -0
  2. package/out/renderer/assets/PopoverPopup-BcHY-oda.js.br +0 -0
  3. package/out/renderer/assets/PopoverPopup-BcHY-oda.js.gz +0 -0
  4. package/out/renderer/assets/{_baseUniq-BdLqGxOi.js → _baseUniq-KD2XGr9F.js} +1 -1
  5. package/out/renderer/assets/_baseUniq-KD2XGr9F.js.br +0 -0
  6. package/out/renderer/assets/_baseUniq-KD2XGr9F.js.gz +0 -0
  7. package/out/renderer/assets/{arc-UpL8po5R.js → arc-CR7wDdln.js} +1 -1
  8. package/out/renderer/assets/arc-CR7wDdln.js.br +0 -0
  9. package/out/renderer/assets/arc-CR7wDdln.js.gz +0 -0
  10. package/out/renderer/assets/{architectureDiagram-Q4EWVU46-ManEkEbl.js → architectureDiagram-Q4EWVU46-ob7rXg_N.js} +6 -6
  11. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ob7rXg_N.js.br +0 -0
  12. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ob7rXg_N.js.gz +0 -0
  13. package/out/renderer/assets/{arrow-left-BnuWerui.js → arrow-left-Ck_ZVJr5.js} +1 -1
  14. package/out/renderer/assets/{arrow-up-quD46bYg.js → arrow-up-D7cOrlYE.js} +4 -15
  15. package/out/renderer/assets/{automation-cVl19jbl.js → automation-W30eYgU8.js} +36 -13
  16. package/out/renderer/assets/automation-W30eYgU8.js.br +0 -0
  17. package/out/renderer/assets/automation-W30eYgU8.js.gz +0 -0
  18. package/out/renderer/assets/{blockDiagram-DXYQGD6D-B7n8X8F6.js → blockDiagram-DXYQGD6D-DH0dgWHF.js} +7 -7
  19. package/out/renderer/assets/blockDiagram-DXYQGD6D-DH0dgWHF.js.br +0 -0
  20. package/out/renderer/assets/blockDiagram-DXYQGD6D-DH0dgWHF.js.gz +0 -0
  21. package/out/renderer/assets/{c4Diagram-AHTNJAMY-BoP_JNY0.js → c4Diagram-AHTNJAMY--55RlH_-.js} +3 -3
  22. package/out/renderer/assets/c4Diagram-AHTNJAMY--55RlH_-.js.br +0 -0
  23. package/out/renderer/assets/c4Diagram-AHTNJAMY--55RlH_-.js.gz +0 -0
  24. package/out/renderer/assets/{channel-BTAU8ahK.js → channel-Bz679Wzq.js} +1 -1
  25. package/out/renderer/assets/{chunk-4BX2VUAB-BCKz1EgZ.js → chunk-4BX2VUAB-0jn0O1rt.js} +1 -1
  26. package/out/renderer/assets/{chunk-4TB4RGXK-B2HhnMqB.js → chunk-4TB4RGXK-BI1TetiG.js} +5 -5
  27. package/out/renderer/assets/chunk-4TB4RGXK-BI1TetiG.js.br +0 -0
  28. package/out/renderer/assets/chunk-4TB4RGXK-BI1TetiG.js.gz +0 -0
  29. package/out/renderer/assets/{chunk-55IACEB6-Drurz_4k.js → chunk-55IACEB6-9LfmpuHC.js} +1 -1
  30. package/out/renderer/assets/{chunk-EDXVE4YY-Xfghcg7b.js → chunk-EDXVE4YY-CtHVLcvG.js} +1 -1
  31. package/out/renderer/assets/chunk-EDXVE4YY-CtHVLcvG.js.br +0 -0
  32. package/out/renderer/assets/chunk-EDXVE4YY-CtHVLcvG.js.gz +0 -0
  33. package/out/renderer/assets/{chunk-FMBD7UC4-Birgz8kz.js → chunk-FMBD7UC4-eUJaG2CL.js} +1 -1
  34. package/out/renderer/assets/{chunk-OYMX7WX6-Cv4jgShd.js → chunk-OYMX7WX6-D-sPmxYW.js} +3 -3
  35. package/out/renderer/assets/chunk-OYMX7WX6-D-sPmxYW.js.br +0 -0
  36. package/out/renderer/assets/chunk-OYMX7WX6-D-sPmxYW.js.gz +0 -0
  37. package/out/renderer/assets/{chunk-QZHKN3VN-DkqKjktH.js → chunk-QZHKN3VN-Pdv-mSqK.js} +1 -1
  38. package/out/renderer/assets/{chunk-YZCP3GAM-CJK_tBTq.js → chunk-YZCP3GAM-DLpllNY2.js} +1 -1
  39. package/out/renderer/assets/chunk-YZCP3GAM-DLpllNY2.js.br +0 -0
  40. package/out/renderer/assets/chunk-YZCP3GAM-DLpllNY2.js.gz +0 -0
  41. package/out/renderer/assets/{circle-x-C9_Yp0Tg.js → circle-x-Cs_T6g0B.js} +1 -1
  42. package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-Bf4To0VI.js → classDiagram-6PBFFD2Q-BQx6mUfF.js} +7 -7
  43. package/out/renderer/assets/{classDiagram-6PBFFD2Q-Bf4To0VI.js → classDiagram-v2-HSJHXN6E-BQx6mUfF.js} +7 -7
  44. package/out/renderer/assets/{clone-Ci5J50Pn.js → clone-DsYDv_WX.js} +1 -1
  45. package/out/renderer/assets/{code-editor-BwPwET3m.js → code-editor-Ce-8PAj3.js} +2 -2
  46. package/out/renderer/assets/code-editor-Ce-8PAj3.js.br +0 -0
  47. package/out/renderer/assets/code-editor-Ce-8PAj3.js.gz +0 -0
  48. package/out/renderer/assets/{collapsible-CMQ8h8ID.js → collapsible-CKgHeKAs.js} +1 -1
  49. package/out/renderer/assets/collapsible-CKgHeKAs.js.br +0 -0
  50. package/out/renderer/assets/collapsible-CKgHeKAs.js.gz +0 -0
  51. package/out/renderer/assets/{command-nKlwdb6i.js → command-Cgkdasyl.js} +1 -1
  52. package/out/renderer/assets/{cose-bilkent-S5V4N54A-BZpcn2q9.js → cose-bilkent-S5V4N54A-hNCr9Ibx.js} +2 -2
  53. package/out/renderer/assets/cose-bilkent-S5V4N54A-hNCr9Ibx.js.br +0 -0
  54. package/out/renderer/assets/cose-bilkent-S5V4N54A-hNCr9Ibx.js.gz +0 -0
  55. package/out/renderer/assets/{dagre-KV5264BT-onHZodsn.js → dagre-KV5264BT-CGyBht8M.js} +7 -7
  56. package/out/renderer/assets/dagre-KV5264BT-CGyBht8M.js.br +0 -0
  57. package/out/renderer/assets/dagre-KV5264BT-CGyBht8M.js.gz +0 -0
  58. package/out/renderer/assets/{diagram-5BDNPKRD-y3QVYwp7.js → diagram-5BDNPKRD-BiZfiCzA.js} +7 -7
  59. package/out/renderer/assets/diagram-5BDNPKRD-BiZfiCzA.js.br +0 -0
  60. package/out/renderer/assets/diagram-5BDNPKRD-BiZfiCzA.js.gz +0 -0
  61. package/out/renderer/assets/{diagram-G4DWMVQ6-LB3RUjrJ.js → diagram-G4DWMVQ6-CWj4c_xE.js} +7 -7
  62. package/out/renderer/assets/diagram-G4DWMVQ6-CWj4c_xE.js.br +0 -0
  63. package/out/renderer/assets/diagram-G4DWMVQ6-CWj4c_xE.js.gz +0 -0
  64. package/out/renderer/assets/{diagram-MMDJMWI5-7NpY26IL.js → diagram-MMDJMWI5-iBnXAZDJ.js} +6 -6
  65. package/out/renderer/assets/diagram-MMDJMWI5-iBnXAZDJ.js.br +0 -0
  66. package/out/renderer/assets/diagram-MMDJMWI5-iBnXAZDJ.js.gz +0 -0
  67. package/out/renderer/assets/{diagram-TYMM5635-DRM1RRr4.js → diagram-TYMM5635-C7IGtL42.js} +6 -6
  68. package/out/renderer/assets/diagram-TYMM5635-C7IGtL42.js.br +0 -0
  69. package/out/renderer/assets/diagram-TYMM5635-C7IGtL42.js.gz +0 -0
  70. package/out/renderer/assets/{ellipsis-D_eCkauJ.js → ellipsis-DSui0Rae.js} +1 -1
  71. package/out/renderer/assets/{erDiagram-SMLLAGMA-DNIZ639C.js → erDiagram-SMLLAGMA-ChPUl_x9.js} +5 -5
  72. package/out/renderer/assets/erDiagram-SMLLAGMA-ChPUl_x9.js.br +0 -0
  73. package/out/renderer/assets/erDiagram-SMLLAGMA-ChPUl_x9.js.gz +0 -0
  74. package/out/renderer/assets/external-link-CoW4VuI3.js +15 -0
  75. package/out/renderer/assets/{field-YZTi9Jxc.js → field-CXofwfDF.js} +1 -1
  76. package/out/renderer/assets/field-CXofwfDF.js.br +0 -0
  77. package/out/renderer/assets/field-CXofwfDF.js.gz +0 -0
  78. package/out/renderer/assets/{file-text-DDtS1g4Q.js → file-text-CwFSQGtt.js} +1 -1
  79. package/out/renderer/assets/{flowDiagram-DWJPFMVM-C0ghMibN.js → flowDiagram-DWJPFMVM-C5Zt4Sfn.js} +7 -7
  80. package/out/renderer/assets/flowDiagram-DWJPFMVM-C5Zt4Sfn.js.br +0 -0
  81. package/out/renderer/assets/flowDiagram-DWJPFMVM-C5Zt4Sfn.js.gz +0 -0
  82. package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-tqeHqMu4.js → ganttDiagram-T4ZO3ILL-Cp30RG1g.js} +3 -3
  83. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-Cp30RG1g.js.br +0 -0
  84. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-Cp30RG1g.js.gz +0 -0
  85. package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-D6acFhfE.js → gitGraphDiagram-UUTBAWPF-CkfzOUvM.js} +7 -7
  86. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-CkfzOUvM.js.br +0 -0
  87. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-CkfzOUvM.js.gz +0 -0
  88. package/out/renderer/assets/{graph-DqFGMaSz.js → graph-HfEt9-p2.js} +2 -2
  89. package/out/renderer/assets/graph-HfEt9-p2.js.br +0 -0
  90. package/out/renderer/assets/graph-HfEt9-p2.js.gz +0 -0
  91. package/out/renderer/assets/{highlighted-body-KPVGNVTW-D2IZ7Enb.js → highlighted-body-KPVGNVTW-CUokS6r6.js} +2 -2
  92. package/out/renderer/assets/index-Byirxhp5.css +382 -0
  93. package/out/renderer/assets/index-Byirxhp5.css.br +0 -0
  94. package/out/renderer/assets/index-Byirxhp5.css.gz +0 -0
  95. package/out/renderer/assets/{index-BeEZXfJZ.js → index-CKDwIiIb.js} +2277 -923
  96. package/out/renderer/assets/index-CKDwIiIb.js.br +0 -0
  97. package/out/renderer/assets/index-CKDwIiIb.js.gz +0 -0
  98. package/out/renderer/assets/{infoDiagram-42DDH7IO-BJeydI3V.js → infoDiagram-42DDH7IO-DbQvToBf.js} +5 -5
  99. package/out/renderer/assets/infoDiagram-42DDH7IO-DbQvToBf.js.br +0 -0
  100. package/out/renderer/assets/infoDiagram-42DDH7IO-DbQvToBf.js.gz +0 -0
  101. package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-DPgToD8D.js → ishikawaDiagram-UXIWVN3A-Crmx2UcL.js} +2 -2
  102. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-Crmx2UcL.js.br +0 -0
  103. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-Crmx2UcL.js.gz +0 -0
  104. package/out/renderer/assets/{item-SQsw2AyN.js → item-2gdt65LZ.js} +1 -1
  105. package/out/renderer/assets/item-2gdt65LZ.js.br +0 -0
  106. package/out/renderer/assets/item-2gdt65LZ.js.gz +0 -0
  107. package/out/renderer/assets/{journeyDiagram-VCZTEJTY-CAnZXd__.js → journeyDiagram-VCZTEJTY-BD3MzoDm.js} +5 -5
  108. package/out/renderer/assets/journeyDiagram-VCZTEJTY-BD3MzoDm.js.br +0 -0
  109. package/out/renderer/assets/journeyDiagram-VCZTEJTY-BD3MzoDm.js.gz +0 -0
  110. package/out/renderer/assets/{kanban-definition-6JOO6SKY-VCfgwCTi.js → kanban-definition-6JOO6SKY-DlPWdcq8.js} +3 -3
  111. package/out/renderer/assets/kanban-definition-6JOO6SKY-DlPWdcq8.js.br +0 -0
  112. package/out/renderer/assets/kanban-definition-6JOO6SKY-DlPWdcq8.js.gz +0 -0
  113. package/out/renderer/assets/keyboard-BmncEbVT.js +21 -0
  114. package/out/renderer/assets/{layout-lw2KhCMB.js → layout-OHsAY-70.js} +4 -4
  115. package/out/renderer/assets/layout-OHsAY-70.js.br +0 -0
  116. package/out/renderer/assets/layout-OHsAY-70.js.gz +0 -0
  117. package/out/renderer/assets/{linear-DmbMR7a-.js → linear-CnBTAk2r.js} +1 -1
  118. package/out/renderer/assets/linear-CnBTAk2r.js.br +0 -0
  119. package/out/renderer/assets/linear-CnBTAk2r.js.gz +0 -0
  120. package/out/renderer/assets/{link-2-CWpGKoWR.js → link-2-CABYiITN.js} +3 -15
  121. package/out/renderer/assets/{mermaid-HWGCJPDP-BufLuIVq.js → mermaid-HWGCJPDP-OB5tfzeR.js} +58 -54
  122. package/out/renderer/assets/mermaid-HWGCJPDP-OB5tfzeR.js.br +0 -0
  123. package/out/renderer/assets/mermaid-HWGCJPDP-OB5tfzeR.js.gz +0 -0
  124. package/out/renderer/assets/{mic-UZHvCQhw.js → mic-Bu7eaTKt.js} +1 -1
  125. package/out/renderer/assets/{min-BCqStlR1.js → min-lM3sC06g.js} +2 -2
  126. package/out/renderer/assets/min-lM3sC06g.js.br +0 -0
  127. package/out/renderer/assets/min-lM3sC06g.js.gz +0 -0
  128. package/out/renderer/assets/{mindmap-definition-QFDTVHPH-C0dBO3f9.js → mindmap-definition-QFDTVHPH-2KHTVjBe.js} +4 -4
  129. package/out/renderer/assets/mindmap-definition-QFDTVHPH-2KHTVjBe.js.br +0 -0
  130. package/out/renderer/assets/mindmap-definition-QFDTVHPH-2KHTVjBe.js.gz +0 -0
  131. package/out/renderer/assets/{open-guide-CWoE2W97.js → open-guide-CKryRC5n.js} +1 -1
  132. package/out/renderer/assets/{package-search-SZPcR_1L.js → package-search-DPG91yZB.js} +1 -1
  133. package/out/renderer/assets/{pieDiagram-DEJITSTG-Dv_tH6Z_.js → pieDiagram-DEJITSTG-CWRoGvfQ.js} +7 -7
  134. package/out/renderer/assets/pieDiagram-DEJITSTG-CWRoGvfQ.js.br +0 -0
  135. package/out/renderer/assets/pieDiagram-DEJITSTG-CWRoGvfQ.js.gz +0 -0
  136. package/out/renderer/assets/{plus-BZ0wwKkh.js → plus-CFoa8VhI.js} +1 -1
  137. package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-Cvsj5cyu.js → quadrantDiagram-34T5L4WZ-BJVP6FPm.js} +3 -3
  138. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-BJVP6FPm.js.br +0 -0
  139. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-BJVP6FPm.js.gz +0 -0
  140. package/out/renderer/assets/{requirementDiagram-MS252O5E-CxM7H308.js → requirementDiagram-MS252O5E-_MTj_l0V.js} +4 -4
  141. package/out/renderer/assets/requirementDiagram-MS252O5E-_MTj_l0V.js.br +0 -0
  142. package/out/renderer/assets/requirementDiagram-MS252O5E-_MTj_l0V.js.gz +0 -0
  143. package/out/renderer/assets/{resizable-DD8ADhVy.js → resizable-CcCcCDAN.js} +1 -1
  144. package/out/renderer/assets/resizable-CcCcCDAN.js.br +0 -0
  145. package/out/renderer/assets/resizable-CcCcCDAN.js.gz +0 -0
  146. package/out/renderer/assets/{sankeyDiagram-XADWPNL6-BGTOA6ee.js → sankeyDiagram-XADWPNL6-BWkr3adU.js} +2 -2
  147. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BWkr3adU.js.br +0 -0
  148. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BWkr3adU.js.gz +0 -0
  149. package/out/renderer/assets/{schedule-DMyyz9A1.js → schedule-H1BEvD9Q.js} +24 -11
  150. package/out/renderer/assets/schedule-H1BEvD9Q.js.br +0 -0
  151. package/out/renderer/assets/schedule-H1BEvD9Q.js.gz +0 -0
  152. package/out/renderer/assets/{search-XexOgLud.js → search-B3aFhEKs.js} +1 -1
  153. package/out/renderer/assets/{sequenceDiagram-FGHM5R23-DezlXo1X.js → sequenceDiagram-FGHM5R23-CfRs3_Dx.js} +4 -4
  154. package/out/renderer/assets/sequenceDiagram-FGHM5R23-CfRs3_Dx.js.br +0 -0
  155. package/out/renderer/assets/sequenceDiagram-FGHM5R23-CfRs3_Dx.js.gz +0 -0
  156. package/out/renderer/assets/{session-DQEqHTKb.js → session-D6NE3yNE.js} +2327 -2791
  157. package/out/renderer/assets/session-D6NE3yNE.js.br +0 -0
  158. package/out/renderer/assets/session-D6NE3yNE.js.gz +0 -0
  159. package/out/renderer/assets/setting-dialog-CANlzubW.js +5086 -0
  160. package/out/renderer/assets/setting-dialog-CANlzubW.js.br +0 -0
  161. package/out/renderer/assets/setting-dialog-CANlzubW.js.gz +0 -0
  162. package/out/renderer/assets/{settings-agents-f3HkdiTw.js → settings-agents-DxIwcY7M.js} +12 -12
  163. package/out/renderer/assets/settings-agents-DxIwcY7M.js.br +0 -0
  164. package/out/renderer/assets/settings-agents-DxIwcY7M.js.gz +0 -0
  165. package/out/renderer/assets/settings-general-B85uTAij.js +624 -0
  166. package/out/renderer/assets/settings-general-B85uTAij.js.br +0 -0
  167. package/out/renderer/assets/settings-general-B85uTAij.js.gz +0 -0
  168. package/out/renderer/assets/{settings-ilink-Da336Koc.js → settings-ilink-BgeA04Nv.js} +51 -20
  169. package/out/renderer/assets/settings-ilink-BgeA04Nv.js.br +0 -0
  170. package/out/renderer/assets/settings-ilink-BgeA04Nv.js.gz +0 -0
  171. package/out/renderer/assets/{settings-image-generation-RmWs73ZG.js → settings-image-generation-CsWv4wXY.js} +6 -6
  172. package/out/renderer/assets/settings-image-generation-CsWv4wXY.js.br +0 -0
  173. package/out/renderer/assets/settings-image-generation-CsWv4wXY.js.gz +0 -0
  174. package/out/renderer/assets/{settings-layout-DL6ZEzgP.js → settings-layout-DJbT4rIH.js} +32 -7
  175. package/out/renderer/assets/settings-layout-DJbT4rIH.js.br +0 -0
  176. package/out/renderer/assets/settings-layout-DJbT4rIH.js.gz +0 -0
  177. package/out/renderer/assets/{settings-mcp-BKW8JKtO.js → settings-mcp-Cz6GMogp.js} +97 -29
  178. package/out/renderer/assets/settings-mcp-Cz6GMogp.js.br +0 -0
  179. package/out/renderer/assets/settings-mcp-Cz6GMogp.js.gz +0 -0
  180. package/out/renderer/assets/{settings-memory-o4r-_vob.js → settings-memory-Cidr_Ghw.js} +2 -2
  181. package/out/renderer/assets/settings-memory-Cidr_Ghw.js.br +0 -0
  182. package/out/renderer/assets/settings-memory-Cidr_Ghw.js.gz +0 -0
  183. package/out/renderer/assets/settings-peripherals-DilwOpyO.js +269 -0
  184. package/out/renderer/assets/settings-peripherals-DilwOpyO.js.br +0 -0
  185. package/out/renderer/assets/settings-peripherals-DilwOpyO.js.gz +0 -0
  186. package/out/renderer/assets/{settings-shortcuts-BmUGS1q_.js → settings-shortcuts-dWdRCFxB.js} +16 -6
  187. package/out/renderer/assets/settings-shortcuts-dWdRCFxB.js.br +0 -0
  188. package/out/renderer/assets/settings-shortcuts-dWdRCFxB.js.gz +0 -0
  189. package/out/renderer/assets/{settings-snippets-CpAOJmDF.js → settings-snippets-CrtJYwLV.js} +9 -9
  190. package/out/renderer/assets/settings-snippets-CrtJYwLV.js.br +0 -0
  191. package/out/renderer/assets/settings-snippets-CrtJYwLV.js.gz +0 -0
  192. package/out/renderer/assets/settings-speech-CteE8F4J.js +1369 -0
  193. package/out/renderer/assets/settings-speech-CteE8F4J.js.br +0 -0
  194. package/out/renderer/assets/settings-speech-CteE8F4J.js.gz +0 -0
  195. package/out/renderer/assets/{settings-webui-DIEKvTrI.js → settings-webui-DKiOzDSD.js} +3 -3
  196. package/out/renderer/assets/settings-webui-DKiOzDSD.js.br +0 -0
  197. package/out/renderer/assets/settings-webui-DKiOzDSD.js.gz +0 -0
  198. package/out/renderer/assets/{skills-installed-BuWBDk6r.js → skills-installed-Beqe9G7p.js} +4 -4
  199. package/out/renderer/assets/skills-installed-Beqe9G7p.js.br +0 -0
  200. package/out/renderer/assets/skills-installed-Beqe9G7p.js.gz +0 -0
  201. package/out/renderer/assets/{skills-layout-ByPhfHG6.js → skills-layout-BAzfcnkT.js} +2 -2
  202. package/out/renderer/assets/skills-layout-BAzfcnkT.js.br +0 -0
  203. package/out/renderer/assets/skills-layout-BAzfcnkT.js.gz +0 -0
  204. package/out/renderer/assets/{skills-skills-sh-wR7YNmAJ.js → skills-skills-sh-Dzocqfu4.js} +4 -4
  205. package/out/renderer/assets/skills-skills-sh-Dzocqfu4.js.br +0 -0
  206. package/out/renderer/assets/skills-skills-sh-Dzocqfu4.js.gz +0 -0
  207. package/out/renderer/assets/{settings-general-BcCOVmx3.js → slider-DEK94SlL.js} +4 -623
  208. package/out/renderer/assets/slider-DEK94SlL.js.br +0 -0
  209. package/out/renderer/assets/slider-DEK94SlL.js.gz +0 -0
  210. package/out/renderer/assets/{sortable.esm-BWvT9HIK.js → sortable.esm-Cm4rqFU7.js} +1 -1
  211. package/out/renderer/assets/sortable.esm-Cm4rqFU7.js.br +0 -0
  212. package/out/renderer/assets/sortable.esm-Cm4rqFU7.js.gz +0 -0
  213. package/out/renderer/assets/{standard-schema-BkTVIf7N.js → standard-schema-B43ZsT5c.js} +52 -1
  214. package/out/renderer/assets/standard-schema-B43ZsT5c.js.br +0 -0
  215. package/out/renderer/assets/standard-schema-B43ZsT5c.js.gz +0 -0
  216. package/out/renderer/assets/{stateDiagram-FHFEXIEX-xdKKCs-p.js → stateDiagram-FHFEXIEX-CaiRC_NA.js} +9 -9
  217. package/out/renderer/assets/stateDiagram-FHFEXIEX-CaiRC_NA.js.br +0 -0
  218. package/out/renderer/assets/stateDiagram-FHFEXIEX-CaiRC_NA.js.gz +0 -0
  219. package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-BaaiQ6Kr.js → stateDiagram-v2-QKLJ7IA2-EA3ViVW-.js} +5 -5
  220. package/out/renderer/assets/{task-PHAOSE-W.js → task-DM-bWOFz.js} +13 -11
  221. package/out/renderer/assets/task-DM-bWOFz.js.br +0 -0
  222. package/out/renderer/assets/task-DM-bWOFz.js.gz +0 -0
  223. package/out/renderer/assets/{textarea-1ZWl3C-x.js → textarea-B0OAhnF7.js} +1 -1
  224. package/out/renderer/assets/{timeline-definition-GMOUNBTQ-DFLeLybV.js → timeline-definition-GMOUNBTQ-D-M9BAZz.js} +3 -3
  225. package/out/renderer/assets/timeline-definition-GMOUNBTQ-D-M9BAZz.js.br +0 -0
  226. package/out/renderer/assets/timeline-definition-GMOUNBTQ-D-M9BAZz.js.gz +0 -0
  227. package/out/renderer/assets/{vennDiagram-DHZGUBPP-PKmZLY7H.js → vennDiagram-DHZGUBPP-B_yjg_0U.js} +2 -2
  228. package/out/renderer/assets/vennDiagram-DHZGUBPP-B_yjg_0U.js.br +0 -0
  229. package/out/renderer/assets/vennDiagram-DHZGUBPP-B_yjg_0U.js.gz +0 -0
  230. package/out/renderer/assets/{wardley-RL74JXVD-BCH2vKnv.js → wardley-RL74JXVD-2Xd7XlwA.js} +4 -4
  231. package/out/renderer/assets/wardley-RL74JXVD-2Xd7XlwA.js.br +0 -0
  232. package/out/renderer/assets/wardley-RL74JXVD-2Xd7XlwA.js.gz +0 -0
  233. package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-Bkd3xMno.js → wardleyDiagram-NUSXRM2D-BA9tzMk-.js} +6 -6
  234. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BA9tzMk-.js.br +0 -0
  235. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BA9tzMk-.js.gz +0 -0
  236. package/out/renderer/assets/{wrench-8H0LZ83G.js → wrench-QfEqqx9F.js} +1 -1
  237. package/out/renderer/assets/wrench-QfEqqx9F.js.br +0 -0
  238. package/out/renderer/assets/wrench-QfEqqx9F.js.gz +0 -0
  239. package/out/renderer/assets/{xlsx-view-BYx5Ha2P.js → xlsx-view-Bov2NXsI.js} +141 -79
  240. package/out/renderer/assets/xlsx-view-Bov2NXsI.js.br +0 -0
  241. package/out/renderer/assets/xlsx-view-Bov2NXsI.js.gz +0 -0
  242. package/out/renderer/assets/{xychartDiagram-5P7HB3ND-DCOm4uPr.js → xychartDiagram-5P7HB3ND-svs-11is.js} +3 -3
  243. package/out/renderer/assets/xychartDiagram-5P7HB3ND-svs-11is.js.br +0 -0
  244. package/out/renderer/assets/xychartDiagram-5P7HB3ND-svs-11is.js.gz +0 -0
  245. package/out/renderer/index.html +2 -2
  246. package/out/renderer/index.html.br +0 -0
  247. package/out/renderer/index.html.gz +0 -0
  248. package/out/scripts/mcp-toolbox/server.mjs +80 -1
  249. package/out/server/main.js +1576 -353
  250. package/package.json +3 -2
  251. package/out/renderer/assets/_baseUniq-BdLqGxOi.js.br +0 -0
  252. package/out/renderer/assets/_baseUniq-BdLqGxOi.js.gz +0 -0
  253. package/out/renderer/assets/arc-UpL8po5R.js.br +0 -0
  254. package/out/renderer/assets/arc-UpL8po5R.js.gz +0 -0
  255. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ManEkEbl.js.br +0 -0
  256. package/out/renderer/assets/architectureDiagram-Q4EWVU46-ManEkEbl.js.gz +0 -0
  257. package/out/renderer/assets/automation-cVl19jbl.js.br +0 -0
  258. package/out/renderer/assets/automation-cVl19jbl.js.gz +0 -0
  259. package/out/renderer/assets/blockDiagram-DXYQGD6D-B7n8X8F6.js.br +0 -0
  260. package/out/renderer/assets/blockDiagram-DXYQGD6D-B7n8X8F6.js.gz +0 -0
  261. package/out/renderer/assets/c4Diagram-AHTNJAMY-BoP_JNY0.js.br +0 -0
  262. package/out/renderer/assets/c4Diagram-AHTNJAMY-BoP_JNY0.js.gz +0 -0
  263. package/out/renderer/assets/chunk-4TB4RGXK-B2HhnMqB.js.br +0 -0
  264. package/out/renderer/assets/chunk-4TB4RGXK-B2HhnMqB.js.gz +0 -0
  265. package/out/renderer/assets/chunk-EDXVE4YY-Xfghcg7b.js.br +0 -0
  266. package/out/renderer/assets/chunk-EDXVE4YY-Xfghcg7b.js.gz +0 -0
  267. package/out/renderer/assets/chunk-OYMX7WX6-Cv4jgShd.js.br +0 -0
  268. package/out/renderer/assets/chunk-OYMX7WX6-Cv4jgShd.js.gz +0 -0
  269. package/out/renderer/assets/chunk-YZCP3GAM-CJK_tBTq.js.br +0 -0
  270. package/out/renderer/assets/chunk-YZCP3GAM-CJK_tBTq.js.gz +0 -0
  271. package/out/renderer/assets/code-editor-BwPwET3m.js.br +0 -0
  272. package/out/renderer/assets/code-editor-BwPwET3m.js.gz +0 -0
  273. package/out/renderer/assets/collapsible-CMQ8h8ID.js.br +0 -0
  274. package/out/renderer/assets/collapsible-CMQ8h8ID.js.gz +0 -0
  275. package/out/renderer/assets/cose-bilkent-S5V4N54A-BZpcn2q9.js.br +0 -0
  276. package/out/renderer/assets/cose-bilkent-S5V4N54A-BZpcn2q9.js.gz +0 -0
  277. package/out/renderer/assets/dagre-KV5264BT-onHZodsn.js.br +0 -0
  278. package/out/renderer/assets/dagre-KV5264BT-onHZodsn.js.gz +0 -0
  279. package/out/renderer/assets/diagram-5BDNPKRD-y3QVYwp7.js.br +0 -0
  280. package/out/renderer/assets/diagram-5BDNPKRD-y3QVYwp7.js.gz +0 -0
  281. package/out/renderer/assets/diagram-G4DWMVQ6-LB3RUjrJ.js.br +0 -0
  282. package/out/renderer/assets/diagram-G4DWMVQ6-LB3RUjrJ.js.gz +0 -0
  283. package/out/renderer/assets/diagram-MMDJMWI5-7NpY26IL.js.br +0 -0
  284. package/out/renderer/assets/diagram-MMDJMWI5-7NpY26IL.js.gz +0 -0
  285. package/out/renderer/assets/diagram-TYMM5635-DRM1RRr4.js.br +0 -0
  286. package/out/renderer/assets/diagram-TYMM5635-DRM1RRr4.js.gz +0 -0
  287. package/out/renderer/assets/erDiagram-SMLLAGMA-DNIZ639C.js.br +0 -0
  288. package/out/renderer/assets/erDiagram-SMLLAGMA-DNIZ639C.js.gz +0 -0
  289. package/out/renderer/assets/field-YZTi9Jxc.js.br +0 -0
  290. package/out/renderer/assets/field-YZTi9Jxc.js.gz +0 -0
  291. package/out/renderer/assets/flowDiagram-DWJPFMVM-C0ghMibN.js.br +0 -0
  292. package/out/renderer/assets/flowDiagram-DWJPFMVM-C0ghMibN.js.gz +0 -0
  293. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-tqeHqMu4.js.br +0 -0
  294. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-tqeHqMu4.js.gz +0 -0
  295. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D6acFhfE.js.br +0 -0
  296. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D6acFhfE.js.gz +0 -0
  297. package/out/renderer/assets/graph-DqFGMaSz.js.br +0 -0
  298. package/out/renderer/assets/graph-DqFGMaSz.js.gz +0 -0
  299. package/out/renderer/assets/index-BZTYKZe8.css +0 -382
  300. package/out/renderer/assets/index-BZTYKZe8.css.br +0 -0
  301. package/out/renderer/assets/index-BZTYKZe8.css.gz +0 -0
  302. package/out/renderer/assets/index-BeEZXfJZ.js.br +0 -0
  303. package/out/renderer/assets/index-BeEZXfJZ.js.gz +0 -0
  304. package/out/renderer/assets/infoDiagram-42DDH7IO-BJeydI3V.js.br +0 -0
  305. package/out/renderer/assets/infoDiagram-42DDH7IO-BJeydI3V.js.gz +0 -0
  306. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-DPgToD8D.js.br +0 -0
  307. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-DPgToD8D.js.gz +0 -0
  308. package/out/renderer/assets/item-SQsw2AyN.js.br +0 -0
  309. package/out/renderer/assets/item-SQsw2AyN.js.gz +0 -0
  310. package/out/renderer/assets/journeyDiagram-VCZTEJTY-CAnZXd__.js.br +0 -0
  311. package/out/renderer/assets/journeyDiagram-VCZTEJTY-CAnZXd__.js.gz +0 -0
  312. package/out/renderer/assets/kanban-definition-6JOO6SKY-VCfgwCTi.js.br +0 -0
  313. package/out/renderer/assets/kanban-definition-6JOO6SKY-VCfgwCTi.js.gz +0 -0
  314. package/out/renderer/assets/layout-lw2KhCMB.js.br +0 -0
  315. package/out/renderer/assets/layout-lw2KhCMB.js.gz +0 -0
  316. package/out/renderer/assets/linear-DmbMR7a-.js.br +0 -0
  317. package/out/renderer/assets/linear-DmbMR7a-.js.gz +0 -0
  318. package/out/renderer/assets/link-2-CWpGKoWR.js.br +0 -0
  319. package/out/renderer/assets/link-2-CWpGKoWR.js.gz +0 -0
  320. package/out/renderer/assets/mermaid-HWGCJPDP-BufLuIVq.js.br +0 -0
  321. package/out/renderer/assets/mermaid-HWGCJPDP-BufLuIVq.js.gz +0 -0
  322. package/out/renderer/assets/min-BCqStlR1.js.br +0 -0
  323. package/out/renderer/assets/min-BCqStlR1.js.gz +0 -0
  324. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C0dBO3f9.js.br +0 -0
  325. package/out/renderer/assets/mindmap-definition-QFDTVHPH-C0dBO3f9.js.gz +0 -0
  326. package/out/renderer/assets/pieDiagram-DEJITSTG-Dv_tH6Z_.js.br +0 -0
  327. package/out/renderer/assets/pieDiagram-DEJITSTG-Dv_tH6Z_.js.gz +0 -0
  328. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-Cvsj5cyu.js.br +0 -0
  329. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-Cvsj5cyu.js.gz +0 -0
  330. package/out/renderer/assets/requirementDiagram-MS252O5E-CxM7H308.js.br +0 -0
  331. package/out/renderer/assets/requirementDiagram-MS252O5E-CxM7H308.js.gz +0 -0
  332. package/out/renderer/assets/resizable-DD8ADhVy.js.br +0 -0
  333. package/out/renderer/assets/resizable-DD8ADhVy.js.gz +0 -0
  334. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BGTOA6ee.js.br +0 -0
  335. package/out/renderer/assets/sankeyDiagram-XADWPNL6-BGTOA6ee.js.gz +0 -0
  336. package/out/renderer/assets/schedule-DMyyz9A1.js.br +0 -0
  337. package/out/renderer/assets/schedule-DMyyz9A1.js.gz +0 -0
  338. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DezlXo1X.js.br +0 -0
  339. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DezlXo1X.js.gz +0 -0
  340. package/out/renderer/assets/session-DQEqHTKb.js.br +0 -0
  341. package/out/renderer/assets/session-DQEqHTKb.js.gz +0 -0
  342. package/out/renderer/assets/setting-dialog-BdiZbd8J.js +0 -642
  343. package/out/renderer/assets/setting-dialog-BdiZbd8J.js.br +0 -0
  344. package/out/renderer/assets/setting-dialog-BdiZbd8J.js.gz +0 -0
  345. package/out/renderer/assets/settings-2-q22Cv4G7.js +0 -16
  346. package/out/renderer/assets/settings-agents-f3HkdiTw.js.br +0 -0
  347. package/out/renderer/assets/settings-agents-f3HkdiTw.js.gz +0 -0
  348. package/out/renderer/assets/settings-general-BcCOVmx3.js.br +0 -0
  349. package/out/renderer/assets/settings-general-BcCOVmx3.js.gz +0 -0
  350. package/out/renderer/assets/settings-ilink-Da336Koc.js.br +0 -0
  351. package/out/renderer/assets/settings-ilink-Da336Koc.js.gz +0 -0
  352. package/out/renderer/assets/settings-image-generation-RmWs73ZG.js.br +0 -0
  353. package/out/renderer/assets/settings-image-generation-RmWs73ZG.js.gz +0 -0
  354. package/out/renderer/assets/settings-layout-DL6ZEzgP.js.br +0 -0
  355. package/out/renderer/assets/settings-layout-DL6ZEzgP.js.gz +0 -0
  356. package/out/renderer/assets/settings-mcp-BKW8JKtO.js.br +0 -0
  357. package/out/renderer/assets/settings-mcp-BKW8JKtO.js.gz +0 -0
  358. package/out/renderer/assets/settings-memory-o4r-_vob.js.br +0 -0
  359. package/out/renderer/assets/settings-memory-o4r-_vob.js.gz +0 -0
  360. package/out/renderer/assets/settings-shortcuts-BmUGS1q_.js.br +0 -0
  361. package/out/renderer/assets/settings-shortcuts-BmUGS1q_.js.gz +0 -0
  362. package/out/renderer/assets/settings-snippets-CpAOJmDF.js.br +0 -0
  363. package/out/renderer/assets/settings-snippets-CpAOJmDF.js.gz +0 -0
  364. package/out/renderer/assets/settings-speech-to-text-C8KHNGE4.js +0 -1054
  365. package/out/renderer/assets/settings-speech-to-text-C8KHNGE4.js.br +0 -0
  366. package/out/renderer/assets/settings-speech-to-text-C8KHNGE4.js.gz +0 -0
  367. package/out/renderer/assets/settings-webui-DIEKvTrI.js.br +0 -0
  368. package/out/renderer/assets/settings-webui-DIEKvTrI.js.gz +0 -0
  369. package/out/renderer/assets/skills-installed-BuWBDk6r.js.br +0 -0
  370. package/out/renderer/assets/skills-installed-BuWBDk6r.js.gz +0 -0
  371. package/out/renderer/assets/skills-layout-ByPhfHG6.js.br +0 -0
  372. package/out/renderer/assets/skills-layout-ByPhfHG6.js.gz +0 -0
  373. package/out/renderer/assets/skills-skills-sh-wR7YNmAJ.js.br +0 -0
  374. package/out/renderer/assets/skills-skills-sh-wR7YNmAJ.js.gz +0 -0
  375. package/out/renderer/assets/sortable.esm-BWvT9HIK.js.br +0 -0
  376. package/out/renderer/assets/sortable.esm-BWvT9HIK.js.gz +0 -0
  377. package/out/renderer/assets/standard-schema-BkTVIf7N.js.br +0 -0
  378. package/out/renderer/assets/standard-schema-BkTVIf7N.js.gz +0 -0
  379. package/out/renderer/assets/stateDiagram-FHFEXIEX-xdKKCs-p.js.br +0 -0
  380. package/out/renderer/assets/stateDiagram-FHFEXIEX-xdKKCs-p.js.gz +0 -0
  381. package/out/renderer/assets/task-PHAOSE-W.js.br +0 -0
  382. package/out/renderer/assets/task-PHAOSE-W.js.gz +0 -0
  383. package/out/renderer/assets/timeline-definition-GMOUNBTQ-DFLeLybV.js.br +0 -0
  384. package/out/renderer/assets/timeline-definition-GMOUNBTQ-DFLeLybV.js.gz +0 -0
  385. package/out/renderer/assets/vennDiagram-DHZGUBPP-PKmZLY7H.js.br +0 -0
  386. package/out/renderer/assets/vennDiagram-DHZGUBPP-PKmZLY7H.js.gz +0 -0
  387. package/out/renderer/assets/wardley-RL74JXVD-BCH2vKnv.js.br +0 -0
  388. package/out/renderer/assets/wardley-RL74JXVD-BCH2vKnv.js.gz +0 -0
  389. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-Bkd3xMno.js.br +0 -0
  390. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-Bkd3xMno.js.gz +0 -0
  391. package/out/renderer/assets/wrench-8H0LZ83G.js.br +0 -0
  392. package/out/renderer/assets/wrench-8H0LZ83G.js.gz +0 -0
  393. package/out/renderer/assets/xlsx-view-BYx5Ha2P.js.br +0 -0
  394. package/out/renderer/assets/xlsx-view-BYx5Ha2P.js.gz +0 -0
  395. package/out/renderer/assets/xychartDiagram-5P7HB3ND-DCOm4uPr.js.br +0 -0
  396. package/out/renderer/assets/xychartDiagram-5P7HB3ND-DCOm4uPr.js.gz +0 -0
@@ -1,642 +0,0 @@
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
- ]
15
- ]
16
- };
17
- __iconData.node;
18
- const Play = createLucideIcon(__iconData);
19
- const HOURS = Array.from({ length: 24 }, (_, i) => i);
20
- const MINUTES = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55];
21
- const INTERVALS = [1, 2, 3, 4, 6, 8, 12];
22
- const DAYS_OF_WEEK_VALUES = ["1", "2", "3", "4", "5", "6", "0"];
23
- function detectPreset(expr) {
24
- const parts = expr.trim().split(/\s+/);
25
- if (parts.length !== 5) return "custom";
26
- const [min, hr, dom, mon, dow] = parts;
27
- if (hr.startsWith("*/") && dom === "*" && mon === "*" && dow === "*") {
28
- const n = parseInt(hr.slice(2));
29
- if (!isNaN(n) && INTERVALS.includes(n)) return "hourly";
30
- }
31
- const h = parseInt(hr), m = parseInt(min);
32
- if (isNaN(h) || isNaN(m)) return "custom";
33
- if (dom === "*" && mon === "*" && dow === "*") return "daily";
34
- if (dom === "*" && mon === "*" && dow === "1-5") return "weekdays";
35
- if (dom === "*" && mon === "*" && /^\d$/.test(dow)) return "weekly";
36
- return "custom";
37
- }
38
- function parseParts(expr) {
39
- const parts = expr.trim().split(/\s+/);
40
- if (parts.length !== 5) return { hour: 9, minute: 0, interval: 2, dow: "1" };
41
- const [min, hr] = parts;
42
- const dow = parts[4];
43
- if (hr.startsWith("*/"))
44
- return {
45
- hour: 9,
46
- minute: parseInt(min) || 0,
47
- interval: parseInt(hr.slice(2)) || 2,
48
- dow: /^\d$/.test(dow) ? dow : "1"
49
- };
50
- return {
51
- hour: parseInt(hr) || 9,
52
- minute: parseInt(min) || 0,
53
- interval: 2,
54
- dow: /^\d$/.test(dow) ? dow : "1"
55
- };
56
- }
57
- function buildCron(preset, hour, minute, interval, dow) {
58
- switch (preset) {
59
- case "daily":
60
- return `${minute} ${hour} * * *`;
61
- case "weekdays":
62
- return `${minute} ${hour} * * 1-5`;
63
- case "weekly":
64
- return `${minute} ${hour} * * ${dow}`;
65
- case "hourly":
66
- return `${minute} */${interval} * * *`;
67
- default:
68
- return `${minute} ${hour} * * *`;
69
- }
70
- }
71
- function CronEditor({ value, onChange, timezone }) {
72
- const { t, i18n } = useTranslation();
73
- const [preset, setPreset] = reactExports.useState(() => detectPreset(value));
74
- const [parts, setParts] = reactExports.useState(() => parseParts(value));
75
- reactExports.useEffect(() => {
76
- const detected = detectPreset(value);
77
- if (detected !== "custom") {
78
- setPreset(detected);
79
- setParts(parseParts(value));
80
- }
81
- }, [value]);
82
- const handlePresetChange = (p) => {
83
- setPreset(p);
84
- if (p !== "custom") {
85
- onChange(buildCron(p, parts.hour, parts.minute, parts.interval, parts.dow));
86
- }
87
- };
88
- const updateParts = (patch) => {
89
- const next = { ...parts, ...patch };
90
- setParts(next);
91
- if (preset !== "custom") {
92
- onChange(buildCron(preset, next.hour, next.minute, next.interval, next.dow));
93
- }
94
- };
95
- const presetItems = [
96
- { value: "daily", label: t("automation.cron.daily", "Every day") },
97
- { value: "weekdays", label: t("automation.cron.weekdays", "Weekdays") },
98
- { value: "weekly", label: t("automation.cron.weekly", "Every week") },
99
- { value: "hourly", label: t("automation.cron.hourly", "Every N hours") },
100
- { value: "custom", label: t("automation.cron.custom", "Custom") }
101
- ];
102
- const intervalItems = INTERVALS.map((n) => ({ value: String(n), label: `${n}h` }));
103
- const minuteItems = MINUTES.map((m) => ({
104
- value: String(m),
105
- label: `${String(m).padStart(2, "0")}`
106
- }));
107
- const hourItems = HOURS.map((h) => ({ value: String(h), label: String(h).padStart(2, "0") }));
108
- const dowItems = DAYS_OF_WEEK_VALUES.map((v) => ({
109
- value: v,
110
- label: t(
111
- `automation.cron.days.${v}`,
112
- ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][parseInt(v)]
113
- )
114
- }));
115
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2.5", children: [
116
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
117
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
118
- Select,
119
- {
120
- items: presetItems,
121
- value: preset,
122
- onValueChange: (v) => {
123
- if (v) handlePresetChange(v);
124
- },
125
- children: [
126
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! flex-1 min-w-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
127
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: presetItems.map((p) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: p.value, children: p.label }, p.value)) })
128
- ]
129
- }
130
- ),
131
- preset === "custom" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
132
- Input,
133
- {
134
- value,
135
- onChange: (e) => onChange(e.target.value),
136
- placeholder: "min hour day month weekday",
137
- className: "h-8 text-xs! font-mono text-foreground/70 focus-visible:ring-0.5 flex-1"
138
- }
139
- ) : preset === "hourly" ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
140
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
141
- Select,
142
- {
143
- items: intervalItems,
144
- value: String(parts.interval),
145
- onValueChange: (v) => {
146
- if (v) updateParts({ interval: parseInt(v) });
147
- },
148
- children: [
149
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
150
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: intervalItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
151
- ]
152
- }
153
- ),
154
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: t("automation.cron.atMinute", "at min") }),
155
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
156
- Select,
157
- {
158
- items: minuteItems,
159
- value: String(parts.minute),
160
- onValueChange: (v) => {
161
- if (v) updateParts({ minute: parseInt(v) });
162
- },
163
- children: [
164
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
165
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: minuteItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
166
- ]
167
- }
168
- )
169
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
170
- preset === "weekly" && /* @__PURE__ */ jsxRuntimeExports.jsxs(
171
- Select,
172
- {
173
- items: dowItems,
174
- value: parts.dow,
175
- onValueChange: (v) => {
176
- if (v) updateParts({ dow: v });
177
- },
178
- children: [
179
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-18", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
180
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: dowItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
181
- ]
182
- }
183
- ),
184
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: t("automation.cron.at", "at") }),
185
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
186
- Select,
187
- {
188
- items: hourItems,
189
- value: String(parts.hour),
190
- onValueChange: (v) => {
191
- if (v) updateParts({ hour: parseInt(v) });
192
- },
193
- children: [
194
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
195
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: hourItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
196
- ]
197
- }
198
- ),
199
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs text-muted-foreground", children: ":" }),
200
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
201
- Select,
202
- {
203
- items: minuteItems,
204
- value: String(parts.minute),
205
- onValueChange: (v) => {
206
- if (v) updateParts({ minute: parseInt(v) });
207
- },
208
- children: [
209
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 text-xs! w-15", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
210
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: minuteItems.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: item.value, children: item.label }, item.value)) })
211
- ]
212
- }
213
- )
214
- ] })
215
- ] }),
216
- /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[11px] text-muted-foreground", children: [
217
- value,
218
- " · ",
219
- t("automation.cron.nextRun", "Next run"),
220
- ": ",
221
- formatNextCron(value, i18n.language),
222
- timezone && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-1 text-muted-foreground/50", children: [
223
- "(",
224
- timezone,
225
- ")"
226
- ] })
227
- ] })
228
- ] });
229
- }
230
- function formatNextCron(expr, locale) {
231
- try {
232
- const next = getNextCronDate(expr);
233
- if (!next) return "—";
234
- return next.toLocaleString(locale, {
235
- month: "short",
236
- day: "numeric",
237
- hour: "2-digit",
238
- minute: "2-digit"
239
- });
240
- } catch {
241
- return "—";
242
- }
243
- }
244
- function getNextCronDate(expr) {
245
- const parts = expr.trim().split(/\s+/);
246
- if (parts.length !== 5) return null;
247
- const [minF, hrF, , , dowF] = parts;
248
- const now = /* @__PURE__ */ new Date();
249
- for (let d = 0; d < 8; d++) {
250
- const candidate = new Date(now.getTime() + d * 864e5);
251
- const dow = candidate.getDay();
252
- if (dowF !== "*") {
253
- if (dowF === "1-5" && (dow === 0 || dow === 6)) continue;
254
- else if (/^\d$/.test(dowF) && dow !== parseInt(dowF)) continue;
255
- else if (dowF.includes(",") && !dowF.split(",").map(Number).includes(dow)) continue;
256
- }
257
- if (hrF.startsWith("*/")) {
258
- const interval = parseInt(hrF.slice(2)) || 1;
259
- const minute = parseInt(minF) || 0;
260
- for (let h = 0; h < 24; h += interval) {
261
- candidate.setHours(h, minute, 0, 0);
262
- if (candidate > now) return candidate;
263
- }
264
- } else {
265
- const h = parseInt(hrF), m = parseInt(minF);
266
- if (isNaN(h) || isNaN(m)) return null;
267
- candidate.setHours(h, m, 0, 0);
268
- if (candidate > now) return candidate;
269
- }
270
- }
271
- return null;
272
- }
273
- const DISABLED_FEATURES = ["ask_user", "share_to_user", "memory"];
274
- function SettingDialog({ schedule, open, onOpenChange, onSuccess }) {
275
- const isEdit = !!schedule;
276
- const { t } = useTranslation();
277
- const { toast } = useMessage();
278
- const configuredAgents = useAppStore((s) => s.configuredAgents);
279
- const configuredMcpServers = useAppStore((s) => s.configuredMcpServers);
280
- const enabledAgents = reactExports.useMemo(
281
- () => configuredAgents.filter((a) => !a.disabled),
282
- [configuredAgents]
283
- );
284
- const enabledMcpServers = reactExports.useMemo(
285
- () => configuredMcpServers.filter((s) => !s.disabled),
286
- [configuredMcpServers]
287
- );
288
- const [timezone, setTimezone] = reactExports.useState("");
289
- reactExports.useEffect(() => {
290
- request.getServerTimezone().then(setTimezone).catch(() => {
291
- });
292
- }, []);
293
- const [name, setName] = reactExports.useState(isEdit ? schedule.name : "");
294
- const [agentId, setAgentId] = reactExports.useState(isEdit ? schedule.agentId : enabledAgents[0]?.id ?? "");
295
- const [modelId, setModelId] = reactExports.useState(isEdit ? schedule.modelId ?? "" : "");
296
- const [remainingRuns, setRemainingRuns] = reactExports.useState(
297
- isEdit && schedule.remainingRuns !== null ? String(schedule.remainingRuns) : ""
298
- );
299
- const [prompt, setPrompt] = reactExports.useState(isEdit ? schedule.prompt : "");
300
- const [cronType, setCronType] = reactExports.useState(
301
- isEdit ? schedule.cron.type : "cron"
302
- );
303
- const [cronExpr, setCronExpr] = reactExports.useState(
304
- isEdit ? schedule.cron.expr ?? "0 9 * * 1-5" : "0 9 * * 1-5"
305
- );
306
- const [features, setFeatures] = reactExports.useState(
307
- isEdit ? schedule.features ?? ["skills"] : ["skills"]
308
- );
309
- const [mcpServerIds, setMcpServerIds] = reactExports.useState(
310
- isEdit ? schedule.mcpServers ?? [] : enabledMcpServers.map((s) => s.id)
311
- );
312
- const [saving, setSaving] = reactExports.useState(false);
313
- reactExports.useEffect(() => {
314
- if (!open) return;
315
- if (schedule) {
316
- setName(schedule.name);
317
- setAgentId(schedule.agentId);
318
- setModelId(schedule.modelId ?? "");
319
- setRemainingRuns(schedule.remainingRuns !== null ? String(schedule.remainingRuns) : "");
320
- setPrompt(schedule.prompt);
321
- setCronType(schedule.cron.type);
322
- setCronExpr(schedule.cron.expr ?? "0 9 * * 1-5");
323
- setFeatures(schedule.features ?? ["skills"]);
324
- setMcpServerIds(schedule.mcpServers ?? []);
325
- } else {
326
- setName("");
327
- setAgentId(enabledAgents[0]?.id ?? "");
328
- setModelId("");
329
- setRemainingRuns("");
330
- setPrompt("");
331
- setCronType("cron");
332
- setCronExpr("0 9 * * 1-5");
333
- setFeatures(["skills"]);
334
- setMcpServerIds(enabledMcpServers.map((s) => s.id));
335
- }
336
- }, [schedule, open, enabledMcpServers, enabledAgents]);
337
- const handleSave = async () => {
338
- if (!name.trim())
339
- return void toast.error(t("automation.validation.nameRequired", "Name is required"));
340
- if (!agentId)
341
- return void toast.error(t("automation.validation.agentRequired", "Agent is required"));
342
- if (!prompt.trim())
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
- }
353
- setSaving(true);
354
- try {
355
- if (isEdit) {
356
- await request.updateSchedule({
357
- scheduleId: schedule.id,
358
- updates: {
359
- name: name.trim(),
360
- agentId,
361
- modelId: modelId.trim() || void 0,
362
- prompt: prompt.trim(),
363
- cron: { type: cronType, expr: cronType === "cron" ? cronExpr.trim() : void 0 },
364
- remainingRuns: parsedRemainingRuns,
365
- features,
366
- mcpServers: mcpServerIds
367
- }
368
- });
369
- } else {
370
- await request.createSchedule({
371
- name: name.trim(),
372
- agentId,
373
- modelId: modelId.trim() || void 0,
374
- prompt: prompt.trim(),
375
- cron: { type: cronType, expr: cronType === "cron" ? cronExpr.trim() : void 0 },
376
- remainingRuns: parsedRemainingRuns,
377
- features,
378
- mcpServers: mcpServerIds
379
- });
380
- }
381
- onSuccess();
382
- onOpenChange(false);
383
- } catch (err) {
384
- toast.error(String(err));
385
- } finally {
386
- setSaving(false);
387
- }
388
- };
389
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
390
- Dialog,
391
- {
392
- open,
393
- onOpenChange: (open2, eventDetails) => {
394
- if (!open2 && (eventDetails?.reason === "escape-key" || eventDetails?.reason === "outside-press"))
395
- return;
396
- onOpenChange(open2);
397
- },
398
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-3xl", children: [
399
- /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
400
- /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: isEdit ? t("automation.editSchedule", "Edit Schedule") : t("automation.newSchedule", "New Schedule") }),
401
- /* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: t("automation.dialogDesc", "Configure the automated task schedule and prompt.") })
402
- ] }),
403
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-5", children: [
404
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { children: [
405
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
406
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "auto-name", className: "text-xs text-muted-foreground", children: t("automation.scheduleName", "Schedule Name") }),
407
- /* @__PURE__ */ jsxRuntimeExports.jsx(
408
- Input,
409
- {
410
- id: "auto-name",
411
- placeholder: t(
412
- "automation.scheduleNamePlaceholder",
413
- "e.g. Morning Standup Summary"
414
- ),
415
- value: name,
416
- onChange: (e) => setName(e.target.value),
417
- className: "h-8 text-xs! text-foreground/70 focus-visible:ring-0.5"
418
- }
419
- )
420
- ] }),
421
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
422
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
423
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "auto-agent", className: "text-xs text-muted-foreground", children: t("automation.agent", "Agent") }),
424
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
425
- Select,
426
- {
427
- value: agentId,
428
- onValueChange: (v) => {
429
- if (v) setAgentId(v);
430
- },
431
- children: [
432
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { id: "auto-agent", className: "w-full text-xs! text-muted-foreground", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
433
- /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: enabledAgents.map((a) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: a.id, children: a.id }, a.id)) })
434
- ]
435
- }
436
- )
437
- ] }),
438
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
439
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "auto-model", className: "text-xs text-muted-foreground", children: t("automation.model", "Model") }),
440
- /* @__PURE__ */ jsxRuntimeExports.jsx(
441
- Input,
442
- {
443
- id: "auto-model",
444
- placeholder: t("automation.modelPlaceholder", "Default model"),
445
- value: modelId,
446
- onChange: (e) => setModelId(e.target.value),
447
- className: "h-8 text-xs! text-foreground/70 focus-visible:ring-0.5"
448
- }
449
- )
450
- ] })
451
- ] }),
452
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
453
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "auto-prompt", className: "text-xs text-muted-foreground", children: t("automation.prompt", "Prompt") }),
454
- /* @__PURE__ */ jsxRuntimeExports.jsx(
455
- Textarea,
456
- {
457
- id: "auto-prompt",
458
- placeholder: t("automation.promptPlaceholder", "What should the agent do?"),
459
- value: prompt,
460
- onChange: (e) => setPrompt(e.target.value),
461
- className: "text-xs! min-h-64 flex-1 text-foreground/70 focus-visible:ring-0.5"
462
- }
463
- )
464
- ] })
465
- ] }),
466
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { children: [
467
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
468
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-muted-foreground", children: t("automation.features", "Features") }),
469
- /* @__PURE__ */ jsxRuntimeExports.jsx(
470
- "div",
471
- {
472
- className: ALL_FEATURES.length >= 2 ? "grid grid-cols-2 gap-1" : "flex flex-col gap-1",
473
- children: ALL_FEATURES.map((feature) => {
474
- const isDisabled = DISABLED_FEATURES.includes(feature);
475
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
476
- "div",
477
- {
478
- className: `flex items-center justify-between rounded border bg-secondary/50 px-2 h-7 ${!isDisabled ? "cursor-default" : "hidden"} hover:bg-accent transition-colors`,
479
- onClick: !isDisabled ? () => setFeatures(
480
- (prev) => prev.includes(feature) ? prev.filter((f) => f !== feature) : [...prev, feature]
481
- ) : void 0,
482
- children: [
483
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
484
- "div",
485
- {
486
- className: `text-xs truncate ${!isDisabled ? features.includes(feature) ? "text-muted-foreground" : "text-muted-foreground/50" : "text-muted-foreground/50"}`,
487
- children: [
488
- t(FEATURE_I18N_KEYS[feature], feature),
489
- isDisabled && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[10px] ml-1", children: [
490
- "(",
491
- t("automation.alwaysDisabled", "always disabled"),
492
- ")"
493
- ] })
494
- ]
495
- }
496
- ),
497
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { onClick: !isDisabled ? (e) => e.stopPropagation() : void 0, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
498
- Switch,
499
- {
500
- size: "sm",
501
- checked: !isDisabled ? features.includes(feature) : false,
502
- disabled: isDisabled,
503
- onCheckedChange: !isDisabled ? (c) => setFeatures(
504
- (prev) => c ? [...prev, feature] : prev.filter((f) => f !== feature)
505
- ) : void 0
506
- }
507
- ) })
508
- ]
509
- },
510
- feature
511
- );
512
- })
513
- }
514
- )
515
- ] }),
516
- configuredMcpServers.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
517
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-muted-foreground", children: t("automation.mcpServers", "MCP Servers") }),
518
- /* @__PURE__ */ jsxRuntimeExports.jsx(
519
- "div",
520
- {
521
- className: configuredMcpServers.length >= 2 ? "grid grid-cols-2 gap-1" : "flex flex-col gap-1",
522
- children: configuredMcpServers.map((s) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
523
- "div",
524
- {
525
- className: "flex items-center justify-between rounded border bg-secondary/50 px-2 h-7 cursor-default hover:bg-accent transition-colors",
526
- onClick: () => setMcpServerIds(
527
- (prev) => prev.includes(s.id) ? prev.filter((id) => id !== s.id) : [...prev, s.id]
528
- ),
529
- children: [
530
- /* @__PURE__ */ jsxRuntimeExports.jsx(
531
- "div",
532
- {
533
- className: `text-xs truncate ${mcpServerIds.includes(s.id) ? "text-muted-foreground" : "text-muted-foreground/50"}`,
534
- title: s.id,
535
- children: s.id
536
- }
537
- ),
538
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
539
- Switch,
540
- {
541
- size: "sm",
542
- checked: mcpServerIds.includes(s.id),
543
- onCheckedChange: (c) => {
544
- setMcpServerIds(
545
- (prev) => c ? [...prev, s.id] : prev.filter((id) => id !== s.id)
546
- );
547
- }
548
- }
549
- ) })
550
- ]
551
- },
552
- s.id
553
- ))
554
- }
555
- )
556
- ] }),
557
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
558
- /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { className: "text-xs text-muted-foreground", children: t("automation.schedule", "Schedule") }),
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: [
561
- /* @__PURE__ */ jsxRuntimeExports.jsx(
562
- Tabs,
563
- {
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
- ] })
578
- }
579
- ),
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
- ] })
602
- ] }),
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.") })
604
- ] })
605
- ] })
606
- ] })
607
- ] }),
608
- /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { children: [
609
- /* @__PURE__ */ jsxRuntimeExports.jsx(
610
- Button,
611
- {
612
- type: "button",
613
- variant: "outline",
614
- size: "sm",
615
- onClick: () => onOpenChange(false),
616
- className: "h-7 text-xs",
617
- children: t("automation.cancel", "Cancel")
618
- }
619
- ),
620
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
621
- Button,
622
- {
623
- type: "button",
624
- size: "sm",
625
- disabled: saving,
626
- onClick: handleSave,
627
- className: "h-7 text-xs",
628
- children: [
629
- saving && /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-3 animate-spin mr-1" }),
630
- isEdit ? t("automation.save", "Save") : t("automation.create", "Create")
631
- ]
632
- }
633
- )
634
- ] })
635
- ] })
636
- }
637
- );
638
- }
639
- export {
640
- Play as P,
641
- SettingDialog as S
642
- };
@@ -1,16 +0,0 @@
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
- };