@zythum02/fello-server 0.1.51 → 0.1.53

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 (377) hide show
  1. package/out/renderer/assets/{_baseUniq-DdWCC-Go.js → _baseUniq-CJr3HkLS.js} +1 -1
  2. package/out/renderer/assets/_baseUniq-CJr3HkLS.js.br +0 -0
  3. package/out/renderer/assets/_baseUniq-CJr3HkLS.js.gz +0 -0
  4. package/out/renderer/assets/{arc-B_en4gJt.js → arc-POsBroTF.js} +1 -1
  5. package/out/renderer/assets/arc-POsBroTF.js.br +0 -0
  6. package/out/renderer/assets/arc-POsBroTF.js.gz +0 -0
  7. package/out/renderer/assets/{architectureDiagram-Q4EWVU46-W-l3dTvZ.js → architectureDiagram-Q4EWVU46-CmToUhDb.js} +6 -6
  8. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CmToUhDb.js.br +0 -0
  9. package/out/renderer/assets/architectureDiagram-Q4EWVU46-CmToUhDb.js.gz +0 -0
  10. package/out/renderer/assets/{arrow-left-BwbOF_G_.js → arrow-left-CxS1t3f7.js} +1 -1
  11. package/out/renderer/assets/{automation--izxbhlj.js → automation-Cyz3eLWp.js} +7 -8
  12. package/out/renderer/assets/automation-Cyz3eLWp.js.br +0 -0
  13. package/out/renderer/assets/automation-Cyz3eLWp.js.gz +0 -0
  14. package/out/renderer/assets/{blockDiagram-DXYQGD6D-BdxXOr8Y.js → blockDiagram-DXYQGD6D-M2nnTg9f.js} +7 -7
  15. package/out/renderer/assets/blockDiagram-DXYQGD6D-M2nnTg9f.js.br +0 -0
  16. package/out/renderer/assets/blockDiagram-DXYQGD6D-M2nnTg9f.js.gz +0 -0
  17. package/out/renderer/assets/{c4Diagram-AHTNJAMY-C_8XgPtT.js → c4Diagram-AHTNJAMY-CwLtsy_0.js} +3 -3
  18. package/out/renderer/assets/c4Diagram-AHTNJAMY-CwLtsy_0.js.br +0 -0
  19. package/out/renderer/assets/c4Diagram-AHTNJAMY-CwLtsy_0.js.gz +0 -0
  20. package/out/renderer/assets/{channel-BsSLbHzl.js → channel-BUNDMqpH.js} +1 -1
  21. package/out/renderer/assets/{chunk-4BX2VUAB-CADGLBio.js → chunk-4BX2VUAB-B2qXmkDT.js} +1 -1
  22. package/out/renderer/assets/{chunk-4TB4RGXK-C7h57GNs.js → chunk-4TB4RGXK-DXLZpPY5.js} +5 -5
  23. package/out/renderer/assets/chunk-4TB4RGXK-DXLZpPY5.js.br +0 -0
  24. package/out/renderer/assets/chunk-4TB4RGXK-DXLZpPY5.js.gz +0 -0
  25. package/out/renderer/assets/{chunk-55IACEB6-Cw-dv2b3.js → chunk-55IACEB6-CJeyefxI.js} +1 -1
  26. package/out/renderer/assets/{chunk-EDXVE4YY-BPjYyS5o.js → chunk-EDXVE4YY-CNjJEQfY.js} +1 -1
  27. package/out/renderer/assets/chunk-EDXVE4YY-CNjJEQfY.js.br +0 -0
  28. package/out/renderer/assets/chunk-EDXVE4YY-CNjJEQfY.js.gz +0 -0
  29. package/out/renderer/assets/{chunk-FMBD7UC4-DhJ5Z89u.js → chunk-FMBD7UC4-DOAOsjRu.js} +1 -1
  30. package/out/renderer/assets/{chunk-OYMX7WX6-D5Q5ZCl0.js → chunk-OYMX7WX6-BG4B1VQ7.js} +3 -3
  31. package/out/renderer/assets/chunk-OYMX7WX6-BG4B1VQ7.js.br +0 -0
  32. package/out/renderer/assets/chunk-OYMX7WX6-BG4B1VQ7.js.gz +0 -0
  33. package/out/renderer/assets/{chunk-QZHKN3VN-SsM-5KS-.js → chunk-QZHKN3VN-B9zfXYIQ.js} +1 -1
  34. package/out/renderer/assets/{chunk-YZCP3GAM-AbfctYy8.js → chunk-YZCP3GAM-jeoI2tsD.js} +1 -1
  35. package/out/renderer/assets/chunk-YZCP3GAM-jeoI2tsD.js.br +0 -0
  36. package/out/renderer/assets/chunk-YZCP3GAM-jeoI2tsD.js.gz +0 -0
  37. package/out/renderer/assets/{circle-x-CxFDvVH_.js → circle-x-B1kBsMlS.js} +1 -1
  38. package/out/renderer/assets/{classDiagram-v2-HSJHXN6E-7ZGV_42k.js → classDiagram-6PBFFD2Q-DWPFF3Yt.js} +7 -7
  39. package/out/renderer/assets/{classDiagram-6PBFFD2Q-7ZGV_42k.js → classDiagram-v2-HSJHXN6E-DWPFF3Yt.js} +7 -7
  40. package/out/renderer/assets/{clone-D2_BL2Tz.js → clone-Dcvr9oKv.js} +1 -1
  41. package/out/renderer/assets/{code-editor-cp9haQUT.js → code-editor-CEXlC4aV.js} +2 -2
  42. package/out/renderer/assets/code-editor-CEXlC4aV.js.br +0 -0
  43. package/out/renderer/assets/code-editor-CEXlC4aV.js.gz +0 -0
  44. package/out/renderer/assets/{collapsible-BHMUDZxc.js → collapsible-CMuCJUWG.js} +1 -1
  45. package/out/renderer/assets/collapsible-CMuCJUWG.js.br +0 -0
  46. package/out/renderer/assets/collapsible-CMuCJUWG.js.gz +0 -0
  47. package/out/renderer/assets/{cose-bilkent-S5V4N54A-CVcE9aWV.js → cose-bilkent-S5V4N54A-B3bgImVS.js} +2 -2
  48. package/out/renderer/assets/cose-bilkent-S5V4N54A-B3bgImVS.js.br +0 -0
  49. package/out/renderer/assets/cose-bilkent-S5V4N54A-B3bgImVS.js.gz +0 -0
  50. package/out/renderer/assets/{dagre-KV5264BT-zrX-TFsi.js → dagre-KV5264BT-DTbumBA_.js} +7 -7
  51. package/out/renderer/assets/dagre-KV5264BT-DTbumBA_.js.br +0 -0
  52. package/out/renderer/assets/dagre-KV5264BT-DTbumBA_.js.gz +0 -0
  53. package/out/renderer/assets/{diagram-5BDNPKRD-Ct9NrJP9.js → diagram-5BDNPKRD-B34Y6e8q.js} +7 -7
  54. package/out/renderer/assets/diagram-5BDNPKRD-B34Y6e8q.js.br +0 -0
  55. package/out/renderer/assets/diagram-5BDNPKRD-B34Y6e8q.js.gz +0 -0
  56. package/out/renderer/assets/{diagram-G4DWMVQ6-tTGWcCd_.js → diagram-G4DWMVQ6-BBiBmFR4.js} +7 -7
  57. package/out/renderer/assets/diagram-G4DWMVQ6-BBiBmFR4.js.br +0 -0
  58. package/out/renderer/assets/diagram-G4DWMVQ6-BBiBmFR4.js.gz +0 -0
  59. package/out/renderer/assets/{diagram-MMDJMWI5-CpmcnN2B.js → diagram-MMDJMWI5-P-YslDjG.js} +6 -6
  60. package/out/renderer/assets/diagram-MMDJMWI5-P-YslDjG.js.br +0 -0
  61. package/out/renderer/assets/diagram-MMDJMWI5-P-YslDjG.js.gz +0 -0
  62. package/out/renderer/assets/{diagram-TYMM5635-DKTR2xS9.js → diagram-TYMM5635-D_cLard_.js} +6 -6
  63. package/out/renderer/assets/diagram-TYMM5635-D_cLard_.js.br +0 -0
  64. package/out/renderer/assets/diagram-TYMM5635-D_cLard_.js.gz +0 -0
  65. package/out/renderer/assets/{ellipsis-8708fodN.js → ellipsis-D1agTYu1.js} +1 -1
  66. package/out/renderer/assets/{erDiagram-SMLLAGMA-BW13EXAs.js → erDiagram-SMLLAGMA-C1MHqKvC.js} +5 -5
  67. package/out/renderer/assets/erDiagram-SMLLAGMA-C1MHqKvC.js.br +0 -0
  68. package/out/renderer/assets/erDiagram-SMLLAGMA-C1MHqKvC.js.gz +0 -0
  69. package/out/renderer/assets/{field-Be86bgEh.js → field-DR3J0r9e.js} +1 -1
  70. package/out/renderer/assets/field-DR3J0r9e.js.br +0 -0
  71. package/out/renderer/assets/field-DR3J0r9e.js.gz +0 -0
  72. package/out/renderer/assets/{file-text-CMw1QH-C.js → file-text-nGCW6zu1.js} +1 -1
  73. package/out/renderer/assets/{flowDiagram-DWJPFMVM-C3oZAKxX.js → flowDiagram-DWJPFMVM-DprlEc3Z.js} +7 -7
  74. package/out/renderer/assets/flowDiagram-DWJPFMVM-DprlEc3Z.js.br +0 -0
  75. package/out/renderer/assets/flowDiagram-DWJPFMVM-DprlEc3Z.js.gz +0 -0
  76. package/out/renderer/assets/{ganttDiagram-T4ZO3ILL-BARJrpDB.js → ganttDiagram-T4ZO3ILL-CbTdumBm.js} +3 -3
  77. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CbTdumBm.js.br +0 -0
  78. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-CbTdumBm.js.gz +0 -0
  79. package/out/renderer/assets/{gitGraphDiagram-UUTBAWPF-D0gl3Row.js → gitGraphDiagram-UUTBAWPF-06bme-w8.js} +7 -7
  80. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-06bme-w8.js.br +0 -0
  81. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-06bme-w8.js.gz +0 -0
  82. package/out/renderer/assets/{graph-DB7hnlLW.js → graph-BZhxluo9.js} +2 -2
  83. package/out/renderer/assets/graph-BZhxluo9.js.br +0 -0
  84. package/out/renderer/assets/graph-BZhxluo9.js.gz +0 -0
  85. package/out/renderer/assets/{highlighted-body-OFNGDK62-J87DvYBX.js → highlighted-body-OFNGDK62-CvDMJtXf.js} +2 -2
  86. package/out/renderer/assets/{index-Co8mzhyV.js → index-LmYTNvdF.js} +913 -453
  87. package/out/renderer/assets/index-LmYTNvdF.js.br +0 -0
  88. package/out/renderer/assets/index-LmYTNvdF.js.gz +0 -0
  89. package/out/renderer/assets/index-aGJ_yZib.css +382 -0
  90. package/out/renderer/assets/index-aGJ_yZib.css.br +0 -0
  91. package/out/renderer/assets/index-aGJ_yZib.css.gz +0 -0
  92. package/out/renderer/assets/{infoDiagram-42DDH7IO-BrfLG_LC.js → infoDiagram-42DDH7IO-DqivEzWL.js} +5 -5
  93. package/out/renderer/assets/infoDiagram-42DDH7IO-DqivEzWL.js.br +0 -0
  94. package/out/renderer/assets/infoDiagram-42DDH7IO-DqivEzWL.js.gz +0 -0
  95. package/out/renderer/assets/{ishikawaDiagram-UXIWVN3A-CO0cyvTq.js → ishikawaDiagram-UXIWVN3A-BKcg_z4w.js} +2 -2
  96. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-BKcg_z4w.js.br +0 -0
  97. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-BKcg_z4w.js.gz +0 -0
  98. package/out/renderer/assets/{item-CvcokSWl.js → item-BHEUMM9H.js} +1 -1
  99. package/out/renderer/assets/item-BHEUMM9H.js.br +0 -0
  100. package/out/renderer/assets/item-BHEUMM9H.js.gz +0 -0
  101. package/out/renderer/assets/{journeyDiagram-VCZTEJTY-D3F2Iu5P.js → journeyDiagram-VCZTEJTY-Bvv8xuxQ.js} +5 -5
  102. package/out/renderer/assets/journeyDiagram-VCZTEJTY-Bvv8xuxQ.js.br +0 -0
  103. package/out/renderer/assets/journeyDiagram-VCZTEJTY-Bvv8xuxQ.js.gz +0 -0
  104. package/out/renderer/assets/{kanban-definition-6JOO6SKY-CC_drlaB.js → kanban-definition-6JOO6SKY-C-gRMpeM.js} +3 -3
  105. package/out/renderer/assets/kanban-definition-6JOO6SKY-C-gRMpeM.js.br +0 -0
  106. package/out/renderer/assets/kanban-definition-6JOO6SKY-C-gRMpeM.js.gz +0 -0
  107. package/out/renderer/assets/{layout-B_3n1To1.js → layout-B4dSyItA.js} +4 -4
  108. package/out/renderer/assets/layout-B4dSyItA.js.br +0 -0
  109. package/out/renderer/assets/layout-B4dSyItA.js.gz +0 -0
  110. package/out/renderer/assets/{linear-AxwRZ_jw.js → linear-CoVhuer7.js} +1 -1
  111. package/out/renderer/assets/linear-CoVhuer7.js.br +0 -0
  112. package/out/renderer/assets/linear-CoVhuer7.js.gz +0 -0
  113. package/out/renderer/assets/{link-2-4A51Gs15.js → link-2-DHUPzNSt.js} +1 -1
  114. package/out/renderer/assets/{mermaid-GHXKKRXX-DFOJYe_t.js → mermaid-GHXKKRXX-CZqkhGx7.js} +54 -54
  115. package/out/renderer/assets/mermaid-GHXKKRXX-CZqkhGx7.js.br +0 -0
  116. package/out/renderer/assets/mermaid-GHXKKRXX-CZqkhGx7.js.gz +0 -0
  117. package/out/renderer/assets/mic-BgSvicCB.js +22 -0
  118. package/out/renderer/assets/{min-Dip7FmOo.js → min-emzuJjmk.js} +2 -2
  119. package/out/renderer/assets/min-emzuJjmk.js.br +0 -0
  120. package/out/renderer/assets/min-emzuJjmk.js.gz +0 -0
  121. package/out/renderer/assets/{mindmap-definition-QFDTVHPH-D9aiLrpe.js → mindmap-definition-QFDTVHPH-DQ4JNECm.js} +4 -4
  122. package/out/renderer/assets/mindmap-definition-QFDTVHPH-DQ4JNECm.js.br +0 -0
  123. package/out/renderer/assets/mindmap-definition-QFDTVHPH-DQ4JNECm.js.gz +0 -0
  124. package/out/renderer/assets/{open-guide-KaWHLGYU.js → open-guide-CfLO-Sdk.js} +1 -1
  125. package/out/renderer/assets/{package-search-CNALSYvi.js → package-search-CrF2Iegl.js} +1 -1
  126. package/out/renderer/assets/{pieDiagram-DEJITSTG-BX_34lAP.js → pieDiagram-DEJITSTG-0H6CGQQt.js} +7 -7
  127. package/out/renderer/assets/pieDiagram-DEJITSTG-0H6CGQQt.js.br +0 -0
  128. package/out/renderer/assets/pieDiagram-DEJITSTG-0H6CGQQt.js.gz +0 -0
  129. package/out/renderer/assets/{plus-DOVKq0d7.js → plus-YNCXW-GD.js} +1 -1
  130. package/out/renderer/assets/{quadrantDiagram-34T5L4WZ-G09qfNO8.js → quadrantDiagram-34T5L4WZ-D0aPKp5z.js} +3 -3
  131. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-D0aPKp5z.js.br +0 -0
  132. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-D0aPKp5z.js.gz +0 -0
  133. package/out/renderer/assets/{refresh-cw-DGB7KSZ3.js → refresh-cw-Bvm578nW.js} +1 -1
  134. package/out/renderer/assets/{requirementDiagram-MS252O5E-sJPY8r9J.js → requirementDiagram-MS252O5E-BkzwapW_.js} +4 -4
  135. package/out/renderer/assets/requirementDiagram-MS252O5E-BkzwapW_.js.br +0 -0
  136. package/out/renderer/assets/requirementDiagram-MS252O5E-BkzwapW_.js.gz +0 -0
  137. package/out/renderer/assets/{resizable-C5jomC3Y.js → resizable-cStzNJ8V.js} +1 -1
  138. package/out/renderer/assets/resizable-cStzNJ8V.js.br +0 -0
  139. package/out/renderer/assets/resizable-cStzNJ8V.js.gz +0 -0
  140. package/out/renderer/assets/{sankeyDiagram-XADWPNL6-DHIS2ISZ.js → sankeyDiagram-XADWPNL6-Dbde7usj.js} +2 -2
  141. package/out/renderer/assets/sankeyDiagram-XADWPNL6-Dbde7usj.js.br +0 -0
  142. package/out/renderer/assets/sankeyDiagram-XADWPNL6-Dbde7usj.js.gz +0 -0
  143. package/out/renderer/assets/{schedule-BoqPUAOI.js → schedule-DNMCsk-G.js} +9 -10
  144. package/out/renderer/assets/schedule-DNMCsk-G.js.br +0 -0
  145. package/out/renderer/assets/schedule-DNMCsk-G.js.gz +0 -0
  146. package/out/renderer/assets/{search-DdqhQVGJ.js → search-BEY9yGF_.js} +1 -1
  147. package/out/renderer/assets/{sequenceDiagram-FGHM5R23-Boc12Em2.js → sequenceDiagram-FGHM5R23-DI8l1pSL.js} +4 -4
  148. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DI8l1pSL.js.br +0 -0
  149. package/out/renderer/assets/sequenceDiagram-FGHM5R23-DI8l1pSL.js.gz +0 -0
  150. package/out/renderer/assets/{session-DgU3TDDV.js → session-Bn5k9ScR.js} +1540 -182
  151. package/out/renderer/assets/session-Bn5k9ScR.js.br +0 -0
  152. package/out/renderer/assets/session-Bn5k9ScR.js.gz +0 -0
  153. package/out/renderer/assets/{setting-dialog-4pmkQ7WP.js → setting-dialog-sqfPfGsy.js} +3 -3
  154. package/out/renderer/assets/setting-dialog-sqfPfGsy.js.br +0 -0
  155. package/out/renderer/assets/setting-dialog-sqfPfGsy.js.gz +0 -0
  156. package/out/renderer/assets/{settings-2-CI8inOtS.js → settings-2-DRhoXOO8.js} +1 -1
  157. package/out/renderer/assets/{settings-agents-C4u0s-iR.js → settings-agents-Bntc31Nn.js} +10 -11
  158. package/out/renderer/assets/settings-agents-Bntc31Nn.js.br +0 -0
  159. package/out/renderer/assets/settings-agents-Bntc31Nn.js.gz +0 -0
  160. package/out/renderer/assets/{settings-general-BkLSJoHB.js → settings-general-DhbLb9cP.js} +2 -2
  161. package/out/renderer/assets/settings-general-DhbLb9cP.js.br +0 -0
  162. package/out/renderer/assets/settings-general-DhbLb9cP.js.gz +0 -0
  163. package/out/renderer/assets/{settings-ilink-6ZrgPpeO.js → settings-ilink-C7nGGjwT.js} +3 -3
  164. package/out/renderer/assets/settings-ilink-C7nGGjwT.js.br +0 -0
  165. package/out/renderer/assets/settings-ilink-C7nGGjwT.js.gz +0 -0
  166. package/out/renderer/assets/{settings-image-generation-B6YIO6o_.js → settings-image-generation-H2dgqG7Y.js} +6 -7
  167. package/out/renderer/assets/settings-image-generation-H2dgqG7Y.js.br +0 -0
  168. package/out/renderer/assets/settings-image-generation-H2dgqG7Y.js.gz +0 -0
  169. package/out/renderer/assets/{settings-layout-Cf7GMXFZ.js → settings-layout-ATto1xpJ.js} +9 -3
  170. package/out/renderer/assets/settings-layout-ATto1xpJ.js.br +0 -0
  171. package/out/renderer/assets/settings-layout-ATto1xpJ.js.gz +0 -0
  172. package/out/renderer/assets/{settings-mcp-CJvL5Siz.js → settings-mcp-DUdMuoJ-.js} +7 -8
  173. package/out/renderer/assets/settings-mcp-DUdMuoJ-.js.br +0 -0
  174. package/out/renderer/assets/settings-mcp-DUdMuoJ-.js.gz +0 -0
  175. package/out/renderer/assets/{settings-memory-CvkppfHy.js → settings-memory-CJLG4aHW.js} +3 -3
  176. package/out/renderer/assets/settings-memory-CJLG4aHW.js.br +0 -0
  177. package/out/renderer/assets/settings-memory-CJLG4aHW.js.gz +0 -0
  178. package/out/renderer/assets/{settings-snippets-CO_jL3O3.js → settings-snippets-B4VcnD5Z.js} +6 -7
  179. package/out/renderer/assets/settings-snippets-B4VcnD5Z.js.br +0 -0
  180. package/out/renderer/assets/settings-snippets-B4VcnD5Z.js.gz +0 -0
  181. package/out/renderer/assets/settings-speech-to-text-DQ7lfkTu.js +1054 -0
  182. package/out/renderer/assets/settings-speech-to-text-DQ7lfkTu.js.br +0 -0
  183. package/out/renderer/assets/settings-speech-to-text-DQ7lfkTu.js.gz +0 -0
  184. package/out/renderer/assets/{settings-webui-5n5mI55N.js → settings-webui-DZf9O-6j.js} +2 -2
  185. package/out/renderer/assets/settings-webui-DZf9O-6j.js.br +0 -0
  186. package/out/renderer/assets/settings-webui-DZf9O-6j.js.gz +0 -0
  187. package/out/renderer/assets/{skills-installed-BqjN4mEl.js → skills-installed-Dp0r_4I-.js} +4 -4
  188. package/out/renderer/assets/skills-installed-Dp0r_4I-.js.br +0 -0
  189. package/out/renderer/assets/skills-installed-Dp0r_4I-.js.gz +0 -0
  190. package/out/renderer/assets/{skills-layout-C8b-pe9X.js → skills-layout-D-5rlY38.js} +2 -2
  191. package/out/renderer/assets/skills-layout-D-5rlY38.js.br +0 -0
  192. package/out/renderer/assets/skills-layout-D-5rlY38.js.gz +0 -0
  193. package/out/renderer/assets/{skills-skills-sh-Bh8KQ3PF.js → skills-skills-sh-CcLoIrSw.js} +4 -4
  194. package/out/renderer/assets/skills-skills-sh-CcLoIrSw.js.br +0 -0
  195. package/out/renderer/assets/skills-skills-sh-CcLoIrSw.js.gz +0 -0
  196. package/out/renderer/assets/{sortable.esm-DARmP-Qe.js → sortable.esm-knFxDx0Y.js} +1 -1
  197. package/out/renderer/assets/sortable.esm-knFxDx0Y.js.br +0 -0
  198. package/out/renderer/assets/sortable.esm-knFxDx0Y.js.gz +0 -0
  199. package/out/renderer/assets/{standard-schema-CtFhVVG9.js → standard-schema-dKXoCekr.js} +1 -1
  200. package/out/renderer/assets/standard-schema-dKXoCekr.js.br +0 -0
  201. package/out/renderer/assets/standard-schema-dKXoCekr.js.gz +0 -0
  202. package/out/renderer/assets/{stateDiagram-FHFEXIEX-Da2gV_KD.js → stateDiagram-FHFEXIEX-DWWz4PMv.js} +9 -9
  203. package/out/renderer/assets/stateDiagram-FHFEXIEX-DWWz4PMv.js.br +0 -0
  204. package/out/renderer/assets/stateDiagram-FHFEXIEX-DWWz4PMv.js.gz +0 -0
  205. package/out/renderer/assets/{stateDiagram-v2-QKLJ7IA2-D44mYiaY.js → stateDiagram-v2-QKLJ7IA2-Dm2qD5bg.js} +5 -5
  206. package/out/renderer/assets/{task-Ca7ur8ku.js → task-C5dyYbfn.js} +11 -12
  207. package/out/renderer/assets/task-C5dyYbfn.js.br +0 -0
  208. package/out/renderer/assets/task-C5dyYbfn.js.gz +0 -0
  209. package/out/renderer/assets/{textarea-BCC4Oh3S.js → textarea-DTqKlQbL.js} +1 -1
  210. package/out/renderer/assets/{timeline-definition-GMOUNBTQ-egFv4rLM.js → timeline-definition-GMOUNBTQ-A1tEoL9d.js} +3 -3
  211. package/out/renderer/assets/timeline-definition-GMOUNBTQ-A1tEoL9d.js.br +0 -0
  212. package/out/renderer/assets/timeline-definition-GMOUNBTQ-A1tEoL9d.js.gz +0 -0
  213. package/out/renderer/assets/{vennDiagram-DHZGUBPP-CnOs99wX.js → vennDiagram-DHZGUBPP-tNdYrJi_.js} +2 -2
  214. package/out/renderer/assets/vennDiagram-DHZGUBPP-tNdYrJi_.js.br +0 -0
  215. package/out/renderer/assets/vennDiagram-DHZGUBPP-tNdYrJi_.js.gz +0 -0
  216. package/out/renderer/assets/{wardley-RL74JXVD-Bb1llXhX.js → wardley-RL74JXVD-BxN5_Sp6.js} +4 -4
  217. package/out/renderer/assets/wardley-RL74JXVD-BxN5_Sp6.js.br +0 -0
  218. package/out/renderer/assets/wardley-RL74JXVD-BxN5_Sp6.js.gz +0 -0
  219. package/out/renderer/assets/{wardleyDiagram-NUSXRM2D-BupfUxsI.js → wardleyDiagram-NUSXRM2D-B_3jA8zU.js} +6 -6
  220. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-B_3jA8zU.js.br +0 -0
  221. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-B_3jA8zU.js.gz +0 -0
  222. package/out/renderer/assets/{wrench-Dj1S5dhM.js → wrench-7r-g9MUq.js} +1 -1
  223. package/out/renderer/assets/wrench-7r-g9MUq.js.br +0 -0
  224. package/out/renderer/assets/wrench-7r-g9MUq.js.gz +0 -0
  225. package/out/renderer/assets/{xlsx-view-DIarHecR.js → xlsx-view-Bv0YhA5m.js} +10 -10
  226. package/out/renderer/assets/xlsx-view-Bv0YhA5m.js.br +0 -0
  227. package/out/renderer/assets/xlsx-view-Bv0YhA5m.js.gz +0 -0
  228. package/out/renderer/assets/{xychartDiagram-5P7HB3ND-CtPNxvT_.js → xychartDiagram-5P7HB3ND-NNVuzC4j.js} +3 -3
  229. package/out/renderer/assets/xychartDiagram-5P7HB3ND-NNVuzC4j.js.br +0 -0
  230. package/out/renderer/assets/xychartDiagram-5P7HB3ND-NNVuzC4j.js.gz +0 -0
  231. package/out/renderer/index.html +2 -2
  232. package/out/renderer/index.html.br +0 -0
  233. package/out/renderer/index.html.gz +0 -0
  234. package/out/server/main.js +602 -68
  235. package/package.json +3 -1
  236. package/resources/tree-sitter-wasm/tree-sitter-dart.wasm +0 -0
  237. package/out/renderer/assets/_baseUniq-DdWCC-Go.js.br +0 -0
  238. package/out/renderer/assets/_baseUniq-DdWCC-Go.js.gz +0 -0
  239. package/out/renderer/assets/arc-B_en4gJt.js.br +0 -0
  240. package/out/renderer/assets/arc-B_en4gJt.js.gz +0 -0
  241. package/out/renderer/assets/architectureDiagram-Q4EWVU46-W-l3dTvZ.js.br +0 -0
  242. package/out/renderer/assets/architectureDiagram-Q4EWVU46-W-l3dTvZ.js.gz +0 -0
  243. package/out/renderer/assets/automation--izxbhlj.js.br +0 -0
  244. package/out/renderer/assets/automation--izxbhlj.js.gz +0 -0
  245. package/out/renderer/assets/blockDiagram-DXYQGD6D-BdxXOr8Y.js.br +0 -0
  246. package/out/renderer/assets/blockDiagram-DXYQGD6D-BdxXOr8Y.js.gz +0 -0
  247. package/out/renderer/assets/c4Diagram-AHTNJAMY-C_8XgPtT.js.br +0 -0
  248. package/out/renderer/assets/c4Diagram-AHTNJAMY-C_8XgPtT.js.gz +0 -0
  249. package/out/renderer/assets/chunk-4TB4RGXK-C7h57GNs.js.br +0 -0
  250. package/out/renderer/assets/chunk-4TB4RGXK-C7h57GNs.js.gz +0 -0
  251. package/out/renderer/assets/chunk-EDXVE4YY-BPjYyS5o.js.br +0 -0
  252. package/out/renderer/assets/chunk-EDXVE4YY-BPjYyS5o.js.gz +0 -0
  253. package/out/renderer/assets/chunk-OYMX7WX6-D5Q5ZCl0.js.br +0 -0
  254. package/out/renderer/assets/chunk-OYMX7WX6-D5Q5ZCl0.js.gz +0 -0
  255. package/out/renderer/assets/chunk-YZCP3GAM-AbfctYy8.js.br +0 -0
  256. package/out/renderer/assets/chunk-YZCP3GAM-AbfctYy8.js.gz +0 -0
  257. package/out/renderer/assets/clipboard-D6ZpW5GH.js +0 -15
  258. package/out/renderer/assets/code-editor-cp9haQUT.js.br +0 -0
  259. package/out/renderer/assets/code-editor-cp9haQUT.js.gz +0 -0
  260. package/out/renderer/assets/collapsible-BHMUDZxc.js.br +0 -0
  261. package/out/renderer/assets/collapsible-BHMUDZxc.js.gz +0 -0
  262. package/out/renderer/assets/context-menu-K6z5uSmg.js +0 -282
  263. package/out/renderer/assets/context-menu-K6z5uSmg.js.br +0 -0
  264. package/out/renderer/assets/context-menu-K6z5uSmg.js.gz +0 -0
  265. package/out/renderer/assets/cose-bilkent-S5V4N54A-CVcE9aWV.js.br +0 -0
  266. package/out/renderer/assets/cose-bilkent-S5V4N54A-CVcE9aWV.js.gz +0 -0
  267. package/out/renderer/assets/dagre-KV5264BT-zrX-TFsi.js.br +0 -0
  268. package/out/renderer/assets/dagre-KV5264BT-zrX-TFsi.js.gz +0 -0
  269. package/out/renderer/assets/diagram-5BDNPKRD-Ct9NrJP9.js.br +0 -0
  270. package/out/renderer/assets/diagram-5BDNPKRD-Ct9NrJP9.js.gz +0 -0
  271. package/out/renderer/assets/diagram-G4DWMVQ6-tTGWcCd_.js.br +0 -0
  272. package/out/renderer/assets/diagram-G4DWMVQ6-tTGWcCd_.js.gz +0 -0
  273. package/out/renderer/assets/diagram-MMDJMWI5-CpmcnN2B.js.br +0 -0
  274. package/out/renderer/assets/diagram-MMDJMWI5-CpmcnN2B.js.gz +0 -0
  275. package/out/renderer/assets/diagram-TYMM5635-DKTR2xS9.js.br +0 -0
  276. package/out/renderer/assets/diagram-TYMM5635-DKTR2xS9.js.gz +0 -0
  277. package/out/renderer/assets/erDiagram-SMLLAGMA-BW13EXAs.js.br +0 -0
  278. package/out/renderer/assets/erDiagram-SMLLAGMA-BW13EXAs.js.gz +0 -0
  279. package/out/renderer/assets/field-Be86bgEh.js.br +0 -0
  280. package/out/renderer/assets/field-Be86bgEh.js.gz +0 -0
  281. package/out/renderer/assets/flowDiagram-DWJPFMVM-C3oZAKxX.js.br +0 -0
  282. package/out/renderer/assets/flowDiagram-DWJPFMVM-C3oZAKxX.js.gz +0 -0
  283. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-BARJrpDB.js.br +0 -0
  284. package/out/renderer/assets/ganttDiagram-T4ZO3ILL-BARJrpDB.js.gz +0 -0
  285. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D0gl3Row.js.br +0 -0
  286. package/out/renderer/assets/gitGraphDiagram-UUTBAWPF-D0gl3Row.js.gz +0 -0
  287. package/out/renderer/assets/graph-DB7hnlLW.js.br +0 -0
  288. package/out/renderer/assets/graph-DB7hnlLW.js.gz +0 -0
  289. package/out/renderer/assets/index-Co8mzhyV.js.br +0 -0
  290. package/out/renderer/assets/index-Co8mzhyV.js.gz +0 -0
  291. package/out/renderer/assets/index-iHYS74sQ.css +0 -382
  292. package/out/renderer/assets/index-iHYS74sQ.css.br +0 -0
  293. package/out/renderer/assets/index-iHYS74sQ.css.gz +0 -0
  294. package/out/renderer/assets/infoDiagram-42DDH7IO-BrfLG_LC.js.br +0 -0
  295. package/out/renderer/assets/infoDiagram-42DDH7IO-BrfLG_LC.js.gz +0 -0
  296. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-CO0cyvTq.js.br +0 -0
  297. package/out/renderer/assets/ishikawaDiagram-UXIWVN3A-CO0cyvTq.js.gz +0 -0
  298. package/out/renderer/assets/item-CvcokSWl.js.br +0 -0
  299. package/out/renderer/assets/item-CvcokSWl.js.gz +0 -0
  300. package/out/renderer/assets/journeyDiagram-VCZTEJTY-D3F2Iu5P.js.br +0 -0
  301. package/out/renderer/assets/journeyDiagram-VCZTEJTY-D3F2Iu5P.js.gz +0 -0
  302. package/out/renderer/assets/kanban-definition-6JOO6SKY-CC_drlaB.js.br +0 -0
  303. package/out/renderer/assets/kanban-definition-6JOO6SKY-CC_drlaB.js.gz +0 -0
  304. package/out/renderer/assets/layout-B_3n1To1.js.br +0 -0
  305. package/out/renderer/assets/layout-B_3n1To1.js.gz +0 -0
  306. package/out/renderer/assets/linear-AxwRZ_jw.js.br +0 -0
  307. package/out/renderer/assets/linear-AxwRZ_jw.js.gz +0 -0
  308. package/out/renderer/assets/mermaid-GHXKKRXX-DFOJYe_t.js.br +0 -0
  309. package/out/renderer/assets/mermaid-GHXKKRXX-DFOJYe_t.js.gz +0 -0
  310. package/out/renderer/assets/min-Dip7FmOo.js.br +0 -0
  311. package/out/renderer/assets/min-Dip7FmOo.js.gz +0 -0
  312. package/out/renderer/assets/mindmap-definition-QFDTVHPH-D9aiLrpe.js.br +0 -0
  313. package/out/renderer/assets/mindmap-definition-QFDTVHPH-D9aiLrpe.js.gz +0 -0
  314. package/out/renderer/assets/pieDiagram-DEJITSTG-BX_34lAP.js.br +0 -0
  315. package/out/renderer/assets/pieDiagram-DEJITSTG-BX_34lAP.js.gz +0 -0
  316. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-G09qfNO8.js.br +0 -0
  317. package/out/renderer/assets/quadrantDiagram-34T5L4WZ-G09qfNO8.js.gz +0 -0
  318. package/out/renderer/assets/requirementDiagram-MS252O5E-sJPY8r9J.js.br +0 -0
  319. package/out/renderer/assets/requirementDiagram-MS252O5E-sJPY8r9J.js.gz +0 -0
  320. package/out/renderer/assets/resizable-C5jomC3Y.js.br +0 -0
  321. package/out/renderer/assets/resizable-C5jomC3Y.js.gz +0 -0
  322. package/out/renderer/assets/sankeyDiagram-XADWPNL6-DHIS2ISZ.js.br +0 -0
  323. package/out/renderer/assets/sankeyDiagram-XADWPNL6-DHIS2ISZ.js.gz +0 -0
  324. package/out/renderer/assets/schedule-BoqPUAOI.js.br +0 -0
  325. package/out/renderer/assets/schedule-BoqPUAOI.js.gz +0 -0
  326. package/out/renderer/assets/sequenceDiagram-FGHM5R23-Boc12Em2.js.br +0 -0
  327. package/out/renderer/assets/sequenceDiagram-FGHM5R23-Boc12Em2.js.gz +0 -0
  328. package/out/renderer/assets/session-DgU3TDDV.js.br +0 -0
  329. package/out/renderer/assets/session-DgU3TDDV.js.gz +0 -0
  330. package/out/renderer/assets/setting-dialog-4pmkQ7WP.js.br +0 -0
  331. package/out/renderer/assets/setting-dialog-4pmkQ7WP.js.gz +0 -0
  332. package/out/renderer/assets/settings-agents-C4u0s-iR.js.br +0 -0
  333. package/out/renderer/assets/settings-agents-C4u0s-iR.js.gz +0 -0
  334. package/out/renderer/assets/settings-general-BkLSJoHB.js.br +0 -0
  335. package/out/renderer/assets/settings-general-BkLSJoHB.js.gz +0 -0
  336. package/out/renderer/assets/settings-ilink-6ZrgPpeO.js.br +0 -0
  337. package/out/renderer/assets/settings-ilink-6ZrgPpeO.js.gz +0 -0
  338. package/out/renderer/assets/settings-image-generation-B6YIO6o_.js.br +0 -0
  339. package/out/renderer/assets/settings-image-generation-B6YIO6o_.js.gz +0 -0
  340. package/out/renderer/assets/settings-layout-Cf7GMXFZ.js.br +0 -0
  341. package/out/renderer/assets/settings-layout-Cf7GMXFZ.js.gz +0 -0
  342. package/out/renderer/assets/settings-mcp-CJvL5Siz.js.br +0 -0
  343. package/out/renderer/assets/settings-mcp-CJvL5Siz.js.gz +0 -0
  344. package/out/renderer/assets/settings-memory-CvkppfHy.js.br +0 -0
  345. package/out/renderer/assets/settings-memory-CvkppfHy.js.gz +0 -0
  346. package/out/renderer/assets/settings-snippets-CO_jL3O3.js.br +0 -0
  347. package/out/renderer/assets/settings-snippets-CO_jL3O3.js.gz +0 -0
  348. package/out/renderer/assets/settings-webui-5n5mI55N.js.br +0 -0
  349. package/out/renderer/assets/settings-webui-5n5mI55N.js.gz +0 -0
  350. package/out/renderer/assets/skills-installed-BqjN4mEl.js.br +0 -0
  351. package/out/renderer/assets/skills-installed-BqjN4mEl.js.gz +0 -0
  352. package/out/renderer/assets/skills-layout-C8b-pe9X.js.br +0 -0
  353. package/out/renderer/assets/skills-layout-C8b-pe9X.js.gz +0 -0
  354. package/out/renderer/assets/skills-skills-sh-Bh8KQ3PF.js.br +0 -0
  355. package/out/renderer/assets/skills-skills-sh-Bh8KQ3PF.js.gz +0 -0
  356. package/out/renderer/assets/sortable.esm-DARmP-Qe.js.br +0 -0
  357. package/out/renderer/assets/sortable.esm-DARmP-Qe.js.gz +0 -0
  358. package/out/renderer/assets/standard-schema-CtFhVVG9.js.br +0 -0
  359. package/out/renderer/assets/standard-schema-CtFhVVG9.js.gz +0 -0
  360. package/out/renderer/assets/stateDiagram-FHFEXIEX-Da2gV_KD.js.br +0 -0
  361. package/out/renderer/assets/stateDiagram-FHFEXIEX-Da2gV_KD.js.gz +0 -0
  362. package/out/renderer/assets/task-Ca7ur8ku.js.br +0 -0
  363. package/out/renderer/assets/task-Ca7ur8ku.js.gz +0 -0
  364. package/out/renderer/assets/timeline-definition-GMOUNBTQ-egFv4rLM.js.br +0 -0
  365. package/out/renderer/assets/timeline-definition-GMOUNBTQ-egFv4rLM.js.gz +0 -0
  366. package/out/renderer/assets/vennDiagram-DHZGUBPP-CnOs99wX.js.br +0 -0
  367. package/out/renderer/assets/vennDiagram-DHZGUBPP-CnOs99wX.js.gz +0 -0
  368. package/out/renderer/assets/wardley-RL74JXVD-Bb1llXhX.js.br +0 -0
  369. package/out/renderer/assets/wardley-RL74JXVD-Bb1llXhX.js.gz +0 -0
  370. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BupfUxsI.js.br +0 -0
  371. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BupfUxsI.js.gz +0 -0
  372. package/out/renderer/assets/wrench-Dj1S5dhM.js.br +0 -0
  373. package/out/renderer/assets/wrench-Dj1S5dhM.js.gz +0 -0
  374. package/out/renderer/assets/xlsx-view-DIarHecR.js.br +0 -0
  375. package/out/renderer/assets/xlsx-view-DIarHecR.js.gz +0 -0
  376. package/out/renderer/assets/xychartDiagram-5P7HB3ND-CtPNxvT_.js.br +0 -0
  377. package/out/renderer/assets/xychartDiagram-5P7HB3ND-CtPNxvT_.js.gz +0 -0
@@ -0,0 +1,1054 @@
1
+ import { u as useTranslation, r as reactExports, j as jsxRuntimeExports, I as Input, a as useAppStore, b as useMessage, B as Button, 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, D as Dialog, p as DialogContent, q as DialogHeader, s as DialogTitle, t as DialogDescription, v as Select, w as SelectTrigger, x as SelectValue, y as SelectContent, z as SelectItem, H as DialogFooter, e as request, f as extractErrorMessage, J as generateUUID } from "./index-LmYTNvdF.js";
2
+ import { u as useForm, i, C as Controller } from "./standard-schema-dKXoCekr.js";
3
+ import { F as FieldGroup, a as Field, b as FieldLabel, c as FieldError } from "./field-DR3J0r9e.js";
4
+ import { B as BookOpen, o as openGuide } from "./open-guide-CfLO-Sdk.js";
5
+ import { o as object, _ as _enum, s as string } from "./schemas-c0X-G5_P.js";
6
+ import { P as Plus } from "./plus-YNCXW-GD.js";
7
+ const speechToTextProviderValues = ["dashscope", "volcengine", "openai", "iflytek"];
8
+ const speechToTextRegionValues = ["", "cn-beijing", "ap-southeast-1"];
9
+ const speechToTextCommonSchema = object({
10
+ name: string().trim().min(1, "settings.speechToText.validation.enterName"),
11
+ provider: _enum(speechToTextProviderValues, "settings.speechToText.validation.selectProvider")
12
+ });
13
+ const dashscopeSchema = object({
14
+ apiKey: string().trim().min(1, "settings.speechToText.validation.enterApiKey"),
15
+ model: string(),
16
+ workspaceId: string(),
17
+ region: _enum(speechToTextRegionValues),
18
+ workspace: string(),
19
+ language: string()
20
+ });
21
+ function dashscopeDefaultValues() {
22
+ return {
23
+ apiKey: "",
24
+ model: "",
25
+ workspaceId: "",
26
+ region: "",
27
+ workspace: "",
28
+ language: ""
29
+ };
30
+ }
31
+ function dashscopeFromProvider(provider) {
32
+ return {
33
+ apiKey: provider?.apiKey ?? "",
34
+ model: provider?.model ?? "",
35
+ workspaceId: provider?.workspaceId ?? "",
36
+ region: provider?.region ?? "",
37
+ workspace: provider?.workspace ?? "",
38
+ language: provider?.language ?? ""
39
+ };
40
+ }
41
+ function dashscopeToProviderPart(values) {
42
+ return {
43
+ apiKey: values.apiKey.trim(),
44
+ model: values.model.trim() || void 0,
45
+ workspaceId: values.workspaceId.trim() || void 0,
46
+ region: values.region || void 0,
47
+ workspace: values.workspace.trim() || void 0,
48
+ language: values.language.trim() || void 0
49
+ };
50
+ }
51
+ const volcengineSchema = object({
52
+ apiKey: string().trim().min(1, "settings.speechToText.validation.enterApiKey"),
53
+ appId: string(),
54
+ resourceId: string(),
55
+ baseUrl: string(),
56
+ language: string()
57
+ });
58
+ function volcengineDefaultValues() {
59
+ return { apiKey: "", appId: "", resourceId: "", baseUrl: "", language: "" };
60
+ }
61
+ function volcengineFromProvider(provider) {
62
+ return {
63
+ apiKey: provider?.apiKey ?? "",
64
+ appId: provider?.appId ?? "",
65
+ resourceId: provider?.resourceId ?? "",
66
+ baseUrl: provider?.baseUrl ?? "",
67
+ language: provider?.language ?? ""
68
+ };
69
+ }
70
+ function volcengineToProviderPart(values) {
71
+ return {
72
+ apiKey: values.apiKey.trim(),
73
+ appId: values.appId.trim() || void 0,
74
+ resourceId: values.resourceId.trim() || void 0,
75
+ baseUrl: values.baseUrl.trim().replace(/\/+$/, "") || void 0,
76
+ language: values.language.trim() || void 0
77
+ };
78
+ }
79
+ const openaiSchema = object({
80
+ apiKey: string().trim().min(1, "settings.speechToText.validation.enterApiKey"),
81
+ model: string(),
82
+ baseUrl: string(),
83
+ language: string()
84
+ });
85
+ function openaiDefaultValues() {
86
+ return { apiKey: "", model: "", baseUrl: "", language: "" };
87
+ }
88
+ function openaiFromProvider(provider) {
89
+ return {
90
+ apiKey: provider?.apiKey ?? "",
91
+ model: provider?.model ?? "",
92
+ baseUrl: provider?.baseUrl ?? "",
93
+ language: provider?.language ?? ""
94
+ };
95
+ }
96
+ function openaiToProviderPart(values) {
97
+ return {
98
+ apiKey: values.apiKey.trim(),
99
+ model: values.model.trim() || void 0,
100
+ baseUrl: values.baseUrl.trim().replace(/\/+$/, "") || void 0,
101
+ language: values.language.trim() || void 0
102
+ };
103
+ }
104
+ const iflytekSchema = object({
105
+ apiKey: string().trim().min(1, "settings.speechToText.validation.enterApiKey"),
106
+ appId: string().trim().min(1, "settings.speechToText.validation.enterAppId"),
107
+ apiSecret: string().trim().min(1, "settings.speechToText.validation.enterApiSecret"),
108
+ baseUrl: string(),
109
+ language: string()
110
+ });
111
+ function iflytekDefaultValues() {
112
+ return { apiKey: "", appId: "", apiSecret: "", baseUrl: "", language: "" };
113
+ }
114
+ function iflytekFromProvider(provider) {
115
+ return {
116
+ apiKey: provider?.apiKey ?? "",
117
+ appId: provider?.appId ?? "",
118
+ apiSecret: provider?.apiSecret ?? "",
119
+ baseUrl: provider?.baseUrl ?? "",
120
+ language: provider?.language ?? ""
121
+ };
122
+ }
123
+ function iflytekToProviderPart(values) {
124
+ return {
125
+ apiKey: values.apiKey.trim(),
126
+ appId: values.appId.trim(),
127
+ apiSecret: values.apiSecret.trim(),
128
+ baseUrl: values.baseUrl.trim().replace(/\/+$/, "") || void 0,
129
+ language: values.language.trim() || void 0
130
+ };
131
+ }
132
+ function OptionalLabel$3({ htmlFor, children }) {
133
+ const { t } = useTranslation();
134
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor, className: "text-[11px] text-muted-foreground", children: [
135
+ children,
136
+ t("settings.speechToText.form.optional", " (optional)")
137
+ ] });
138
+ }
139
+ function DashScopeForm({
140
+ open,
141
+ initial,
142
+ submitRef,
143
+ submitAll,
144
+ onValid
145
+ }) {
146
+ const { t } = useTranslation();
147
+ const form = useForm({
148
+ resolver: i(dashscopeSchema),
149
+ mode: "onTouched",
150
+ defaultValues: dashscopeDefaultValues()
151
+ });
152
+ reactExports.useEffect(() => {
153
+ if (!open) return;
154
+ form.reset(
155
+ initial?.provider === "dashscope" ? dashscopeFromProvider(initial) : dashscopeDefaultValues()
156
+ );
157
+ }, [open, initial, form]);
158
+ reactExports.useEffect(() => {
159
+ submitRef.current = form.handleSubmit((values) => onValid(dashscopeToProviderPart(values)));
160
+ return () => {
161
+ submitRef.current = null;
162
+ };
163
+ }, [submitRef, form, onValid]);
164
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
165
+ "form",
166
+ {
167
+ onSubmit: (event) => {
168
+ event.preventDefault();
169
+ submitAll();
170
+ },
171
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { className: "py-1", children: [
172
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
173
+ Controller,
174
+ {
175
+ name: "apiKey",
176
+ control: form.control,
177
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
178
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-apikey", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.apiKey", "API Key") }),
179
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
180
+ Input,
181
+ {
182
+ ...field,
183
+ id: "stt-apikey",
184
+ type: "password",
185
+ placeholder: "sk-...",
186
+ "aria-invalid": fieldState.invalid,
187
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
188
+ }
189
+ ),
190
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
191
+ FieldError,
192
+ {
193
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
194
+ }
195
+ ) : null
196
+ ] })
197
+ }
198
+ ),
199
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
200
+ Controller,
201
+ {
202
+ name: "model",
203
+ control: form.control,
204
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
205
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$3, { htmlFor: "stt-model", children: "Model" }),
206
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
207
+ Input,
208
+ {
209
+ ...field,
210
+ id: "stt-model",
211
+ placeholder: "fun-asr-flash-8k-realtime",
212
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
213
+ }
214
+ )
215
+ ] })
216
+ }
217
+ ),
218
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
219
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
220
+ Controller,
221
+ {
222
+ name: "workspaceId",
223
+ control: form.control,
224
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
225
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$3, { htmlFor: "stt-workspace-id", children: "Workspace ID" }),
226
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Input, { ...field, id: "stt-workspace-id", className: "h-8 text-[11px]!" })
227
+ ] })
228
+ }
229
+ ),
230
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
231
+ Controller,
232
+ {
233
+ name: "region",
234
+ control: form.control,
235
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
236
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$3, { htmlFor: "stt-region", children: "Region" }),
237
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
238
+ Input,
239
+ {
240
+ ...field,
241
+ id: "stt-region",
242
+ placeholder: "cn-beijing",
243
+ className: "h-8 text-[11px]! font-mono"
244
+ }
245
+ )
246
+ ] })
247
+ }
248
+ )
249
+ ] }),
250
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
251
+ Controller,
252
+ {
253
+ name: "workspace",
254
+ control: form.control,
255
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
256
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$3, { htmlFor: "stt-workspace", children: "Workspace" }),
257
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Input, { ...field, id: "stt-workspace", className: "h-8 text-[11px]! font-mono" })
258
+ ] })
259
+ }
260
+ ),
261
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
262
+ Controller,
263
+ {
264
+ name: "language",
265
+ control: form.control,
266
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
267
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-language", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.language", "Language (optional)") }),
268
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
269
+ Input,
270
+ {
271
+ ...field,
272
+ id: "stt-language",
273
+ className: "h-8 text-[11px]! text-foreground/70 focus-visible:ring-0.5"
274
+ }
275
+ )
276
+ ] })
277
+ }
278
+ )
279
+ ] })
280
+ }
281
+ );
282
+ }
283
+ function OptionalLabel$2({ htmlFor, children }) {
284
+ const { t } = useTranslation();
285
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor, className: "text-[11px] text-muted-foreground", children: [
286
+ children,
287
+ t("settings.speechToText.form.optional", " (optional)")
288
+ ] });
289
+ }
290
+ function VolcengineForm({
291
+ open,
292
+ initial,
293
+ submitRef,
294
+ submitAll,
295
+ onValid
296
+ }) {
297
+ const { t } = useTranslation();
298
+ const form = useForm({
299
+ resolver: i(volcengineSchema),
300
+ mode: "onTouched",
301
+ defaultValues: volcengineDefaultValues()
302
+ });
303
+ reactExports.useEffect(() => {
304
+ if (!open) return;
305
+ form.reset(
306
+ initial?.provider === "volcengine" ? volcengineFromProvider(initial) : volcengineDefaultValues()
307
+ );
308
+ }, [open, initial, form]);
309
+ reactExports.useEffect(() => {
310
+ submitRef.current = form.handleSubmit((values) => onValid(volcengineToProviderPart(values)));
311
+ return () => {
312
+ submitRef.current = null;
313
+ };
314
+ }, [submitRef, form, onValid]);
315
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
316
+ "form",
317
+ {
318
+ onSubmit: (event) => {
319
+ event.preventDefault();
320
+ submitAll();
321
+ },
322
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { className: "py-1", children: [
323
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
324
+ Controller,
325
+ {
326
+ name: "apiKey",
327
+ control: form.control,
328
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
329
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-apikey", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.apiKey", "API Key") }),
330
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
331
+ Input,
332
+ {
333
+ ...field,
334
+ id: "stt-apikey",
335
+ type: "password",
336
+ placeholder: "sk-...",
337
+ "aria-invalid": fieldState.invalid,
338
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
339
+ }
340
+ ),
341
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
342
+ FieldError,
343
+ {
344
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
345
+ }
346
+ ) : null
347
+ ] })
348
+ }
349
+ ),
350
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
351
+ Controller,
352
+ {
353
+ name: "resourceId",
354
+ control: form.control,
355
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
356
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$2, { htmlFor: "stt-resource-id", children: "Resource ID" }),
357
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
358
+ Input,
359
+ {
360
+ ...field,
361
+ id: "stt-resource-id",
362
+ placeholder: "volc.seedasr.sauc.duration",
363
+ className: "h-8 text-[11px]! font-mono"
364
+ }
365
+ )
366
+ ] })
367
+ }
368
+ ),
369
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
370
+ Controller,
371
+ {
372
+ name: "appId",
373
+ control: form.control,
374
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
375
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$2, { htmlFor: "stt-volc-app-id", children: t("settings.speechToText.form.appId", "App ID") }),
376
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Input, { ...field, id: "stt-volc-app-id", className: "h-8 text-[11px]! font-mono" })
377
+ ] })
378
+ }
379
+ ),
380
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
381
+ Controller,
382
+ {
383
+ name: "baseUrl",
384
+ control: form.control,
385
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
386
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$2, { htmlFor: "stt-baseurl", children: "Endpoint" }),
387
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
388
+ Input,
389
+ {
390
+ ...field,
391
+ id: "stt-baseurl",
392
+ placeholder: "wss://...",
393
+ "aria-invalid": fieldState.invalid,
394
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
395
+ }
396
+ ),
397
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
398
+ FieldError,
399
+ {
400
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
401
+ }
402
+ ) : null
403
+ ] })
404
+ }
405
+ ),
406
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
407
+ Controller,
408
+ {
409
+ name: "language",
410
+ control: form.control,
411
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
412
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-language", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.language", "Language (optional)") }),
413
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
414
+ Input,
415
+ {
416
+ ...field,
417
+ id: "stt-language",
418
+ className: "h-8 text-[11px]! text-foreground/70 focus-visible:ring-0.5"
419
+ }
420
+ )
421
+ ] })
422
+ }
423
+ )
424
+ ] })
425
+ }
426
+ );
427
+ }
428
+ function OptionalLabel$1({ htmlFor, children }) {
429
+ const { t } = useTranslation();
430
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor, className: "text-[11px] text-muted-foreground", children: [
431
+ children,
432
+ t("settings.speechToText.form.optional", " (optional)")
433
+ ] });
434
+ }
435
+ function OpenAIForm({ open, initial, submitRef, submitAll, onValid }) {
436
+ const { t } = useTranslation();
437
+ const form = useForm({
438
+ resolver: i(openaiSchema),
439
+ mode: "onTouched",
440
+ defaultValues: openaiDefaultValues()
441
+ });
442
+ reactExports.useEffect(() => {
443
+ if (!open) return;
444
+ form.reset(
445
+ initial?.provider === "openai" ? openaiFromProvider(initial) : openaiDefaultValues()
446
+ );
447
+ }, [open, initial, form]);
448
+ reactExports.useEffect(() => {
449
+ submitRef.current = form.handleSubmit((values) => onValid(openaiToProviderPart(values)));
450
+ return () => {
451
+ submitRef.current = null;
452
+ };
453
+ }, [submitRef, form, onValid]);
454
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
455
+ "form",
456
+ {
457
+ onSubmit: (event) => {
458
+ event.preventDefault();
459
+ submitAll();
460
+ },
461
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { className: "py-1", children: [
462
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
463
+ Controller,
464
+ {
465
+ name: "apiKey",
466
+ control: form.control,
467
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
468
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-apikey", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.apiKey", "API Key") }),
469
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
470
+ Input,
471
+ {
472
+ ...field,
473
+ id: "stt-apikey",
474
+ type: "password",
475
+ placeholder: "sk-...",
476
+ "aria-invalid": fieldState.invalid,
477
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
478
+ }
479
+ ),
480
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
481
+ FieldError,
482
+ {
483
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
484
+ }
485
+ ) : null
486
+ ] })
487
+ }
488
+ ),
489
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
490
+ Controller,
491
+ {
492
+ name: "model",
493
+ control: form.control,
494
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
495
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$1, { htmlFor: "stt-model", children: "Model" }),
496
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
497
+ Input,
498
+ {
499
+ ...field,
500
+ id: "stt-model",
501
+ placeholder: "gpt-4o-transcribe",
502
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
503
+ }
504
+ )
505
+ ] })
506
+ }
507
+ ),
508
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
509
+ Controller,
510
+ {
511
+ name: "baseUrl",
512
+ control: form.control,
513
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
514
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel$1, { htmlFor: "stt-baseurl", children: "Endpoint" }),
515
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
516
+ Input,
517
+ {
518
+ ...field,
519
+ id: "stt-baseurl",
520
+ placeholder: "wss://...",
521
+ "aria-invalid": fieldState.invalid,
522
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
523
+ }
524
+ ),
525
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
526
+ FieldError,
527
+ {
528
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
529
+ }
530
+ ) : null
531
+ ] })
532
+ }
533
+ ),
534
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
535
+ Controller,
536
+ {
537
+ name: "language",
538
+ control: form.control,
539
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
540
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-language", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.language", "Language (optional)") }),
541
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
542
+ Input,
543
+ {
544
+ ...field,
545
+ id: "stt-language",
546
+ className: "h-8 text-[11px]! text-foreground/70 focus-visible:ring-0.5"
547
+ }
548
+ )
549
+ ] })
550
+ }
551
+ )
552
+ ] })
553
+ }
554
+ );
555
+ }
556
+ function OptionalLabel({ htmlFor, children }) {
557
+ const { t } = useTranslation();
558
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldLabel, { htmlFor, className: "text-[11px] text-muted-foreground", children: [
559
+ children,
560
+ t("settings.speechToText.form.optional", " (optional)")
561
+ ] });
562
+ }
563
+ function IFlytekForm({ open, initial, submitRef, submitAll, onValid }) {
564
+ const { t } = useTranslation();
565
+ const form = useForm({
566
+ resolver: i(iflytekSchema),
567
+ mode: "onTouched",
568
+ defaultValues: iflytekDefaultValues()
569
+ });
570
+ reactExports.useEffect(() => {
571
+ if (!open) return;
572
+ form.reset(
573
+ initial?.provider === "iflytek" ? iflytekFromProvider(initial) : iflytekDefaultValues()
574
+ );
575
+ }, [open, initial, form]);
576
+ reactExports.useEffect(() => {
577
+ submitRef.current = form.handleSubmit((values) => onValid(iflytekToProviderPart(values)));
578
+ return () => {
579
+ submitRef.current = null;
580
+ };
581
+ }, [submitRef, form, onValid]);
582
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
583
+ "form",
584
+ {
585
+ onSubmit: (event) => {
586
+ event.preventDefault();
587
+ submitAll();
588
+ },
589
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FieldGroup, { className: "py-1", children: [
590
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
591
+ Controller,
592
+ {
593
+ name: "appId",
594
+ control: form.control,
595
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
596
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-app-id", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.appId", "App ID") }),
597
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
598
+ Input,
599
+ {
600
+ ...field,
601
+ id: "stt-app-id",
602
+ "aria-invalid": fieldState.invalid,
603
+ className: "h-8 text-[11px]! font-mono"
604
+ }
605
+ ),
606
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
607
+ FieldError,
608
+ {
609
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
610
+ }
611
+ ) : null
612
+ ] })
613
+ }
614
+ ),
615
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
616
+ Controller,
617
+ {
618
+ name: "apiKey",
619
+ control: form.control,
620
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
621
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-apikey", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.apiKey", "API Key") }),
622
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
623
+ Input,
624
+ {
625
+ ...field,
626
+ id: "stt-apikey",
627
+ type: "password",
628
+ placeholder: "sk-...",
629
+ "aria-invalid": fieldState.invalid,
630
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
631
+ }
632
+ ),
633
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
634
+ FieldError,
635
+ {
636
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
637
+ }
638
+ ) : null
639
+ ] })
640
+ }
641
+ ),
642
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
643
+ Controller,
644
+ {
645
+ name: "apiSecret",
646
+ control: form.control,
647
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
648
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-api-secret", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.apiSecret", "API Secret") }),
649
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
650
+ Input,
651
+ {
652
+ ...field,
653
+ id: "stt-api-secret",
654
+ type: "password",
655
+ "aria-invalid": fieldState.invalid,
656
+ className: "h-8 text-[11px]! font-mono"
657
+ }
658
+ ),
659
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
660
+ FieldError,
661
+ {
662
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
663
+ }
664
+ ) : null
665
+ ] })
666
+ }
667
+ ),
668
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
669
+ Controller,
670
+ {
671
+ name: "baseUrl",
672
+ control: form.control,
673
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
674
+ /* @__PURE__ */ jsxRuntimeExports.jsx(OptionalLabel, { htmlFor: "stt-baseurl", children: "Endpoint" }),
675
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
676
+ Input,
677
+ {
678
+ ...field,
679
+ id: "stt-baseurl",
680
+ placeholder: "wss://...",
681
+ "aria-invalid": fieldState.invalid,
682
+ className: "h-8 text-[11px]! font-mono text-foreground/70 focus-visible:ring-0.5"
683
+ }
684
+ ),
685
+ fieldState.error?.message ? /* @__PURE__ */ jsxRuntimeExports.jsx(
686
+ FieldError,
687
+ {
688
+ errors: [{ message: t(fieldState.error.message, fieldState.error.message) }]
689
+ }
690
+ ) : null
691
+ ] })
692
+ }
693
+ ),
694
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
695
+ Controller,
696
+ {
697
+ name: "language",
698
+ control: form.control,
699
+ render: ({ field }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { children: [
700
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-language", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.language", "Language (optional)") }),
701
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
702
+ Input,
703
+ {
704
+ ...field,
705
+ id: "stt-language",
706
+ className: "h-8 text-[11px]! text-foreground/70 focus-visible:ring-0.5"
707
+ }
708
+ )
709
+ ] })
710
+ }
711
+ )
712
+ ] })
713
+ }
714
+ );
715
+ }
716
+ function SpeechToTextDialog({
717
+ open,
718
+ onOpenChange,
719
+ initialProvider,
720
+ onSave
721
+ }) {
722
+ const { t } = useTranslation();
723
+ const commonForm = useForm({
724
+ resolver: i(speechToTextCommonSchema),
725
+ mode: "onTouched",
726
+ defaultValues: {
727
+ name: "",
728
+ provider: "dashscope"
729
+ }
730
+ });
731
+ const providerSubmitRef = reactExports.useRef(null);
732
+ const selectedProvider = commonForm.watch("provider");
733
+ reactExports.useEffect(() => {
734
+ if (!open) return;
735
+ commonForm.reset({
736
+ name: initialProvider?.name ?? "",
737
+ provider: initialProvider?.provider ?? "dashscope"
738
+ });
739
+ }, [initialProvider, open, commonForm]);
740
+ const submitAll = () => {
741
+ commonForm.handleSubmit(() => {
742
+ providerSubmitRef.current?.();
743
+ })();
744
+ };
745
+ const saveProvider = async (provider, part) => {
746
+ await onSave({
747
+ id: initialProvider?.id ?? generateUUID().replace(/-/g, "").slice(0, 12),
748
+ name: commonForm.getValues("name").trim(),
749
+ provider,
750
+ active: initialProvider?.active ?? false,
751
+ ...part
752
+ });
753
+ };
754
+ const renderError = (message) => message ? /* @__PURE__ */ jsxRuntimeExports.jsx(FieldError, { errors: [{ message: t(message, message) }] }) : null;
755
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open, onOpenChange, disablePointerDismissal: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "max-h-[90vh] overflow-y-auto sm:max-w-lg", children: [
756
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
757
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: initialProvider ? t("settings.speechToText.editProvider", "Edit Provider") : t("settings.speechToText.addProvider", "Add Provider") }),
758
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogDescription, { children: t(
759
+ "settings.speechToText.dialogDesc",
760
+ "Configure provider, endpoint and authentication for realtime speech recognition."
761
+ ) })
762
+ ] }),
763
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
764
+ "form",
765
+ {
766
+ id: "form-speech-to-text",
767
+ onSubmit: commonForm.handleSubmit(() => providerSubmitRef.current?.()),
768
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(FieldGroup, { className: "pt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
769
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
770
+ Controller,
771
+ {
772
+ name: "name",
773
+ control: commonForm.control,
774
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
775
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FieldLabel, { htmlFor: "stt-name", className: "text-[11px] text-muted-foreground", children: t("settings.speechToText.form.name", "Name") }),
776
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
777
+ Input,
778
+ {
779
+ ...field,
780
+ id: "stt-name",
781
+ placeholder: "e.g. Qwen ASR",
782
+ "aria-invalid": fieldState.invalid,
783
+ className: "h-8 text-xs! text-foreground/70 focus-visible:ring-0.5"
784
+ }
785
+ ),
786
+ renderError(fieldState.error?.message)
787
+ ] })
788
+ }
789
+ ),
790
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
791
+ Controller,
792
+ {
793
+ name: "provider",
794
+ control: commonForm.control,
795
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Field, { "data-invalid": fieldState.invalid, children: [
796
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
797
+ FieldLabel,
798
+ {
799
+ htmlFor: "stt-provider",
800
+ className: "text-[11px] text-muted-foreground",
801
+ children: t("settings.speechToText.form.provider", "Provider")
802
+ }
803
+ ),
804
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { name: field.name, value: field.value, onValueChange: field.onChange, children: [
805
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
806
+ SelectTrigger,
807
+ {
808
+ id: "stt-provider",
809
+ "aria-invalid": fieldState.invalid,
810
+ className: "w-full text-[11px]! font-mono",
811
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {})
812
+ }
813
+ ),
814
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: speechToTextProviderValues.map((provider) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: provider, children: provider }, provider)) })
815
+ ] }),
816
+ renderError(fieldState.error?.message)
817
+ ] })
818
+ }
819
+ )
820
+ ] }) })
821
+ }
822
+ ),
823
+ selectedProvider === "dashscope" && /* @__PURE__ */ jsxRuntimeExports.jsx(
824
+ DashScopeForm,
825
+ {
826
+ open,
827
+ initial: initialProvider,
828
+ submitRef: providerSubmitRef,
829
+ submitAll,
830
+ onValid: (part) => saveProvider("dashscope", part)
831
+ }
832
+ ),
833
+ selectedProvider === "volcengine" && /* @__PURE__ */ jsxRuntimeExports.jsx(
834
+ VolcengineForm,
835
+ {
836
+ open,
837
+ initial: initialProvider,
838
+ submitRef: providerSubmitRef,
839
+ submitAll,
840
+ onValid: (part) => saveProvider("volcengine", part)
841
+ }
842
+ ),
843
+ selectedProvider === "openai" && /* @__PURE__ */ jsxRuntimeExports.jsx(
844
+ OpenAIForm,
845
+ {
846
+ open,
847
+ initial: initialProvider,
848
+ submitRef: providerSubmitRef,
849
+ submitAll,
850
+ onValid: (part) => saveProvider("openai", part)
851
+ }
852
+ ),
853
+ selectedProvider === "iflytek" && /* @__PURE__ */ jsxRuntimeExports.jsx(
854
+ IFlytekForm,
855
+ {
856
+ open,
857
+ initial: initialProvider,
858
+ submitRef: providerSubmitRef,
859
+ submitAll,
860
+ onValid: (part) => saveProvider("iflytek", part)
861
+ }
862
+ ),
863
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogFooter, { children: [
864
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
865
+ Button,
866
+ {
867
+ type: "button",
868
+ variant: "outline",
869
+ size: "sm",
870
+ onClick: () => onOpenChange(false),
871
+ className: "h-7 text-xs",
872
+ children: t("settings.speechToText.cancel", "Cancel")
873
+ }
874
+ ),
875
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { type: "submit", form: "form-speech-to-text", size: "sm", className: "h-7 text-xs", children: t("settings.speechToText.save", "Save") })
876
+ ] })
877
+ ] }) });
878
+ }
879
+ function SettingsSpeechToText() {
880
+ const { t, i18n } = useTranslation();
881
+ const { speechToText, setSpeechToText } = useAppStore();
882
+ const { toast, confirm } = useMessage();
883
+ const [providers, setProviders] = reactExports.useState([]);
884
+ const [contextMenuId, setContextMenuId] = reactExports.useState(null);
885
+ const [dialogOpen, setDialogOpen] = reactExports.useState(false);
886
+ const [dialogItem, setDialogItem] = reactExports.useState(null);
887
+ reactExports.useEffect(() => {
888
+ setProviders(speechToText);
889
+ }, [speechToText]);
890
+ const handleSave = async (updated) => {
891
+ try {
892
+ await request.updateSettings({ speechToText: updated });
893
+ setSpeechToText(updated);
894
+ } catch (err) {
895
+ toast.error(
896
+ extractErrorMessage(err) || t("settings.speechToText.updateFailed", "Failed to update configuration.")
897
+ );
898
+ }
899
+ };
900
+ const closeDialog = () => {
901
+ setDialogOpen(false);
902
+ setDialogItem(null);
903
+ };
904
+ const openAddDialog = () => {
905
+ setDialogItem(null);
906
+ setDialogOpen(true);
907
+ };
908
+ const openEditDialog = (provider) => {
909
+ setDialogItem(provider);
910
+ setDialogOpen(true);
911
+ };
912
+ const upsertProvider = async (next) => {
913
+ const isNew = dialogItem === null;
914
+ if (isNew && providers.length === 0) next = { ...next, active: true };
915
+ const updated = isNew ? [...providers, next] : providers.map((provider) => provider.id === dialogItem.id ? next : provider);
916
+ setProviders(updated);
917
+ closeDialog();
918
+ await handleSave(updated);
919
+ };
920
+ const handleDelete = async (id) => {
921
+ const result = await confirm({
922
+ title: t("settings.speechToText.confirmDeleteTitle", "Delete Provider"),
923
+ content: t(
924
+ "settings.speechToText.confirmDeleteDesc",
925
+ "Are you sure you want to delete this speech provider?"
926
+ ),
927
+ buttons: [
928
+ { text: t("message.cancel", "Cancel"), value: null, variant: "outline" },
929
+ {
930
+ text: t("settings.speechToText.delete", "Delete"),
931
+ value: "confirm",
932
+ variant: "destructive"
933
+ }
934
+ ]
935
+ });
936
+ if (!result) return;
937
+ const updated = providers.filter((provider) => provider.id !== id);
938
+ setProviders(updated);
939
+ await handleSave(updated);
940
+ };
941
+ const handleToggleActive = async (id, active) => {
942
+ const updated = providers.map((provider) => ({
943
+ ...provider,
944
+ active: provider.id === id ? active : false
945
+ }));
946
+ setProviders(updated);
947
+ await handleSave(updated);
948
+ };
949
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex h-full flex-col", children: [
950
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-auto w-full max-w-4xl px-5 py-4", children: [
951
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [
952
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-lg font-medium", children: t("settings.speechToText.title", "Speech to Text") }),
953
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
954
+ "button",
955
+ {
956
+ type: "button",
957
+ onClick: () => openGuide(i18n.language, "speech-to-text.md"),
958
+ className: "inline-flex cursor-default items-center gap-1.5 text-xs text-muted-foreground transition-colors hover:text-foreground",
959
+ children: [
960
+ /* @__PURE__ */ jsxRuntimeExports.jsx(BookOpen, { className: "size-3.5" }),
961
+ t("settings.speechToText.guide", "User Guide")
962
+ ]
963
+ }
964
+ )
965
+ ] }),
966
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: t(
967
+ "settings.speechToText.desc",
968
+ "Configure realtime speech recognition providers for chat voice input."
969
+ ) })
970
+ ] }),
971
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-auto w-full max-w-4xl space-y-2 px-4", children: [
972
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-1", children: [
973
+ /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-xs text-foreground/50", children: t("settings.speechToText.providers", "Providers") }),
974
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
975
+ Button,
976
+ {
977
+ variant: "outline",
978
+ size: "xs",
979
+ onClick: openAddDialog,
980
+ className: "h-7 text-xs text-foreground/70",
981
+ children: [
982
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "mr-1 size-3" }),
983
+ t("settings.speechToText.add", "Add Provider")
984
+ ]
985
+ }
986
+ )
987
+ ] }),
988
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "-mx-4 border-t border-border" })
989
+ ] }),
990
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "w-full flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mx-auto w-full max-w-4xl", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "m-5 space-y-3 pb-6", children: [
991
+ providers.map((provider) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
992
+ ContextMenu,
993
+ {
994
+ onOpenChange: (open) => setContextMenuId(open ? provider.id : null),
995
+ children: [
996
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuTrigger, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
997
+ "div",
998
+ {
999
+ className: `flex min-h-10 cursor-default select-none items-center gap-2 overflow-hidden rounded-lg border bg-secondary/50 p-1.5 text-sm ${contextMenuId === provider.id ? "ring-1 ring-primary" : ""}`,
1000
+ children: [
1001
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
1002
+ "span",
1003
+ {
1004
+ className: `ml-1 max-w-32 shrink-0 truncate text-xs font-bold ${!provider.active ? "text-muted-foreground/50" : ""}`,
1005
+ children: provider.name
1006
+ }
1007
+ ),
1008
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "shrink-0 rounded bg-muted px-1 py-0.5 text-[9px] font-medium uppercase text-muted-foreground/70", children: provider.provider }),
1009
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-0 flex-1 truncate font-mono text-[10px] text-muted-foreground", children: provider.model || provider.resourceId || provider.baseUrl }),
1010
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ml-1 flex shrink-0 items-center gap-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1011
+ Switch,
1012
+ {
1013
+ size: "sm",
1014
+ checked: provider.active,
1015
+ onCheckedChange: (active) => handleToggleActive(provider.id, active)
1016
+ }
1017
+ ) })
1018
+ ]
1019
+ }
1020
+ ) }),
1021
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuContent, { className: "w-32", children: [
1022
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { onClick: () => openEditDialog(provider), children: [
1023
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Pencil, { className: "size-3" }),
1024
+ t("settings.speechToText.edit", "Edit")
1025
+ ] }),
1026
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ContextMenuSeparator, {}),
1027
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ContextMenuItem, { variant: "destructive", onClick: () => handleDelete(provider.id), children: [
1028
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Trash2, { className: "size-3" }),
1029
+ t("settings.speechToText.delete", "Delete")
1030
+ ] })
1031
+ ] })
1032
+ ]
1033
+ },
1034
+ provider.id
1035
+ )),
1036
+ providers.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "py-8 text-center text-sm text-muted-foreground", children: t("settings.speechToText.empty", "No speech-to-text providers configured") })
1037
+ ] }) }) }),
1038
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
1039
+ SpeechToTextDialog,
1040
+ {
1041
+ open: dialogOpen,
1042
+ onOpenChange: (open) => {
1043
+ if (!open) closeDialog();
1044
+ else setDialogOpen(true);
1045
+ },
1046
+ initialProvider: dialogItem,
1047
+ onSave: upsertProvider
1048
+ }
1049
+ )
1050
+ ] });
1051
+ }
1052
+ export {
1053
+ SettingsSpeechToText
1054
+ };