agent-tower 0.7.1-beta.3 → 0.7.1

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 (373) hide show
  1. package/dist/executors/__tests__/base.executor.test.js +2 -2
  2. package/dist/executors/__tests__/base.executor.test.js.map +1 -1
  3. package/dist/executors/__tests__/codex.executor.test.js +137 -25
  4. package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
  5. package/dist/executors/__tests__/providers.test.js +69 -2
  6. package/dist/executors/__tests__/providers.test.js.map +1 -1
  7. package/dist/executors/__tests__/stdin-prompt.executors.test.js +61 -3
  8. package/dist/executors/__tests__/stdin-prompt.executors.test.js.map +1 -1
  9. package/dist/executors/base.executor.d.ts +8 -1
  10. package/dist/executors/base.executor.d.ts.map +1 -1
  11. package/dist/executors/base.executor.js +22 -8
  12. package/dist/executors/base.executor.js.map +1 -1
  13. package/dist/executors/claude-code.executor.d.ts +2 -0
  14. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  15. package/dist/executors/claude-code.executor.js +51 -41
  16. package/dist/executors/claude-code.executor.js.map +1 -1
  17. package/dist/executors/codex.executor.d.ts +3 -0
  18. package/dist/executors/codex.executor.d.ts.map +1 -1
  19. package/dist/executors/codex.executor.js +35 -1
  20. package/dist/executors/codex.executor.js.map +1 -1
  21. package/dist/executors/cursor-agent.executor.d.ts +1 -0
  22. package/dist/executors/cursor-agent.executor.d.ts.map +1 -1
  23. package/dist/executors/cursor-agent.executor.js +2 -0
  24. package/dist/executors/cursor-agent.executor.js.map +1 -1
  25. package/dist/executors/default-providers.json +45 -39
  26. package/dist/executors/gemini-cli.executor.d.ts +3 -1
  27. package/dist/executors/gemini-cli.executor.d.ts.map +1 -1
  28. package/dist/executors/gemini-cli.executor.js +18 -12
  29. package/dist/executors/gemini-cli.executor.js.map +1 -1
  30. package/dist/executors/index.d.ts +4 -0
  31. package/dist/executors/index.d.ts.map +1 -1
  32. package/dist/executors/index.js +14 -4
  33. package/dist/executors/index.js.map +1 -1
  34. package/dist/executors/providers.d.ts +4 -1
  35. package/dist/executors/providers.d.ts.map +1 -1
  36. package/dist/executors/providers.js +20 -5
  37. package/dist/executors/providers.js.map +1 -1
  38. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts +2 -0
  39. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts.map +1 -0
  40. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +84 -0
  41. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -0
  42. package/dist/output/claude-code-parser.d.ts +14 -2
  43. package/dist/output/claude-code-parser.d.ts.map +1 -1
  44. package/dist/output/claude-code-parser.js +55 -8
  45. package/dist/output/claude-code-parser.js.map +1 -1
  46. package/dist/pipeline/__tests__/agent-pipeline.test.js +48 -1
  47. package/dist/pipeline/__tests__/agent-pipeline.test.js.map +1 -1
  48. package/dist/pipeline/agent-pipeline.d.ts +6 -1
  49. package/dist/pipeline/agent-pipeline.d.ts.map +1 -1
  50. package/dist/pipeline/agent-pipeline.js +42 -4
  51. package/dist/pipeline/agent-pipeline.js.map +1 -1
  52. package/dist/routes/__tests__/providers.test.js +287 -12
  53. package/dist/routes/__tests__/providers.test.js.map +1 -1
  54. package/dist/routes/__tests__/sessions-runtime.test.js +9 -0
  55. package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
  56. package/dist/routes/providers.d.ts +2 -0
  57. package/dist/routes/providers.d.ts.map +1 -1
  58. package/dist/routes/providers.js +79 -34
  59. package/dist/routes/providers.js.map +1 -1
  60. package/dist/routes/sessions.js +2 -2
  61. package/dist/routes/sessions.js.map +1 -1
  62. package/dist/runtime/__tests__/acp-agent-definitions.test.js +54 -6
  63. package/dist/runtime/__tests__/acp-agent-definitions.test.js.map +1 -1
  64. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +85 -12
  65. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  66. package/dist/runtime/__tests__/acp-driver.test.js +38 -1
  67. package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
  68. package/dist/runtime/__tests__/claude-cli-control.test.d.ts +2 -0
  69. package/dist/runtime/__tests__/claude-cli-control.test.d.ts.map +1 -0
  70. package/dist/runtime/__tests__/claude-cli-control.test.js +147 -0
  71. package/dist/runtime/__tests__/claude-cli-control.test.js.map +1 -0
  72. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts +2 -0
  73. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts.map +1 -0
  74. package/dist/runtime/__tests__/claude-cli-driver.test.js +327 -0
  75. package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -0
  76. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +107 -2
  77. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
  78. package/dist/runtime/__tests__/codex-cli-control.test.d.ts +2 -0
  79. package/dist/runtime/__tests__/codex-cli-control.test.d.ts.map +1 -0
  80. package/dist/runtime/__tests__/codex-cli-control.test.js +287 -0
  81. package/dist/runtime/__tests__/codex-cli-control.test.js.map +1 -0
  82. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts +2 -0
  83. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts.map +1 -0
  84. package/dist/runtime/__tests__/codex-cli-identity.test.js +166 -0
  85. package/dist/runtime/__tests__/codex-cli-identity.test.js.map +1 -0
  86. package/dist/runtime/__tests__/codex-runtime-resolution.test.js +32 -0
  87. package/dist/runtime/__tests__/codex-runtime-resolution.test.js.map +1 -1
  88. package/dist/runtime/__tests__/runtime-coordinator.test.js +74 -0
  89. package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
  90. package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
  91. package/dist/runtime/acp/acp-driver.js +27 -9
  92. package/dist/runtime/acp/acp-driver.js.map +1 -1
  93. package/dist/runtime/acp/agents/claude-code.d.ts.map +1 -1
  94. package/dist/runtime/acp/agents/claude-code.js +6 -11
  95. package/dist/runtime/acp/agents/claude-code.js.map +1 -1
  96. package/dist/runtime/acp/agents/codex.d.ts.map +1 -1
  97. package/dist/runtime/acp/agents/codex.js +15 -6
  98. package/dist/runtime/acp/agents/codex.js.map +1 -1
  99. package/dist/runtime/acp/agents/cursor-agent.d.ts.map +1 -1
  100. package/dist/runtime/acp/agents/cursor-agent.js +2 -1
  101. package/dist/runtime/acp/agents/cursor-agent.js.map +1 -1
  102. package/dist/runtime/acp/agents/deepseek-hermes.js +3 -3
  103. package/dist/runtime/acp/agents/deepseek-hermes.js.map +1 -1
  104. package/dist/runtime/acp/agents/gemini-cli.d.ts.map +1 -1
  105. package/dist/runtime/acp/agents/gemini-cli.js +1 -0
  106. package/dist/runtime/acp/agents/gemini-cli.js.map +1 -1
  107. package/dist/runtime/acp/agents/grok-build.d.ts.map +1 -1
  108. package/dist/runtime/acp/agents/grok-build.js +4 -1
  109. package/dist/runtime/acp/agents/grok-build.js.map +1 -1
  110. package/dist/runtime/acp/agents/kiro-cli.d.ts.map +1 -1
  111. package/dist/runtime/acp/agents/kiro-cli.js +2 -1
  112. package/dist/runtime/acp/agents/kiro-cli.js.map +1 -1
  113. package/dist/runtime/acp/agents/minion-code.js +1 -1
  114. package/dist/runtime/acp/agents/minion-code.js.map +1 -1
  115. package/dist/runtime/acp/agents/native-agent.d.ts +2 -0
  116. package/dist/runtime/acp/agents/native-agent.d.ts.map +1 -1
  117. package/dist/runtime/acp/agents/native-agent.js +12 -16
  118. package/dist/runtime/acp/agents/native-agent.js.map +1 -1
  119. package/dist/runtime/acp/agents/opencode.d.ts.map +1 -1
  120. package/dist/runtime/acp/agents/opencode.js +50 -2
  121. package/dist/runtime/acp/agents/opencode.js.map +1 -1
  122. package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
  123. package/dist/runtime/acp/agents/pi-coding-agent.js +2 -5
  124. package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
  125. package/dist/runtime/acp/agents/qwen-code.d.ts.map +1 -1
  126. package/dist/runtime/acp/agents/qwen-code.js +9 -11
  127. package/dist/runtime/acp/agents/qwen-code.js.map +1 -1
  128. package/dist/runtime/acp/agents/types.d.ts +4 -2
  129. package/dist/runtime/acp/agents/types.d.ts.map +1 -1
  130. package/dist/runtime/acp/codex-cli-identity.d.ts +52 -0
  131. package/dist/runtime/acp/codex-cli-identity.d.ts.map +1 -0
  132. package/dist/runtime/acp/codex-cli-identity.js +179 -0
  133. package/dist/runtime/acp/codex-cli-identity.js.map +1 -0
  134. package/dist/runtime/acp/codex-provider-config.d.ts +15 -2
  135. package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
  136. package/dist/runtime/acp/codex-provider-config.js +42 -5
  137. package/dist/runtime/acp/codex-provider-config.js.map +1 -1
  138. package/dist/runtime/claude-cli-control.d.ts +32 -0
  139. package/dist/runtime/claude-cli-control.d.ts.map +1 -0
  140. package/dist/runtime/claude-cli-control.js +156 -0
  141. package/dist/runtime/claude-cli-control.js.map +1 -0
  142. package/dist/runtime/cli-action-summary.d.ts +3 -0
  143. package/dist/runtime/cli-action-summary.d.ts.map +1 -0
  144. package/dist/runtime/cli-action-summary.js +13 -0
  145. package/dist/runtime/cli-action-summary.js.map +1 -0
  146. package/dist/runtime/cli-driver.d.ts.map +1 -1
  147. package/dist/runtime/cli-driver.js +119 -26
  148. package/dist/runtime/cli-driver.js.map +1 -1
  149. package/dist/runtime/cli-parser.d.ts +4 -1
  150. package/dist/runtime/cli-parser.d.ts.map +1 -1
  151. package/dist/runtime/cli-parser.js +2 -2
  152. package/dist/runtime/cli-parser.js.map +1 -1
  153. package/dist/runtime/codex-cli-control.d.ts +63 -0
  154. package/dist/runtime/codex-cli-control.d.ts.map +1 -0
  155. package/dist/runtime/codex-cli-control.js +311 -0
  156. package/dist/runtime/codex-cli-control.js.map +1 -0
  157. package/dist/runtime/codex-cli-projector.d.ts +17 -0
  158. package/dist/runtime/codex-cli-projector.d.ts.map +1 -0
  159. package/dist/runtime/codex-cli-projector.js +80 -0
  160. package/dist/runtime/codex-cli-projector.js.map +1 -0
  161. package/dist/runtime/contracts.d.ts +12 -2
  162. package/dist/runtime/contracts.d.ts.map +1 -1
  163. package/dist/runtime/runtime-coordinator.d.ts +1 -1
  164. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  165. package/dist/runtime/runtime-coordinator.js +40 -6
  166. package/dist/runtime/runtime-coordinator.js.map +1 -1
  167. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts +2 -0
  168. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts.map +1 -0
  169. package/dist/services/__tests__/claude-cli-capabilities.service.test.js +37 -0
  170. package/dist/services/__tests__/claude-cli-capabilities.service.test.js.map +1 -0
  171. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts +2 -0
  172. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts.map +1 -0
  173. package/dist/services/__tests__/codex-cli-capabilities.service.test.js +35 -0
  174. package/dist/services/__tests__/codex-cli-capabilities.service.test.js.map +1 -0
  175. package/dist/services/__tests__/codex-model-capabilities.service.test.js +23 -2
  176. package/dist/services/__tests__/codex-model-capabilities.service.test.js.map +1 -1
  177. package/dist/services/__tests__/execution-permission.service.test.d.ts +2 -0
  178. package/dist/services/__tests__/execution-permission.service.test.d.ts.map +1 -0
  179. package/dist/services/__tests__/execution-permission.service.test.js +111 -0
  180. package/dist/services/__tests__/execution-permission.service.test.js.map +1 -0
  181. package/dist/services/__tests__/provider-config.service.test.js +1 -0
  182. package/dist/services/__tests__/provider-config.service.test.js.map +1 -1
  183. package/dist/services/__tests__/session-manager.lifecycle.test.js +151 -3
  184. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  185. package/dist/services/claude-cli-capabilities.service.d.ts +11 -0
  186. package/dist/services/claude-cli-capabilities.service.d.ts.map +1 -0
  187. package/dist/services/claude-cli-capabilities.service.js +54 -0
  188. package/dist/services/claude-cli-capabilities.service.js.map +1 -0
  189. package/dist/services/codex-cli-capabilities.service.d.ts +12 -0
  190. package/dist/services/codex-cli-capabilities.service.d.ts.map +1 -0
  191. package/dist/services/codex-cli-capabilities.service.js +65 -0
  192. package/dist/services/codex-cli-capabilities.service.js.map +1 -0
  193. package/dist/services/codex-model-capabilities.service.d.ts.map +1 -1
  194. package/dist/services/codex-model-capabilities.service.js +12 -1
  195. package/dist/services/codex-model-capabilities.service.js.map +1 -1
  196. package/dist/services/execution-permission.service.d.ts +30 -0
  197. package/dist/services/execution-permission.service.d.ts.map +1 -0
  198. package/dist/services/execution-permission.service.js +149 -0
  199. package/dist/services/execution-permission.service.js.map +1 -0
  200. package/dist/services/provider-config.service.d.ts.map +1 -1
  201. package/dist/services/provider-config.service.js +19 -29
  202. package/dist/services/provider-config.service.js.map +1 -1
  203. package/dist/services/session-manager.d.ts +9 -7
  204. package/dist/services/session-manager.d.ts.map +1 -1
  205. package/dist/services/session-manager.js +46 -7
  206. package/dist/services/session-manager.js.map +1 -1
  207. package/dist/services/task.service.d.ts +4 -4
  208. package/dist/services/workspace.service.d.ts +7 -7
  209. package/dist/utils/cli-duplex-channel.d.ts +21 -0
  210. package/dist/utils/cli-duplex-channel.d.ts.map +1 -0
  211. package/dist/utils/cli-duplex-channel.js +200 -0
  212. package/dist/utils/cli-duplex-channel.js.map +1 -0
  213. package/dist/utils/cli-duplex-channel.test.d.ts +2 -0
  214. package/dist/utils/cli-duplex-channel.test.d.ts.map +1 -0
  215. package/dist/utils/cli-duplex-channel.test.js +191 -0
  216. package/dist/utils/cli-duplex-channel.test.js.map +1 -0
  217. package/dist/utils/index.d.ts +1 -0
  218. package/dist/utils/index.d.ts.map +1 -1
  219. package/dist/utils/index.js +1 -0
  220. package/dist/utils/index.js.map +1 -1
  221. package/dist/utils/process-launch.d.ts +3 -0
  222. package/dist/utils/process-launch.d.ts.map +1 -1
  223. package/dist/utils/process-launch.js +129 -10
  224. package/dist/utils/process-launch.js.map +1 -1
  225. package/dist/utils/process-launch.test.js +103 -0
  226. package/dist/utils/process-launch.test.js.map +1 -1
  227. package/dist/web/assets/{AgentDemoPage-B6pABvRL.js → AgentDemoPage-Gr8q6VxC.js} +1 -1
  228. package/dist/web/assets/{AgentEnvironmentSettingsPage-CqMfdwkM.js → AgentEnvironmentSettingsPage-b0XzUzna.js} +1 -1
  229. package/dist/web/assets/{AgentLogo-Ntqe3_Mx.js → AgentLogo-q8Chady2.js} +1 -1
  230. package/dist/web/assets/ConversationPage-DQRA8WuD.js +3 -0
  231. package/dist/web/assets/CreateTaskInput-Dr6Lvllw.js +1 -0
  232. package/dist/web/assets/{DemoPage-D1Ki6sJ0.js → DemoPage-DaDC_MIJ.js} +1 -1
  233. package/dist/web/assets/ExecutionPermissionSelector-DglILGVC.js +29 -0
  234. package/dist/web/assets/{GeneralSettingsPage-DoAXPabw.js → GeneralSettingsPage-BKRf-usO.js} +1 -1
  235. package/dist/web/assets/{Icons-KJJd6C8K.js → Icons-7lThaqQv.js} +1 -1
  236. package/dist/web/assets/{LoadingPreviewPage-BqCKBvgv.js → LoadingPreviewPage-BHAQCQDA.js} +1 -1
  237. package/dist/web/assets/{McpSettingsPage-QXVD4XCW.js → McpSettingsPage-CVOEPwCv.js} +1 -1
  238. package/dist/web/assets/{MemberAvatar-kbJEoyh0.js → MemberAvatar-DUXHTIXf.js} +1 -1
  239. package/dist/web/assets/{NotificationSettingsPage-BrqSeU--.js → NotificationSettingsPage-DBe1YCNN.js} +1 -1
  240. package/dist/web/assets/{ProfileSettingsPage-BmWgVdnG.js → ProfileSettingsPage-DwziCseV.js} +1 -1
  241. package/dist/web/assets/ProjectKanbanPage-Dcz8KXWU.js +86 -0
  242. package/dist/web/assets/{ProjectSettingsPage-BVINN99w.js → ProjectSettingsPage-hzSrj79M.js} +1 -1
  243. package/dist/web/assets/ProviderSettingsPage-CC3zkdf6.js +67 -0
  244. package/dist/web/assets/{SettingsMasterDetail-OF28cvPV.js → SettingsMasterDetail-D5lNH2f6.js} +1 -1
  245. package/dist/web/assets/{TeamSettingsPage-BWGm0m7s.js → TeamSettingsPage-Cdbvh2ne.js} +1 -1
  246. package/dist/web/assets/{arc-CqFgRaZU.js → arc-d2D24uRQ.js} +1 -1
  247. package/dist/web/assets/{architectureDiagram-3BPJPVTR-C0PMdIZJ.js → architectureDiagram-3BPJPVTR-C_p9_AH2.js} +1 -1
  248. package/dist/web/assets/{blockDiagram-GPEHLZMM-SqqtxqkX.js → blockDiagram-GPEHLZMM-CKsR1Tax.js} +1 -1
  249. package/dist/web/assets/{c4Diagram-AAUBKEIU-DYJXB3xL.js → c4Diagram-AAUBKEIU-BBUKt2FW.js} +1 -1
  250. package/dist/web/assets/channel-D0hF47LU.js +1 -0
  251. package/dist/web/assets/check-BqhuHtHP.js +1 -0
  252. package/dist/web/assets/{chevron-down-BZfpVhYr.js → chevron-down-Bw_76CB_.js} +1 -1
  253. package/dist/web/assets/{chevron-right-D52zUyOF.js → chevron-right-DbcFf_Dw.js} +1 -1
  254. package/dist/web/assets/{chevron-up-CFOy5dmW.js → chevron-up-x1n3MhC-.js} +1 -1
  255. package/dist/web/assets/{chunk-2J33WTMH-DQCbv8W_.js → chunk-2J33WTMH-BcGNhDoU.js} +1 -1
  256. package/dist/web/assets/{chunk-4BX2VUAB-B_68_oNW.js → chunk-4BX2VUAB-9dL7TVjW.js} +1 -1
  257. package/dist/web/assets/{chunk-55IACEB6-Bb-pPIxs.js → chunk-55IACEB6-CzJzh0tH.js} +1 -1
  258. package/dist/web/assets/{chunk-727SXJPM-CAiaySk6.js → chunk-727SXJPM-Bp5EOgoG.js} +1 -1
  259. package/dist/web/assets/{chunk-AQP2D5EJ-ChCLJ4Wv.js → chunk-AQP2D5EJ-BaLnh9ac.js} +1 -1
  260. package/dist/web/assets/{chunk-FMBD7UC4-Kz0Cc0mv.js → chunk-FMBD7UC4-BcbzC8r4.js} +1 -1
  261. package/dist/web/assets/{chunk-ND2GUHAM-BttoT7UR.js → chunk-ND2GUHAM-DkT5Stbd.js} +1 -1
  262. package/dist/web/assets/{chunk-QZHKN3VN-BcVhzXXK.js → chunk-QZHKN3VN-DszScpAV.js} +1 -1
  263. package/dist/web/assets/{circle-alert-D67xfWMs.js → circle-alert-ChWS5BPS.js} +1 -1
  264. package/dist/web/assets/classDiagram-4FO5ZUOK-ulXJsBKw.js +1 -0
  265. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-ulXJsBKw.js +1 -0
  266. package/dist/web/assets/{code-block-OCS4YCEC-CMA1utSp.js → code-block-OCS4YCEC-G8tEtSdL.js} +1 -1
  267. package/dist/web/assets/{confirm-dialog-BWvZEHpu.js → confirm-dialog-0vHzUzvI.js} +1 -1
  268. package/dist/web/assets/{cose-bilkent-S5V4N54A-B391zTey.js → cose-bilkent-S5V4N54A-DueZsNr5.js} +1 -1
  269. package/dist/web/assets/cssMode-Dqx3XDOC.js +1 -0
  270. package/dist/web/assets/{dagre-BM42HDAG-CymH_FEZ.js → dagre-BM42HDAG-BkQGrA8s.js} +1 -1
  271. package/dist/web/assets/{diagram-2AECGRRQ-DXOIiLDr.js → diagram-2AECGRRQ-D4qtEjjj.js} +1 -1
  272. package/dist/web/assets/{diagram-5GNKFQAL-B9ocgjdh.js → diagram-5GNKFQAL-ZuFk-7GO.js} +1 -1
  273. package/dist/web/assets/{diagram-KO2AKTUF-DLMpk9Wg.js → diagram-KO2AKTUF-kwBr5lw0.js} +1 -1
  274. package/dist/web/assets/{diagram-LMA3HP47-BBnF83je.js → diagram-LMA3HP47-m88-mNyr.js} +1 -1
  275. package/dist/web/assets/{diagram-OG6HWLK6-AK4FunVI.js → diagram-OG6HWLK6-B9gV1dxA.js} +1 -1
  276. package/dist/web/assets/{erDiagram-TEJ5UH35-B1mryURg.js → erDiagram-TEJ5UH35-De_DsoOX.js} +1 -1
  277. package/dist/web/assets/{flowDiagram-I6XJVG4X-BjIG_1l5.js → flowDiagram-I6XJVG4X-9VwLS0b3.js} +1 -1
  278. package/dist/web/assets/{folder-picker-CaM_drIJ.js → folder-picker-B0khMt7A.js} +1 -1
  279. package/dist/web/assets/{freemarker2-Dj1C_6Ng.js → freemarker2-CLp1Yffb.js} +2 -2
  280. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DjR6lyIQ.js → ganttDiagram-6RSMTGT7-DoOyYr5i.js} +1 -1
  281. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-BpW2L4ry.js → gitGraphDiagram-PVQCEYII-CMGuTxMz.js} +1 -1
  282. package/dist/web/assets/handlebars-CmLfR6Uy.js +1 -0
  283. package/dist/web/assets/html-D34UDOLc.js +1 -0
  284. package/dist/web/assets/htmlMode-qjrvkZFJ.js +1 -0
  285. package/dist/web/assets/{index-DaRxJqVy.js → index-DI7lHrAR.js} +4 -4
  286. package/dist/web/assets/index-DrzmyANC.js +122 -0
  287. package/dist/web/assets/index-MMCbS8_L.css +1 -0
  288. package/dist/web/assets/{infoDiagram-5YYISTIA-Cu-PA_-6.js → infoDiagram-5YYISTIA-gUCDmQX7.js} +1 -1
  289. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-S6Esbkdw.js → ishikawaDiagram-YF4QCWOH-CmfFhhIz.js} +1 -1
  290. package/dist/web/assets/javascript-D5tp0LcO.js +1 -0
  291. package/dist/web/assets/{journeyDiagram-JHISSGLW-wPF9FT9V.js → journeyDiagram-JHISSGLW-BvV5GoR_.js} +1 -1
  292. package/dist/web/assets/{jsonMode-D6IoFlQF.js → jsonMode-BbjYNQ7Q.js} +4 -4
  293. package/dist/web/assets/{kanban-definition-UN3LZRKU-C4jl9zOj.js → kanban-definition-UN3LZRKU-BpTm0MC-.js} +1 -1
  294. package/dist/web/assets/{layers-hQUUT3Gb.js → layers-DslPQJ3T.js} +1 -1
  295. package/dist/web/assets/{linear-D83xDp0H.js → linear-BJ_g8wqu.js} +1 -1
  296. package/dist/web/assets/liquid-DBu3_6XS.js +1 -0
  297. package/dist/web/assets/{lspLanguageFeatures-CUyibjAN.js → lspLanguageFeatures-PSX0tqnR.js} +1 -1
  298. package/dist/web/assets/mdx-Bb4nrA8s.js +1 -0
  299. package/dist/web/assets/{mermaid-NOHMQCX5-CGCWmHha.js → mermaid-NOHMQCX5-B44shuzc.js} +45 -45
  300. package/dist/web/assets/{message-square-B-uYQiTq.js → message-square-C-22K3oa.js} +1 -1
  301. package/dist/web/assets/{mindmap-definition-RKZ34NQL-D5v2uvjn.js → mindmap-definition-RKZ34NQL-DS5GLydx.js} +1 -1
  302. package/dist/web/assets/{modal-D87uszzb.js → modal-CFVLBZ5p.js} +1 -1
  303. package/dist/web/assets/{monaco-B25-2nEB.js → monaco-CkaUvvB4.js} +3 -3
  304. package/dist/web/assets/{pencil-CY2RnQrx.js → pencil-DB3VPszm.js} +1 -1
  305. package/dist/web/assets/{pieDiagram-4H26LBE5-6wdFz_7x.js → pieDiagram-4H26LBE5-C1PJJGsh.js} +1 -1
  306. package/dist/web/assets/python-BfodDYt4.js +1 -0
  307. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-C1CrGMEK.js → quadrantDiagram-W4KKPZXB-CzDfs-TQ.js} +1 -1
  308. package/dist/web/assets/razor-DdED1MBH.js +1 -0
  309. package/dist/web/assets/{requirementDiagram-4Y6WPE33-mDtZrxpp.js → requirementDiagram-4Y6WPE33-qHbU7oZa.js} +1 -1
  310. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-hBlj0XoH.js → sankeyDiagram-5OEKKPKP-BfRgrEeN.js} +1 -1
  311. package/dist/web/assets/select-CL78HCY0.js +1 -0
  312. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DsWmMm20.js → sequenceDiagram-3UESZ5HK-CGTNzKk3.js} +1 -1
  313. package/dist/web/assets/{server-qlZupTvg.js → server-Cd7APx6v.js} +1 -1
  314. package/dist/web/assets/{stateDiagram-AJRCARHV-VNyX1L66.js → stateDiagram-AJRCARHV-BY1LJ4b7.js} +1 -1
  315. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-BV_JKRZC.js +1 -0
  316. package/dist/web/assets/{switch-1pvXCcP-.js → switch-DmQ0Brgd.js} +1 -1
  317. package/dist/web/assets/{textarea-D9oaz-Ba.js → textarea-DOte4pMQ.js} +1 -1
  318. package/dist/web/assets/{timeline-definition-PNZ67QCA-DuBxxd9E.js → timeline-definition-PNZ67QCA-BBhCKsly.js} +1 -1
  319. package/dist/web/assets/{trash-2-C0P8jNpJ.js → trash-2-BSAHXKfW.js} +1 -1
  320. package/dist/web/assets/{tsMode-ogL-3MSe.js → tsMode-B6rHoWny.js} +2 -2
  321. package/dist/web/assets/typescript-C2A3q8UY.js +1 -0
  322. package/dist/web/assets/{upload-BYgsDplu.js → upload-e87qV_RH.js} +1 -1
  323. package/dist/web/assets/{use-profiles-BkGnmson.js → use-profiles-Cv2zBJOC.js} +1 -1
  324. package/dist/web/assets/{use-projects-B4w00h5I.js → use-projects-C8WDJXdj.js} +1 -1
  325. package/dist/web/assets/use-providers-CnpIgITQ.js +1 -0
  326. package/dist/web/assets/{useNormalizedLogs-MsDkcnRQ.js → useNormalizedLogs-AbIXa8s-.js} +1 -1
  327. package/dist/web/assets/{vennDiagram-CIIHVFJN-RbPPOLBo.js → vennDiagram-CIIHVFJN-DrDrt_Jg.js} +1 -1
  328. package/dist/web/assets/{wardley-L42UT6IY-DXzUbdMF.js → wardley-L42UT6IY-CMYQm14y.js} +1 -1
  329. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-B0QXobQM.js → wardleyDiagram-YWT4CUSO-COLA9A80.js} +1 -1
  330. package/dist/web/assets/xml-D4xDxfjR.js +1 -0
  331. package/dist/web/assets/{xychartDiagram-2RQKCTM6-C7bFJItM.js → xychartDiagram-2RQKCTM6-BDegkKoT.js} +1 -1
  332. package/dist/web/assets/yaml-yJExA7tq.js +1 -0
  333. package/dist/web/index.html +2 -2
  334. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts +19 -0
  335. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts.map +1 -0
  336. package/node_modules/@agent-tower/shared/dist/execution-permission.js +53 -0
  337. package/node_modules/@agent-tower/shared/dist/execution-permission.js.map +1 -0
  338. package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
  339. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
  340. package/node_modules/@agent-tower/shared/dist/index.js +1 -0
  341. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
  342. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts +6 -5
  343. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts.map +1 -1
  344. package/node_modules/@agent-tower/shared/dist/provider-capabilities.js.map +1 -1
  345. package/node_modules/@agent-tower/shared/dist/types.d.ts +49 -2
  346. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  347. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  348. package/package.json +1 -1
  349. package/dist/web/assets/ConversationPage-BINGA8XL.js +0 -3
  350. package/dist/web/assets/CreateTaskInput-8bLhHYOc.js +0 -1
  351. package/dist/web/assets/ProjectKanbanPage-D7RJm4yg.js +0 -92
  352. package/dist/web/assets/ProviderSettingsPage-BlgfQMwe.js +0 -95
  353. package/dist/web/assets/channel-B8s9dqlX.js +0 -1
  354. package/dist/web/assets/check-C1zWgxFO.js +0 -1
  355. package/dist/web/assets/classDiagram-4FO5ZUOK-61bPx188.js +0 -1
  356. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-61bPx188.js +0 -1
  357. package/dist/web/assets/cssMode-CNU1q_Gl.js +0 -1
  358. package/dist/web/assets/handlebars-DNXOgRZc.js +0 -1
  359. package/dist/web/assets/html-C20FgNS-.js +0 -1
  360. package/dist/web/assets/htmlMode-CtcV1Ktd.js +0 -1
  361. package/dist/web/assets/index-dElqH2UR.css +0 -1
  362. package/dist/web/assets/index-oC5eh7mZ.js +0 -122
  363. package/dist/web/assets/javascript-CFAVZ6Tb.js +0 -1
  364. package/dist/web/assets/liquid-CuzuRJIN.js +0 -1
  365. package/dist/web/assets/mdx-C3rxTvel.js +0 -1
  366. package/dist/web/assets/python-BYGLbOzO.js +0 -1
  367. package/dist/web/assets/razor-m0U9iUAj.js +0 -1
  368. package/dist/web/assets/select-D7WkUiad.js +0 -1
  369. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DHz3oGyD.js +0 -1
  370. package/dist/web/assets/typescript-rHoDxTY8.js +0 -1
  371. package/dist/web/assets/use-providers-B70-BYNu.js +0 -1
  372. package/dist/web/assets/xml-BqnpQrAq.js +0 -1
  373. package/dist/web/assets/yaml-mz2Zn_K2.js +0 -1
@@ -1,95 +0,0 @@
1
- import{k as tt,m as Ct,q as St,p as Pt,u as H,r as S,j as n,l as $,a6 as nt,T as Ue,I as oe,B as _,Q as kt,S as We,a1 as At,g as Tt,ae as _t,v as It,C as Ot,t as z,a3 as Dt,i as ke,af as Rt,aa as Ae}from"./index-oC5eh7mZ.js";import{a as Ut,b as Kt,u as Lt,c as Mt,d as Bt,e as zt,f as Ft,g as $t,h as Jt}from"./use-providers-B70-BYNu.js";import{C as Wt}from"./confirm-dialog-BWvZEHpu.js";import{M as Ke}from"./modal-D87uszzb.js";import{S as Te}from"./select-D7WkUiad.js";import{T as qe}from"./textarea-D9oaz-Ba.js";import{S as it}from"./switch-1pvXCcP-.js";import{i as Le,R as F,h as A,P as ye,U as qt,j as Vt,k as Gt}from"./mermaid-NOHMQCX5-CGCWmHha.js";import{A as fe}from"./AgentLogo-Ntqe3_Mx.js";import{C as rt}from"./chevron-down-BZfpVhYr.js";import{S as Xt}from"./SettingsMasterDetail-OF28cvPV.js";import{T as st,P as _e}from"./trash-2-C0P8jNpJ.js";import{U as Yt}from"./upload-BYgsDplu.js";import{P as Zt}from"./pencil-CY2RnQrx.js";import"./check-C1zWgxFO.js";import"./chevron-right-D52zUyOF.js";const Ht=[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]],Qt=tt("flask-conical",Ht);const en=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],tn=tt("key-round",en);function nn(e,t){let r=e.slice(0,t).split(/\r\n|\n|\r/g);return[r.length,r.pop().length+1]}function rn(e,t,r){let s=e.split(/\r\n|\n|\r/g),a="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let c=s[i-1];c&&(a+=i.toString().padEnd(o," "),a+=": ",a+=c,a+=`
2
- `,i===t&&(a+=" ".repeat(o+r+2),a+=`^
3
- `))}return a}class N extends Error{line;column;codeblock;constructor(t,r){const[s,a]=nn(r.toml,r.ptr),o=rn(r.toml,s,a);super(`Invalid TOML document: ${t}
4
-
5
- ${o}`,r),this.line=s,this.column=a,this.codeblock=o}}function sn(e,t){let r=0;for(;e[t-++r]==="\\";);return--r&&r%2}function Ie(e,t=0,r=e.length){let s=e.indexOf(`
6
- `,t);return e[s-1]==="\r"&&s--,s<=r?s:-1}function we(e,t){for(let r=t;r<e.length;r++){let s=e[r];if(s===`
7
- `)return r;if(s==="\r"&&e[r+1]===`
8
- `)return r+1;if(s<" "&&s!==" "||s==="")throw new N("control characters are not allowed in comments",{toml:e,ptr:t})}return e.length}function q(e,t,r,s){let a;for(;(a=e[t])===" "||a===" "||!r&&(a===`
9
- `||a==="\r"&&e[t+1]===`
10
- `);)t++;return s||a!=="#"?t:q(e,we(e,t),r)}function an(e,t,r,s,a=!1){if(!s)return t=Ie(e,t),t<0?e.length:t;for(let o=t;o<e.length;o++){let i=e[o];if(i==="#")o=Ie(e,o);else{if(i===r)return o+1;if(i===s||a&&(i===`
11
- `||i==="\r"&&e[o+1]===`
12
- `))return o}}throw new N("cannot find end of structure",{toml:e,ptr:t})}function at(e,t){let r=e[t],s=r===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):r;t+=s.length-1;do t=e.indexOf(s,++t);while(t>-1&&r!=="'"&&sn(e,t));return t>-1&&(t+=s.length,s.length>1&&(e[t]===r&&t++,e[t]===r&&t++)),t}let on=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;class le extends Date{#t=!1;#n=!1;#e=null;constructor(t){let r=!0,s=!0,a="Z";if(typeof t=="string"){let o=t.match(on);o?(o[1]||(r=!1,t=`0000-01-01T${t}`),s=!!o[2],s&&t[10]===" "&&(t=t.replace(" ","T")),o[2]&&+o[2]>23?t="":(a=o[3]||null,t=t.toUpperCase(),!a&&s&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=r,this.#n=s,this.#e=a)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z")return t;let r=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return r=this.#e[0]==="-"?r:-r,new Date(this.getTime()-r*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,r="Z"){let s=new le(t);return s.#e=r,s}static wrapAsLocalDateTime(t){let r=new le(t);return r.#e=null,r}static wrapAsLocalDate(t){let r=new le(t);return r.#n=!1,r.#e=null,r}static wrapAsLocalTime(t){let r=new le(t);return r.#t=!1,r.#e=null,r}}let ln=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,cn=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,dn=/^[+-]?0[0-9_]/,un=/^[0-9a-f]{2,8}$/i,Ve={b:"\b",t:" ",n:`
13
- `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function ot(e,t=0,r=e.length){let s=e[t]==="'",a=e[t++]===e[t]&&e[t]===e[t+1];a&&(r-=2,e[t+=2]==="\r"&&t++,e[t]===`
14
- `&&t++);let o=0,i,c="",l=t;for(;t<r-1;){let d=e[t++];if(d===`
15
- `||d==="\r"&&e[t]===`
16
- `){if(!a)throw new N("newlines are not allowed in strings",{toml:e,ptr:t-1})}else if(d<" "&&d!==" "||d==="")throw new N("control characters are not allowed in strings",{toml:e,ptr:t-1});if(i){if(i=!1,d==="x"||d==="u"||d==="U"){let m=e.slice(t,t+=d==="x"?2:d==="u"?4:8);if(!un.test(m))throw new N("invalid unicode escape",{toml:e,ptr:o});try{c+=String.fromCodePoint(parseInt(m,16))}catch{throw new N("invalid unicode escape",{toml:e,ptr:o})}}else if(a&&(d===`
17
- `||d===" "||d===" "||d==="\r")){if(t=q(e,t-1,!0),e[t]!==`
18
- `&&e[t]!=="\r")throw new N("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:o});t=q(e,t)}else if(d in Ve)c+=Ve[d];else throw new N("unrecognized escape sequence",{toml:e,ptr:o});l=t}else!s&&d==="\\"&&(o=t-1,i=!0,c+=e.slice(l,o))}return c+e.slice(l,r-1)}function mn(e,t,r,s){if(e==="true")return!0;if(e==="false")return!1;if(e==="-inf")return-1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return s?0n:0;let a=ln.test(e);if(a||cn.test(e)){if(dn.test(e))throw new N("leading zeroes are not allowed",{toml:t,ptr:r});e=e.replace(/_/g,"");let i=+e;if(isNaN(i))throw new N("invalid number",{toml:t,ptr:r});if(a){if((a=!Number.isSafeInteger(i))&&!s)throw new N("integer value cannot be represented losslessly",{toml:t,ptr:r});(a||s===!0)&&(i=BigInt(e))}return i}const o=new le(e);if(!o.isValid())throw new N("invalid value",{toml:t,ptr:r});return o}function fn(e,t,r){let s=e.slice(t,r),a=s.indexOf("#");return a>-1&&(we(e,a),s=s.slice(0,a)),[s.trimEnd(),a]}function Me(e,t,r,s,a){if(s===0)throw new N("document contains excessively nested structures. aborting.",{toml:e,ptr:t});let o=e[t];if(o==="["||o==="{"){let[l,d]=o==="["?gn(e,t,s,a):xn(e,t,s,a);if(r){if(d=q(e,d),e[d]===",")d++;else if(e[d]!==r)throw new N("expected comma or end of structure",{toml:e,ptr:d})}return[l,d]}let i;if(o==='"'||o==="'"){i=at(e,t);let l=ot(e,t,i);if(r){if(i=q(e,i),e[i]&&e[i]!==","&&e[i]!==r&&e[i]!==`
19
- `&&e[i]!=="\r")throw new N("unexpected character encountered",{toml:e,ptr:i});i+=+(e[i]===",")}return[l,i]}i=an(e,t,",",r);let c=fn(e,t,i-+(e[i-1]===","));if(!c[0])throw new N("incomplete key-value declaration: no value specified",{toml:e,ptr:t});return r&&c[1]>-1&&(i=q(e,t+c[1]),i+=+(e[i]===",")),[mn(c[0],e,t,a),i]}let pn=/^[a-zA-Z0-9-_]+[ \t]*$/;function Oe(e,t,r="="){let s=t-1,a=[],o=e.indexOf(r,t);if(o<0)throw new N("incomplete key-value: cannot find end of key",{toml:e,ptr:t});do{let i=e[t=++s];if(i!==" "&&i!==" ")if(i==='"'||i==="'"){if(i===e[t+1]&&i===e[t+2])throw new N("multiline strings are not allowed in keys",{toml:e,ptr:t});let c=at(e,t);if(c<0)throw new N("unfinished string encountered",{toml:e,ptr:t});s=e.indexOf(".",c);let l=e.slice(c,s<0||s>o?o:s),d=Ie(l);if(d>-1)throw new N("newlines are not allowed in keys",{toml:e,ptr:t+s+d});if(l.trimStart())throw new N("found extra tokens after the string part",{toml:e,ptr:c});if(o<c&&(o=e.indexOf(r,c),o<0))throw new N("incomplete key-value: cannot find end of key",{toml:e,ptr:t});a.push(ot(e,t,c))}else{s=e.indexOf(".",t);let c=e.slice(t,s<0||s>o?o:s);if(!pn.test(c))throw new N("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:t});a.push(c.trimEnd())}}while(s+1&&s<o);return[a,q(e,o+1,!0,!0)]}function xn(e,t,r,s){let a={},o=new Set,i;for(t++;(i=e[t++])!=="}"&&i;){if(i===",")throw new N("expected value, found comma",{toml:e,ptr:t-1});if(i==="#")t=we(e,t);else if(i!==" "&&i!==" "&&i!==`
20
- `&&i!=="\r"){let c,l=a,d=!1,[m,f]=Oe(e,t-1);for(let E=0;E<m.length;E++){if(E&&(l=d?l[c]:l[c]={}),c=m[E],(d=Object.hasOwn(l,c))&&(typeof l[c]!="object"||o.has(l[c])))throw new N("trying to redefine an already defined value",{toml:e,ptr:t});!d&&c==="__proto__"&&Object.defineProperty(l,c,{enumerable:!0,configurable:!0,writable:!0})}if(d)throw new N("trying to redefine an already defined value",{toml:e,ptr:t});let[v,w]=Me(e,f,"}",r-1,s);o.add(v),l[c]=v,t=w}}if(!i)throw new N("unfinished table encountered",{toml:e,ptr:t});return[a,t]}function gn(e,t,r,s){let a=[],o;for(t++;(o=e[t++])!=="]"&&o;){if(o===",")throw new N("expected value, found comma",{toml:e,ptr:t-1});if(o==="#")t=we(e,t);else if(o!==" "&&o!==" "&&o!==`
21
- `&&o!=="\r"){let i=Me(e,t-1,"]",r-1,s);a.push(i[0]),t=i[1]}}if(!o)throw new N("unfinished array encountered",{toml:e,ptr:t});return[a,t]}function Ge(e,t,r,s){let a=t,o=r,i,c=!1,l;for(let d=0;d<e.length;d++){if(d){if(a=c?a[i]:a[i]={},o=(l=o[i]).c,s===0&&(l.t===1||l.t===2))return null;if(l.t===2){let m=a.length-1;a=a[m],o=o[m].c}}if(i=e[d],(c=Object.hasOwn(a,i))&&o[i]?.t===0&&o[i]?.d)return null;c||(i==="__proto__"&&(Object.defineProperty(a,i,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(o,i,{enumerable:!0,configurable:!0,writable:!0})),o[i]={t:d<e.length-1&&s===2?3:s,d:!1,i:0,c:{}})}if(l=o[i],l.t!==s&&!(s===1&&l.t===3)||(s===2&&(l.d||(l.d=!0,a[i]=[]),a[i].push(a={}),l.c[l.i++]=l={t:1,d:!1,i:0,c:{}}),l.d))return null;if(l.d=!0,s===1)a=c?a[i]:a[i]={};else if(s===0&&c)return null;return[i,a,l.c]}function ce(e,{maxDepth:t=1e3,integersAsBigInt:r}={}){let s={},a={},o=s,i=a;for(let c=q(e,0);c<e.length;){if(e[c]==="["){let l=e[++c]==="[",d=Oe(e,c+=+l,"]");if(l){if(e[d[1]-1]!=="]")throw new N("expected end of table declaration",{toml:e,ptr:d[1]-1});d[1]++}let m=Ge(d[0],s,a,l?2:1);if(!m)throw new N("trying to redefine an already defined table or value",{toml:e,ptr:c});i=m[2],o=m[1],c=d[1]}else{let l=Oe(e,c),d=Ge(l[0],o,i,0);if(!d)throw new N("trying to redefine an already defined table or value",{toml:e,ptr:c});let m=Me(e,l[1],void 0,t,r);d[1][d[0]]=m[0],c=m[1]}if(c=q(e,c,!0),e[c]&&e[c]!==`
22
- `&&e[c]!=="\r")throw new N("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:c});c=q(e,c)}return s}function hn(){return Ct({queryKey:St.system.cursorAgentModels,queryFn:()=>Pt.get("/system/cursor-agent-models"),staleTime:1e3*60*10})}function vn({value:e,onChange:t}){const{t:r}=H(),{data:s,isLoading:a,isError:o}=hn(),i=s?.models??[],[c,l]=S.useState(!1),[d,m]=S.useState(""),f=S.useMemo(()=>{const v=d.trim().toLowerCase();return v?i.filter(w=>w.id.toLowerCase().includes(v)||w.label.toLowerCase().includes(v)):i},[i,d]);return n.jsxs("div",{className:"flex flex-col gap-2 flex-1 min-w-0",children:[n.jsx("input",{type:"text",value:e,onChange:v=>{const w=v.target.value;t(w===""?void 0:w)},placeholder:r("留空为 auto;或直接输入模型 ID(与 cursor-agent --model 一致)"),className:"w-full px-3 py-1.5 text-sm border border-neutral-200 rounded focus:outline-none focus:ring-1 focus:ring-neutral-900 font-mono"}),n.jsxs("button",{type:"button",onClick:()=>l(v=>!v),disabled:a,className:"flex items-center gap-1 text-xs text-neutral-600 hover:text-neutral-900 disabled:opacity-50 w-fit",children:[n.jsx(rt,{size:14,className:$("transition-transform",c&&"rotate-180")}),a?r("正在加载 cursor-agent 模型列表…"):c?r("收起列表"):r("从本机 cursor-agent 选择({count} 个)",{count:i.length})]}),c&&!a&&n.jsxs("div",{className:"rounded-lg border border-neutral-200 bg-white shadow-sm overflow-hidden",children:[n.jsx("input",{type:"text",value:d,onChange:v=>m(v.target.value),placeholder:r("筛选模型…"),className:"w-full px-3 py-2 text-sm border-b border-neutral-100 focus:outline-none focus:ring-1 focus:ring-inset focus:ring-neutral-300"}),n.jsxs("div",{className:"max-h-[min(50vh,22rem)] overflow-y-auto py-1",children:[n.jsx("button",{type:"button",onClick:()=>{t(void 0),l(!1),m("")},className:$("w-full px-3 py-2 text-left text-sm hover:bg-neutral-50",e?"text-neutral-700":"bg-neutral-50 font-medium"),children:r("默认 (auto)")}),f.map(v=>n.jsxs("button",{type:"button",onClick:()=>{t(v.id),l(!1),m("")},className:$("w-full px-3 py-2 text-left text-sm hover:bg-neutral-50 border-t border-neutral-100",e===v.id?"bg-blue-50/80":""),children:[n.jsx("div",{className:"font-mono text-xs text-neutral-900 break-all",children:v.id}),n.jsx("div",{className:"text-xs text-neutral-500 mt-0.5 break-words",children:v.label})]},v.id)),f.length===0&&n.jsx("div",{className:"px-3 py-4 text-xs text-neutral-400 text-center",children:r("无匹配项")})]})]}),(o||s?.error)&&n.jsxs("p",{className:"text-xs text-amber-700",children:[r("无法从本机加载模型列表({error})。仍可手动输入;或在安装 cursor-agent 的机器上运行",{error:s?.error??r("请求失败")}),n.jsx("code",{className:"mx-0.5 bg-neutral-100 px-1 rounded text-[11px]",children:"cursor-agent --list-models"}),r("查看 ID。")]})]})}function bn(e){if(!e)return null;try{const t=new URL(e);return t.protocol!=="http:"&&t.protocol!=="https:"?null:`${t.origin}${t.pathname}`}catch{return null}}function yn(e,t){if(!e)return null;const r=new Date(e);return Number.isNaN(r.getTime())?null:new Intl.DateTimeFormat(t,{dateStyle:"medium",timeStyle:"medium"}).format(r)}function jn({result:e}){const{locale:t,t:r}=H(),s=bn(e.target?.endpoint),a=yn(e.testedAt,t);return n.jsx("div",{"data-provider-test-result":!0,className:$("rounded-lg border px-4 py-3 text-sm",e.ok?"border-success/30 bg-success/10 text-success":"border-warning/30 bg-warning/10 text-foreground"),children:n.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[e.ok?n.jsx(nt,{size:16,className:"shrink-0"}):n.jsx(Ue,{size:16,className:"shrink-0 text-warning"}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsx("div",{className:"font-medium",children:e.ok?e.stage==="connection"?r("连接测试通过"):r("本机可用性检查通过"):r("配置检查未通过")}),n.jsx("div",{className:"mt-0.5 break-words text-xs opacity-80",children:e.summary}),(s||a)&&n.jsxs("dl",{className:"mt-2 grid min-w-0 grid-cols-[auto_minmax(0,1fr)] gap-x-2 gap-y-1 text-xs opacity-80",children:[s&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{className:"font-medium",children:r("测试对象")}),n.jsx("dd",{className:"min-w-0",children:n.jsx("code",{className:"break-all",children:s})})]}),a&&n.jsxs(n.Fragment,{children:[n.jsx("dt",{className:"font-medium",children:r("测试时间")}),n.jsx("dd",{className:"min-w-0 break-words",children:n.jsx("time",{dateTime:e.testedAt,children:a})})]})]}),!e.ok&&n.jsx("div",{className:"mt-1 text-xs opacity-80",children:r("测试失败不会阻止保存。")})]})]})})}function wn({options:e,value:t,onChange:r,label:s,efficiencyLabel:a,intelligenceLabel:o,followCliLabel:i,currentLabel:c,disabled:l=!1,error:d}){const m=e.findIndex(b=>b.value===t),f=t==="",v=S.useRef(m>=0?t:void 0),w=S.useRef(null),E=S.useRef(null),[I,O]=S.useState(!1);S.useEffect(()=>{m>=0&&(v.current=t)},[m,t]);const D=b=>{if(l||f||e.length===0)return;const k=e[Math.max(0,Math.min(e.length-1,b))];k&&k.value!==t&&r(k.value)},V=b=>{const k=E.current?.getBoundingClientRect();if(!k||k.width<=0)return;const X=Math.max(0,Math.min(1,(b-k.left)/k.width));D(Math.round(X*(e.length-1)))},M=m>=0?e[m]:void 0,B=m<0||e.length<2?0:m/(e.length-1)*100,L=S.useId(),Q=`${L}-label`,R=`${L}-current`,K=`${L}-error`;return n.jsxs("div",{className:"space-y-2.5",children:[n.jsxs("div",{className:"flex min-h-8 items-center justify-between gap-3",children:[n.jsx("label",{id:Q,className:"text-xs font-medium text-foreground",children:s}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"text-xs text-muted-foreground",children:i}),n.jsx(it,{checked:f,disabled:l,onCheckedChange:b=>{r(b?"":v.current??e.find(k=>k.value==="medium")?.value??e[0]?.value??"")},"aria-label":i})]})]}),n.jsxs("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground","aria-hidden":"true",children:[n.jsx("span",{children:a}),n.jsx("span",{children:o})]}),n.jsxs("div",{id:L,ref:E,role:"slider",tabIndex:f||l?-1:0,"aria-labelledby":Q,"aria-disabled":f||l,"aria-valuemin":0,"aria-valuemax":Math.max(0,e.length-1),"aria-valuenow":m>=0?m:void 0,"aria-valuetext":M?`${M.label}, ${M.value}`:i,"aria-describedby":d?`${R} ${K}`:R,onKeyDown:b=>{if(f||l||m<0)return;let k=m;if(b.key==="ArrowLeft"||b.key==="ArrowDown")k-=1;else if(b.key==="ArrowRight"||b.key==="ArrowUp")k+=1;else if(b.key==="Home")k=0;else if(b.key==="End")k=e.length-1;else return;b.preventDefault(),D(k)},onPointerDown:b=>{f||l||(w.current=b.pointerId,O(!0),b.currentTarget.setPointerCapture?.(b.pointerId),V(b.clientX))},onPointerMove:b=>{w.current===b.pointerId&&V(b.clientX)},onPointerUp:b=>{w.current===b.pointerId&&(w.current=null,O(!1),b.currentTarget.releasePointerCapture?.(b.pointerId))},onPointerCancel:()=>{w.current=null,O(!1)},className:$("relative mx-2.5 flex h-11 touch-pan-y items-center outline-none select-none",f||l?"cursor-not-allowed opacity-55":"cursor-pointer","focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2"),children:[n.jsx("div",{className:"absolute inset-x-0 h-1 rounded-full bg-border"}),!f&&n.jsx("div",{className:"absolute left-0 h-1 rounded-full bg-primary transition-[width] duration-150 motion-reduce:transition-none",style:{width:`${B}%`}}),e.map((b,k)=>n.jsx("span",{"aria-hidden":"true",className:$("absolute size-3 -translate-x-1/2 rounded-full border-2 transition-colors motion-reduce:transition-none",!f&&k<=m?"border-primary bg-primary":"border-border bg-background"),style:{left:`${e.length<2?0:k/(e.length-1)*100}%`}},b.value)),!f&&M&&n.jsx("span",{"aria-hidden":"true",className:$("absolute size-5 -translate-x-1/2 rounded-full border-[5px] border-primary bg-background shadow-sm transition-[left,transform] duration-150 motion-reduce:transition-none",I&&"scale-110"),style:{left:`${B}%`}})]}),n.jsx("div",{id:R,className:"min-h-5 text-center text-xs text-muted-foreground",children:f?i:`${c}: ${M?.label??t} (${M?.value??t})`}),d&&n.jsx("p",{id:K,role:"alert",className:"text-xs text-destructive",children:d})]})}function Nn(e){if(!e)return null;const t=e.trim();if(!t.startsWith("http://")&&!t.startsWith("https://"))return"API URL must be a complete http:// or https:// URL";try{if(new URL(t).host)return null}catch{}return"API URL must be a complete http:// or https:// URL"}function En(e,t,r){return r==="advanced"?"advanced":e?.write.action==="clear"?"unconfigured":e?.write.action==="replace"?e.value?"configured":"unconfigured":e?.configured||t?"configured":"unconfigured"}function Cn(e,t,r,s){let a=e.config,o=e.settings;const i=c=>{a={...a},r?a[c]=r:delete a[c]};return t==="apiBaseUrl"&&s.apiBaseUrl?s.apiBaseUrl.kind==="config"?i(s.apiBaseUrl.path):s.apiBaseUrl.kind==="settings"&&(o=e.agentType==="CODEX"?An(o,r):me(o,s.apiBaseUrl.path,r||void 0)):t==="model"?(s.model.kind==="config"?i(s.model.path):s.model.kind==="settings"&&(o=me(o,s.model.path,r||void 0)),e.agentType==="CODEX"&&(o=me(o,"model",void 0))):t==="reasoningEffort"&&s.reasoningEffort&&(s.reasoningEffort.kind==="config"?i(s.reasoningEffort.path):s.reasoningEffort.kind==="settings"&&(o=me(o,s.reasoningEffort.path,r||void 0))),{...e,config:a,settings:o,simplified:{...e.simplified,[t]:r}}}function be(e){let t="",r=!1;for(let s=0;s<e.length;s+=1){const a=e[s];if(r){r=!1;continue}if(t==='"'&&a==="\\"){r=!0;continue}if((a==='"'||a==="'")&&!t)t=a;else if(a===t)t="";else if(a==="#"&&!t)return{value:e.slice(0,s).trimEnd(),comment:e.slice(s)}}return{value:e.trimEnd(),comment:""}}function Xe(e){const t=[];let r=0,s="",a=!1;for(let o=0;o<=e.length;o+=1){const i=e[o]??".";if(a){a=!1;continue}if(s==='"'&&i==="\\"){a=!0;continue}if((i==='"'||i==="'")&&!s)s=i;else if(i===s)s="";else if(i==="."&&!s){const c=e.slice(r,o).trim();if(c.startsWith('"')&&c.endsWith('"'))try{t.push(JSON.parse(c))}catch{t.push(c.slice(1,-1))}else c.startsWith("'")&&c.endsWith("'")?t.push(c.slice(1,-1)):c&&t.push(c);r=o+1}}return t}function Sn(e){let t="",r=!1;for(let s=0;s<e.length;s+=1){const a=e[s];if(r){r=!1;continue}if(t==='"'&&a==="\\"){r=!0;continue}if((a==='"'||a==="'")&&!t)t=a;else if(a===t)t="";else{if(a==="="&&!t)return s;if(a==="#"&&!t)return-1}}return-1}function Ye(e,t){return e.length===t.length&&e.every((r,s)=>r===t[s])}function Pn(e,t){let r=t,s,a;for(let o=0;o<e.length;o+=1){const i=e[o];if(r){if(r==='"""'&&i==="\\"){o+=1;continue}const l=r[0];if(i===l){let d=o+1;for(;e[d]===l;)d+=1;if(d-o<r.length)continue;a??=d,r=void 0,o=d-1}continue}if(s){s==='"'&&i==="\\"?o+=1:i===s&&(s=void 0);continue}if(i==="#")break;const c=e.startsWith('"""',o)?'"""':e.startsWith("'''",o)?"'''":void 0;c?(r=c,o+=2):(i==='"'||i==="'")&&(s=i)}return{multiline:r,closingDelimiterEnd:a}}function kn(e){const t=[],r=new Map;let s,a;for(let o=0;o<e.length;o+=1){t[o]=s===void 0;const{multiline:i,closingDelimiterEnd:c}=Pn(e[o],s);s===void 0&&i!==void 0&&(a=o),s!==void 0&&c!==void 0&&a!==void 0&&(r.set(a,{end:o,suffix:e[o].slice(c)}),a=void 0),s=i}return{structural:t,multilineSpanByStart:r}}function lt(e,t,r){try{ce(e)}catch{return e}const s=e.split(`
23
- `),{structural:a,multilineSpanByStart:o}=kn(s);let i=[],c=t.length===1?-1:void 0;const l=[];for(let f=0;f<s.length;f+=1){if(!a[f])continue;const v=be(s[f]).value.trim(),w=v.match(/^\[\[(.+)\]\]$/),E=w??v.match(/^\[(.+)\]$/);if(E){i=Xe(E[1]),!w&&Ye(i,t.slice(0,-1))&&(c=f);continue}const I=Sn(s[f]);if(I<0)continue;const O=[...i,...Xe(s[f].slice(0,I))];if(Ye(O,t)){const D=o.get(f);l.push({index:f,equals:I,end:D?.end??f,closingSuffix:D?.suffix})}}if(l.length>1)return e;if(l.length===1){const f=l[0],v=s[f.index],w=v.slice(0,f.equals+1),E=v.slice(f.equals+1),I=E.match(/^\s*/)?.[0]??" ",{comment:O}=be(E),D=f.end-f.index+1,V=f.closingSuffix??(O?` ${O}`:"");return r?s.splice(f.index,D,`${w}${I}${JSON.stringify(r)}${V}`):f.closingSuffix&&be(f.closingSuffix).comment?s.splice(f.index,D,`${v.match(/^\s*/)?.[0]??""}${f.closingSuffix}`):O?s.splice(f.index,D,`${v.match(/^\s*/)?.[0]??""}${O}`):s.splice(f.index,D),s.join(`
24
- `)}if(!r)return e;const d=`${t.at(-1)} = ${JSON.stringify(r)}`;if(t.length>1)return c===void 0?e:(s.splice(c+1,0,d),s.join(`
25
- `));const m=s.findIndex((f,v)=>{if(!a[v])return!1;const w=be(f).value.trim();return/^\[\[?.+\]\]?$/.test(w)});return m>=0?(s.splice(m,0,d),s.join(`
26
- `)):e?e.endsWith(`
27
- `)?`${e}${d}
28
- `:`${e}
29
- ${d}`:d}function me(e,t,r){return lt(e,[t],r)}function An(e,t){let r;try{r=ce(e)}catch{return e}const s=typeof r.model_provider=="string"&&r.model_provider.trim()?r.model_provider.trim():"openai",a=t.trim()||void 0;return s==="openai"?me(e,"openai_base_url",a):Le(s)?e:lt(e,["model_providers",s,"base_url"],a)}function Tn(e,t){const r=t.executionPermission;return r.path?De(e,r):{enabled:!1,error:null}}function De(e,t){const r=e[t.path];return r===void 0||r===!1?{enabled:!1,error:null}:r===!0?{enabled:!0,error:null}:{enabled:!1,error:`${t.path} must be true or false`}}function Ze(e,t,r){const s={...e.config};return r===void 0?delete s[t.path]:s[t.path]=r,{...e,config:s}}function ie(e,t){const r=t?.trim();return!!r&&e.trim()===r}function _n(e,t){return ie(e,t.apiKey?.envKey)}function je(e,t){return e.sensitive||/key|token|secret|password|auth/i.test(e.key)||_n(e.key,t)}function In(e,t){const r=e.simplified??{};return Object.entries(e.redactedEnv??{}).map(([s,a])=>({key:s,value:t.apiBaseUrl?.kind==="env"&&s===t.apiBaseUrl.path?r.apiBaseUrl??"":"",write:{action:"keep"},configured:a.configured,sensitive:je({key:s,sensitive:a.sensitive},r)}))}function On(e,t){return e.map(r=>je(r,t)&&!r.sensitive?{...r,sensitive:!0}:r)}function Dn(){let e=0;return{begin:()=>(e+=1,e),invalidate:()=>{e+=1},isCurrent:t=>t===e}}function Rn(e){const t=new Map;for(const a of e){const o=a.key.trim();if(!o)continue;const i=t.get(o)??[];i.push(a),t.set(o,i)}const r=(a,o)=>a<o?-1:a>o?1:0,s=(a,o)=>{const i=o.filter(m=>m.write.action!=="keep");if(i.length===0)return{action:"keep"};const c=i.filter(m=>m.key===a),l=c.length>0?c:i,d=l.find(m=>m.write.action==="clear");return d?d.write:[...l].sort((m,f)=>r(m.key,f.key)||r(m.write.action==="replace"?m.write.value:"",f.write.action==="replace"?f.write.value:""))[0].write};return Object.fromEntries([...t.entries()].sort(([a],[o])=>r(a,o)).map(([a,o])=>[a,s(a,o)]))}function Un(e,t,r){return{...e,model:typeof t[r.model.path]=="string"?t[r.model.path]:"",reasoningEffort:r.reasoningEffort?.kind==="config"?typeof t[r.reasoningEffort.path]=="string"?t[r.reasoningEffort.path]:"":e.reasoningEffort}}function He(e,t,r,s=new Set){if(r!=="CODEX")return e;const a=ce(t),o=typeof a.model_provider=="string"&&a.model_provider.trim()?a.model_provider.trim():"openai",i=typeof a.model_reasoning_effort=="string"?a.model_reasoning_effort:"",c=v=>[...s].some(w=>ie(w,v));if(o==="openai")return{...e,apiBaseUrl:typeof a.openai_base_url=="string"?a.openai_base_url:"",apiKey:{configured:ie(e.apiKey?.envKey??"","OPENAI_API_KEY")?e.apiKey?.configured??!1:c("OPENAI_API_KEY"),envKey:"OPENAI_API_KEY"},reasoningEffort:i};if(Le(o))return{...e,apiBaseUrl:void 0,apiKey:void 0,reasoningEffort:i};const l=a.model_providers,d=l&&typeof l=="object"&&!Array.isArray(l)?l[o]:void 0,m=d&&typeof d=="object"&&!Array.isArray(d)?d:{},f=typeof m.env_key=="string"&&m.env_key.trim()?m.env_key.trim():void 0;return{...e,apiBaseUrl:typeof m.base_url=="string"?m.base_url:"",apiKey:f?{configured:ie(e.apiKey?.envKey??"",f)?e.apiKey?.configured??!1:c(f),envKey:f}:void 0,reasoningEffort:i}}function Kn(e){try{const t=ce(e);return typeof t.model_provider=="string"&&Le(t.model_provider.trim())}catch{return!1}}function Ln(e,t,r){try{if(e.agentType==="CLAUDE_CODE"&&(t==="apiBaseUrl"||t==="apiKey")){const s=JSON.parse(e.settings),a=t==="apiBaseUrl"?r.apiBaseUrl?.path:r.apiKey?.path,o=a?s.env?.[a]:void 0;return typeof o=="string"?o:void 0}if(e.agentType==="CODEX"&&(t==="model"||t==="reasoningEffort")){const s=ce(e.settings),a=t==="model"?"model":r.reasoningEffort?.path,o=a?s[a]:void 0;return typeof o=="string"?o:void 0}}catch{return}}function Mn(e,t,r,s){if(r==="simple")return e;const a=Ln(e,t,s),o={...e.config},i={...e.simplified};let c=e.env;return t==="apiBaseUrl"&&s.apiBaseUrl?(a!==void 0&&(i.apiBaseUrl=a),c=c.map(l=>l.key===s.apiBaseUrl.path?{...l,value:"",write:{action:"clear"}}:l)):t==="apiKey"&&s.apiKey?(i.apiKey={configured:a!==void 0,envKey:s.apiKey.path},c=c.map(l=>l.key===s.apiKey.path?{...l,value:"",write:{action:"clear"}}:l)):t==="model"?(a!==void 0&&(i.model=a),delete o[s.model.path]):t==="reasoningEffort"&&a!==void 0&&(i.reasoningEffort=a),{...e,config:o,env:c,simplified:i}}const W={key:"appendPrompt",label:"追加 Prompt",type:"textarea",rows:3,placeholder:"追加到每次 prompt 末尾的文本"},ct={[A.CLAUDE_CODE]:[{key:"dangerouslySkipPermissions",label:"跳过权限确认",type:"switch"},W],[A.GEMINI_CLI]:[{key:"yolo",label:"自动批准操作(YOLO)",type:"switch"},W],[A.CURSOR_AGENT]:[{key:"force",label:"强制执行",type:"switch"},W],[A.CODEX]:[{key:"dangerouslyBypassApprovalsAndSandbox",label:"跳过所有确认和沙盒",type:"switch"},{key:"fastMode",label:"Fast 模式",type:"switch"},{key:"disableResponsesWebsocket",label:"禁用 WebSocket",type:"switch"},{key:"profile",label:"Profile",type:"input",placeholder:"~/.codex/config.toml 中的 profile 名称"},W],[A.QWEN_CODE]:[W],[A.KIRO_CLI]:[{key:"trustAllTools",label:"信任所有工具",type:"switch"},W],[A.OPENCODE]:[{key:"autoApprove",label:"自动批准操作",type:"switch"},W],[A.PI_CODING_AGENT]:[{key:"autoApprove",label:"自动批准操作",type:"switch"},{key:"supportsImages",label:"模型支持图片输入",type:"switch"},W],[A.GROK_BUILD]:[{key:"alwaysApprove",label:"始终批准操作",type:"switch"},W],[A.MINION_CODE]:[{key:"dangerouslySkipPermissions",label:"跳过权限确认",type:"switch"},W]};function Qe(){return{}}function dt(e,t){return{...t}}const Bn=JSON.stringify({env:{ANTHROPIC_API_KEY:"",ANTHROPIC_BASE_URL:""}},null,2),zn=`# Codex config.toml 配置片段 — 通过 -c 参数注入,不会修改 ~/.codex/config.toml
30
- # 参考: https://developers.openai.com/codex/config-sample
31
-
32
- # ─── 模型与推理 ─────────────────────────────────────────────
33
- # model_reasoning_effort = "medium" # minimal | low | medium | high | xhigh | max | ultra
34
- # model_reasoning_summary = "auto" # auto | concise | detailed | none
35
- # model_verbosity = "medium" # low | medium | high
36
- # service_tier = "fast"
37
- # features.fast_mode = true
38
-
39
- # ─── 自定义 Model Provider ──────────────────────────────────
40
- # model_provider = "azure"
41
- #
42
- # [model_providers.azure]
43
- # name = "Azure OpenAI"
44
- # base_url = "https://YOUR_PROJECT.openai.azure.com/openai"
45
- # env_key = "AZURE_OPENAI_API_KEY"
46
- # env_key_instructions = "Set AZURE_OPENAI_API_KEY in Provider env"
47
- # wire_api = "responses"
48
- # query_params = { api-version = "2025-04-01-preview" }
49
-
50
- # ─── OpenAI 数据驻留 ────────────────────────────────────────
51
- # [model_providers.openai-us]
52
- # name = "OpenAI US"
53
- # base_url = "https://us.api.openai.com/v1"
54
- # wire_api = "responses"
55
- # requires_openai_auth = true
56
-
57
- # ─── 本地 OSS (Ollama) ──────────────────────────────────────
58
- # [model_providers.ollama]
59
- # name = "Ollama"
60
- # base_url = "http://localhost:11434/v1"
61
- # wire_api = "responses"
62
- `,Fn=`# Codex config.toml snippet — injected through -c; ~/.codex/config.toml is not modified.
63
- # Reference: https://developers.openai.com/codex/config-sample
64
-
65
- # ─── Model and reasoning ────────────────────────────────────
66
- # model_reasoning_effort = "medium" # minimal | low | medium | high | xhigh | max | ultra
67
- # model_reasoning_summary = "auto" # auto | concise | detailed | none
68
- # model_verbosity = "medium" # low | medium | high
69
- # service_tier = "fast"
70
- # features.fast_mode = true
71
-
72
- # ─── Custom Model Provider ──────────────────────────────────
73
- # model_provider = "azure"
74
- #
75
- # [model_providers.azure]
76
- # name = "Azure OpenAI"
77
- # base_url = "https://YOUR_PROJECT.openai.azure.com/openai"
78
- # env_key = "AZURE_OPENAI_API_KEY"
79
- # env_key_instructions = "Set AZURE_OPENAI_API_KEY in Provider env"
80
- # wire_api = "responses"
81
- # query_params = { api-version = "2025-04-01-preview" }
82
-
83
- # ─── OpenAI data residency ──────────────────────────────────
84
- # [model_providers.openai-us]
85
- # name = "OpenAI US"
86
- # base_url = "https://us.api.openai.com/v1"
87
- # wire_api = "responses"
88
- # requires_openai_auth = true
89
-
90
- # ─── Local OSS (Ollama) ─────────────────────────────────────
91
- # [model_providers.ollama]
92
- # name = "Ollama"
93
- # base_url = "http://localhost:11434/v1"
94
- # wire_api = "responses"
95
- `;function $n(e,t){return e===A.CLAUDE_CODE?Bn:e===A.CODEX?t==="zh-CN"?zn:Fn:""}function Jn(e){return e===A.CLAUDE_CODE||e===A.CODEX}const Re="::ACP";function et(e,t){return t===F.ACP?`${e}${Re}`:String(e)}function pe(e,t){const r=Gt(e);return t===F.ACP?`${r} (ACP)`:r}function Wn(e){return e.endsWith(Re)?{agentType:e.slice(0,-Re.length),runtimeType:F.ACP}:{agentType:e,runtimeType:F.CLI}}function qn(e,t){if(!e.trim())return e;try{const r=JSON.parse(e);if(!r.env||typeof r.env!="object"||Array.isArray(r.env))return e;const s=r.env;return t in s?(delete s[t],JSON.stringify(r,null,2)):e}catch{return e}}const ut=Object.values(ct).flat().reduce((e,t)=>(e[t.key]||(e[t.key]=t.label),e),{});ut.permissionMode="权限策略";const mt=Object.values(ct).flat().reduce((e,t)=>(t.options&&(e[t.key]=Object.fromEntries(t.options.map(r=>[r.value,r.label]))),e),{});mt.permissionMode={ASK:"每次询问",AUTO_APPROVE:"无限制",UNRESTRICTED:"无限制"};function Vn(e,t){if(typeof t=="boolean")return t?Ae("是"):Ae("否");if(typeof t=="string"&&t){const r=mt[e]?.[t];return r?Ae(r):t}return String(t)}function ne(e,t){return e instanceof Error?e.message:t}function Gn(e){return e==="apiBaseUrl"?"API 地址":e==="apiKey"?"API Key":e==="reasoningEffort"?"思考强度":e==="model"?"模型":e==="executionPermission"?"执行权限":e==="fastMode"?"Fast 模式":e==="disableResponsesWebsocket"?"禁用 WebSocket":e}function Xn(e){return{minimal:"最低",low:"低",medium:"中",high:"高",xhigh:"超高",max:"最高",ultra:"Ultra"}[e]??e}function Yn(e){return`agent-tower-provider-backup-${e.replace(/[:.]/g,"-")}.json`}function Zn(e,t){const r=new Blob([JSON.stringify(t,null,2)],{type:"application/json"}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=e,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(s)}function Hn(e){switch(e){case"CREATE":return{label:"新增",className:"bg-success/10 text-success"};case"OVERWRITE":return{label:"覆盖",className:"bg-warning/10 text-warning"};case"SKIP":return{label:"跳过",className:"bg-muted text-muted-foreground"}}}function Qn({type:e}){const t=e==="LOGIN_DETECTED"||e==="INSTALLATION_FOUND";return n.jsx("span",{className:$("inline-block h-2 w-2 rounded-full shrink-0",t?"bg-success":"bg-border"),title:t?"Available":"Unavailable",children:n.jsx("span",{className:"sr-only",children:t?"Available":"Unavailable"})})}function ei({type:e}){const{t}=H();return e==="LOGIN_DETECTED"||e==="INSTALLATION_FOUND"?n.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-success/10 px-2 py-0.5 text-[11px] font-medium text-success",children:[n.jsx(nt,{size:11,"aria-hidden":"true"}),t("可用")]}):n.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:[n.jsx(Rt,{size:11,"aria-hidden":"true"}),t("不可用")]})}function ti({title:e,status:t,defaultOpen:r=!1,children:s}){const[a,o]=S.useState(r);return n.jsxs("div",{className:"rounded-lg border border-border",children:[n.jsxs("button",{type:"button",onClick:()=>o(i=>!i),"aria-expanded":a,className:"w-full flex items-center justify-between rounded-lg px-4 py-2.5 text-sm font-medium text-foreground transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset",children:[n.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[n.jsx("span",{children:e}),t]}),n.jsx(rt,{size:14,"aria-hidden":"true",className:$("text-muted-foreground transition-transform motion-reduce:transition-none",a&&"rotate-180")})]}),a&&n.jsx("div",{className:"px-4 pb-4 space-y-3",children:s})]})}function ni({isOpen:e,onClose:t,providerId:r,initialData:s,onSave:a}){const{locale:o,t:i}=H(),c=Ut(),[l,d]=S.useState(s??{name:"",agentType:A.CLAUDE_CODE,runtimeType:F.CLI,config:Qe(),settings:"",env:[],simplified:{apiKey:{configured:!1,envKey:"ANTHROPIC_API_KEY"}},diagnostics:[],isDefault:!1}),[m,f]=S.useState(()=>JSON.stringify(l.config,null,2)),[v,w]=S.useState(""),[E,I]=S.useState(()=>l.diagnostics?.find(u=>u.field==="settings")?.message??""),[O,D]=S.useState(!1),[V,M]=S.useState(!1),[B,L]=S.useState(null),[Q,R]=S.useState(()=>new Set),[K,b]=S.useState(()=>l.diagnostics?.filter(u=>u.code==="CONFLICT")??[]),[k,X]=S.useState({}),re=S.useRef(Dn()),{data:Ne}=Kt(l.agentType,l.simplified.model),C=Ne?.[l.agentType]??ye[l.agentType],J=C.apiBaseUrl?Nn(l.simplified.apiBaseUrl):null,Y=Tn(l.config,C),G=l.config.permissionMode??l.config.acpPermissionMode,xe=G==="UNRESTRICTED"||G==="AUTO_APPROVE"||G===void 0&&Y.enabled?"UNRESTRICTED":"ASK",ee=l.runtimeType===F.ACP&&G!==void 0&&G!=="ASK"&&G!=="UNRESTRICTED"&&G!=="AUTO_APPROVE"?i("ACP 权限策略必须为 ASK 或 UNRESTRICTED"):null,te=C.disableResponsesWebsocket,h=te?De(l.config,te):null,y=C.fastMode,T=y?De(l.config,y):null,Z=y?l.config[y.path]:void 0,ft=Z===!0?"fast":Z===!1?"standard":"inherit",Ee=l.simplified.reasoningEffort??"",ge=Ee&&!C.reasoningEffort?.options?.includes(Ee)?i("请选择当前 Agent 支持的思考强度档位"):null,Ce=u=>{re.current.invalidate(),u&&d(u),M(!0),L(null)},U=u=>{Ce(u)},Be=()=>{V&&!window.confirm(i("存在未保存的修改,确定放弃吗?"))||t()},pt=u=>l.env.find(p=>ie(p.key,u)),de=(u,p,x="")=>{if(p.action!=="keep"){const g=u===C.apiBaseUrl?.path?"apiBaseUrl":u===C.apiKey?.path?"apiKey":null;g&&X(j=>{const P={...j};return delete P[g],P})}U(g=>{const j=g.env.findIndex(Et=>ie(Et.key,u)),P=[...g.env],ae=j>=0?P[j]:null,ue={key:ae?.key??u,value:x,write:p,configured:ae?.configured??!1,sensitive:ie(u,g.simplified.apiKey?.envKey)||!!ae?.sensitive||/key|token|secret|password|auth/i.test(u)};j>=0?P[j]=ue:P.push(ue);const Nt=g.agentType===A.CLAUDE_CODE&&p.action!=="keep"&&(u===C.apiBaseUrl?.path||u===C.apiKey?.path);return{...g,env:P,settings:Nt?qn(g.settings,u):g.settings}})},he=(u,p)=>{X(x=>{if(!(u in x))return x;const g={...x};return delete g[u],g}),R(x=>new Set(x).add(u)),u==="apiBaseUrl"&&C.apiBaseUrl?.kind==="env"&&de(C.apiBaseUrl.path,p?{action:"replace",value:p}:{action:"clear"},p),U(x=>{const g=Cn(x,u,p,C);return g.config!==x.config&&f(JSON.stringify(g.config,null,2)),g})},xt=u=>{te&&U(p=>{const x=Ze(p,te,u);return f(JSON.stringify(x.config,null,2)),x})},gt=u=>{y&&U(p=>{const x=Ze(p,y,u==="inherit"?void 0:u==="fast");return f(JSON.stringify(x.config,null,2)),x})},ht=u=>{if(V&&!window.confirm(i("切换 Agent 类型会清空当前类型的配置,是否继续?")))return;const{agentType:p,runtimeType:x}=Wn(u),g=ye[p],j=x===F.ACP?{permissionMode:"ASK"}:Qe(),P={...l,agentType:p,runtimeType:x,config:j,settings:"",env:[],simplified:{apiKey:g.apiKey?{configured:!1,envKey:g.apiKey.path}:void 0}};Ce(()=>P),f(JSON.stringify(j,null,2)),w(""),I(""),D(!1),R(new Set),b([]),X({})},ze=(u=!1)=>{let p=!v&&!Y.error&&!ee&&!T?.error&&!h?.error&&!ge;const x=l.settings.trim();if(x&&(O||u))try{if(l.agentType===A.CODEX)ce(x);else if(l.agentType===A.CLAUDE_CODE){const g=JSON.parse(x);if(!g||typeof g!="object"||Array.isArray(g))throw new Error(i("JSON 顶层必须是对象"))}I("")}catch(g){I(i("{format} 语法错误: {message}",{format:l.agentType===A.CODEX?"TOML":"JSON",message:g instanceof Error?g.message:String(g)})),p=!1}return p},Fe=()=>{const u=Rn(l.env),p=Object.fromEntries([...Q].map(x=>[x,l.simplified[x]]));return{providerId:r,name:l.name,agentType:l.agentType,runtimeType:l.runtimeType,env:u,config:l.config,settings:l.settings,simplified:Q.size>0?p:void 0,conflictResolutions:k,isDefault:l.isDefault}},vt=()=>{if(J||!ze(!1))return;const p={...Fe()};delete p.providerId,r&&delete p.runtimeType,a(p)},bt=()=>{if(J||K.length>0||!ze(!0))return;const u=re.current.begin();L(null),c.mutate(Fe(),{onSuccess:p=>{re.current.isCurrent(u)&&L(p)},onError:p=>{re.current.isCurrent(u)&&L({ok:!1,stage:"connection",errorKind:"unknown",summary:ne(p,i("测试配置失败"))})}})};if(!e)return null;const yt=Jn(l.agentType),ve=l.agentType===A.CODEX,Se=ve&&Kn(l.settings),se=l.simplified.apiKey?.envKey??C.apiKey?.path,Pe=se?pt(se):void 0,$e=En(Pe,!!l.simplified.apiKey?.configured,k.apiKey),jt=$e==="advanced",Je=$e!=="unconfigured",wt=!l.name.trim()||!!J||!!v||!!Y.error||!!ee||!!T?.error||!!h?.error||!!ge||!!E&&O||K.length>0;return n.jsx(n.Fragment,{children:n.jsx(Ke,{isOpen:e,onClose:Be,title:i(s?"编辑 Provider":"新建 Provider"),className:"max-w-3xl",action:n.jsxs("div",{className:"flex w-full flex-col-reverse gap-2 sm:flex-row sm:items-center sm:justify-between",children:[n.jsxs(_,{variant:"outline",onClick:bt,disabled:c.isPending||!!J||!!v||!!Y.error||!!ee||!!T?.error||!!h?.error||!!ge||!!E&&O||K.length>0,children:[c.isPending?n.jsx(kt,{className:"animate-spin"}):n.jsx(Qt,{}),c.isPending?i("测试中..."):i("测试配置")]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(_,{variant:"outline",onClick:Be,children:i("取消")}),n.jsx(_,{onClick:vt,disabled:wt,children:i("保存 Provider")})]})]}),children:n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[n.jsxs("div",{children:[n.jsx("label",{htmlFor:"provider-name",className:"mb-1 block text-xs font-medium text-foreground",children:i("名称")}),n.jsx(oe,{id:"provider-name",value:l.name,onChange:u=>U(p=>({...p,name:u.target.value})),placeholder:i("例如: Claude Code (官方)")})]}),!s&&n.jsxs("div",{children:[n.jsx("label",{className:"mb-1 block text-xs font-medium text-foreground",children:i("Agent 类型")}),n.jsx(Te,{value:et(l.agentType,l.runtimeType),onChange:ht,options:qt.flatMap(u=>Vt[u].map(p=>({value:et(u,p),label:pe(u,p),icon:n.jsx(fe,{agentType:u,className:"size-4"})}))),placeholder:i("选择 Agent 类型")})]}),s&&n.jsxs("div",{children:[n.jsx("label",{className:"mb-1 block text-xs font-medium text-foreground",children:i("Agent 类型")}),n.jsxs("div",{className:"flex h-9 items-center gap-2 rounded-lg border border-neutral-200 bg-muted/30 px-3 text-sm text-muted-foreground",children:[n.jsx(fe,{agentType:l.agentType,className:"size-4"}),n.jsx("span",{className:"min-w-0 truncate",children:pe(l.agentType,l.runtimeType)})]})]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",id:"isDefault",checked:l.isDefault,onChange:u=>U(p=>({...p,isDefault:u.target.checked})),className:"h-4 w-4 rounded border-border accent-primary"}),n.jsx("label",{htmlFor:"isDefault",className:"text-sm text-foreground",children:i("设为该类型的默认 Provider")})]}),n.jsxs("div",{className:"space-y-3 rounded-lg border border-border bg-muted/20 p-4",children:[n.jsx("div",{className:"text-sm font-medium text-foreground",children:i("基本配置")}),l.runtimeType===F.ACP&&n.jsxs("div",{children:[n.jsx("label",{className:"mb-1 block text-xs font-medium text-foreground",children:i("权限策略")}),n.jsx(Te,{value:xe,onChange:u=>{U(p=>{const x={...p.config,permissionMode:u};delete x.acpPermissionMode;const g={...p,config:x};return f(JSON.stringify(g.config,null,2)),g})},options:[{value:"ASK",label:i("每次询问")},{value:"UNRESTRICTED",label:i("无限制")}]}),xe==="UNRESTRICTED"&&n.jsx("p",{className:"mt-1 text-xs text-amber-600 dark:text-amber-400",children:i("Agent 将拥有完全访问电脑的权限")}),ee&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:ee})]}),C.apiBaseUrl&&!Se&&n.jsxs("div",{children:[n.jsx("label",{htmlFor:"provider-api-url",className:"mb-1 block text-xs font-medium text-foreground",children:i("API 地址")}),n.jsx(oe,{id:"provider-api-url",type:"url",value:l.simplified.apiBaseUrl??"",onChange:u=>he("apiBaseUrl",u.target.value),placeholder:C.apiBaseUrl.placeholder,"aria-invalid":!!J,"aria-describedby":J?"provider-api-url-error":void 0}),J&&n.jsx("p",{id:"provider-api-url-error",role:"alert",className:"mt-1 text-xs text-destructive",children:i("请输入以 http:// 或 https:// 开头的完整 API 地址")})]}),C.apiKey&&!Se&&(l.agentType!==A.CODEX||!!l.simplified.apiKey)&&n.jsxs("div",{children:[n.jsxs("div",{className:"mb-1 flex items-center justify-between gap-3",children:[n.jsx("label",{htmlFor:"provider-api-key",className:"text-xs font-medium text-foreground",children:"API Key"}),n.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[n.jsx(tn,{size:12}),i(jt?"由高级配置管理":Je?"已配置":"未配置")]})]}),Pe?.write.action==="replace"||!Je?n.jsxs("div",{className:"flex gap-2",children:[n.jsx(oe,{id:"provider-api-key",type:"password",autoComplete:"new-password",value:Pe?.value??"",onChange:u=>de(se,{action:"replace",value:u.target.value},u.target.value),placeholder:i("输入 API Key")}),l.simplified.apiKey?.configured&&n.jsx(_,{variant:"outline",size:"sm",onClick:()=>de(se,{action:"keep"}),children:i("取消替换")})]}):n.jsxs("div",{className:"flex gap-2",children:[n.jsx(_,{variant:"outline",size:"sm",onClick:()=>de(se,{action:"replace",value:""}),children:i("替换")}),n.jsx(_,{variant:"outline",size:"sm",onClick:()=>{window.confirm(i("确定清除此 API Key?"))&&de(se,{action:"clear"})},children:i("清除")})]})]}),n.jsxs("div",{children:[n.jsx("label",{htmlFor:"provider-model",className:"mb-1 block text-xs font-medium text-foreground",children:i("模型")}),l.agentType===A.CURSOR_AGENT?n.jsx(vn,{value:l.simplified.model??"",onChange:u=>he("model",u??"")}):n.jsx(oe,{id:"provider-model",value:l.simplified.model??"",onChange:u=>he("model",u.target.value),placeholder:C.model.placeholder})]}),C.reasoningEffort&&n.jsx(wn,{options:(C.reasoningEffort.options??[]).map(u=>({value:u,label:i(Xn(u))})),value:Ee,onChange:u=>he("reasoningEffort",u),label:i("思考强度"),efficiencyLabel:i("更高效"),intelligenceLabel:i("更智能"),followCliLabel:i("跟随 CLI"),currentLabel:i("当前"),error:ge}),y&&T&&n.jsxs("section",{className:"border-t border-border pt-3","data-fast-mode-control":!0,children:[n.jsxs("div",{className:"grid gap-2 sm:grid-cols-[minmax(0,1fr)_180px] sm:items-center",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("div",{className:"text-xs font-medium text-foreground",children:i("Fast 模式")}),n.jsx("div",{className:"mt-0.5 text-xs text-muted-foreground",children:i("支持的模型速度约提升至 1.5 倍,并增加用量消耗。ChatGPT 登录消耗更多额度;API Key 按 Priority 处理计费。")})]}),n.jsx(Te,{value:ft,disabled:!!T.error,onChange:gt,options:[{value:"inherit",label:i("跟随 Codex")},{value:"standard",label:i("标准速度")},{value:"fast",label:"Fast"}]})]}),T.error&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:i("Fast 模式字段必须为 true 或 false,请在运行配置 JSON 中修正。")})]}),te&&h&&n.jsxs("section",{className:"border-t border-border pt-3",children:[n.jsxs("div",{className:"flex items-center justify-between gap-3",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("div",{className:"text-xs font-medium text-foreground",children:i("禁用 WebSocket")}),n.jsx("div",{className:"mt-0.5 text-xs text-muted-foreground",children:i(Se?"当前原生 Provider 已使用非 WebSocket 传输;此开关不会添加额外运行时覆盖。":"仅禁用 Codex Responses API 的 WebSocket 传输;新启动和后续继续的请求将使用 HTTP。")})]}),n.jsx(it,{checked:h.enabled,disabled:!!h.error,onCheckedChange:xt,"aria-label":i("禁用 WebSocket")})]}),h.error&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:i("禁用 WebSocket 字段必须为 true 或 false,请在运行配置 JSON 中修正。")})]})]}),B&&n.jsx(jn,{result:B}),K.length>0&&n.jsxs("div",{className:"space-y-3 rounded-lg border border-warning/30 bg-warning/10 p-4",children:[n.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[n.jsx(Ue,{size:16,className:"text-warning"}),i("需要解决配置冲突")]}),K.map(u=>n.jsxs("div",{className:"flex flex-col gap-2 rounded-md border border-warning/20 bg-background/70 p-3 sm:flex-row sm:items-center sm:justify-between",children:[n.jsxs("div",{className:"text-xs text-muted-foreground",children:[n.jsx("span",{className:"font-medium text-foreground",children:i(Gn(u.field))})," · ",i("简化字段与高级配置值不同")]}),n.jsx("div",{className:"flex flex-wrap gap-2",children:["simple","advanced"].map(p=>n.jsx(_,{variant:"outline",size:"sm",onClick:()=>{const x=u.field,g=Mn(l,x,p,C);U(()=>g),f(JSON.stringify(g.config,null,2)),X(j=>({...j,[x]:p})),p==="advanced"&&(x==="apiBaseUrl"||x==="model"||x==="reasoningEffort")&&R(j=>{const P=new Set(j);return P.delete(x),P}),b(j=>j.filter(P=>P.field!==x))},children:i(p==="simple"?"采用简化值":"保留高级值")},p))})]},u.field))]}),n.jsxs(ti,{title:i("高级配置"),defaultOpen:!!v||!!E||!!Y.error||!!T?.error||K.length>0,children:[n.jsxs("div",{children:[n.jsx("label",{className:"mb-1 block text-xs font-medium text-foreground",children:i("运行配置 (JSON)")}),n.jsx(qe,{value:m,onChange:u=>{const p=u.target.value;f(p);try{const x=JSON.parse(p);if(!x||typeof x!="object"||Array.isArray(x))throw new Error(i("JSON 顶层必须是对象"));const g=x;w(""),R(j=>{const P=new Set(j).add("model");return C.reasoningEffort?.kind==="config"&&P.add("reasoningEffort"),P}),U(j=>({...j,config:g,simplified:Un(j.simplified,g,C)}))}catch(x){Ce(),w(x instanceof Error?x.message:i("JSON 语法错误"))}},rows:7,className:"font-mono","aria-invalid":!!v}),v&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:v}),Y.error&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:i("执行权限字段必须为 true 或 false,请在运行配置 JSON 中修正。")})]}),n.jsxs("div",{className:"border-t border-border pt-3",children:[n.jsx("label",{className:"mb-2 block text-xs font-medium text-foreground",children:i("环境变量")}),n.jsxs("p",{className:"text-xs text-muted-foreground mb-2",children:[i("注入到 Agent 进程的环境变量。Codex 的")," ",n.jsx("code",{className:"rounded bg-muted px-1",children:"env_key"})," ",i("指定的是变量名,实际值需在此处设置。")]}),n.jsxs("div",{className:"space-y-2",children:[l.env.map((u,p)=>u.write.action!=="clear"&&n.jsxs("div",{className:"flex gap-2 items-center",children:[n.jsx(oe,{value:u.key,disabled:u.configured,onChange:x=>{const g=x.target.value;U(j=>{const P=[...j.env],ae=P[p];if(!ae)return j;const ue={...ae,key:g};return P[p]={...ue,sensitive:je(ue,j.simplified)},{...j,env:P}})},placeholder:i("变量名,如 AZURE_OPENAI_API_KEY"),className:"flex-1 py-1.5 font-mono"}),n.jsx(oe,{value:u.value,type:je(u,l.simplified)?"password":"text",onChange:x=>{const g=[...l.env];g[p]={...g[p],value:x.target.value,write:{action:"replace",value:x.target.value}},U(j=>({...j,env:g,simplified:u.key===C.apiBaseUrl?.path?{...j.simplified,apiBaseUrl:x.target.value}:j.simplified})),u.key===C.apiBaseUrl?.path&&R(j=>new Set(j).add("apiBaseUrl"))},placeholder:u.configured&&u.write.action==="keep"?i("已配置,输入新值以替换"):i("值"),className:"flex-1 py-1.5 font-mono"}),n.jsx("button",{type:"button",onClick:()=>{const x=[...l.env];u.configured?x[p]={...u,value:"",write:{action:"clear"}}:x.splice(p,1),U(g=>({...g,env:x,simplified:u.key===C.apiBaseUrl?.path?{...g.simplified,apiBaseUrl:""}:g.simplified})),u.key===C.apiBaseUrl?.path&&R(g=>new Set(g).add("apiBaseUrl"))},"aria-label":i("删除"),className:"rounded-md p-1.5 text-muted-foreground transition-colors hover:text-destructive focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60",children:n.jsx(st,{size:14})})]},p)),n.jsxs(_,{variant:"outline",size:"sm",onClick:()=>U(u=>({...u,env:[...u.env,{key:"",value:"",write:{action:"replace",value:""},configured:!1,sensitive:!1}]})),children:[n.jsx(_e,{size:12,className:"mr-1"}),i("添加变量")]})]})]}),yt&&n.jsxs("div",{className:"border-t border-border pt-3",children:[n.jsx("label",{className:"mb-2 block text-xs font-medium text-foreground",children:i(ve?"Agent 原生配置 (config.toml)":"Agent 原生配置 (settings.json)")}),n.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:ve?n.jsxs(n.Fragment,{children:[i("直接填写 Codex")," ",n.jsx("code",{className:"rounded bg-muted px-1",children:"config.toml"})," ",i("格式的配置片段,由当前 Runtime 注入。不会修改你的")," ",n.jsx("code",{className:"rounded bg-muted px-1",children:"~/.codex/config.toml"})," ",i("文件。")]}):n.jsxs(n.Fragment,{children:[i("对应 Claude Code 的")," ",n.jsx("code",{className:"rounded bg-muted px-1",children:"~/.claude/settings.json"}),",",i("由当前 Runtime 注入。在")," ",n.jsx("code",{className:"rounded bg-muted px-1",children:"env"})," ",i("中设置 ANTHROPIC_API_KEY、ANTHROPIC_BASE_URL 等。")]})}),n.jsx(qe,{value:l.settings,onChange:u=>{const p=u.target.value;D(!0),I("");let x;if(ve)try{x=He(l.simplified,p,A.CODEX),R(g=>new Set(g).add("reasoningEffort"))}catch{}U(g=>{const j=x===void 0?g.simplified:He(g.simplified,p,A.CODEX,new Set(g.env.flatMap(P=>P.write.action==="clear"?[]:P.write.action==="replace"?P.value?[P.key]:[]:P.configured?[P.key]:[])));return{...g,settings:p,env:On(g.env,j),simplified:j}})},rows:10,className:"font-mono",placeholder:$n(l.agentType,o),"aria-invalid":!!E}),E&&n.jsx("p",{role:"alert",className:"mt-1 text-xs text-destructive",children:E})]})]})]})})})}function ii({isOpen:e,onClose:t,onConfirm:r,acknowledged:s,onAcknowledgedChange:a,isLoading:o}){const{t:i}=H();return n.jsx(Ke,{isOpen:e,onClose:t,title:i("导出 Provider 备份"),className:"max-w-xl",action:n.jsxs(n.Fragment,{children:[n.jsx(_,{variant:"outline",onClick:t,disabled:o,children:i("取消")}),n.jsx(_,{onClick:r,disabled:!s||o,children:i(o?"导出中...":"导出备份")})]}),children:n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex items-start gap-2.5 rounded-lg border border-warning/30 bg-warning/10 px-4 py-3 text-sm text-foreground",children:[n.jsx(Ue,{size:15,className:"mt-0.5 shrink-0 text-warning","aria-hidden":"true"}),n.jsx("span",{children:i("导出的备份文件将包含完整的 Provider 配置,包括环境变量、CLI settings 等敏感信息。任何拿到文件的人都可能直接使用这些 Provider。")})]}),n.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[n.jsx("p",{children:i("这个功能用于备份和迁移,不用于分享配置。")}),n.jsx("p",{children:i("导出内容只包含用户层配置:自定义 Provider,以及对内置 Provider 的覆盖。")})]}),n.jsxs("label",{className:"flex items-start gap-3 rounded-lg border border-border px-4 py-3 text-sm text-foreground",children:[n.jsx("input",{type:"checkbox",checked:s,onChange:c=>a(c.target.checked),className:"mt-0.5 h-4 w-4 rounded border-border accent-primary"}),n.jsx("span",{children:i("我已知晓该备份文件包含敏感信息,只会保存在安全位置。")})]})]})})}function ri({isOpen:e,onClose:t,preview:r,backup:s,onConfirm:a,isLoading:o}){const{t:i}=H();if(!r||!s)return null;const c=r.summary.create+r.summary.overwrite,l=[...r.items].sort((d,m)=>{const f={CREATE:0,OVERWRITE:1,SKIP:2};return f[d.action]-f[m.action]});return n.jsx(Ke,{isOpen:e,onClose:t,title:i("导入 Provider 备份"),className:"max-w-3xl",action:n.jsxs(n.Fragment,{children:[n.jsx(_,{variant:"outline",onClick:t,disabled:o,children:i("取消")}),n.jsx(_,{onClick:a,disabled:c===0||o,children:o?i("导入中..."):i("确认导入 {count} 项",{count:c})})]}),children:n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"rounded-lg border border-border bg-muted/40 px-4 py-3 text-sm text-muted-foreground",children:[n.jsx("div",{children:i("导出时间:{value}",{value:new Date(s.exportedAt).toLocaleString()})}),n.jsx("div",{children:i("模式:完整备份(含敏感信息)")}),n.jsx("div",{children:i("文件内 Provider 数量:{count}",{count:s.providers.length})})]}),n.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[n.jsxs("div",{className:"rounded-lg border border-success/25 bg-success/10 px-4 py-3",children:[n.jsx("div",{className:"text-xs font-medium text-success",children:i("新增")}),n.jsx("div",{className:"text-lg font-semibold text-foreground",children:r.summary.create})]}),n.jsxs("div",{className:"rounded-lg border border-warning/25 bg-warning/10 px-4 py-3",children:[n.jsx("div",{className:"text-xs font-medium text-warning",children:i("覆盖")}),n.jsx("div",{className:"text-lg font-semibold text-foreground",children:r.summary.overwrite})]}),n.jsxs("div",{className:"rounded-lg border border-border bg-muted/40 px-4 py-3",children:[n.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:i("跳过")}),n.jsx("div",{className:"text-lg font-semibold text-foreground",children:r.summary.skip})]})]}),n.jsx("div",{className:"max-h-[420px] overflow-y-auto space-y-3 pr-1",children:l.map(d=>{const m=Hn(d.action);return n.jsxs("div",{className:"rounded-lg border border-border px-4 py-3",children:[n.jsx("div",{className:"flex items-center justify-between gap-3",children:n.jsxs("div",{className:"min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("h4",{className:"truncate text-sm font-medium text-foreground",children:d.incoming.name}),n.jsx("span",{className:`inline-flex rounded-full px-2 py-0.5 text-[11px] font-medium ${m.className}`,children:i(m.label)})]}),n.jsxs("div",{className:"mt-1 flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[n.jsx(fe,{agentType:d.incoming.agentType,className:"size-3.5"}),n.jsx("span",{className:"min-w-0 truncate",children:pe(d.incoming.agentType,d.incoming.runtimeType)})," · ",n.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:d.incoming.id})]})]})}),d.action==="OVERWRITE"&&d.existing&&n.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:i("将覆盖当前已有的 Provider:{name}",{name:d.existing.name})}),d.action==="SKIP"&&n.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:i("当前同 ID Provider 配置一致,本次不会重复写入。")}),d.action==="CREATE"&&n.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:i("当前不存在同 ID Provider,将直接新增。")})]},d.incoming.id)})})]})})}function si({item:e,onEdit:t,onDelete:r}){const{t:s}=H(),a=e.provider,o=e.availability,i=dt(a.agentType,a.config),c=ye[a.agentType],l=Object.entries(i).filter(([m])=>m!=="cmd"&&m!==c.executionPermission.path),d=Object.keys(a.redactedEnv||{});return n.jsxs("div",{className:"min-w-0 space-y-6",children:[n.jsxs("div",{className:"flex min-w-0 flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[n.jsx("h3",{className:"min-w-0 truncate text-base font-semibold text-foreground",children:a.name}),n.jsx(ei,{type:o.type})]}),n.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[n.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1.5",children:[n.jsx(fe,{agentType:a.agentType,className:"size-3.5"}),n.jsx("span",{className:"truncate",children:pe(a.agentType,a.runtimeType)})]}),a.isDefault&&n.jsx("span",{className:"rounded-full bg-primary/[0.06] px-2 py-0.5 text-[11px] font-medium text-primary",children:s("默认")}),a.builtIn&&n.jsx("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:s("内置")})]})]}),n.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 sm:shrink-0",children:[n.jsxs(_,{size:"sm",variant:"outline",onClick:t,children:[n.jsx(Zt,{size:13}),s("编辑")]}),n.jsxs(_,{size:"sm",variant:a.builtIn?"outline":"destructive",onClick:r,disabled:a.deletable===!1,children:[a.builtIn?n.jsx(Dt,{size:13}):n.jsx(st,{size:13}),a.builtIn?s("恢复默认"):s("删除")]})]})]}),l.length>0&&n.jsxs("div",{children:[n.jsx(ke,{className:"mb-3",children:s("运行配置")}),n.jsx("div",{className:"grid gap-px overflow-hidden rounded-lg border border-border bg-border/60",children:l.map(([m,f])=>n.jsxs("div",{className:"flex min-w-0 flex-col items-start gap-1 bg-background px-4 py-2.5 sm:flex-row sm:items-center sm:gap-4",children:[n.jsx("span",{className:"min-w-0 break-words text-[13px] text-muted-foreground sm:w-32 sm:shrink-0",children:s(ut[m]??m)}),n.jsx("span",{className:"min-w-0 max-w-full break-all font-mono text-[13px] text-foreground",children:Vn(m,f)})]},m))})]}),d.length>0&&n.jsxs("div",{children:[n.jsx(ke,{className:"mb-3",children:s("环境变量")}),n.jsx("div",{className:"grid gap-px overflow-hidden rounded-lg border border-border bg-border/60",children:d.map(m=>n.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 bg-background px-4 py-2.5 sm:gap-4",children:[n.jsx("span",{className:"min-w-0 max-w-full break-all font-mono text-[13px] text-foreground",children:m}),n.jsx("span",{className:"text-[13px] text-muted-foreground","aria-label":"hidden",children:"•••••"})]},m))})]}),a.settings?.trim()&&n.jsxs("div",{children:[n.jsx(ke,{className:"mb-3",children:s("Agent 原生配置")}),n.jsx("div",{className:"rounded-lg border border-border bg-muted/40 p-4",children:n.jsx("pre",{className:"max-h-[200px] overflow-y-auto whitespace-pre-wrap break-all font-mono text-xs text-muted-foreground",children:a.settings})})]}),l.length===0&&d.length===0&&!a.settings?.trim()&&n.jsx("div",{className:"py-8 text-center text-sm text-muted-foreground",children:s('该 Provider 未配置额外参数。点击"编辑"添加运行配置、环境变量或 Agent 原生配置。')})]})}function wi(){const{t:e}=H(),{data:t,isLoading:r}=Lt(),s=Mt(),a=Bt(),o=zt(),i=Ft(),c=$t(),l=Jt(),d=S.useRef(null),[m,f]=S.useState(null),[v,w]=S.useState(null),[E,I]=S.useState(null),[O,D]=S.useState(!1),[V,M]=S.useState(!1),[B,L]=S.useState(null),[Q,R]=S.useState(!1),K=t??[],b=m??K[0]?.provider.id??null,k=h=>{s.mutate(h,{onSuccess:()=>w(null),onError:y=>z.error(ne(y,e("创建 Provider 失败")))})},X=(h,y)=>{a.mutate({id:h,data:y},{onSuccess:()=>w(null),onError:T=>z.error(ne(T,e("更新 Provider 失败")))})},re=h=>{if(!(h.deletable??!h.builtIn)){z.error(e("系统内置 Provider 不可删除"));return}I({id:h.id,name:h.name,builtIn:h.builtIn})},Ne=()=>{E&&o.mutate(E.id,{onSuccess:()=>{z.success(E.builtIn?e("已恢复默认 Provider 配置"):e("Provider 已删除")),b===E.id&&f(null),I(null),R(!1)},onError:h=>z.error(ne(h,e("删除 Provider 失败")))})},C=()=>{D(!1),M(!1)},J=()=>L(null),Y=()=>{i.mutate(void 0,{onSuccess:h=>{Zn(Yn(h.exportedAt),h),z.success(e("Provider 备份已导出")),C()},onError:h=>z.error(ne(h,e("导出 Provider 备份失败")))})},G=()=>{d.current&&(d.current.value="",d.current.click())},xe=async h=>{const y=h.target.files?.[0];if(h.target.value="",!y)return;let T;try{T=JSON.parse(await y.text())}catch{z.error(e("备份文件不是有效的 JSON"));return}c.mutate(T,{onSuccess:Z=>L({backup:T,preview:Z}),onError:Z=>z.error(ne(Z,e("导入预览失败")))})},ee=()=>{B&&l.mutate(B.backup,{onSuccess:h=>{const y=h.summary.create+h.summary.overwrite;z.success(y===0?e("导入完成,当前配置无需变更"):e("导入完成:新增 {create},覆盖 {overwrite},跳过 {skip}",{create:h.summary.create,overwrite:h.summary.overwrite,skip:h.summary.skip})),J()},onError:h=>z.error(ne(h,e("导入 Provider 备份失败")))})},te=h=>{const y=h.provider,T=ye[y.agentType],Z=In(y,T);w({id:y.id,data:{name:y.name,agentType:y.agentType,runtimeType:y.runtimeType===F.ACP?F.ACP:F.CLI,config:dt(y.agentType,y.config),settings:y.settings??"",env:Z,simplified:y.simplified??{},diagnostics:y.diagnostics,isDefault:y.isDefault}})};return r?n.jsx(We,{className:"max-w-5xl",children:n.jsx(At,{})}):n.jsxs(We,{className:"max-w-5xl",children:[n.jsx("input",{ref:d,type:"file",accept:".json,application/json",className:"hidden",onChange:xe}),n.jsx(Tt,{title:e("Agent 配置"),actions:n.jsxs(n.Fragment,{children:[n.jsxs(_,{variant:"outline",size:"sm",onClick:G,disabled:c.isPending||l.isPending,children:[n.jsx(Yt,{size:13}),e("导入")]}),n.jsxs(_,{variant:"outline",size:"sm",onClick:()=>D(!0),disabled:i.isPending,children:[n.jsx(_t,{size:13}),e("导出")]}),n.jsxs(_,{size:"sm",onClick:()=>w({}),children:[n.jsx(_e,{size:13,className:"mr-1"}),e("新建")]})]})}),K.length===0?n.jsx(It,{icon:Ot,message:e("暂无 Agent 配置"),action:n.jsxs(_,{size:"sm",onClick:()=>w({}),children:[n.jsx(_e,{size:13,className:"mr-1"}),e("新建配置")]})}):n.jsx(Xt,{items:K,selectedId:b,onSelectItem:h=>{f(h),R(!0)},getItemId:h=>h.provider.id,mobileShowDetail:Q,onMobileBack:()=>R(!1),renderListItem:(h,y)=>{const T=h.provider;return n.jsxs(n.Fragment,{children:[n.jsx(Qn,{type:h.availability.type}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsx("div",{className:"truncate text-[13px] font-medium",children:T.name}),n.jsxs("div",{className:$("flex min-w-0 items-center gap-1.5 text-[11px]",y?"text-primary-foreground/60":"text-muted-foreground"),children:[n.jsx(fe,{agentType:T.agentType,className:"size-3.5",fallbackClassName:y?"text-primary-foreground/70":"text-muted-foreground"}),n.jsx("span",{className:"min-w-0 truncate",children:pe(T.agentType,T.runtimeType)})]})]}),T.isDefault&&n.jsx("span",{className:$("shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium",y?"bg-white/20 text-primary-foreground":"bg-primary/[0.06] text-primary"),children:e("默认")})]})},renderDetail:h=>h?n.jsx("div",{className:"min-w-0 p-5",children:n.jsx(si,{item:h,onEdit:()=>te(h),onDelete:()=>re(h.provider)})}):n.jsx("div",{className:"py-16 text-center text-sm text-muted-foreground",children:e("选择一个 Provider 查看详情")})}),v&&n.jsx(ni,{isOpen:!0,onClose:()=>w(null),providerId:v.id,initialData:v.data,onSave:h=>{v.id?X(v.id,h):k(h)}}),n.jsx(Wt,{isOpen:E!==null,onClose:()=>{o.isPending||I(null)},onConfirm:Ne,title:E?.builtIn?e("恢复默认 Provider"):e("删除 Provider"),description:E?.builtIn?e('确定删除 "{name}" 的自定义覆盖,并恢复系统默认配置?',{name:E?.name}):e('确定删除 "{name}"?此操作不可撤销。',{name:E?.name}),confirmText:E?.builtIn?e("恢复默认"):e("删除"),cancelText:e("取消"),variant:"danger",isLoading:o.isPending}),n.jsx(ii,{isOpen:O,onClose:C,onConfirm:Y,acknowledged:V,onAcknowledgedChange:M,isLoading:i.isPending}),n.jsx(ri,{isOpen:!!B,onClose:J,preview:B?.preview??null,backup:B?.backup??null,onConfirm:ee,isLoading:l.isPending})]})}export{ni as ProviderFormModal,wi as ProviderSettingsPage};
@@ -1 +0,0 @@
1
- import{U as a,V as n}from"./index-DaRxJqVy.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{k as c}from"./index-oC5eh7mZ.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-CAiaySk6.js";import{_ as i}from"./index-DaRxJqVy.js";import"./chunk-FMBD7UC4-Kz0Cc0mv.js";import"./chunk-ND2GUHAM-BttoT7UR.js";import"./chunk-55IACEB6-Bb-pPIxs.js";import"./chunk-2J33WTMH-DQCbv8W_.js";import"./index-oC5eh7mZ.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-CAiaySk6.js";import{_ as i}from"./index-DaRxJqVy.js";import"./chunk-FMBD7UC4-Kz0Cc0mv.js";import"./chunk-ND2GUHAM-BttoT7UR.js";import"./chunk-55IACEB6-Bb-pPIxs.js";import"./chunk-2J33WTMH-DQCbv8W_.js";import"./index-oC5eh7mZ.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{c as g,l as o}from"./monaco-B25-2nEB.js";import{C as l,H as h,D as c,a as u,R as f,b as _,c as w,d as k,F as v,e as D,S as P,f as R,g as I}from"./lspLanguageFeatures-CUyibjAN.js";import{h as oe,i as se,j as ne,t as ae,k as pe}from"./lspLanguageFeatures-CUyibjAN.js";import"./ProjectKanbanPage-D7RJm4yg.js";import"./index-oC5eh7mZ.js";import"./mermaid-NOHMQCX5-CGCWmHha.js";import"./chevron-right-D52zUyOF.js";import"./chevron-down-BZfpVhYr.js";import"./confirm-dialog-BWvZEHpu.js";import"./modal-D87uszzb.js";import"./Icons-KJJd6C8K.js";import"./CreateTaskInput-8bLhHYOc.js";import"./AgentLogo-Ntqe3_Mx.js";import"./check-C1zWgxFO.js";import"./use-projects-B4w00h5I.js";import"./MemberAvatar-kbJEoyh0.js";import"./use-providers-B70-BYNu.js";import"./trash-2-C0P8jNpJ.js";import"./useNormalizedLogs-MsDkcnRQ.js";import"./folder-picker-CaM_drIJ.js";import"./circle-alert-D67xfWMs.js";import"./message-square-B-uYQiTq.js";import"./layers-hQUUT3Gb.js";import"./chevron-up-CFOy5dmW.js";import"./select-D7WkUiad.js";import"./textarea-D9oaz-Ba.js";import"./server-qlZupTvg.js";import"./upload-BYgsDplu.js";import"./pencil-CY2RnQrx.js";const C=120*1e3;class A{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>C&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=g({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL("/assets/css.worker-DBVD8oXr.js",import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(a=>{e=a}).then(a=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(a=>e)}}function te(s){const n=[],e=[],a=new A(s);n.push(a);const r=(...t)=>a.getLanguageServiceWorker(...t);function m(){const{languageId:t,modeConfiguration:i}=s;d(e),i.completionItems&&e.push(o.registerCompletionItemProvider(t,new l(r,["/","-",":"]))),i.hovers&&e.push(o.registerHoverProvider(t,new h(r))),i.documentHighlights&&e.push(o.registerDocumentHighlightProvider(t,new c(r))),i.definitions&&e.push(o.registerDefinitionProvider(t,new u(r))),i.references&&e.push(o.registerReferenceProvider(t,new f(r))),i.documentSymbols&&e.push(o.registerDocumentSymbolProvider(t,new _(r))),i.rename&&e.push(o.registerRenameProvider(t,new w(r))),i.colors&&e.push(o.registerColorProvider(t,new k(r))),i.foldingRanges&&e.push(o.registerFoldingRangeProvider(t,new v(r))),i.diagnostics&&e.push(new D(t,r,s.onDidChange)),i.selectionRanges&&e.push(o.registerSelectionRangeProvider(t,new P(r))),i.documentFormattingEdits&&e.push(o.registerDocumentFormattingEditProvider(t,new R(r))),i.documentRangeFormattingEdits&&e.push(o.registerDocumentRangeFormattingEditProvider(t,new I(r)))}return m(),n.push(p(e)),p(n)}function p(s){return{dispose:()=>d(s)}}function d(s){for(;s.length;)s.pop().dispose()}export{l as CompletionAdapter,u as DefinitionAdapter,D as DiagnosticsAdapter,k as DocumentColorAdapter,R as DocumentFormattingEditProvider,c as DocumentHighlightAdapter,oe as DocumentLinkAdapter,I as DocumentRangeFormattingEditProvider,_ as DocumentSymbolAdapter,v as FoldingRangeAdapter,h as HoverAdapter,f as ReferenceAdapter,w as RenameAdapter,P as SelectionRangeAdapter,A as WorkerManager,se as fromPosition,ne as fromRange,te as setupMode,ae as toRange,pe as toTextEdit};
@@ -1 +0,0 @@
1
- import{l as t}from"./monaco-B25-2nEB.js";import"./ProjectKanbanPage-D7RJm4yg.js";import"./index-oC5eh7mZ.js";import"./mermaid-NOHMQCX5-CGCWmHha.js";import"./chevron-right-D52zUyOF.js";import"./chevron-down-BZfpVhYr.js";import"./confirm-dialog-BWvZEHpu.js";import"./modal-D87uszzb.js";import"./Icons-KJJd6C8K.js";import"./CreateTaskInput-8bLhHYOc.js";import"./AgentLogo-Ntqe3_Mx.js";import"./check-C1zWgxFO.js";import"./use-projects-B4w00h5I.js";import"./MemberAvatar-kbJEoyh0.js";import"./use-providers-B70-BYNu.js";import"./trash-2-C0P8jNpJ.js";import"./useNormalizedLogs-MsDkcnRQ.js";import"./folder-picker-CaM_drIJ.js";import"./circle-alert-D67xfWMs.js";import"./message-square-B-uYQiTq.js";import"./layers-hQUUT3Gb.js";import"./chevron-up-CFOy5dmW.js";import"./select-D7WkUiad.js";import"./textarea-D9oaz-Ba.js";import"./server-qlZupTvg.js";import"./upload-BYgsDplu.js";import"./pencil-CY2RnQrx.js";const e=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],C={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["<!--","-->"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:t.IndentAction.Indent}}]},j={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@commentHtml"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/\{/,"delimiter.html"],[/[^<{]+/]],doctype:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{C as conf,j as language};
@@ -1 +0,0 @@
1
- import{l as t}from"./monaco-B25-2nEB.js";import"./ProjectKanbanPage-D7RJm4yg.js";import"./index-oC5eh7mZ.js";import"./mermaid-NOHMQCX5-CGCWmHha.js";import"./chevron-right-D52zUyOF.js";import"./chevron-down-BZfpVhYr.js";import"./confirm-dialog-BWvZEHpu.js";import"./modal-D87uszzb.js";import"./Icons-KJJd6C8K.js";import"./CreateTaskInput-8bLhHYOc.js";import"./AgentLogo-Ntqe3_Mx.js";import"./check-C1zWgxFO.js";import"./use-projects-B4w00h5I.js";import"./MemberAvatar-kbJEoyh0.js";import"./use-providers-B70-BYNu.js";import"./trash-2-C0P8jNpJ.js";import"./useNormalizedLogs-MsDkcnRQ.js";import"./folder-picker-CaM_drIJ.js";import"./circle-alert-D67xfWMs.js";import"./message-square-B-uYQiTq.js";import"./layers-hQUUT3Gb.js";import"./chevron-up-CFOy5dmW.js";import"./select-D7WkUiad.js";import"./textarea-D9oaz-Ba.js";import"./server-qlZupTvg.js";import"./upload-BYgsDplu.js";import"./pencil-CY2RnQrx.js";const e=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],j={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["<!--","-->"]},brackets:[["<!--","-->"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${e.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:t.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*<!--\\s*#region\\b.*-->"),end:new RegExp("^\\s*<!--\\s*#endregion\\b.*-->")}}},P={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,"metatag","@doctype"],[/<!--/,"comment","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/</,"delimiter"],[/[^<]+/]],doctype:[[/[^>]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};export{j as conf,P as language};
@@ -1 +0,0 @@
1
- import{c as D,l as t}from"./monaco-B25-2nEB.js";import{H as d,D as m,h as l,F as p,b as c,S as u,c as h,f as w,g as _,C as R}from"./lspLanguageFeatures-CUyibjAN.js";import{a as ie,e as oe,d as ne,R as se,i as ae,j as ge,t as de,k as me}from"./lspLanguageFeatures-CUyibjAN.js";import"./ProjectKanbanPage-D7RJm4yg.js";import"./index-oC5eh7mZ.js";import"./mermaid-NOHMQCX5-CGCWmHha.js";import"./chevron-right-D52zUyOF.js";import"./chevron-down-BZfpVhYr.js";import"./confirm-dialog-BWvZEHpu.js";import"./modal-D87uszzb.js";import"./Icons-KJJd6C8K.js";import"./CreateTaskInput-8bLhHYOc.js";import"./AgentLogo-Ntqe3_Mx.js";import"./check-C1zWgxFO.js";import"./use-projects-B4w00h5I.js";import"./MemberAvatar-kbJEoyh0.js";import"./use-providers-B70-BYNu.js";import"./trash-2-C0P8jNpJ.js";import"./useNormalizedLogs-MsDkcnRQ.js";import"./folder-picker-CaM_drIJ.js";import"./circle-alert-D67xfWMs.js";import"./message-square-B-uYQiTq.js";import"./layers-hQUUT3Gb.js";import"./chevron-up-CFOy5dmW.js";import"./select-D7WkUiad.js";import"./textarea-D9oaz-Ba.js";import"./server-qlZupTvg.js";import"./upload-BYgsDplu.js";import"./pencil-CY2RnQrx.js";const I=120*1e3;class f{constructor(o){this._defaults=o,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>I&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=D({moduleId:"vs/language/html/htmlWorker",createWorker:()=>new Worker(new URL("/assets/html.worker-CwpTb9lJ.js",import.meta.url),{type:"module"}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...o){let e;return this._getClient().then(r=>{e=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(o)}).then(r=>e)}}class v extends R{constructor(o){super(o,[".",":","<",'"',"=","/"])}}function $(i){const o=new f(i),e=(...n)=>o.getLanguageServiceWorker(...n);let r=i.languageId;t.registerCompletionItemProvider(r,new v(e)),t.registerHoverProvider(r,new d(e)),t.registerDocumentHighlightProvider(r,new m(e)),t.registerLinkProvider(r,new l(e)),t.registerFoldingRangeProvider(r,new p(e)),t.registerDocumentSymbolProvider(r,new c(e)),t.registerSelectionRangeProvider(r,new u(e)),t.registerRenameProvider(r,new h(e)),r==="html"&&(t.registerDocumentFormattingEditProvider(r,new w(e)),t.registerDocumentRangeFormattingEditProvider(r,new _(e)))}function ee(i){const o=[],e=[],r=new f(i);o.push(r);const n=(...s)=>r.getLanguageServiceWorker(...s);function P(){const{languageId:s,modeConfiguration:a}=i;k(e),a.completionItems&&e.push(t.registerCompletionItemProvider(s,new v(n))),a.hovers&&e.push(t.registerHoverProvider(s,new d(n))),a.documentHighlights&&e.push(t.registerDocumentHighlightProvider(s,new m(n))),a.links&&e.push(t.registerLinkProvider(s,new l(n))),a.documentSymbols&&e.push(t.registerDocumentSymbolProvider(s,new c(n))),a.rename&&e.push(t.registerRenameProvider(s,new h(n))),a.foldingRanges&&e.push(t.registerFoldingRangeProvider(s,new p(n))),a.selectionRanges&&e.push(t.registerSelectionRangeProvider(s,new u(n))),a.documentFormattingEdits&&e.push(t.registerDocumentFormattingEditProvider(s,new w(n))),a.documentRangeFormattingEdits&&e.push(t.registerDocumentRangeFormattingEditProvider(s,new _(n)))}return P(),o.push(g(e)),g(o)}function g(i){return{dispose:()=>k(i)}}function k(i){for(;i.length;)i.pop().dispose()}export{R as CompletionAdapter,ie as DefinitionAdapter,oe as DiagnosticsAdapter,ne as DocumentColorAdapter,w as DocumentFormattingEditProvider,m as DocumentHighlightAdapter,l as DocumentLinkAdapter,_ as DocumentRangeFormattingEditProvider,c as DocumentSymbolAdapter,p as FoldingRangeAdapter,d as HoverAdapter,se as ReferenceAdapter,h as RenameAdapter,u as SelectionRangeAdapter,f as WorkerManager,ae as fromPosition,ge as fromRange,ee as setupMode,$ as setupMode1,de as toRange,me as toTextEdit};