forgebadger 0.1.2 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/README.md +11 -5
  2. package/dist/gateway/src/cli/init.js +9 -4
  3. package/dist/gateway/src/cli/init.js.map +1 -1
  4. package/dist/gateway/src/config/env.d.ts +0 -7
  5. package/dist/gateway/src/config/env.js +1 -9
  6. package/dist/gateway/src/config/env.js.map +1 -1
  7. package/dist/gateway/src/db/migrations/0129_session_notification_type.sql +4 -0
  8. package/dist/gateway/src/db/migrations/0130_template_adapter_backfill.sql +4 -0
  9. package/dist/gateway/src/db/migrations/0131_single_project_autonomy.sql +7 -0
  10. package/dist/gateway/src/db/migrations/0132_api_format_protocol_values.sql +29 -0
  11. package/dist/gateway/src/db/migrations/0133_copilot_run_trace.sql +16 -0
  12. package/dist/gateway/src/db/migrations/0134_drop_copilot_project_autonomy.sql +5 -0
  13. package/dist/gateway/src/db/migrations/meta/_journal.json +42 -0
  14. package/dist/gateway/src/db/migrations/meta/migration-checksums.json +7 -1
  15. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.d.ts +18 -0
  16. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js +40 -0
  17. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js.map +1 -0
  18. package/dist/gateway/src/db/repositories/mcp-token-repository.d.ts +2 -1
  19. package/dist/gateway/src/db/repositories/mcp-token-repository.js +7 -1
  20. package/dist/gateway/src/db/repositories/mcp-token-repository.js.map +1 -1
  21. package/dist/gateway/src/db/repositories/model-provider-repository.d.ts +7 -1
  22. package/dist/gateway/src/db/repositories/model-provider-repository.js.map +1 -1
  23. package/dist/gateway/src/db/repositories/notification-repository.js +1 -1
  24. package/dist/gateway/src/db/repositories/notification-repository.js.map +1 -1
  25. package/dist/gateway/src/db/repositories/project-management-repository.d.ts +1 -2
  26. package/dist/gateway/src/db/repositories/project-management-repository.js +6 -6
  27. package/dist/gateway/src/db/repositories/project-management-repository.js.map +1 -1
  28. package/dist/gateway/src/db/repositories/project-manager-repository.d.ts +3 -0
  29. package/dist/gateway/src/db/repositories/project-manager-repository.js +16 -0
  30. package/dist/gateway/src/db/repositories/project-manager-repository.js.map +1 -1
  31. package/dist/gateway/src/db/repositories/project-repository.d.ts +0 -3
  32. package/dist/gateway/src/db/repositories/project-repository.js +0 -16
  33. package/dist/gateway/src/db/repositories/project-repository.js.map +1 -1
  34. package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js +2 -2
  35. package/dist/gateway/src/db/schema.d.ts +160 -34
  36. package/dist/gateway/src/db/schema.js +9 -4
  37. package/dist/gateway/src/db/schema.js.map +1 -1
  38. package/dist/gateway/src/lib/terminal-wheel-input.d.ts +2 -0
  39. package/dist/gateway/src/lib/terminal-wheel-input.js +5 -0
  40. package/dist/gateway/src/lib/terminal-wheel-input.js.map +1 -0
  41. package/dist/gateway/src/mvp0/api.d.ts +1 -1
  42. package/dist/gateway/src/mvp0/api.js +1 -1
  43. package/dist/gateway/src/mvp0/api.js.map +1 -1
  44. package/dist/gateway/src/routes/copilot.js +9 -0
  45. package/dist/gateway/src/routes/copilot.js.map +1 -1
  46. package/dist/gateway/src/routes/mcp-tokens.js +44 -3
  47. package/dist/gateway/src/routes/mcp-tokens.js.map +1 -1
  48. package/dist/gateway/src/routes/model-providers.js +58 -1
  49. package/dist/gateway/src/routes/model-providers.js.map +1 -1
  50. package/dist/gateway/src/routes/project-management.js +0 -21
  51. package/dist/gateway/src/routes/project-management.js.map +1 -1
  52. package/dist/gateway/src/routes/session-hooks.d.ts +2 -2
  53. package/dist/gateway/src/routes/session-hooks.js +50 -53
  54. package/dist/gateway/src/routes/session-hooks.js.map +1 -1
  55. package/dist/gateway/src/routes/sessions.js +1 -3
  56. package/dist/gateway/src/routes/sessions.js.map +1 -1
  57. package/dist/gateway/src/routes/templates.js +3 -3
  58. package/dist/gateway/src/routes/templates.js.map +1 -1
  59. package/dist/gateway/src/runtime/start-gateway.js +1 -3
  60. package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
  61. package/dist/gateway/src/server.d.ts +2 -2
  62. package/dist/gateway/src/server.js +14 -14
  63. package/dist/gateway/src/server.js.map +1 -1
  64. package/dist/gateway/src/services/agent/context-recovery.js +5 -4
  65. package/dist/gateway/src/services/agent/context-recovery.js.map +1 -1
  66. package/dist/gateway/src/services/agent/context.d.ts +9 -8
  67. package/dist/gateway/src/services/agent/context.js +16 -19
  68. package/dist/gateway/src/services/agent/context.js.map +1 -1
  69. package/dist/gateway/src/services/agent/dispatch-supervisor.js +1 -1
  70. package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -1
  71. package/dist/gateway/src/services/agent/followups.js +2 -0
  72. package/dist/gateway/src/services/agent/followups.js.map +1 -1
  73. package/dist/gateway/src/services/agent/llm-client.d.ts +0 -2
  74. package/dist/gateway/src/services/agent/llm-client.js +12 -12
  75. package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
  76. package/dist/gateway/src/services/agent/orchestrator-types.d.ts +1 -0
  77. package/dist/gateway/src/services/agent/orchestrator.js +59 -27
  78. package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
  79. package/dist/gateway/src/services/agent/redaction.js +1 -1
  80. package/dist/gateway/src/services/agent/redaction.js.map +1 -1
  81. package/dist/gateway/src/services/agent/restricted-runs.d.ts +1 -0
  82. package/dist/gateway/src/services/agent/restricted-runs.js +2 -3
  83. package/dist/gateway/src/services/agent/restricted-runs.js.map +1 -1
  84. package/dist/gateway/src/services/agent/run-authorization.d.ts +38 -0
  85. package/dist/gateway/src/services/agent/run-authorization.js +65 -0
  86. package/dist/gateway/src/services/agent/run-authorization.js.map +1 -0
  87. package/dist/gateway/src/services/agent/run-governance.js +7 -2
  88. package/dist/gateway/src/services/agent/run-governance.js.map +1 -1
  89. package/dist/gateway/src/services/agent/run-ledger.d.ts +2 -0
  90. package/dist/gateway/src/services/agent/run-ledger.js +48 -13
  91. package/dist/gateway/src/services/agent/run-ledger.js.map +1 -1
  92. package/dist/gateway/src/services/agent/run-trace.d.ts +25 -0
  93. package/dist/gateway/src/services/agent/run-trace.js +42 -0
  94. package/dist/gateway/src/services/agent/run-trace.js.map +1 -0
  95. package/dist/gateway/src/services/agent/security-policy.js +7 -2
  96. package/dist/gateway/src/services/agent/security-policy.js.map +1 -1
  97. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +17 -0
  98. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js.map +1 -1
  99. package/dist/gateway/src/services/agent/skills/copilot-skills.js +9 -11
  100. package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
  101. package/dist/gateway/src/services/agent/task-review.js +2 -1
  102. package/dist/gateway/src/services/agent/task-review.js.map +1 -1
  103. package/dist/gateway/src/services/agent/token-estimate.d.ts +36 -0
  104. package/dist/gateway/src/services/agent/token-estimate.js +79 -0
  105. package/dist/gateway/src/services/agent/token-estimate.js.map +1 -0
  106. package/dist/gateway/src/services/agent/tool-availability.d.ts +2 -5
  107. package/dist/gateway/src/services/agent/tool-availability.js +7 -14
  108. package/dist/gateway/src/services/agent/tool-availability.js.map +1 -1
  109. package/dist/gateway/src/services/agent/tool-surface.d.ts +50 -0
  110. package/dist/gateway/src/services/agent/tool-surface.js +78 -0
  111. package/dist/gateway/src/services/agent/tool-surface.js.map +1 -0
  112. package/dist/gateway/src/services/agent/tools/platform-coverage.js +3 -6
  113. package/dist/gateway/src/services/agent/tools/platform-coverage.js.map +1 -1
  114. package/dist/gateway/src/services/agent/tools/platform-management.js +3 -3
  115. package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
  116. package/dist/gateway/src/services/agent/tools/project-manager.js +1 -1
  117. package/dist/gateway/src/services/agent/tools/project-manager.js.map +1 -1
  118. package/dist/gateway/src/services/agent/tools/sessions.js +5 -1
  119. package/dist/gateway/src/services/agent/tools/sessions.js.map +1 -1
  120. package/dist/gateway/src/services/agent/tools/terminal.js +3 -4
  121. package/dist/gateway/src/services/agent/tools/terminal.js.map +1 -1
  122. package/dist/gateway/src/services/channels/channel-diagnostics.js +5 -13
  123. package/dist/gateway/src/services/channels/channel-diagnostics.js.map +1 -1
  124. package/dist/gateway/src/services/channels/channel-identity-service.js +1 -1
  125. package/dist/gateway/src/services/channels/channel-identity-service.js.map +1 -1
  126. package/dist/gateway/src/services/channels/channel-run-scope.d.ts +2 -4
  127. package/dist/gateway/src/services/channels/channel-run-scope.js +33 -20
  128. package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -1
  129. package/dist/gateway/src/services/claude-notification-settings.js +15 -7
  130. package/dist/gateway/src/services/claude-notification-settings.js.map +1 -1
  131. package/dist/gateway/src/services/claude-route/gateway-url.js +1 -1
  132. package/dist/gateway/src/services/claude-route/gateway-url.js.map +1 -1
  133. package/dist/gateway/src/services/cli-config-apply.d.ts +7 -7
  134. package/dist/gateway/src/services/cli-config-apply.js +49 -34
  135. package/dist/gateway/src/services/cli-config-apply.js.map +1 -1
  136. package/dist/gateway/src/services/cli-config.js +3 -2
  137. package/dist/gateway/src/services/cli-config.js.map +1 -1
  138. package/dist/gateway/src/services/cli-notification-settings.js +2 -2
  139. package/dist/gateway/src/services/development/authority.js +2 -5
  140. package/dist/gateway/src/services/development/authority.js.map +1 -1
  141. package/dist/gateway/src/services/development/repair-scope.js +2 -9
  142. package/dist/gateway/src/services/development/repair-scope.js.map +1 -1
  143. package/dist/gateway/src/services/event-bus.d.ts +3 -3
  144. package/dist/gateway/src/services/event-bus.js +1 -1
  145. package/dist/gateway/src/services/event-bus.js.map +1 -1
  146. package/dist/gateway/src/services/mcp/lifecycle-tools.d.ts +3 -0
  147. package/dist/gateway/src/services/mcp/lifecycle-tools.js +29 -0
  148. package/dist/gateway/src/services/mcp/lifecycle-tools.js.map +1 -0
  149. package/dist/gateway/src/services/mcp/lifecycle.d.ts +480 -0
  150. package/dist/gateway/src/services/mcp/lifecycle.js +216 -0
  151. package/dist/gateway/src/services/mcp/lifecycle.js.map +1 -0
  152. package/dist/gateway/src/services/mcp/mcp-server.js +45 -13
  153. package/dist/gateway/src/services/mcp/mcp-server.js.map +1 -1
  154. package/dist/gateway/src/services/native-directory-picker.js +42 -12
  155. package/dist/gateway/src/services/native-directory-picker.js.map +1 -1
  156. package/dist/gateway/src/services/notification-dedupe.d.ts +1 -1
  157. package/dist/gateway/src/services/notification-dedupe.js +1 -1
  158. package/dist/gateway/src/services/notification-events.js +10 -12
  159. package/dist/gateway/src/services/notification-events.js.map +1 -1
  160. package/dist/gateway/src/services/notifications/feishu-notification-card.js +2 -2
  161. package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -1
  162. package/dist/gateway/src/services/notifications/feishu-notifications.js +1 -1
  163. package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -1
  164. package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
  165. package/dist/gateway/src/services/opencode-notification-settings.js +1 -1
  166. package/dist/gateway/src/services/platform-commands/actions.js +2 -10
  167. package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
  168. package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
  169. package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
  170. package/dist/gateway/src/services/platform-commands/catalog.js +2 -5
  171. package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
  172. package/dist/gateway/src/services/platform-commands/tool-commands.js +4 -0
  173. package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
  174. package/dist/gateway/src/services/platform-commands/types.d.ts +2 -0
  175. package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +1 -1
  176. package/dist/gateway/src/services/programmatic-terminal-submit.js +75 -28
  177. package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
  178. package/dist/gateway/src/services/project-config-files.d.ts +1 -1
  179. package/dist/gateway/src/services/project-config-files.js +11 -2
  180. package/dist/gateway/src/services/project-config-files.js.map +1 -1
  181. package/dist/gateway/src/services/project-config-render.js +10 -3
  182. package/dist/gateway/src/services/project-config-render.js.map +1 -1
  183. package/dist/gateway/src/services/project-manager/access.js +1 -1
  184. package/dist/gateway/src/services/project-manager/access.js.map +1 -1
  185. package/dist/gateway/src/services/project-manager/management.d.ts +1 -6
  186. package/dist/gateway/src/services/project-manager/management.js +2 -6
  187. package/dist/gateway/src/services/project-manager/management.js.map +1 -1
  188. package/dist/gateway/src/services/project-manager/task-execution.js +0 -3
  189. package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -1
  190. package/dist/gateway/src/services/provider-capabilities.js +7 -7
  191. package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
  192. package/dist/gateway/src/services/runtime-settings.d.ts +2 -3
  193. package/dist/gateway/src/services/runtime-settings.js +1 -17
  194. package/dist/gateway/src/services/runtime-settings.js.map +1 -1
  195. package/dist/gateway/src/services/session-launch-plan.js +1 -1
  196. package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
  197. package/dist/gateway/src/services/session-manager.d.ts +9 -0
  198. package/dist/gateway/src/services/session-manager.js +51 -7
  199. package/dist/gateway/src/services/session-manager.js.map +1 -1
  200. package/dist/gateway/src/services/session-stop-target.js +10 -2
  201. package/dist/gateway/src/services/session-stop-target.js.map +1 -1
  202. package/dist/gateway/src/services/template-git-import.d.ts +1 -1
  203. package/dist/gateway/src/services/template-git-import.js +3 -2
  204. package/dist/gateway/src/services/template-git-import.js.map +1 -1
  205. package/dist/gateway/src/services/terminal-notification-ingestion.js +2 -2
  206. package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -1
  207. package/dist/gateway/src/websocket/events.js +2 -2
  208. package/dist/gateway/src/websocket/events.js.map +1 -1
  209. package/dist/gateway/src/websocket/terminal.d.ts +1 -1
  210. package/dist/gateway/src/websocket/terminal.js +3 -6
  211. package/dist/gateway/src/websocket/terminal.js.map +1 -1
  212. package/dist/runtime/backup.js +1 -1
  213. package/dist/runtime/config.js +2 -2
  214. package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
  215. package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
  216. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +4 -4
  217. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
  218. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
  219. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +4 -4
  220. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
  221. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
  222. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +4 -4
  223. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
  224. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
  225. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +4 -4
  226. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
  227. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
  228. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +4 -4
  229. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
  230. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
  231. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +4 -4
  232. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
  233. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
  234. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +4 -4
  235. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
  236. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
  237. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +4 -4
  238. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
  239. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
  240. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +4 -4
  241. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
  242. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
  243. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +4 -4
  244. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
  245. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
  246. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +4 -4
  247. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
  248. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
  249. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +4 -4
  250. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  251. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  252. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +4 -4
  253. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
  254. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
  255. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +4 -4
  256. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
  257. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
  258. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +4 -4
  259. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
  260. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
  261. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +4 -4
  262. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  263. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  264. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +4 -4
  265. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
  266. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
  267. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +4 -4
  268. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
  269. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  270. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +4 -4
  271. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  272. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  273. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +4 -4
  274. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -1
  275. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +1 -1
  276. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +4 -4
  277. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
  278. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
  279. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +4 -4
  280. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  281. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  282. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +4 -4
  283. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -1
  284. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +1 -1
  285. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +4 -4
  286. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
  287. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
  288. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +4 -4
  289. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
  290. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
  291. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +4 -4
  292. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
  293. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
  294. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +4 -4
  295. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
  296. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
  297. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +4 -4
  298. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
  299. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
  300. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +4 -4
  301. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
  302. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
  303. package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  304. package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  305. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  306. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  307. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  308. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  309. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  310. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  311. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  312. package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  313. package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
  314. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  315. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  316. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  317. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  318. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  319. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  320. package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
  321. package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +14 -14
  322. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
  323. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
  324. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  325. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +14 -14
  326. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
  327. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
  328. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
  329. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
  330. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +16 -16
  331. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
  332. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
  333. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  334. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  335. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +16 -16
  336. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
  337. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
  338. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
  339. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
  340. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +16 -16
  341. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
  342. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
  343. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  344. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  345. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +16 -16
  346. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
  347. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
  348. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
  349. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
  350. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +16 -16
  351. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
  352. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
  353. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  354. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  355. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +16 -16
  356. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
  357. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
  358. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
  359. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
  360. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +16 -16
  361. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
  362. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
  363. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  364. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  365. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +16 -16
  366. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
  367. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
  368. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
  369. package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
  370. package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +17 -17
  371. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
  372. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  373. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  374. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +17 -17
  375. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
  376. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
  377. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
  378. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
  379. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  380. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
  381. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
  382. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
  383. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
  384. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
  385. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  386. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
  387. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
  388. package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
  389. package/dist/web/standalone/packages/web/.next/server/app/history.rsc +17 -17
  390. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
  391. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
  392. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  393. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +17 -17
  394. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
  395. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
  396. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
  397. package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
  398. package/dist/web/standalone/packages/web/.next/server/app/index.rsc +17 -17
  399. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
  400. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  401. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
  402. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  403. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
  404. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  405. package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
  406. package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
  407. package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
  408. package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
  409. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
  410. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
  411. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
  412. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
  413. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
  414. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
  415. package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
  416. package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  417. package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
  418. package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
  419. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
  420. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
  421. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
  422. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  423. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  424. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
  425. package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
  426. package/dist/web/standalone/packages/web/.next/server/app/members.rsc +17 -17
  427. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
  428. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
  429. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  430. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +17 -17
  431. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
  432. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
  433. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
  434. package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
  435. package/dist/web/standalone/packages/web/.next/server/app/models.rsc +17 -17
  436. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
  437. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
  438. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  439. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +17 -17
  440. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
  441. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
  442. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
  443. package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
  444. package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +17 -17
  445. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
  446. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
  447. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  448. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +17 -17
  449. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
  450. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
  451. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
  452. package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
  453. package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +17 -17
  454. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
  455. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
  456. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  457. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  458. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +17 -17
  459. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
  460. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
  461. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
  462. package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
  463. package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +17 -17
  464. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
  465. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
  466. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  467. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  468. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +17 -17
  469. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
  470. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
  471. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
  472. package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
  473. package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +16 -16
  474. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
  475. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  476. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  477. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +16 -16
  478. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  479. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
  480. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  481. package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
  482. package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
  483. package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
  484. package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
  485. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
  486. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
  487. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
  488. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
  489. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
  490. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
  491. package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
  492. package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +17 -17
  493. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
  494. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
  495. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  496. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +17 -17
  497. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
  498. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
  499. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  500. package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
  501. package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +17 -17
  502. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
  503. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
  504. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  505. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  506. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  507. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  508. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  509. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -1
  510. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +16 -16
  511. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +4 -4
  512. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +3 -3
  513. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  514. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  515. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +16 -16
  516. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_head.segment.rsc +4 -4
  517. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +6 -6
  518. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +2 -2
  519. package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
  520. package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +16 -16
  521. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
  522. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
  523. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  524. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  525. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +16 -16
  526. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
  527. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
  528. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
  529. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -1
  530. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +16 -16
  531. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +4 -4
  532. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +3 -3
  533. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  534. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  535. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +16 -16
  536. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +4 -4
  537. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +6 -6
  538. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +2 -2
  539. package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
  540. package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +17 -17
  541. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
  542. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  543. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  544. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +17 -17
  545. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
  546. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
  547. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  548. package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
  549. package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +14 -14
  550. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
  551. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
  552. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  553. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +14 -14
  554. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
  555. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
  556. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
  557. package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
  558. package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +17 -17
  559. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
  560. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
  561. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  562. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +17 -17
  563. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
  564. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
  565. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
  566. package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
  567. package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +16 -16
  568. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
  569. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
  570. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  571. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +16 -16
  572. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
  573. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
  574. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
  575. package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
  576. package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +14 -14
  577. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
  578. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
  579. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  580. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +14 -14
  581. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
  582. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
  583. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  584. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03inbb0._.js +3 -0
  585. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
  586. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0mvyp71._.js +3 -0
  587. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~hqizj._.js +3 -0
  588. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13w0f1~._.js +3 -0
  589. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-8y7~8._.js +3 -0
  590. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-gw886._.js +3 -0
  591. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_038nxrj._.js +3 -0
  592. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03n-g57._.js +3 -0
  593. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04xf5q9._.js +3 -0
  594. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055d-ao._.js +3 -0
  595. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05zx7t7._.js +3 -0
  596. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_12w9fro._.js → _06.zuca._.js} +2 -2
  597. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07xrtbe._.js +3 -0
  598. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09qlnot._.js +3 -0
  599. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +1 -1
  600. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_6knqk._.js +3 -0
  601. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_7nkt6._.js +3 -0
  602. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0aj4ajk._.js +3 -0
  603. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0awj3ix._.js +3 -0
  604. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +3 -0
  605. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eyvq.q._.js +3 -0
  606. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l.3_po._.js +3 -0
  607. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p-i6oy._.js +3 -0
  608. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgkuef._.js +3 -0
  609. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qlo6ux._.js +3 -0
  610. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +1 -1
  611. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +1 -1
  612. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xjjrmf._.js +3 -0
  613. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xxhxhp._.js +3 -0
  614. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~6bpee._.js +3 -0
  615. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12h5j52._.js +3 -0
  616. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
  617. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
  618. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +1 -1
  619. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
  620. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
  621. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +1 -1
  622. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
  623. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
  624. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +1 -1
  625. package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
  626. package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
  627. package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
  628. package/dist/web/standalone/packages/web/.next/static/chunks/{0txrk44pdmdsw.js → 01-hqvam3w0~~.js} +1 -1
  629. package/dist/web/standalone/packages/web/.next/static/chunks/02net~gj5seu8.js +1 -0
  630. package/dist/web/standalone/packages/web/.next/static/chunks/{0g.jepdilt76o.js → 034bfwrk4dtch.js} +1 -1
  631. package/dist/web/standalone/packages/web/.next/static/chunks/042m5fzwa.5rb.js +1 -0
  632. package/dist/web/standalone/packages/web/.next/static/chunks/04t8.94ylt2j6.js +1 -0
  633. package/dist/web/standalone/packages/web/.next/static/chunks/079pi3esz7ztj.js +1 -0
  634. package/dist/web/standalone/packages/web/.next/static/chunks/07dsa~2xhj7fp.js +1 -0
  635. package/dist/web/standalone/packages/web/.next/static/chunks/084df1q.t96px.js +1 -0
  636. package/dist/web/standalone/packages/web/.next/static/chunks/09-77kwttecp8.js +1 -0
  637. package/dist/web/standalone/packages/web/.next/static/chunks/0ahamdhz5rqd0.js +1 -0
  638. package/dist/web/standalone/packages/web/.next/static/chunks/0aymq5zo45jwo.css +1 -0
  639. package/dist/web/standalone/packages/web/.next/static/chunks/0a~p89jkiv-xy.js +1 -0
  640. package/dist/web/standalone/packages/web/.next/static/chunks/0blz40tkx36ya.js +1 -0
  641. package/dist/web/standalone/packages/web/.next/static/chunks/0bo35rh3et6nh.js +1 -0
  642. package/dist/web/standalone/packages/web/.next/static/chunks/0c3i0-wz63ys6.js +1 -0
  643. package/dist/web/standalone/packages/web/.next/static/chunks/0c3qwax9lt4tx.js +1 -0
  644. package/dist/web/standalone/packages/web/.next/static/chunks/0crxf3wawwn83.js +2 -0
  645. package/dist/web/standalone/packages/web/.next/static/chunks/0gz0he~jrjk8a.js +3 -0
  646. package/dist/web/standalone/packages/web/.next/static/chunks/0j3ve5insz6.3.js +1 -0
  647. package/dist/web/standalone/packages/web/.next/static/chunks/0l-uwd_dr1mbk.js +1 -0
  648. package/dist/web/standalone/packages/web/.next/static/chunks/{0.1mxnjmxr~su.js → 0nxwqjcq79-4u.js} +2 -2
  649. package/dist/web/standalone/packages/web/.next/static/chunks/{0rvmfvjpdwe.w.js → 0p3t7a~kdodga.js} +1 -1
  650. package/dist/web/standalone/packages/web/.next/static/chunks/0rs04qz9_.2h5.js +1 -0
  651. package/dist/web/standalone/packages/web/.next/static/chunks/0sv0hnum1q_mj.js +1 -0
  652. package/dist/web/standalone/packages/web/.next/static/chunks/0tf8lwgh~fndc.js +1 -0
  653. package/dist/web/standalone/packages/web/.next/static/chunks/0wnkj_m4ke__p.js +1 -0
  654. package/dist/web/standalone/packages/web/.next/static/chunks/0xszl0jyt02ly.js +1 -0
  655. package/dist/web/standalone/packages/web/.next/static/chunks/0y8o9-d.39uek.js +1 -0
  656. package/dist/web/standalone/packages/web/.next/static/chunks/0~.y-iqdl1g2v.js +1 -0
  657. package/dist/web/standalone/packages/web/.next/static/chunks/{0b5zptp8.z.nn.js → 0~0f5pw_ezzrh.js} +1 -1
  658. package/dist/web/standalone/packages/web/.next/static/chunks/112uoiiyc.o-i.js +1 -0
  659. package/dist/web/standalone/packages/web/.next/static/chunks/117spe00n0ln_.js +1 -0
  660. package/dist/web/standalone/packages/web/.next/static/chunks/129g7a~bc67a8.js +1 -0
  661. package/dist/web/standalone/packages/web/.next/static/chunks/13qimumcmf67m.js +1 -0
  662. package/dist/web/standalone/packages/web/.next/static/chunks/15y1w~u~sxuqn.js +1 -0
  663. package/dist/web/standalone/packages/web/.next/static/chunks/16evga~sgvskl.js +1 -0
  664. package/dist/web/standalone/packages/web/.next/static/chunks/1708mw9d18sq2.js +1 -0
  665. package/dist/web/standalone/packages/web/public/forgebadger-runtime.js +1 -1
  666. package/docs/PERSONAL-TEAM-WORKFLOWS.md +6 -6
  667. package/docs/README.zh-CN.md +5 -5
  668. package/docs/README.zh-TW.md +5 -5
  669. package/package.json +1 -1
  670. package/dist/gateway/src/services/adapter-autonomy.d.ts +0 -10
  671. package/dist/gateway/src/services/adapter-autonomy.js +0 -25
  672. package/dist/gateway/src/services/adapter-autonomy.js.map +0 -1
  673. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +0 -3
  674. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +0 -3
  675. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +0 -3
  676. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +0 -3
  677. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +0 -3
  678. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +0 -3
  679. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +0 -3
  680. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +0 -3
  681. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +0 -3
  682. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +0 -3
  683. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +0 -3
  684. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +0 -3
  685. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +0 -3
  686. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +0 -3
  687. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +0 -3
  688. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +0 -3
  689. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +0 -3
  690. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +0 -3
  691. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +0 -3
  692. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +0 -3
  693. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +0 -3
  694. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +0 -3
  695. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +0 -3
  696. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +0 -3
  697. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +0 -3
  698. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +0 -3
  699. package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +0 -3
  700. package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +0 -1
  701. package/dist/web/standalone/packages/web/.next/static/chunks/00gq~jtzei49d.js +0 -1
  702. package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +0 -1
  703. package/dist/web/standalone/packages/web/.next/static/chunks/04iwl3440l6ci.js +0 -1
  704. package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +0 -1
  705. package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +0 -2
  706. package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +0 -1
  707. package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +0 -1
  708. package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +0 -1
  709. package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +0 -1
  710. package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +0 -1
  711. package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +0 -1
  712. package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +0 -1
  713. package/dist/web/standalone/packages/web/.next/static/chunks/0qz-8gatr0e58.js +0 -1
  714. package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +0 -1
  715. package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +0 -1
  716. package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +0 -1
  717. package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +0 -1
  718. package/dist/web/standalone/packages/web/.next/static/chunks/0uqsh8sbcz046.js +0 -1
  719. package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +0 -1
  720. package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +0 -1
  721. package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +0 -1
  722. package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +0 -1
  723. package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +0 -1
  724. package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +0 -1
  725. package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +0 -1
  726. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_buildManifest.js +0 -0
  727. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_clientMiddlewareManifest.js +0 -0
  728. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35267,e=>{"use strict";var a=e.i(66499),t=e.i(79923),i=e.i(86059),s=e.i(85426),n=e.i(78717),r=e.i(6270),l=e.i(65174);let o=(0,l.default)("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);var d=e.i(7329),c=e.i(60218),m=e.i(17114),p=e.i(80078),u=e.i(35808),x=e.i(44269),h=e.i(87307),g=e.i(9988),f=e.i(81622),v=e.i(17854),b=e.i(47721);function j(e){return{productType:"payg_api",apiFormat:"openai-compatible",authType:"api_key",supportedAdapters:["claude","opencode","kimi","pi"],...e}}let y=[j({id:"openai",name:"OpenAI",description:"Official OpenAI API endpoint.",apiFormat:"openai",openaiBaseUrl:"https://api.openai.com/v1",supportedAdapters:["opencode","codex","kimi","pi"]}),j({id:"anthropic-api",name:"Anthropic API",description:"Official Anthropic API for Claude models.",apiFormat:"anthropic",anthropicBaseUrl:"https://api.anthropic.com"}),j({id:"deepseek-api",name:"DeepSeek API",description:"DeepSeek API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.deepseek.com/anthropic",openaiBaseUrl:"https://api.deepseek.com"}),j({id:"qwen-payg-cn",name:"Qwen API 中国大陆",description:"Alibaba Cloud Model Studio pay-as-you-go endpoint for mainland China accounts.",anthropicBaseUrl:"https://dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1"}),j({id:"qwen-payg-intl-sg",name:"Qwen API 国际版",description:"Alibaba Cloud Model Studio international endpoint.",anthropicBaseUrl:"https://dashscope-intl.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1"}),j({id:"qwen-coding-plan-cn",name:"Qwen Coding Plan 中国大陆",description:"Alibaba Cloud Model Studio Coding Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://coding.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding.dashscope.aliyuncs.com/v1"}),j({id:"qwen-coding-plan-intl",name:"Qwen Coding Plan 国际版",description:"Alibaba Cloud Model Studio Coding Plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1"}),j({id:"qwen-token-plan-cn",name:"Qwen Token Plan 中国大陆",description:"Alibaba Cloud Model Studio Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",openaiBaseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"}),j({id:"kimi-code",name:"Kimi For Coding",description:"Kimi coding subscription endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.kimi.com/coding/",openaiBaseUrl:"https://api.kimi.com/coding/v1"}),j({id:"kimi-api",name:"Kimi API",description:"Moonshot AI Kimi pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.moonshot.cn/anthropic",openaiBaseUrl:"https://api.moonshot.cn/v1"}),j({id:"minimax-global",name:"MiniMax 国际版",description:"MiniMax international API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimax.io/anthropic",openaiBaseUrl:"https://api.minimax.io/v1"}),j({id:"minimax-cn",name:"MiniMax 中国大陆",description:"MiniMax mainland China API endpoint for coding tools.",anthropicBaseUrl:"https://api.minimaxi.com/anthropic",openaiBaseUrl:"https://api.minimaxi.com/v1"}),j({id:"zai-coding-plan",name:"Z.AI GLM Coding Plan",description:"Z.AI coding plan endpoints for GLM coding models.",productType:"coding_plan",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/coding/paas/v4"}),j({id:"zai-glm-api",name:"Z.AI GLM API",description:"Z.AI GLM pay-as-you-go endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api.z.ai/api/anthropic",openaiBaseUrl:"https://api.z.ai/api/paas/v4"}),j({id:"xiaomi-mimo-api",name:"Xiaomi MiMo API",description:"Xiaomi MiMo pay-as-you-go API with OpenAI and Anthropic-compatible endpoints.",anthropicBaseUrl:"https://api.xiaomimimo.com/anthropic",openaiBaseUrl:"https://api.xiaomimimo.com/v1"}),j({id:"xiaomi-mimo-token-plan-cn",name:"Xiaomi MiMo Token Plan 中国大陆",description:"Xiaomi MiMo Token Plan endpoint for mainland China.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-cn.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-cn.xiaomimimo.com/v1"}),j({id:"xiaomi-mimo-token-plan-sgp",name:"Xiaomi MiMo Token Plan Singapore",description:"Xiaomi MiMo Token Plan endpoint for Singapore.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-sgp.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"}),j({id:"xiaomi-mimo-token-plan-ams",name:"Xiaomi MiMo Token Plan Europe",description:"Xiaomi MiMo Token Plan endpoint for Amsterdam/Europe.",productType:"token_plan",anthropicBaseUrl:"https://token-plan-ams.xiaomimimo.com/anthropic",openaiBaseUrl:"https://token-plan-ams.xiaomimimo.com/v1"}),j({id:"baidu-qianfan-coding-plan",name:"Baidu Qianfan Coding Plan",description:"Baidu Qianfan Coding Plan endpoint for AI coding tools.",productType:"coding_plan",anthropicBaseUrl:"https://qianfan.baidubce.com/anthropic/coding",openaiBaseUrl:"https://qianfan.baidubce.com/v2"}),j({id:"stepfun-coding-plan-cn",name:"StepFun Coding Plan 中国大陆",description:"StepFun coding plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.com/step_plan",openaiBaseUrl:"https://api.stepfun.com/v1"}),j({id:"stepfun-coding-plan-intl",name:"StepFun Coding Plan 国际版",description:"StepFun coding plan international endpoint.",productType:"coding_plan",anthropicBaseUrl:"https://api.stepfun.ai/step_plan",openaiBaseUrl:"https://api.stepfun.ai/v1"}),j({id:"modelscope-api",name:"ModelScope API",description:"ModelScope inference endpoint with Anthropic and OpenAI-compatible APIs.",anthropicBaseUrl:"https://api-inference.modelscope.cn",openaiBaseUrl:"https://api-inference.modelscope.cn/v1"}),j({id:"siliconflow-api",name:"SiliconFlow 硅基流动",description:"SiliconFlow model API platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.siliconflow.cn",openaiBaseUrl:"https://api.siliconflow.cn/v1"}),j({id:"siliconflow-intl",name:"SiliconFlow 国际版",description:"SiliconFlow international endpoint.",anthropicBaseUrl:"https://api.siliconflow.com",openaiBaseUrl:"https://api.siliconflow.com/v1"}),j({id:"volcengine-agent-plan-cn",name:"火山引擎 Agent Plan 中国大陆",description:"Volcengine Ark Agent Plan endpoint for mainland China.",productType:"coding_plan",anthropicBaseUrl:"https://ark.cn-beijing.volces.com/api/coding",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/coding/v1"}),j({id:"volcengine-agent-plan-intl",name:"火山引擎 Agent Plan 国际版",description:"Volcengine BytePlus Agent Plan endpoint for international users.",productType:"coding_plan",anthropicBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding",openaiBaseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v1"}),j({id:"volcengine-ark-api-cn",name:"火山方舟豆包 API 中国大陆",description:"Volcengine Ark Doubao Seed pay-as-you-go endpoint for mainland China.",openaiBaseUrl:"https://ark.cn-beijing.volces.com/api/v3"}),j({id:"openrouter-api",name:"OpenRouter",description:"OpenRouter model routing platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://openrouter.ai/api",openaiBaseUrl:"https://openrouter.ai/api/v1"}),j({id:"novita-api",name:"Novita AI",description:"Novita AI model platform with Anthropic and OpenAI-compatible endpoints.",anthropicBaseUrl:"https://api.novita.ai/anthropic",openaiBaseUrl:"https://api.novita.ai/v1"})],N={name:"",providerKey:"",apiFormat:"anthropic",authType:"api_key",baseUrl:"",anthropicBaseUrl:"",openaiBaseUrl:"",supportedAdapters:["claude"],allowPlaintextHttp:!1,allowPrivateNetworks:!1};function C(e){return e.anthropicBaseUrl.trim()||e.openaiBaseUrl.trim()||e.baseUrl.trim()}let w={label:"",plaintextSecret:""},k={name:"",modelId:"",capabilities:["chat","code"],customCapabilities:"",contextWindow:"",supportEfforts:[],defaultEffort:""};function P(e,a){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(a)}function S(e){return Math.min(100,Math.max(0,e))}function A(e,a){switch(e){case"anthropic":return a("models.apiFormatAnthropic");case"openai":return a("models.apiFormatOpenai");case"openai-compatible":return a("models.apiFormatOpenaiCompatible");case"google":return a("models.apiFormatGoogle");case"bedrock":return a("models.apiFormatBedrock");case"local":return a("models.apiFormatLocal");default:return e}}function B(e,a){switch(e){case"api_key":return a("models.authTypeApiKey");case"bearer_token":return a("models.authTypeBearerToken");case"oauth":return a("models.authTypeOauth");case"none":return a("models.authTypeNone");default:return e}}let T=["chat","code","vision","video","tools","reasoning","embedding"],F=["low","medium","high","xhigh","max"];function M({text:e}){return(0,a.jsx)("div",{className:"flex items-center justify-center rounded-md border border-dashed border-border/70 px-4 py-6 text-center text-sm text-muted-foreground",children:e})}let U=["anthropic","openai","openai-compatible","google","bedrock","local"],E=["api_key","bearer_token","oauth","none"],z=[...b.runtimeAdapterIds];function I({open:e,customProvider:i,setupCredential:s,isCreating:n,existing:r,onOpenChange:l,onCustomProviderChange:o,onSetupCredentialChange:m,onSubmit:b,t:j}){let N,w=null!=r,k=(0,t.useRef)(!1),[P,S]=(0,t.useState)("");(0,t.useEffect)(()=>{e||(k.current=!1,S(""))},[e]);let T=(N=P.trim().toLowerCase())?y.filter(e=>[e.id,e.name,e.description,e.anthropicBaseUrl??"",e.openaiBaseUrl??""].join("\n").toLowerCase().includes(N)):y,F="none"!==i.authType,M=!!C(i),D=M&&[i.baseUrl,i.anthropicBaseUrl,i.openaiBaseUrl].map(e=>e.trim()).filter(Boolean).some(e=>e.toLowerCase().startsWith("http://")),L=M&&[i.baseUrl,i.anthropicBaseUrl,i.openaiBaseUrl].map(e=>e.trim()).filter(Boolean).some(e=>{let a;try{a=new URL(e).hostname.toLowerCase()}catch{return!1}if(a.startsWith("[")&&a.endsWith("]")&&(a=a.slice(1,-1)),"localhost"===a||"::1"===a||a.startsWith("fd")||a.startsWith("fc")||a.endsWith(".local")||!a.includes("."))return!0;if(/^\d{1,3}(\.\d{1,3}){3}$/.test(a)){let e=a.split(".").map(e=>Number.parseInt(e,10)),t=e[0]??0,i=e[1]??0;if(127===t||10===t||0===t||192===t&&168===i||172===t&&i>=16&&i<=31||169===t&&254===i||100===t&&i>=64&&i<=127)return!0}return!1}),_=[];0===i.name.trim().length&&_.push(j("models.providerFormMissingName")),0===i.providerKey.trim().length&&_.push(j("models.providerFormMissingKey")),M||_.push(j("models.providerFormMissingEndpoint")),0===i.supportedAdapters.length&&_.push(j("models.supportedAdapters"));let q=_.join("、"),K=!n&&0===_.length;return(0,a.jsx)(g.Dialog,{open:e,onOpenChange:l,children:(0,a.jsx)(g.DialogContent,{className:w?"max-h-[90vh] overflow-y-auto sm:max-w-2xl":"max-h-[90vh] overflow-hidden sm:max-w-4xl",children:(0,a.jsxs)("form",{className:w?"space-y-4":"grid max-h-[80vh] gap-5 md:grid-cols-[240px_minmax(0,1fr)]",onSubmit:b,children:[!w&&(0,a.jsxs)("div",{className:"flex min-h-0 flex-col gap-2",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:j("models.presets")}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:j("models.presetsDescription")})]}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(x.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(f.Input,{value:P,onChange:e=>S(e.target.value),placeholder:j("models.searchProviderPlaceholder"),"aria-label":j("models.searchProviderPlaceholder"),className:"h-9 pl-9"})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 space-y-1 overflow-y-auto rounded-md border border-border/70 p-1",children:0===T.length?(0,a.jsx)("p",{className:"px-3 py-4 text-center text-xs text-muted-foreground",children:j("models.noPresetMatches")}):T.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>{k.current=!0,o({name:e.name,providerKey:e.id,apiFormat:e.apiFormat,authType:e.authType,baseUrl:"",anthropicBaseUrl:e.anthropicBaseUrl??"",openaiBaseUrl:e.openaiBaseUrl??"",supportedAdapters:[...e.supportedAdapters],allowPlaintextHttp:!1,allowPrivateNetworks:!1})},className:`w-full rounded px-3 py-2 text-left hover:bg-muted/50 ${i.providerKey===e.id?"bg-muted/40":""}`,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:e.name}),(0,a.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",children:A(e.apiFormat,j)})]}),(0,a.jsx)("div",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:e.openaiBaseUrl??e.anthropicBaseUrl})]},e.id))})]}),(0,a.jsxs)("div",{className:w?"contents":"min-h-0 space-y-4 overflow-y-auto pr-1",children:[!w&&(0,a.jsxs)(g.DialogHeader,{children:[(0,a.jsx)(g.DialogTitle,{children:j("models.addProvider")}),(0,a.jsx)(g.DialogDescription,{children:j("models.addProviderDescription")})]}),w&&(0,a.jsxs)(g.DialogHeader,{children:[(0,a.jsx)(g.DialogTitle,{children:j("models.editProvider")}),(0,a.jsx)(g.DialogDescription,{children:j("models.editProviderDescription")})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-name",children:j("common.name")}),(0,a.jsx)(f.Input,{id:"provider-name",value:i.name,onChange:e=>{var a;return a=e.target.value,void o({...i,name:a,providerKey:k.current?i.providerKey:a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")})},required:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-key",children:j("models.providerKey")}),(0,a.jsx)(f.Input,{id:"provider-key",value:i.providerKey,onChange:e=>{k.current=!0,o({...i,providerKey:e.target.value})},disabled:w,required:!0}),w&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:j("models.providerKeyLocked")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-api-format",children:j("models.apiFormat")}),(0,a.jsx)("select",{id:"provider-api-format",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:i.apiFormat,onChange:e=>o({...i,apiFormat:e.target.value}),children:U.map(e=>(0,a.jsx)("option",{value:e,children:A(e,j)},e))}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:function(e,a){switch(e){case"anthropic":return a("models.apiFormatHintAnthropic");case"openai":return a("models.apiFormatHintOpenai");case"openai-compatible":return a("models.apiFormatHintOpenaiCompatible");case"google":return a("models.apiFormatHintGoogle");case"bedrock":return a("models.apiFormatHintBedrock");case"local":return a("models.apiFormatHintLocal");default:return""}}(i.apiFormat,j)})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-auth-type",children:j("models.authType")}),(0,a.jsx)("select",{id:"provider-auth-type",className:"h-10 w-full rounded-md border bg-background px-3 text-sm text-foreground",value:i.authType,onChange:e=>o({...i,authType:e.target.value}),children:E.map(e=>(0,a.jsx)("option",{value:e,children:B(e,j)},e))}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:function(e,a){switch(e){case"api_key":return a("models.authTypeHintApiKey");case"bearer_token":return a("models.authTypeHintBearerToken");case"oauth":return a("models.authTypeHintOauth");case"none":return a("models.authTypeHintNone");default:return""}}(i.authType,j)})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-openai-base-url",children:j("models.openaiBaseUrl")}),(0,a.jsx)(f.Input,{id:"provider-openai-base-url",value:i.openaiBaseUrl,onChange:e=>o({...i,openaiBaseUrl:e.target.value}),placeholder:"https://example.com/v1"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"provider-anthropic-base-url",children:j("models.anthropicBaseUrl")}),(0,a.jsx)(f.Input,{id:"provider-anthropic-base-url",value:i.anthropicBaseUrl,onChange:e=>o({...i,anthropicBaseUrl:e.target.value}),placeholder:"https://example.com/anthropic"})]})]}),_.length>0?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:j("models.providerFormCannotSave").replace("{reasons}",q)}):null,D&&(0,a.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:i.allowPlaintextHttp,onChange:e=>o({...i,allowPlaintextHttp:e.target.checked})}),(0,a.jsx)("span",{children:j("models.allowPlaintextHttp")})]}),(0,a.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:j("models.allowPlaintextHttpHint")})]}),L&&(0,a.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",className:"mt-0.5 size-4 accent-brand",checked:i.allowPrivateNetworks,onChange:e=>o({...i,allowPrivateNetworks:e.target.checked})}),(0,a.jsx)("span",{children:j("models.allowPrivateNetworks")})]}),(0,a.jsx)("p",{className:"pl-6 text-xs text-muted-foreground",children:j("models.allowPrivateNetworksHint")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:j("models.supportedAdapters")}),(0,a.jsx)("div",{className:"flex flex-wrap gap-3",children:z.map(e=>(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:i.supportedAdapters.includes(e),onChange:()=>{let a;return a=i.supportedAdapters.includes(e)?i.supportedAdapters.filter(a=>a!==e):[...i.supportedAdapters,e],void o({...i,supportedAdapters:a})}}),(0,a.jsx)(h.CliBrandIcon,{aiTool:e,className:"size-4"}),"claude"===e?"Claude Code":"opencode"===e?"OpenCode":"codex"===e?"Codex":"kimi"===e?"Kimi Code":e]},e))})]}),!w&&(F?(0,a.jsxs)("div",{className:"grid gap-3 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"setup-credential-label",children:j("models.credentialLabel")}),(0,a.jsx)(f.Input,{id:"setup-credential-label",value:s.label,onChange:e=>m({...s,label:e.target.value}),placeholder:j("models.defaultCredentialLabel")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"setup-api-key",children:j("models.apiKey")}),(0,a.jsx)(f.Input,{id:"setup-api-key",type:"password",value:s.plaintextSecret,onChange:e=>m({...s,plaintextSecret:e.target.value}),placeholder:j("models.apiKeyPlaceholder")}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:j("models.setupCredentialOptionalHint")})]})]}):(0,a.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-sm text-muted-foreground",children:j("models.noCredentialRequired")})),(0,a.jsx)(g.DialogFooter,{children:(0,a.jsxs)(c.Button,{type:"submit",disabled:!K,title:_.length>0?j("models.providerFormCannotSave").replace("{reasons}",q):void 0,children:[n?(0,a.jsx)(p.RefreshCw,{className:"size-4 animate-spin"}):w?(0,a.jsx)(u.Save,{className:"size-4"}):(0,a.jsx)(d.Plus,{className:"size-4"}),w?j("common.save"):j("models.saveAndSyncModels")]})})]})]})})})}var D=e.i(31483),L=e.i(71326),_=e.i(25284),q=e.i(63641),K=e.i(62918),R=e.i(35887),O=e.i(65458);let $=[{slot:"opus",label:"Opus"},{slot:"sonnet",label:"Sonnet"},{slot:"haiku",label:"Haiku"}],H=[{slot:"fable",label:"Fable"},{slot:"subagent",label:"Subagent"}],Q=["minimal","low","medium","high"],W=[];function Z({provider:e,models:i,credentials:l,open:o,initialAdapter:d,onOpenChange:m}){let{t:p}=(0,R.useLanguage)(),u=(0,r.useQueryClient)(),x=(0,t.useMemo)(()=>[...e.supportedAdapters],[e.supportedAdapters]),h=(0,t.useMemo)(()=>i.filter(e=>"active"===e.status),[i]),f=(0,t.useMemo)(()=>l.filter(e=>"active"===e.status),[l]),j=h.find(e=>e.isDefault)??h[0],[y,N]=(0,t.useState)(x[0]??"claude"),C="claude"===y&&!e.anthropicBaseUrl&&"anthropic"!==e.apiFormat,w=C&&("openai"===e.apiFormat||"openai-compatible"===e.apiFormat),k=C&&!w,P=(0,n.useQuery)({queryKey:["claude-route"],queryFn:b.getClaudeRoute,enabled:o&&C,retry:!1,staleTime:3e4}),S=P.data?.enabled===!0,[A,B]=(0,t.useState)(""),[T,F]=(0,t.useState)(""),[M,U]=(0,t.useState)({}),[E,z]=(0,t.useState)(""),I=(0,n.useQuery)({queryKey:q.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:b.discoverAdapters,enabled:o,staleTime:3e4}),G=(0,t.useMemo)(()=>I.data?.adapters??W,[I.data]),[X,Y]=(0,t.useState)(!1),J=(0,t.useRef)(C);J.current=C,(0,t.useEffect)(()=>{if(!o)return;let e=d&&x.includes(d)?d:void 0,a=e??(0,q.chooseDefaultAdapter)(G,x)??x[0]??"claude",t=new Map(G.map(e=>[e.id,e]));N(i=>!e&&x.includes(i)&&(!t.get(i)||(0,q.isAdapterSelectable)(t.get(i),x))?i:a),B(j?.id??""),F(f[0]?.id??""),U({}),z(""),Y(J.current),et(!1)},[o,x,j?.id,f,G,d]);let ee=(0,t.useMemo)(()=>{let a=Object.fromEntries(Object.entries(M).filter(([,e])=>!!e));return{providerProfileId:e.id,..."opencode"!==y&&A?{modelProfileId:A}:{},...T?{credentialId:T}:{},..."claude"===y&&Object.keys(a).length>0?{modelMapping:a}:{},..."codex"===y&&E?{reasoningEffort:E}:{},...C?{routeThroughGateway:!0}:{}}},[y,T,M,A,C,e.id,E]),[ea,et]=(0,t.useState)(!1),[ei,es]=(0,t.useState)(ee);(0,t.useEffect)(()=>{if(!ea)return;let e=setTimeout(()=>es(ee),400);return()=>clearTimeout(e)},[ee,ea]);let en=(0,n.useQuery)({queryKey:["cli-config-apply-preview",y,ei],queryFn:()=>(0,b.previewCliConfigApply)(y,ei),enabled:o&&ea&&x.length>0&&ei===ee,retry:!1,staleTime:0}),er=(0,s.useMutation)({mutationFn:async()=>(C&&!S&&await (0,b.setClaudeRoute)(!0),(0,b.applyCliConfigToAdapter)(y,{...ee,...C?{routeThroughGateway:!0}:{}})),onSuccess:async e=>{let a=e.files?.[0]?.targetPath??"—";_.toast.success(p("models.applyToCliSuccess").replace("{targetPath}",a)),e.backupId&&_.toast.info(p("models.applyToCliRollbackHint")),m(!1),await u.invalidateQueries({queryKey:["cli-config"]}),await u.invalidateQueries({queryKey:["applied-providers"]}),await u.invalidateQueries({queryKey:["applied-provider"]}),"claude"===y&&await u.invalidateQueries({queryKey:["claude-route"]})},onError:e=>{_.toast.error(e instanceof Error?e.message:p("models.applyToCliFailed"))}}),el=en.data,eo=el?.files??[],ed=el?.warnings??[],ec=ed.includes("CODEX_WIRE_API_UNSUPPORTED"),em=ed.filter(e=>"OPENAI_PROTOCOL_REQUIRES_ROUTE"!==e&&"CODEX_WIRE_API_UNSUPPORTED"!==e),ep="pi"===y?p("models.applyToCliDefaultModel"):p("projects.model");return(0,a.jsx)(g.Dialog,{open:o,onOpenChange:e=>{er.isPending||m(e)},children:(0,a.jsxs)(g.DialogContent,{className:"sm:max-w-xl",children:[(0,a.jsxs)(g.DialogHeader,{children:[(0,a.jsx)(g.DialogTitle,{children:p("models.applyToCli")}),(0,a.jsx)(g.DialogDescription,{children:p("models.applyToCliDescription")})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"apply-cli-adapter",children:p("common.aiTool")}),(0,a.jsx)(q.AdapterSelect,{id:"apply-cli-adapter",ariaLabel:p("common.aiTool"),className:"h-9 w-full",value:y,onValueChange:N,supported:x,placeholder:p("common.loading")})]}),"opencode"!==y&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"apply-cli-model",children:ep}),(0,a.jsxs)("select",{id:"apply-cli-model","aria-label":ep,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:A,onChange:e=>B(e.target.value),children:[0===h.length?(0,a.jsx)("option",{value:"",children:p("models.noModelsAvailable")}):null,h.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]}),"pi"===y&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:p("models.applyToCliPiHint")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"apply-cli-credential",children:p("models.credentials")}),(0,a.jsxs)("select",{id:"apply-cli-credential","aria-label":p("models.credentials"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:T,onChange:e=>F(e.target.value),children:[(0,a.jsx)("option",{value:"",children:p("models.applyToCliNoCredential")}),f.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label??p("models.unnamedCredential")},e.id))]})]})]}),"opencode"===y&&(0,a.jsx)("p",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground",children:p("models.opencodeApplyHint")}),("claude"===y||"codex"===y||C)&&(0,a.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,a.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":X,onClick:()=>Y(e=>!e),children:[p("models.applyAdvancedOptions"),(0,a.jsx)(D.ChevronDown,{className:(0,O.cn)("size-4 text-muted-foreground transition-transform duration-200",X&&"rotate-180")})]}),X&&(0,a.jsxs)("div",{className:"space-y-3 border-t border-border/70 px-3 py-3",children:["claude"===y&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"space-y-0.5",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:p("models.roleMapping")}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:p("models.roleMappingDescription")})]}),(0,a.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:[...$,...H].map(({slot:e,label:t})=>(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(v.Label,{htmlFor:`apply-cli-slot-${e}`,className:"text-xs",children:t}),(0,a.jsxs)("select",{id:`apply-cli-slot-${e}`,"aria-label":t,className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:M[e]??"",onChange:a=>U(t=>({...t,[e]:a.target.value})),children:[(0,a.jsx)("option",{value:"",children:p("models.followPrimaryModel")}),h.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]},e))})]}),"codex"===y&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"apply-cli-effort",children:p("models.reasoningEffort")}),(0,a.jsxs)("select",{id:"apply-cli-effort","aria-label":p("models.reasoningEffort"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm md:max-w-xs",value:E,onChange:e=>z(e.target.value),children:[(0,a.jsx)("option",{value:"",children:p("models.reasoningEffortDefault")}),Q.map(e=>(0,a.jsx)("option",{value:e,children:e},e))]})]}),k&&(0,a.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:p("models.claudeRouteUnsupported")}),w&&(0,a.jsxs)("div",{className:S?"space-y-1 rounded-md border border-emerald-500/40 bg-emerald-500/10 px-3 py-2 text-xs":"space-y-1 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs",children:[(0,a.jsx)("p",{className:S?"font-medium text-emerald-700 dark:text-emerald-300":"font-medium text-amber-700 dark:text-amber-300",children:S?p("models.claudeRouteEnabledHint").replace("{gatewayUrl}",P.data?.gatewayUrl??"—"):p("models.claudeRouteBanner")}),!S&&(0,a.jsx)("p",{className:"text-muted-foreground",children:p("models.claudeRouteBannerDescription")})]})]})]}),(0,a.jsxs)("div",{className:"rounded-md border border-border/70",children:[(0,a.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium","aria-expanded":ea,onClick:()=>et(e=>!e),children:[p("models.applyChangeSummary"),(0,a.jsx)(D.ChevronDown,{className:(0,O.cn)("size-4 text-muted-foreground transition-transform duration-200",ea&&"rotate-180")})]}),ea&&(0,a.jsx)("div",{className:"space-y-2 border-t border-border/70 px-3 py-3 text-xs",children:en.isPending?(0,a.jsx)("p",{className:"text-muted-foreground",children:p("common.loading")}):en.error?(0,a.jsx)("p",{className:"text-destructive",children:en.error instanceof Error?en.error.message:p("models.applyPreviewFailed")}):el?(0,a.jsxs)(a.Fragment,{children:[ec&&(0,a.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:p("models.codexWireApiBlocked")}),eo.map(e=>(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("span",{className:"text-muted-foreground",children:[p("models.applyTargetPath"),":"]}),(0,a.jsx)("span",{className:"break-all font-mono",children:e.targetPath||"—"}),(0,a.jsx)(K.Badge,{variant:"outline",children:e.operation})]}),e.proposed?(0,a.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md border border-border/70 bg-background/60 p-2 font-mono whitespace-pre-wrap",children:V(e.proposed)}):null]},e.targetPath)),em.length>0?(0,a.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-amber-700 dark:text-amber-300",children:em.map(e=>(0,a.jsx)("li",{children:V(e)},e))}):null]}):null})]}),(0,a.jsxs)(g.DialogFooter,{children:[(0,a.jsx)(c.Button,{type:"button",variant:"outline",disabled:er.isPending,onClick:()=>m(!1),children:p("common.cancel")}),(0,a.jsxs)(c.Button,{type:"button",disabled:er.isPending||k||ec||C&&P.isLoading,onClick:()=>er.mutate(),children:[(0,a.jsx)(L.ShieldCheck,{className:"size-4"}),er.isPending?p("models.applyingToCli"):S&&C?p("models.claudeRouteApply"):C?p("models.claudeRouteEnableAndApply"):p("models.applyConfig")]})]})]})})}function V(e){return e.replace(/\b(sk-[A-Za-z0-9_-]{2})[A-Za-z0-9_-]+/g,"$1…").replace(/((?:api[-_]?key|auth[-_]?token|token|secret)["'\s]*[:=]["'\s]*)([^\s,"']{4})[^\s,"']*/giu,"$1$2…").replace(/(Bearer\s+)([A-Za-z0-9._-]{6})[A-Za-z0-9._-]+/giu,"$1$2…").replace(/\b((?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(github_pat_[A-Za-z0-9_]{4})[A-Za-z0-9_]+/g,"$1…").replace(/\b(xox[baprs]-[A-Za-z0-9-]{4})[A-Za-z0-9-]+/giu,"$1…").replace(/\b((?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{4})[A-Z0-9]+/g,"$1…").replace(/\b(AIza[0-9A-Za-z_-]{4})[0-9A-Za-z_-]+/g,"$1…").replace(/\b(eyJ[A-Za-z0-9_-]{4})[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,"$1…")}var G=e.i(79447),X=e.i(83736),Y=e.i(63039),J=e.i(93657),ee=e.i(57793),ea=e.i(25742),et=e.i(76806),ei=e.i(14452),es=e.i(12057),en=e.i(47190);let er=[...b.runtimeAdapterIds];function el({open:e,adapter:i,onOpenChange:l}){let{t:o}=(0,R.useLanguage)(),{user:d}=(0,en.useAuth)(),m=d?.role==="admin",p=(0,r.useQueryClient)(),[u,x]=(0,t.useState)(i);(0,t.useEffect)(()=>{e&&x(i)},[e,i]);let h=(0,n.useQuery)({queryKey:["cli-config-fields",u],queryFn:()=>(0,b.getCliConfigFields)(u),enabled:e}),g=(0,n.useQuery)({queryKey:["cli-config",u],queryFn:()=>(0,b.getCliConfig)(u),retry:!1,enabled:e}),f=(0,n.useQuery)({queryKey:["cli-config-field-values",u],queryFn:()=>(0,b.getCliConfigFieldValues)(u),retry:!1,enabled:e}),v=g.data,j=v?v.files.find(e=>v.configFile.endsWith(e.relativePath))??v.files[0]:void 0,y=(0,n.useQuery)({queryKey:["cli-config-file",u,j?.relativePath],queryFn:()=>(0,b.getCliConfigFile)(u,j.relativePath),enabled:e&&!!j?.relativePath,retry:!1}),[N,C]=(0,t.useState)(!1),[w,k]=(0,t.useState)(""),[P,S]=(0,t.useState)(!1);(0,t.useEffect)(()=>{C(!1),k(""),S(!1)},[u,e]);let A=y.data?.content??"",B=N&&w!==A,T=(0,s.useMutation)({mutationFn:()=>(0,b.writeCliConfigFile)(u,j.relativePath,w),onSuccess:async()=>{_.toast.success(o("cliConfig.saved")),C(!1),await Promise.all([p.invalidateQueries({queryKey:["cli-config",u]}),p.invalidateQueries({queryKey:["cli-config-file",u,j?.relativePath]}),p.invalidateQueries({queryKey:["cli-config-field-values",u]}),p.invalidateQueries({queryKey:["applied-providers"]})])},onError:e=>{_.toast.error(e instanceof Error?e.message:o("cliConfig.saveFailed"))}}),F=h.data?.fields??[];return(0,a.jsxs)(ei.Sheet,{open:e,onOpenChange:function(e){!e&&B?S(!0):l(e)},children:[(0,a.jsxs)(ei.SheetContent,{side:"right",className:"w-full gap-0 overflow-y-auto sm:max-w-xl",children:[(0,a.jsxs)(ei.SheetHeader,{children:[(0,a.jsx)(ei.SheetTitle,{children:o("models.cliConfigSection")}),(0,a.jsx)(ei.SheetDescription,{children:o("models.cliConfigSectionDescription")})]}),(0,a.jsxs)("div",{className:"space-y-5 px-4 pb-6",children:[!m&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-300",children:[(0,a.jsx)(Y.ShieldAlert,{className:"size-3.5 shrink-0"}),o("models.cliConfigAdminOnly")]}),(0,a.jsx)(es.Tabs,{value:u,onValueChange:e=>x(e),children:(0,a.jsx)(es.TabsList,{children:er.map(e=>(0,a.jsx)(es.TabsTrigger,{value:e,children:(0,a.jsx)(J.CliBrandChip,{aiTool:e})},e))})}),F.length>0||h.isLoading||h.error?(0,a.jsxs)("section",{className:"space-y-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:o("cliConfig.commonFields")}),h.isLoading?(0,a.jsx)(em,{text:o("common.loading")}):h.error?(0,a.jsx)(em,{destructive:!0,text:ep(h.error,o("cliConfig.loadFailed"))}):(0,a.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:F.map(e=>(0,a.jsx)(ed,{field:e,value:f.data?.values[e.key],valuesLoading:f.isLoading,t:o},e.key))}),f.error?(0,a.jsx)(em,{destructive:!0,text:ep(f.error,o("cliConfig.loadFieldValuesFailed"))}):null]}):null,(0,a.jsxs)("section",{className:"space-y-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:o("cliConfig.configMetadata")}),g.isLoading?(0,a.jsx)(em,{text:o("common.loading")}):g.error||!v?(0,a.jsx)(em,{destructive:!0,text:ep(g.error,o("cliConfig.loadFailed"))}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,a.jsx)(ec,{label:o("cliConfig.configRoot"),value:v.configRoot}),(0,a.jsx)(ec,{label:o("cliConfig.mainConfigFile"),value:v.configFile}),(0,a.jsx)(ec,{label:o("cliConfig.defaultModel"),value:v.defaultModel||"—"}),(0,a.jsx)(ec,{label:o("cliConfig.providers"),value:String(v.providers.length)})]}),(0,a.jsx)("div",{className:"space-y-2",children:v.files.map(e=>(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border border-border/70 px-3 py-2 text-sm",children:[(0,a.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-2",children:[(0,a.jsx)(G.FileCode2,{className:"size-4 shrink-0 text-muted-foreground"}),(0,a.jsx)("span",{className:"truncate font-mono text-xs",children:e.relativePath})]}),(0,a.jsxs)("span",{className:"flex shrink-0 gap-2",children:[(0,a.jsx)(K.Badge,{variant:"outline",children:e.fileType}),(0,a.jsx)(K.Badge,{variant:e.exists?"secondary":"outline",children:e.exists?(0,ea.formatBytes)(e.sizeBytes):o("cliConfig.fileMissing")})]})]},e.relativePath))})]})]}),(0,a.jsxs)("section",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsxs)("h3",{className:"text-sm font-medium",children:[o("cliConfig.rawEditor"),j?(0,a.jsx)("span",{className:"ml-2 font-mono text-xs font-normal text-muted-foreground",children:j.relativePath}):null]}),N?null:(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"outline",disabled:!m||!j||y.isLoading,title:m?void 0:o("models.cliConfigAdminOnly"),onClick:()=>{k(y.data?.content??""),C(!0)},children:[(0,a.jsx)(X.Pencil,{className:"size-4"}),o("cliConfig.editRawFile")]})]}),j?N?(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("textarea",{"aria-label":o("cliConfig.rawEditor"),className:"min-h-64 w-full rounded-md border bg-background p-3 font-mono text-xs",value:w,onChange:e=>k(e.target.value),spellCheck:!1}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)(c.Button,{type:"button",size:"sm",variant:"outline",disabled:T.isPending,onClick:function(){B?S(!0):(C(!1),k(""))},children:o("common.cancel")}),(0,a.jsx)(c.Button,{type:"button",size:"sm",disabled:T.isPending||!B,onClick:()=>T.mutate(),children:T.isPending?o("common.saving"):o("common.save")})]})]}):y.isLoading?(0,a.jsx)(em,{text:o("common.loading")}):y.error?(0,a.jsx)(em,{destructive:!0,text:ep(y.error,o("cliConfig.loadFailed"))}):y.data?.content!==void 0?(0,a.jsx)(eo,{fileName:j.relativePath,content:y.data.content}):(0,a.jsx)(em,{text:o("cliConfig.rawFileContentUnavailable")}):(0,a.jsx)(em,{text:o("common.loading")})]})]})]}),(0,a.jsx)(ee.ConfirmDialog,{open:P,title:o("cliConfig.unsavedChangesTitle"),description:o("cliConfig.unsavedChangesDescription"),confirmLabel:o("common.close"),destructive:!0,pending:T.isPending,onOpenChange:S,onConfirm:function(){S(!1),C(!1),k(""),l(!1)}})]})}function eo({fileName:e,content:i}){let[s,n]=(0,t.useState)(null);return((0,t.useEffect)(()=>{let a=!1;if(n(null),i)return(0,et.highlightWorkspaceCode)(i,e).then(e=>{a||n(e)}),()=>{a=!0}},[e,i]),s)?(0,a.jsx)("div",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs leading-5",children:s.map((e,t)=>(0,a.jsx)("div",{className:"whitespace-pre-wrap",children:e.length>0?e.map((e,t)=>{let i=(0,et.tokenFontStyle)(e.fontStyle);return(0,a.jsx)("span",{style:{color:e.color,fontStyle:i.italic?"italic":void 0,fontWeight:i.bold?600:void 0,textDecoration:i.underline?"underline":void 0},children:e.content},t)}):" "},t))}):(0,a.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-muted/20 p-3 font-mono text-xs whitespace-pre-wrap",children:i})}function ed({field:e,value:t,valuesLoading:i,t:s}){let n=i?s("common.loading"):"secret"===e.type?s(!0===t?"cliConfig.hasKey":"cliConfig.noKey"):void 0===t||""===t?s("cliConfig.fieldNotSet"):String(t);return(0,a.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,a.jsx)("div",{className:"text-sm font-medium",children:e.label}),(0,a.jsx)("div",{className:"mt-1 font-mono text-xs text-muted-foreground",children:e.path}),(0,a.jsx)("div",{className:"mt-2 text-xs",children:n})]})}function ec({label:e,value:t}){return(0,a.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:e}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs",children:t})]})}function em({text:e,destructive:t=!1}){return(0,a.jsx)("div",{className:`rounded-md border border-dashed px-4 py-6 text-center text-sm ${t?"text-destructive":"text-muted-foreground"}`,children:e})}function ep(e,a){return e instanceof Error?e.message:a}var eu=e.i(34487);function ex({target:e,isDeleting:t,onOpenChange:i,onConfirm:s,t:n}){let r=n(e?.kind==="model"?"models.deleteModelTitle":e?.kind==="credential"?"models.deleteCredentialTitle":"models.deleteProviderTitle"),l=e?.kind==="model"?`${n("models.deleteModelWarning")} ${e.name}`:e?.kind==="credential"?`${n("models.deleteCredentialConfirm")} ${e.name}`:`${n("models.deleteProviderWarning")} ${e?.name??""}`;return(0,a.jsx)(g.Dialog,{open:null!==e,onOpenChange:e=>{e||t||i(!1)},children:(0,a.jsxs)(g.DialogContent,{className:"sm:max-w-md",children:[(0,a.jsxs)(g.DialogHeader,{children:[(0,a.jsxs)(g.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,a.jsx)(eu.Trash2,{className:"size-5 shrink-0 text-destructive"}),r]}),(0,a.jsx)(g.DialogDescription,{children:l})]}),(0,a.jsxs)(g.DialogFooter,{children:[(0,a.jsx)(c.Button,{type:"button",variant:"outline",disabled:t,onClick:()=>i(!1),children:n("common.cancel")}),(0,a.jsxs)(c.Button,{type:"button",variant:"destructive",disabled:t,onClick:s,children:[(0,a.jsx)(eu.Trash2,{className:"size-4"}),n(t?"models.deleting":"common.delete")]})]})]})})}var eh=e.i(12603);function eg({providers:e,providerCount:t,modelCounts:i,queryText:s,selectedProviderId:n,isLoading:r,onQueryTextChange:l,onSelectProvider:d,onEditProvider:m,t:p}){return(0,a.jsxs)(eh.Card,{className:"min-w-0 forgebadger-animate-in xl:sticky xl:top-4",children:[(0,a.jsx)(eh.CardHeader,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,a.jsx)(o,{className:"size-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)(eh.CardTitle,{className:"text-base",children:p("models.providers")}),(0,a.jsx)(eh.CardDescription,{className:"mt-1",children:p("models.providersDescription")})]})]})}),(0,a.jsxs)(eh.CardContent,{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(x.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(f.Input,{value:s,onChange:e=>l(e.target.value),placeholder:p("models.searchConfiguredProviders"),"aria-label":p("models.searchConfiguredProviders"),className:"pl-9"})]}),(0,a.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e.length,"/",t," ",p("models.catalogMatches")]}),(0,a.jsx)("div",{"data-testid":"configured-provider-list",className:"max-h-[560px] overflow-y-auto",children:r?(0,a.jsx)(M,{text:p("common.loading")}):0===e.length?(0,a.jsx)(M,{text:p("models.emptyProviders")}):(0,a.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:e.map((e,t)=>{let s=e.id===n;return(0,a.jsxs)("div",{className:`flex w-full items-center gap-2 px-3 py-2.5 text-sm transition-colors forgebadger-animate-in ${s?"bg-brand/5":"hover:bg-muted/40"}`,style:{animationDelay:`${40*t}ms`},children:[(0,a.jsx)("span",{className:`size-1.5 shrink-0 rounded-full ${s?"bg-brand":"bg-muted-foreground/30"}`}),(0,a.jsxs)("button",{type:"button","aria-pressed":s,className:"min-w-0 flex-1 text-left",onClick:()=>d(e.id),children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)("span",{className:"truncate font-medium",children:e.name}),(0,a.jsxs)(K.Badge,{variant:"outline",title:p("models.modelsWorkspace"),className:"shrink-0 text-[10px]",children:[i.get(e.id)??0," ",p("models.modelUnit")]})]}),(0,a.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:e.baseUrl??e.providerKey})]}),(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",title:p("common.edit"),"aria-label":p("common.edit"),onClick:()=>m(e.id),children:(0,a.jsx)(X.Pencil,{className:"size-4"})})]},e.id)})})})]})]})}var ef=e.i(30373);let ev=(0,l.default)("ServerCog",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5",key:"tn8das"}],["path",{d:"M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5",key:"1g2pve"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m15.7 13.4-.9-.3",key:"1jwmzr"}],["path",{d:"m9.2 10.9-.9-.3",key:"qapnim"}],["path",{d:"m10.6 15.7.3-.9",key:"quwk0k"}],["path",{d:"m13.6 15.7-.4-1",key:"cb9xp7"}],["path",{d:"m10.8 9.3-.4-1",key:"1uaiz5"}],["path",{d:"m8.3 13.6 1-.4",key:"s6srou"}],["path",{d:"m14.7 10.8 1-.4",key:"4d31cq"}],["path",{d:"m13.4 8.3-.3.9",key:"1bm987"}]]),eb=(0,l.default)("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);var ej=e.i(17955),ey=e.i(66936),ey=ey,eN=e.i(2527),eC=e.i(98859);let ew=[...b.runtimeAdapterIds];function ek({provider:e,onApply:i,onViewConfig:s}){let{t:l}=(0,R.useLanguage)(),o=(0,n.useQuery)({queryKey:["applied-providers"],queryFn:b.getAppliedProviders,retry:!1,staleTime:3e4}),d=(0,n.useQuery)({queryKey:q.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:b.discoverAdapters,retry:!1,staleTime:3e4}),m=(0,n.useQuery)({queryKey:["claude-route"],queryFn:b.getClaudeRoute,retry:!1,staleTime:6e4}),u=(0,n.useQuery)({queryKey:["cli-accounts"],queryFn:b.getCliAccounts,retry:!1,staleTime:6e4,refetchInterval:6e4}),x=new Map((d.data?.adapters??[]).map(e=>[e.id,e])),g=o.data?.adapters,f=m.data,v=new Map((u.data?.accounts??[]).map(e=>[e.login.adapter,e])),j=(0,r.useQueryClient)(),[y,N]=(0,t.useState)(null);return(0,a.jsxs)(eh.Card,{"data-testid":"cli-status-section",children:[(0,a.jsxs)(eh.CardHeader,{children:[(0,a.jsx)(eh.CardTitle,{className:"text-base",children:l("models.cliStatusTitle")}),(0,a.jsx)(eh.CardDescription,{className:"mt-1",children:l("models.cliStatusDescription")})]}),(0,a.jsxs)(eh.CardContent,{children:[o.isLoading?(0,a.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4","data-testid":"cli-status-skeleton",children:ew.map(e=>(0,a.jsx)("div",{className:"h-28 animate-pulse rounded-md border border-border/70 bg-muted/20 px-3 py-2.5"},e))}):(0,a.jsx)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4",children:ew.map(t=>{var n;let r=(0,eN.getCliBrand)(t),o=x.get(t),m=o?.available===!0,u=o?.status==="check_failed",C=g?.find(e=>e.adapter===t)??null,w=C?.applied??null,k=(n=e.id,!!(C?.applied&&C.applied.providerProfileId===n)),P=e.supportedAdapters.includes(t),S="claude"===t&&f?.enabled===!0&&f.assignment?.providerProfileId===e.id,A=v.get(t),B=A?.login??null;return(0,a.jsxs)("div",{"data-testid":`cli-status-${t}`,className:`flex min-w-0 flex-col gap-2 rounded-md border px-3 py-2.5 ${k?"border-emerald-500/40 bg-emerald-500/5":"border-border/70 bg-muted/20"}`,children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-sm font-medium",children:[(0,a.jsx)(h.CliBrandIcon,{aiTool:t,className:"size-4 shrink-0"}),(0,a.jsx)("span",{className:"truncate",children:r.label})]}),(0,a.jsxs)("span",{className:"flex flex-wrap items-center gap-1",children:[S&&(0,a.jsx)(K.Badge,{variant:"secondary",className:"text-[10px]",children:l("models.claudeRouteBadge")}),(0,a.jsx)(K.Badge,{variant:m?"secondary":"outline",className:"text-[10px]",children:m?l("models.sdkInstalled"):u?l("models.cliStatusCheckFailed"):l("models.sdkMissing")}),B?(0,a.jsx)(eP,{login:B,t:l}):null]})]}),(0,a.jsxs)("div",{className:"min-w-0 text-xs",children:[w?(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:`truncate font-medium ${k?"text-emerald-700 dark:text-emerald-300":""}`,children:[w.providerName??`${l("models.cliStatusUnknownProvider")} \xb7 ${w.providerProfileId.slice(0,8)}`,k?` \xb7 ${l("models.cliStatusActiveHere")}`:""]}),(0,a.jsx)("div",{className:"truncate text-muted-foreground",children:w.modelName??w.modelId??l("models.cliStatusNoModel")})]}):(0,a.jsx)("span",{className:"text-muted-foreground",children:l("models.cliStatusNotConfigured")}),C?.stale?(0,a.jsxs)("div",{className:"mt-1 flex items-center gap-1 text-amber-700 dark:text-amber-300",children:[(0,a.jsx)(ey.default,{className:"size-3 shrink-0"}),l("models.cliStatusStale")]}):null]}),B?(0,a.jsxs)("div",{className:"space-y-1.5",children:["not_authenticated"===B.state?(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:l(eC.LOGIN_HINT_KEYS[B.adapter]),children:l(eC.LOGIN_HINT_KEYS[B.adapter])}),(0,a.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:y===B.adapter,"aria-label":l("models.cliAccountQuotaRefresh"),title:l("models.cliAccountQuotaRefresh"),onClick:()=>{var e;N(e=B.adapter),(0,b.refreshCliAccountQuota)(e).then(()=>j.invalidateQueries({queryKey:["cli-accounts"]})).catch(()=>_.toast.error(l("models.cliAccountQuotaRefreshFailed"))).finally(()=>N(null))},children:(0,a.jsx)(p.RefreshCw,{className:(0,O.cn)("size-3",y===B.adapter&&"animate-spin")})})]}):null,(0,a.jsx)(eC.CliQuotaSummary,{quota:A?.quota,t:l})]}):null,(0,a.jsxs)("div",{className:"mt-auto flex items-center gap-1.5 pt-1",children:[(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"outline",className:"h-7 flex-1 px-2 text-xs",disabled:!P,title:P?void 0:l("models.cliStatusApplyUnsupported"),onClick:()=>i(t),children:[(0,a.jsx)(L.ShieldCheck,{className:"size-3.5"}),l("models.cliStatusApply")]}),(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"ghost",className:"h-7 flex-1 px-2 text-xs",disabled:d.isSuccess&&!m,title:d.isSuccess&&!m?l("models.cliStatusCliMissing"):void 0,onClick:()=>s(t),children:[(0,a.jsx)(G.FileCode2,{className:"size-3.5"}),l("models.cliStatusViewConfig")]})]})]},t)})}),o.isError?(0,a.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:l("models.cliStatusLoadFailed")}):null]})]})}function eP({login:e,t}){if("cli_missing"===e.state)return null;if("custom_endpoint"===e.state)return(0,a.jsx)(K.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",title:t("models.cliAccountCustomEndpointHint"),children:t("models.cliAccountCustomEndpoint")});if("ready"===e.state){let i=(0,eC.loginMethodLabel)(e.method,t);return(0,a.jsxs)(K.Badge,{variant:"default",className:"text-[10px]",children:[t("models.cliAccountLoggedIn"),i?` \xb7 ${i}`:""]})}return"not_authenticated"===e.state?(0,a.jsx)(K.Badge,{variant:"outline",className:"text-[10px]",children:t("models.cliAccountNotLoggedIn")}):(0,a.jsx)(K.Badge,{variant:"outline",className:"text-[10px] text-muted-foreground",children:t("models.cliAccountDetectFailed")})}function eS({credentials:e,selectedCredentialId:t,credentialForm:i,rotateDialogOpen:s,isSaving:n,isRotating:r,isDeleting:l,onCredentialFormChange:o,onRotateDialogOpenChange:m,onSelectCredential:u,onSubmitCredential:x,onOpenRotate:h,onConfirmRotate:b,onDeleteCredential:j,t:y}){return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("form",{className:"grid items-end gap-3 md:grid-cols-[1fr_1fr_auto]",onSubmit:x,children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"credential-label",children:y("models.credentialLabel")}),(0,a.jsx)(f.Input,{id:"credential-label",placeholder:y("models.defaultCredentialLabel"),value:i.label,onChange:e=>o({...i,label:e.target.value})})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"credential-secret",children:y("models.apiKey")}),(0,a.jsx)(f.Input,{id:"credential-secret",type:"password",placeholder:y("models.apiKeyPlaceholder"),value:i.plaintextSecret,onChange:e=>o({...i,plaintextSecret:e.target.value}),required:!0})]}),(0,a.jsxs)(c.Button,{type:"submit",disabled:n,children:[(0,a.jsx)(d.Plus,{className:"size-4"}),y("models.saveCredential")]})]}),0===e.length?(0,a.jsx)(M,{text:y("models.emptyCredentials")}):(0,a.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:e.map((e,i)=>(0,a.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${e.id===t?"bg-brand/5":""}`,style:{animationDelay:`${40*i}ms`},children:[(0,a.jsxs)("button",{type:"button",className:"min-w-0 flex-1 text-left",onClick:()=>u(e.id),children:[(0,a.jsx)("div",{className:"truncate text-sm font-medium",children:e.label??y("models.unnamedCredential")}),(0,a.jsx)("div",{className:"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:e.secretPreview})]}),(0,a.jsx)(K.Badge,{variant:"outline",className:"shrink-0",children:e.status}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:y("models.rotate"),"aria-label":y("models.rotate"),onClick:()=>h(e.id),children:(0,a.jsx)(p.RefreshCw,{className:"size-4"})}),(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:l,title:y("models.deleteCredential"),"aria-label":y("models.deleteCredential"),onClick:()=>j(e.id),children:(0,a.jsx)(eu.Trash2,{className:"size-4"})})]})]},e.id))}),(0,a.jsx)(g.Dialog,{open:s,onOpenChange:m,children:(0,a.jsx)(g.DialogContent,{className:"sm:max-w-md",children:(0,a.jsxs)("form",{className:"space-y-4",onSubmit:e=>{e.preventDefault(),b()},children:[(0,a.jsx)(g.DialogHeader,{children:(0,a.jsx)(g.DialogTitle,{children:y("models.rotateApiKey")})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"rotate-credential-label",children:y("models.credentialLabel")}),(0,a.jsx)(f.Input,{id:"rotate-credential-label",placeholder:y("models.defaultCredentialLabel"),value:i.label,onChange:e=>o({...i,label:e.target.value})})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"rotate-credential-secret",children:y("models.apiKey")}),(0,a.jsx)(f.Input,{id:"rotate-credential-secret",type:"password",placeholder:y("models.apiKeyPlaceholder"),value:i.plaintextSecret,onChange:e=>o({...i,plaintextSecret:e.target.value}),required:!0})]}),(0,a.jsxs)(g.DialogFooter,{children:[(0,a.jsx)(c.Button,{type:"button",variant:"outline",disabled:r,onClick:()=>m(!1),children:y("common.cancel")}),(0,a.jsxs)(c.Button,{type:"submit",disabled:r||!i.plaintextSecret,children:[(0,a.jsx)(p.RefreshCw,{className:`size-4 ${r?"animate-spin":""}`}),y("models.rotate")]})]})]})})})]})}var eA=e.i(80703);function eB({provider:e,t:i}){let n=(0,R.useUiLocale)(),[r,l]=(0,t.useState)(null);(0,t.useEffect)(()=>{l(null)},[e.id]);let o=(0,s.useMutation)({mutationFn:()=>(0,b.testModelProviderEndpoint)(e.id,{timeoutMs:5e3}),onSuccess:e=>l(e.health)}),d=o.error instanceof Error?o.error.message:null;return(0,a.jsxs)(eh.Card,{children:[(0,a.jsx)(eh.CardHeader,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,a.jsx)(eA.Gauge,{className:"size-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)(eh.CardTitle,{className:"text-base",children:i("models.endpointTest")}),(0,a.jsx)(eh.CardDescription,{className:"mt-1",children:i("models.endpointTestDescription")})]})]})}),(0,a.jsxs)(eh.CardContent,{className:"space-y-3",children:[(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"outline",disabled:o.isPending,onClick:()=>o.mutate(),children:[(0,a.jsx)(eA.Gauge,{className:`size-4 ${o.isPending?"animate-pulse":""}`}),i(o.isPending?"models.checkingEndpoint":"models.checkEndpoint")]}),d?(0,a.jsx)("p",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:d}):null,r?(0,a.jsxs)("div",{"data-testid":"endpoint-health-row",className:"flex flex-wrap items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs",children:[(0,a.jsx)(K.Badge,{variant:r.healthy?"default":"outline",children:i(r.healthy?"models.endpointHealthy":"models.endpointFailed")}),(0,a.jsxs)("span",{className:"text-muted-foreground",children:[r.latencyMs," ms",r.statusCode?` \xb7 HTTP ${r.statusCode}`:""," · ",P(r.checkedAt,n)]}),r.error?(0,a.jsx)("span",{className:"text-destructive",children:r.error}):null]}):null]})]})}function eT({models:e,selectedModelId:t,modelForm:i,dialogOpen:s,isSaving:n,isSettingDefault:r,isDeleting:l,isSyncing:o,syncDisabled:m,onSync:u,onModelFormChange:x,onDialogOpenChange:h,onNewModel:b,onEditModel:j,onSetDefault:y,onDeleteModel:N,onSubmitModel:C,t:w}){return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,a.jsx)("p",{className:"min-w-0 flex-1 text-sm text-muted-foreground",children:w("models.modelsWorkspaceDescription")}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"outline",disabled:m||o,title:m?w("models.syncRequiresCredential"):w("models.syncProviderModelsDescription"),onClick:u,children:[(0,a.jsx)(p.RefreshCw,{className:`size-4 ${o?"animate-spin":""}`}),w("models.syncProviderModels")]}),m&&(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:w("models.syncRequiresCredential")}),(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"outline",onClick:b,children:[(0,a.jsx)(d.Plus,{className:"size-4"}),w("models.newModel")]})]})]}),0===e.length?(0,a.jsx)(M,{text:w("models.emptyModelsForProvider")}):(0,a.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:e.map((e,i)=>(0,a.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40 ${e.id===t?"bg-brand/5":""}`,style:{animationDelay:`${40*i}ms`},children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),e.isDefault&&(0,a.jsx)(K.Badge,{className:"shrink-0",children:w("models.default")})]}),(0,a.jsx)("div",{className:"mt-0.5 truncate font-mono text-xs text-muted-foreground",children:e.modelId})]}),(0,a.jsx)("div",{className:"hidden flex-wrap justify-end gap-1 md:flex md:max-w-40",children:e.capabilities.map(e=>(0,a.jsx)(K.Badge,{variant:"outline",children:e},e))}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",disabled:e.isDefault||r,title:w("models.setDefault"),"aria-label":w("models.setDefault"),onClick:()=>y(e.id),children:(0,a.jsx)(L.ShieldCheck,{className:"size-4"})}),(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-brand",title:w("models.editModel"),"aria-label":w("models.editModel"),onClick:()=>j(e.id),children:(0,a.jsx)(X.Pencil,{className:"size-4"})}),(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"ghost",className:"size-8 text-muted-foreground hover:text-destructive",disabled:l,title:w("models.deleteModel"),"aria-label":w("models.deleteModel"),onClick:()=>N(e.id),children:(0,a.jsx)(eu.Trash2,{className:"size-4"})})]})]},e.id))}),(0,a.jsx)(g.Dialog,{open:s,onOpenChange:h,children:(0,a.jsx)(g.DialogContent,{className:"sm:max-w-md",children:(0,a.jsxs)("form",{className:"space-y-4",onSubmit:C,children:[(0,a.jsx)(g.DialogHeader,{children:(0,a.jsx)(g.DialogTitle,{children:t?w("models.editModel"):w("models.addModel")})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"model-form-name",children:w("common.name")}),(0,a.jsx)(f.Input,{id:"model-form-name",value:i.name,onChange:e=>x({...i,name:e.target.value}),required:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"model-form-model-id",children:w("models.modelId")}),(0,a.jsx)(f.Input,{id:"model-form-model-id",value:i.modelId,onChange:e=>x({...i,modelId:e.target.value}),required:!0})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{children:w("models.capabilities")}),(0,a.jsx)("div",{className:"flex flex-wrap gap-3",children:T.map(e=>(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:i.capabilities.includes(e),onChange:()=>{let a;return a=i.capabilities.includes(e)?i.capabilities.filter(a=>a!==e):[...i.capabilities,e],void x({...i,capabilities:a})}}),e]},e))}),(0,a.jsx)(f.Input,{id:"model-form-custom-capabilities",value:i.customCapabilities,onChange:e=>x({...i,customCapabilities:e.target.value}),placeholder:w("models.customCapabilitiesPlaceholder")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"model-form-context-window",children:w("models.contextWindow")}),(0,a.jsx)(f.Input,{id:"model-form-context-window",type:"number",min:1,step:1,placeholder:w("models.contextWindowPlaceholder"),value:i.contextWindow,onChange:e=>x({...i,contextWindow:e.target.value})}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:w("models.contextWindowHint")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{children:w("models.thinkingEfforts")}),(0,a.jsx)("div",{className:"flex flex-wrap gap-3",children:F.map(e=>(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:i.supportEfforts.includes(e),onChange:()=>{let a;return a=i.supportEfforts.includes(e),void x({...i,supportEfforts:a?i.supportEfforts.filter(a=>a!==e):[...i.supportEfforts,e],defaultEffort:a&&i.defaultEffort===e?"":i.defaultEffort})}}),e]},e))}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:w("models.thinkingEffortsHint")})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(v.Label,{htmlFor:"model-form-default-effort",children:w("models.defaultEffort")}),(0,a.jsxs)("select",{id:"model-form-default-effort",className:"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:i.defaultEffort,onChange:e=>x({...i,defaultEffort:e.target.value}),children:[(0,a.jsx)("option",{value:"",children:w("models.defaultEffortUnset")}),i.supportEfforts.map(e=>(0,a.jsx)("option",{value:e,children:e},e))]})]}),(0,a.jsxs)(g.DialogFooter,{children:[(0,a.jsx)(c.Button,{type:"button",variant:"outline",disabled:n,onClick:()=>h(!1),children:w("common.cancel")}),(0,a.jsx)(c.Button,{type:"submit",disabled:n,children:t?w("models.saveModel"):w("models.addModel")})]})]})})})]})}function eF({provider:e,isSyncing:t,syncDisabled:i,balance:s,balanceError:r,isCheckingBalance:l,isDeletingProvider:o,onEditProvider:d,onSync:m,onCheckBalance:u,onDeleteProvider:x,onApplyToCli:h,onViewCliConfig:g,modelsTab:f,credentialTab:v,t:j}){var y;let N=(0,R.useUiLocale)(),{data:C}=(0,n.useQuery)({queryKey:["claude-route"],queryFn:b.getClaudeRoute,retry:!1,staleTime:6e4}),w=C?.enabled===!0&&e.supportedAdapters.includes("claude")&&C.assignment?.providerProfileId===e.id;return(0,a.jsxs)("div",{className:"min-w-0 space-y-6",children:[(0,a.jsx)(eh.Card,{className:"forgebadger-animate-in",children:(0,a.jsxs)(eh.CardContent,{className:"space-y-4 p-4 md:p-5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,a.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,a.jsx)(ev,{className:"size-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"truncate text-base font-semibold",children:e.name}),(0,a.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.baseUrl??e.providerKey})]})]}),(0,a.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2",children:[(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"brand",onClick:()=>h(),children:[(0,a.jsx)(L.ShieldCheck,{className:"size-4"}),j("models.applyToCli")]}),(0,a.jsxs)(ej.DropdownMenu,{children:[(0,a.jsx)(ej.DropdownMenuTrigger,{asChild:!0,children:(0,a.jsx)(c.Button,{type:"button",size:"icon",variant:"outline",className:"size-9","aria-label":j("common.actions"),children:(0,a.jsx)(ef.MoreHorizontal,{className:"size-4"})})}),(0,a.jsxs)(ej.DropdownMenuContent,{align:"end",children:[(0,a.jsxs)(ej.DropdownMenuItem,{onSelect:d,children:[(0,a.jsx)(X.Pencil,{className:"size-4"}),j("models.editProvider")]}),(0,a.jsxs)(ej.DropdownMenuItem,{disabled:l,onSelect:u,children:[(0,a.jsx)(eb,{className:"size-4"}),j("models.checkBalance")]}),(0,a.jsxs)(ej.DropdownMenuItem,{className:"text-destructive focus:text-destructive",disabled:o,onSelect:x,children:[(0,a.jsx)(eu.Trash2,{className:"size-4"}),j("models.deleteProviderTitle")]})]})]})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,a.jsx)(K.Badge,{variant:"outline",children:A(e.apiFormat,j)}),w&&(0,a.jsx)(K.Badge,{variant:"secondary",children:j("models.claudeRouteBadge")}),e.region?(0,a.jsx)(K.Badge,{variant:"outline",children:e.region}):null,(0,a.jsx)(K.Badge,{variant:"secondary",children:(y=e.productType,"coding_plan"===y?j("models.productTypeCodingPlan"):"token_plan"===y?j("models.productTypeTokenPlan"):"subscription"===y?j("models.productTypeSubscription"):"local"===y?j("models.productTypeLocal"):j("models.productTypePaygApi"))}),(0,a.jsx)(K.Badge,{variant:"outline",children:B(e.authType,j)}),(!e?[]:[...e.supportedAdapters]).map(e=>(0,a.jsx)(J.CliBrandChip,{aiTool:e},e))]}),(0,a.jsxs)("div",{className:"min-h-10 space-y-2","data-testid":"provider-balance-row",children:[r?(0,a.jsx)("span",{className:"text-xs text-destructive",children:r}):s&&!s.supported?(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:j("models.balanceNotSupported")}):!s&&l?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,a.jsx)(p.RefreshCw,{className:"size-3 animate-spin"}),j("models.balanceLoading")]}):s?0===s.balances.length?(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:j("models.balanceEmpty")}):s.balances.map(e=>(0,a.jsx)(eM,{entry:e,t:j},`${e.label}-${e.resetsAt??""}`)):(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:j("models.balanceNotQueried")}),s?.supported&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[l&&(0,a.jsx)(p.RefreshCw,{className:"size-3 animate-spin"}),(0,a.jsx)("span",{children:P(s.checkedAt,N)})]})]})]})}),(0,a.jsx)(ek,{provider:e,onApply:e=>h(e),onViewConfig:g}),(0,a.jsxs)(es.Tabs,{defaultValue:"models",className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,a.jsxs)(es.TabsList,{children:[(0,a.jsx)(es.TabsTrigger,{value:"models",children:j("models.modelsWorkspace")}),(0,a.jsx)(es.TabsTrigger,{value:"credentials",children:j("models.credentials")}),(0,a.jsx)(es.TabsTrigger,{value:"diagnostics",children:j("models.diagnosticsTab")})]}),(0,a.jsx)(es.TabsContent,{value:"models",className:"pt-4",children:(0,a.jsx)(eT,{...f,isSyncing:t,syncDisabled:i,onSync:m,t:j})}),(0,a.jsx)(es.TabsContent,{value:"credentials",className:"pt-4",children:(0,a.jsx)(eS,{...v,t:j})}),(0,a.jsx)(es.TabsContent,{value:"diagnostics",className:"pt-4",forceMount:!0,children:(0,a.jsx)(eB,{provider:e,t:j})})]})]})}function eM({entry:e,t}){let i=(0,R.useUiLocale)(),s="%"===e.unit?S(100-e.remaining):void 0!==e.limit&&e.limit>0?S((1-e.remaining/e.limit)*100):void 0,n=!1===e.isAvailable,r=void 0!==s?`${Math.round(s)}%`:`${e.remaining} ${e.unit}`,l=void 0===s?"":s>=80?"bg-red-500":s>=50?"bg-amber-500":"bg-emerald-500";return(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 text-xs",children:[(0,a.jsxs)("span",{className:n?"text-amber-700 dark:text-amber-300":"text-muted-foreground",children:[e.label,n?` \xb7 ${t("models.balanceUnavailable")}`:"",e.resetsAt?` \xb7 ${t("models.balanceResetsAt")}: ${P(e.resetsAt,i)}`:""]}),(0,a.jsx)("span",{className:`font-medium ${n?"text-amber-700 dark:text-amber-300":""}`,children:r})]}),void 0!==s&&(0,a.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted/40",children:(0,a.jsx)("div",{className:`h-full rounded-full transition-[width] duration-500 ${l}`,style:{width:`${s}%`}})})]})}function eU(e,a){return e instanceof Error?e.message:a}e.s(["default",0,function(){let{t:e}=(0,R.useLanguage)(),l=(0,r.useQueryClient)(),p=(0,i.useRouter)(),u=(0,i.usePathname)(),x=(0,i.useSearchParams)(),[h,g]=(0,t.useState)(()=>x.get("provider")??""),[f,v]=(0,t.useState)(N),[j,y]=(0,t.useState)(w),[P,S]=(0,t.useState)(k),[A,B]=(0,t.useState)(""),[F,M]=(0,t.useState)(""),[U,E]=(0,t.useState)(""),[z,D]=(0,t.useState)(w),[L,q]=(0,t.useState)(null),[K,O]=(0,t.useState)(!1),[$,H]=(0,t.useState)(null),[Q,W]=(0,t.useState)({open:!1}),[V,G]=(0,t.useState)({open:!1,adapter:"claude"}),[X,Y]=(0,t.useState)(!1),[J,ee]=(0,t.useState)(!1);function ea(e){g(e);let a=new URLSearchParams(x.toString());e?a.set("provider",e):a.delete("provider");let t=a.toString();p.replace(t?`${u}?${t}`:u,{scroll:!1})}let et=(0,n.useQuery)({queryKey:["model-providers"],queryFn:b.listModelProviders}),ei=et.data?.providers??[],es=et.data?.models??[],en=et.data?.credentials??[],er=(0,t.useMemo)(()=>{let e=U.trim().toLowerCase();return e?ei.filter(a=>[a.name,a.providerKey,a.baseUrl,a.apiFormat,a.opencodeNpm].filter(Boolean).join(" ").toLowerCase().includes(e)):ei},[U,ei]);(0,t.useEffect)(()=>{let e=ei[0];e&&(h&&ei.some(e=>e.id===h)||ea(e.id))},[ei,h]);let eo=ei.find(e=>e.id===h),ed=(0,t.useMemo)(()=>es.filter(e=>e.providerProfileId===h),[es,h]),ec=(0,t.useMemo)(()=>en.filter(e=>e.providerProfileId===h),[en,h]),em=(0,t.useMemo)(()=>ed.find(e=>e.id===A),[ed,A]),ep=(0,t.useMemo)(()=>ec.find(e=>e.id===F),[ec,F]),eu=(0,t.useMemo)(()=>{let e=new Map;for(let a of es)e.set(a.providerProfileId,(e.get(a.providerProfileId)??0)+1);return e},[es]);(0,t.useEffect)(()=>{B(e=>ed.some(a=>a.id===e)?e:ed[0]?.id||""),M(e=>ec.some(a=>a.id===e)?e:ec[0]?.id||"")},[ed,ec]),(0,t.useEffect)(()=>{if(em){let{checked:e,custom:a}=function(e){let a=new Set(T),t=[],i=[];for(let s of e)a.has(s)?t.push(s):i.push(s);return{checked:t,custom:i.join(",")}}(em.capabilities);S({name:em.name,modelId:em.modelId,capabilities:e,customCapabilities:a,contextWindow:em.contextWindow?String(em.contextWindow):"",supportEfforts:em.supportEfforts,defaultEffort:em.defaultEffort??""})}else S(k)},[em]),(0,t.useEffect)(()=>{ep&&y(e=>({...e,label:ep.label??""}))},[ep]);let eh=(0,s.useMutation)({mutationFn:async()=>{let e,a=f.anthropicBaseUrl.trim(),t=f.openaiBaseUrl.trim(),i=await (0,b.createModelProvider)({name:f.name.trim(),providerKey:f.providerKey.trim(),authType:f.authType,apiFormat:f.apiFormat,baseUrl:C(f),...a?{anthropicBaseUrl:a}:{},...t?{openaiBaseUrl:t}:{},supportedAdapters:f.supportedAdapters,...f.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...f.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}}),s=z.plaintextSecret.trim(),n="none"!==i.provider.authType&&s?(await (0,b.createProviderCredential)(i.provider.id,{label:z.label.trim()||void 0,plaintextSecret:s})).credential:void 0;if(n||"none"===i.provider.authType)try{await (0,b.syncProviderModels)(i.provider.id,{credentialId:n?.id})}catch(a){e=a}return{provider:i.provider,credential:n,syncError:e}},onSuccess:async a=>{ea(a.provider.id),M(a.credential?.id??""),B(""),v(N),D(w),O(!1),H(null),_.toast.success(e("models.providerCreated")),a.syncError&&_.toast.error(a.syncError instanceof Error?a.syncError.message:e("models.modelSyncFailed")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ef=(0,s.useMutation)({mutationFn:async()=>{if(!$)throw Error(e("models.providerRequired"));let a=f.anthropicBaseUrl.trim(),t=f.openaiBaseUrl.trim();return(0,b.updateModelProvider)($.id,{name:f.name.trim(),authType:f.authType,apiFormat:f.apiFormat,baseUrl:C(f),...a?{anthropicBaseUrl:a}:{},...t?{openaiBaseUrl:t}:{},supportedAdapters:f.supportedAdapters,...f.allowPlaintextHttp?{allowPlaintextHttp:!0}:{},...f.allowPrivateNetworks?{allowPrivateNetworks:!0}:{}})},onSuccess:async()=>{O(!1),H(null),v(N),_.toast.success(e("models.updated")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ev=(0,s.useMutation)({mutationFn:e=>(0,b.deleteModelProvider)(e),onSuccess:async(a,t)=>{q(null),ea(ei.find(e=>e.id!==t)?.id||""),B(""),M(""),_.toast.success(e("models.providerDeleted")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),eb=(0,s.useMutation)({mutationFn:()=>(0,b.createProviderCredential)(h,{label:j.label.trim()||void 0,plaintextSecret:j.plaintextSecret}),onSuccess:async a=>{y(w),M(a.credential.id),_.toast.success(e("models.credentialSaved")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ej=(0,s.useMutation)({mutationFn:()=>{if(!F)throw Error(e("models.credentialRequired"));return(0,b.rotateProviderCredential)(h,F,{label:j.label.trim()||void 0,plaintextSecret:j.plaintextSecret})},onSuccess:async a=>{y(w),M(a.credential.id),ee(!1),_.toast.success(e("models.credentialRotated")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ey=(0,s.useMutation)({mutationFn:e=>(0,b.deleteProviderCredential)(h,e),onSuccess:async(a,t)=>{q(null),M(ec.find(e=>e.id!==t)?.id||""),y(w),_.toast.success("revoked"===a.disposition?e("models.credentialRevoked"):e("models.credentialDeleted")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),eN=()=>({name:P.name.trim(),modelId:P.modelId.trim(),capabilities:function(e,a){let t=[];for(let i of[...e,...function(e){let a=new Set;for(let t of e.split(",")){let e=t.trim();e&&a.add(e)}return[...a]}(a)])i&&!t.includes(i)&&t.push(i);return t}(P.capabilities,P.customCapabilities),supportEfforts:P.supportEfforts}),eC=(0,s.useMutation)({mutationFn:()=>(0,b.createProviderModel)(h,{...eN(),...P.contextWindow.trim()?{contextWindow:Number(P.contextWindow.trim())}:{},...P.defaultEffort?{defaultEffort:P.defaultEffort}:{}}),onSuccess:async a=>{S(k),B(a.model.id),Y(!1),_.toast.success(e("models.modelProfileSaved")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ew=(0,s.useMutation)({mutationFn:()=>{if(!A)throw Error(e("models.modelRequired"));return(0,b.updateProviderModel)(h,A,{...eN(),contextWindow:P.contextWindow.trim()?Number(P.contextWindow.trim()):null,defaultEffort:P.defaultEffort||null})},onSuccess:async a=>{B(a.model.id),Y(!1),_.toast.success(e("models.updated")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),ek=(0,s.useMutation)({mutationFn:e=>(0,b.deleteProviderModel)(h,e),onSuccess:async(a,t)=>{q(null);let i=ed.find(e=>e.id!==t)?.id||"";B(i),S(i?P:k),_.toast.success(e("models.deleted")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),eP=(0,s.useMutation)({mutationFn:e=>(0,b.setDefaultProviderModel)(h,e),onSuccess:async a=>{B(a.model.id),_.toast.success(e("models.defaultUpdated")),await eM()},onError:a=>_.toast.error(eU(a,e("models.failedLoad")))}),eS=ev.isPending||ek.isPending||ey.isPending,eA=ec.find(e=>"active"===e.status),eB=(0,n.useQuery)({queryKey:["provider-balance",h,eA?.id??""],queryFn:()=>(0,b.checkProviderBalance)(h,eA?{credentialId:eA.id}:{}),enabled:!!eo&&(eo?.authType==="none"||!!eA),refetchInterval:e=>e.state.data?.supported!==!1&&6e4,retry:!1}),eT=(0,s.useMutation)({mutationFn:()=>{if(!eo)throw Error(e("models.providerRequired"));return(0,b.syncProviderModels)(eo.id,{credentialId:"none"===eo.authType?void 0:eA?.id})},onSuccess:async a=>{let t=a.createdCount+(a.updatedCount??0);_.toast.success(t>0?e("models.modelSyncComplete"):e("models.modelSyncNoChanges")),await eM()},onError:a=>_.toast.error(eU(a,e("models.modelSyncFailed")))});function eM(){return l.invalidateQueries({queryKey:["model-providers"]})}function eE(){H(null),v(N),D(w),O(!0)}function ez(e){let a,t,i,s;H(e),v((a=e.anthropicBaseUrl??"",t=e.openaiBaseUrl??"",s=(i=e.baseUrl??"")&&!a&&!t?i:"",{name:e.name,providerKey:e.providerKey,apiFormat:e.apiFormat,authType:e.authType,baseUrl:i,anthropicBaseUrl:a||("anthropic"===e.apiFormat?s:""),openaiBaseUrl:t||("anthropic"===e.apiFormat?"":s),supportedAdapters:[...e.supportedAdapters],allowPlaintextHttp:e.allowPlaintextHttp??!1,allowPrivateNetworks:e.allowPrivateNetworks??!1})),D(w),O(!0)}return(0,a.jsxs)("div",{className:"mx-auto max-w-[1400px] space-y-6 p-6",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3 forgebadger-animate-in",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:e("models.title")}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e("models.providerCenterSubtitle")})]}),(0,a.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"brand",onClick:eE,children:[(0,a.jsx)(d.Plus,{className:"size-4"}),e("models.addProvider")]})})]}),et.isError?(0,a.jsx)(m.QueryState,{isLoading:!1,isError:!0,isEmpty:!1,onRetry:()=>void et.refetch(),empty:null}):(0,a.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[300px_minmax(0,1fr)]",children:[(0,a.jsx)("div",{className:"min-w-0 space-y-6",children:(0,a.jsx)(eg,{providers:er,providerCount:ei.length,modelCounts:eu,queryText:U,selectedProviderId:h,isLoading:et.isLoading,onQueryTextChange:E,onSelectProvider:ea,onEditProvider:e=>{let a=ei.find(a=>a.id===e);a&&ez(a)},t:e})}),(0,a.jsx)("div",{className:"min-w-0",children:eo?(0,a.jsx)(eF,{provider:eo,isSyncing:eT.isPending,syncDisabled:"none"!==eo.authType&&!eA,isDeletingProvider:ev.isPending,onEditProvider:()=>ez(eo),balance:eB.data??null,balanceError:eB.isError?eB.error instanceof Error?eB.error.message:e("models.balanceCheckFailed"):null,isCheckingBalance:eB.isFetching,onSync:()=>eT.mutate(),onCheckBalance:()=>void eB.refetch(),onDeleteProvider:()=>{q({kind:"provider",providerId:eo.id,name:eo.name})},onApplyToCli:e=>W({open:!0,adapter:e}),onViewCliConfig:e=>G({open:!0,adapter:e}),modelsTab:{models:ed,selectedModelId:A,modelForm:P,dialogOpen:X,isSaving:eC.isPending||ew.isPending,isSettingDefault:eP.isPending,isDeleting:ek.isPending,onModelFormChange:S,onDialogOpenChange:Y,onNewModel:function(){B(""),S(k),Y(!0)},onEditModel:function(e){B(e),Y(!0)},onSetDefault:e=>eP.mutate(e),onDeleteModel:e=>{q({kind:"model",modelId:e,name:ed.find(a=>a.id===e)?.name??e})},onSubmitModel:function(e){e.preventDefault(),A?ew.mutate():eC.mutate()}},credentialTab:{credentials:ec,selectedCredentialId:F,credentialForm:j,rotateDialogOpen:J,isSaving:eb.isPending,isRotating:ej.isPending,isDeleting:ey.isPending,onCredentialFormChange:y,onRotateDialogOpenChange:ee,onSelectCredential:M,onSubmitCredential:function(e){e.preventDefault(),eb.mutate()},onOpenRotate:function(e){M(e),y(e=>({...e,plaintextSecret:""})),ee(!0)},onConfirmRotate:()=>ej.mutate(),onDeleteCredential:e=>{q({kind:"credential",credentialId:e,name:ec.find(a=>a.id===e)?.label??e})}},t:e}):0===ei.length?(0,a.jsxs)("div",{className:"flex min-h-[420px] flex-col items-center justify-center gap-4 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-12 text-center forgebadger-animate-in",children:[(0,a.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,a.jsx)(o,{className:"size-5"})}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("div",{className:"text-sm font-medium",children:e("models.emptyWorkspaceTitle")}),(0,a.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:e("models.emptyProviders")})]}),(0,a.jsxs)(c.Button,{type:"button",size:"sm",variant:"brand",onClick:eE,children:[(0,a.jsx)(d.Plus,{className:"size-4"}),e("models.addProvider")]})]}):(0,a.jsxs)("div",{className:"flex min-h-[280px] flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border/70 bg-card/50 px-6 py-10 text-center forgebadger-animate-in",children:[(0,a.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-muted text-muted-foreground",children:(0,a.jsx)(o,{className:"size-5"})}),(0,a.jsx)("p",{className:"max-w-sm text-sm text-muted-foreground",children:e("models.noProviderSelected")})]})})]}),(0,a.jsx)(el,{open:V.open,adapter:V.adapter,onOpenChange:e=>G(a=>({...a,open:e}))}),(0,a.jsx)(I,{open:K,customProvider:f,setupCredential:z,isCreating:eh.isPending||ef.isPending,existing:$??void 0,onOpenChange:function(e){!e&&(eh.isPending||ef.isPending)||O(e)},onCustomProviderChange:v,onSetupCredentialChange:D,onSubmit:function(e){e.preventDefault(),$?ef.mutate():eh.mutate()},t:e}),(0,a.jsx)(ex,{target:L,isDeleting:eS,onOpenChange:e=>{e||eS||q(null)},onConfirm:function(){L&&("provider"===L.kind?ev.mutate(L.providerId):"model"===L.kind?ek.mutate(L.modelId):ey.mutate(L.credentialId))},t:e}),eo?(0,a.jsx)(Z,{provider:eo,models:ed,credentials:ec,open:Q.open,initialAdapter:Q.adapter,onOpenChange:e=>W(a=>({...a,open:e}))}):null]})}],35267)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7329,e=>{"use strict";let t=(0,e.i(65174).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],7329)},62918,e=>{"use strict";var t=e.i(66499),s=e.i(94237),a=e.i(82909),i=e.i(65458);let n=(0,s.cva)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:s="default",asChild:l=!1,...r}){let c=l?a.Slot.Root:"span";return(0,t.jsx)(c,{"data-slot":"badge","data-variant":s,className:(0,i.cn)(n({variant:s}),e),...r})}])},88215,e=>{"use strict";let t=(0,e.i(65174).default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["default",0,t])},25284,e=>{"use strict";var t=e.i(87014);let s=Object.assign({},t.toast,{error:(e,s)=>t.toast.error(e,{duration:6e3,...s})});e.s(["toast",0,s])},17114,e=>{"use strict";var t=e.i(66499),s=e.i(47849),a=e.i(60218),i=e.i(12603),n=e.i(35887);e.s(["QueryState",0,function({isLoading:e,isError:l,isEmpty:r,onRetry:c,loading:d,empty:o,error:m,children:u}){let{t:p}=(0,n.useLanguage)();return e?void 0!==d?(0,t.jsx)(t.Fragment,{children:d}):(0,t.jsx)(i.Card,{className:"forgebadger-animate-in",children:(0,t.jsx)(i.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:p("common.loading")})}):l?void 0!==m?(0,t.jsx)(t.Fragment,{children:m}):(0,t.jsx)(i.Card,{className:"forgebadger-animate-in",children:(0,t.jsxs)(i.CardContent,{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[(0,t.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-destructive/10 text-destructive",children:(0,t.jsx)(s.AlertTriangle,{className:"size-5"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:p("common.loadFailedTitle")}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:p("common.loadFailedDescription")})]}),c?(0,t.jsx)(a.Button,{type:"button",size:"sm",variant:"outline",onClick:c,children:p("common.retry")}):null]})}):r?(0,t.jsx)(t.Fragment,{children:o}):(0,t.jsx)(t.Fragment,{children:u})}])},81314,e=>{"use strict";let t=(0,e.i(65174).default)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);e.s(["Play",0,t],81314)},31483,e=>{"use strict";var t=e.i(88215);e.s(["ChevronDown",()=>t.default])},540,e=>{"use strict";let t=(0,e.i(65174).default)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],540)},55314,e=>{"use strict";let t=(0,e.i(65174).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],55314)},29685,e=>{"use strict";let t=(0,e.i(65174).default)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);e.s(["Download",0,t],29685)},57536,e=>{"use strict";let t=(0,e.i(65174).default)("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",0,t],57536)},12603,e=>{"use strict";var t=e.i(66499),s=e.i(65458);e.s(["Card",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,s.cn)("flex flex-col gap-6 rounded-lg border bg-card py-6 text-card-foreground shadow-sm",e),...a})},"CardContent",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,s.cn)("px-6",e),...a})},"CardDescription",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,s.cn)("text-sm text-muted-foreground",e),...a})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,s.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,s.cn)("leading-none font-semibold",e),...a})}])},47849,e=>{"use strict";var t=e.i(66936);e.s(["AlertTriangle",()=>t.default])},34487,e=>{"use strict";let t=(0,e.i(65174).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],34487)},57793,e=>{"use strict";var t=e.i(66499),s=e.i(47849),a=e.i(60218),i=e.i(9988),n=e.i(35887);e.s(["ConfirmDialog",0,function({open:e,title:l,description:r,confirmLabel:c,destructive:d=!1,pending:o=!1,onOpenChange:m,onConfirm:u}){let{t:p}=(0,n.useLanguage)();return(0,t.jsx)(i.Dialog,{open:e,onOpenChange:e=>{e||o||m(!1)},children:(0,t.jsxs)(i.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsxs)(i.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(s.AlertTriangle,{className:d?"size-5 shrink-0 text-destructive":"size-5 shrink-0 text-muted-foreground"}),l]}),(0,t.jsx)(i.DialogDescription,{children:r})]}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(a.Button,{type:"button",variant:"outline",disabled:o,onClick:()=>m(!1),children:p("common.cancel")}),(0,t.jsx)(a.Button,{type:"button",variant:d?"destructive":"default",disabled:o,onClick:u,children:c??p("common.confirm")})]})]})})}])},17854,e=>{"use strict";var t=e.i(66499),s=e.i(79923),a=e.i(80939),i=s.forwardRef((e,s)=>(0,t.jsx)(a.Primitive.label,{...e,ref:s,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label",e.s(["Label",0,i,"Root",0,i],37587);var n=e.i(37587),n=n,l=e.i(65458);e.s(["Label",0,function({className:e,...s}){return(0,t.jsx)(n.Root,{"data-slot":"label",className:(0,l.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...s})}],17854)},80078,e=>{"use strict";let t=(0,e.i(65174).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],80078)},35808,e=>{"use strict";let t=(0,e.i(65174).default)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],35808)},79447,e=>{"use strict";let t=(0,e.i(65174).default)("FileCode2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);e.s(["FileCode2",0,t],79447)},69661,e=>{"use strict";let t=["private","shared","admin"];function s(e){return t.includes(e)?e:"private"}e.s(["filterByVisibility",0,function(e,t){return"all"===t?e:e.filter(e=>s(e.visibility)===t)},"normalizeVisibility",0,s,"visibilityDescriptionKey",0,function(e){return`visibility.${e}Description`},"visibilityLabelKey",0,function(e){return`visibility.${e}`},"visibilityOptions",0,t])},30267,e=>{"use strict";var t=e.i(66499),s=e.i(79923),a=e.i(85426),i=e.i(78717),n=e.i(6270),l=e.i(31483),r=e.i(540),c=e.i(29685),d=e.i(79447),o=e.i(57536),m=e.i(65174);let u=(0,m.default)("PackagePlus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M19 13v6",key:"85cyf1"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]);var p=e.i(7329),x=e.i(55314),h=e.i(35808),g=e.i(34487);let y=(0,m.default)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);var v=e.i(62918),f=e.i(60218),j=e.i(12603),b=e.i(9988),N=e.i(81622),C=e.i(17854),k=e.i(17114),w=e.i(57793),S=e.i(25284),P=e.i(47721),F=e.i(69661),D=e.i(35887),T=e.i(81314),I=e.i(80078);let B={compliant:"border-emerald-500/40 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",stale:"border-amber-500/40 bg-amber-500/10 text-amber-600 dark:text-amber-400",missing:"border-destructive/40 bg-destructive/10 text-destructive"},z={applied:"templates.syncOutcomeApplied",rolled_back:"templates.syncOutcomeRolledBack",rollback_failed:"templates.syncOutcomeRollbackFailed"};function M({templateId:e}){let{t:l}=(0,D.useLanguage)(),r=(0,n.useQueryClient)(),[c,d]=(0,s.useState)(null),[o,m]=(0,s.useState)(new Set),[u,p]=(0,s.useState)(!1),{data:x,isLoading:h}=(0,i.useQuery)({queryKey:["template-usage",e],queryFn:()=>(0,P.getTemplateUsage)(e)}),g=(0,a.useMutation)({mutationFn:()=>(0,P.previewTemplateSync)(e),onSuccess:e=>{d(e),m(new Set)}}),y=(0,a.useMutation)({mutationFn:()=>{if(!c)throw Error(l("templates.syncPreviewFailed"));let t={};for(let e of c.projects)o.has(e.projectId)&&0!==e.summary.requiresDecision.length&&(t[e.projectId]=Object.fromEntries(e.summary.requiresDecision.map(e=>[e,"overwrite"])));return(0,P.applyTemplateSync)(e,{projectIds:c.projects.map(e=>e.projectId),decisions:t})},onSuccess:()=>{d(null),m(new Set),r.invalidateQueries({queryKey:["template-usage",e]})}}),b=(0,s.useMemo)(()=>x?x.projects.reduce((e,t)=>(e[t.configStatus]+=1,e),{compliant:0,stale:0,missing:0}):{compliant:0,stale:0,missing:0},[x]),N={compliant:l("templates.syncStatusCompliant"),stale:l("templates.syncStatusStale"),missing:l("templates.syncStatusMissing")};return(0,t.jsxs)(j.Card,{className:"border-dashed",children:[(0,t.jsxs)(j.CardHeader,{children:[(0,t.jsxs)(j.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(I.RefreshCw,{className:"size-4"}),l("templates.syncTitle"),x&&0===x.usageCount&&(0,t.jsx)(v.Badge,{variant:"outline",className:"text-xs font-normal",children:l("templates.syncSeedOnly")})]}),(0,t.jsx)(j.CardDescription,{children:h||!x?l("templates.syncLoadingUsage"):l("templates.syncUsageCount").replace("{count}",String(x.usageCount))})]}),(0,t.jsxs)(j.CardContent,{className:"space-y-3",children:[x&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs",children:[(0,t.jsx)(v.Badge,{variant:"secondary",children:l("templates.syncCountCompliant").replace("{count}",String(b.compliant))}),(0,t.jsx)(v.Badge,{variant:"secondary",children:l("templates.syncCountStale").replace("{count}",String(b.stale))}),(0,t.jsx)(v.Badge,{variant:"secondary",children:l("templates.syncCountMissing").replace("{count}",String(b.missing))})]}),(0,t.jsx)("div",{className:"space-y-2",children:x&&0!==x.projects.length?x.projects.map(e=>(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:e.name}),(0,t.jsx)("div",{className:"truncate font-mono text-xs text-muted-foreground",children:e.path})]}),(0,t.jsx)(v.Badge,{className:B[e.configStatus],children:N[e.configStatus]})]},e.id)):(0,t.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:l("templates.syncEmpty")})}),c&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border bg-background p-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:l("templates.syncPreview")}),c.projects.map(e=>{let s=e.summary.requiresDecision.length>0;return(0,t.jsxs)("div",{className:"rounded-md border px-3 py-2 text-sm",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.projectName}),s&&(0,t.jsxs)("label",{className:"flex shrink-0 items-center gap-1.5 text-xs",children:[(0,t.jsx)("input",{type:"checkbox",checked:o.has(e.projectId),onChange:()=>{var t;return t=e.projectId,void m(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})}}),l("templates.syncOverwriteModified")]})]}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[l("templates.syncFilesToCreate").replace("{count}",String(e.summary.missingFiles.length)),e.summary.requiresDecision.length>0&&(0,t.jsxs)(t.Fragment,{children:[" · ",l("templates.syncFilesNeedDecision").replace("{count}",String(e.summary.requiresDecision.length))]}),e.summary.modifiedFiles.length>0&&(0,t.jsx)("span",{className:"ml-2 font-mono",children:e.summary.modifiedFiles.join(", ")})]})]},e.projectId)}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l("templates.syncOverwriteHint")})]}),g.isError&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:g.error instanceof Error?g.error.message:l("templates.syncPreviewFailed")}),y.isError&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:y.error instanceof Error?y.error.message:l("templates.syncApplyFailed")}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(f.Button,{type:"button",variant:"outline",size:"sm",disabled:!x||0===x.projects.length||g.isPending,onClick:()=>g.mutate(),children:g.isPending?l("templates.syncPreviewing"):l("templates.syncPreviewAction")}),(0,t.jsxs)(f.Button,{type:"button",size:"sm",disabled:!c||0===c.projects.length||y.isPending,onClick:()=>p(!0),children:[(0,t.jsx)(T.Play,{className:"size-4"}),y.isPending?l("templates.syncApplying"):l("templates.syncApply").replace("{count}",String(c?.projects.length??0))]})]}),y.data&&(0,t.jsx)("div",{className:"space-y-1.5 text-xs",children:y.data.projects.map(e=>(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"truncate",children:e.projectName}),e.error?(0,t.jsx)("span",{className:"shrink-0 text-destructive",children:e.error}):(0,t.jsxs)("span",{className:"flex min-w-0 shrink-0 items-center gap-2 text-muted-foreground",children:[(0,t.jsxs)("span",{children:[e.result?l(z[e.result.outcome]):""," ","·"," ",l("templates.syncResultLine").replace("{written}",String(e.result?.writtenFiles.length??0)).replace("{skipped}",String(e.result?.skippedFiles.length??0))]}),e.result?.backupPath?(0,t.jsxs)("span",{className:"max-w-48 truncate font-mono",title:e.result.backupPath,children:[l("templates.syncBackup"),": ",e.result.backupPath]}):null]})]},e.projectId))})]}),(0,t.jsx)(w.ConfirmDialog,{open:u,title:l("templates.syncApplyConfirmTitle"),description:l("templates.syncApplyConfirmDescription").replace("{count}",String(c?.projects.length??0)),confirmLabel:l("templates.syncApplyConfirm"),pending:y.isPending,onOpenChange:p,onConfirm:()=>{p(!1),y.mutate()}})]})}let q="CLAUDE.md",L="# {{projectName}}\n\nProject root: `{{projectRoot}}`\n\nFollow the repository instructions and keep changes scoped.\n";class K extends Error{constructor(e){super(e),this.name="TemplateFileSaveError"}}e.s(["default",0,function(){let{t:e}=(0,D.useLanguage)(),m=(0,D.useUiLocale)(),T=(0,n.useQueryClient)(),[I,B]=(0,s.useState)(null),[z,E]=(0,s.useState)(""),[O,R]=(0,s.useState)("private"),[Q,V]=(0,s.useState)(""),[H,A]=(0,s.useState)(""),[U,$]=(0,s.useState)(""),[G,_]=(0,s.useState)("private"),[J,W]=(0,s.useState)(q),[X,Y]=(0,s.useState)(L),[Z,ee]=(0,s.useState)(null),[et,es]=(0,s.useState)(null),ea=(0,s.useRef)(0),ei=(0,s.useRef)({templateId:I,filePath:et,epoch:0});ei.current={templateId:I,filePath:et,epoch:ea.current};let[en,el]=(0,s.useState)(null),[er,ec]=(0,s.useState)(null),[ed,eo]=(0,s.useState)("all"),[em,eu]=(0,s.useState)(""),[ep,ex]=(0,s.useState)(!1),[eh,eg]=(0,s.useState)(!1),[ey,ev]=(0,s.useState)(""),[ef,ej]=(0,s.useState)(""),[eb,eN]=(0,s.useState)(""),[eC,ek]=(0,s.useState)(""),[ew,eS]=(0,s.useState)(null),{data:eP,isLoading:eF,isError:eD,refetch:eT}=(0,i.useQuery)({queryKey:["templates"],queryFn:P.listTemplates}),[eI,eB]=(0,s.useState)(null),[ez,eM]=(0,s.useState)(null),eq=eP?.templates??[],eL=(0,F.filterByVisibility)(eq,ed),eK=eL.filter(e=>(e.usageCount??0)>0),eE=eL.filter(e=>(e.usageCount??0)===0);function eO(s){return(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between rounded-md border px-3 py-2 text-left text-sm hover:bg-accent",onClick:()=>(function(e){if(e!==I){if(!e1())return void e2(e);ec(e)}})(s.id),children:[(0,t.jsx)("span",{className:"font-medium",children:s.name}),(0,t.jsxs)("span",{className:"flex flex-wrap justify-end gap-2",children:[(s.isBuiltin||s.builtin)&&(0,t.jsx)(v.Badge,{variant:"secondary",children:e("templates.builtin")}),(0,t.jsx)(v.Badge,{variant:"outline",children:e((0,F.visibilityLabelKey)((0,F.normalizeVisibility)(s.visibility)))})]})]},s.id)}let{data:eR}=(0,i.useQuery)({queryKey:["catalog-items"],queryFn:P.listCatalogItems}),eQ=(eR?.items??[]).filter(e=>"template"===e.itemType),eV=(0,s.useMemo)(()=>eq.find(e=>e.id===I),[I,eq]),eH=!!eV?.isBuiltin||!!eV?.builtin,{data:eA}=(0,i.useQuery)({queryKey:["template",I],queryFn:()=>(0,P.getTemplate)(I),enabled:!!I}),{data:eU}=(0,i.useQuery)({queryKey:["template",I,"versions"],queryFn:()=>(0,P.listTemplateVersions)(I),enabled:!!I&&!eH}),e$=(0,a.useMutation)({mutationFn:()=>(0,P.createTemplate)({name:z.trim(),visibility:O,files:[{filePath:q,content:L,fileType:"markdown"}]}),onSuccess:async({template:t})=>{eS(e("templates.created")),E(""),R("private"),B(t.id),ee(null),es(null),el(null),A(t.name),$(t.description??""),_((0,F.normalizeVisibility)(t.visibility)),await T.invalidateQueries({queryKey:["templates"]})}}),eG=(0,a.useMutation)({mutationFn:e=>(0,P.cloneTemplate)(e,Q.trim()||`${eV?.name??"Template"} Copy`),onSuccess:async({template:t})=>{eS(e("templates.cloned")),V(""),B(t.id),ee(null),es(null),el(null),A(t.name),$(t.description??""),_((0,F.normalizeVisibility)(t.visibility)),await T.invalidateQueries({queryKey:["templates"]})}}),e_=(0,a.useMutation)({mutationFn:async()=>{if(!I)throw Error("Template is required");let e={templateId:I,filePath:J.trim(),content:X,editorEpoch:ea.current};await (0,P.updateTemplate)(I,{name:H.trim(),description:U.trim(),visibility:G});try{await (0,P.updateTemplateFile)(e.templateId,e.filePath,e.content)}catch(e){throw new K(e instanceof Error?e.message:String(e))}return e},onSuccess:async t=>{eS(e("templates.saved")),ei.current.templateId===t.templateId&&ea.current===t.editorEpoch&&(ee(t.content),es(t.filePath)),await T.invalidateQueries({queryKey:["templates"]}),await T.invalidateQueries({queryKey:["template",t.templateId]});let s=ei.current;if(s.templateId!==t.templateId||s.epoch===t.editorEpoch)return;let a=await T.fetchQuery({queryKey:["template",t.templateId],queryFn:()=>(0,P.getTemplate)(t.templateId),staleTime:0});if(ei.current.templateId!==s.templateId||ea.current!==s.epoch)return;let i=a.template.files?.find(e=>e.filePath===s.filePath);i&&ee(i.content)},onError:t=>{t instanceof K&&S.toast.error(e("templates.saveFileFailed"))}}),eJ=(0,a.useMutation)({mutationFn:P.deleteTemplate,onSuccess:async()=>{eS(e("templates.deleted")),B(null),await T.invalidateQueries({queryKey:["templates"]})}}),eW=(0,a.useMutation)({mutationFn:e=>(0,P.exportTemplate)(e),onSuccess:({templatePackage:t})=>{eu(JSON.stringify(t,null,2)),eS(e("templates.exported"))}}),eX=(0,a.useMutation)({mutationFn:()=>{let t;try{t=JSON.parse(em)}catch{throw Error(e("templates.importInvalidJson"))}return(0,P.importTemplate)(t)},onSuccess:async({template:t})=>{eS(e("templates.imported")),B(t.id),ee(null),es(null),el(null),A(t.name),$(t.description??""),_((0,F.normalizeVisibility)(t.visibility)),eu(""),await T.invalidateQueries({queryKey:["templates"]})}}),eY=(0,a.useMutation)({mutationFn:P.installCatalogTemplate,onSuccess:async({template:t})=>{eS(e("templates.catalogInstalled")),B(t.id),ee(null),es(null),el(null),A(t.name),$(t.description??""),_((0,F.normalizeVisibility)(t.visibility)),await T.invalidateQueries({queryKey:["templates"]})}}),eZ=(0,a.useMutation)({mutationFn:()=>{let e={url:ey.trim()},t=ef.trim();t&&(e.branch=t);let s=eb.trim();s&&(e.name=s);let a=eC.trim();return a&&(e.description=a),(0,P.importTemplateFromGit)(e)},onSuccess:async t=>{eS(e("templates.gitImported")),ev(""),ej(""),eN(""),ek(""),B(t.templateId),ee(null),es(null),el(null),A(t.name),$(""),_("private"),await T.invalidateQueries({queryKey:["templates"]})}}),e0=(0,a.useMutation)({mutationFn:({templateId:e,versionId:t})=>(0,P.restoreTemplateVersion)(e,t),onSuccess:async({template:t})=>{let s=t.files?.[0];eS(e("templates.restored")),A(t.name),$(t.description??""),_((0,F.normalizeVisibility)(t.visibility)),s&&(ea.current++,W(s.filePath),Y(s.content),ee(s.content),es(s.filePath)),await T.invalidateQueries({queryKey:["templates"]}),await T.invalidateQueries({queryKey:["template",I]}),await T.invalidateQueries({queryKey:["template",I,"versions"]})}});function e1(){return!!eV&&(X!==Z||J.trim()!==et||H.trim()!==(eV.name??"")||U.trim()!==(eV.description??"")||G!==(0,F.normalizeVisibility)(eV.visibility))}function e2(e){ea.current++;let t=eq.find(t=>t.id===e);B(e),A(t?.name??""),$(t?.description??""),_((0,F.normalizeVisibility)(t?.visibility)),W(q),Y(""),ee(null),es(null),el(null),eu(""),eS(null)}(0,s.useEffect)(()=>{if(!I||!eA||en===I)return;ea.current++;let e=eA.template.files?.[0];W(e?.filePath??q),Y(e?.content??""),ee(e?e.content:""),es(e?.filePath??q),el(I)},[I,eA,en]);let e4=eH||e_.isPending||null===Z||!e1(),e3=e$.error??eG.error??(e_.error instanceof K?null:e_.error)??eJ.error??eW.error??eX.error??eY.error??eZ.error??e0.error;return(0,t.jsxs)("div",{className:"space-y-6 p-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:e("templates.title")}),(0,t.jsx)("p",{className:"mt-1 text-muted-foreground",children:e("templates.subtitle")})]}),ew&&(0,t.jsx)("div",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700 dark:text-emerald-300",children:ew}),e3 instanceof Error&&(0,t.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e3.message}),(0,t.jsxs)("div",{className:"grid gap-4 lg:grid-cols-[340px_minmax(0,1fr)]",children:[(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(j.Card,{children:[(0,t.jsx)(j.CardHeader,{children:(0,t.jsxs)(j.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(p.Plus,{className:"size-4"}),e("templates.createCustom")]})}),(0,t.jsx)(j.CardContent,{children:(0,t.jsxs)("form",{className:"space-y-3",onSubmit:e=>{e.preventDefault(),e$.mutate()},children:[(0,t.jsx)(C.Label,{htmlFor:"new-template-name",children:e("common.name")}),(0,t.jsx)(N.Input,{id:"new-template-name",value:z,onChange:e=>E(e.target.value),required:!0}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{children:e("common.visibility")}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:F.visibilityOptions.map(s=>(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:O===s?"default":"outline",onClick:()=>R(s),children:e((0,F.visibilityLabelKey)(s))},s))}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e((0,F.visibilityDescriptionKey)(O))})]}),(0,t.jsxs)(f.Button,{type:"submit",className:"w-full",disabled:e$.isPending,children:[(0,t.jsx)(p.Plus,{className:"size-4"}),e$.isPending?e("templates.creating"):e("templates.createCustom")]})]})})]}),(0,t.jsxs)(j.Card,{children:[(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-6 pt-6 text-left outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50",onClick:()=>ex(e=>!e),"aria-expanded":ep,"aria-label":e("templates.catalogInstall"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(u,{className:"size-4"}),(0,t.jsx)("span",{className:"text-base font-semibold",children:e("templates.catalogInstall")})]}),(0,t.jsx)(l.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${ep?"rotate-180":""}`})]}),(0,t.jsxs)(j.CardContent,{className:"space-y-2 pt-4",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("templates.catalogInstallDescription")}),ep&&(0===eQ.length?(0,t.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:e("templates.catalogEmpty")}):eQ.map(s=>(0,t.jsxs)("div",{className:"rounded-md border bg-background p-3",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium",children:s.name}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[s.sourceId," · ",s.version??"1.0.0"]})]}),(0,t.jsxs)(f.Button,{type:"button",size:"sm",variant:"outline",disabled:eY.isPending,onClick:()=>eY.mutate(s.id),children:[(0,t.jsx)(u,{className:"size-3"}),eY.isPending?e("templates.installing"):e("templates.install")]})]}),s.description&&(0,t.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:s.description})]},s.id)))]})]}),(0,t.jsxs)(j.Card,{children:[(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between gap-2 px-6 pt-6 text-left outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50",onClick:()=>eg(e=>!e),"aria-expanded":eh,"aria-label":e("templates.gitImport"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.GitBranch,{className:"size-4"}),(0,t.jsx)("span",{className:"text-base font-semibold",children:e("templates.gitImport")})]}),(0,t.jsx)(l.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${eh?"rotate-180":""}`})]}),(0,t.jsxs)(j.CardContent,{className:"space-y-2 pt-4",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("templates.gitImportDescription")}),eh&&(0,t.jsxs)("form",{className:"space-y-3",onSubmit:e=>{e.preventDefault(),eZ.mutate()},children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"git-import-url",children:e("templates.gitImportUrl")}),(0,t.jsx)(N.Input,{id:"git-import-url",value:ey,onChange:e=>ev(e.target.value),placeholder:"https://github.com/your-org/ai-cli-config",required:!0})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"git-import-branch",children:e("templates.gitImportBranch")}),(0,t.jsx)(N.Input,{id:"git-import-branch",value:ef,onChange:e=>ej(e.target.value),placeholder:"main"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"git-import-name",children:e("common.name")}),(0,t.jsx)(N.Input,{id:"git-import-name",value:eb,onChange:e=>eN(e.target.value)})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"git-import-description",children:e("common.description")}),(0,t.jsx)(N.Input,{id:"git-import-description",value:eC,onChange:e=>ek(e.target.value)})]}),(0,t.jsxs)(f.Button,{type:"submit",className:"w-full",disabled:!ey.trim()||eZ.isPending,children:[(0,t.jsx)(o.GitBranch,{className:"size-4"}),eZ.isPending?e("templates.gitImporting"):e("templates.gitImport")]})]})]})]}),(0,t.jsxs)(j.Card,{children:[(0,t.jsxs)(j.CardHeader,{children:[(0,t.jsx)(j.CardTitle,{className:"text-base",children:e("templates.available")}),(0,t.jsx)(j.CardDescription,{children:e("templates.availableDescription")})]}),(0,t.jsxs)(j.CardContent,{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 pb-2",children:[(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:"all"===ed?"default":"outline",onClick:()=>eo("all"),children:e("visibility.all")}),F.visibilityOptions.map(s=>(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:ed===s?"default":"outline",onClick:()=>eo(s),children:e((0,F.visibilityLabelKey)(s))},s))]}),(0,t.jsx)(k.QueryState,{isLoading:eF,isError:eD,isEmpty:0===eL.length,onRetry:()=>void eT(),loading:(0,t.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:e("templates.loading")}),empty:(0,t.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:e("templates.emptyTitle")}),children:(0,t.jsxs)("div",{className:"space-y-3",children:[eK.length>0&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e("templates.governedTitle")}),(0,t.jsx)(v.Badge,{variant:"secondary",children:eK.length})]}),eK.map(e=>eO(e))]}),eE.length>0&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e("templates.seedTitle")}),(0,t.jsx)(v.Badge,{variant:"secondary",children:eE.length})]}),eE.map(e=>eO(e))]})]})})]})]}),(0,t.jsxs)(j.Card,{children:[(0,t.jsxs)(j.CardHeader,{children:[(0,t.jsx)(j.CardTitle,{className:"text-base",children:e("templates.importExport")}),(0,t.jsx)(j.CardDescription,{children:e("templates.importExportDescription")})]}),(0,t.jsxs)(j.CardContent,{className:"space-y-3",children:[(0,t.jsx)(C.Label,{htmlFor:"template-package",children:e("templates.packageJson")}),(0,t.jsx)("textarea",{id:"template-package",className:"min-h-40 w-full rounded-md border border-input bg-background p-3 font-mono text-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:em,onChange:e=>eu(e.target.value)}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)(f.Button,{type:"button",variant:"outline",disabled:!I||eW.isPending,onClick:()=>I&&eW.mutate(I),children:[(0,t.jsx)(c.Download,{className:"size-4"}),e("templates.export")]}),(0,t.jsxs)(f.Button,{type:"button",variant:"outline",disabled:!em.trim(),onClick:function(){let e=em.trim();if(!e)return;let t=new Blob([e],{type:"application/json"}),s=URL.createObjectURL(t),a=document.createElement("a");a.href=s,a.download=`${eV?.name??"template"}.json`,a.click(),URL.revokeObjectURL(s)},children:[(0,t.jsx)(c.Download,{className:"size-4"}),e("templates.download")]}),(0,t.jsxs)(f.Button,{type:"button",className:"col-span-2",disabled:!em.trim()||eX.isPending,onClick:()=>eX.mutate(),children:[(0,t.jsx)(y,{className:"size-4"}),e("templates.import")]})]})]})]})]}),(0,t.jsxs)(j.Card,{children:[(0,t.jsx)(j.CardHeader,{children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(j.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(d.FileCode2,{className:"size-5"}),eV?.name??e("templates.selectTemplate")]}),(0,t.jsx)(j.CardDescription,{children:e("templates.editorDescription")})]}),eV&&(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(N.Input,{className:"h-8 w-48",value:Q,onChange:e=>V(e.target.value),placeholder:e("templates.cloneName")}),(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:()=>eG.mutate(eV.id),disabled:eG.isPending,children:[(0,t.jsx)(r.Copy,{className:"size-4"}),e("templates.clone")]})]})]})}),(0,t.jsx)(j.CardContent,{children:eV?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(M,{templateId:eV.id}),(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"template-name",children:e("common.name")}),(0,t.jsx)(N.Input,{id:"template-name",value:H,onChange:e=>A(e.target.value),disabled:eH})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"template-description",children:e("common.description")}),(0,t.jsx)(N.Input,{id:"template-description",value:U,onChange:e=>$(e.target.value),disabled:eH})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(C.Label,{children:e("common.visibility")}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:F.visibilityOptions.map(s=>(0,t.jsx)(f.Button,{type:"button",size:"sm",variant:G===s?"default":"outline",disabled:eH,onClick:()=>_(s),children:e((0,F.visibilityLabelKey)(s))},s))}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e((0,F.visibilityDescriptionKey)(G))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,t.jsx)(C.Label,{htmlFor:"template-file",children:e("templates.filePath")}),(0,t.jsx)(N.Input,{id:"template-file",value:J,onChange:e=>W(e.target.value),disabled:eH})]}),(0,t.jsx)(f.Button,{type:"button",variant:"outline",onClick:function(){let e=eA?.template.files?.find(e=>e.filePath===J)??eA?.template.files?.[0];e&&(ea.current++,W(e.filePath),Y(e.content),ee(e.content),es(e.filePath))},children:e("templates.loadFile")})]}),(0,t.jsx)("textarea",{className:"min-h-80 w-full rounded-md border border-input bg-background p-3 font-mono text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:X,onChange:e=>Y(e.target.value),disabled:eH,placeholder:e("templates.fileContent")})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,t.jsxs)(f.Button,{variant:"ghost",className:"text-destructive",disabled:eH||eJ.isPending,onClick:()=>{eV&&eB(eV)},children:[(0,t.jsx)(g.Trash2,{className:"size-4"}),e("common.delete")]}),(0,t.jsxs)(f.Button,{disabled:e4,onClick:()=>e_.mutate(),children:[(0,t.jsx)(h.Save,{className:"size-4"}),e_.isPending?e("templates.saving"):e("templates.save")]})]}),!eH&&(0,t.jsxs)("div",{className:"rounded-md border bg-muted/20 p-3",children:[(0,t.jsx)("h3",{className:"text-sm font-medium",children:e("templates.versionHistory")}),0===(eU?.versions??[]).length?(0,t.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:e("templates.noVersions")}):(0,t.jsx)("div",{className:"mt-3 space-y-2",children:eU?.versions.map(s=>(0,t.jsxs)("div",{className:"rounded-md border bg-background p-2 text-sm",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:s.name}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.Badge,{variant:"outline",children:s.version}),(0,t.jsxs)(f.Button,{type:"button",size:"sm",variant:"outline",disabled:!I||e0.isPending,onClick:()=>{eV&&eM({template:eV,versionId:s.id,version:s.version})},children:[(0,t.jsx)(x.RotateCcw,{className:"size-3"}),e0.isPending?e("templates.restoring"):e("templates.restore")]})]})]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[s.action," · ",new Date(s.createdAt).toLocaleString(m)]})]},s.id))})]})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center text-sm text-muted-foreground",children:[(0,t.jsx)(d.FileCode2,{className:"mb-4 size-10"}),e("templates.selectTemplate")]})})]})]}),(0,t.jsx)(b.Dialog,{open:null!==er,onOpenChange:e=>{e||ec(null)},children:(0,t.jsxs)(b.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(b.DialogHeader,{children:[(0,t.jsx)(b.DialogTitle,{className:"text-base",children:e("templates.discardChangesTitle")}),(0,t.jsx)(b.DialogDescription,{children:e("templates.discardChangesDescription")})]}),(0,t.jsxs)(b.DialogFooter,{children:[(0,t.jsx)(f.Button,{type:"button",variant:"outline",onClick:()=>ec(null),children:e("common.cancel")}),(0,t.jsx)(f.Button,{type:"button",variant:"destructive",onClick:function(){ec(null),er&&e2(er)},children:e("templates.discardChangesConfirm")})]})]})}),(0,t.jsx)(w.ConfirmDialog,{open:null!==eI,destructive:!0,pending:eJ.isPending,title:e("templates.deleteConfirmTitle"),description:eI?[e("templates.deleteConfirmNamed").replace("{name}",eI.name),(eI.usageCount??0)>0?e("templates.deleteInUseWarning").replace("{count}",String(eI.usageCount)):""].filter(Boolean).join(" "):"",confirmLabel:e("common.delete"),onOpenChange:e=>{e||eB(null)},onConfirm:()=>{eI&&eJ.mutate(eI.id),eB(null)}}),(0,t.jsx)(w.ConfirmDialog,{open:null!==ez,pending:e0.isPending,title:e("templates.restoreConfirmTitle"),description:ez?e("templates.restoreConfirmNamed").replace("{name}",ez.template.name).replace("{version}",ez.version):"",onOpenChange:e=>{e||eM(null)},onConfirm:()=>{ez&&e0.mutate({templateId:ez.template.id,versionId:ez.versionId}),eM(null)}})]})}],30267)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12603,e=>{"use strict";var t=e.i(66499),r=e.i(65458);e.s(["Card",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,r.cn)("flex flex-col gap-6 rounded-lg border bg-card py-6 text-card-foreground shadow-sm",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,r.cn)("px-6",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,r.cn)("text-sm text-muted-foreground",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,r.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,r.cn)("leading-none font-semibold",e),...s})}])},47849,e=>{"use strict";var t=e.i(66936);e.s(["AlertTriangle",()=>t.default])},17854,e=>{"use strict";var t=e.i(66499),r=e.i(79923),s=e.i(80939),a=r.forwardRef((e,r)=>(0,t.jsx)(s.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));a.displayName="Label",e.s(["Label",0,a,"Root",0,a],37587);var i=e.i(37587),i=i,n=e.i(65458);e.s(["Label",0,function({className:e,...r}){return(0,t.jsx)(i.Root,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...r})}],17854)},34558,e=>{"use strict";let t=(0,e.i(65174).default)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],34558)},58394,e=>{"use strict";let t=(0,e.i(65174).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],58394)},39840,e=>{"use strict";var t=e.i(29256);e.s(["CheckCircle2",()=>t.default])},73977,e=>{"use strict";let t=(0,e.i(65174).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],73977)},19572,52849,e=>{"use strict";var t=e.i(66499),r=e.i(79923),s=e.i(82909),a=e.i(22004),i=e.i(65458),n=e.i(17854);let o=a.FormProvider,l=r.createContext({}),c=()=>{let e=r.useContext(l),t=r.useContext(d),{getFieldState:s}=(0,a.useFormContext)(),i=(0,a.useFormState)({name:e.name}),n=s(e.name,i);if(!e)throw Error("useFormField should be used within <FormField>");let{id:o}=t;return{id:o,name:e.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...n}},d=r.createContext({});e.s(["Form",0,o,"FormControl",0,function({...e}){let{error:r,formItemId:a,formDescriptionId:i,formMessageId:n}=c();return(0,t.jsx)(s.Slot.Root,{"data-slot":"form-control",id:a,"aria-describedby":r?`${i} ${n}`:`${i}`,"aria-invalid":!!r,...e})},"FormField",0,({...e})=>(0,t.jsx)(l.Provider,{value:{name:e.name},children:(0,t.jsx)(a.Controller,{...e})}),"FormItem",0,function({className:e,...s}){let a=r.useId();return(0,t.jsx)(d.Provider,{value:{id:a},children:(0,t.jsx)("div",{"data-slot":"form-item",className:(0,i.cn)("grid gap-2",e),...s})})},"FormLabel",0,function({className:e,...r}){let{error:s,formItemId:a}=c();return(0,t.jsx)(n.Label,{"data-slot":"form-label","data-error":!!s,className:(0,i.cn)("data-[error=true]:text-destructive",e),htmlFor:a,...r})},"FormMessage",0,function({className:e,...r}){let{error:s,formMessageId:a}=c(),n=s?String(s?.message??""):r.children;return n?(0,t.jsx)("p",{"data-slot":"form-message",id:a,className:(0,i.cn)("text-sm text-destructive",e),...r,children:n}):null}],19572);var m=e.i(78717),u=e.i(46131),p=e.i(35887),x=e.i(47721);let h=["templates"],j="none";e.s(["TemplateSelect",0,function({value:e,onValueChange:r,disabled:s=!1,size:a="default",id:i,ariaLabel:n,className:o}){let{t:l}=(0,p.useLanguage)(),{data:c,isLoading:d}=(0,m.useQuery)({queryKey:h,queryFn:x.listTemplates,staleTime:3e4}),f=c?.templates??[];return(0,t.jsxs)(u.Select,{value:e||j,onValueChange:e=>r(e===j?"":e),disabled:s||d,children:[(0,t.jsx)(u.SelectTrigger,{id:i,"aria-label":n,size:a,className:o,children:(0,t.jsx)(u.SelectValue,{placeholder:l("common.loading")})}),(0,t.jsxs)(u.SelectContent,{children:[(0,t.jsx)(u.SelectItem,{value:j,children:(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:l("templates.noTracking")})}),f.map(e=>(0,t.jsx)(u.SelectItem,{value:e.id,children:(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.name})},e.id))]})]})}],52849)},18635,e=>{"use strict";var t=e.i(66499),r=e.i(86059),s=e.i(85426),a=e.i(75615),i=e.i(22004),n=e.i(32356),o=e.i(34558),l=e.i(39840),c=e.i(73977),d=e.i(47849),m=e.i(58394),u=e.i(79923),p=e.i(60218),x=e.i(81622),h=e.i(19572),j=e.i(12603),f=e.i(52849),b=e.i(47721),g=e.i(35887),v=e.i(65458);let y=n.z.object({path:n.z.string().min(1,"Path is required")}),N=n.z.object({name:n.z.string().min(1,"Name is required")}),C=["path","scan","confirm"];e.s(["default",0,function(){let e=(0,r.useRouter)(),{t:n}=(0,g.useLanguage)(),[F,S]=(0,u.useState)("path"),[k,z]=(0,u.useState)(null),[w,T]=(0,u.useState)(""),[D,P]=(0,u.useState)(!1),[I,L]=(0,u.useState)(!1),[B,M]=(0,u.useState)("");(0,u.useEffect)(()=>{let e=!0;return(0,b.getDesktopCapabilities)().then(t=>{e&&P(t.directoryPickerSupported)}).catch(()=>{e&&P(!1)}),()=>{e=!1}},[]);let R=(0,i.useForm)({resolver:(0,a.zodResolver)(y),defaultValues:{path:""}}),V=(0,i.useForm)({resolver:(0,a.zodResolver)(N),defaultValues:{name:""}}),A=(0,s.useMutation)({mutationFn:b.scanProject,onSuccess:e=>{z(e),T(e.path);let t=e.path.split("/").filter(Boolean).pop()??"";V.setValue("name",t),S("scan")}}),$=(0,s.useMutation)({mutationFn:e=>(0,b.importProject)({path:w,name:e.name,...B?{templateId:B}:{}}),onSuccess:t=>{e.push(`/projects/${t.project.id}`)}});async function q(){if(!I){L(!0);try{let e=await (0,b.selectNativeDirectory)();e.path&&R.setValue("path",e.path,{shouldValidate:!0})}catch{}finally{L(!1)}}}function E(){"scan"===F?(S("path"),z(null)):"confirm"===F&&S("scan")}let H=C.indexOf(F);return(0,t.jsxs)("div",{className:"mx-auto max-w-2xl space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)(p.Button,{variant:"ghost",size:"sm",className:"-ml-2 text-muted-foreground",onClick:()=>e.push("/projects"),children:[(0,t.jsx)(o.ArrowLeft,{className:"size-4"}),n("projects.back")]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:n("projects.importTitle")}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:n("projects.importSubtitle")})]})]}),(0,t.jsx)("div",{className:"forgebadger-animate-in flex items-center gap-1.5",children:C.map((e,r)=>(0,t.jsx)("div",{className:(0,v.cn)("h-1.5 flex-1 rounded-full transition-colors duration-300",r<=H?"bg-brand":"bg-muted")},e))}),(0,t.jsxs)(j.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,t.jsx)(j.CardHeader,{children:(0,t.jsxs)(j.CardTitle,{className:"text-sm font-semibold",children:["path"===F&&n("projects.importStepPath"),"scan"===F&&n("projects.importStepScan"),"confirm"===F&&n("projects.importStepConfirm")]})}),(0,t.jsxs)(j.CardContent,{children:["path"===F&&(0,t.jsx)(h.Form,{...R,children:(0,t.jsxs)("form",{onSubmit:R.handleSubmit(function(e){A.mutate(e.path)}),className:"space-y-4",children:[(0,t.jsx)(h.FormField,{control:R.control,name:"path",render:({field:e})=>(0,t.jsxs)(h.FormItem,{children:[(0,t.jsx)(h.FormLabel,{children:n("projects.directoryPath")}),(0,t.jsx)(h.FormControl,{children:(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(x.Input,{placeholder:"/path/to/existing/project",...e,className:"flex-1"}),D&&(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"icon",className:"shrink-0",title:n("projects.browseDirectory"),"aria-label":n("projects.browseDirectory"),disabled:I,onClick:q,children:(0,t.jsx)(m.FolderOpen,{className:"size-4"})})]})}),(0,t.jsx)(h.FormMessage,{})]})}),A.isError&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:A.error instanceof Error?A.error.message:n("projects.failedScan")}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-border/70 pt-4",children:[(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>e.push("/projects"),children:n("common.cancel")}),(0,t.jsx)(p.Button,{type:"submit",size:"sm",variant:"brand",disabled:A.isPending,children:A.isPending?n("projects.scanning"):n("projects.scanDirectory")})]})]})}),"scan"===F&&k&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[k.exists&&k.isDirectory?(0,t.jsx)(l.CheckCircle2,{className:"size-4 shrink-0 text-emerald-400"}):(0,t.jsx)(c.XCircle,{className:"size-4 shrink-0 text-red-400"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:k.exists&&k.isDirectory?n("projects.validDirectory"):k.exists?n("projects.pathNotDirectory"):n("projects.directoryNotFound")})]}),(0,t.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/50 p-3",children:(0,t.jsx)("p",{className:"break-all font-mono text-xs text-muted-foreground",children:k.path})}),k.exists&&k.isDirectory?null:(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-amber-400/30 bg-amber-400/10 p-3",children:[(0,t.jsx)(d.AlertTriangle,{className:"size-4 shrink-0 text-amber-400"}),(0,t.jsx)("p",{className:"text-sm text-amber-200",children:n("projects.validDirectoryRequired")})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-2 border-t border-border/70 pt-4",children:[(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:E,children:n("common.back")}),(0,t.jsx)(p.Button,{size:"sm",variant:"brand",onClick:()=>S("confirm"),disabled:!k.exists||!k.isDirectory,children:n("projects.importTitle")})]})]}),"confirm"===F&&(0,t.jsx)(h.Form,{...V,children:(0,t.jsxs)("form",{onSubmit:V.handleSubmit(function(e){$.mutate(e)}),className:"space-y-4",children:[(0,t.jsx)(h.FormField,{control:V.control,name:"name",render:({field:e})=>(0,t.jsxs)(h.FormItem,{children:[(0,t.jsx)(h.FormLabel,{children:n("projects.projectName")}),(0,t.jsx)(h.FormControl,{children:(0,t.jsx)(x.Input,{placeholder:"My Project",...e})}),(0,t.jsx)(h.FormMessage,{})]})}),(0,t.jsxs)(h.FormItem,{children:[(0,t.jsx)(h.FormLabel,{children:n("templates.selectTemplate")}),(0,t.jsx)(h.FormControl,{children:(0,t.jsx)(f.TemplateSelect,{value:B,onValueChange:M,id:"template",ariaLabel:n("templates.selectTemplate")})})]}),$.isError&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:$.error instanceof Error?$.error.message:n("projects.failedImport")}),(0,t.jsxs)("div",{className:"flex justify-between gap-2 border-t border-border/70 pt-4",children:[(0,t.jsx)(p.Button,{type:"button",variant:"outline",size:"sm",onClick:E,children:n("common.back")}),(0,t.jsx)(p.Button,{type:"submit",size:"sm",variant:"brand",disabled:$.isPending,children:$.isPending?n("projects.importing"):n("projects.importTitle")})]})]})})]})]})]})}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24125,e=>{"use strict";var t=e.i(66499),a=e.i(79923),n=e.i(78717),s=e.i(6270),i=e.i(60218),r=e.i(47721),l=e.i(38355);let o="/api/v1/copilot/channels",d=(e,t={})=>(0,r.fetchJson)(o+e,{method:"POST",body:JSON.stringify(t)});async function c(){let[e,t,a,n]=await Promise.all([(0,r.fetchJson)(o+"/pairings"),(0,r.fetchJson)(o+"/identities"),(0,r.fetchJson)(o+"/routes"),(0,r.fetchJson)(o+"/deliveries")]);return{...e,...t,...a,...n}}var u=e.i(41271),m=e.i(88068),h=e.i(97943),x=e.i(62918),g=e.i(12603),p=e.i(46131);let f=["identity_inactive","config_changed","channel_disabled","project_missing","autonomy_off","authority_revoked"];var j=e.i(85426),y=e.i(81622),v=e.i(26624),b=e.i(42831);function N(){let e=(0,b.useSettingsCopy)(),a=(0,n.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,l.getProjectOverview)(),refetchInterval:3e4});return(0,t.jsxs)("div",{className:"space-y-6 p-4 text-sm",children:[(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsx)("h2",{className:"font-semibold",children:e.mgmtTitle}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e.mgmtDescription}),a.isPending&&(0,t.jsx)("p",{role:"status",children:e.projectsLoading}),a.isError&&(0,t.jsxs)("p",{role:"alert",children:[e.mgmtLoadFailed," ",(0,t.jsx)(i.Button,{size:"sm",variant:"outline",onClick:()=>void a.refetch(),children:e.autonomyRetry})]}),a.data?.projects.length===0&&(0,t.jsx)("p",{className:"text-muted-foreground",children:e.mgmtNoProjects}),a.data?.projects.map(e=>(0,t.jsx)(C,{project:e},`autonomy-${e.id}`))]}),(0,t.jsx)(S,{overview:a})]})}function C({project:e}){let a=(0,b.useSettingsCopy)(),n=(0,s.useQueryClient)(),i=(0,j.useMutation)({mutationFn:t=>(0,l.setCopilotAutonomy)(e.id,t),onSuccess:()=>n.invalidateQueries({queryKey:["project-management-overview"]})});return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border border-border/70 p-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("a",{className:"font-medium hover:underline",href:`/projects/${e.id}`,children:e.name}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:[e.copilotAutonomy?a.mgmtAutonomyOn:a.mgmtAutonomyOff,i.isError?` \xb7 ${a.mgmtSaveFailed(i.error.message)}`:""]})]}),(0,t.jsx)(v.Switch,{checked:e.copilotAutonomy,onCheckedChange:e=>i.mutate(e),disabled:i.isPending,"aria-label":a.mgmtSwitchAria(e.name)})]})}function S({overview:e}){let a=(0,b.useSettingsCopy)();return(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsx)("h2",{className:"font-semibold",children:a.mgmtProgressTitle}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:a.mgmtProgressDescription}),e.data?.projects.map(e=>(0,t.jsx)(w,{project:e},`${e.id}-${e.management.revision}`))]})}function w({project:e}){let n=(0,b.useSettingsCopy)(),r=(0,s.useQueryClient)(),[o,d]=(0,a.useState)(e.management),c=(0,j.useMutation)({mutationFn:()=>(0,l.updateProjectManagement)(e.id,{mode:o.mode,ownerLabel:o.ownerLabel,nextAction:o.nextAction,freshnessHours:o.freshnessHours,expectedRevision:e.management.revision}),onSuccess:()=>r.invalidateQueries({queryKey:["project-management-overview"]})});return(0,t.jsxs)("div",{className:"rounded-md border border-border/70 p-3 space-y-2",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,t.jsx)("a",{className:"font-medium hover:underline",href:`/projects/${e.id}`,children:e.name}),(0,t.jsxs)("span",{className:"text-xs",children:["manual"===e.management.mode?n.mgmtModeManual:n.mgmtModeCli," · ","supervised"===e.autonomy?n.mgmtSupervised:n.mgmtManualExec]})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e.goal?.summary||n.mgmtNoGoal}),(0,t.jsxs)("p",{className:"text-xs",children:[n.mgmtProgressSummary(e.counts.done,e.counts.total,e.counts.in_progress,e.counts.blocked),n.mgmtEvidenceFreshness[e.evidenceFreshness.status]??e.evidenceFreshness.status]}),(0,t.jsxs)("details",{children:[(0,t.jsxs)("summary",{className:"cursor-pointer text-xs",children:[n.mgmtOwnerNextSummary,e.management.ownerLabel||n.mgmtUnassigned," ·"," ",e.management.nextAction||n.mgmtUnplanned]}),(0,t.jsxs)("form",{className:"mt-2 space-y-2",onSubmit:e=>{e.preventDefault(),c.mutate()},children:[(0,t.jsxs)("label",{className:"block",children:[n.mgmtModeLabel,(0,t.jsxs)("select",{className:"ml-2 rounded border border-border bg-background p-1",value:o.mode,onChange:e=>d({...o,mode:e.target.value}),children:[(0,t.jsx)("option",{value:"manual",children:n.mgmtModeOptionManual}),(0,t.jsx)("option",{value:"cli",children:n.mgmtModeOptionCli})]})]}),(0,t.jsxs)("label",{className:"block",children:[n.mgmtOwnerLabel,(0,t.jsx)(y.Input,{value:o.ownerLabel,onChange:e=>d({...o,ownerLabel:e.target.value})})]}),(0,t.jsxs)("label",{className:"block",children:[n.mgmtNextActionLabel,(0,t.jsx)(y.Input,{value:o.nextAction,onChange:e=>d({...o,nextAction:e.target.value})})]}),(0,t.jsxs)("label",{className:"block",children:[n.mgmtFreshnessLabel,(0,t.jsx)(y.Input,{type:"number",min:"1",max:"8760",value:o.freshnessHours,onChange:e=>d({...o,freshnessHours:Number(e.target.value)})})]}),c.isError&&(0,t.jsxs)("p",{role:"alert",className:"text-destructive",children:[n.mgmtSaveFailed(c.error.message),(0,t.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void r.invalidateQueries({queryKey:["project-management-overview"]}),children:n.mgmtReload})]}),(0,t.jsx)(i.Button,{size:"sm",disabled:c.isPending,children:n.mgmtSave})]})]})]})}function k({busy:e,queriesError:a,channelName:n,identities:s,identityId:r,onIdentityChange:l,autonomyProjects:o,projectId:d,onProjectChange:c,projectsLoading:j,projectsError:y,blocker:v,activationReason:C,showBlockerLink:S,onActivate:w,routes:I,routeState:E,projectName:P,onRevokeRoute:A}){let B=(0,b.useSettingsCopy)();return(0,t.jsxs)(g.Card,{id:"channel-authorization",className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(m.Link2,{className:"size-4"}),title:B.bindingTitle,description:B.bindingDescription}),(0,t.jsxs)(g.CardContent,{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:B.manageAutonomy}),(0,t.jsx)(N,{})]}),j&&(0,t.jsx)("p",{role:"status",children:B.projectsLoading}),!j&&!y&&!o.length&&(0,t.jsx)("p",{className:"text-sm",children:B.noAutonomyProjects}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,t.jsx)("span",{children:B.identityLabel}),(0,t.jsxs)(p.Select,{value:r,onValueChange:l,children:[(0,t.jsx)(p.SelectTrigger,{"aria-label":B.identityLabel,className:"w-full",children:(0,t.jsx)(p.SelectValue,{placeholder:B.identityPlaceholder})}),(0,t.jsx)(p.SelectContent,{children:s.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.externalUserId},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,t.jsx)("span",{children:B.projectLabel}),(0,t.jsxs)(p.Select,{value:d,onValueChange:c,children:[(0,t.jsx)(p.SelectTrigger,{"aria-label":B.projectLabel,className:"w-full",children:(0,t.jsx)(p.SelectValue,{placeholder:B.projectPlaceholder})}),(0,t.jsx)(p.SelectContent,{children:o.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))})]})]})]}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(i.Button,{"aria-describedby":"channel-activation-reason",disabled:e||!!v||a,onClick:w,children:B.activateRemote(n)})}),(0,t.jsxs)("p",{id:"channel-activation-reason","data-testid":"channel-activation-reason",role:"status",className:"text-sm text-muted-foreground",children:[C,v&&S&&(0,t.jsx)("a",{className:"ml-2 underline underline-offset-4",href:`#channel-${v.step}`,children:v.action})]}),0===I.length&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:B.bindingsEmpty}),I.map(a=>{let n=E(a);return(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"min-w-0",children:P(a.projectId)}),(0,t.jsx)(x.Badge,{variant:"secondary",className:"authorized"===n?"bg-emerald-500/15 text-emerald-400":"pending_review"===n?"bg-amber-500/15 text-amber-400":n&&f.includes(n)?"bg-destructive/15 text-destructive":"text-muted-foreground",children:n?B.routeStates[n]:B.channelStates[a.status]??a.status})]}),(0,t.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:B.independentSession(a.conversationId)}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)(u.default,{className:"underline underline-offset-4",href:`/copilot?c=${encodeURIComponent(a.conversationId)}`,children:B.openConversation}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",disabled:e||"active"!==a.status,onClick:()=>A(a.id),children:B.revokeBinding})]})]},a.id)})]})]})}var I=e.i(35887),E=e.i(89176),P=e.i(9988);function A({channel:e,channelName:n,account:s,health:r,busy:l,onSaveFeishu:o,onSaveTelegram:d,onEmergencyStop:c}){let u=(0,b.useSettingsCopy)(),m=(0,I.useUiLocale)(),p=!!s?.secretConfigured,[f,j]=(0,a.useState)(!p),[v,N]=(0,a.useState)(p),[C,S]=(0,a.useState)(""),[w,k]=(0,a.useState)(""),[B,T]=(0,a.useState)(""),[L,F]=(0,a.useState)(!1),D=r?.state??"disabled";function z(){j(!1),S(""),k(""),T("")}(0,a.useEffect)(()=>{p!==v&&(N(p),p&&j(!1))},[p,v]);let R=(0,t.jsx)(x.Badge,{variant:"secondary",children:"feishu"===e?u.savedBadgeFeishu:u.savedBadgeTelegram});return(0,t.jsxs)(g.Card,{id:"channel-connection",className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(E.Plug,{className:"size-4"}),title:"feishu"===e?u.connectionTitleFeishu:u.connectionTitleTelegram,description:u.connectionDescription,action:(0,t.jsx)(x.Badge,{variant:"secondary",className:"connected"===D?"bg-emerald-500/15 text-emerald-400":"connecting"===D||"reconnecting"===D?"bg-amber-500/15 text-amber-400":"unhealthy"===D?"bg-destructive/15 text-destructive":"text-muted-foreground",children:u.channelStates[D]??D})}),(0,t.jsxs)(g.CardContent,{className:"space-y-3",children:[p&&!f?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-sm",children:[R,"feishu"===e&&s?.appId&&(0,t.jsxs)("span",{className:"break-all font-mono text-xs text-muted-foreground",children:["App ID · ",s.appId]}),"telegram"===e&&s?.botUsername&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u.botUsername(s.botUsername)}),r?.lastConnectedAt&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u.lastConnected(new Date(r.lastConnectedAt).toLocaleString(m))})]}),r?.lastErrorMessage&&(0,t.jsx)("div",{role:"alert",className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive",children:u.lastError(r.lastErrorMessage)}),(0,t.jsx)("div",{children:(0,t.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",disabled:l,onClick:()=>j(!0),children:u.modifyConfig})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:p?R:(0,t.jsx)(x.Badge,{variant:"outline",children:"feishu"===e?u.notConfiguredBadgeFeishu:u.notConfiguredBadgeTelegram})}),r?.lastConnectedAt&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:u.lastConnected(new Date(r.lastConnectedAt).toLocaleString(m))}),r?.lastErrorMessage&&(0,t.jsx)("div",{role:"alert",className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive",children:u.lastError(r.lastErrorMessage)}),"feishu"===e&&(0,t.jsxs)("form",{className:"grid gap-3 sm:grid-cols-2",onSubmit:e=>{e.preventDefault(),o(C||s?.appId||"",w).then(e=>{k(""),e&&(S(""),j(!1))})},children:[(0,t.jsxs)("label",{className:"space-y-1 text-sm",children:["App ID",(0,t.jsx)(y.Input,{"aria-label":"App ID",autoComplete:"off",value:C,placeholder:s?.appId??"cli_…",onChange:e=>S(e.target.value)})]}),(0,t.jsxs)("label",{className:"space-y-1 text-sm",children:["App Secret",(0,t.jsx)(y.Input,{"aria-label":"App Secret",type:"password",autoComplete:"new-password",value:w,placeholder:p?u.secretKeepPlaceholder:u.secretInputPlaceholder,onChange:e=>k(e.target.value)})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 sm:col-span-2",children:[(0,t.jsx)(i.Button,{type:"button",variant:"ghost",disabled:l,onClick:z,children:u.dialogCancel}),(0,t.jsx)(i.Button,{type:"submit",disabled:l||!(C||s?.appId)||!p&&!w,children:u.saveAndEnable})]})]}),"telegram"===e&&(0,t.jsxs)("form",{className:"grid gap-3 sm:grid-cols-2",onSubmit:e=>{e.preventDefault(),d(B).then(e=>{T(""),e&&j(!1)})},children:[(0,t.jsxs)("label",{className:"space-y-1 text-sm",children:["Bot Token",(0,t.jsx)(y.Input,{"aria-label":"Bot Token",type:"password",autoComplete:"new-password",value:B,placeholder:p?u.tokenKeepPlaceholder:"123456:ABC-DEF…",onChange:e=>T(e.target.value)})]}),(0,t.jsxs)("div",{className:"flex items-end justify-end gap-2",children:[(0,t.jsx)(i.Button,{type:"button",variant:"ghost",disabled:l,onClick:z,children:u.dialogCancel}),(0,t.jsx)(i.Button,{type:"submit",disabled:l||!B&&!p,children:u.saveAndEnable})]})]})]}),"feishu"===e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:u.feishuReconnectHint}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:u.feishuPlatformHint}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:u.feishuCardHint})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-3",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:u.emergencyStopNote("telegram"===e)}),(0,t.jsx)(i.Button,{type:"button",variant:"outline",className:"border-destructive/50 text-destructive hover:bg-destructive/10 hover:text-destructive",disabled:l||!s,onClick:()=>F(!0),children:u.emergencyStopButton(n)})]})]}),(0,t.jsx)(P.Dialog,{open:L,onOpenChange:F,children:(0,t.jsxs)(P.DialogContent,{children:[(0,t.jsxs)(P.DialogHeader,{children:[(0,t.jsx)(P.DialogTitle,{children:u.emergencyStopTitle(n)}),(0,t.jsx)(P.DialogDescription,{children:u.emergencyStopDescription})]}),(0,t.jsxs)(P.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>F(!1),children:u.dialogCancel}),(0,t.jsx)(i.Button,{variant:"destructive",disabled:l,onClick:()=>{F(!1),c()},children:u.emergencyStopConfirm})]})]})})]})}var B=e.i(90441);function T({deliveries:e}){let a=(0,b.useSettingsCopy)(),n=(0,I.useUiLocale)();return(0,t.jsxs)(g.Card,{className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(B.History,{className:"size-4"}),title:a.deliveriesTitle,description:a.deliveriesDescription}),(0,t.jsxs)(g.CardContent,{className:"space-y-2 text-sm",children:[!e.length&&(0,t.jsx)("p",{className:"text-muted-foreground",children:a.deliveriesEmpty}),e.map(e=>{var s;return(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/70 p-3",children:[(0,t.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:["terminal"===e.phase?a.deliveryPhaseTerminal:a.deliveryPhaseStatus,(0,t.jsx)(x.Badge,{variant:"secondary",className:"delivered"===(s=e.status)?"bg-emerald-500/15 text-emerald-400":"failed"===s?"bg-destructive/15 text-destructive":"unknown"===s||"sending"===s||"pending"===s?"bg-amber-500/15 text-amber-400":"text-muted-foreground",children:a.channelStates[e.status]??e.status})]}),(0,t.jsx)("time",{className:"text-xs text-muted-foreground",children:new Date(e.createdAt).toLocaleString(n)})]},e.id)})]})]})}var L=e.i(82405),F=e.i(76745),D=e.i(31483);let z=(0,e.i(65174).default)("CircleDashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]);var R=e.i(26338),q=e.i(63548),H=e.i(65458);function U({channelName:e,isPending:n,isError:s,checks:r,onFailedCountChange:l}){let o=(0,b.useSettingsCopy)(),[d,c]=(0,a.useState)(!1),u=(r??[]).filter(e=>!e.ok&&"untested"!==e.status&&"pending"!==e.status).length;return(0,a.useEffect)(()=>{l(u)},[u,l]),(0,t.jsxs)(g.Card,{className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(L.Activity,{className:"size-4"}),title:o.diagnosticsTitle(e),description:o.diagnosticsDescription,action:(0,t.jsxs)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>c(e=>!e),"aria-expanded":d,children:[d?o.diagnosticsCollapse:o.diagnosticsExpand,(0,t.jsx)(D.ChevronDown,{className:(0,H.cn)("size-3.5 transition-transform",d&&"rotate-180")})]})}),d&&(0,t.jsxs)(g.CardContent,{className:"space-y-2",children:[n&&(0,t.jsx)("p",{role:"status",children:o.diagnosticsChecking}),s&&(0,t.jsx)("p",{role:"alert",children:o.diagnosticsLoadError}),!n&&!s&&!r?.length&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:o.diagnosticsEmpty}),r?.map(e=>{let a=e.ok?"ok":"untested"===e.status?"untested":"pending"===e.status?"pending":"failed";return(0,t.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 p-3 text-sm",children:["ok"===a?(0,t.jsx)(F.Check,{className:"mt-0.5 size-4 shrink-0 text-emerald-400"}):"pending"===a?(0,t.jsx)(R.Loader2,{className:"mt-0.5 size-4 shrink-0 animate-spin text-amber-400"}):"untested"===a?(0,t.jsx)(z,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}):(0,t.jsx)(q.X,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("p",{className:"flex flex-wrap items-center gap-2",children:[e.detail,"untested"===a&&(0,t.jsx)(x.Badge,{variant:"outline",className:"text-muted-foreground",children:o.diagnosticsStatusUntested}),"pending"===a&&(0,t.jsx)(x.Badge,{variant:"secondary",className:"bg-amber-500/15 text-amber-400",children:o.diagnosticsStatusPending}),"failed"===a&&(0,t.jsx)(x.Badge,{variant:"secondary",className:"bg-destructive/15 text-destructive",children:o.diagnosticsStatusFailed})]}),"failed"===a&&e.fixHint&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:o.diagnosticsFixHint(e.fixHint)})]})]},e.key)})]})]})}var K=e.i(540),_=e.i(92351),M=e.i(90280);function Q({channel:e,channelName:n,busy:s,canPair:r,queriesError:l,pairing:o,token:d,candidate:c,accountIdentities:u,accountRevision:m,onCreatePairing:p,onConfirmPairing:f,onCancelPairing:j,onRevokeIdentity:v,whitelistIdsText:N,whitelistLoading:C,whitelistError:S,onSaveWhitelist:w}){let k=(0,b.useSettingsCopy)(),E=(0,I.useUiLocale)(),[P,A]=(0,a.useState)(""),[B,T]=(0,a.useState)(null),[L,D]=(0,a.useState)(!1),[z,R]=(0,a.useState)(!1);(0,a.useEffect)(()=>A(""),[c]);let q=B??N,H=[...new Set((B??"").split(/[,,\s]+/).filter(Boolean))];async function U(){if(d)try{await navigator.clipboard.writeText(`/pair ${d.value}`),R(!0),setTimeout(()=>R(!1),1500)}catch{}}return(0,t.jsxs)(g.Card,{id:"channel-pairing",className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(_.KeyRound,{className:"size-4"}),title:k.pairingTitle,description:k.pairingDescription}),(0,t.jsxs)(g.CardContent,{className:"space-y-3",children:[(0,t.jsx)(i.Button,{disabled:s||!r||l,onClick:p,children:k.createPairingCode}),d&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,t.jsx)("p",{className:"text-sm",children:k.pairingCommandHint(n,new Date(d.expiresAt).toLocaleTimeString(E))}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("code",{className:"block min-w-0 flex-1 break-all select-all rounded bg-muted/40 px-2 py-1.5 font-mono text-xs",children:["/pair ",d.value]}),(0,t.jsxs)(i.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void U(),children:[z?(0,t.jsx)(F.Check,{className:"size-3.5 text-emerald-400"}):(0,t.jsx)(K.Copy,{className:"size-3.5"}),z?k.commandCopied:k.copyCommand]})]})]}),!o&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:k.noPendingPairing}),o?.status==="pending"&&(0,t.jsxs)("p",{role:"status",className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,t.jsx)(x.Badge,{variant:"secondary",className:"bg-amber-500/15 text-amber-400",children:k.pairingStatusPending}),k.waitingClaim(n)]}),o?.status==="claimed"&&(0,t.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,t.jsx)("p",{className:"text-sm",children:k.claimReviewHint}),(0,t.jsxs)("dl",{className:"break-all text-sm",children:[(0,t.jsx)("dt",{children:"feishu"===e?k.userIdLabelFeishu:k.userIdLabelTelegram}),(0,t.jsx)("dd",{children:o.externalUserId}),(0,t.jsx)("dt",{className:"mt-2",children:"feishu"===e?k.chatIdLabelFeishu:k.chatIdLabelTelegram}),(0,t.jsx)("dd",{children:o.chatId})]}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(M.Checkbox,{"aria-label":k.ackLabel(n),checked:P===c,onCheckedChange:e=>A(!0===e?c:"")}),k.ackLabel(n)]}),(0,t.jsx)(i.Button,{disabled:s||!r||l||P!==c,onClick:()=>f(o),children:k.confirmIdentity})]}),o&&(0,t.jsx)(i.Button,{variant:"outline",disabled:s,onClick:()=>{A(""),j(o.id)},children:k.cancelPairing}),0===u.length&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:k.identitiesEmpty}),u.map(e=>(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,t.jsxs)("span",{className:"break-all",children:[e.externalUserId," · ","active"===e.status&&e.accountRevision!==m?k.identityStale:k.channelStates[e.status]??e.status]}),(0,t.jsx)(i.Button,{variant:"outline",size:"sm",disabled:s||"active"!==e.status,onClick:()=>v(e.id),children:k.revokeIdentity})]},e.id)),(0,t.jsxs)("div",{id:"channel-chat-allowlist",className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("p",{className:"text-sm",children:k.allowlistTitle}),!L&&(0,t.jsx)(i.Button,{type:"button",variant:"outline",size:"sm",disabled:s,onClick:()=>D(!0),children:N?k.editAllowlist:k.setAllowlist})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:k.allowlistHint}),L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"block space-y-1 text-sm",children:[k.allowlistInputLabel,(0,t.jsx)(y.Input,{"aria-label":k.allowlistAria,value:q,placeholder:"feishu"===e?k.allowlistPlaceholderFeishu:k.allowlistPlaceholderTelegram,onChange:e=>T(e.target.value)})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.Button,{type:"button",variant:"ghost",disabled:s,onClick:()=>{T(null),D(!1)},children:k.dialogCancel}),(0,t.jsx)(i.Button,{type:"button",variant:"outline",disabled:s||C||S||H.length>50||null===B||B===N,onClick:()=>{w(H).then(e=>{e&&(T(null),D(!1))})},children:k.saveAllowlist})]})]}):N?(0,t.jsx)("p",{className:"break-all font-mono text-xs text-muted-foreground",children:N}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:k.allowlistEmpty}),H.length>50&&(0,t.jsx)("p",{role:"alert",children:k.allowlistTooMany}),S&&(0,t.jsx)("p",{role:"alert",children:k.allowlistLoadError})]})]})]})}let O={running:{variant:"secondary",className:"bg-emerald-500/15 text-emerald-400"},pairing:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},authorization:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},unknown:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},stopped:{variant:"destructive",className:""},not_connected:{variant:"outline",className:"text-muted-foreground"}};function $({channel:e,busy:a,onSwitch:n,state:s,statusText:r,blocker:l,failedChecks:o}){let d=(0,b.useSettingsCopy)(),c={not_connected:d.channelStateNotConnected,pairing:d.channelStatePairing,authorization:d.channelStateAuthorization,running:d.channelStateRunning,stopped:d.channelStateStopped,unknown:d.channelStateUnknown},u=O[s];return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{role:"group","aria-label":d.channelPlatformLabel,className:"flex w-fit rounded-md border border-border/70 p-0.5",children:["feishu","telegram"].map(s=>(0,t.jsx)(i.Button,{type:"button",size:"sm",variant:e===s?"default":"ghost","aria-pressed":e===s,disabled:a,onClick:()=>n(s),children:"feishu"===s?d.channelNameFeishu:d.channelNameTelegram},s))}),(0,t.jsxs)("div",{role:"status",className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 rounded-md border border-border/70 bg-muted/20 px-3 py-2.5 text-sm",children:[(0,t.jsx)(x.Badge,{variant:u.variant,className:(0,H.cn)(u.className),children:c[s]}),(0,t.jsx)("span",{className:"min-w-0",children:r}),l&&(0,t.jsx)("a",{className:"underline underline-offset-4",href:`#channel-${l.step}`,children:l.action}),o>0&&(0,t.jsx)("span",{className:"w-full text-xs text-destructive",children:d.diagnosticsFailedNotice(o)})]})]})}var J=e.i(63134),G=e.i(39867);let V="/api/v1/notifications/feishu",W=()=>(0,r.fetchJson)(V),X=()=>(0,r.fetchJson)(V+"/deliveries"),Y=["feishu-notification-settings"],Z=["feishu-notification-deliveries"],ee=["attention","failure","completion","lifecycle","app_action","automation"];function et({available:e}){let l=(0,b.useSettingsCopy)(),o=(0,s.useQueryClient)(),d=(0,n.useQuery)({queryKey:Y,queryFn:W,refetchInterval:5e3,refetchIntervalInBackground:!1}),c=(0,n.useQuery)({queryKey:Z,queryFn:X,refetchInterval:5e3,refetchIntervalInBackground:!1}),[u,m]=(0,a.useState)(null),[x,f]=(0,a.useState)(!1),[j,N]=(0,a.useState)(""),[C,S]=(0,a.useState)(""),[w,k]=(0,a.useState)(""),I={...l.notifyBlockers,...l.notifyErrors},E=ee.map(e=>({type:e,label:l.notifyTypes[e]})),P=(e,t)=>{let a=e instanceof r.GatewayApiError&&"string"==typeof e.details?.code?e.details.code:"";k(a);let n=I[a]??(e instanceof r.GatewayApiError&&401===e.status?l.notifyAuthExpired:l.notifyGenericError);N(l.notifyActionFailed(t,n))},A=u??d.data?.config,B=d.data?.targets??[],T=B.filter(e=>"private"===e.kind&&e.available),L=A?.targetId??(1===T.length?T[0].id:""),F=B.find(e=>e.id===L),D=(e,t=L)=>({...e,targetId:t||null,identityId:t.startsWith("private:")?t.slice(8):null}),z=e=>{A&&m(D({...A,...e},void 0===e.targetId?L:e.targetId??""))},R=async()=>{f(!0),N(""),k(""),S("");try{let e=await (0,r.fetchJson)(V+"/targets/refresh",{method:"POST",body:"{}"});await d.refetch(),S(e.targets.some(e=>"group"===e.kind&&e.available)?l.notifyRefreshOk:l.notifyRefreshNoGroup)}catch(e){P(e,l.notifyActionRefresh)}finally{f(!1)}},q=async()=>{if(A){f(!0),N(""),k(""),S("");try{let e,t=await (e=D(A),(0,r.fetchJson)(V,{method:"PUT",body:JSON.stringify(e)}));o.setQueryData(Y,t),m(null),S(t.config.enabled?l.notifySavedOn:l.notifySavedOff),await o.invalidateQueries({queryKey:Z})}catch(e){P(e,l.notifyActionSave)}finally{f(!1)}}},H=async()=>{f(!0),N(""),k(""),S("");try{let e;await (e=crypto.randomUUID(),(0,r.fetchJson)(V+"/test",{method:"POST",body:JSON.stringify({requestId:e})})),S(l.notifyTestQueued),await o.invalidateQueries({queryKey:Z})}catch(e){P(e,l.notifyActionTest)}finally{f(!1)}};return(0,t.jsxs)(g.Card,{id:"feishu-notifications",className:"forgebadger-animate-in",children:[(0,t.jsx)(h.SettingsCardHeader,{icon:(0,t.jsx)(G.Bell,{className:"size-4"}),title:l.notifyTitle,description:l.notifyDescription,action:A&&(0,t.jsx)(v.Switch,{"aria-label":l.notifySwitchAria,checked:A.enabled,disabled:x||d.isError||!A.enabled&&(!e||!B.some(e=>e.available)),onCheckedChange:e=>z({enabled:e})})}),(0,t.jsxs)(g.CardContent,{className:"space-y-3",children:[d.isPending&&(0,t.jsx)("p",{role:"status",children:l.notifyLoading}),d.isError&&(0,t.jsx)("p",{role:"alert",children:l.notifyLoadError}),j&&(0,t.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:j}),("CONFIG_CONFLICT"===w||d.isError)&&(0,t.jsx)(i.Button,{variant:"outline",disabled:x,onClick:()=>{m(null),N(""),k(""),d.refetch()},children:l.notifyReload}),C&&(0,t.jsx)("p",{role:"status",className:"text-sm",children:C}),A&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,t.jsx)("span",{children:l.notifyTargetLabel}),(0,t.jsxs)(p.Select,{value:L,disabled:x||d.isError,onValueChange:e=>z({targetId:e||null}),children:[(0,t.jsx)(p.SelectTrigger,{"aria-label":l.notifyTargetLabel,className:"w-full min-w-0",children:(0,t.jsx)(p.SelectValue,{placeholder:l.notifyTargetPlaceholder})}),(0,t.jsxs)(p.SelectContent,{children:[L&&!F&&(0,t.jsx)(p.SelectItem,{value:L,children:l.notifyTargetStale}),B.map(e=>(0,t.jsxs)(p.SelectItem,{value:e.id,disabled:!e.available,children:["group"===e.kind?l.notifyKindGroup:l.notifyKindPrivate," · ",e.name,e.available?"":` \xb7 ${l.notifyUnavailableSuffix}`]},e.id))]})]})]}),(0,t.jsx)(i.Button,{variant:"outline",disabled:x||!e,onClick:()=>void R(),children:l.notifyRefreshTargets}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l.notifyPrivateHint}),F?.kind==="group"&&(0,t.jsx)("p",{role:"note",className:"break-words text-sm",children:l.notifyGroupNotice(F.name)}),(0,t.jsx)("p",{role:"note",className:"text-xs text-muted-foreground",children:l.notifyContentHint}),(0,t.jsxs)("fieldset",{disabled:x||d.isError,className:"grid gap-2 sm:grid-cols-2",children:[(0,t.jsx)("legend",{className:"mb-2 text-sm",children:l.notifyTypesLegend}),E.map(e=>(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(M.Checkbox,{"aria-label":e.label,checked:A.types.includes(e.type),onCheckedChange:t=>z({types:!0===t?[...A.types,e.type]:A.types.filter(t=>t!==e.type)})}),e.label]},e.type))]}),(0,t.jsxs)("label",{className:"block space-y-1 text-sm",children:[l.notifyWebLabel,(0,t.jsx)(y.Input,{"aria-label":l.notifyWebAria,value:A.webBaseUrl,placeholder:"https://forge.example.com",disabled:x||d.isError,onChange:e=>z({webBaseUrl:e.target.value})})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l.notifyWebHint}),!u&&d.data?.blocker&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:l.notifyBlockers[d.data.blocker]??l.notifyBlockerFallback}),(0,t.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,t.jsx)(i.Button,{disabled:x||d.isError||A.enabled&&(!F?.available||!A.types.length),onClick:()=>void q(),children:l.notifySave}),(0,t.jsx)(i.Button,{variant:"outline",disabled:x||!!u||d.isError||!d.data?.config.enabled||!d.data.ready,onClick:()=>void H(),children:l.notifyTest})]})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-3 text-sm",children:[(0,t.jsx)("p",{children:l.notifyDeliveriesTitle}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l.notifyDeliveriesHint}),c.isPending&&(0,t.jsx)("p",{children:l.notifyDeliveriesLoading}),c.isError&&(0,t.jsx)("p",{role:"alert",children:l.notifyDeliveriesLoadError}),c.data?.deliveries.length===0&&(0,t.jsx)("p",{className:"text-muted-foreground",children:l.notifyDeliveriesEmpty}),c.data?.deliveries.map(e=>(0,t.jsxs)("div",{className:"flex flex-wrap justify-between gap-2 rounded-md border border-border/70 p-2",children:[(0,t.jsxs)("span",{children:["test"===e.type?l.notifyTestCard:E.find(t=>t.type===e.type)?.label??l.notifyDeliveryFallback," · ",l.notifyStatuses[e.status]??e.status]}),(0,t.jsx)("time",{children:new Date(e.createdAt).toLocaleString()}),e.errorCode&&I[e.errorCode]&&(0,t.jsx)("p",{className:"w-full text-xs text-muted-foreground",children:I[e.errorCode]})]},e.id))]})]})]})}let ea=["copilot-channels"];e.s(["CopilotChannelsPage",0,function(){var e,o,u;let m,h,x,g=(0,b.useSettingsCopy)(),p=(0,s.useQueryClient)(),[f,j]=(0,a.useState)("feishu"),y=(0,n.useQuery)({queryKey:ea,queryFn:c,refetchInterval:3e3,refetchIntervalInBackground:!1}),v=(0,n.useQuery)({queryKey:["copilot-channel-account",f],queryFn:async()=>{if("feishu"===f){let[e,t]=await Promise.all([(0,r.getFeishuChannelAccount)(),(0,r.getFeishuConnectionHealth)()]);return{account:e,health:t,telegramAccount:null,telegramHealth:null}}let[e,t]=await Promise.all([(0,r.getTelegramChannelAccount)(),(0,r.getTelegramConnectionHealth)()]);return{account:null,health:null,telegramAccount:e,telegramHealth:t}},refetchInterval:3e3,refetchIntervalInBackground:!1}),N=(0,n.useQuery)({queryKey:["channel-diagnostics",f],queryFn:()=>(0,r.getChannelDiagnostics)(f),refetchInterval:5e3,refetchIntervalInBackground:!1}),C=(0,n.useQuery)({queryKey:["channel-integration-config",f],queryFn:()=>"telegram"===f?(0,r.getTelegramIntegrationConfig)():(0,r.getFeishuIntegrationConfig)(),refetchInterval:5e3,refetchIntervalInBackground:!1}),S=(0,n.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,l.getProjectOverview)(),refetchInterval:15e3,refetchIntervalInBackground:!1}),[w,I]=(0,a.useState)(!1),[E,P]=(0,a.useState)(""),[B,L]=(0,a.useState)(""),[F,D]=(0,a.useState)(null),[z,R]=(0,a.useState)(""),[q,H]=(0,a.useState)(""),[K,_]=(0,a.useState)(Date.now()),[M,O]=(0,a.useState)(0),G=y.data&&v.data?{...y.data,...v.data}:void 0,V=("feishu"===f?G?.account:G?.telegramAccount)??null,W=("feishu"===f?G?.health:G?.telegramHealth)??null,X="feishu"===f?g.channelNameFeishu:g.channelNameTelegram,Y=V?.id,Z=V?.configRevision,ee=G?.pairings.find(e=>e.accountId===Y&&e.accountRevision===Z&&["pending","claimed"].includes(e.status)&&e.expiresAt>K),en=ee?`${ee.id}:${ee.revision}:${ee.externalUserId}:${ee.chatId}`:"",es=!!(ee||F);(0,a.useEffect)(()=>{if(!es)return;_(Date.now());let e=setInterval(()=>_(Date.now()),1e3);return()=>clearInterval(e)},[es]),(0,a.useEffect)(()=>{F&&(F.expiresAt<=K||G&&!G.pairings.some(e=>e.id===F.id&&"pending"===e.status&&e.accountRevision===Z))&&D(null)},[G,K,F,Z]);let ei=G?.identities.filter(e=>e.accountId===Y)??[],er=G?.routes.filter(e=>ei.some(t=>t.id===e.identityId))??[],el=G?.deliveries.filter(e=>e.accountId===Y&&e.channel===f)??[],eo=G?.identities.filter(e=>"active"===e.status&&e.accountId===Y&&e.accountRevision===Z)??[],ed=S.data?.projects.filter(e=>e.copilotAutonomy)??[],ec=ed.find(e=>e.id===q),eu=eo.find(e=>e.id===z)??(1===eo.length?eo[0]:void 0),em=!C.isPending&&!C.isError&&!!C.data?.enabled&&!C.data.emergencyDisabled,eh=!!V?.enabled&&em,ex=(o={account:V,configLoading:C.isPending,configError:C.isError,config:C.data,identities:eo,identity:eu,pairing:ee,staleIdentity:ei.some(e=>e.accountRevision!==Z),projectsLoading:S.isPending,projectsError:S.isError,projectCount:ed.length,selectedProject:!!ec,existingRoute:er.find(e=>e.identityId===eu?.id&&"active"===e.status)},u=g.channelSetup,m=e=>({message:e,step:"connection",action:u.connectionAction}),h=e=>({message:e,step:"pairing",action:u.pairingAction}),x=e=>({message:e,step:"authorization",action:u.authorizationAction}),o.account?.secretConfigured?o.configLoading?m(u.configChecking):o.configError||!o.config?m(u.configLoadFailed):o.account.enabled&&o.config.enabled&&!o.config.emergencyDisabled?o.identity?o.existingRoute?x(u.existingRoute):o.projectsLoading?x(u.projectsLoading):o.projectsError?x(u.projectsError):o.projectCount?o.selectedProject?void 0:x(u.selectProject):x(u.noAutonomyProjects):h(o.identities.length?u.selectIdentity:o.pairing?.status==="claimed"?u.identityClaimed:o.pairing?.status==="pending"?u.identityPending:o.staleIdentity?u.identityStale:u.pairFirst):m(u.channelDisabled):m(u.secretRequired)),eg=!!F&&F.expiresAt>K&&(G?.pairings.some(e=>e.id===F.id&&e.accountId===Y)??!1),ep=!!(y.isError||v.isError);function ef(e){if("active"!==e.status)return null;let t=G?.identities.find(t=>t.id===e.identityId);if(!t||"active"!==t.status)return"identity_inactive";if(t.accountId!==Y||t.accountRevision!==Z)return"config_changed";if(!V?.enabled)return"channel_disabled";if(C.isPending||C.isError)return"pending_review";if(!C.data?.enabled||C.data.emergencyDisabled)return"channel_disabled";if(S.isPending||S.isError)return"pending_review";let a=S.data?.projects.find(t=>t.id===e.projectId);return a?a.copilotAutonomy?!1===e.authorityValid?"authority_revoked":!0!==e.authorityValid?"pending_review":"authorized":"autonomy_off":"project_missing"}let ej=er.some(e=>"authorized"===ef(e)),ey=er.some(e=>"pending_review"===ef(e)),ev=y.isError||v.isError||S.isPending||S.isError?g.channelStatusPending:ej?g.channelStatusAuthorized(X):ey?g.channelStatusPending:g.channelStatusNotEnabled(X,ex?.message??g.channelReadyHint),eb=(e={loadPending:ep||S.isPending||S.isError,authorized:ej,pendingReview:ey,stopped:!!V?.secretConfigured&&(!V.enabled||!!C.data?.emergencyDisabled),blocker:ex}).loadPending?"unknown":e.authorized?"running":e.stopped?"stopped":e.pendingReview||!e.blocker?"authorization":"pairing"===e.blocker.step?"pairing":"authorization"===e.blocker.step?"authorization":"not_connected";async function eN(){await Promise.all([p.invalidateQueries({queryKey:ea}),p.invalidateQueries({queryKey:["project-management-overview"]}),p.invalidateQueries({queryKey:["channel-diagnostics"]}),p.invalidateQueries({queryKey:["channel-integration-config"]}),p.invalidateQueries({queryKey:["copilot-channel-account"]})])}async function eC(e){I(!0),P(""),L("");try{return await e(),await eN(),!0}catch{return P(g.actionFailedError),D(null),!1}finally{I(!1)}}let eS=(0,a.useCallback)(e=>O(e),[]),ew=ep?g.activationLoadError:ex?.message??g.activationReady;return(0,t.jsx)(J.CopilotSettingsShell,{active:"channels",title:g.channelsCardTitle,description:g.channelsCardDescription,children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(y.isPending||v.isPending)&&(0,t.jsx)("p",{role:"status",children:g.channelsLoading}),(y.isError||v.isError||S.isError||C.isError)&&(0,t.jsxs)("div",{role:"alert",children:[g.loadFailed,(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>void eN(),children:g.reloadAction})]}),E&&(0,t.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:E}),B&&(0,t.jsx)("p",{role:"status",className:"text-sm",children:B}),(0,t.jsx)($,{channel:f,busy:w,onSwitch:function(e){j(e),D(null),R(""),H(""),P(""),L("")},state:eb,statusText:ev,blocker:ex,failedChecks:M}),G&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A,{channel:f,channelName:X,account:V,health:W,busy:w,onSaveFeishu:(e,t)=>(D(null),eC(()=>(0,r.saveFeishuChannelAccount)({appId:e,enabled:!0,...t?{appSecret:t}:{}}))),onSaveTelegram:e=>(D(null),eC(()=>(0,r.saveTelegramChannelAccount)({enabled:!0,...e?{botToken:e}:{}}))),onEmergencyStop:()=>{D(null),eC("feishu"===f?r.emergencyStopFeishu:r.emergencyStopTelegram)}},`connection:${f}`),(0,t.jsx)(Q,{channel:f,channelName:X,busy:w,canPair:eh,queriesError:ep,pairing:ee,token:eg&&F?{value:F.value,expiresAt:F.expiresAt}:null,candidate:en,accountIdentities:ei,accountRevision:Z,onCreatePairing:()=>void eC(async()=>{D(null);let e=await ((e,t="feishu")=>d("/pairings",{channel:t,accountId:e}))(V.id,f);await eN(),D({id:e.pairing.id,value:e.token,expiresAt:e.pairing.expiresAt})}),onConfirmPairing:e=>void eC(async()=>{D(null),await d(`/pairings/${encodeURIComponent(e.id)}/confirm`,{revision:e.revision,externalUserId:e.externalUserId,chatId:e.chatId})}),onCancelPairing:e=>{D(null),eC(()=>d(`/pairings/${encodeURIComponent(e)}/cancel`))},onRevokeIdentity:e=>void eC(()=>d(`/identities/${encodeURIComponent(e)}/revoke`)),whitelistIdsText:C.data?.allowedChatIds.join(", ")??"",whitelistLoading:C.isPending,whitelistError:C.isError,onSaveWhitelist:e=>eC(async()=>{await ("telegram"===f?r.updateTelegramIntegrationConfig:r.updateFeishuIntegrationConfig)({allowedChatIds:e})})},`pairing:${f}`),(0,t.jsx)(k,{busy:w,queriesError:ep,channelName:X,identities:eo,identityId:eu?.id??"",onIdentityChange:R,autonomyProjects:ed,projectId:ec?.id??"",onProjectChange:H,projectsLoading:S.isPending,projectsError:S.isError,blocker:ex,activationReason:ew,showBlockerLink:!!ex&&"authorization"!==ex.step,onActivate:()=>void eC(async()=>{await d("/routes",{identityId:eu.id,projectId:ec.id}),L(g.bindingCreated)}),routes:er,routeState:ef,projectName:e=>S.data?.projects.find(t=>t.id===e)?.name??e,onRevokeRoute:e=>void eC(()=>d(`/routes/${encodeURIComponent(e)}/revoke`))},`binding:${f}`),"feishu"===f&&(0,t.jsx)(et,{available:eh&&!ep}),(0,t.jsx)(U,{channelName:X,isPending:N.isPending,isError:N.isError,checks:N.data?.checks,onFailedCountChange:eS}),(0,t.jsx)(T,{deliveries:el})]})]})})}],24125)}]);