forgebadger 0.1.3 → 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 (724) 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/notification-dedupe.d.ts +1 -1
  155. package/dist/gateway/src/services/notification-dedupe.js +1 -1
  156. package/dist/gateway/src/services/notification-events.js +10 -12
  157. package/dist/gateway/src/services/notification-events.js.map +1 -1
  158. package/dist/gateway/src/services/notifications/feishu-notification-card.js +2 -2
  159. package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -1
  160. package/dist/gateway/src/services/notifications/feishu-notifications.js +1 -1
  161. package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -1
  162. package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
  163. package/dist/gateway/src/services/opencode-notification-settings.js +1 -1
  164. package/dist/gateway/src/services/platform-commands/actions.js +2 -10
  165. package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
  166. package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
  167. package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
  168. package/dist/gateway/src/services/platform-commands/catalog.js +2 -5
  169. package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
  170. package/dist/gateway/src/services/platform-commands/tool-commands.js +4 -0
  171. package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
  172. package/dist/gateway/src/services/platform-commands/types.d.ts +2 -0
  173. package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +1 -1
  174. package/dist/gateway/src/services/programmatic-terminal-submit.js +75 -28
  175. package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
  176. package/dist/gateway/src/services/project-config-files.d.ts +1 -1
  177. package/dist/gateway/src/services/project-config-files.js +11 -2
  178. package/dist/gateway/src/services/project-config-files.js.map +1 -1
  179. package/dist/gateway/src/services/project-config-render.js +10 -3
  180. package/dist/gateway/src/services/project-config-render.js.map +1 -1
  181. package/dist/gateway/src/services/project-manager/access.js +1 -1
  182. package/dist/gateway/src/services/project-manager/access.js.map +1 -1
  183. package/dist/gateway/src/services/project-manager/management.d.ts +1 -6
  184. package/dist/gateway/src/services/project-manager/management.js +2 -6
  185. package/dist/gateway/src/services/project-manager/management.js.map +1 -1
  186. package/dist/gateway/src/services/project-manager/task-execution.js +0 -3
  187. package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -1
  188. package/dist/gateway/src/services/provider-capabilities.js +7 -7
  189. package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
  190. package/dist/gateway/src/services/runtime-settings.d.ts +2 -3
  191. package/dist/gateway/src/services/runtime-settings.js +1 -17
  192. package/dist/gateway/src/services/runtime-settings.js.map +1 -1
  193. package/dist/gateway/src/services/session-launch-plan.js +1 -1
  194. package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
  195. package/dist/gateway/src/services/session-manager.d.ts +9 -0
  196. package/dist/gateway/src/services/session-manager.js +51 -7
  197. package/dist/gateway/src/services/session-manager.js.map +1 -1
  198. package/dist/gateway/src/services/session-stop-target.js +10 -2
  199. package/dist/gateway/src/services/session-stop-target.js.map +1 -1
  200. package/dist/gateway/src/services/template-git-import.d.ts +1 -1
  201. package/dist/gateway/src/services/template-git-import.js +3 -2
  202. package/dist/gateway/src/services/template-git-import.js.map +1 -1
  203. package/dist/gateway/src/services/terminal-notification-ingestion.js +2 -2
  204. package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -1
  205. package/dist/gateway/src/websocket/events.js +2 -2
  206. package/dist/gateway/src/websocket/events.js.map +1 -1
  207. package/dist/gateway/src/websocket/terminal.d.ts +1 -1
  208. package/dist/gateway/src/websocket/terminal.js +3 -6
  209. package/dist/gateway/src/websocket/terminal.js.map +1 -1
  210. package/dist/runtime/backup.js +1 -1
  211. package/dist/runtime/config.js +2 -2
  212. package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
  213. package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
  214. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +4 -4
  215. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
  216. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
  217. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +4 -4
  218. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
  219. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
  220. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +4 -4
  221. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
  222. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
  223. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +4 -4
  224. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
  225. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
  226. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +4 -4
  227. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
  228. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
  229. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +4 -4
  230. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
  231. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
  232. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +4 -4
  233. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
  234. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
  235. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +4 -4
  236. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
  237. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
  238. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +4 -4
  239. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
  240. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
  241. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +4 -4
  242. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
  243. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
  244. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +4 -4
  245. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
  246. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
  247. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +4 -4
  248. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  249. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  250. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +4 -4
  251. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
  252. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
  253. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +4 -4
  254. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
  255. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
  256. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +4 -4
  257. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
  258. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
  259. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +4 -4
  260. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  261. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  262. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +4 -4
  263. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
  264. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
  265. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +4 -4
  266. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
  267. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  268. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +4 -4
  269. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  270. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  271. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +4 -4
  272. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -1
  273. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +1 -1
  274. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +4 -4
  275. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
  276. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
  277. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +4 -4
  278. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  279. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  280. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +4 -4
  281. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -1
  282. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +1 -1
  283. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +4 -4
  284. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
  285. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
  286. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +4 -4
  287. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
  288. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
  289. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +4 -4
  290. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
  291. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
  292. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +4 -4
  293. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
  294. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
  295. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +4 -4
  296. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
  297. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
  298. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +4 -4
  299. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
  300. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
  301. package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  302. package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  303. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  304. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  305. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  306. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  307. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  308. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  309. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  310. package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  311. package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
  312. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  313. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  314. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  315. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  316. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  317. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  318. package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
  319. package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +14 -14
  320. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
  321. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
  322. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  323. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +14 -14
  324. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
  325. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
  326. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
  327. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
  328. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +16 -16
  329. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
  330. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
  331. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  332. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  333. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +16 -16
  334. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
  335. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
  336. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
  337. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
  338. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +16 -16
  339. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
  340. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
  341. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  342. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  343. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +16 -16
  344. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
  345. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
  346. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
  347. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
  348. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +16 -16
  349. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
  350. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
  351. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  352. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  353. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +16 -16
  354. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
  355. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
  356. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
  357. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
  358. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +16 -16
  359. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
  360. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
  361. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  362. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  363. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +16 -16
  364. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
  365. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
  366. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
  367. package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
  368. package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +17 -17
  369. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
  370. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  371. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  372. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +17 -17
  373. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
  374. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
  375. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
  376. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
  377. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  378. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
  379. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
  380. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
  381. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
  382. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
  383. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  384. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
  385. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
  386. package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
  387. package/dist/web/standalone/packages/web/.next/server/app/history.rsc +17 -17
  388. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
  389. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
  390. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  391. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +17 -17
  392. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
  393. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
  394. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
  395. package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
  396. package/dist/web/standalone/packages/web/.next/server/app/index.rsc +17 -17
  397. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
  398. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  399. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
  400. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  401. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
  402. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  403. package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
  404. package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
  405. package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
  406. package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
  407. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
  408. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
  409. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
  410. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
  411. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
  412. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
  413. package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
  414. package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  415. package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
  416. package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
  417. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
  418. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
  419. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
  420. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  421. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  422. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
  423. package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
  424. package/dist/web/standalone/packages/web/.next/server/app/members.rsc +17 -17
  425. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
  426. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
  427. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  428. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +17 -17
  429. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
  430. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
  431. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
  432. package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
  433. package/dist/web/standalone/packages/web/.next/server/app/models.rsc +17 -17
  434. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
  435. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
  436. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  437. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +17 -17
  438. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
  439. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
  440. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
  441. package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
  442. package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +17 -17
  443. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
  444. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
  445. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  446. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +17 -17
  447. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
  448. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
  449. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
  450. package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
  451. package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +17 -17
  452. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
  453. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
  454. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  455. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  456. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +17 -17
  457. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
  458. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
  459. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
  460. package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
  461. package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +17 -17
  462. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
  463. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
  464. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  465. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  466. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +17 -17
  467. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
  468. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
  469. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
  470. package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
  471. package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +16 -16
  472. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
  473. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  474. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  475. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +16 -16
  476. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  477. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
  478. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  479. package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
  480. package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
  481. package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
  482. package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
  483. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
  484. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
  485. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
  486. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
  487. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
  488. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
  489. package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
  490. package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +17 -17
  491. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
  492. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
  493. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  494. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +17 -17
  495. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
  496. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
  497. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  498. package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
  499. package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +17 -17
  500. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
  501. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
  502. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  503. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  504. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  505. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  506. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  507. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -1
  508. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +16 -16
  509. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +4 -4
  510. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +3 -3
  511. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  512. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  513. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +16 -16
  514. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_head.segment.rsc +4 -4
  515. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +6 -6
  516. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +2 -2
  517. package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
  518. package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +16 -16
  519. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
  520. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
  521. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  522. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  523. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +16 -16
  524. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
  525. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
  526. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
  527. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -1
  528. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +16 -16
  529. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +4 -4
  530. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +3 -3
  531. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  532. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  533. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +16 -16
  534. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +4 -4
  535. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +6 -6
  536. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +2 -2
  537. package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
  538. package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +17 -17
  539. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
  540. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  541. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  542. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +17 -17
  543. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
  544. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
  545. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  546. package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
  547. package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +14 -14
  548. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
  549. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
  550. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  551. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +14 -14
  552. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
  553. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
  554. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
  555. package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
  556. package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +17 -17
  557. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
  558. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
  559. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  560. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +17 -17
  561. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
  562. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
  563. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
  564. package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
  565. package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +16 -16
  566. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
  567. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
  568. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  569. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +16 -16
  570. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
  571. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
  572. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
  573. package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
  574. package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +14 -14
  575. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
  576. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
  577. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  578. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +14 -14
  579. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
  580. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
  581. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  582. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03inbb0._.js +3 -0
  583. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
  584. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0mvyp71._.js +3 -0
  585. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~hqizj._.js +3 -0
  586. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13w0f1~._.js +3 -0
  587. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-8y7~8._.js +3 -0
  588. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-gw886._.js +3 -0
  589. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_038nxrj._.js +3 -0
  590. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03n-g57._.js +3 -0
  591. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04xf5q9._.js +3 -0
  592. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055d-ao._.js +3 -0
  593. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05zx7t7._.js +3 -0
  594. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_12w9fro._.js → _06.zuca._.js} +2 -2
  595. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07xrtbe._.js +3 -0
  596. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09qlnot._.js +3 -0
  597. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +1 -1
  598. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_6knqk._.js +3 -0
  599. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_7nkt6._.js +3 -0
  600. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0aj4ajk._.js +3 -0
  601. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0awj3ix._.js +3 -0
  602. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +3 -0
  603. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eyvq.q._.js +3 -0
  604. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l.3_po._.js +3 -0
  605. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p-i6oy._.js +3 -0
  606. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgkuef._.js +3 -0
  607. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qlo6ux._.js +3 -0
  608. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +1 -1
  609. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +1 -1
  610. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xjjrmf._.js +3 -0
  611. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xxhxhp._.js +3 -0
  612. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~6bpee._.js +3 -0
  613. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12h5j52._.js +3 -0
  614. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
  615. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
  616. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +1 -1
  617. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
  618. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
  619. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +1 -1
  620. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
  621. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
  622. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +1 -1
  623. package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
  624. package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
  625. package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
  626. package/dist/web/standalone/packages/web/.next/static/chunks/{0txrk44pdmdsw.js → 01-hqvam3w0~~.js} +1 -1
  627. package/dist/web/standalone/packages/web/.next/static/chunks/02net~gj5seu8.js +1 -0
  628. package/dist/web/standalone/packages/web/.next/static/chunks/{0g.jepdilt76o.js → 034bfwrk4dtch.js} +1 -1
  629. package/dist/web/standalone/packages/web/.next/static/chunks/042m5fzwa.5rb.js +1 -0
  630. package/dist/web/standalone/packages/web/.next/static/chunks/04t8.94ylt2j6.js +1 -0
  631. package/dist/web/standalone/packages/web/.next/static/chunks/079pi3esz7ztj.js +1 -0
  632. package/dist/web/standalone/packages/web/.next/static/chunks/07dsa~2xhj7fp.js +1 -0
  633. package/dist/web/standalone/packages/web/.next/static/chunks/084df1q.t96px.js +1 -0
  634. package/dist/web/standalone/packages/web/.next/static/chunks/09-77kwttecp8.js +1 -0
  635. package/dist/web/standalone/packages/web/.next/static/chunks/0ahamdhz5rqd0.js +1 -0
  636. package/dist/web/standalone/packages/web/.next/static/chunks/0aymq5zo45jwo.css +1 -0
  637. package/dist/web/standalone/packages/web/.next/static/chunks/0a~p89jkiv-xy.js +1 -0
  638. package/dist/web/standalone/packages/web/.next/static/chunks/0blz40tkx36ya.js +1 -0
  639. package/dist/web/standalone/packages/web/.next/static/chunks/0bo35rh3et6nh.js +1 -0
  640. package/dist/web/standalone/packages/web/.next/static/chunks/0c3i0-wz63ys6.js +1 -0
  641. package/dist/web/standalone/packages/web/.next/static/chunks/0c3qwax9lt4tx.js +1 -0
  642. package/dist/web/standalone/packages/web/.next/static/chunks/0crxf3wawwn83.js +2 -0
  643. package/dist/web/standalone/packages/web/.next/static/chunks/0gz0he~jrjk8a.js +3 -0
  644. package/dist/web/standalone/packages/web/.next/static/chunks/0j3ve5insz6.3.js +1 -0
  645. package/dist/web/standalone/packages/web/.next/static/chunks/0l-uwd_dr1mbk.js +1 -0
  646. package/dist/web/standalone/packages/web/.next/static/chunks/{0.1mxnjmxr~su.js → 0nxwqjcq79-4u.js} +2 -2
  647. package/dist/web/standalone/packages/web/.next/static/chunks/{0rvmfvjpdwe.w.js → 0p3t7a~kdodga.js} +1 -1
  648. package/dist/web/standalone/packages/web/.next/static/chunks/0rs04qz9_.2h5.js +1 -0
  649. package/dist/web/standalone/packages/web/.next/static/chunks/0sv0hnum1q_mj.js +1 -0
  650. package/dist/web/standalone/packages/web/.next/static/chunks/0tf8lwgh~fndc.js +1 -0
  651. package/dist/web/standalone/packages/web/.next/static/chunks/0wnkj_m4ke__p.js +1 -0
  652. package/dist/web/standalone/packages/web/.next/static/chunks/0xszl0jyt02ly.js +1 -0
  653. package/dist/web/standalone/packages/web/.next/static/chunks/0y8o9-d.39uek.js +1 -0
  654. package/dist/web/standalone/packages/web/.next/static/chunks/0~.y-iqdl1g2v.js +1 -0
  655. package/dist/web/standalone/packages/web/.next/static/chunks/{0b5zptp8.z.nn.js → 0~0f5pw_ezzrh.js} +1 -1
  656. package/dist/web/standalone/packages/web/.next/static/chunks/117spe00n0ln_.js +1 -0
  657. package/dist/web/standalone/packages/web/.next/static/chunks/129g7a~bc67a8.js +1 -0
  658. package/dist/web/standalone/packages/web/.next/static/chunks/13qimumcmf67m.js +1 -0
  659. package/dist/web/standalone/packages/web/.next/static/chunks/15y1w~u~sxuqn.js +1 -0
  660. package/dist/web/standalone/packages/web/.next/static/chunks/16evga~sgvskl.js +1 -0
  661. package/dist/web/standalone/packages/web/.next/static/chunks/1708mw9d18sq2.js +1 -0
  662. package/dist/web/standalone/packages/web/public/forgebadger-runtime.js +1 -1
  663. package/docs/PERSONAL-TEAM-WORKFLOWS.md +6 -6
  664. package/docs/README.zh-CN.md +5 -5
  665. package/docs/README.zh-TW.md +5 -5
  666. package/package.json +1 -1
  667. package/dist/gateway/src/services/adapter-autonomy.d.ts +0 -10
  668. package/dist/gateway/src/services/adapter-autonomy.js +0 -25
  669. package/dist/gateway/src/services/adapter-autonomy.js.map +0 -1
  670. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +0 -3
  671. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +0 -3
  672. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +0 -3
  673. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +0 -3
  674. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +0 -3
  675. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +0 -3
  676. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +0 -3
  677. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +0 -3
  678. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +0 -3
  679. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +0 -3
  680. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +0 -3
  681. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +0 -3
  682. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +0 -3
  683. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +0 -3
  684. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +0 -3
  685. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +0 -3
  686. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +0 -3
  687. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +0 -3
  688. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +0 -3
  689. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +0 -3
  690. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +0 -3
  691. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +0 -3
  692. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +0 -3
  693. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +0 -3
  694. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +0 -3
  695. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +0 -3
  696. package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +0 -3
  697. package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +0 -1
  698. package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +0 -1
  699. package/dist/web/standalone/packages/web/.next/static/chunks/04iwl3440l6ci.js +0 -1
  700. package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +0 -1
  701. package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +0 -2
  702. package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +0 -1
  703. package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +0 -1
  704. package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +0 -1
  705. package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +0 -1
  706. package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +0 -1
  707. package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +0 -1
  708. package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +0 -1
  709. package/dist/web/standalone/packages/web/.next/static/chunks/0qz-8gatr0e58.js +0 -1
  710. package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +0 -1
  711. package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +0 -1
  712. package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +0 -1
  713. package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +0 -1
  714. package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +0 -1
  715. package/dist/web/standalone/packages/web/.next/static/chunks/0vu012c_~rsq2.js +0 -1
  716. package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +0 -1
  717. package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +0 -1
  718. package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +0 -1
  719. package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +0 -1
  720. package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +0 -1
  721. package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +0 -1
  722. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_buildManifest.js +0 -0
  723. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_clientMiddlewareManifest.js +0 -0
  724. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
1
  module.exports=[68236,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(72637),e=a.i(13376),f=a.i(14365),g=a.i(45164),h=a.i(60584),i=a.i(35485);let j=(0,i.default)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]),k=(0,i.default)("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);var l=a.i(10567),m=a.i(36262);let n=(0,i.default)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var o=a.i(2337);let p=(0,i.default)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),q=(0,i.default)("MonitorSmartphone",[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]),r=(0,i.default)("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);var s=a.i(4837),t=a.i(39747),u=a.i(26248),v=a.i(83124),w=a.i(26643),x=a.i(4730),y=a.i(97494),z=a.i(90991),A=a.i(55068),B=a.i(3030),C=a.i(70458),D=a.i(79914),E=a.i(10392),F=a.i(78281),G=a.i(29649),H=a.i(39042);let I={currentPassword:"",newPassword:"",confirmPassword:""};function J(){let{t:a}=(0,D.useLanguage)(),d=(0,E.useAdminCopy)(),e=(0,u.useQueryClient)(),[f,g]=(0,c.useState)(I),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(!1),{data:p,isLoading:r,isError:x}=(0,t.useQuery)({queryKey:["auth-sessions"],queryFn:H.listAuthSessions}),J=(0,s.useMutation)({mutationFn:()=>(0,H.changePassword)(f.currentPassword,f.newPassword),onSuccess:()=>{g(I),i(!1),k(null),m(a("settings.account.passwordChanged")),(0,G.logout)(),setTimeout(()=>{window.location.href="/login"},1200)},onError:b=>{k(b.message||a("settings.account.passwordChangeFailed"))}}),L=(0,s.useMutation)({mutationFn:a=>(0,H.revokeAuthSession)(a),onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),M=(0,s.useMutation)({mutationFn:H.revokeOtherAuthSessions,onSuccess:()=>{e.invalidateQueries({queryKey:["auth-sessions"]})}}),N=p?.sessions??[],O=(0,c.useMemo)(()=>N.filter(a=>!a.current).length,[N]);return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(v.KeyRound,{className:"size-4"}),title:a("settings.account.title"),description:a("settings.account.description")}),(0,b.jsxs)(C.CardContent,{className:"space-y-6",children:[l&&(0,b.jsx)("p",{className:"rounded-md border border-emerald-400/40 bg-emerald-400/10 px-3 py-2 text-xs text-emerald-400",children:l}),h?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"current-password",className:"text-xs font-medium",children:a("settings.account.currentPassword")}),(0,b.jsx)(A.Input,{id:"current-password",type:"password",autoComplete:"current-password",value:f.currentPassword,onChange:a=>g(b=>({...b,currentPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"new-password",className:"text-xs font-medium",children:a("settings.account.newPassword")}),(0,b.jsx)(A.Input,{id:"new-password",type:"password",autoComplete:"new-password",value:f.newPassword,onChange:a=>g(b=>({...b,newPassword:a.target.value}))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(B.Label,{htmlFor:"confirm-password",className:"text-xs font-medium",children:a("settings.account.confirmPassword")}),(0,b.jsx)(A.Input,{id:"confirm-password",type:"password",autoComplete:"new-password",value:f.confirmPassword,onChange:a=>g(b=>({...b,confirmPassword:a.target.value}))})]})]}),j&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:j}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.passwordHint")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"sm",disabled:J.isPending,onClick:function(){g(I),k(null),m(null),i(!1)},children:a("common.cancel")}),(0,b.jsx)(y.Button,{type:"button",size:"sm",variant:"brand",disabled:J.isPending||!f.currentPassword||!f.newPassword||!f.confirmPassword,onClick:function(){(k(null),m(null),f.newPassword.length<8)?k(a("settings.account.passwordTooShort")):f.newPassword!==f.confirmPassword?k(a("settings.account.passwordMismatch")):J.mutate()},children:J.isPending?a("settings.account.passwordChanging"):a("settings.account.passwordSubmit")})]})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.passwordSubmit")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.passwordHint")})]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(!0),children:a("settings.account.passwordSubmit")})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(q,{className:"size-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("settings.account.devicesTitle")}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:a("settings.account.devicesDescription")})]})]}),O>0&&(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:M.isPending,onClick:()=>o(!0),children:[(0,b.jsx)(w.LogOut,{className:"size-3.5"}),M.isPending?a("settings.account.revoking"):a("settings.account.revokeOthers")]})]}),r?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesLoading")}):x?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.account.devicesLoadFailed")}):0===N.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.account.devicesEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:N.map(a=>(0,b.jsx)(K,{session:a,revoking:L.isPending,onRevoke:()=>L.mutate(a.id)},a.id))})]})]}),(0,b.jsx)(z.ConfirmDialog,{open:n,destructive:!0,pending:M.isPending,title:d.revokeOthersConfirmTitle,description:d.revokeOthersConfirmDescription,onOpenChange:o,onConfirm:()=>{o(!1),M.mutate()}})]})}function K({session:a,revoking:c,onRevoke:d}){let{t:e}=(0,D.useLanguage)(),f=(0,D.useUiLocale)(),g=(0,E.useAdminCopy)();return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:function(a){if(!a)return"";let b=/Edg\//.test(a)?"Edge":/Chrome\//.test(a)?"Chrome":/Safari\//.test(a)?"Safari":/Firefox\//.test(a)?"Firefox":"";return[/Windows/.test(a)?"Windows":/Mac OS X/.test(a)?"macOS":/Linux/.test(a)?"Linux":/Android/.test(a)?"Android":/iPhone|iPad/.test(a)?"iOS":"",b].filter(Boolean).join(" · ")}(a.userAgent)||e("settings.account.unknownDevice")}),a.current&&(0,b.jsx)(x.Badge,{children:e("settings.account.currentDevice")})]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs font-medium text-foreground/80",children:[e("settings.account.lastActive"),":"," ",function(a,b){let c=Date.parse(a);if(Number.isNaN(c))return new Date(a).toLocaleString(b);let d=Math.round((c-Date.now())/1e3),e=Math.abs(d),f=new Intl.RelativeTimeFormat(b,{numeric:"auto"});return e<60?f.format(d,"second"):e<3600?f.format(Math.round(d/60),"minute"):e<86400?f.format(Math.round(d/3600),"hour"):f.format(Math.round(d/86400),"day")}(a.lastSeenAt,f)]}),(0,b.jsxs)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:[e("settings.account.signedInAt"),":"," ",new Date(a.createdAt).toLocaleString(f)," · ",g.deviceIdPrefix," ",a.id.slice(0,8)]})]}),!a.current&&(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:c,onClick:d,children:e(c?"settings.account.revoking":"settings.account.revoke")})]})}var L=a.i(78725),M=a.i(68557),N=a.i(44935),O=a.i(76897),P=a.i(45783),Q=a.i(14060),R=a.i(23834),S=a.i(35133),T=a.i(6023),U=a.i(61875),V=a.i(90409),W=a.i(39465);function X(){let{t:a}=(0,D.useLanguage)(),d=(0,u.useQueryClient)(),[e,f]=(0,c.useState)(null),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)({}),[p,q]=(0,c.useState)({}),[r,v]=(0,c.useState)(!1),{data:w,isLoading:z,isFetching:A,isError:B,refetch:E}=(0,t.useQuery)({queryKey:R.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:H.discoverAdapters}),{data:G,isFetching:I,isError:J,refetch:K}=(0,t.useQuery)({queryKey:["adapter-updates"],queryFn:()=>(0,H.checkAdapterUpdates)(),staleTime:3e5}),{data:O,isLoading:P,isFetching:S,isError:X,refetch:Z}=(0,t.useQuery)({queryKey:["dependencies"],queryFn:H.getDependencies}),$=(0,U.useOrderedAdapters)(w?.adapters??[]),_=(0,L.useSensors)((0,L.useSensor)(L.PointerSensor,{activationConstraint:{distance:6}}),(0,L.useSensor)(L.KeyboardSensor,{coordinateGetter:M.sortableKeyboardCoordinates})),aa=(0,s.useMutation)({mutationFn:a=>(0,H.putAdapterOrder)(a),onMutate:async a=>{await d.cancelQueries({queryKey:U.ADAPTER_ORDER_QUERY_KEY});let b=d.getQueryData(U.ADAPTER_ORDER_QUERY_KEY);return d.setQueryData(U.ADAPTER_ORDER_QUERY_KEY,{order:a}),v(!1),{previous:b}},onError:(a,b,c)=>{d.setQueryData(U.ADAPTER_ORDER_QUERY_KEY,c?.previous??{order:[]}),v(!0)},onSettled:()=>d.invalidateQueries({queryKey:U.ADAPTER_ORDER_QUERY_KEY})});async function ab(){k(!0),m(!1);try{let a=(await Promise.allSettled([Z(),E(),(0,H.checkAdapterUpdates)(!0)]))[2];"fulfilled"===a.status?d.setQueryData(["adapter-updates"],a.value):m(!0),await d.invalidateQueries({queryKey:["dashboard-summary"]})}finally{k(!1)}}async function ac(a){f(a),o(b=>({...b,[a]:void 0}));try{let b=await (0,H.updateAdapter)(a);o(c=>({...c,[a]:b.versionStillBehind?"behind":"done"})),await Promise.all([E(),Z(),K()])}catch{o(b=>({...b,[a]:"failed"}))}finally{f(null)}}async function ad(a){i(a),q(b=>({...b,[a]:void 0}));try{let b=await (0,H.installAdapter)(a);q(c=>({...c,[a]:b.commandAvailable?"done":"not_detected"})),await Promise.allSettled([E(),Z(),K()])}catch{q(b=>({...b,[a]:"failed"}))}finally{i(null)}}let ae=O?.terminalRuntime,af=(0,V.getTerminalRuntimeSetupGuidance)(ae?.mode,ae?.supported),ag=ae?.persistence,ah=O?.dependencies.find(a=>a.name===ag),ai=ah?.version??ah?.error??ae?.message,aj=A||S||I||j;return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(g.Cpu,{className:"size-4"}),title:a("settings.adapters"),description:a("settings.adaptersDescription"),action:(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void ab(),disabled:aj,children:[(0,b.jsx)(Q.RefreshCw,{className:(0,W.cn)("size-3.5",aj&&"animate-spin")}),a(aj?"settings.discoveryRefreshing":"settings.discoveryRefresh")]})}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[P?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.dependenciesLoading")}):X?(0,b.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(N.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.dependenciesLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]})}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:(0,W.cn)("size-1.5 shrink-0 rounded-full",af.blocked?"bg-red-400":"bg-emerald-400")}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a("settings.terminalRuntimeReadiness")})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a(af.descriptionKey)}),ai&&(0,b.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-muted-foreground",children:ai})]}),(0,b.jsx)(x.Badge,{variant:af.blocked?"destructive":"secondary",children:a(af.blocked?"settings.launchBlocked":"settings.launchReady")})]}),af.blocked&&(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(T.RuntimeSetupCommands,{guidance:af})})]}),z?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.discoveryLoading")}):B?(0,b.jsxs)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-3",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(N.AlertTriangle,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:a("settings.discoveryLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.discoveryLoadFailedDescription")})]})]}),(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void E(),children:[(0,b.jsx)(Q.RefreshCw,{className:"size-3.5"}),a("settings.discoveryRetry")]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterReadinessNotice")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.adapterOrderHint")}),r&&(0,b.jsx)("p",{role:"status",className:"text-xs text-destructive",children:a("settings.adapterOrderSaveFailed")}),(0,b.jsx)(L.DndContext,{sensors:_,collisionDetection:L.closestCenter,onDragEnd:function(a){let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=$.map(a=>a.id),e=d.indexOf(b.id),f=d.indexOf(c.id);e<0||f<0||aa.mutate((0,M.arrayMove)(d,e,f))},children:(0,b.jsx)(M.SortableContext,{items:$.map(a=>a.id),strategy:M.verticalListSortingStrategy,children:(0,b.jsx)("div",{className:"space-y-2",children:$.map(a=>(0,b.jsx)(Y,{adapter:a,update:l?void 0:G?.updates.find(b=>b.id===a.id),canUpdate:G?.canUpdate??!1,canInstall:G?.canInstall??!1,checkingUpdate:I||j,updateCheckFailed:J||l,updating:e===a.id,installing:h===a.id,operationBlocked:null!==e||null!==h,feedback:n[a.id],installFeedback:p[a.id],onUpdate:()=>void ac(a.id),onInstall:()=>void ad(a.id)},a.id))})})})]})]})]})}function Y(a){let{t:c}=(0,D.useLanguage)(),{attributes:d,listeners:e,setNodeRef:f,transform:g,transition:h,isDragging:i}=(0,M.useSortable)({id:a.adapter.id});return(0,b.jsxs)("div",{ref:f,style:{transform:g?`translate3d(${g.x}px, ${g.y}px, 0)`:void 0,transition:h??void 0},className:(0,W.cn)("flex items-start gap-1",i&&"relative z-10 opacity-80"),children:[(0,b.jsx)("button",{type:"button","aria-label":c("settings.adapterOrderDragHandle"),className:"mt-3 shrink-0 cursor-grab touch-none rounded p-0.5 text-muted-foreground hover:text-foreground active:cursor-grabbing",...d,...e,children:(0,b.jsx)(P.GripVertical,{className:"size-4"})}),(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)(Z,{...a})})]})}function Z({adapter:a,update:c,canUpdate:d,canInstall:e,checkingUpdate:f,updateCheckFailed:g,updating:h,installing:i,operationBlocked:j,feedback:k,installFeedback:l,onUpdate:m,onInstall:n}){let{t:o}=(0,D.useLanguage)();return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 p-3 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,b.jsx)("span",{className:(0,W.cn)("size-1.5 shrink-0 rounded-full",a.available?"bg-emerald-400":"bg-red-400")}),(0,b.jsx)(S.CliBrandChip,{aiTool:a.id}),(0,b.jsxs)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:[a.command," --version"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(x.Badge,{variant:a.available?"secondary":"outline",children:o(a.available?"settings.available":"settings.missing")}),(0,b.jsx)(x.Badge,{variant:"supported"===a.supportLevel?"secondary":"outline",children:o("supported"===a.supportLevel?"settings.supported":"settings.prototype")}),a.launchEnabled?(0,b.jsx)(x.Badge,{children:o("settings.launchEnabled")}):(0,b.jsx)(x.Badge,{variant:"outline",children:o("settings.launchDisabled")})]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-muted-foreground",children:a.version??a.error??a.configDir}),a.available&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[c?.state==="update_available"?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-amber-500",children:[o("homebrew"===c.latestSource?"settings.adapterUpdateAvailableHomebrew":"settings.adapterUpdateAvailable"),": ",c.latestVersion]}),d?(0,b.jsxs)(y.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f,onClick:m,children:[h?(0,b.jsx)(Q.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(O.Download,{className:"size-3.5"}),o(h?"settings.adapterUpdating":"settings.adapterUpdateNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateAdminOnly")}),(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.command})]}):c?.state==="up_to_date"?(0,b.jsxs)("span",{className:"text-muted-foreground",children:[o("homebrew"===c.latestSource?"settings.adapterUpToDateHomebrew":"settings.adapterUpToDate"),": ",c.installedVersion]}):c?.state==="check_failed"||g?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateCheckFailed")}):f?(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterUpdateChecking")}):null,k&&(0,b.jsx)("span",{role:"status",className:"failed"===k?"text-destructive":"text-muted-foreground",children:o("done"===k?"settings.adapterUpdateDone":"behind"===k?"settings.adapterUpdateBehind":"settings.adapterUpdateFailed")})]}),"missing"===a.status&&c?.state==="missing"&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:c.installCommand}),e?(0,b.jsxs)(y.Button,{type:"button",size:"sm",variant:"outline",disabled:j||f||!!c.installRequiresNode||"done"===l,onClick:n,children:[i?(0,b.jsx)(Q.RefreshCw,{className:"size-3.5 animate-spin"}):(0,b.jsx)(O.Download,{className:"size-3.5"}),o(i?"settings.adapterInstalling":"settings.adapterInstallNow")]}):(0,b.jsx)("span",{className:"text-muted-foreground",children:o("settings.adapterInstallAdminOnly")}),c.installRequiresNode&&(0,b.jsxs)("span",{className:"text-amber-500",children:[o("settings.adapterInstallRequiresNode")," ",c.installRequiresNode,"+"]})]}),l&&(0,b.jsx)("p",{role:"status",className:(0,W.cn)("mt-2 text-xs","failed"===l?"text-destructive":"text-muted-foreground"),children:o("done"===l?"settings.adapterInstallDone":"not_detected"===l?"settings.adapterInstallNotDetected":"settings.adapterInstallFailed")}),a.runtimeModes.length>0&&(0,b.jsx)("div",{className:"mt-1.5 font-mono text-xs text-muted-foreground",children:a.runtimeModes.join(" / ")})]})}var $=a.i(31692);let _=(0,i.default)("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);function aa(){let{t:a}=(0,D.useLanguage)(),c=(0,D.useUiLocale)(),e=(0,E.useAdminCopy)(),{data:f,isLoading:g}=(0,t.useQuery)({queryKey:["audit-logs","settings"],queryFn:()=>(0,H.listAuditLogs)({limit:8})});return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(_,{className:"size-4"}),title:a("settings.auditHistory"),description:a("settings.auditDescription"),action:(0,b.jsx)(y.Button,{asChild:!0,size:"sm",variant:"ghost",className:"text-muted-foreground",children:(0,b.jsxs)(d.default,{href:"/history",children:[e.auditViewAll,(0,b.jsx)($.ArrowRight,{className:"size-3.5"})]})})}),(0,b.jsx)(C.CardContent,{children:g?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditLoading")}):(f?.auditLogs.length??0)===0?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2.5 py-6 text-center",children:[(0,b.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(_,{className:"size-4"})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.auditEmpty")})]}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:f?.auditLogs.map(a=>(0,b.jsxs)("div",{className:"px-3 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:(0,E.auditActionLabel)(e,a.action)}),(0,b.jsx)(x.Badge,{variant:"outline",children:a.resourceType})]}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:new Date(a.createdAt).toLocaleString(c)})]},a.id))})})]})}let ab=(0,i.default)("Route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);var ac=a.i(85564),ad=a.i(10917);function ae(){let{t:a}=(0,D.useLanguage)(),c=(0,u.useQueryClient)(),{data:d,isLoading:e,isError:f}=(0,t.useQuery)({queryKey:["claude-route"],queryFn:H.getClaudeRoute,retry:!1}),g=(0,s.useMutation)({mutationFn:a=>(0,H.setClaudeRoute)(a),onSuccess:a=>{c.setQueryData(["claude-route"],a)},onError:b=>{ac.toast.error(b instanceof Error?b.message:a("settings.claudeRouteUpdateFailed"))}}),h=d?.enabled===!0;return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(ab,{className:"size-4"}),title:a("settings.claudeRoute"),description:a("settings.claudeRouteDescription"),action:(0,b.jsx)(ad.Switch,{checked:h,disabled:e||f||g.isPending,onCheckedChange:a=>g.mutate(a),"aria-label":a("settings.claudeRoute")})}),(0,b.jsx)(C.CardContent,{className:"space-y-3",children:f?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.claudeRouteLoadFailed")}):d?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(x.Badge,{variant:h?"secondary":"outline",children:h?a("settings.claudeRouteStateEnabled"):a("settings.claudeRouteStateDisabled")}),(0,b.jsx)("span",{className:"break-all font-mono text-xs text-muted-foreground",children:d.gatewayUrl})]}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[a("settings.claudeRouteAssignmentLabel"),":"," ",d.assignment?(0,b.jsx)("span",{className:"font-medium text-foreground",children:d.assignment.providerName}):a("settings.claudeRouteNoAssignment")]}),h&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("settings.claudeRouteGatewayDown")})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")})})]})}function af(){let{t:a}=(0,D.useLanguage)(),[d,e]=(0,c.useState)("idle");async function f(){e("exporting");try{var a;let b,c,d,f,{report:g}=await (0,H.exportDiagnostics)();b=(a=g).generatedAt.replace(/[:.]/g,"-"),c=new Blob([`${JSON.stringify(a,null,2)}
2
- `],{type:"application/json"}),d=URL.createObjectURL(c),(f=document.createElement("a")).href=d,f.download=`forgebadger-diagnostics-${b}.json`,f.click(),URL.revokeObjectURL(d),e("success")}catch{e("error")}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(O.Download,{className:"size-4"}),title:a("settings.diagnostics"),description:a("settings.diagnosticsDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:f,disabled:"exporting"===d,children:[(0,b.jsx)(O.Download,{className:"size-4"}),a("exporting"===d?"settings.diagnosticsExporting":"settings.diagnosticsExport")]}),(0,b.jsx)("p",{className:(0,W.cn)("text-xs","success"===d?"text-emerald-400":"error"===d?"text-destructive":"text-muted-foreground"),children:a("success"===d?"settings.diagnosticsExported":"error"===d?"settings.diagnosticsExportFailed":"settings.diagnosticsNotice")})]})]})}var ag=a.i(91284),ah=a.i(14027),ai=a.i(37134),aj=a.i(16569),ak=a.i(62384),al=a.i(10339);function am(){let{t:a}=(0,D.useLanguage)(),{user:d}=(0,al.useAuth)(),e=(0,u.useQueryClient)(),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(["read"]),[j,k]=(0,c.useState)([]),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),A=(0,t.useQuery)({queryKey:H.mcpStatusKey,queryFn:H.getMcpStatus,retry:!1}),B=A.data?.enabled===!0,E=(0,t.useQuery)({queryKey:["projects"],queryFn:H.listProjects,enabled:B}),G=(0,t.useQuery)({queryKey:ag.runtimeSettingsQueryKey,queryFn:H.getRuntimeSettings,retry:!1,enabled:d?.role==="admin"}),I=d?.role==="admin"&&G.data?(0,H.runtimeSettingsValue)(G.data,"mcp_enabled"):void 0,J=(0,s.useMutation)({mutationFn:a=>(0,H.updateRuntimeSettings)({mcp_enabled:a}),onSuccess:(b,c)=>{e.invalidateQueries({queryKey:ag.runtimeSettingsQueryKey}),e.invalidateQueries({queryKey:H.mcpStatusKey}),ac.toast.success(c?a("settings.restartRequired"):a("settings.mcpDisablePendingRestart"))},onError:()=>ac.toast.error(a("settings.instanceSaveError"))}),K=(0,t.useQuery)({queryKey:H.mcpTokensKey,queryFn:H.listMcpTokens,retry:!1,enabled:B,refetchInterval:3e4}),L=(0,s.useMutation)({mutationFn:H.createMcpToken,onSuccess:a=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),p(a.plaintext),g(""),k([])},onError:b=>ac.toast.error(b instanceof H.GatewayApiError?b.message:a("settings.mcpCreateFailed"))}),M=(0,s.useMutation)({mutationFn:H.revokeMcpToken,onSuccess:()=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),r(null)},onError:()=>ac.toast.error(a("settings.mcpRevokeFailed"))}),N=A.data?.endpoint??"",O=void 0!==I&&!G.data?.readonly;async function P(b){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(b),ac.toast.success(a("settings.mcpCopied"))}catch{ac.toast.error(a("settings.mcpCopyFailed"))}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(l.Plug,{className:"size-4"}),title:a("settings.mcp"),description:a("settings.mcpDescription"),action:(0,b.jsxs)(b.Fragment,{children:[A.data&&(0,b.jsx)(x.Badge,{variant:B?"secondary":"outline",children:B?a("settings.mcpStateEnabled"):a("settings.mcpStateDisabled")}),O&&(0,b.jsx)(ad.Switch,{checked:I,onCheckedChange:function(a){a?w(!0):J.mutate(!1)},disabled:J.isPending,"aria-label":a("settings.mcpToggle")})]})}),(0,b.jsx)(C.CardContent,{className:"space-y-3",children:A.isError?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.mcpLoadFailed")}):A.isLoading?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")}):(0,b.jsxs)(b.Fragment,{children:[B?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.mcpEndpoint")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:N}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0","aria-label":a("settings.mcpEndpoint"),onClick:()=>void P(N),children:(0,b.jsx)(ah.Copy,{className:"size-3.5"})})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[a("settings.mcpDisabledHint"),void 0===I&&(0,b.jsx)("span",{className:"mt-1 block font-mono",children:"FORGEBADGER_MCP_ENABLED=true"})]}),B&&(0,b.jsx)(an,{endpoint:N,scopes:h,onToggleScope:function(a){let b=h.includes(a);if(!b||1!==h.length)if("cli_dispatch"!==a||b)if("operate"===a&&b){let a=h.filter(a=>"operate"!==a&&"cli_dispatch"!==a);i(a.length>0?a:["read"])}else i(b?h.filter(b=>b!==a):[...h,a]);else i([...new Set([...h,"operate","cli_dispatch"])])},onCreate:function(a){a.preventDefault(),!f.trim()||0===h.length||0===j.length||E.isError||E.isLoading||(null===m||Number.isInteger(m)&&!(m<1)&&!(m>87600))&&L.mutate({name:f.trim(),scopes:h,projectIds:j,expiresInHours:m})},creating:L.isPending,name:f,onNameChange:g,projectIds:j,onProjectIdsChange:k,projects:E.data?.projects??[],projectsLoading:E.isLoading,projectsError:E.isError,onAllScopes:()=>i(["read","operate","cli_dispatch"]),expiresInHours:m,onExpiresInHoursChange:n,tokens:K.data?.tokens??void 0,loading:K.isLoading,error:K.isError,onRevoke:r})]})}),(0,b.jsx)(as,{endpoint:N,plaintext:o,onClose:()=>p(null),onCopy:P}),(0,b.jsx)(z.ConfirmDialog,{open:v,pending:J.isPending,title:a("settings.mcpEnableConfirmTitle"),description:a("settings.mcpEnableConfirmDescription"),confirmLabel:a("settings.mcpToggle"),onOpenChange:w,onConfirm:()=>{w(!1),J.mutate(!0)}}),(0,b.jsx)(ak.Dialog,{open:null!==q,onOpenChange:a=>!a&&r(null),children:(0,b.jsxs)(ak.DialogContent,{children:[(0,b.jsxs)(ak.DialogHeader,{children:[(0,b.jsx)(ak.DialogTitle,{children:a("settings.mcpRevokeConfirm")}),(0,b.jsx)(ak.DialogDescription,{children:q?.name})]}),(0,b.jsxs)(ak.DialogFooter,{children:[(0,b.jsx)(y.Button,{variant:"outline",onClick:()=>r(null),children:a("settings.mcpClose")}),(0,b.jsx)(y.Button,{variant:"destructive",disabled:M.isPending,onClick:()=>q&&M.mutate(q.id),children:a("settings.mcpRevoke")})]})]})})]})}function an({endpoint:a,scopes:c,onToggleScope:d,onCreate:e,creating:f,name:g,onNameChange:h,projectIds:i,onProjectIdsChange:j,projects:k,projectsLoading:l,projectsError:m,onAllScopes:n,expiresInHours:o,onExpiresInHoursChange:p,tokens:q,loading:r,error:s,onRevoke:t}){let u=(0,D.useUiLocale)(),{t:v}=(0,D.useLanguage)(),w=null!==o&&(!Number.isInteger(o)||o<1||o>87600),z=[];g.trim()||z.push(v("settings.mcpFormMissingName")),0===i.length&&z.push(v("settings.mcpFormMissingProjects")),l&&z.push(v("common.loading")),m&&z.push(v("settings.mcpFormProjectsUnavailable")),w&&z.push(v("settings.mcpFormInvalidExpiry"));let C=z.join("、");return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("form",{onSubmit:e,className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-token-name",children:v("settings.mcpName")}),(0,b.jsx)(A.Input,{id:"mcp-token-name",value:g,onChange:a=>h(a.target.value),maxLength:64,className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 pb-1.5",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(aj.Checkbox,{checked:c.includes("read"),onCheckedChange:()=>d("read"),"aria-label":v("settings.mcpScopeRead")}),v("settings.mcpScopeRead")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(aj.Checkbox,{checked:c.includes("operate"),onCheckedChange:()=>d("operate"),"aria-label":v("settings.mcpScopeOperate")}),v("settings.mcpScopeOperate")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(aj.Checkbox,{checked:c.includes("cli_dispatch"),onCheckedChange:()=>d("cli_dispatch"),"aria-label":v("settings.mcpScopeCliDispatch")}),v("settings.mcpScopeCliDispatch")]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:n,children:v("settings.mcpAllPermissions")}),(0,b.jsx)(y.Button,{type:"submit",size:"sm",className:"h-8",disabled:f||z.length>0,title:z.length>0?v("settings.mcpFormCannotCreate").replace("{reasons}",C):void 0,children:f?v("common.loading"):v("settings.mcpCreate")})]})]}),z.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:v("settings.mcpFormCannotCreate").replace("{reasons}",C)}):null,(0,b.jsx)(ao,{projects:k,loading:l,error:m,selected:i,onChange:j}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-lifetime",children:v("settings.mcpLifetime")}),(0,b.jsxs)("select",{id:"mcp-lifetime",className:"h-8 rounded-md border border-input bg-background px-2 text-xs",value:null===o?"permanent":"limited",onChange:a=>p("permanent"===a.target.value?null:24),children:[(0,b.jsx)("option",{value:"permanent",children:v("settings.mcpPermanent")}),(0,b.jsx)("option",{value:"limited",children:v("settings.mcpLimited")})]})]}),null!==o&&(0,b.jsxs)("div",{className:"w-32 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-expiry-hours",children:v("settings.mcpExpiresHours")}),(0,b.jsx)(A.Input,{id:"mcp-expiry-hours",type:"number",min:1,max:87600,value:o,onChange:a=>p(Number(a.target.value)),className:"h-8 text-xs"})]}),(0,b.jsx)("p",{className:"pb-1 text-xs text-muted-foreground",children:v("settings.mcpLifetimeHelp")})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:v("settings.mcpScopeOperateHelp")})]}),(0,b.jsx)("div",{className:"rounded-md border border-border/70",children:s?(0,b.jsx)("p",{className:"p-3 text-xs text-destructive",children:v("settings.mcpLoadFailed")}):r?(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:v("common.loading")}):q&&q.length>0?(0,b.jsx)("div",{className:"divide-y divide-border/70",children:q.map(a=>(0,b.jsxs)("div",{className:(0,W.cn)("flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2.5",a.revoked&&"opacity-60"),children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-sm font-medium",children:a.name}),a.scopes.map(a=>(0,b.jsx)(x.Badge,{variant:"operate"===a?"secondary":"outline",children:"operate"===a?v("settings.mcpScopeOperate"):"cli_dispatch"===a?v("settings.mcpScopeCliDispatch"):v("settings.mcpScopeRead")},a)),a.projectIds&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.projectIds.map(a=>k.find(b=>b.id===a)?.name??v("settings.mcpUnavailableProject")).join("、")}),!a.projectIds&&!a.allowedRoot&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:v("settings.mcpLegacyAccess")}),a.allowedRoot&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.allowedRoot}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.expiresAt?`${v("settings.mcpExpiresAt")}: ${new Date(a.expiresAt).toLocaleString(u)}`:v("settings.mcpPermanent")}),a.revoked&&(0,b.jsx)(x.Badge,{variant:"destructive",children:v("settings.mcpRevoked")}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:a.lastUsedAt?`${v("settings.mcpLastUsed")}: ${new Date(a.lastUsedAt).toLocaleString(u)}`:v("settings.mcpNeverUsed")}),!a.revoked&&(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0 text-destructive hover:text-destructive","aria-label":`${v("settings.mcpRevoke")} ${a.name}`,onClick:()=>t(a),children:(0,b.jsx)(ai.Trash2,{className:"size-3.5"})})]},a.id))}):(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:v("settings.mcpEmpty")})}),(0,b.jsx)(aq,{endpoint:a})]})}function ao({projects:a,loading:d,error:e,selected:f,onChange:g}){let{t:h}=(0,D.useLanguage)(),[i,j]=(0,c.useState)(""),k=a.filter(a=>`${a.name} ${a.path}`.toLowerCase().includes(i.trim().toLowerCase()));return(0,b.jsxs)("fieldset",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("legend",{className:"px-1 text-xs font-medium",children:[h("settings.mcpProjects")," · ",f.length]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(A.Input,{"aria-label":h("settings.mcpSearchProjects"),placeholder:h("settings.mcpSearchProjects"),value:i,onChange:a=>j(a.target.value),className:"h-8 min-w-0 text-xs"}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:d||e||0===a.length||a.length>200,onClick:()=>g(a.map(a=>a.id)),children:h("settings.mcpSelectAll")}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===f.length,onClick:()=>g([]),children:h("settings.mcpClear")})]}),d?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):e?(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("settings.mcpProjectsFailed")}):0===k.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h(0===a.length?"settings.mcpNoProjects":"settings.mcpNoMatches")}):(0,b.jsx)("div",{className:"max-h-48 space-y-1 overflow-y-auto",children:k.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 hover:bg-muted/40",children:[(0,b.jsx)(aj.Checkbox,{"aria-label":a.name,checked:f.includes(a.id),disabled:!f.includes(a.id)&&f.length>=200,onCheckedChange:b=>g(!0===b?[...f,a.id]:f.filter(b=>b!==a.id))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-xs font-medium",children:a.name}),(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("settings.mcpProjectsHelp")})]})}function ap(a,b){return JSON.stringify({mcpServers:{forgebadger:{type:"http",url:a,headers:{Authorization:`Bearer ${b}`}}}},null,2)}function aq({endpoint:a}){let{t:c}=(0,D.useLanguage)();return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("settings.mcpConnectHelp")}),(0,b.jsx)(ar,{label:c("settings.mcpConnectJson"),content:ap(a,c("settings.mcpTokenPlaceholder"))})]})}function ar({label:a,content:c}){let{t:d}=(0,D.useLanguage)();async function e(){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(c),ac.toast.success(d("settings.mcpCopied"))}catch{ac.toast.error(d("settings.mcpCopyFailed"))}}return(0,b.jsxs)("div",{className:"min-w-0 max-w-full overflow-hidden rounded-md border border-border/70 bg-muted/20",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":a,onClick:()=>void e(),children:(0,b.jsx)(ah.Copy,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"min-w-0 max-w-full overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:c})]})}function as({endpoint:a,plaintext:c,onClose:d,onCopy:e}){let{t:f}=(0,D.useLanguage)();return(0,b.jsx)(ak.Dialog,{open:null!==c,onOpenChange:a=>!a&&d(),children:(0,b.jsxs)(ak.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(ak.DialogHeader,{children:[(0,b.jsx)(ak.DialogTitle,{children:f("settings.mcpPlaintextTitle")}),(0,b.jsx)(ak.DialogDescription,{children:f("settings.mcpPlaintextWarning")})]}),(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:c}),(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:()=>c&&e(c),children:[(0,b.jsx)(ah.Copy,{className:"size-3.5"}),f("settings.mcpCopy")]})]}),c&&(0,b.jsx)(ar,{label:f("settings.mcpConnectJson"),content:ap(a,c)}),(0,b.jsx)(ak.DialogFooter,{children:(0,b.jsx)(y.Button,{onClick:d,children:f("settings.mcpClose")})})]})})}var at=a.i(60427),au=a.i(22510),av=a.i(53302),aw=a.i(68442),ax=a.i(49613);function ay(){let{t:a}=(0,D.useLanguage)(),d=(0,aw.usePetPreference)(),e=(0,c.useId)(),[f,g]=(0,c.useState)("idle");return(0,b.jsxs)(C.Card,{children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(at.Bot,{className:"size-4","aria-hidden":"true"}),title:a("settings.pet"),description:a("settings.petDescription"),titleId:e}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":e,className:"grid gap-3 sm:grid-cols-2",children:ax.PET_OPTIONS.map(c=>{let f=d===c.id,h=`${e}-${c.id}-name`,i=`${e}-${c.id}-description`;return(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":f,"aria-labelledby":h,"aria-describedby":i,onClick:()=>{var a;return a=c.id,void g((0,ax.writePetPreference)(a)?"saved":"error")},className:(0,W.cn)("flex items-center gap-3 rounded-md border p-3 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",f?"border-brand/60 bg-brand/10":"border-border hover:bg-muted/40"),children:[(0,b.jsx)("span",{className:"shrink-0 rounded-md bg-muted/40 p-1","aria-hidden":"true",children:(0,b.jsx)(av.RobotSprite,{petId:c.id,frame:"stand",size:80})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)("span",{id:h,className:"block text-sm font-medium",children:a(c.nameKey)}),(0,b.jsx)("span",{id:i,className:"block text-xs leading-relaxed text-muted-foreground",children:a(c.descriptionKey)}),f&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-xs text-brand","aria-hidden":"true",children:[(0,b.jsx)(au.Check,{className:"size-3"}),a("settings.petSelected")]})]})]},c.id)})}),"saved"===f&&(0,b.jsx)("p",{role:"status",className:"text-xs text-muted-foreground",children:a("settings.petSaved")}),"error"===f&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:a("settings.petSaveFailed")})]})]})}function az(){let{t:a}=(0,D.useLanguage)(),c=(0,E.useAdminCopy)(),{data:d}=(0,t.useQuery)({queryKey:["dependencies"],queryFn:H.getDependencies}),e=d?.terminalRuntime?.persistence??a("settings.notDetected");return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(o.ShieldCheck,{className:"size-4"}),title:a("settings.securityBaseline"),description:a("settings.securityDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:[(0,b.jsx)(aA,{label:a("settings.jwtAuth"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aA,{label:a("settings.tenantIsolation"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aA,{label:a("settings.apiKeyEncryption"),value:"AES-256-GCM"}),(0,b.jsx)(aA,{label:a("settings.terminalPersistence"),value:e})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:c.securityBaselineGuaranteedHint})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:a("settings.secretsNotice")})]})]})]})}function aA({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2.5 text-sm",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),(0,b.jsx)(x.Badge,{variant:"secondary",children:c})]})}var aB=a.i(23579);let aC="cyan",aD=[{id:"cyan",nameKey:"settings.themeCyan",brand:"187 86% 53%",brandForeground:"220 30% 6%",swatch:"#22d3ee"},{id:"orange",nameKey:"settings.themeOrange",brand:"24 100% 50%",brandForeground:"0 0% 100%",swatch:"#ff8000"},{id:"violet",nameKey:"settings.themeViolet",brand:"258 90% 66%",brandForeground:"0 0% 100%",swatch:"#8b5cf6"},{id:"emerald",nameKey:"settings.themeEmerald",brand:"160 84% 39%",brandForeground:"160 60% 6%",swatch:"#10b981"},{id:"blue",nameKey:"settings.themeBlue",brand:"217 91% 60%",brandForeground:"0 0% 100%",swatch:"#3b82f6"},{id:"rose",nameKey:"settings.themeRose",brand:"350 89% 60%",brandForeground:"0 0% 100%",swatch:"#f43f5e"},{id:"amber",nameKey:"settings.themeAmber",brand:"38 92% 55%",brandForeground:"38 60% 8%",swatch:"#f59e0b"}],aE="forgebadger.accent";function aF(a){return aD.some(b=>b.id===a)}var aG=a.i(20409),aH=a.i(42167),aI=a.i(61047);let aJ=[{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"en",label:"English"}],aK=[{id:"appearance",icon:k,labelKey:"settings.section.appearance",descriptionKey:"settings.section.appearanceDescription"},{id:"account",icon:o.ShieldCheck,labelKey:"settings.section.account",descriptionKey:"settings.section.accountDescription"},{id:"adapters",icon:g.Cpu,labelKey:"settings.section.adapters",descriptionKey:"settings.section.adaptersDescription"},{id:"integrations",icon:l.Plug,labelKey:"settings.section.integrations",descriptionKey:"settings.section.integrationsDescription"},{id:"instance",icon:m.Server,labelKey:"settings.section.instance",descriptionKey:"settings.section.instanceDescription"}];a.s(["default",0,function(){let{language:a,setLanguage:g,t:i}=(0,D.useLanguage)(),{user:l}=(0,al.useAuth)(),m=(0,e.useSearchParams)(),[o,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)("unsupported"),[v,w]=(0,c.useState)(aC),{mode:x}=(0,aB.useColorMode)(),[z,E]=(0,c.useState)(aH.DEFAULT_TERMINAL_FONT.fontFamily),[G,H]=(0,c.useState)(String(aH.DEFAULT_TERMINAL_FONT.fontSize));function I(){let a=Number(G);(0,aH.setTerminalFont)({fontFamily:z,fontSize:Number.isFinite(a)&&""!==G?a:aH.DEFAULT_TERMINAL_FONT.fontSize})}(0,c.useEffect)(()=>{w(function(a=window.localStorage){let b=a.getItem(aE);return aF(b)?b:aC}());let a=(0,aH.readStoredTerminalFont)();E(a.fontFamily),H(String(a.fontSize)),s((0,aI.getBrowserNotificationPreference)()),u((0,aI.getBrowserNotificationPermission)())},[]);let K=l?.role==="admin",L=K?aK:aK.filter(a=>"instance"!==a.id),M=m.get("section"),N=L.find(a=>a.id===M)??aK[0];async function O(a){if(!a){(0,aI.setBrowserNotificationPreference)(!1),s(!1),u((0,aI.getBrowserNotificationPermission)());return}let b="default"===(0,aI.getBrowserNotificationPermission)()?await (0,aI.requestBrowserNotificationPermission)():(0,aI.getBrowserNotificationPermission)();u(b);let c="granted"===b;(0,aI.setBrowserNotificationPreference)(c),s(c)}return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:i("settings.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("settings.subtitle")})]}),(0,b.jsxs)("div",{className:"lg:grid lg:grid-cols-[200px_minmax(0,1fr)] lg:gap-8",children:[(0,b.jsx)("nav",{"aria-label":i("settings.title"),className:"mb-4 flex gap-1 overflow-x-auto lg:sticky lg:top-6 lg:mb-0 lg:flex-col lg:self-start",children:L.map(a=>(0,b.jsxs)(d.default,{href:`/settings?section=${a.id}`,"aria-current":N.id===a.id?"page":void 0,className:(0,W.cn)("flex h-8 shrink-0 items-center gap-2.5 rounded-md px-2.5 text-[13px] font-medium transition-colors duration-150",N.id===a.id?"bg-brand/10 text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[(0,b.jsx)(a.icon,{className:(0,W.cn)("size-4 shrink-0",N.id===a.id?"text-brand":"text-muted-foreground/70")}),i(a.labelKey)]},a.id))}),(0,b.jsxs)("div",{className:"min-w-0",children:["appearance"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.colorMode"),description:i("settings.colorModeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:[{id:"light",labelKey:"settings.colorModeLight",icon:p},{id:"dark",labelKey:"settings.colorModeDark",icon:j},{id:"system",labelKey:"settings.colorModeSystem",icon:q}].map(a=>{let c=x===a.id;return(0,b.jsxs)(y.Button,{type:"button","aria-pressed":c,variant:c?"brand":"outline",size:"sm",onClick:()=>(0,aG.setColorMode)(a.id),children:[(0,b.jsx)(a.icon,{className:"size-4"}),i(a.labelKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(h.Globe2,{className:"size-4"}),title:i("settings.language"),description:i("settings.languageDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aJ.map(c=>(0,b.jsx)(y.Button,{type:"button",variant:a===c.code?"brand":"outline",size:"sm",onClick:()=>g(c.code),children:c.label},c.code))})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.theme"),description:i("settings.themeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aD.map(a=>{let c=v===a.id;return(0,b.jsxs)("button",{type:"button","aria-pressed":c,onClick:()=>w(function(a,b=window.localStorage){let c=aF(a)?a:aC;return document.documentElement.dataset.accent=c,b.setItem(aE,c),c}(a.id)),className:c?"flex items-center gap-2 rounded-md border border-brand/60 bg-brand/10 px-3 py-2 text-sm text-foreground transition-colors duration-150":"flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm text-muted-foreground transition-colors duration-150 hover:border-brand/40 hover:bg-muted/40 hover:text-foreground",children:[(0,b.jsx)("span",{className:"size-3.5 rounded-full ring-1 ring-border",style:{backgroundColor:a.swatch},"aria-hidden":"true"}),i(a.nameKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(r,{className:"size-4"}),title:i("settings.terminalFont"),description:i("settings.terminalFontDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"grid min-w-52 flex-1 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-family",className:"text-xs text-muted-foreground",children:i("settings.terminalFontFamily")}),(0,b.jsx)(A.Input,{id:"terminal-font-family",value:z,onChange:a=>E(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()},spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)("div",{className:"grid w-24 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-size",className:"text-xs text-muted-foreground",children:i("settings.terminalFontSize")}),(0,b.jsx)(A.Input,{id:"terminal-font-size",type:"number",min:aH.MIN_TERMINAL_FONT_SIZE,max:aH.MAX_TERMINAL_FONT_SIZE,value:G,onChange:a=>H(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()}})]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:function(){E(aH.DEFAULT_TERMINAL_FONT.fontFamily),H(String(aH.DEFAULT_TERMINAL_FONT.fontSize)),(0,aH.setTerminalFont)(aH.DEFAULT_TERMINAL_FONT)},children:i("settings.terminalFontReset")})]})})]}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"160ms"},children:(0,b.jsx)(ay,{})}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"200ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(n,{className:"size-4"}),title:i("settings.console"),description:i("settings.consoleDescription")}),(0,b.jsx)(C.CardContent,{className:"space-y-2",children:(0,b.jsx)(F.SettingRow,{title:i("settings.browserNotifications"),description:"denied"===t?i("settings.browserNotificationsDenied"):i("settings.browserNotificationsDescription"),checked:o&&"granted"===t,disabled:"unsupported"===t,onCheckedChange:O,icon:(0,b.jsx)(f.Bell,{className:"size-4 text-muted-foreground"})})})]})]}),"account"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(J,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(az,{})})]}),"adapters"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(X,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(ae,{})})]}),"integrations"===N.id&&(0,b.jsx)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(am,{})})}),"instance"===N.id&&K&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(ag.InstanceRuntimeSettings,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(af,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:(0,b.jsx)(aa,{})})]})]},N.id)]})]})}],68236)}];
2
+ `],{type:"application/json"}),d=URL.createObjectURL(c),(f=document.createElement("a")).href=d,f.download=`forgebadger-diagnostics-${b}.json`,f.click(),URL.revokeObjectURL(d),e("success")}catch{e("error")}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(O.Download,{className:"size-4"}),title:a("settings.diagnostics"),description:a("settings.diagnosticsDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:f,disabled:"exporting"===d,children:[(0,b.jsx)(O.Download,{className:"size-4"}),a("exporting"===d?"settings.diagnosticsExporting":"settings.diagnosticsExport")]}),(0,b.jsx)("p",{className:(0,W.cn)("text-xs","success"===d?"text-emerald-400":"error"===d?"text-destructive":"text-muted-foreground"),children:a("success"===d?"settings.diagnosticsExported":"error"===d?"settings.diagnosticsExportFailed":"settings.diagnosticsNotice")})]})]})}var ag=a.i(91284),ah=a.i(14027),ai=a.i(38094),aj=a.i(37134),ak=a.i(16569),al=a.i(62384),am=a.i(10339);function an(){let{t:a}=(0,D.useLanguage)(),{user:d}=(0,am.useAuth)(),e=(0,u.useQueryClient)(),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(["read"]),[j,k]=(0,c.useState)([]),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(null),[v,w]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),E=(0,t.useQuery)({queryKey:H.mcpStatusKey,queryFn:H.getMcpStatus,retry:!1}),G=E.data?.enabled===!0,I=(0,t.useQuery)({queryKey:["projects"],queryFn:H.listProjects,enabled:G}),J=(0,t.useQuery)({queryKey:ag.runtimeSettingsQueryKey,queryFn:H.getRuntimeSettings,retry:!1,enabled:d?.role==="admin"}),K=d?.role==="admin"&&J.data?(0,H.runtimeSettingsValue)(J.data,"mcp_enabled"):void 0,L=(0,s.useMutation)({mutationFn:a=>(0,H.updateRuntimeSettings)({mcp_enabled:a}),onSuccess:(b,c)=>{e.invalidateQueries({queryKey:ag.runtimeSettingsQueryKey}),e.invalidateQueries({queryKey:H.mcpStatusKey}),ac.toast.success(c?a("settings.restartRequired"):a("settings.mcpDisablePendingRestart"))},onError:()=>ac.toast.error(a("settings.instanceSaveError"))}),M=(0,t.useQuery)({queryKey:H.mcpTokensKey,queryFn:H.listMcpTokens,retry:!1,enabled:G,refetchInterval:3e4}),N=(0,s.useMutation)({mutationFn:H.createMcpToken,onSuccess:a=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),p(a.plaintext),g(""),k([])},onError:b=>ac.toast.error(b instanceof H.GatewayApiError?b.message:a("settings.mcpCreateFailed"))}),O=(0,s.useMutation)({mutationFn:H.revokeMcpToken,onSuccess:()=>{e.invalidateQueries({queryKey:H.mcpTokensKey}),r(null)},onError:()=>ac.toast.error(a("settings.mcpRevokeFailed"))}),P=E.data?.endpoint??"",Q=void 0!==K&&!J.data?.readonly;async function R(b){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(b),ac.toast.success(a("settings.mcpCopied"))}catch{ac.toast.error(a("settings.mcpCopyFailed"))}}return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(l.Plug,{className:"size-4"}),title:a("settings.mcp"),description:a("settings.mcpDescription"),action:(0,b.jsxs)(b.Fragment,{children:[E.data&&(0,b.jsx)(x.Badge,{variant:G?"secondary":"outline",children:G?a("settings.mcpStateEnabled"):a("settings.mcpStateDisabled")}),Q&&(0,b.jsx)(ad.Switch,{checked:K,onCheckedChange:function(a){a?B(!0):L.mutate(!1)},disabled:L.isPending,"aria-label":a("settings.mcpToggle")})]})}),(0,b.jsx)(C.CardContent,{className:"space-y-3",children:E.isError?(0,b.jsx)("p",{className:"text-xs text-destructive",children:a("settings.mcpLoadFailed")}):E.isLoading?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a("common.loading")}):(0,b.jsxs)(b.Fragment,{children:[G?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.mcpEndpoint")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:P}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 shrink-0","aria-label":a("settings.mcpEndpoint"),onClick:()=>void R(P),children:(0,b.jsx)(ah.Copy,{className:"size-3.5"})})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[a("settings.mcpDisabledHint"),void 0===K&&(0,b.jsx)("span",{className:"mt-1 block font-mono",children:"FORGEBADGER_MCP_ENABLED=true"})]}),G&&(0,b.jsx)(ao,{endpoint:P,scopes:h,onToggleScope:function(a){let b=h.includes(a);if(!b||1!==h.length)if("cli_dispatch"!==a&&"lifecycle"!==a||b)if("operate"===a&&b){let a=h.filter(a=>"operate"!==a&&"cli_dispatch"!==a&&"lifecycle"!==a);i(a.length>0?a:["read"])}else i(b?h.filter(b=>b!==a):[...h,a]);else i([...new Set([...h,"operate",a])])},onCreate:function(a){a.preventDefault(),!f.trim()||0===h.length||0===j.length||I.isError||I.isLoading||(null===m||Number.isInteger(m)&&!(m<1)&&!(m>87600))&&N.mutate({name:f.trim(),scopes:h,projectIds:j,expiresInHours:m})},creating:N.isPending,name:f,onNameChange:g,projectIds:j,onProjectIdsChange:k,projects:I.data?.projects??[],projectsLoading:I.isLoading,projectsError:I.isError,onAllScopes:()=>i(["read","operate","cli_dispatch","lifecycle"]),expiresInHours:m,onExpiresInHoursChange:n,tokens:M.data?.tokens??void 0,loading:M.isLoading,error:M.isError,onRevoke:r,onEdit:a=>{w(a),I.refetch()}})]})}),(0,b.jsx)(au,{endpoint:P,plaintext:o,onClose:()=>p(null),onCopy:R}),v&&(0,b.jsx)(aq,{token:v,projects:I.data?.projects??[],loading:I.isLoading||I.isFetching,error:I.isError,onClose:()=>w(null)},v.id),(0,b.jsx)(z.ConfirmDialog,{open:A,pending:L.isPending,title:a("settings.mcpEnableConfirmTitle"),description:a("settings.mcpEnableConfirmDescription"),confirmLabel:a("settings.mcpToggle"),onOpenChange:B,onConfirm:()=>{B(!1),L.mutate(!0)}}),(0,b.jsx)(al.Dialog,{open:null!==q,onOpenChange:a=>!a&&r(null),children:(0,b.jsxs)(al.DialogContent,{children:[(0,b.jsxs)(al.DialogHeader,{children:[(0,b.jsx)(al.DialogTitle,{children:a("settings.mcpRevokeConfirm")}),(0,b.jsx)(al.DialogDescription,{children:q?.name})]}),(0,b.jsxs)(al.DialogFooter,{children:[(0,b.jsx)(y.Button,{variant:"outline",onClick:()=>r(null),children:a("settings.mcpClose")}),(0,b.jsx)(y.Button,{variant:"destructive",disabled:O.isPending,onClick:()=>q&&O.mutate(q.id),children:a("settings.mcpRevoke")})]})]})})]})}function ao({endpoint:a,scopes:c,onToggleScope:d,onCreate:e,creating:f,name:g,onNameChange:h,projectIds:i,onProjectIdsChange:j,projects:k,projectsLoading:l,projectsError:m,onAllScopes:n,expiresInHours:o,onExpiresInHoursChange:p,tokens:q,loading:r,error:s,onRevoke:t,onEdit:u}){let v=(0,D.useUiLocale)(),{t:w}=(0,D.useLanguage)(),z=null!==o&&(!Number.isInteger(o)||o<1||o>87600),C=[];g.trim()||C.push(w("settings.mcpFormMissingName")),0===i.length&&C.push(w("settings.mcpFormMissingProjects")),l&&C.push(w("common.loading")),m&&C.push(w("settings.mcpFormProjectsUnavailable")),z&&C.push(w("settings.mcpFormInvalidExpiry"));let E=C.join("、");return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("form",{onSubmit:e,className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-token-name",children:w("settings.mcpName")}),(0,b.jsx)(A.Input,{id:"mcp-token-name",value:g,onChange:a=>h(a.target.value),maxLength:64,className:"h-8 text-xs"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 pb-1.5",children:[(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(ak.Checkbox,{checked:c.includes("read"),onCheckedChange:()=>d("read"),"aria-label":w("settings.mcpScopeRead")}),w("settings.mcpScopeRead")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(ak.Checkbox,{checked:c.includes("operate"),onCheckedChange:()=>d("operate"),"aria-label":w("settings.mcpScopeOperate")}),w("settings.mcpScopeOperate")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(ak.Checkbox,{checked:c.includes("cli_dispatch"),onCheckedChange:()=>d("cli_dispatch"),"aria-label":w("settings.mcpScopeCliDispatch")}),w("settings.mcpScopeCliDispatch")]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-1.5 text-xs",children:[(0,b.jsx)(ak.Checkbox,{checked:c.includes("lifecycle"),onCheckedChange:()=>d("lifecycle"),"aria-label":w("settings.mcpScopeLifecycle")}),w("settings.mcpScopeLifecycle")]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:n,children:w("settings.mcpAllPermissions")}),(0,b.jsx)(y.Button,{type:"submit",size:"sm",className:"h-8",disabled:f||C.length>0,title:C.length>0?w("settings.mcpFormCannotCreate").replace("{reasons}",E):void 0,children:f?w("common.loading"):w("settings.mcpCreate")})]})]}),C.length>0?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpFormCannotCreate").replace("{reasons}",E)}):null,(0,b.jsx)(ap,{projects:k,loading:l,error:m,selected:i,onChange:j}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-lifetime",children:w("settings.mcpLifetime")}),(0,b.jsxs)("select",{id:"mcp-lifetime",className:"h-8 rounded-md border border-input bg-background px-2 text-xs",value:null===o?"permanent":"limited",onChange:a=>p("permanent"===a.target.value?null:24),children:[(0,b.jsx)("option",{value:"permanent",children:w("settings.mcpPermanent")}),(0,b.jsx)("option",{value:"limited",children:w("settings.mcpLimited")})]})]}),null!==o&&(0,b.jsxs)("div",{className:"w-32 space-y-1",children:[(0,b.jsx)(B.Label,{className:"text-xs",htmlFor:"mcp-expiry-hours",children:w("settings.mcpExpiresHours")}),(0,b.jsx)(A.Input,{id:"mcp-expiry-hours",type:"number",min:1,max:87600,value:o,onChange:a=>p(Number(a.target.value)),className:"h-8 text-xs"})]}),(0,b.jsx)("p",{className:"pb-1 text-xs text-muted-foreground",children:w("settings.mcpLifetimeHelp")})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpScopeOperateHelp")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:w("settings.mcpLifecycleHelp")})]}),(0,b.jsx)("div",{className:"rounded-md border border-border/70",children:s?(0,b.jsx)("p",{className:"p-3 text-xs text-destructive",children:w("settings.mcpLoadFailed")}):r?(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:w("common.loading")}):q&&q.length>0?(0,b.jsx)("div",{className:"divide-y divide-border/70",children:q.map(a=>(0,b.jsxs)("div",{className:(0,W.cn)("flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2.5",a.revoked&&"opacity-60"),children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-sm font-medium",children:a.name}),a.scopes.map(a=>(0,b.jsx)(x.Badge,{variant:"operate"===a?"secondary":"outline",children:"lifecycle"===a?w("settings.mcpScopeLifecycle"):"operate"===a?w("settings.mcpScopeOperate"):"cli_dispatch"===a?w("settings.mcpScopeCliDispatch"):w("settings.mcpScopeRead")},a)),a.projectIds&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.projectIds.map(a=>k.find(b=>b.id===a)?.name??w("settings.mcpUnavailableProject")).join("、")}),!a.projectIds&&!a.allowedRoot&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:w("settings.mcpLegacyAccess")}),a.allowedRoot&&(0,b.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a.allowedRoot}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.expiresAt?`${w("settings.mcpExpiresAt")}: ${new Date(a.expiresAt).toLocaleString(v)}`:w("settings.mcpPermanent")}),a.revoked&&(0,b.jsx)(x.Badge,{variant:"destructive",children:w("settings.mcpRevoked")}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:a.lastUsedAt?`${w("settings.mcpLastUsed")}: ${new Date(a.lastUsedAt).toLocaleString(v)}`:w("settings.mcpNeverUsed")}),!a.revoked&&(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0","aria-label":`${w("settings.mcpEditProjects")} ${a.name}`,onClick:()=>u(a),disabled:!!a.expiresAt&&Date.parse(a.expiresAt)<=Date.now(),children:(0,b.jsx)(ai.Pencil,{className:"size-3.5"})}),!a.revoked&&(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7 shrink-0 text-destructive hover:text-destructive","aria-label":`${w("settings.mcpRevoke")} ${a.name}`,onClick:()=>t(a),children:(0,b.jsx)(aj.Trash2,{className:"size-3.5"})})]},a.id))}):(0,b.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:w("settings.mcpEmpty")})}),(0,b.jsx)(as,{endpoint:a})]})}function ap({projects:a,loading:d,error:e,selected:f,onChange:g}){let{t:h}=(0,D.useLanguage)(),[i,j]=(0,c.useState)(""),k=a.filter(a=>`${a.name} ${a.path}`.toLowerCase().includes(i.trim().toLowerCase())),l=d||e?[]:f.filter(b=>!a.some(a=>a.id===b));return(0,b.jsxs)("fieldset",{className:"min-w-0 space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("legend",{className:"px-1 text-xs font-medium",children:[h("settings.mcpProjects")," · ",f.length]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(A.Input,{"aria-label":h("settings.mcpSearchProjects"),placeholder:h("settings.mcpSearchProjects"),value:i,onChange:a=>j(a.target.value),className:"h-8 min-w-0 text-xs"}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",disabled:d||e||0===a.length||a.length>200,onClick:()=>g(a.map(a=>a.id)),children:h("settings.mcpSelectAll")}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===f.length,onClick:()=>g([]),children:h("settings.mcpClear")})]}),d?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("common.loading")}):e?(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("settings.mcpProjectsFailed")}):0===k.length?(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h(0===a.length?"settings.mcpNoProjects":"settings.mcpNoMatches")}):(0,b.jsx)("div",{className:"max-h-48 space-y-1 overflow-y-auto",children:k.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 hover:bg-muted/40",children:[(0,b.jsx)(ak.Checkbox,{"aria-label":a.name,checked:f.includes(a.id),disabled:!f.includes(a.id)&&f.length>=200,onCheckedChange:b=>g(!0===b?[...f,a.id]:f.filter(b=>b!==a.id))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate text-xs font-medium",children:a.name}),(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("settings.mcpProjectsHelp")}),l.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)(ak.Checkbox,{checked:!0,"aria-label":`${h("settings.mcpUnavailableProject")} ${a}`,onCheckedChange:()=>g(f.filter(b=>b!==a))}),h("settings.mcpUnavailableProject")," · ",a]},a))]})}function aq({token:a,projects:d,loading:e,error:f,onClose:g}){let{t:h}=(0,D.useLanguage)(),i=(0,u.useQueryClient)(),[j,k]=(0,c.useState)(a.projectIds??[]),l=(0,s.useMutation)({mutationFn:H.updateMcpTokenProjects,onError:()=>{i.invalidateQueries({queryKey:H.mcpTokensKey})},onSuccess:()=>{i.invalidateQueries({queryKey:H.mcpTokensKey}),g()}}),m=j.some(a=>!d.some(b=>b.id===a));return(0,b.jsx)(al.Dialog,{open:!0,onOpenChange:a=>{a||l.isPending||g()},children:(0,b.jsxs)(al.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(al.DialogHeader,{children:[(0,b.jsxs)(al.DialogTitle,{children:[h("settings.mcpEditProjects")," · ",a.name]}),(0,b.jsx)(al.DialogDescription,{children:h("settings.mcpEditProjectsHelp")})]}),(0,b.jsx)(ap,{projects:d,loading:e,error:f,selected:j,onChange:k}),l.isError&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:l.error instanceof H.GatewayApiError?l.error.message:h("settings.mcpProjectsSaveFailed")}),(0,b.jsxs)(al.DialogFooter,{children:[(0,b.jsx)(y.Button,{variant:"outline",disabled:l.isPending,onClick:g,children:h("common.cancel")}),(0,b.jsx)(y.Button,{disabled:l.isPending||e||f||m||0===j.length||j.length>200,onClick:()=>l.mutate({id:a.id,projectIds:j,expectedProjectIds:a.projectIds??null}),children:h(l.isPending?"common.loading":"common.save")})]})]})})}function ar(a,b){return JSON.stringify({mcpServers:{forgebadger:{type:"http",url:a,headers:{Authorization:`Bearer ${b}`}}}},null,2)}function as({endpoint:a}){let{t:c}=(0,D.useLanguage)();return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("settings.mcpConnectHelp")}),(0,b.jsx)(at,{label:c("settings.mcpConnectJson"),content:ar(a,c("settings.mcpTokenPlaceholder"))})]})}function at({label:a,content:c}){let{t:d}=(0,D.useLanguage)();async function e(){if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(c),ac.toast.success(d("settings.mcpCopied"))}catch{ac.toast.error(d("settings.mcpCopyFailed"))}}return(0,b.jsxs)("div",{className:"min-w-0 max-w-full overflow-hidden rounded-md border border-border/70 bg-muted/20",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(y.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":a,onClick:()=>void e(),children:(0,b.jsx)(ah.Copy,{className:"size-3.5"})})]}),(0,b.jsx)("pre",{className:"min-w-0 max-w-full overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:c})]})}function au({endpoint:a,plaintext:c,onClose:d,onCopy:e}){let{t:f}=(0,D.useLanguage)();return(0,b.jsx)(al.Dialog,{open:null!==c,onOpenChange:a=>!a&&d(),children:(0,b.jsxs)(al.DialogContent,{className:"max-h-[calc(100dvh-2rem)] grid-cols-[minmax(0,1fr)] overflow-y-auto",children:[(0,b.jsxs)(al.DialogHeader,{children:[(0,b.jsx)(al.DialogTitle,{children:f("settings.mcpPlaintextTitle")}),(0,b.jsx)(al.DialogDescription,{children:f("settings.mcpPlaintextWarning")})]}),(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:c}),(0,b.jsxs)(y.Button,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:()=>c&&e(c),children:[(0,b.jsx)(ah.Copy,{className:"size-3.5"}),f("settings.mcpCopy")]})]}),c&&(0,b.jsx)(at,{label:f("settings.mcpConnectJson"),content:ar(a,c)}),(0,b.jsx)(al.DialogFooter,{children:(0,b.jsx)(y.Button,{onClick:d,children:f("settings.mcpClose")})})]})})}var av=a.i(60427),aw=a.i(22510),ax=a.i(53302),ay=a.i(68442),az=a.i(49613);function aA(){let{t:a}=(0,D.useLanguage)(),d=(0,ay.usePetPreference)(),e=(0,c.useId)(),[f,g]=(0,c.useState)("idle");return(0,b.jsxs)(C.Card,{children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(av.Bot,{className:"size-4","aria-hidden":"true"}),title:a("settings.pet"),description:a("settings.petDescription"),titleId:e}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":e,className:"grid gap-3 sm:grid-cols-2",children:az.PET_OPTIONS.map(c=>{let f=d===c.id,h=`${e}-${c.id}-name`,i=`${e}-${c.id}-description`;return(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":f,"aria-labelledby":h,"aria-describedby":i,onClick:()=>{var a;return a=c.id,void g((0,az.writePetPreference)(a)?"saved":"error")},className:(0,W.cn)("flex items-center gap-3 rounded-md border p-3 text-left outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",f?"border-brand/60 bg-brand/10":"border-border hover:bg-muted/40"),children:[(0,b.jsx)("span",{className:"shrink-0 rounded-md bg-muted/40 p-1","aria-hidden":"true",children:(0,b.jsx)(ax.RobotSprite,{petId:c.id,frame:"stand",size:80})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsx)("span",{id:h,className:"block text-sm font-medium",children:a(c.nameKey)}),(0,b.jsx)("span",{id:i,className:"block text-xs leading-relaxed text-muted-foreground",children:a(c.descriptionKey)}),f&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-xs text-brand","aria-hidden":"true",children:[(0,b.jsx)(aw.Check,{className:"size-3"}),a("settings.petSelected")]})]})]},c.id)})}),"saved"===f&&(0,b.jsx)("p",{role:"status",className:"text-xs text-muted-foreground",children:a("settings.petSaved")}),"error"===f&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:a("settings.petSaveFailed")})]})]})}function aB(){let{t:a}=(0,D.useLanguage)(),c=(0,E.useAdminCopy)(),{data:d}=(0,t.useQuery)({queryKey:["dependencies"],queryFn:H.getDependencies}),e=d?.terminalRuntime?.persistence??a("settings.notDetected");return(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(o.ShieldCheck,{className:"size-4"}),title:a("settings.securityBaseline"),description:a("settings.securityDescription")}),(0,b.jsxs)(C.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:[(0,b.jsx)(aC,{label:a("settings.jwtAuth"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aC,{label:a("settings.tenantIsolation"),value:c.securityBaselineGuaranteed}),(0,b.jsx)(aC,{label:a("settings.apiKeyEncryption"),value:"AES-256-GCM"}),(0,b.jsx)(aC,{label:a("settings.terminalPersistence"),value:e})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:c.securityBaselineGuaranteedHint})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 bg-muted/20 p-3 text-xs text-muted-foreground",children:[(0,b.jsx)(v.KeyRound,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{children:a("settings.secretsNotice")})]})]})]})}function aC({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2.5 text-sm",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),(0,b.jsx)(x.Badge,{variant:"secondary",children:c})]})}var aD=a.i(23579);let aE="cyan",aF=[{id:"cyan",nameKey:"settings.themeCyan",brand:"187 86% 53%",brandForeground:"220 30% 6%",swatch:"#22d3ee"},{id:"orange",nameKey:"settings.themeOrange",brand:"24 100% 50%",brandForeground:"0 0% 100%",swatch:"#ff8000"},{id:"violet",nameKey:"settings.themeViolet",brand:"258 90% 66%",brandForeground:"0 0% 100%",swatch:"#8b5cf6"},{id:"emerald",nameKey:"settings.themeEmerald",brand:"160 84% 39%",brandForeground:"160 60% 6%",swatch:"#10b981"},{id:"blue",nameKey:"settings.themeBlue",brand:"217 91% 60%",brandForeground:"0 0% 100%",swatch:"#3b82f6"},{id:"rose",nameKey:"settings.themeRose",brand:"350 89% 60%",brandForeground:"0 0% 100%",swatch:"#f43f5e"},{id:"amber",nameKey:"settings.themeAmber",brand:"38 92% 55%",brandForeground:"38 60% 8%",swatch:"#f59e0b"}],aG="forgebadger.accent";function aH(a){return aF.some(b=>b.id===a)}var aI=a.i(20409),aJ=a.i(42167),aK=a.i(61047);let aL=[{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"en",label:"English"}],aM=[{id:"appearance",icon:k,labelKey:"settings.section.appearance",descriptionKey:"settings.section.appearanceDescription"},{id:"account",icon:o.ShieldCheck,labelKey:"settings.section.account",descriptionKey:"settings.section.accountDescription"},{id:"adapters",icon:g.Cpu,labelKey:"settings.section.adapters",descriptionKey:"settings.section.adaptersDescription"},{id:"integrations",icon:l.Plug,labelKey:"settings.section.integrations",descriptionKey:"settings.section.integrationsDescription"},{id:"instance",icon:m.Server,labelKey:"settings.section.instance",descriptionKey:"settings.section.instanceDescription"}];a.s(["default",0,function(){let{language:a,setLanguage:g,t:i}=(0,D.useLanguage)(),{user:l}=(0,am.useAuth)(),m=(0,e.useSearchParams)(),[o,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)("unsupported"),[v,w]=(0,c.useState)(aE),{mode:x}=(0,aD.useColorMode)(),[z,E]=(0,c.useState)(aJ.DEFAULT_TERMINAL_FONT.fontFamily),[G,H]=(0,c.useState)(String(aJ.DEFAULT_TERMINAL_FONT.fontSize));function I(){let a=Number(G);(0,aJ.setTerminalFont)({fontFamily:z,fontSize:Number.isFinite(a)&&""!==G?a:aJ.DEFAULT_TERMINAL_FONT.fontSize})}(0,c.useEffect)(()=>{w(function(a=window.localStorage){let b=a.getItem(aG);return aH(b)?b:aE}());let a=(0,aJ.readStoredTerminalFont)();E(a.fontFamily),H(String(a.fontSize)),s((0,aK.getBrowserNotificationPreference)()),u((0,aK.getBrowserNotificationPermission)())},[]);let K=l?.role==="admin",L=K?aM:aM.filter(a=>"instance"!==a.id),M=m.get("section"),N=L.find(a=>a.id===M)??aM[0];async function O(a){if(!a){(0,aK.setBrowserNotificationPreference)(!1),s(!1),u((0,aK.getBrowserNotificationPermission)());return}let b="default"===(0,aK.getBrowserNotificationPermission)()?await (0,aK.requestBrowserNotificationPermission)():(0,aK.getBrowserNotificationPermission)();u(b);let c="granted"===b;(0,aK.setBrowserNotificationPreference)(c),s(c)}return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:i("settings.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:i("settings.subtitle")})]}),(0,b.jsxs)("div",{className:"lg:grid lg:grid-cols-[200px_minmax(0,1fr)] lg:gap-8",children:[(0,b.jsx)("nav",{"aria-label":i("settings.title"),className:"mb-4 flex gap-1 overflow-x-auto lg:sticky lg:top-6 lg:mb-0 lg:flex-col lg:self-start",children:L.map(a=>(0,b.jsxs)(d.default,{href:`/settings?section=${a.id}`,"aria-current":N.id===a.id?"page":void 0,className:(0,W.cn)("flex h-8 shrink-0 items-center gap-2.5 rounded-md px-2.5 text-[13px] font-medium transition-colors duration-150",N.id===a.id?"bg-brand/10 text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[(0,b.jsx)(a.icon,{className:(0,W.cn)("size-4 shrink-0",N.id===a.id?"text-brand":"text-muted-foreground/70")}),i(a.labelKey)]},a.id))}),(0,b.jsxs)("div",{className:"min-w-0",children:["appearance"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.colorMode"),description:i("settings.colorModeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:[{id:"light",labelKey:"settings.colorModeLight",icon:p},{id:"dark",labelKey:"settings.colorModeDark",icon:j},{id:"system",labelKey:"settings.colorModeSystem",icon:q}].map(a=>{let c=x===a.id;return(0,b.jsxs)(y.Button,{type:"button","aria-pressed":c,variant:c?"brand":"outline",size:"sm",onClick:()=>(0,aI.setColorMode)(a.id),children:[(0,b.jsx)(a.icon,{className:"size-4"}),i(a.labelKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(h.Globe2,{className:"size-4"}),title:i("settings.language"),description:i("settings.languageDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aL.map(c=>(0,b.jsx)(y.Button,{type:"button",variant:a===c.code?"brand":"outline",size:"sm",onClick:()=>g(c.code),children:c.label},c.code))})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(k,{className:"size-4"}),title:i("settings.theme"),description:i("settings.themeDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:aF.map(a=>{let c=v===a.id;return(0,b.jsxs)("button",{type:"button","aria-pressed":c,onClick:()=>w(function(a,b=window.localStorage){let c=aH(a)?a:aE;return document.documentElement.dataset.accent=c,b.setItem(aG,c),c}(a.id)),className:c?"flex items-center gap-2 rounded-md border border-brand/60 bg-brand/10 px-3 py-2 text-sm text-foreground transition-colors duration-150":"flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm text-muted-foreground transition-colors duration-150 hover:border-brand/40 hover:bg-muted/40 hover:text-foreground",children:[(0,b.jsx)("span",{className:"size-3.5 rounded-full ring-1 ring-border",style:{backgroundColor:a.swatch},"aria-hidden":"true"}),i(a.nameKey)]},a.id)})})})]}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(r,{className:"size-4"}),title:i("settings.terminalFont"),description:i("settings.terminalFontDescription")}),(0,b.jsx)(C.CardContent,{children:(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,b.jsxs)("div",{className:"grid min-w-52 flex-1 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-family",className:"text-xs text-muted-foreground",children:i("settings.terminalFontFamily")}),(0,b.jsx)(A.Input,{id:"terminal-font-family",value:z,onChange:a=>E(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()},spellCheck:!1,className:"font-mono text-xs"})]}),(0,b.jsxs)("div",{className:"grid w-24 gap-2",children:[(0,b.jsx)(B.Label,{htmlFor:"terminal-font-size",className:"text-xs text-muted-foreground",children:i("settings.terminalFontSize")}),(0,b.jsx)(A.Input,{id:"terminal-font-size",type:"number",min:aJ.MIN_TERMINAL_FONT_SIZE,max:aJ.MAX_TERMINAL_FONT_SIZE,value:G,onChange:a=>H(a.target.value),onBlur:I,onKeyDown:a=>{"Enter"===a.key&&I()}})]}),(0,b.jsx)(y.Button,{type:"button",variant:"outline",size:"sm",onClick:function(){E(aJ.DEFAULT_TERMINAL_FONT.fontFamily),H(String(aJ.DEFAULT_TERMINAL_FONT.fontSize)),(0,aJ.setTerminalFont)(aJ.DEFAULT_TERMINAL_FONT)},children:i("settings.terminalFontReset")})]})})]}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"160ms"},children:(0,b.jsx)(aA,{})}),(0,b.jsxs)(C.Card,{className:"forgebadger-animate-in",style:{animationDelay:"200ms"},children:[(0,b.jsx)(F.SettingsCardHeader,{icon:(0,b.jsx)(n,{className:"size-4"}),title:i("settings.console"),description:i("settings.consoleDescription")}),(0,b.jsx)(C.CardContent,{className:"space-y-2",children:(0,b.jsx)(F.SettingRow,{title:i("settings.browserNotifications"),description:"denied"===t?i("settings.browserNotificationsDenied"):i("settings.browserNotificationsDescription"),checked:o&&"granted"===t,disabled:"unsupported"===t,onCheckedChange:O,icon:(0,b.jsx)(f.Bell,{className:"size-4 text-muted-foreground"})})})]})]}),"account"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(J,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(aB,{})})]}),"adapters"===N.id&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(X,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(ae,{})})]}),"integrations"===N.id&&(0,b.jsx)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(an,{})})}),"instance"===N.id&&K&&(0,b.jsxs)(F.SettingsSection,{title:i(N.labelKey),description:i(N.descriptionKey),children:[(0,b.jsx)("div",{className:"forgebadger-animate-in",children:(0,b.jsx)(ag.InstanceRuntimeSettings,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"40ms"},children:(0,b.jsx)(af,{})}),(0,b.jsx)("div",{className:"forgebadger-animate-in",style:{animationDelay:"80ms"},children:(0,b.jsx)(aa,{})})]})]},N.id)]})]})}],68236)}];
3
3
 
4
4
  //# sourceMappingURL=packages_web_src_app_%28dashboard%29_settings_page_tsx_05ku4-o._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[88625,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(37060),h=a.i(14027),i=a.i(76897),j=a.i(62803),k=a.i(85874),l=a.i(35485);let m=(0,l.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 n=a.i(90259),o=a.i(80395),p=a.i(67164),q=a.i(37134);let r=(0,l.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 s=a.i(4730),t=a.i(97494),u=a.i(70458),v=a.i(62384),w=a.i(55068),x=a.i(3030),y=a.i(67305),z=a.i(90991),A=a.i(85564),B=a.i(39042),C=a.i(15031),D=a.i(79914),E=a.i(2355),F=a.i(14060);let G={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"},H={applied:"templates.syncOutcomeApplied",rolled_back:"templates.syncOutcomeRolledBack",rollback_failed:"templates.syncOutcomeRollbackFailed"};function I({templateId:a}){let{t:g}=(0,D.useLanguage)(),h=(0,f.useQueryClient)(),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(new Set),[m,n]=(0,c.useState)(!1),{data:o,isLoading:p}=(0,e.useQuery)({queryKey:["template-usage",a],queryFn:()=>(0,B.getTemplateUsage)(a)}),q=(0,d.useMutation)({mutationFn:()=>(0,B.previewTemplateSync)(a),onSuccess:a=>{j(a),l(new Set)}}),r=(0,d.useMutation)({mutationFn:()=>{if(!i)throw Error(g("templates.syncPreviewFailed"));let b={};for(let a of i.projects)k.has(a.projectId)&&0!==a.summary.requiresDecision.length&&(b[a.projectId]=Object.fromEntries(a.summary.requiresDecision.map(a=>[a,"overwrite"])));return(0,B.applyTemplateSync)(a,{projectIds:i.projects.map(a=>a.projectId),decisions:b})},onSuccess:()=>{j(null),l(new Set),h.invalidateQueries({queryKey:["template-usage",a]})}}),v=(0,c.useMemo)(()=>o?o.projects.reduce((a,b)=>(a[b.configStatus]+=1,a),{compliant:0,stale:0,missing:0}):{compliant:0,stale:0,missing:0},[o]),w={compliant:g("templates.syncStatusCompliant"),stale:g("templates.syncStatusStale"),missing:g("templates.syncStatusMissing")};return(0,b.jsxs)(u.Card,{className:"border-dashed",children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(F.RefreshCw,{className:"size-4"}),g("templates.syncTitle"),o&&0===o.usageCount&&(0,b.jsx)(s.Badge,{variant:"outline",className:"text-xs font-normal",children:g("templates.syncSeedOnly")})]}),(0,b.jsx)(u.CardDescription,{children:p||!o?g("templates.syncLoadingUsage"):g("templates.syncUsageCount").replace("{count}",String(o.usageCount))})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-3",children:[o&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs",children:[(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountCompliant").replace("{count}",String(v.compliant))}),(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountStale").replace("{count}",String(v.stale))}),(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountMissing").replace("{count}",String(v.missing))})]}),(0,b.jsx)("div",{className:"space-y-2",children:o&&0!==o.projects.length?o.projects.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.name}),(0,b.jsx)("div",{className:"truncate font-mono text-xs text-muted-foreground",children:a.path})]}),(0,b.jsx)(s.Badge,{className:G[a.configStatus],children:w[a.configStatus]})]},a.id)):(0,b.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:g("templates.syncEmpty")})}),i&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border bg-background p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:g("templates.syncPreview")}),i.projects.map(a=>{let c=a.summary.requiresDecision.length>0;return(0,b.jsxs)("div",{className:"rounded-md border px-3 py-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.projectName}),c&&(0,b.jsxs)("label",{className:"flex shrink-0 items-center gap-1.5 text-xs",children:[(0,b.jsx)("input",{type:"checkbox",checked:k.has(a.projectId),onChange:()=>{var b;return b=a.projectId,void l(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}}),g("templates.syncOverwriteModified")]})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[g("templates.syncFilesToCreate").replace("{count}",String(a.summary.missingFiles.length)),a.summary.requiresDecision.length>0&&(0,b.jsxs)(b.Fragment,{children:[" · ",g("templates.syncFilesNeedDecision").replace("{count}",String(a.summary.requiresDecision.length))]}),a.summary.modifiedFiles.length>0&&(0,b.jsx)("span",{className:"ml-2 font-mono",children:a.summary.modifiedFiles.join(", ")})]})]},a.projectId)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("templates.syncOverwriteHint")})]}),q.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:q.error instanceof Error?q.error.message:g("templates.syncPreviewFailed")}),r.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:r.error instanceof Error?r.error.message:g("templates.syncApplyFailed")}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(t.Button,{type:"button",variant:"outline",size:"sm",disabled:!o||0===o.projects.length||q.isPending,onClick:()=>q.mutate(),children:q.isPending?g("templates.syncPreviewing"):g("templates.syncPreviewAction")}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",disabled:!i||0===i.projects.length||r.isPending,onClick:()=>n(!0),children:[(0,b.jsx)(E.Play,{className:"size-4"}),r.isPending?g("templates.syncApplying"):g("templates.syncApply").replace("{count}",String(i?.projects.length??0))]})]}),r.data&&(0,b.jsx)("div",{className:"space-y-1.5 text-xs",children:r.data.projects.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate",children:a.projectName}),a.error?(0,b.jsx)("span",{className:"shrink-0 text-destructive",children:a.error}):(0,b.jsxs)("span",{className:"flex min-w-0 shrink-0 items-center gap-2 text-muted-foreground",children:[(0,b.jsxs)("span",{children:[a.result?g(H[a.result.outcome]):""," ","·"," ",g("templates.syncResultLine").replace("{written}",String(a.result?.writtenFiles.length??0)).replace("{skipped}",String(a.result?.skippedFiles.length??0))]}),a.result?.backupPath?(0,b.jsxs)("span",{className:"max-w-48 truncate font-mono",title:a.result.backupPath,children:[g("templates.syncBackup"),": ",a.result.backupPath]}):null]})]},a.projectId))})]}),(0,b.jsx)(z.ConfirmDialog,{open:m,title:g("templates.syncApplyConfirmTitle"),description:g("templates.syncApplyConfirmDescription").replace("{count}",String(i?.projects.length??0)),confirmLabel:g("templates.syncApplyConfirm"),pending:r.isPending,onOpenChange:n,onConfirm:()=>{n(!1),r.mutate()}})]})}let J="CLAUDE.md",K="# {{projectName}}\n\nProject root: `{{projectRoot}}`\n\nFollow the repository instructions and keep changes scoped.\n";class L extends Error{constructor(a){super(a),this.name="TemplateFileSaveError"}}a.s(["default",0,function(){let{t:a}=(0,D.useLanguage)(),l=(0,D.useUiLocale)(),E=(0,f.useQueryClient)(),[F,G]=(0,c.useState)(null),[H,M]=(0,c.useState)(""),[N,O]=(0,c.useState)("private"),[P,Q]=(0,c.useState)(""),[R,S]=(0,c.useState)(""),[T,U]=(0,c.useState)(""),[V,W]=(0,c.useState)("private"),[X,Y]=(0,c.useState)(J),[Z,$]=(0,c.useState)(K),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(null),ad=(0,c.useRef)(0),ae=(0,c.useRef)({templateId:F,filePath:ab,epoch:0});ae.current={templateId:F,filePath:ab,epoch:ad.current};let[af,ag]=(0,c.useState)(null),[ah,ai]=(0,c.useState)(null),[aj,ak]=(0,c.useState)("all"),[al,am]=(0,c.useState)(""),[an,ao]=(0,c.useState)(!1),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(""),[at,au]=(0,c.useState)(""),[av,aw]=(0,c.useState)(""),[ax,ay]=(0,c.useState)(""),[az,aA]=(0,c.useState)(null),{data:aB,isLoading:aC,isError:aD,refetch:aE}=(0,e.useQuery)({queryKey:["templates"],queryFn:B.listTemplates}),[aF,aG]=(0,c.useState)(null),[aH,aI]=(0,c.useState)(null),aJ=aB?.templates??[],aK=(0,C.filterByVisibility)(aJ,aj),aL=aK.filter(a=>(a.usageCount??0)>0),aM=aK.filter(a=>(a.usageCount??0)===0);function aN(c){return(0,b.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(a){if(a!==F){if(!a1())return void a2(a);ai(a)}})(c.id),children:[(0,b.jsx)("span",{className:"font-medium",children:c.name}),(0,b.jsxs)("span",{className:"flex flex-wrap justify-end gap-2",children:[(c.isBuiltin||c.builtin)&&(0,b.jsx)(s.Badge,{variant:"secondary",children:a("templates.builtin")}),(0,b.jsx)(s.Badge,{variant:"outline",children:a((0,C.visibilityLabelKey)((0,C.normalizeVisibility)(c.visibility)))})]})]},c.id)}let{data:aO}=(0,e.useQuery)({queryKey:["catalog-items"],queryFn:B.listCatalogItems}),aP=(aO?.items??[]).filter(a=>"template"===a.itemType),aQ=(0,c.useMemo)(()=>aJ.find(a=>a.id===F),[F,aJ]),aR=!!aQ?.isBuiltin||!!aQ?.builtin,{data:aS}=(0,e.useQuery)({queryKey:["template",F],queryFn:()=>(0,B.getTemplate)(F),enabled:!!F}),{data:aT}=(0,e.useQuery)({queryKey:["template",F,"versions"],queryFn:()=>(0,B.listTemplateVersions)(F),enabled:!!F&&!aR}),aU=(0,d.useMutation)({mutationFn:()=>(0,B.createTemplate)({name:H.trim(),visibility:N,files:[{filePath:J,content:K,fileType:"markdown"}]}),onSuccess:async({template:b})=>{aA(a("templates.created")),M(""),O("private"),G(b.id),aa(null),ac(null),ag(null),S(b.name),U(b.description??""),W((0,C.normalizeVisibility)(b.visibility)),await E.invalidateQueries({queryKey:["templates"]})}}),aV=(0,d.useMutation)({mutationFn:a=>(0,B.cloneTemplate)(a,P.trim()||`${aQ?.name??"Template"} Copy`),onSuccess:async({template:b})=>{aA(a("templates.cloned")),Q(""),G(b.id),aa(null),ac(null),ag(null),S(b.name),U(b.description??""),W((0,C.normalizeVisibility)(b.visibility)),await E.invalidateQueries({queryKey:["templates"]})}}),aW=(0,d.useMutation)({mutationFn:async()=>{if(!F)throw Error("Template is required");let a={templateId:F,filePath:X.trim(),content:Z,editorEpoch:ad.current};await (0,B.updateTemplate)(F,{name:R.trim(),description:T.trim(),visibility:V});try{await (0,B.updateTemplateFile)(a.templateId,a.filePath,a.content)}catch(a){throw new L(a instanceof Error?a.message:String(a))}return a},onSuccess:async b=>{aA(a("templates.saved")),ae.current.templateId===b.templateId&&ad.current===b.editorEpoch&&(aa(b.content),ac(b.filePath)),await E.invalidateQueries({queryKey:["templates"]}),await E.invalidateQueries({queryKey:["template",b.templateId]});let c=ae.current;if(c.templateId!==b.templateId||c.epoch===b.editorEpoch)return;let d=await E.fetchQuery({queryKey:["template",b.templateId],queryFn:()=>(0,B.getTemplate)(b.templateId),staleTime:0});if(ae.current.templateId!==c.templateId||ad.current!==c.epoch)return;let e=d.template.files?.find(a=>a.filePath===c.filePath);e&&aa(e.content)},onError:b=>{b instanceof L&&A.toast.error(a("templates.saveFileFailed"))}}),aX=(0,d.useMutation)({mutationFn:B.deleteTemplate,onSuccess:async()=>{aA(a("templates.deleted")),G(null),await E.invalidateQueries({queryKey:["templates"]})}}),aY=(0,d.useMutation)({mutationFn:a=>(0,B.exportTemplate)(a),onSuccess:({templatePackage:b})=>{am(JSON.stringify(b,null,2)),aA(a("templates.exported"))}}),aZ=(0,d.useMutation)({mutationFn:()=>{let b;try{b=JSON.parse(al)}catch{throw Error(a("templates.importInvalidJson"))}return(0,B.importTemplate)(b)},onSuccess:async({template:b})=>{aA(a("templates.imported")),G(b.id),aa(null),ac(null),ag(null),S(b.name),U(b.description??""),W((0,C.normalizeVisibility)(b.visibility)),am(""),await E.invalidateQueries({queryKey:["templates"]})}}),a$=(0,d.useMutation)({mutationFn:B.installCatalogTemplate,onSuccess:async({template:b})=>{aA(a("templates.catalogInstalled")),G(b.id),aa(null),ac(null),ag(null),S(b.name),U(b.description??""),W((0,C.normalizeVisibility)(b.visibility)),await E.invalidateQueries({queryKey:["templates"]})}}),a_=(0,d.useMutation)({mutationFn:()=>{let a={url:ar.trim()},b=at.trim();b&&(a.branch=b);let c=av.trim();c&&(a.name=c);let d=ax.trim();return d&&(a.description=d),(0,B.importTemplateFromGit)(a)},onSuccess:async b=>{aA(a("templates.gitImported")),as(""),au(""),aw(""),ay(""),G(b.templateId),aa(null),ac(null),ag(null),S(b.name),U(""),W("private"),await E.invalidateQueries({queryKey:["templates"]})}}),a0=(0,d.useMutation)({mutationFn:({templateId:a,versionId:b})=>(0,B.restoreTemplateVersion)(a,b),onSuccess:async({template:b})=>{let c=b.files?.[0];aA(a("templates.restored")),S(b.name),U(b.description??""),W((0,C.normalizeVisibility)(b.visibility)),c&&(ad.current++,Y(c.filePath),$(c.content),aa(c.content),ac(c.filePath)),await E.invalidateQueries({queryKey:["templates"]}),await E.invalidateQueries({queryKey:["template",F]}),await E.invalidateQueries({queryKey:["template",F,"versions"]})}});function a1(){return!!aQ&&(Z!==_||X.trim()!==ab||R.trim()!==(aQ.name??"")||T.trim()!==(aQ.description??"")||V!==(0,C.normalizeVisibility)(aQ.visibility))}function a2(a){ad.current++;let b=aJ.find(b=>b.id===a);G(a),S(b?.name??""),U(b?.description??""),W((0,C.normalizeVisibility)(b?.visibility)),Y(J),$(""),aa(null),ac(null),ag(null),am(""),aA(null)}(0,c.useEffect)(()=>{if(!F||!aS||af===F)return;ad.current++;let a=aS.template.files?.[0];Y(a?.filePath??J),$(a?.content??""),aa(a?a.content:""),ac(a?.filePath??J),ag(F)},[F,aS,af]);let a3=aR||aW.isPending||null===_||!a1(),a4=aU.error??aV.error??(aW.error instanceof L?null:aW.error)??aX.error??aY.error??aZ.error??a$.error??a_.error??a0.error;return(0,b.jsxs)("div",{className:"space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("templates.title")}),(0,b.jsx)("p",{className:"mt-1 text-muted-foreground",children:a("templates.subtitle")})]}),az&&(0,b.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:az}),a4 instanceof Error&&(0,b.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a4.message}),(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-[340px_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(u.Card,{children:[(0,b.jsx)(u.CardHeader,{children:(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(n.Plus,{className:"size-4"}),a("templates.createCustom")]})}),(0,b.jsx)(u.CardContent,{children:(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),aU.mutate()},children:[(0,b.jsx)(x.Label,{htmlFor:"new-template-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"new-template-name",value:H,onChange:a=>M(a.target.value),required:!0}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{children:a("common.visibility")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:C.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:N===c?"default":"outline",onClick:()=>O(c),children:a((0,C.visibilityLabelKey)(c))},c))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a((0,C.visibilityDescriptionKey)(N))})]}),(0,b.jsxs)(t.Button,{type:"submit",className:"w-full",disabled:aU.isPending,children:[(0,b.jsx)(n.Plus,{className:"size-4"}),aU.isPending?a("templates.creating"):a("templates.createCustom")]})]})})]}),(0,b.jsxs)(u.Card,{children:[(0,b.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:()=>ao(a=>!a),"aria-expanded":an,"aria-label":a("templates.catalogInstall"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(m,{className:"size-4"}),(0,b.jsx)("span",{className:"text-base font-semibold",children:a("templates.catalogInstall")})]}),(0,b.jsx)(g.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${an?"rotate-180":""}`})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2 pt-4",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("templates.catalogInstallDescription")}),an&&(0===aP.length?(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.catalogEmpty")}):aP.map(c=>(0,b.jsxs)("div",{className:"rounded-md border bg-background p-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:c.name}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[c.sourceId," · ",c.version??"1.0.0"]})]}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",variant:"outline",disabled:a$.isPending,onClick:()=>a$.mutate(c.id),children:[(0,b.jsx)(m,{className:"size-3"}),a$.isPending?a("templates.installing"):a("templates.install")]})]}),c.description&&(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c.description})]},c.id)))]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.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:()=>aq(a=>!a),"aria-expanded":ap,"aria-label":a("templates.gitImport"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.GitBranch,{className:"size-4"}),(0,b.jsx)("span",{className:"text-base font-semibold",children:a("templates.gitImport")})]}),(0,b.jsx)(g.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${ap?"rotate-180":""}`})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2 pt-4",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("templates.gitImportDescription")}),ap&&(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),a_.mutate()},children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-url",children:a("templates.gitImportUrl")}),(0,b.jsx)(w.Input,{id:"git-import-url",value:ar,onChange:a=>as(a.target.value),placeholder:"https://github.com/your-org/ai-cli-config",required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-branch",children:a("templates.gitImportBranch")}),(0,b.jsx)(w.Input,{id:"git-import-branch",value:at,onChange:a=>au(a.target.value),placeholder:"main"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"git-import-name",value:av,onChange:a=>aw(a.target.value)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-description",children:a("common.description")}),(0,b.jsx)(w.Input,{id:"git-import-description",value:ax,onChange:a=>ay(a.target.value)})]}),(0,b.jsxs)(t.Button,{type:"submit",className:"w-full",disabled:!ar.trim()||a_.isPending,children:[(0,b.jsx)(k.GitBranch,{className:"size-4"}),a_.isPending?a("templates.gitImporting"):a("templates.gitImport")]})]})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsx)(u.CardTitle,{className:"text-base",children:a("templates.available")}),(0,b.jsx)(u.CardDescription,{children:a("templates.availableDescription")})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 pb-2",children:[(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:"all"===aj?"default":"outline",onClick:()=>ak("all"),children:a("visibility.all")}),C.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:aj===c?"default":"outline",onClick:()=>ak(c),children:a((0,C.visibilityLabelKey)(c))},c))]}),(0,b.jsx)(y.QueryState,{isLoading:aC,isError:aD,isEmpty:0===aK.length,onRetry:()=>void aE(),loading:(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.loading")}),empty:(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.emptyTitle")}),children:(0,b.jsxs)("div",{className:"space-y-3",children:[aL.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("templates.governedTitle")}),(0,b.jsx)(s.Badge,{variant:"secondary",children:aL.length})]}),aL.map(a=>aN(a))]}),aM.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("templates.seedTitle")}),(0,b.jsx)(s.Badge,{variant:"secondary",children:aM.length})]}),aM.map(a=>aN(a))]})]})})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsx)(u.CardTitle,{className:"text-base",children:a("templates.importExport")}),(0,b.jsx)(u.CardDescription,{children:a("templates.importExportDescription")})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-3",children:[(0,b.jsx)(x.Label,{htmlFor:"template-package",children:a("templates.packageJson")}),(0,b.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:al,onChange:a=>am(a.target.value)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)(t.Button,{type:"button",variant:"outline",disabled:!F||aY.isPending,onClick:()=>F&&aY.mutate(F),children:[(0,b.jsx)(i.Download,{className:"size-4"}),a("templates.export")]}),(0,b.jsxs)(t.Button,{type:"button",variant:"outline",disabled:!al.trim(),onClick:function(){let a=al.trim();if(!a)return;let b=new Blob([a],{type:"application/json"}),c=URL.createObjectURL(b),d=document.createElement("a");d.href=c,d.download=`${aQ?.name??"template"}.json`,d.click(),URL.revokeObjectURL(c)},children:[(0,b.jsx)(i.Download,{className:"size-4"}),a("templates.download")]}),(0,b.jsxs)(t.Button,{type:"button",className:"col-span-2",disabled:!al.trim()||aZ.isPending,onClick:()=>aZ.mutate(),children:[(0,b.jsx)(r,{className:"size-4"}),a("templates.import")]})]})]})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsx)(u.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(j.FileCode2,{className:"size-5"}),aQ?.name??a("templates.selectTemplate")]}),(0,b.jsx)(u.CardDescription,{children:a("templates.editorDescription")})]}),aQ&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(w.Input,{className:"h-8 w-48",value:P,onChange:a=>Q(a.target.value),placeholder:a("templates.cloneName")}),(0,b.jsxs)(t.Button,{size:"sm",variant:"outline",onClick:()=>aV.mutate(aQ.id),disabled:aV.isPending,children:[(0,b.jsx)(h.Copy,{className:"size-4"}),a("templates.clone")]})]})]})}),(0,b.jsx)(u.CardContent,{children:aQ?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(I,{templateId:aQ.id}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"template-name",value:R,onChange:a=>S(a.target.value),disabled:aR})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-description",children:a("common.description")}),(0,b.jsx)(w.Input,{id:"template-description",value:T,onChange:a=>U(a.target.value),disabled:aR})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{children:a("common.visibility")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:C.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:V===c?"default":"outline",disabled:aR,onClick:()=>W(c),children:a((0,C.visibilityLabelKey)(c))},c))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a((0,C.visibilityDescriptionKey)(V))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-file",children:a("templates.filePath")}),(0,b.jsx)(w.Input,{id:"template-file",value:X,onChange:a=>Y(a.target.value),disabled:aR})]}),(0,b.jsx)(t.Button,{type:"button",variant:"outline",onClick:function(){let a=aS?.template.files?.find(a=>a.filePath===X)??aS?.template.files?.[0];a&&(ad.current++,Y(a.filePath),$(a.content),aa(a.content),ac(a.filePath))},children:a("templates.loadFile")})]}),(0,b.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:Z,onChange:a=>$(a.target.value),disabled:aR,placeholder:a("templates.fileContent")})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,b.jsxs)(t.Button,{variant:"ghost",className:"text-destructive",disabled:aR||aX.isPending,onClick:()=>{aQ&&aG(aQ)},children:[(0,b.jsx)(q.Trash2,{className:"size-4"}),a("common.delete")]}),(0,b.jsxs)(t.Button,{disabled:a3,onClick:()=>aW.mutate(),children:[(0,b.jsx)(p.Save,{className:"size-4"}),aW.isPending?a("templates.saving"):a("templates.save")]})]}),!aR&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/20 p-3",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:a("templates.versionHistory")}),0===(aT?.versions??[]).length?(0,b.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:a("templates.noVersions")}):(0,b.jsx)("div",{className:"mt-3 space-y-2",children:aT?.versions.map(c=>(0,b.jsxs)("div",{className:"rounded-md border bg-background p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:c.name}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Badge,{variant:"outline",children:c.version}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",variant:"outline",disabled:!F||a0.isPending,onClick:()=>{aQ&&aI({template:aQ,versionId:c.id,version:c.version})},children:[(0,b.jsx)(o.RotateCcw,{className:"size-3"}),a0.isPending?a("templates.restoring"):a("templates.restore")]})]})]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[c.action," · ",new Date(c.createdAt).toLocaleString(l)]})]},c.id))})]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center text-sm text-muted-foreground",children:[(0,b.jsx)(j.FileCode2,{className:"mb-4 size-10"}),a("templates.selectTemplate")]})})]})]}),(0,b.jsx)(v.Dialog,{open:null!==ah,onOpenChange:a=>{a||ai(null)},children:(0,b.jsxs)(v.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(v.DialogHeader,{children:[(0,b.jsx)(v.DialogTitle,{className:"text-base",children:a("templates.discardChangesTitle")}),(0,b.jsx)(v.DialogDescription,{children:a("templates.discardChangesDescription")})]}),(0,b.jsxs)(v.DialogFooter,{children:[(0,b.jsx)(t.Button,{type:"button",variant:"outline",onClick:()=>ai(null),children:a("common.cancel")}),(0,b.jsx)(t.Button,{type:"button",variant:"destructive",onClick:function(){ai(null),ah&&a2(ah)},children:a("templates.discardChangesConfirm")})]})]})}),(0,b.jsx)(z.ConfirmDialog,{open:null!==aF,destructive:!0,pending:aX.isPending,title:a("templates.deleteConfirmTitle"),description:aF?[a("templates.deleteConfirmNamed").replace("{name}",aF.name),(aF.usageCount??0)>0?a("templates.deleteInUseWarning").replace("{count}",String(aF.usageCount)):""].filter(Boolean).join(" "):"",confirmLabel:a("common.delete"),onOpenChange:a=>{a||aG(null)},onConfirm:()=>{aF&&aX.mutate(aF.id),aG(null)}}),(0,b.jsx)(z.ConfirmDialog,{open:null!==aH,pending:a0.isPending,title:a("templates.restoreConfirmTitle"),description:aH?a("templates.restoreConfirmNamed").replace("{name}",aH.template.name).replace("{version}",aH.version):"",onOpenChange:a=>{a||aI(null)},onConfirm:()=>{aH&&a0.mutate({templateId:aH.template.id,versionId:aH.versionId}),aI(null)}})]})}],88625)}];
1
+ module.exports=[88625,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(37060),h=a.i(14027),i=a.i(76897),j=a.i(62803),k=a.i(85874),l=a.i(35485);let m=(0,l.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 n=a.i(90259),o=a.i(80395),p=a.i(67164),q=a.i(37134);let r=(0,l.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 s=a.i(4730),t=a.i(97494),u=a.i(70458),v=a.i(62384),w=a.i(55068),x=a.i(3030),y=a.i(67305),z=a.i(90991),A=a.i(23834),B=a.i(85564),C=a.i(39042),D=a.i(15031),E=a.i(79914),F=a.i(2355),G=a.i(14060);let H={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"},I={applied:"templates.syncOutcomeApplied",rolled_back:"templates.syncOutcomeRolledBack",rollback_failed:"templates.syncOutcomeRollbackFailed"};function J({templateId:a}){let{t:g}=(0,E.useLanguage)(),h=(0,f.useQueryClient)(),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(new Set),[m,n]=(0,c.useState)(!1),{data:o,isLoading:p}=(0,e.useQuery)({queryKey:["template-usage",a],queryFn:()=>(0,C.getTemplateUsage)(a)}),q=(0,d.useMutation)({mutationFn:()=>(0,C.previewTemplateSync)(a),onSuccess:a=>{j(a),l(new Set)}}),r=(0,d.useMutation)({mutationFn:()=>{if(!i)throw Error(g("templates.syncPreviewFailed"));let b={};for(let a of i.projects)k.has(a.projectId)&&0!==a.summary.requiresDecision.length&&(b[a.projectId]=Object.fromEntries(a.summary.requiresDecision.map(a=>[a,"overwrite"])));return(0,C.applyTemplateSync)(a,{projectIds:i.projects.map(a=>a.projectId),decisions:b})},onSuccess:()=>{j(null),l(new Set),h.invalidateQueries({queryKey:["template-usage",a]})}}),v=(0,c.useMemo)(()=>o?o.projects.reduce((a,b)=>(a[b.configStatus]+=1,a),{compliant:0,stale:0,missing:0}):{compliant:0,stale:0,missing:0},[o]),w={compliant:g("templates.syncStatusCompliant"),stale:g("templates.syncStatusStale"),missing:g("templates.syncStatusMissing")};return(0,b.jsxs)(u.Card,{className:"border-dashed",children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(G.RefreshCw,{className:"size-4"}),g("templates.syncTitle"),o&&0===o.usageCount&&(0,b.jsx)(s.Badge,{variant:"outline",className:"text-xs font-normal",children:g("templates.syncSeedOnly")})]}),(0,b.jsx)(u.CardDescription,{children:p||!o?g("templates.syncLoadingUsage"):g("templates.syncUsageCount").replace("{count}",String(o.usageCount))})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-3",children:[o&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs",children:[(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountCompliant").replace("{count}",String(v.compliant))}),(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountStale").replace("{count}",String(v.stale))}),(0,b.jsx)(s.Badge,{variant:"secondary",children:g("templates.syncCountMissing").replace("{count}",String(v.missing))})]}),(0,b.jsx)("div",{className:"space-y-2",children:o&&0!==o.projects.length?o.projects.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.name}),(0,b.jsx)("div",{className:"truncate font-mono text-xs text-muted-foreground",children:a.path})]}),(0,b.jsx)(s.Badge,{className:H[a.configStatus],children:w[a.configStatus]})]},a.id)):(0,b.jsx)("p",{className:"py-4 text-center text-sm text-muted-foreground",children:g("templates.syncEmpty")})}),i&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border bg-background p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:g("templates.syncPreview")}),i.projects.map(a=>{let c=a.summary.requiresDecision.length>0;return(0,b.jsxs)("div",{className:"rounded-md border px-3 py-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.projectName}),c&&(0,b.jsxs)("label",{className:"flex shrink-0 items-center gap-1.5 text-xs",children:[(0,b.jsx)("input",{type:"checkbox",checked:k.has(a.projectId),onChange:()=>{var b;return b=a.projectId,void l(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})}}),g("templates.syncOverwriteModified")]})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[g("templates.syncFilesToCreate").replace("{count}",String(a.summary.missingFiles.length)),a.summary.requiresDecision.length>0&&(0,b.jsxs)(b.Fragment,{children:[" · ",g("templates.syncFilesNeedDecision").replace("{count}",String(a.summary.requiresDecision.length))]}),a.summary.modifiedFiles.length>0&&(0,b.jsx)("span",{className:"ml-2 font-mono",children:a.summary.modifiedFiles.join(", ")})]})]},a.projectId)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("templates.syncOverwriteHint")})]}),q.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:q.error instanceof Error?q.error.message:g("templates.syncPreviewFailed")}),r.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:r.error instanceof Error?r.error.message:g("templates.syncApplyFailed")}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(t.Button,{type:"button",variant:"outline",size:"sm",disabled:!o||0===o.projects.length||q.isPending,onClick:()=>q.mutate(),children:q.isPending?g("templates.syncPreviewing"):g("templates.syncPreviewAction")}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",disabled:!i||0===i.projects.length||r.isPending,onClick:()=>n(!0),children:[(0,b.jsx)(F.Play,{className:"size-4"}),r.isPending?g("templates.syncApplying"):g("templates.syncApply").replace("{count}",String(i?.projects.length??0))]})]}),r.data&&(0,b.jsx)("div",{className:"space-y-1.5 text-xs",children:r.data.projects.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate",children:a.projectName}),a.error?(0,b.jsx)("span",{className:"shrink-0 text-destructive",children:a.error}):(0,b.jsxs)("span",{className:"flex min-w-0 shrink-0 items-center gap-2 text-muted-foreground",children:[(0,b.jsxs)("span",{children:[a.result?g(I[a.result.outcome]):""," ","·"," ",g("templates.syncResultLine").replace("{written}",String(a.result?.writtenFiles.length??0)).replace("{skipped}",String(a.result?.skippedFiles.length??0))]}),a.result?.backupPath?(0,b.jsxs)("span",{className:"max-w-48 truncate font-mono",title:a.result.backupPath,children:[g("templates.syncBackup"),": ",a.result.backupPath]}):null]})]},a.projectId))})]}),(0,b.jsx)(z.ConfirmDialog,{open:m,title:g("templates.syncApplyConfirmTitle"),description:g("templates.syncApplyConfirmDescription").replace("{count}",String(i?.projects.length??0)),confirmLabel:g("templates.syncApplyConfirm"),pending:r.isPending,onOpenChange:n,onConfirm:()=>{n(!1),r.mutate()}})]})}let K="AGENTS.md",L="# {{projectName}}\n\nProject root: `{{projectRoot}}`\n\nFollow the repository instructions and keep changes scoped.\n";class M extends Error{constructor(a){super(a),this.name="TemplateFileSaveError"}}a.s(["default",0,function(){let{t:a}=(0,E.useLanguage)(),l=(0,E.useUiLocale)(),F=(0,f.useQueryClient)(),[G,H]=(0,c.useState)(null),[I,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(""),[Q,R]=(0,c.useState)("private"),[S,T]=(0,c.useState)(""),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(""),[Y,Z]=(0,c.useState)("private"),[$,_]=(0,c.useState)(K),[aa,ab]=(0,c.useState)(L),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(null),ag=(0,c.useRef)(0),ah=(0,c.useRef)({templateId:G,filePath:ae,epoch:0});ah.current={templateId:G,filePath:ae,epoch:ag.current};let[ai,aj]=(0,c.useState)(null),[ak,al]=(0,c.useState)(null),[am,an]=(0,c.useState)("all"),[ao,ap]=(0,c.useState)(""),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(""),[aw,ax]=(0,c.useState)(""),[ay,az]=(0,c.useState)(""),[aA,aB]=(0,c.useState)(""),[aC,aD]=(0,c.useState)(null),{data:aE,isLoading:aF,isError:aG,refetch:aH}=(0,e.useQuery)({queryKey:["templates"],queryFn:C.listTemplates}),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),aM=aE?.templates??[],aN=(0,D.filterByVisibility)(aM,am),aO=aN.filter(a=>(a.usageCount??0)>0),aP=aN.filter(a=>(a.usageCount??0)===0);function aQ(c){return(0,b.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(a){if(a!==G){if(!a4())return void a5(a);al(a)}})(c.id),children:[(0,b.jsx)("span",{className:"font-medium",children:c.name}),(0,b.jsxs)("span",{className:"flex flex-wrap justify-end gap-2",children:[(c.isBuiltin||c.builtin)&&(0,b.jsx)(s.Badge,{variant:"secondary",children:a("templates.builtin")}),(0,b.jsx)(s.Badge,{variant:"outline",children:a((0,D.visibilityLabelKey)((0,D.normalizeVisibility)(c.visibility)))})]})]},c.id)}let{data:aR}=(0,e.useQuery)({queryKey:["catalog-items"],queryFn:C.listCatalogItems}),aS=(aR?.items??[]).filter(a=>"template"===a.itemType),aT=(0,c.useMemo)(()=>aM.find(a=>a.id===G),[G,aM]),aU=!!aT?.isBuiltin||!!aT?.builtin,{data:aV}=(0,e.useQuery)({queryKey:["template",G],queryFn:()=>(0,C.getTemplate)(G),enabled:!!G}),{data:aW}=(0,e.useQuery)({queryKey:["template",G,"versions"],queryFn:()=>(0,C.listTemplateVersions)(G),enabled:!!G&&!aU}),aX=(0,d.useMutation)({mutationFn:()=>(0,C.createTemplate)({name:I.trim(),visibility:Q,...O?{adapter:O}:{},files:[{filePath:"claude"===O?"CLAUDE.md":K,content:L,fileType:"markdown"}]}),onSuccess:async({template:b})=>{aD(a("templates.created")),N(""),P(""),R("private"),H(b.id),ad(null),af(null),aj(null),V(b.name),X(b.description??""),Z((0,D.normalizeVisibility)(b.visibility)),await F.invalidateQueries({queryKey:["templates"]})}}),aY=(0,d.useMutation)({mutationFn:a=>(0,C.cloneTemplate)(a,S.trim()||`${aT?.name??"Template"} Copy`),onSuccess:async({template:b})=>{aD(a("templates.cloned")),T(""),H(b.id),ad(null),af(null),aj(null),V(b.name),X(b.description??""),Z((0,D.normalizeVisibility)(b.visibility)),await F.invalidateQueries({queryKey:["templates"]})}}),aZ=(0,d.useMutation)({mutationFn:async()=>{if(!G)throw Error("Template is required");let a={templateId:G,filePath:$.trim(),content:aa,editorEpoch:ag.current};await (0,C.updateTemplate)(G,{name:U.trim(),description:W.trim(),visibility:Y});try{await (0,C.updateTemplateFile)(a.templateId,a.filePath,a.content)}catch(a){throw new M(a instanceof Error?a.message:String(a))}return a},onSuccess:async b=>{aD(a("templates.saved")),ah.current.templateId===b.templateId&&ag.current===b.editorEpoch&&(ad(b.content),af(b.filePath)),await F.invalidateQueries({queryKey:["templates"]}),await F.invalidateQueries({queryKey:["template",b.templateId]});let c=ah.current;if(c.templateId!==b.templateId||c.epoch===b.editorEpoch)return;let d=await F.fetchQuery({queryKey:["template",b.templateId],queryFn:()=>(0,C.getTemplate)(b.templateId),staleTime:0});if(ah.current.templateId!==c.templateId||ag.current!==c.epoch)return;let e=d.template.files?.find(a=>a.filePath===c.filePath);e&&ad(e.content)},onError:b=>{b instanceof M&&B.toast.error(a("templates.saveFileFailed"))}}),a$=(0,d.useMutation)({mutationFn:C.deleteTemplate,onSuccess:async()=>{aD(a("templates.deleted")),H(null),await F.invalidateQueries({queryKey:["templates"]})}}),a_=(0,d.useMutation)({mutationFn:a=>(0,C.exportTemplate)(a),onSuccess:({templatePackage:b})=>{ap(JSON.stringify(b,null,2)),aD(a("templates.exported"))}}),a0=(0,d.useMutation)({mutationFn:()=>{let b;try{b=JSON.parse(ao)}catch{throw Error(a("templates.importInvalidJson"))}return(0,C.importTemplate)(b)},onSuccess:async({template:b})=>{aD(a("templates.imported")),H(b.id),ad(null),af(null),aj(null),V(b.name),X(b.description??""),Z((0,D.normalizeVisibility)(b.visibility)),ap(""),await F.invalidateQueries({queryKey:["templates"]})}}),a1=(0,d.useMutation)({mutationFn:C.installCatalogTemplate,onSuccess:async({template:b})=>{aD(a("templates.catalogInstalled")),H(b.id),ad(null),af(null),aj(null),V(b.name),X(b.description??""),Z((0,D.normalizeVisibility)(b.visibility)),await F.invalidateQueries({queryKey:["templates"]})}}),a2=(0,d.useMutation)({mutationFn:()=>{let a={url:au.trim()},b=aw.trim();b&&(a.branch=b);let c=ay.trim();c&&(a.name=c);let d=aA.trim();return d&&(a.description=d),(0,C.importTemplateFromGit)(a)},onSuccess:async b=>{aD(a("templates.gitImported")),av(""),ax(""),az(""),aB(""),H(b.templateId),ad(null),af(null),aj(null),V(b.name),X(""),Z("private"),await F.invalidateQueries({queryKey:["templates"]})}}),a3=(0,d.useMutation)({mutationFn:({templateId:a,versionId:b})=>(0,C.restoreTemplateVersion)(a,b),onSuccess:async({template:b})=>{let c=b.files?.[0];aD(a("templates.restored")),V(b.name),X(b.description??""),Z((0,D.normalizeVisibility)(b.visibility)),c&&(ag.current++,_(c.filePath),ab(c.content),ad(c.content),af(c.filePath)),await F.invalidateQueries({queryKey:["templates"]}),await F.invalidateQueries({queryKey:["template",G]}),await F.invalidateQueries({queryKey:["template",G,"versions"]})}});function a4(){return!!aT&&(aa!==ac||$.trim()!==ae||U.trim()!==(aT.name??"")||W.trim()!==(aT.description??"")||Y!==(0,D.normalizeVisibility)(aT.visibility))}function a5(a){ag.current++;let b=aM.find(b=>b.id===a);H(a),V(b?.name??""),X(b?.description??""),Z((0,D.normalizeVisibility)(b?.visibility)),_(K),ab(""),ad(null),af(null),aj(null),ap(""),aD(null)}(0,c.useEffect)(()=>{if(!G||!aV||ai===G)return;ag.current++;let a=aV.template.files?.[0];_(a?.filePath??K),ab(a?.content??""),ad(a?a.content:""),af(a?.filePath??K),aj(G)},[G,aV,ai]);let a6=aU||aZ.isPending||null===ac||!a4(),a7=aX.error??aY.error??(aZ.error instanceof M?null:aZ.error)??a$.error??a_.error??a0.error??a1.error??a2.error??a3.error;return(0,b.jsxs)("div",{className:"space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("templates.title")}),(0,b.jsx)("p",{className:"mt-1 text-muted-foreground",children:a("templates.subtitle")})]}),aC&&(0,b.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:aC}),a7 instanceof Error&&(0,b.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a7.message}),(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-[340px_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(u.Card,{children:[(0,b.jsx)(u.CardHeader,{children:(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(n.Plus,{className:"size-4"}),a("templates.createCustom")]})}),(0,b.jsx)(u.CardContent,{children:(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),aX.mutate()},children:[(0,b.jsx)(x.Label,{htmlFor:"new-template-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"new-template-name",value:I,onChange:a=>N(a.target.value),required:!0}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{children:a("common.aiTool")}),(0,b.jsx)(A.AdapterSelect,{ariaLabel:a("common.aiTool"),className:"h-10 w-full",value:O,onValueChange:a=>P(a)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{children:a("common.visibility")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:D.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:Q===c?"default":"outline",onClick:()=>R(c),children:a((0,D.visibilityLabelKey)(c))},c))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a((0,D.visibilityDescriptionKey)(Q))})]}),(0,b.jsxs)(t.Button,{type:"submit",className:"w-full",disabled:aX.isPending||!O,children:[(0,b.jsx)(n.Plus,{className:"size-4"}),aX.isPending?a("templates.creating"):a("templates.createCustom")]})]})})]}),(0,b.jsxs)(u.Card,{children:[(0,b.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:()=>ar(a=>!a),"aria-expanded":aq,"aria-label":a("templates.catalogInstall"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(m,{className:"size-4"}),(0,b.jsx)("span",{className:"text-base font-semibold",children:a("templates.catalogInstall")})]}),(0,b.jsx)(g.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${aq?"rotate-180":""}`})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2 pt-4",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("templates.catalogInstallDescription")}),aq&&(0===aS.length?(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.catalogEmpty")}):aS.map(c=>(0,b.jsxs)("div",{className:"rounded-md border bg-background p-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:c.name}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[c.sourceId," · ",c.version??"1.0.0"]})]}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",variant:"outline",disabled:a1.isPending,onClick:()=>a1.mutate(c.id),children:[(0,b.jsx)(m,{className:"size-3"}),a1.isPending?a("templates.installing"):a("templates.install")]})]}),c.description&&(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c.description})]},c.id)))]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.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:()=>at(a=>!a),"aria-expanded":as,"aria-label":a("templates.gitImport"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.GitBranch,{className:"size-4"}),(0,b.jsx)("span",{className:"text-base font-semibold",children:a("templates.gitImport")})]}),(0,b.jsx)(g.ChevronDown,{className:`size-4 shrink-0 text-muted-foreground transition-transform ${as?"rotate-180":""}`})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2 pt-4",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("templates.gitImportDescription")}),as&&(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),a2.mutate()},children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-url",children:a("templates.gitImportUrl")}),(0,b.jsx)(w.Input,{id:"git-import-url",value:au,onChange:a=>av(a.target.value),placeholder:"https://github.com/your-org/ai-cli-config",required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-branch",children:a("templates.gitImportBranch")}),(0,b.jsx)(w.Input,{id:"git-import-branch",value:aw,onChange:a=>ax(a.target.value),placeholder:"main"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"git-import-name",value:ay,onChange:a=>az(a.target.value)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"git-import-description",children:a("common.description")}),(0,b.jsx)(w.Input,{id:"git-import-description",value:aA,onChange:a=>aB(a.target.value)})]}),(0,b.jsxs)(t.Button,{type:"submit",className:"w-full",disabled:!au.trim()||a2.isPending,children:[(0,b.jsx)(k.GitBranch,{className:"size-4"}),a2.isPending?a("templates.gitImporting"):a("templates.gitImport")]})]})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsx)(u.CardTitle,{className:"text-base",children:a("templates.available")}),(0,b.jsx)(u.CardDescription,{children:a("templates.availableDescription")})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 pb-2",children:[(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:"all"===am?"default":"outline",onClick:()=>an("all"),children:a("visibility.all")}),D.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:am===c?"default":"outline",onClick:()=>an(c),children:a((0,D.visibilityLabelKey)(c))},c))]}),(0,b.jsx)(y.QueryState,{isLoading:aF,isError:aG,isEmpty:0===aN.length,onRetry:()=>void aH(),loading:(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.loading")}),empty:(0,b.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:a("templates.emptyTitle")}),children:(0,b.jsxs)("div",{className:"space-y-3",children:[aO.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("templates.governedTitle")}),(0,b.jsx)(s.Badge,{variant:"secondary",children:aO.length})]}),aO.map(a=>aQ(a))]}),aP.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("templates.seedTitle")}),(0,b.jsx)(s.Badge,{variant:"secondary",children:aP.length})]}),aP.map(a=>aQ(a))]})]})})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsxs)(u.CardHeader,{children:[(0,b.jsx)(u.CardTitle,{className:"text-base",children:a("templates.importExport")}),(0,b.jsx)(u.CardDescription,{children:a("templates.importExportDescription")})]}),(0,b.jsxs)(u.CardContent,{className:"space-y-3",children:[(0,b.jsx)(x.Label,{htmlFor:"template-package",children:a("templates.packageJson")}),(0,b.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:ao,onChange:a=>ap(a.target.value)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,b.jsxs)(t.Button,{type:"button",variant:"outline",disabled:!G||a_.isPending,onClick:()=>G&&a_.mutate(G),children:[(0,b.jsx)(i.Download,{className:"size-4"}),a("templates.export")]}),(0,b.jsxs)(t.Button,{type:"button",variant:"outline",disabled:!ao.trim(),onClick:function(){let a=ao.trim();if(!a)return;let b=new Blob([a],{type:"application/json"}),c=URL.createObjectURL(b),d=document.createElement("a");d.href=c,d.download=`${aT?.name??"template"}.json`,d.click(),URL.revokeObjectURL(c)},children:[(0,b.jsx)(i.Download,{className:"size-4"}),a("templates.download")]}),(0,b.jsxs)(t.Button,{type:"button",className:"col-span-2",disabled:!ao.trim()||a0.isPending,onClick:()=>a0.mutate(),children:[(0,b.jsx)(r,{className:"size-4"}),a("templates.import")]})]})]})]})]}),(0,b.jsxs)(u.Card,{children:[(0,b.jsx)(u.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)(u.CardTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(j.FileCode2,{className:"size-5"}),aT?.name??a("templates.selectTemplate")]}),(0,b.jsx)(u.CardDescription,{children:a("templates.editorDescription")})]}),aT&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(w.Input,{className:"h-8 w-48",value:S,onChange:a=>T(a.target.value),placeholder:a("templates.cloneName")}),(0,b.jsxs)(t.Button,{size:"sm",variant:"outline",onClick:()=>aY.mutate(aT.id),disabled:aY.isPending,children:[(0,b.jsx)(h.Copy,{className:"size-4"}),a("templates.clone")]})]})]})}),(0,b.jsx)(u.CardContent,{children:aT?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(J,{templateId:aT.id}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-name",children:a("common.name")}),(0,b.jsx)(w.Input,{id:"template-name",value:U,onChange:a=>V(a.target.value),disabled:aU})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-description",children:a("common.description")}),(0,b.jsx)(w.Input,{id:"template-description",value:W,onChange:a=>X(a.target.value),disabled:aU})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(x.Label,{children:a("common.visibility")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:D.visibilityOptions.map(c=>(0,b.jsx)(t.Button,{type:"button",size:"sm",variant:Y===c?"default":"outline",disabled:aU,onClick:()=>Z(c),children:a((0,D.visibilityLabelKey)(c))},c))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a((0,D.visibilityDescriptionKey)(Y))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,b.jsx)(x.Label,{htmlFor:"template-file",children:a("templates.filePath")}),(0,b.jsx)(w.Input,{id:"template-file",value:$,onChange:a=>_(a.target.value),disabled:aU})]}),(0,b.jsx)(t.Button,{type:"button",variant:"outline",onClick:function(){let a=aV?.template.files?.find(a=>a.filePath===$)??aV?.template.files?.[0];a&&(ag.current++,_(a.filePath),ab(a.content),ad(a.content),af(a.filePath))},children:a("templates.loadFile")})]}),(0,b.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:aa,onChange:a=>ab(a.target.value),disabled:aU,placeholder:a("templates.fileContent")})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,b.jsxs)(t.Button,{variant:"ghost",className:"text-destructive",disabled:aU||a$.isPending,onClick:()=>{aT&&aJ(aT)},children:[(0,b.jsx)(q.Trash2,{className:"size-4"}),a("common.delete")]}),(0,b.jsxs)(t.Button,{disabled:a6,onClick:()=>aZ.mutate(),children:[(0,b.jsx)(p.Save,{className:"size-4"}),aZ.isPending?a("templates.saving"):a("templates.save")]})]}),!aU&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/20 p-3",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:a("templates.versionHistory")}),0===(aW?.versions??[]).length?(0,b.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:a("templates.noVersions")}):(0,b.jsx)("div",{className:"mt-3 space-y-2",children:aW?.versions.map(c=>(0,b.jsxs)("div",{className:"rounded-md border bg-background p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:c.name}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Badge,{variant:"outline",children:c.version}),(0,b.jsxs)(t.Button,{type:"button",size:"sm",variant:"outline",disabled:!G||a3.isPending,onClick:()=>{aT&&aL({template:aT,versionId:c.id,version:c.version})},children:[(0,b.jsx)(o.RotateCcw,{className:"size-3"}),a3.isPending?a("templates.restoring"):a("templates.restore")]})]})]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[c.action," · ",new Date(c.createdAt).toLocaleString(l)]})]},c.id))})]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center text-sm text-muted-foreground",children:[(0,b.jsx)(j.FileCode2,{className:"mb-4 size-10"}),a("templates.selectTemplate")]})})]})]}),(0,b.jsx)(v.Dialog,{open:null!==ak,onOpenChange:a=>{a||al(null)},children:(0,b.jsxs)(v.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(v.DialogHeader,{children:[(0,b.jsx)(v.DialogTitle,{className:"text-base",children:a("templates.discardChangesTitle")}),(0,b.jsx)(v.DialogDescription,{children:a("templates.discardChangesDescription")})]}),(0,b.jsxs)(v.DialogFooter,{children:[(0,b.jsx)(t.Button,{type:"button",variant:"outline",onClick:()=>al(null),children:a("common.cancel")}),(0,b.jsx)(t.Button,{type:"button",variant:"destructive",onClick:function(){al(null),ak&&a5(ak)},children:a("templates.discardChangesConfirm")})]})]})}),(0,b.jsx)(z.ConfirmDialog,{open:null!==aI,destructive:!0,pending:a$.isPending,title:a("templates.deleteConfirmTitle"),description:aI?[a("templates.deleteConfirmNamed").replace("{name}",aI.name),(aI.usageCount??0)>0?a("templates.deleteInUseWarning").replace("{count}",String(aI.usageCount)):""].filter(Boolean).join(" "):"",confirmLabel:a("common.delete"),onOpenChange:a=>{a||aJ(null)},onConfirm:()=>{aI&&a$.mutate(aI.id),aJ(null)}}),(0,b.jsx)(z.ConfirmDialog,{open:null!==aK,pending:a3.isPending,title:a("templates.restoreConfirmTitle"),description:aK?a("templates.restoreConfirmNamed").replace("{name}",aK.template.name).replace("{version}",aK.version):"",onOpenChange:a=>{a||aL(null)},onConfirm:()=>{aK&&a3.mutate({templateId:aK.template.id,versionId:aK.versionId}),aL(null)}})]})}],88625)}];
2
2
 
3
3
  //# sourceMappingURL=packages_web_src_app_%28dashboard%29_templates_page_tsx_0.s32f~._.js.map