forgebadger 0.1.2 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/README.md +11 -5
  2. package/dist/gateway/src/cli/init.js +9 -4
  3. package/dist/gateway/src/cli/init.js.map +1 -1
  4. package/dist/gateway/src/config/env.d.ts +0 -7
  5. package/dist/gateway/src/config/env.js +1 -9
  6. package/dist/gateway/src/config/env.js.map +1 -1
  7. package/dist/gateway/src/db/migrations/0129_session_notification_type.sql +4 -0
  8. package/dist/gateway/src/db/migrations/0130_template_adapter_backfill.sql +4 -0
  9. package/dist/gateway/src/db/migrations/0131_single_project_autonomy.sql +7 -0
  10. package/dist/gateway/src/db/migrations/0132_api_format_protocol_values.sql +29 -0
  11. package/dist/gateway/src/db/migrations/0133_copilot_run_trace.sql +16 -0
  12. package/dist/gateway/src/db/migrations/0134_drop_copilot_project_autonomy.sql +5 -0
  13. package/dist/gateway/src/db/migrations/meta/_journal.json +42 -0
  14. package/dist/gateway/src/db/migrations/meta/migration-checksums.json +7 -1
  15. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.d.ts +18 -0
  16. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js +40 -0
  17. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js.map +1 -0
  18. package/dist/gateway/src/db/repositories/mcp-token-repository.d.ts +2 -1
  19. package/dist/gateway/src/db/repositories/mcp-token-repository.js +7 -1
  20. package/dist/gateway/src/db/repositories/mcp-token-repository.js.map +1 -1
  21. package/dist/gateway/src/db/repositories/model-provider-repository.d.ts +7 -1
  22. package/dist/gateway/src/db/repositories/model-provider-repository.js.map +1 -1
  23. package/dist/gateway/src/db/repositories/notification-repository.js +1 -1
  24. package/dist/gateway/src/db/repositories/notification-repository.js.map +1 -1
  25. package/dist/gateway/src/db/repositories/project-management-repository.d.ts +1 -2
  26. package/dist/gateway/src/db/repositories/project-management-repository.js +6 -6
  27. package/dist/gateway/src/db/repositories/project-management-repository.js.map +1 -1
  28. package/dist/gateway/src/db/repositories/project-manager-repository.d.ts +3 -0
  29. package/dist/gateway/src/db/repositories/project-manager-repository.js +16 -0
  30. package/dist/gateway/src/db/repositories/project-manager-repository.js.map +1 -1
  31. package/dist/gateway/src/db/repositories/project-repository.d.ts +0 -3
  32. package/dist/gateway/src/db/repositories/project-repository.js +0 -16
  33. package/dist/gateway/src/db/repositories/project-repository.js.map +1 -1
  34. package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js +2 -2
  35. package/dist/gateway/src/db/schema.d.ts +160 -34
  36. package/dist/gateway/src/db/schema.js +9 -4
  37. package/dist/gateway/src/db/schema.js.map +1 -1
  38. package/dist/gateway/src/lib/terminal-wheel-input.d.ts +2 -0
  39. package/dist/gateway/src/lib/terminal-wheel-input.js +5 -0
  40. package/dist/gateway/src/lib/terminal-wheel-input.js.map +1 -0
  41. package/dist/gateway/src/mvp0/api.d.ts +1 -1
  42. package/dist/gateway/src/mvp0/api.js +1 -1
  43. package/dist/gateway/src/mvp0/api.js.map +1 -1
  44. package/dist/gateway/src/routes/copilot.js +9 -0
  45. package/dist/gateway/src/routes/copilot.js.map +1 -1
  46. package/dist/gateway/src/routes/mcp-tokens.js +44 -3
  47. package/dist/gateway/src/routes/mcp-tokens.js.map +1 -1
  48. package/dist/gateway/src/routes/model-providers.js +58 -1
  49. package/dist/gateway/src/routes/model-providers.js.map +1 -1
  50. package/dist/gateway/src/routes/project-management.js +0 -21
  51. package/dist/gateway/src/routes/project-management.js.map +1 -1
  52. package/dist/gateway/src/routes/session-hooks.d.ts +2 -2
  53. package/dist/gateway/src/routes/session-hooks.js +50 -53
  54. package/dist/gateway/src/routes/session-hooks.js.map +1 -1
  55. package/dist/gateway/src/routes/sessions.js +1 -3
  56. package/dist/gateway/src/routes/sessions.js.map +1 -1
  57. package/dist/gateway/src/routes/templates.js +3 -3
  58. package/dist/gateway/src/routes/templates.js.map +1 -1
  59. package/dist/gateway/src/runtime/start-gateway.js +1 -3
  60. package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
  61. package/dist/gateway/src/server.d.ts +2 -2
  62. package/dist/gateway/src/server.js +14 -14
  63. package/dist/gateway/src/server.js.map +1 -1
  64. package/dist/gateway/src/services/agent/context-recovery.js +5 -4
  65. package/dist/gateway/src/services/agent/context-recovery.js.map +1 -1
  66. package/dist/gateway/src/services/agent/context.d.ts +9 -8
  67. package/dist/gateway/src/services/agent/context.js +16 -19
  68. package/dist/gateway/src/services/agent/context.js.map +1 -1
  69. package/dist/gateway/src/services/agent/dispatch-supervisor.js +1 -1
  70. package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -1
  71. package/dist/gateway/src/services/agent/followups.js +2 -0
  72. package/dist/gateway/src/services/agent/followups.js.map +1 -1
  73. package/dist/gateway/src/services/agent/llm-client.d.ts +0 -2
  74. package/dist/gateway/src/services/agent/llm-client.js +12 -12
  75. package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
  76. package/dist/gateway/src/services/agent/orchestrator-types.d.ts +1 -0
  77. package/dist/gateway/src/services/agent/orchestrator.js +59 -27
  78. package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
  79. package/dist/gateway/src/services/agent/redaction.js +1 -1
  80. package/dist/gateway/src/services/agent/redaction.js.map +1 -1
  81. package/dist/gateway/src/services/agent/restricted-runs.d.ts +1 -0
  82. package/dist/gateway/src/services/agent/restricted-runs.js +2 -3
  83. package/dist/gateway/src/services/agent/restricted-runs.js.map +1 -1
  84. package/dist/gateway/src/services/agent/run-authorization.d.ts +38 -0
  85. package/dist/gateway/src/services/agent/run-authorization.js +65 -0
  86. package/dist/gateway/src/services/agent/run-authorization.js.map +1 -0
  87. package/dist/gateway/src/services/agent/run-governance.js +7 -2
  88. package/dist/gateway/src/services/agent/run-governance.js.map +1 -1
  89. package/dist/gateway/src/services/agent/run-ledger.d.ts +2 -0
  90. package/dist/gateway/src/services/agent/run-ledger.js +48 -13
  91. package/dist/gateway/src/services/agent/run-ledger.js.map +1 -1
  92. package/dist/gateway/src/services/agent/run-trace.d.ts +25 -0
  93. package/dist/gateway/src/services/agent/run-trace.js +42 -0
  94. package/dist/gateway/src/services/agent/run-trace.js.map +1 -0
  95. package/dist/gateway/src/services/agent/security-policy.js +7 -2
  96. package/dist/gateway/src/services/agent/security-policy.js.map +1 -1
  97. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +17 -0
  98. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js.map +1 -1
  99. package/dist/gateway/src/services/agent/skills/copilot-skills.js +9 -11
  100. package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
  101. package/dist/gateway/src/services/agent/task-review.js +2 -1
  102. package/dist/gateway/src/services/agent/task-review.js.map +1 -1
  103. package/dist/gateway/src/services/agent/token-estimate.d.ts +36 -0
  104. package/dist/gateway/src/services/agent/token-estimate.js +79 -0
  105. package/dist/gateway/src/services/agent/token-estimate.js.map +1 -0
  106. package/dist/gateway/src/services/agent/tool-availability.d.ts +2 -5
  107. package/dist/gateway/src/services/agent/tool-availability.js +7 -14
  108. package/dist/gateway/src/services/agent/tool-availability.js.map +1 -1
  109. package/dist/gateway/src/services/agent/tool-surface.d.ts +50 -0
  110. package/dist/gateway/src/services/agent/tool-surface.js +78 -0
  111. package/dist/gateway/src/services/agent/tool-surface.js.map +1 -0
  112. package/dist/gateway/src/services/agent/tools/platform-coverage.js +3 -6
  113. package/dist/gateway/src/services/agent/tools/platform-coverage.js.map +1 -1
  114. package/dist/gateway/src/services/agent/tools/platform-management.js +3 -3
  115. package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
  116. package/dist/gateway/src/services/agent/tools/project-manager.js +1 -1
  117. package/dist/gateway/src/services/agent/tools/project-manager.js.map +1 -1
  118. package/dist/gateway/src/services/agent/tools/sessions.js +5 -1
  119. package/dist/gateway/src/services/agent/tools/sessions.js.map +1 -1
  120. package/dist/gateway/src/services/agent/tools/terminal.js +3 -4
  121. package/dist/gateway/src/services/agent/tools/terminal.js.map +1 -1
  122. package/dist/gateway/src/services/channels/channel-diagnostics.js +5 -13
  123. package/dist/gateway/src/services/channels/channel-diagnostics.js.map +1 -1
  124. package/dist/gateway/src/services/channels/channel-identity-service.js +1 -1
  125. package/dist/gateway/src/services/channels/channel-identity-service.js.map +1 -1
  126. package/dist/gateway/src/services/channels/channel-run-scope.d.ts +2 -4
  127. package/dist/gateway/src/services/channels/channel-run-scope.js +33 -20
  128. package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -1
  129. package/dist/gateway/src/services/claude-notification-settings.js +15 -7
  130. package/dist/gateway/src/services/claude-notification-settings.js.map +1 -1
  131. package/dist/gateway/src/services/claude-route/gateway-url.js +1 -1
  132. package/dist/gateway/src/services/claude-route/gateway-url.js.map +1 -1
  133. package/dist/gateway/src/services/cli-config-apply.d.ts +7 -7
  134. package/dist/gateway/src/services/cli-config-apply.js +49 -34
  135. package/dist/gateway/src/services/cli-config-apply.js.map +1 -1
  136. package/dist/gateway/src/services/cli-config.js +3 -2
  137. package/dist/gateway/src/services/cli-config.js.map +1 -1
  138. package/dist/gateway/src/services/cli-notification-settings.js +2 -2
  139. package/dist/gateway/src/services/development/authority.js +2 -5
  140. package/dist/gateway/src/services/development/authority.js.map +1 -1
  141. package/dist/gateway/src/services/development/repair-scope.js +2 -9
  142. package/dist/gateway/src/services/development/repair-scope.js.map +1 -1
  143. package/dist/gateway/src/services/event-bus.d.ts +3 -3
  144. package/dist/gateway/src/services/event-bus.js +1 -1
  145. package/dist/gateway/src/services/event-bus.js.map +1 -1
  146. package/dist/gateway/src/services/mcp/lifecycle-tools.d.ts +3 -0
  147. package/dist/gateway/src/services/mcp/lifecycle-tools.js +29 -0
  148. package/dist/gateway/src/services/mcp/lifecycle-tools.js.map +1 -0
  149. package/dist/gateway/src/services/mcp/lifecycle.d.ts +480 -0
  150. package/dist/gateway/src/services/mcp/lifecycle.js +216 -0
  151. package/dist/gateway/src/services/mcp/lifecycle.js.map +1 -0
  152. package/dist/gateway/src/services/mcp/mcp-server.js +45 -13
  153. package/dist/gateway/src/services/mcp/mcp-server.js.map +1 -1
  154. package/dist/gateway/src/services/native-directory-picker.js +42 -12
  155. package/dist/gateway/src/services/native-directory-picker.js.map +1 -1
  156. package/dist/gateway/src/services/notification-dedupe.d.ts +1 -1
  157. package/dist/gateway/src/services/notification-dedupe.js +1 -1
  158. package/dist/gateway/src/services/notification-events.js +10 -12
  159. package/dist/gateway/src/services/notification-events.js.map +1 -1
  160. package/dist/gateway/src/services/notifications/feishu-notification-card.js +2 -2
  161. package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -1
  162. package/dist/gateway/src/services/notifications/feishu-notifications.js +1 -1
  163. package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -1
  164. package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
  165. package/dist/gateway/src/services/opencode-notification-settings.js +1 -1
  166. package/dist/gateway/src/services/platform-commands/actions.js +2 -10
  167. package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
  168. package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
  169. package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
  170. package/dist/gateway/src/services/platform-commands/catalog.js +2 -5
  171. package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
  172. package/dist/gateway/src/services/platform-commands/tool-commands.js +4 -0
  173. package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
  174. package/dist/gateway/src/services/platform-commands/types.d.ts +2 -0
  175. package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +1 -1
  176. package/dist/gateway/src/services/programmatic-terminal-submit.js +75 -28
  177. package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
  178. package/dist/gateway/src/services/project-config-files.d.ts +1 -1
  179. package/dist/gateway/src/services/project-config-files.js +11 -2
  180. package/dist/gateway/src/services/project-config-files.js.map +1 -1
  181. package/dist/gateway/src/services/project-config-render.js +10 -3
  182. package/dist/gateway/src/services/project-config-render.js.map +1 -1
  183. package/dist/gateway/src/services/project-manager/access.js +1 -1
  184. package/dist/gateway/src/services/project-manager/access.js.map +1 -1
  185. package/dist/gateway/src/services/project-manager/management.d.ts +1 -6
  186. package/dist/gateway/src/services/project-manager/management.js +2 -6
  187. package/dist/gateway/src/services/project-manager/management.js.map +1 -1
  188. package/dist/gateway/src/services/project-manager/task-execution.js +0 -3
  189. package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -1
  190. package/dist/gateway/src/services/provider-capabilities.js +7 -7
  191. package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
  192. package/dist/gateway/src/services/runtime-settings.d.ts +2 -3
  193. package/dist/gateway/src/services/runtime-settings.js +1 -17
  194. package/dist/gateway/src/services/runtime-settings.js.map +1 -1
  195. package/dist/gateway/src/services/session-launch-plan.js +1 -1
  196. package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
  197. package/dist/gateway/src/services/session-manager.d.ts +9 -0
  198. package/dist/gateway/src/services/session-manager.js +51 -7
  199. package/dist/gateway/src/services/session-manager.js.map +1 -1
  200. package/dist/gateway/src/services/session-stop-target.js +10 -2
  201. package/dist/gateway/src/services/session-stop-target.js.map +1 -1
  202. package/dist/gateway/src/services/template-git-import.d.ts +1 -1
  203. package/dist/gateway/src/services/template-git-import.js +3 -2
  204. package/dist/gateway/src/services/template-git-import.js.map +1 -1
  205. package/dist/gateway/src/services/terminal-notification-ingestion.js +2 -2
  206. package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -1
  207. package/dist/gateway/src/websocket/events.js +2 -2
  208. package/dist/gateway/src/websocket/events.js.map +1 -1
  209. package/dist/gateway/src/websocket/terminal.d.ts +1 -1
  210. package/dist/gateway/src/websocket/terminal.js +3 -6
  211. package/dist/gateway/src/websocket/terminal.js.map +1 -1
  212. package/dist/runtime/backup.js +1 -1
  213. package/dist/runtime/config.js +2 -2
  214. package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
  215. package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
  216. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +4 -4
  217. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
  218. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
  219. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +4 -4
  220. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
  221. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
  222. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +4 -4
  223. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
  224. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
  225. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +4 -4
  226. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
  227. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
  228. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +4 -4
  229. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
  230. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
  231. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +4 -4
  232. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
  233. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
  234. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +4 -4
  235. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
  236. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
  237. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +4 -4
  238. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
  239. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
  240. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +4 -4
  241. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
  242. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
  243. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +4 -4
  244. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
  245. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
  246. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +4 -4
  247. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
  248. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
  249. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +4 -4
  250. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  251. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  252. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +4 -4
  253. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
  254. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
  255. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +4 -4
  256. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
  257. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
  258. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +4 -4
  259. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
  260. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
  261. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +4 -4
  262. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  263. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  264. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +4 -4
  265. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
  266. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
  267. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +4 -4
  268. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
  269. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  270. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +4 -4
  271. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  272. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  273. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +4 -4
  274. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -1
  275. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +1 -1
  276. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +4 -4
  277. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
  278. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
  279. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +4 -4
  280. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  281. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  282. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +4 -4
  283. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -1
  284. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +1 -1
  285. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +4 -4
  286. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
  287. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
  288. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +4 -4
  289. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
  290. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
  291. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +4 -4
  292. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
  293. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
  294. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +4 -4
  295. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
  296. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
  297. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +4 -4
  298. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
  299. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
  300. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +4 -4
  301. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
  302. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
  303. package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  304. package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  305. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  306. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  307. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  308. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  309. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  310. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  311. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  312. package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  313. package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
  314. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  315. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  316. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  317. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  318. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  319. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  320. package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
  321. package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +14 -14
  322. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
  323. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
  324. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  325. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +14 -14
  326. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
  327. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
  328. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
  329. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
  330. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +16 -16
  331. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
  332. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
  333. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  334. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  335. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +16 -16
  336. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
  337. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
  338. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
  339. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
  340. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +16 -16
  341. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
  342. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
  343. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  344. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  345. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +16 -16
  346. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
  347. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
  348. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
  349. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
  350. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +16 -16
  351. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
  352. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
  353. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  354. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  355. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +16 -16
  356. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
  357. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
  358. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
  359. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
  360. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +16 -16
  361. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
  362. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
  363. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  364. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  365. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +16 -16
  366. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
  367. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
  368. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
  369. package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
  370. package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +17 -17
  371. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
  372. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  373. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  374. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +17 -17
  375. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
  376. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
  377. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
  378. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
  379. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  380. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
  381. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
  382. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
  383. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
  384. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
  385. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  386. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
  387. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
  388. package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
  389. package/dist/web/standalone/packages/web/.next/server/app/history.rsc +17 -17
  390. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
  391. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
  392. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  393. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +17 -17
  394. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
  395. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
  396. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
  397. package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
  398. package/dist/web/standalone/packages/web/.next/server/app/index.rsc +17 -17
  399. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
  400. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  401. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
  402. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  403. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
  404. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  405. package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
  406. package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
  407. package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
  408. package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
  409. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
  410. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
  411. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
  412. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
  413. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
  414. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
  415. package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
  416. package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  417. package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
  418. package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
  419. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
  420. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
  421. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
  422. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  423. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  424. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
  425. package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
  426. package/dist/web/standalone/packages/web/.next/server/app/members.rsc +17 -17
  427. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
  428. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
  429. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  430. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +17 -17
  431. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
  432. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
  433. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
  434. package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
  435. package/dist/web/standalone/packages/web/.next/server/app/models.rsc +17 -17
  436. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
  437. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
  438. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  439. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +17 -17
  440. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
  441. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
  442. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
  443. package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
  444. package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +17 -17
  445. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
  446. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
  447. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  448. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +17 -17
  449. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
  450. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
  451. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
  452. package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
  453. package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +17 -17
  454. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
  455. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
  456. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  457. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  458. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +17 -17
  459. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
  460. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
  461. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
  462. package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
  463. package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +17 -17
  464. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
  465. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
  466. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  467. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  468. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +17 -17
  469. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
  470. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
  471. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
  472. package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
  473. package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +16 -16
  474. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
  475. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  476. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  477. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +16 -16
  478. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  479. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
  480. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  481. package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
  482. package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
  483. package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
  484. package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
  485. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
  486. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
  487. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
  488. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
  489. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
  490. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
  491. package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
  492. package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +17 -17
  493. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
  494. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
  495. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  496. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +17 -17
  497. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
  498. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
  499. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  500. package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
  501. package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +17 -17
  502. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
  503. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
  504. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  505. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  506. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  507. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  508. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  509. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -1
  510. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +16 -16
  511. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +4 -4
  512. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +3 -3
  513. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  514. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  515. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +16 -16
  516. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_head.segment.rsc +4 -4
  517. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +6 -6
  518. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +2 -2
  519. package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
  520. package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +16 -16
  521. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
  522. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
  523. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  524. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  525. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +16 -16
  526. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
  527. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
  528. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
  529. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -1
  530. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +16 -16
  531. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +4 -4
  532. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +3 -3
  533. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  534. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  535. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +16 -16
  536. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +4 -4
  537. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +6 -6
  538. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +2 -2
  539. package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
  540. package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +17 -17
  541. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
  542. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  543. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  544. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +17 -17
  545. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
  546. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
  547. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  548. package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
  549. package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +14 -14
  550. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
  551. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
  552. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  553. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +14 -14
  554. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
  555. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
  556. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
  557. package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
  558. package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +17 -17
  559. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
  560. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
  561. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  562. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +17 -17
  563. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
  564. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
  565. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
  566. package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
  567. package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +16 -16
  568. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
  569. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
  570. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  571. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +16 -16
  572. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
  573. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
  574. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
  575. package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
  576. package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +14 -14
  577. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
  578. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
  579. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  580. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +14 -14
  581. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
  582. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
  583. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  584. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03inbb0._.js +3 -0
  585. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
  586. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0mvyp71._.js +3 -0
  587. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~hqizj._.js +3 -0
  588. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13w0f1~._.js +3 -0
  589. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-8y7~8._.js +3 -0
  590. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-gw886._.js +3 -0
  591. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_038nxrj._.js +3 -0
  592. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03n-g57._.js +3 -0
  593. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04xf5q9._.js +3 -0
  594. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055d-ao._.js +3 -0
  595. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05zx7t7._.js +3 -0
  596. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_12w9fro._.js → _06.zuca._.js} +2 -2
  597. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07xrtbe._.js +3 -0
  598. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09qlnot._.js +3 -0
  599. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +1 -1
  600. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_6knqk._.js +3 -0
  601. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_7nkt6._.js +3 -0
  602. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0aj4ajk._.js +3 -0
  603. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0awj3ix._.js +3 -0
  604. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +3 -0
  605. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eyvq.q._.js +3 -0
  606. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l.3_po._.js +3 -0
  607. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p-i6oy._.js +3 -0
  608. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgkuef._.js +3 -0
  609. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qlo6ux._.js +3 -0
  610. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +1 -1
  611. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +1 -1
  612. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xjjrmf._.js +3 -0
  613. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xxhxhp._.js +3 -0
  614. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~6bpee._.js +3 -0
  615. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12h5j52._.js +3 -0
  616. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
  617. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
  618. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +1 -1
  619. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
  620. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
  621. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +1 -1
  622. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
  623. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
  624. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +1 -1
  625. package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
  626. package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
  627. package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
  628. package/dist/web/standalone/packages/web/.next/static/chunks/{0txrk44pdmdsw.js → 01-hqvam3w0~~.js} +1 -1
  629. package/dist/web/standalone/packages/web/.next/static/chunks/02net~gj5seu8.js +1 -0
  630. package/dist/web/standalone/packages/web/.next/static/chunks/{0g.jepdilt76o.js → 034bfwrk4dtch.js} +1 -1
  631. package/dist/web/standalone/packages/web/.next/static/chunks/042m5fzwa.5rb.js +1 -0
  632. package/dist/web/standalone/packages/web/.next/static/chunks/04t8.94ylt2j6.js +1 -0
  633. package/dist/web/standalone/packages/web/.next/static/chunks/079pi3esz7ztj.js +1 -0
  634. package/dist/web/standalone/packages/web/.next/static/chunks/07dsa~2xhj7fp.js +1 -0
  635. package/dist/web/standalone/packages/web/.next/static/chunks/084df1q.t96px.js +1 -0
  636. package/dist/web/standalone/packages/web/.next/static/chunks/09-77kwttecp8.js +1 -0
  637. package/dist/web/standalone/packages/web/.next/static/chunks/0ahamdhz5rqd0.js +1 -0
  638. package/dist/web/standalone/packages/web/.next/static/chunks/0aymq5zo45jwo.css +1 -0
  639. package/dist/web/standalone/packages/web/.next/static/chunks/0a~p89jkiv-xy.js +1 -0
  640. package/dist/web/standalone/packages/web/.next/static/chunks/0blz40tkx36ya.js +1 -0
  641. package/dist/web/standalone/packages/web/.next/static/chunks/0bo35rh3et6nh.js +1 -0
  642. package/dist/web/standalone/packages/web/.next/static/chunks/0c3i0-wz63ys6.js +1 -0
  643. package/dist/web/standalone/packages/web/.next/static/chunks/0c3qwax9lt4tx.js +1 -0
  644. package/dist/web/standalone/packages/web/.next/static/chunks/0crxf3wawwn83.js +2 -0
  645. package/dist/web/standalone/packages/web/.next/static/chunks/0gz0he~jrjk8a.js +3 -0
  646. package/dist/web/standalone/packages/web/.next/static/chunks/0j3ve5insz6.3.js +1 -0
  647. package/dist/web/standalone/packages/web/.next/static/chunks/0l-uwd_dr1mbk.js +1 -0
  648. package/dist/web/standalone/packages/web/.next/static/chunks/{0.1mxnjmxr~su.js → 0nxwqjcq79-4u.js} +2 -2
  649. package/dist/web/standalone/packages/web/.next/static/chunks/{0rvmfvjpdwe.w.js → 0p3t7a~kdodga.js} +1 -1
  650. package/dist/web/standalone/packages/web/.next/static/chunks/0rs04qz9_.2h5.js +1 -0
  651. package/dist/web/standalone/packages/web/.next/static/chunks/0sv0hnum1q_mj.js +1 -0
  652. package/dist/web/standalone/packages/web/.next/static/chunks/0tf8lwgh~fndc.js +1 -0
  653. package/dist/web/standalone/packages/web/.next/static/chunks/0wnkj_m4ke__p.js +1 -0
  654. package/dist/web/standalone/packages/web/.next/static/chunks/0xszl0jyt02ly.js +1 -0
  655. package/dist/web/standalone/packages/web/.next/static/chunks/0y8o9-d.39uek.js +1 -0
  656. package/dist/web/standalone/packages/web/.next/static/chunks/0~.y-iqdl1g2v.js +1 -0
  657. package/dist/web/standalone/packages/web/.next/static/chunks/{0b5zptp8.z.nn.js → 0~0f5pw_ezzrh.js} +1 -1
  658. package/dist/web/standalone/packages/web/.next/static/chunks/112uoiiyc.o-i.js +1 -0
  659. package/dist/web/standalone/packages/web/.next/static/chunks/117spe00n0ln_.js +1 -0
  660. package/dist/web/standalone/packages/web/.next/static/chunks/129g7a~bc67a8.js +1 -0
  661. package/dist/web/standalone/packages/web/.next/static/chunks/13qimumcmf67m.js +1 -0
  662. package/dist/web/standalone/packages/web/.next/static/chunks/15y1w~u~sxuqn.js +1 -0
  663. package/dist/web/standalone/packages/web/.next/static/chunks/16evga~sgvskl.js +1 -0
  664. package/dist/web/standalone/packages/web/.next/static/chunks/1708mw9d18sq2.js +1 -0
  665. package/dist/web/standalone/packages/web/public/forgebadger-runtime.js +1 -1
  666. package/docs/PERSONAL-TEAM-WORKFLOWS.md +6 -6
  667. package/docs/README.zh-CN.md +5 -5
  668. package/docs/README.zh-TW.md +5 -5
  669. package/package.json +1 -1
  670. package/dist/gateway/src/services/adapter-autonomy.d.ts +0 -10
  671. package/dist/gateway/src/services/adapter-autonomy.js +0 -25
  672. package/dist/gateway/src/services/adapter-autonomy.js.map +0 -1
  673. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +0 -3
  674. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +0 -3
  675. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +0 -3
  676. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +0 -3
  677. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +0 -3
  678. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +0 -3
  679. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +0 -3
  680. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +0 -3
  681. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +0 -3
  682. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +0 -3
  683. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +0 -3
  684. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +0 -3
  685. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +0 -3
  686. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +0 -3
  687. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +0 -3
  688. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +0 -3
  689. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +0 -3
  690. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +0 -3
  691. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +0 -3
  692. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +0 -3
  693. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +0 -3
  694. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +0 -3
  695. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +0 -3
  696. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +0 -3
  697. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +0 -3
  698. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +0 -3
  699. package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +0 -3
  700. package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +0 -1
  701. package/dist/web/standalone/packages/web/.next/static/chunks/00gq~jtzei49d.js +0 -1
  702. package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +0 -1
  703. package/dist/web/standalone/packages/web/.next/static/chunks/04iwl3440l6ci.js +0 -1
  704. package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +0 -1
  705. package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +0 -2
  706. package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +0 -1
  707. package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +0 -1
  708. package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +0 -1
  709. package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +0 -1
  710. package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +0 -1
  711. package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +0 -1
  712. package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +0 -1
  713. package/dist/web/standalone/packages/web/.next/static/chunks/0qz-8gatr0e58.js +0 -1
  714. package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +0 -1
  715. package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +0 -1
  716. package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +0 -1
  717. package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +0 -1
  718. package/dist/web/standalone/packages/web/.next/static/chunks/0uqsh8sbcz046.js +0 -1
  719. package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +0 -1
  720. package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +0 -1
  721. package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +0 -1
  722. package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +0 -1
  723. package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +0 -1
  724. package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +0 -1
  725. package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +0 -1
  726. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_buildManifest.js +0 -0
  727. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_clientMiddlewareManifest.js +0 -0
  728. /package/dist/web/standalone/packages/web/.next/static/{rZYlH0_cQ6CsojVFUjtlA → wkc8XKp3khKRctgTww1hC}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,4484,e=>{"use strict";let t=(0,e.i(65174).default)("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);e.s(["SlidersHorizontal",0,t],4484)},42831,e=>{"use strict";var t=e.i(35887);let i={navAriaLabel:"Copilot 设置导航",navGeneral:"常规",navExtensions:"扩展",navChannels:"远程渠道",navAutomations:"自动化",backToChat:"返回对话",channelsCardTitle:"远程渠道",channelsCardDescription:"配置飞书与 Telegram 远程操作:应用接入、身份确认与项目绑定。",channelPlatformLabel:"渠道平台",channelStateNotConnected:"未接入",channelStatePairing:"待配对",channelStateAuthorization:"待授权",channelStateRunning:"运行中",channelStateStopped:"已停止",channelStateUnknown:"待核查",diagnosticsFailedNotice:e=>`诊断存在 ${e} 项未通过。`,diagnosticsExpand:"展开诊断",diagnosticsCollapse:"收起诊断",diagnosticsStatusUntested:"未验证",diagnosticsStatusPending:"进行中",diagnosticsStatusFailed:"未通过",copyCommand:"复制命令",commandCopied:"已复制",modifyConfig:"修改配置",editAllowlist:"编辑白名单",setAllowlist:"设置白名单",allowlistEmpty:"尚未设置聊天白名单。",identitiesEmpty:"暂无已确认身份。",bindingsEmpty:"尚无渠道绑定。",emergencyStopTitle:e=>`确认紧急停止${e}?`,emergencyStopDescription:"紧急停止会阻止后续入站消息与操作;已经发生的操作无法撤回。",emergencyStopConfirm:"确认停止",dialogCancel:"取消",memoryScopeGlobal:"全局",memoryScopeProject:"项目",memoryScopeSession:"会话",memoryKindFact:"事实",memoryKindPreference:"偏好",memoryKindDecision:"决策",memoryKindProjectNote:"项目备注",manageModels:"管理模型",autonomyTitle:"派发自主权",autonomyDescription:"允许 Copilot 程序化控制哪些 CLI 适配器。未启用的适配器在派发时会被安全策略拒绝。",autonomyEmptyNote:"未启用任何适配器:所有程序化派发都会被拒绝,需要手动向 CLI 提交指令。",autonomyInstalled:"本机已检测到",autonomyMissing:"未检测到 CLI",autonomyAutoDispatch:"项目任务自动推进",autonomyAutoDispatchDescription:"CLI 报告任务完成/失败后,自动把对应工作项推进到待评审/受阻。",autonomyAutoDispatchBlocked:"需先启用至少一个适配器",autonomySaving:"正在保存…",autonomySaved:"派发自主权已保存。",autonomySaveError:"保存失败,请重试。",autonomyLoadError:"加载失败",autonomyRetry:"重试",autonomyReadonly:"运行时设置已被 FORGEBADGER_RUNTIME_SETTINGS_READONLY 锁定为只读,请修改 .env 并重启 Gateway。",autonomySourceEnv:".env",autonomySourceSettings:"设置页",notifyContentHint:"通知默认包含已采集到的脱敏结果、错误和执行进度,无需额外开启;所选私聊或群聊成员均可看到这些内容。",notifyTitle:"飞书通知",notifyDescription:"选择已确认的私聊或已核验的群聊接收通知卡片。保存仅授权通知推送,不改变远程命令白名单或项目操作权限。",notifySwitchAria:"接收 ForgeBadger 通知",notifyLoading:"正在加载通知设置…",notifyLoadError:"通知设置加载失败。",notifyReload:"重新加载通知设置",notifyTargetLabel:"通知接收位置",notifyTargetPlaceholder:"选择私聊或群聊",notifyTargetStale:"已失效的接收位置,请重新选择",notifyKindGroup:"群聊",notifyKindPrivate:"私聊",notifyUnavailableSuffix:"不可用",notifyRefreshTargets:"刷新接收位置",notifyPrivateHint:"私聊来自已确认身份;刷新会核验已配置或已使用的群聊。机器人需在群内,并具备读取群列表与群成员状态的权限。",notifyGroupNotice:e=>`所选通知将发送到群“${e}”,群成员均可查看。`,notifyTypesLegend:"通知类型",notifyWebLabel:"ForgeBadger Web 地址(可选)",notifyWebAria:"ForgeBadger Web 地址",notifyWebHint:"填写飞书所在设备能访问的地址,卡片才显示查看按钮;localhost 只指向当前设备。留空仍可接收卡片摘要。卡片不提供直接审批操作。",notifyBlockerFallback:"请检查通知配置。",notifySave:"保存通知设置",notifyTest:"发送测试卡片",notifyActionFailed:(e,t)=>`${e}失败。${t}`,notifyActionRefresh:"刷新接收位置",notifyActionSave:"保存",notifyActionTest:"测试通知入队",notifyAuthExpired:"登录已失效,请重新登录。",notifyGenericError:"暂时无法完成请求,请检查 Gateway 连接后重试。",notifyRefreshOk:"接收位置已刷新。",notifyRefreshNoGroup:"未发现可用的已配置群聊,请确认机器人已加入该群。已确认私聊仍可直接选择。",notifySavedOn:"飞书通知已开启,只推送之后产生的通知。",notifySavedOff:"飞书通知已关闭,尚未发送的通知已取消。",notifyTestQueued:"测试卡片已入队,请查看下方投递状态和所选会话。",notifyDeliveriesTitle:"最近通知投递",notifyDeliveriesHint:"飞书已接收不代表已读;结果不确定时请先核对接收会话,系统不会自动重发。",notifyDeliveriesLoading:"正在加载投递记录…",notifyDeliveriesLoadError:"投递记录加载失败。",notifyDeliveriesEmpty:"暂无通知投递记录。",notifyTestCard:"测试卡片",notifyDeliveryFallback:"通知",notifyTypes:{attention:"需要处理 / 等待审批",failure:"任务失败 / 权限被拒绝",completion:"任务完成",lifecycle:"任务中断 / 会话结束",app_action:"应用操作结果",automation:"自动化任务结果"},notifyStatuses:{pending:"待发送",sending:"发送中",delivered:"飞书已接收",failed:"发送失败",unknown:"结果不确定",cancelled:"已取消"},notifyBlockers:{IDENTITY_INVALID:"请先完成私聊身份确认。",ACCOUNT_CHANGED:"账号配置已变化,请重新配对身份。",CHANNEL_DISABLED:"请先启用飞书应用,或解除紧急停止。",USER_DISABLED:"当前账号已停用。",TARGET_INVALID:"请选择一个已确认的私聊或已核验的群聊。",TARGET_UNAVAILABLE:"接收位置已不可用,请刷新列表并重新选择。",TARGET_CHANGED:"接收位置已变化,请重新选择并保存。",TARGET_CONFLICT:"接收位置与旧版私聊设置冲突,请刷新页面后重新选择。"},notifyErrors:{CONFIG_CONFLICT:"配置已在其他页面更新,请重新加载通知设置后再修改。",WEB_URL_INVALID:"Web 地址格式不正确,请使用完整的 http:// 或 https:// 地址,不包含账号密码、查询参数或 # 片段;也可以留空。",TYPES_REQUIRED:"请至少选择一种通知类型。",INPUT_INVALID:"提交的通知设置格式不正确,请检查输入。",SUBSCRIPTION_DISABLED:"请先开启并保存通知设置。",QUEUE_FULL:"待发送通知已达上限,请等待队列处理后再测试。",INTERNAL_ERROR:"服务端暂时无法处理通知请求,请稍后重试。",DIRECTORY_PERMISSION_REQUIRED:"飞书应用缺少读取群聊列表或群成员状态的权限,请在飞书开放平台补齐权限后刷新。",DIRECTORY_UNAVAILABLE:"暂时无法核验飞书群聊,请检查应用权限及网络后刷新;已保存的设置不会被清空。",DIRECTORY_INCOMPLETE:"群聊列表未能完整读取,请稍后刷新。"},channelNameFeishu:"飞书",channelNameTelegram:"Telegram",connectionTitleFeishu:"1. 接入飞书应用",connectionTitleTelegram:"1. 接入 Telegram 机器人",connectionDescription:"本步骤连接机器人;完成第 2 步身份确认和第 3 步项目授权后,才能远程操作。",savedBadgeFeishu:"凭证已保存",savedBadgeTelegram:"Bot Token 已保存",notConfiguredBadgeFeishu:"尚未配置凭证",notConfiguredBadgeTelegram:"尚未配置 Bot Token",botUsername:e=>`机器人 @${e}`,lastConnected:e=>`最近连接:${e}`,lastError:e=>`最近错误:${e}`,secretKeepPlaceholder:"留空保留已保存密钥",secretInputPlaceholder:"输入应用密钥",tokenKeepPlaceholder:"留空保留已保存 Token",saveAndEnable:"保存并启用",feishuReconnectHint:"更换应用凭证或重新启用后需要重新配对和绑定;保存相同配置会保留已有授权。",feishuPlatformHint:"飞书开放平台需开启机器人,事件订阅选择长连接并订阅 im.message.receive_v1,配置消息接收与机器人发送权限,发布应用版本并确认自己的账号在应用可用范围内。",feishuCardHint:"在「事件与回调 → 回调配置」中选择长连接,并添加「卡片回传交互」card.action.trigger,才能直接在飞书审批卡片中批准或拒绝操作。仅任务发起人可审批;Web Copilot 仍可处理同一审批。",emergencyStopNote:e=>`紧急停止阻止后续入站和操作;已经发生的操作无法撤回。${e?"Telegram 机器人通过长轮询接收消息,无需公网回调地址。":""}`,emergencyStopButton:e=>`紧急停止${e}`,pairingTitle:"2. 确认私聊身份",pairingDescription:"连接成功后,还需确认哪个私聊用户可以操作项目。发送配对命令后,请回到此处确认身份。",createPairingCode:"生成新的配对码",pairingCommandHint:(e,t)=>`向${e}机器人私聊发送以下命令,请勿转发。到期:${t}`,noPendingPairing:"没有待确认配对。新配对码会使旧码失效。",pairingStatusPending:"待处理",waitingClaim:e=>`等待${e}私聊认领… 配对码仅在生成时显示,刷新页面后可重新生成。`,claimReviewHint:"请核对认领者,勾选后确认;系统不会自动绑定身份。",userIdLabelFeishu:"飞书用户 ID",userIdLabelTelegram:"Telegram 用户 ID",chatIdLabelFeishu:"私聊 ID",chatIdLabelTelegram:"会话 ID",ackLabel:e=>`我确认这是自己的${e}私聊`,confirmIdentity:"确认身份",cancelPairing:"取消本次配对",identityStale:"已失效,需重新配对",revokeIdentity:"撤销身份",allowlistTitle:"聊天白名单(群聊与私聊)",allowlistHint:"群聊默认拒绝;加入白名单后,机器人在该群内被 @ 才会响应。注意:白名单非空时,不在名单内的私聊也会被拒绝,需要把自己的私聊 ID 一并加入。",allowlistInputLabel:"群聊与私聊 ID(逗号分隔,最多 50 个)",allowlistAria:"群聊白名单",allowlistPlaceholderFeishu:"例如:oc_群聊ID,oc_私聊ID",allowlistPlaceholderTelegram:"例如:-1001234567890,123456789",saveAllowlist:"保存白名单",allowlistTooMany:"最多允许 50 个聊天 ID,请减少后再保存。",allowlistLoadError:"白名单加载失败,请稍后重试。",bindingTitle:"3. 绑定项目与操作授权",bindingDescription:"私聊、群聊与话题各自使用独立会话。授权范围就是所选项目:项目的 Copilot 自治开关开启时渠道消息可直接执行,关闭后立即停止受理。",manageAutonomy:"管理项目 Copilot 自治开关",projectsLoading:"正在加载项目…",noAutonomyProjects:"尚无已开启 Copilot 自治的项目,请先在上方打开项目开关。",identityLabel:"私聊身份",identityPlaceholder:"选择已确认身份",projectLabel:"项目",projectPlaceholder:"选择已开启自治的项目",activateRemote:e=>`启用${e}远程操作`,independentSession:e=>`独立会话:${e}`,openConversation:"打开会话",revokeBinding:"撤销渠道绑定",channelStates:{pending:"待处理",claimed:"等待确认",confirmed:"已确认",cancelled:"已取消",active:"有效",revoked:"已撤销",sending:"发送中",delivered:"渠道已接收",failed:"发送失败",unknown:"结果不确定",connected:"已连接",connecting:"连接中",reconnecting:"重新连接中",unhealthy:"连接异常",stopped:"已停止",disabled:"未启用"},routeStates:{authorized:"权限有效",pending_review:"授权状态待核查",identity_inactive:"身份已失效",config_changed:"配置已更新,需要重新绑定",channel_disabled:"渠道已停用",project_missing:"项目不存在",autonomy_off:"项目 Copilot 自治未开启",authority_revoked:"授权已失效,请撤销后重新绑定"},channelSetup:{connectionAction:"前往应用接入",pairingAction:"前往身份配对",authorizationAction:"前往项目授权",secretRequired:"请先在第 1 步保存机器人凭证并连接渠道。",configChecking:"正在核查渠道配置,请稍候。",configLoadFailed:"渠道配置加载失败,请重新加载后再授权。",channelDisabled:"渠道已停用或紧急停止,请先在第 1 步保存并连接。",selectIdentity:"请选择要授权的已确认私聊身份。",identityClaimed:"私聊已认领,请在第 2 步核对并确认身份。",identityPending:"请向机器人私聊发送第 2 步的配对命令,然后返回确认身份。",identityStale:"身份已失效,请先在第 2 步重新配对并确认身份。",pairFirst:"请先在第 2 步生成配对码,完成私聊认领并确认身份。",existingRoute:"该身份已有渠道绑定;如需重新绑定或更换项目,请先撤销下方原绑定。",projectsLoading:"正在加载项目,请稍候。",projectsError:"项目加载失败,请重新加载后再授权。",noAutonomyProjects:"请先打开下方项目 Copilot 自治开关,再选择项目。",selectProject:"请选择要授权的项目。"},diagnosticsTitle:e=>`渠道诊断 \xb7 ${e}`,diagnosticsDescription:"连接、模型与回传链路的实时自检。",diagnosticsChecking:"正在检查渠道状态…",diagnosticsLoadError:"诊断加载失败,稍后自动重试。",diagnosticsEmpty:"暂无诊断项。",diagnosticsFixHint:e=>`建议:${e}`,deliveriesTitle:"最近结果回传",deliveriesDescription:"“渠道已接收”不代表已读。“结果不确定”可能已经送达,请先核对飞书或 Telegram;系统不会自动重发。",deliveriesEmpty:"暂无回传记录。",deliveryPhaseTerminal:"任务结果",deliveryPhaseStatus:"状态提示",channelStatusPending:"远程操作状态待核查。",channelStatusAuthorized:e=>`${e}远程操作已授权;具体聊天仍需符合白名单,实际收发还需连接正常。`,channelStatusNotEnabled:(e,t)=>`${e}远程操作尚未启用。${t}`,channelReadyHint:"配置已就绪,请在第 3 步确认启用。",actionFailedError:"操作未完成。请刷新状态后重试;身份、授权或连接状态可能已变化。",bindingCreated:"渠道绑定已创建;请以上方实时状态为准,状态正常后发送一条新消息。",channelsLoading:"正在加载渠道…",loadFailed:"加载失败。",reloadAction:"重新加载",activationLoadError:"渠道状态加载失败,请重新加载后再授权。",activationReady:"已选择身份与项目,点击按钮后授予远程操作权限。",mgmtTitle:"Copilot 项目自治",mgmtDescription:"打开开关即授权 Copilot 在该项目内直接执行平台动作(创建任务、创建会话、下发指令),无需逐条审批;关闭后立即停止授权,新动作会被拒绝。",mgmtNoProjects:"暂无项目,请先在项目页创建或导入。",mgmtLoadFailed:"项目加载失败",mgmtAutonomyOn:"已授权 Copilot 自治执行",mgmtAutonomyOff:"未授权",mgmtSaveFailed:e=>`保存失败:${e}`,mgmtSwitchAria:e=>`${e} Copilot 自治开关`,mgmtProgressTitle:"多项目进度",mgmtProgressDescription:"此处是账号下的项目管理视图,不会扩大会话授权范围。CLI 自动下发需先在「Copilot 设置 → 常规 → 派发自主权」(或 Gateway 环境变量 FORGEBADGER_CLI_AUTONOMY_ADAPTERS)中为对应适配器开启;未开启的适配器仍需人工在终端操作。",mgmtModeManual:"人工项目",mgmtModeCli:"CLI 规划",mgmtSupervised:"自动执行已开启",mgmtManualExec:"人工执行",mgmtNoGoal:"尚未设置目标",mgmtProgressSummary:(e,t,i,n)=>`完成 ${e}/${t} \xb7 进行中 ${i} \xb7 阻塞 ${n} \xb7 证据 `,mgmtEvidenceFreshness:{unknown:"时间未知",stale:"已过期",fresh:"新鲜"},mgmtOwnerNextSummary:"负责人及下一步:",mgmtUnassigned:"未指定",mgmtUnplanned:"待安排",mgmtModeLabel:"管理模式",mgmtModeOptionManual:"人工",mgmtModeOptionCli:"CLI 规划(仍需人工执行)",mgmtOwnerLabel:"负责人",mgmtNextActionLabel:"下一步",mgmtFreshnessLabel:"证据有效小时",mgmtReload:"重新加载",mgmtSave:"保存管理信息",meterTitle:"用量、计价与修复控制",meterLoadError:"用量或费率读取失败,请重试。",meterLoadingUsage:"读取用量…",meterUsageEstimated:(e,t,i,n)=>`供应商报告 ${e} tokens;${t} 次调用仍为估算。费用:未知(已知部分 $${i},${n} 次未计价)。`,meterUsageCost:(e,t,i)=>`供应商报告 ${e} tokens;${t} 次调用仍为估算。费用:$${i}。`,meterNoUsage:"当前尚无执行用量。",meterRatesHint:"以下为所选模型每百万 tokens 的美元费率,最多六位小数。空白表示未知,0 表示免费;历史调用保留原费率。这是按配置计算的费用,不是供应商账单。",meterInputRate:"输入费率",meterOutputRate:"输出费率",meterCachedRate:"缓存读取费率",meterCacheWriteRate:"缓存写入费率",meterSave:"保存费率",meterSaveError:"费率保存失败,请检查输入。",meterSaved:"费率已保存。",meterRevoke:"停止本次执行的后续修复",meterRevoked:"已停止后续修复",meterRevokeError:"停止修复失败,请重试。"},n={navAriaLabel:"Copilot settings navigation",navGeneral:"General",navExtensions:"Extensions",navChannels:"Channels",navAutomations:"Automations",backToChat:"Back to chat",channelsCardTitle:"Channels",channelsCardDescription:"Set up Feishu and Telegram remote operation: app connection, identity confirmation, and project binding.",channelPlatformLabel:"Channel platform",channelStateNotConnected:"Not connected",channelStatePairing:"Pairing",channelStateAuthorization:"Authorization",channelStateRunning:"Running",channelStateStopped:"Stopped",channelStateUnknown:"Check pending",diagnosticsFailedNotice:e=>`${e} diagnostic check${1===e?"":"s"} failing.`,diagnosticsExpand:"Show diagnostics",diagnosticsCollapse:"Hide diagnostics",diagnosticsStatusUntested:"Untested",diagnosticsStatusPending:"In progress",diagnosticsStatusFailed:"Failing",copyCommand:"Copy command",commandCopied:"Copied",modifyConfig:"Modify configuration",editAllowlist:"Edit allowlist",setAllowlist:"Set allowlist",allowlistEmpty:"No chat allowlist configured yet.",identitiesEmpty:"No confirmed identities yet.",bindingsEmpty:"No channel bindings yet.",emergencyStopTitle:e=>`Emergency stop ${e}?`,emergencyStopDescription:"Emergency stop blocks further inbound messages and operations; operations already performed cannot be undone.",emergencyStopConfirm:"Stop now",dialogCancel:"Cancel",memoryScopeGlobal:"Global",memoryScopeProject:"Project",memoryScopeSession:"Session",memoryKindFact:"Fact",memoryKindPreference:"Preference",memoryKindDecision:"Decision",memoryKindProjectNote:"Project note",manageModels:"Manage models",autonomyTitle:"Dispatch autonomy",autonomyDescription:"Choose which CLI adapters Copilot may control programmatically. Dispatching to an adapter without autonomy is denied by the security policy.",autonomyEmptyNote:"No adapter enabled: every programmatic dispatch is denied; submit instructions to the CLI manually.",autonomyInstalled:"detected on this machine",autonomyMissing:"CLI not detected",autonomyAutoDispatch:"Auto-advance project tasks",autonomyAutoDispatchDescription:"When the CLI reports task completion/failure, advance the linked work item to ready-for-review/blocked automatically.",autonomyAutoDispatchBlocked:"Enable at least one adapter first",autonomySaving:"Saving…",autonomySaved:"Dispatch autonomy saved.",autonomySaveError:"Save failed. Please retry.",autonomyLoadError:"Failed to load",autonomyRetry:"Retry",autonomyReadonly:"Runtime settings are locked read-only by FORGEBADGER_RUNTIME_SETTINGS_READONLY; edit .env and restart the Gateway.",autonomySourceEnv:".env",autonomySourceSettings:"Settings page",notifyContentHint:"Notifications include captured, redacted results, errors and execution progress by default. Everyone in the selected private or group chat can see this content.",notifyTitle:"Feishu notifications",notifyDescription:"Choose a confirmed private chat or a verified group chat to receive notification cards. Saving only authorizes notification delivery; it does not change the remote command allowlist or project operation permissions.",notifySwitchAria:"Receive ForgeBadger notifications",notifyLoading:"Loading notification settings…",notifyLoadError:"Failed to load notification settings.",notifyReload:"Reload notification settings",notifyTargetLabel:"Notification destination",notifyTargetPlaceholder:"Choose a private or group chat",notifyTargetStale:"This destination is no longer valid; choose again",notifyKindGroup:"Group",notifyKindPrivate:"Private",notifyUnavailableSuffix:"unavailable",notifyRefreshTargets:"Refresh destinations",notifyPrivateHint:"Private chats come from confirmed identities; refresh verifies configured or previously used group chats. The bot must be in the group with permission to read the group list and member status.",notifyGroupNotice:e=>`Notifications will be sent to the group “${e}”; all group members can see them.`,notifyTypesLegend:"Notification types",notifyWebLabel:"ForgeBadger web address (optional)",notifyWebAria:"ForgeBadger web address",notifyWebHint:"Enter an address reachable from the device running Feishu so the card shows a view button; localhost only points at the current device. Cards still deliver summaries when empty. Cards do not offer direct approval actions.",notifyBlockerFallback:"Check the notification configuration.",notifySave:"Save notification settings",notifyTest:"Send test card",notifyActionFailed:(e,t)=>`${e} failed. ${t}`,notifyActionRefresh:"Refresh destinations",notifyActionSave:"Save",notifyActionTest:"Test notification enqueue",notifyAuthExpired:"Your session has expired; sign in again.",notifyGenericError:"The request could not be completed; check the Gateway connection and retry.",notifyRefreshOk:"Destinations refreshed.",notifyRefreshNoGroup:"No configured group chat is available. Make sure the bot has joined the group; confirmed private chats can still be selected.",notifySavedOn:"Feishu notifications are on; only notifications created from now on are delivered.",notifySavedOff:"Feishu notifications are off; unsent notifications have been cancelled.",notifyTestQueued:"Test card queued; check the delivery status below and the selected chat.",notifyDeliveriesTitle:"Recent notification deliveries",notifyDeliveriesHint:"Received by Feishu does not mean read; when the result is uncertain, verify the destination chat first. The system does not resend automatically.",notifyDeliveriesLoading:"Loading delivery records…",notifyDeliveriesLoadError:"Failed to load delivery records.",notifyDeliveriesEmpty:"No notification deliveries yet.",notifyTestCard:"Test card",notifyDeliveryFallback:"Notification",notifyTypes:{attention:"Needs action / awaiting approval",failure:"Task failed / permission denied",completion:"Task completed",lifecycle:"Task interrupted / session ended",app_action:"App action result",automation:"Automation task result"},notifyStatuses:{pending:"Pending",sending:"Sending",delivered:"Received by Feishu",failed:"Delivery failed",unknown:"Result uncertain",cancelled:"Cancelled"},notifyBlockers:{IDENTITY_INVALID:"Confirm your private-chat identity first.",ACCOUNT_CHANGED:"The account configuration changed; re-pair your identity.",CHANNEL_DISABLED:"Enable the Feishu app first, or lift the emergency stop.",USER_DISABLED:"This account is disabled.",TARGET_INVALID:"Choose a confirmed private chat or a verified group chat.",TARGET_UNAVAILABLE:"The destination is no longer available; refresh the list and choose again.",TARGET_CHANGED:"The destination has changed; choose it again and save.",TARGET_CONFLICT:"The destination conflicts with the legacy private-chat settings; refresh the page and choose again."},notifyErrors:{CONFIG_CONFLICT:"The settings were updated on another page; reload the notification settings before editing.",WEB_URL_INVALID:"The web address format is invalid; use a full http:// or https:// URL without credentials, query parameters, or # fragments, or leave it empty.",TYPES_REQUIRED:"Select at least one notification type.",INPUT_INVALID:"The submitted notification settings are malformed; check your input.",SUBSCRIPTION_DISABLED:"Enable and save the notification settings first.",QUEUE_FULL:"Too many notifications are pending; wait for the queue to clear and try again.",INTERNAL_ERROR:"The server could not process the notification request; try again later.",DIRECTORY_PERMISSION_REQUIRED:"The Feishu app lacks permission to read the group chat list or member status; grant the missing permissions on the Feishu developer console and refresh.",DIRECTORY_UNAVAILABLE:"Group chats cannot be verified right now; check the app permissions and network, then refresh. Saved settings are not cleared.",DIRECTORY_INCOMPLETE:"The group list was not fully read; refresh later."},channelNameFeishu:"Feishu",channelNameTelegram:"Telegram",connectionTitleFeishu:"1. Connect the Feishu app",connectionTitleTelegram:"1. Connect the Telegram bot",connectionDescription:"This step connects the bot; remote operation only works after step 2 (identity confirmation) and step 3 (project authorization).",savedBadgeFeishu:"Credentials saved",savedBadgeTelegram:"Bot token saved",notConfiguredBadgeFeishu:"No credentials configured",notConfiguredBadgeTelegram:"No bot token configured",botUsername:e=>`Bot @${e}`,lastConnected:e=>`Last connected: ${e}`,lastError:e=>`Last error: ${e}`,secretKeepPlaceholder:"Leave empty to keep the saved secret",secretInputPlaceholder:"Enter the app secret",tokenKeepPlaceholder:"Leave empty to keep the saved token",saveAndEnable:"Save & enable",feishuReconnectHint:"Changing app credentials or re-enabling requires re-pairing and re-binding; saving the same configuration keeps existing authorizations.",feishuPlatformHint:"In the Feishu developer console, enable the bot, choose long connection for event subscription and subscribe to im.message.receive_v1, grant message receiving and bot messaging permissions, publish an app version, and make sure your account is within the app's availability scope.",feishuCardHint:'Under "Events & callbacks → callback configuration", choose long connection and add the "card action trigger" (card.action.trigger) to approve or reject operations directly on Feishu approval cards. Only the task initiator may approve; the web Copilot can still handle the same approval.',emergencyStopNote:e=>`Emergency stop blocks further inbound messages and operations; operations already performed cannot be undone.${e?" Telegram bots receive messages via long polling, so no public callback URL is needed.":""}`,emergencyStopButton:e=>`Emergency stop ${e}`,pairingTitle:"2. Confirm private-chat identity",pairingDescription:"After connecting, confirm which private-chat user may operate projects. Send the pairing command, then return here to confirm the identity.",createPairingCode:"Generate new pairing code",pairingCommandHint:(e,t)=>`Send the following command to the ${e} bot in a private chat; do not forward it. Expires: ${t}`,noPendingPairing:"No pairing awaiting confirmation. A new pairing code invalidates the previous one.",pairingStatusPending:"Pending",waitingClaim:e=>`Waiting for the ${e} private chat to claim it… The pairing code is only shown when generated; regenerate it after refreshing the page.`,claimReviewHint:"Verify the claimant, check the box, then confirm; the system never binds an identity automatically.",userIdLabelFeishu:"Feishu user ID",userIdLabelTelegram:"Telegram user ID",chatIdLabelFeishu:"Private chat ID",chatIdLabelTelegram:"Conversation ID",ackLabel:e=>`I confirm this is my own ${e} private chat`,confirmIdentity:"Confirm identity",cancelPairing:"Cancel this pairing",identityStale:"Stale; re-pair required",revokeIdentity:"Revoke identity",allowlistTitle:"Chat allowlist (groups & private chats)",allowlistHint:"Group chats are rejected by default; once allowlisted, the bot only responds when @-mentioned in that group. Note: when the allowlist is non-empty, private chats not in the list are also rejected, so add your own private chat ID as well.",allowlistInputLabel:"Group and private chat IDs (comma-separated, up to 50)",allowlistAria:"Chat allowlist",allowlistPlaceholderFeishu:"e.g. oc_groupId,oc_chatId",allowlistPlaceholderTelegram:"e.g. -1001234567890,123456789",saveAllowlist:"Save allowlist",allowlistTooMany:"At most 50 chat IDs are allowed; remove some before saving.",allowlistLoadError:"Failed to load the allowlist; retry later.",bindingTitle:"3. Bind project & operation authorization",bindingDescription:"Private chats, group chats, and topics each use an independent conversation. The authorization scope is the selected project: channel messages execute directly while the project's Copilot autonomy toggle is on, and stop being accepted immediately once it is off.",manageAutonomy:"Manage project Copilot autonomy toggles",projectsLoading:"Loading projects…",noAutonomyProjects:"No project has Copilot autonomy enabled yet; turn on a project toggle above first.",identityLabel:"Private-chat identity",identityPlaceholder:"Choose a confirmed identity",projectLabel:"Project",projectPlaceholder:"Choose a project with autonomy enabled",activateRemote:e=>`Enable ${e} remote operation`,independentSession:e=>`Independent conversation: ${e}`,openConversation:"Open conversation",revokeBinding:"Revoke channel binding",channelStates:{pending:"Pending",claimed:"Awaiting confirmation",confirmed:"Confirmed",cancelled:"Cancelled",active:"Active",revoked:"Revoked",sending:"Sending",delivered:"Received by channel",failed:"Delivery failed",unknown:"Result uncertain",connected:"Connected",connecting:"Connecting",reconnecting:"Reconnecting",unhealthy:"Connection unhealthy",stopped:"Stopped",disabled:"Disabled"},routeStates:{authorized:"Authorized",pending_review:"Authorization pending review",identity_inactive:"Identity inactive",config_changed:"Configuration changed; re-bind required",channel_disabled:"Channel disabled",project_missing:"Project does not exist",autonomy_off:"Project Copilot autonomy is off",authority_revoked:"Authorization expired; revoke and re-bind"},channelSetup:{connectionAction:"Go to app connection",pairingAction:"Go to identity pairing",authorizationAction:"Go to project authorization",secretRequired:"Save the bot credentials and connect the channel in step 1 first.",configChecking:"Checking the channel configuration; please wait.",configLoadFailed:"Failed to load the channel configuration; reload before authorizing.",channelDisabled:"The channel is disabled or emergency-stopped; save and connect in step 1 first.",selectIdentity:"Choose a confirmed private-chat identity to authorize.",identityClaimed:"The private chat has been claimed; verify and confirm the identity in step 2.",identityPending:"Send the pairing command from step 2 to the bot in a private chat, then return to confirm the identity.",identityStale:"The identity is stale; re-pair and confirm it in step 2 first.",pairFirst:"Generate a pairing code in step 2 first, claim the private chat, and confirm the identity.",existingRoute:"This identity already has a channel binding; revoke the existing binding below before re-binding or switching projects.",projectsLoading:"Loading projects; please wait.",projectsError:"Failed to load projects; reload before authorizing.",noAutonomyProjects:"Turn on a project Copilot autonomy toggle below before choosing a project.",selectProject:"Choose a project to authorize."},diagnosticsTitle:e=>`Channel diagnostics \xb7 ${e}`,diagnosticsDescription:"Real-time self-checks of the connection, model, and delivery pipeline.",diagnosticsChecking:"Checking channel status…",diagnosticsLoadError:"Failed to load diagnostics; retrying automatically.",diagnosticsEmpty:"No diagnostic checks yet.",diagnosticsFixHint:e=>`Suggestion: ${e}`,deliveriesTitle:"Recent result deliveries",deliveriesDescription:'"Received by channel" does not mean read. "Result uncertain" may already have been delivered; verify in Feishu or Telegram first. The system does not resend automatically.',deliveriesEmpty:"No deliveries yet.",deliveryPhaseTerminal:"Task result",deliveryPhaseStatus:"Status notice",channelStatusPending:"Remote operation status needs review.",channelStatusAuthorized:e=>`${e} remote operation is authorized; individual chats must still match the allowlist, and actual delivery also requires a healthy connection.`,channelStatusNotEnabled:(e,t)=>`${e} remote operation is not enabled yet. ${t}`,channelReadyHint:"Configuration is ready; confirm activation in step 3.",actionFailedError:"The operation did not complete. Refresh and retry; the identity, authorization, or connection state may have changed.",bindingCreated:"Channel binding created; trust the live status above and send a new message once it looks healthy.",channelsLoading:"Loading channels…",loadFailed:"Failed to load.",reloadAction:"Reload",activationLoadError:"Failed to load channel status; reload before authorizing.",activationReady:"Identity and project selected; click the button to grant remote operation permission.",mgmtTitle:"Copilot project autonomy",mgmtDescription:"Turning the switch on authorizes Copilot to execute platform actions in that project directly (create tasks, create sessions, dispatch instructions) without per-action approval; turning it off revokes the authorization immediately and new actions are rejected.",mgmtNoProjects:"No projects yet. Create or import one on the Projects page first.",mgmtLoadFailed:"Failed to load projects",mgmtAutonomyOn:"Copilot autonomy authorized",mgmtAutonomyOff:"Not authorized",mgmtSaveFailed:e=>`Save failed: ${e}`,mgmtSwitchAria:e=>`${e} Copilot autonomy switch`,mgmtProgressTitle:"Multi-project progress",mgmtProgressDescription:'This is the project management view for the account; it does not widen session authorization. Automatic CLI dispatch must first be enabled for the corresponding adapter in "Copilot Settings → General → Dispatch autonomy" (or the FORGEBADGER_CLI_AUTONOMY_ADAPTERS Gateway environment variable); adapters not enabled still require manual terminal operation.',mgmtModeManual:"Manual project",mgmtModeCli:"CLI planning",mgmtSupervised:"Auto-execution enabled",mgmtManualExec:"Manual execution",mgmtNoGoal:"No goal set yet",mgmtProgressSummary:(e,t,i,n)=>`Done ${e}/${t} \xb7 In progress ${i} \xb7 Blocked ${n} \xb7 Evidence `,mgmtEvidenceFreshness:{unknown:"time unknown",stale:"stale",fresh:"fresh"},mgmtOwnerNextSummary:"Owner & next step:",mgmtUnassigned:"Unassigned",mgmtUnplanned:"Not planned",mgmtModeLabel:"Management mode",mgmtModeOptionManual:"Manual",mgmtModeOptionCli:"CLI planning (manual execution still required)",mgmtOwnerLabel:"Owner",mgmtNextActionLabel:"Next step",mgmtFreshnessLabel:"Evidence validity (hours)",mgmtReload:"Reload",mgmtSave:"Save management info",meterTitle:"Usage, pricing & repair controls",meterLoadError:"Failed to load usage or rates; retry.",meterLoadingUsage:"Reading usage…",meterUsageEstimated:(e,t,i,n)=>`Provider reported ${e} tokens; ${t} calls are still estimated. Cost: unknown (known part $${i}, ${n} calls unpriced).`,meterUsageCost:(e,t,i)=>`Provider reported ${e} tokens; ${t} calls are still estimated. Cost: $${i}.`,meterNoUsage:"No run usage yet.",meterRatesHint:"Rates below are USD per million tokens for the selected model, up to six decimal places. Blank means unknown, 0 means free; historical calls keep their original rates. This is a configuration-based estimate, not the provider's bill.",meterInputRate:"Input rate",meterOutputRate:"Output rate",meterCachedRate:"Cache read rate",meterCacheWriteRate:"Cache write rate",meterSave:"Save rates",meterSaveError:"Failed to save rates; check the input.",meterSaved:"Rates saved.",meterRevoke:"Stop later repairs of this run",meterRevoked:"Later repairs stopped",meterRevokeError:"Failed to stop repairs; retry."},o={...i,navAriaLabel:"Copilot 設定導覽",navGeneral:"一般",navExtensions:"擴充",navChannels:"遠端渠道",navAutomations:"自動化",backToChat:"返回對話",channelsCardTitle:"遠端渠道",channelsCardDescription:"設定飛書與 Telegram 遠端操作:應用接入、身份確認與專案綁定。",channelPlatformLabel:"渠道平台",channelStateNotConnected:"未接入",channelStatePairing:"待配對",channelStateAuthorization:"待授權",channelStateRunning:"執行中",channelStateStopped:"已停止",channelStateUnknown:"待核查",diagnosticsFailedNotice:e=>`診斷存在 ${e} 項未通過。`,diagnosticsExpand:"展開診斷",diagnosticsCollapse:"收起診斷",diagnosticsStatusUntested:"未驗證",diagnosticsStatusPending:"進行中",diagnosticsStatusFailed:"未通過",copyCommand:"複製指令",commandCopied:"已複製",modifyConfig:"修改配置",editAllowlist:"編輯白名單",setAllowlist:"設定白名單",allowlistEmpty:"尚未設定聊天白名單。",identitiesEmpty:"暫無已確認身份。",bindingsEmpty:"尚無渠道綁定。",emergencyStopTitle:e=>`確認緊急停止${e}?`,emergencyStopDescription:"緊急停止會阻止後續入站訊息與操作;已經發生的操作無法撤回。",emergencyStopConfirm:"確認停止",dialogCancel:"取消",memoryScopeGlobal:"全域",memoryScopeProject:"專案",memoryScopeSession:"會話",memoryKindFact:"事實",memoryKindPreference:"偏好",memoryKindDecision:"決策",memoryKindProjectNote:"專案備註",manageModels:"管理模型",autonomyTitle:"下發自主權",autonomyDescription:"允許 Copilot 程序化控制哪些 CLI 介面器。未啟用的介面器在下發時會被安全策略拒絕。",autonomyEmptyNote:"未啟用任何介面器:所有程序化下發都會被拒絕,需要手動向 CLI 提交指令。",autonomyInstalled:"本機已偵測到",autonomyMissing:"未偵測到 CLI",autonomyAutoDispatch:"專案任務自動推進",autonomyAutoDispatchDescription:"CLI 回報任務完成/失敗後,自動把對應工作項推進到待評審/受阻。",autonomyAutoDispatchBlocked:"需先啟用至少一個介面器",autonomySaving:"正在儲存…",autonomySaved:"下發自主權已儲存。",autonomySaveError:"儲存失敗,請重試。",autonomyLoadError:"載入失敗",autonomyRetry:"重試",autonomyReadonly:"執行時間設定已被 FORGEBADGER_RUNTIME_SETTINGS_READONLY 鎖定為唯讀,請修改 .env 並重啟 Gateway。",autonomySourceEnv:".env",autonomySourceSettings:"設定頁",notifyContentHint:"通知預設包含已採集到的脫敏結果、錯誤與執行進度,無需額外開啟;所選私聊或群聊成員均可看到這些內容。",notifyTitle:"飛書通知",notifyDescription:"選擇已確認的私聊或已核驗的群聊接收通知卡片。儲存僅授權通知推送,不改變遠端指令白名單或專案操作權限。",notifySwitchAria:"接收 ForgeBadger 通知",notifyLoading:"正在載入通知設定…",notifyLoadError:"通知設定載入失敗。",notifyReload:"重新載入通知設定",notifyTargetLabel:"通知接收位置",notifyTargetPlaceholder:"選擇私聊或群聊",notifyTargetStale:"已失效的接收位置,請重新選擇",notifyKindGroup:"群聊",notifyKindPrivate:"私聊",notifyUnavailableSuffix:"不可用",notifyRefreshTargets:"重新整理接收位置",notifyPrivateHint:"私聊來自已確認身份;重新整理會核驗已配置或已使用的群聊。機器人需在群內,並具備讀取群列表與群成員狀態的權限。",notifyGroupNotice:e=>`所選通知將傳送到群「${e}」,群成員均可查看。`,notifyTypesLegend:"通知類型",notifyWebLabel:"ForgeBadger Web 地址(可選)",notifyWebAria:"ForgeBadger Web 地址",notifyWebHint:"填寫飛書所在裝置能存取的地址,卡片才顯示查看按鈕;localhost 只指向目前裝置。留空仍可接收卡片摘要。卡片不提供直接審批操作。",notifyBlockerFallback:"請檢查通知配置。",notifySave:"儲存通知設定",notifyTest:"傳送測試卡片",notifyActionFailed:(e,t)=>`${e}失敗。${t}`,notifyActionRefresh:"重新整理接收位置",notifyActionSave:"儲存",notifyActionTest:"測試通知入隊",notifyAuthExpired:"登入已失效,請重新登入。",notifyGenericError:"暫時無法完成請求,請檢查 Gateway 連線後重試。",notifyRefreshOk:"接收位置已重新整理。",notifyRefreshNoGroup:"未發現可用的已配置群聊,請確認機器人已加入該群。已確認私聊仍可直接選擇。",notifySavedOn:"飛書通知已開啟,只推送之後產生的通知。",notifySavedOff:"飛書通知已關閉,尚未傳送的通知已取消。",notifyTestQueued:"測試卡片已入隊,請查看下方投遞狀態與所選會話。",notifyDeliveriesTitle:"最近通知投遞",notifyDeliveriesHint:"飛書已接收不代表已讀;結果不確定時請先核對接收會話,系統不會自動重發。",notifyDeliveriesLoading:"正在載入投遞記錄…",notifyDeliveriesLoadError:"投遞記錄載入失敗。",notifyDeliveriesEmpty:"暫無通知投遞記錄。",notifyTestCard:"測試卡片",notifyDeliveryFallback:"通知",notifyTypes:{attention:"需要處理 / 等待審批",failure:"任務失敗 / 權限被拒絕",completion:"任務完成",lifecycle:"任務中斷 / 會話結束",app_action:"應用操作結果",automation:"自動化任務結果"},notifyStatuses:{pending:"待發送",sending:"發送中",delivered:"飛書已接收",failed:"發送失敗",unknown:"結果不確定",cancelled:"已取消"},notifyBlockers:{IDENTITY_INVALID:"請先完成私聊身份確認。",ACCOUNT_CHANGED:"帳號配置已變化,請重新配對身份。",CHANNEL_DISABLED:"請先啟用飛書應用,或解除緊急停止。",USER_DISABLED:"目前帳號已停用。",TARGET_INVALID:"請選擇一個已確認的私聊或已核驗的群聊。",TARGET_UNAVAILABLE:"接收位置已不可用,請重新整理列表並重新選擇。",TARGET_CHANGED:"接收位置已變化,請重新選擇並儲存。",TARGET_CONFLICT:"接收位置與舊版私聊設定衝突,請重新整理頁面後重新選擇。"},notifyErrors:{CONFIG_CONFLICT:"配置已在其他頁面更新,請重新載入通知設定後再修改。",WEB_URL_INVALID:"Web 地址格式不正確,請使用完整的 http:// 或 https:// 地址,不包含帳號密碼、查詢參數或 # 片段;也可以留空。",TYPES_REQUIRED:"請至少選擇一種通知類型。",INPUT_INVALID:"提交的通知設定格式不正確,請檢查輸入。",SUBSCRIPTION_DISABLED:"請先開啟並儲存通知設定。",QUEUE_FULL:"待發送通知已達上限,請等待佇列處理後再測試。",INTERNAL_ERROR:"服務端暫時無法處理通知請求,請稍後重試。",DIRECTORY_PERMISSION_REQUIRED:"飛書應用缺少讀取群聊列表或群成員狀態的權限,請在飛書開放平台補齊權限後重新整理。",DIRECTORY_UNAVAILABLE:"暫時無法核驗飛書群聊,請檢查應用權限及網路後重新整理;已儲存的設定不會被清空。",DIRECTORY_INCOMPLETE:"群聊列表未能完整讀取,請稍後重新整理。"},channelNameFeishu:"飛書",channelNameTelegram:"Telegram",connectionTitleFeishu:"1. 接入飛書應用",connectionTitleTelegram:"1. 接入 Telegram 機器人",connectionDescription:"本步驟連接機器人;完成第 2 步身份確認和第 3 步專案授權後,才能遠端操作。",savedBadgeFeishu:"憑證已儲存",savedBadgeTelegram:"Bot Token 已儲存",notConfiguredBadgeFeishu:"尚未配置憑證",notConfiguredBadgeTelegram:"尚未配置 Bot Token",botUsername:e=>`機器人 @${e}`,lastConnected:e=>`最近連接:${e}`,lastError:e=>`最近錯誤:${e}`,secretKeepPlaceholder:"留空保留已儲存金鑰",secretInputPlaceholder:"輸入應用金鑰",tokenKeepPlaceholder:"留空保留已儲存 Token",saveAndEnable:"儲存並啟用",feishuReconnectHint:"更換應用憑證或重新啟用後需要重新配對和綁定;儲存相同配置會保留已有授權。",feishuPlatformHint:"飛書開放平台需開啟機器人,事件訂閱選擇長連接並訂閱 im.message.receive_v1,配置訊息接收與機器人發送權限,發布應用版本並確認自己的帳號在應用可用範圍內。",feishuCardHint:"在「事件與回調 → 回調配置」中選擇長連接,並新增「卡片回傳互動」card.action.trigger,才能直接在飛書審批卡片中批准或拒絕操作。僅任務發起人可審批;Web Copilot 仍可處理同一審批。",emergencyStopNote:e=>`緊急停止會阻止後續入站訊息與操作;已經發生的操作無法撤回。${e?"Telegram 機器人透過長輪詢接收訊息,無需公網回調地址。":""}`,emergencyStopButton:e=>`緊急停止${e}`,pairingTitle:"2. 確認私聊身份",pairingDescription:"連接成功後,還需確認哪個私聊使用者可以操作專案。發送配對命令後,請回到此處確認身份。",createPairingCode:"產生新的配對碼",pairingCommandHint:(e,t)=>`向${e}機器人私聊發送以下命令,請勿轉發。到期:${t}`,noPendingPairing:"沒有待確認配對。新配對碼會使舊碼失效。",pairingStatusPending:"待處理",waitingClaim:e=>`等待${e}私聊認領… 配對碼僅在產生時顯示,重新整理頁面後可重新產生。`,claimReviewHint:"請核對認領者,勾選後確認;系統不會自動綁定身份。",userIdLabelFeishu:"飛書使用者 ID",userIdLabelTelegram:"Telegram 使用者 ID",chatIdLabelFeishu:"私聊 ID",chatIdLabelTelegram:"會話 ID",ackLabel:e=>`我確認這是自己的${e}私聊`,confirmIdentity:"確認身份",cancelPairing:"取消本次配對",identityStale:"已失效,需重新配對",revokeIdentity:"撤銷身份",allowlistTitle:"聊天白名單(群聊與私聊)",allowlistHint:"群聊預設拒絕;加入白名單後,機器人在該群內被 @ 才會回應。注意:白名單非空時,不在名單內的私聊也會被拒絕,需要把自己的私聊 ID 一併加入。",allowlistInputLabel:"群聊與私聊 ID(逗號分隔,最多 50 個)",allowlistAria:"聊天白名單",allowlistPlaceholderFeishu:"例如:oc_群聊ID,oc_私聊ID",allowlistPlaceholderTelegram:"例如:-1001234567890,123456789",saveAllowlist:"儲存白名單",allowlistTooMany:"最多允許 50 個聊天 ID,請減少後再儲存。",allowlistLoadError:"白名單載入失敗,請稍後重試。",bindingTitle:"3. 綁定專案與操作授權",bindingDescription:"私聊、群聊與話題各自使用獨立會話。授權範圍就是所選專案:專案的 Copilot 自治開關開啟時渠道訊息可直接執行,關閉後立即停止受理。",manageAutonomy:"管理專案 Copilot 自治開關",projectsLoading:"正在載入專案…",noAutonomyProjects:"尚無已開啟 Copilot 自治的專案,請先在上方打開專案開關。",identityLabel:"私聊身份",identityPlaceholder:"選擇已確認身份",projectLabel:"專案",projectPlaceholder:"選擇已開啟自治的專案",activateRemote:e=>`啟用${e}遠端操作`,independentSession:e=>`獨立會話:${e}`,openConversation:"打開會話",revokeBinding:"撤銷渠道綁定",channelStates:{pending:"待處理",claimed:"等待確認",confirmed:"已確認",cancelled:"已取消",active:"有效",revoked:"已撤銷",sending:"發送中",delivered:"渠道已接收",failed:"發送失敗",unknown:"結果不確定",connected:"已連接",connecting:"連接中",reconnecting:"重新連接中",unhealthy:"連接異常",stopped:"已停止",disabled:"未啟用"},routeStates:{authorized:"權限有效",pending_review:"授權狀態待核查",identity_inactive:"身份已失效",config_changed:"配置已更新,需要重新綁定",channel_disabled:"渠道已停用",project_missing:"專案不存在",autonomy_off:"專案 Copilot 自治未開啟",authority_revoked:"授權已失效,請撤銷後重新綁定"},channelSetup:{connectionAction:"前往應用接入",pairingAction:"前往身份配對",authorizationAction:"前往專案授權",secretRequired:"請先在第 1 步儲存機器人憑證並連接渠道。",configChecking:"正在核查渠道配置,請稍候。",configLoadFailed:"渠道配置載入失敗,請重新載入後再授權。",channelDisabled:"渠道已停用或緊急停止,請先在第 1 步儲存並連接。",selectIdentity:"請選擇要授權的已確認私聊身份。",identityClaimed:"私聊已認領,請在第 2 步核對並確認身份。",identityPending:"請向機器人私聊發送第 2 步的配對命令,然後返回確認身份。",identityStale:"身份已失效,請先在第 2 步重新配對並確認身份。",pairFirst:"請先在第 2 步產生配對碼,完成私聊認領並確認身份。",existingRoute:"該身份已有渠道綁定;如需重新綁定或更換專案,請先撤銷下方原綁定。",projectsLoading:"正在載入專案,請稍候。",projectsError:"專案載入失敗,請重新載入後再授權。",noAutonomyProjects:"請先打開下方專案 Copilot 自治開關,再選擇專案。",selectProject:"請選擇要授權的專案。"},diagnosticsTitle:e=>`渠道診斷 \xb7 ${e}`,diagnosticsDescription:"連接、模型與回傳鏈路的即時自檢。",diagnosticsChecking:"正在檢查渠道狀態…",diagnosticsLoadError:"診斷載入失敗,稍後自動重試。",diagnosticsEmpty:"暫無診斷項。",diagnosticsFixHint:e=>`建議:${e}`,deliveriesTitle:"最近結果回傳",deliveriesDescription:"「渠道已接收」不代表已讀。「結果不確定」可能已經送達,請先核對飛書或 Telegram;系統不會自動重發。",deliveriesEmpty:"暫無回傳記錄。",deliveryPhaseTerminal:"任務結果",deliveryPhaseStatus:"狀態提示",channelStatusPending:"遠端操作狀態待核查。",channelStatusAuthorized:e=>`${e}遠端操作已授權;具體聊天仍需符合白名單,實際收發還需連接正常。`,channelStatusNotEnabled:(e,t)=>`${e}遠端操作尚未啟用。${t}`,channelReadyHint:"配置已就緒,請在第 3 步確認啟用。",actionFailedError:"操作未完成。請重新整理狀態後重試;身份、授權或連接狀態可能已變化。",bindingCreated:"渠道綁定已建立;請以上方即時狀態為準,狀態正常後發送一條新訊息。",channelsLoading:"正在載入渠道…",loadFailed:"載入失敗。",reloadAction:"重新載入",activationLoadError:"渠道狀態載入失敗,請重新載入後再授權。",activationReady:"已選擇身份與專案,點擊按鈕後授予遠端操作權限。",mgmtTitle:"Copilot 專案自治",mgmtDescription:"打開開關即授權 Copilot 在該專案內直接執行平台動作(建立任務、建立會話、下發指令),無需逐條審批;關閉後立即停止授權,新動作會被拒絕。",mgmtNoProjects:"暫無專案,請先在專案頁建立或匯入。",mgmtLoadFailed:"專案載入失敗",mgmtAutonomyOn:"已授權 Copilot 自治執行",mgmtAutonomyOff:"未授權",mgmtSaveFailed:e=>`儲存失敗:${e}`,mgmtSwitchAria:e=>`${e} Copilot 自治開關`,mgmtProgressTitle:"多專案進度",mgmtProgressDescription:"此處是帳號下的專案管理檢視,不會擴大會話授權範圍。CLI 自動下發需先在「Copilot 設定 → 一般 → 下發自主權」(或 Gateway 環境變數 FORGEBADGER_CLI_AUTONOMY_ADAPTERS)中為對應介面器開啟;未開啟的介面器仍需人工在終端操作。",mgmtModeManual:"人工專案",mgmtModeCli:"CLI 規劃",mgmtSupervised:"自動執行已開啟",mgmtManualExec:"人工執行",mgmtNoGoal:"尚未設定目標",mgmtProgressSummary:(e,t,i,n)=>`完成 ${e}/${t} \xb7 進行中 ${i} \xb7 阻塞 ${n} \xb7 證據 `,mgmtEvidenceFreshness:{unknown:"時間未知",stale:"已過期",fresh:"新鮮"},mgmtOwnerNextSummary:"負責人及下一步:",mgmtUnassigned:"未指定",mgmtUnplanned:"待安排",mgmtModeLabel:"管理模式",mgmtModeOptionManual:"人工",mgmtModeOptionCli:"CLI 規劃(仍需人工執行)",mgmtOwnerLabel:"負責人",mgmtNextActionLabel:"下一步",mgmtFreshnessLabel:"證據有效小時",mgmtReload:"重新載入",mgmtSave:"儲存管理資訊",meterTitle:"用量、計價與修復控制",meterLoadError:"用量或費率讀取失敗,請重試。",meterLoadingUsage:"讀取用量…",meterUsageEstimated:(e,t,i,n)=>`供應商回報 ${e} tokens;${t} 次呼叫仍為估算。費用:未知(已知部分 $${i},${n} 次未計價)。`,meterUsageCost:(e,t,i)=>`供應商回報 ${e} tokens;${t} 次呼叫仍為估算。費用:$${i}。`,meterNoUsage:"目前尚無執行用量。",meterRatesHint:"以下為所選模型每百萬 tokens 的美元費率,最多六位小數。空白表示未知,0 表示免費;歷史呼叫保留原費率。這是按配置計算的費用,不是供應商帳單。",meterInputRate:"輸入費率",meterOutputRate:"輸出費率",meterCachedRate:"快取讀取費率",meterCacheWriteRate:"快取寫入費率",meterSave:"儲存費率",meterSaveError:"費率儲存失敗,請檢查輸入。",meterSaved:"費率已儲存。",meterRevoke:"停止本次執行的後續修復",meterRevoked:"已停止後續修復",meterRevokeError:"停止修復失敗,請重試。"};e.s(["useSettingsCopy",0,function(){let{language:e}=(0,t.useLanguage)();return"en"===e?n:"zh-TW"===e?o:i}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,540,e=>{"use strict";let n=(0,e.i(65174).default)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,n],540)},76745,e=>{"use strict";var n=e.i(77059);e.s(["Check",()=>n.default])},76806,e=>{"use strict";let n="github-dark-default",t=null,l=new Set,o={ts:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"jsx",json:"json",jsonc:"jsonc",json5:"json5",md:"markdown",mdx:"mdx",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",kts:"kotlin",c:"c",h:"c",cc:"cpp",cpp:"cpp",cxx:"cpp",hpp:"cpp",cs:"csharp",rb:"ruby",php:"php",swift:"swift",scala:"scala",lua:"lua",sh:"bash",bash:"bash",zsh:"bash",fish:"fish",ps1:"powershell",sql:"sql",css:"css",scss:"scss",less:"less",html:"html",htm:"html",vue:"vue",svelte:"svelte",xml:"xml",svg:"xml",yaml:"yaml",yml:"yaml",toml:"toml",ini:"ini",conf:"ini",cfg:"ini",tf:"hcl",graphql:"graphql",gql:"graphql",prisma:"prisma",proto:"proto",r:"r",jl:"julia",dart:"dart",ex:"elixir",exs:"elixir",erl:"erlang",hs:"haskell",clj:"clojure",vim:"vim",diff:"diff",patch:"diff",tex:"latex",dockerfile:"dockerfile",env:"dotenv"},a={dockerfile:"dockerfile","dockerfile.dev":"dockerfile",makefile:"makefile",gnumakefile:"makefile",".env":"dotenv",".env.example":"dotenv",".env.sample":"dotenv",".env.template":"dotenv"};async function r(r,i){let s=function(e){let n=e.toLowerCase(),t=n.split("/").pop()??n,l=a[t];if(l)return l;let r=t.lastIndexOf(".");return r<=0?null:o[t.slice(r+1)]??null}(i);if(!s)return null;try{let o=await (!t&&(t=e.A(24612).then(({createHighlighter:e})=>e({themes:[n],langs:[]}))),t);l.has(s)||(await o.loadLanguage(s),l.add(s));let{tokens:a}=o.codeToTokens(r,{lang:s,theme:n});return a}catch{return null}}e.s(["highlightWorkspaceCode",0,r,"tokenFontStyle",0,function(e){let n=e??0;return{italic:(1&n)!=0,bold:(2&n)!=0,underline:(4&n)!=0}}])},31483,e=>{"use strict";var n=e.i(88215);e.s(["ChevronDown",()=>n.default])},63548,e=>{"use strict";var n=e.i(36984);e.s(["X",()=>n.default])},83736,e=>{"use strict";let n=(0,e.i(65174).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,n],83736)},51173,e=>{"use strict";let n=(0,e.i(65174).default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,n])},52860,e=>{"use strict";var n=e.i(51173);e.s(["ChevronRight",()=>n.default])},88010,e=>{"use strict";var n=e.i(66499),t=e.i(65458);e.s(["Textarea",0,function({className:e,...l}){return(0,n.jsx)("textarea",{"data-slot":"textarea",className:(0,t.cn)("min-h-24 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...l})}])},26624,e=>{"use strict";var n=e.i(66499),t=e.i(79923),l=e.i(91967),o=e.i(67928),a=e.i(43250),r=e.i(17256),i=e.i(84017),s=e.i(61614),u=e.i(80939),c="Switch",[d,p]=(0,a.createContextScope)(c),[m,h]=d(c),g=t.forwardRef((e,a)=>{let{__scopeSwitch:i,name:s,checked:d,defaultChecked:p,required:h,disabled:g,value:f="on",onCheckedChange:b,form:y,...S}=e,[k,C]=t.useState(null),w=(0,o.useComposedRefs)(a,e=>C(e)),j=t.useRef(!1),P=!k||y||!!k.closest("form"),[R,O]=(0,r.useControllableState)({prop:d,defaultProp:p??!1,onChange:b,caller:c});return(0,n.jsxs)(m,{scope:i,checked:R,disabled:g,children:[(0,n.jsx)(u.Primitive.button,{type:"button",role:"switch","aria-checked":R,"aria-required":h,"data-state":x(R),"data-disabled":g?"":void 0,disabled:g,value:f,...S,ref:w,onClick:(0,l.composeEventHandlers)(e.onClick,e=>{O(e=>!e),P&&(j.current=e.isPropagationStopped(),j.current||e.stopPropagation())})}),P&&(0,n.jsx)(v,{control:k,bubbles:!j.current,name:s,value:f,checked:R,required:h,disabled:g,form:y,style:{transform:"translateX(-100%)"}})]})});g.displayName=c;var f="SwitchThumb",b=t.forwardRef((e,t)=>{let{__scopeSwitch:l,...o}=e,a=h(f,l);return(0,n.jsx)(u.Primitive.span,{"data-state":x(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:t})});b.displayName=f;var v=t.forwardRef(({__scopeSwitch:e,control:l,checked:a,bubbles:r=!0,...u},c)=>{let d=t.useRef(null),p=(0,o.useComposedRefs)(d,c),m=(0,i.usePrevious)(a),h=(0,s.useSize)(l);return t.useEffect(()=>{let e=d.current;if(!e)return;let n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(m!==a&&n){let t=new Event("click",{bubbles:r});n.call(e,a),e.dispatchEvent(t)}},[m,a,r]),(0,n.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a,...u,tabIndex:-1,ref:p,style:{...u.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function x(e){return e?"checked":"unchecked"}v.displayName="SwitchBubbleInput",e.s(["Root",0,g,"Switch",0,g,"SwitchThumb",0,b,"Thumb",0,b,"createSwitchScope",0,p],50512);var y=e.i(50512),y=y,S=e.i(65458);e.s(["Switch",0,function({className:e,size:t="default",...l}){return(0,n.jsx)(y.Root,{"data-slot":"switch","data-size":t,className:(0,S.cn)("peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",e),...l,children:(0,n.jsx)(y.Thumb,{"data-slot":"switch-thumb",className:(0,S.cn)("pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground")})})}],26624)},47849,e=>{"use strict";var n=e.i(66936);e.s(["AlertTriangle",()=>n.default])},62918,e=>{"use strict";var n=e.i(66499),t=e.i(94237),l=e.i(82909),o=e.i(65458);let a=(0,t.cva)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:t="default",asChild:r=!1,...i}){let s=r?l.Slot.Root:"span";return(0,n.jsx)(s,{"data-slot":"badge","data-variant":t,className:(0,o.cn)(a({variant:t}),e),...i})}])},25284,e=>{"use strict";var n=e.i(87014);let t=Object.assign({},n.toast,{error:(e,t)=>n.toast.error(e,{duration:6e3,...t})});e.s(["toast",0,t])},19813,e=>{"use strict";var n=e.i(66499),t=e.i(71800),l=e.i(65458);function o({suggestions:e,onPick:t,compact:a=!1,className:r}){return(0,n.jsx)("div",{className:(0,l.cn)("flex flex-wrap justify-center",a?"gap-1.5":"gap-2",r),children:e.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>t(e),className:(0,l.cn)("rounded-full border border-border/70 bg-card text-muted-foreground shadow-sm transition-all hover:-translate-y-0.5 hover:border-brand/60 hover:text-foreground hover:shadow-md",a?"px-2.5 py-1 text-xs":"px-3.5 py-1.5 text-sm"),children:e},e))})}var a=e.i(35887);e.s(["CopilotEmptyState",0,function({icon:e,title:t,description:o,className:a}){return(0,n.jsxs)("div",{className:(0,l.cn)("flex flex-col items-center gap-2.5 rounded-md border border-border/70 bg-muted/20 px-4 py-8 text-center",a),children:[(0,n.jsx)("div",{className:"flex size-9 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,n.jsx)(e,{className:"size-4","aria-hidden":"true"})}),(0,n.jsx)("p",{className:"text-sm font-medium",children:t}),o&&(0,n.jsx)("p",{className:"max-w-sm text-xs leading-relaxed text-muted-foreground",children:o})]})},"CopilotWelcomeState",0,function({onSuggestion:e,compact:r=!1,className:i}){let{t:s}=(0,a.useLanguage)(),u=[s("copilot.suggestion1"),s("copilot.suggestion2"),s("copilot.suggestion3")];return r?(0,n.jsxs)("div",{className:(0,l.cn)("flex h-full flex-col items-center justify-center gap-3 text-center",i),children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm font-medium",children:s("copilot.welcomeTitle")}),(0,n.jsx)("p",{className:"mt-1 max-w-xs text-xs text-muted-foreground",children:s("copilot.welcomeSubtitle")})]}),(0,n.jsx)(o,{suggestions:u,onPick:e,compact:!0})]}):(0,n.jsxs)("div",{className:(0,l.cn)("flex h-full flex-col items-center justify-center gap-5 py-10 text-center",i),children:[(0,n.jsx)("span",{className:"flex size-12 items-center justify-center rounded-xl border border-border/60 bg-muted/60 shadow-inner",children:(0,n.jsx)(t.Bot,{className:"size-6 text-muted-foreground"})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-base font-semibold",children:s("copilot.welcomeTitle")}),(0,n.jsx)("p",{className:"mx-auto mt-1.5 max-w-md text-sm leading-relaxed text-muted-foreground",children:s("copilot.welcomeSubtitle")})]}),(0,n.jsx)(o,{suggestions:u,onPick:e})]})}],19813)},92608,e=>{"use strict";var n=e.i(47721);e.s(["acceptAutomationSuggestion",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(e)}/accept`,{method:"POST"})},"cancelFollowup",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/followups/${encodeURIComponent(e)}`,{method:"DELETE"})},"cancelRun",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(e)}/cancel`,{method:"POST"})},"createAutomation",0,function(e){return(0,n.fetchJson)("/api/v1/copilot/automations",{method:"POST",body:JSON.stringify(e)})},"createConversation",0,function(e){return(0,n.fetchJson)("/api/v1/copilot/conversations",{method:"POST",body:JSON.stringify(e?{title:e}:{})})},"decidePendingAction",0,function(e,t,l){return(0,n.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(e)}/pending-actions/${encodeURIComponent(t)}/decide`,{method:"POST",body:JSON.stringify({approved:l})})},"deleteAutomation",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(e)}`,{method:"DELETE"})},"deleteConversation",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}`,{method:"DELETE"})},"deleteMemoryEntry",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/memory/entries/${encodeURIComponent(e)}`,{method:"DELETE"})},"dismissAutomationSuggestion",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/suggestions/${encodeURIComponent(e)}/dismiss`,{method:"POST"})},"editMessage",0,function(e,t,l,o){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/edit-message`,{method:"POST",body:JSON.stringify({messageId:t,content:l,...o})})},"enableAutomation",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(e)}/enable`,{method:"POST"})},"getCopilotCapabilities",0,function(){return(0,n.fetchJson)("/api/v1/copilot/capabilities")},"getCopilotPreferences",0,function(){return(0,n.fetchJson)("/api/v1/copilot/preferences")},"getRun",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/runs/${encodeURIComponent(e)}`)},"listAutomationSuggestions",0,function(){return(0,n.fetchJson)("/api/v1/copilot/automations/suggestions")},"listAutomations",0,function(){return(0,n.fetchJson)("/api/v1/copilot/automations")},"listConversationRuns",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/runs`)},"listConversations",0,function(){return(0,n.fetchJson)("/api/v1/copilot/conversations")},"listFollowups",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/followups`)},"listMemoryEntries",0,function(e={}){let t=new URLSearchParams;return e.scope&&t.set("scope",e.scope),e.projectId&&t.set("projectId",e.projectId),e.limit&&t.set("limit",String(e.limit)),(0,n.fetchJson)(`/api/v1/copilot/memory/entries?${t.toString()}`)},"listMessages",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/messages`)},"pauseAutomation",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(e)}/pause`,{method:"POST"})},"queueFollowup",0,function(e,t,l){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/followups`,{method:"POST",body:JSON.stringify({content:t,...l})})},"renameConversation",0,function(e,t){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify({title:t})})},"runAutomationNow",0,function(e){return(0,n.fetchJson)(`/api/v1/copilot/automations/${encodeURIComponent(e)}/run`,{method:"POST"})},"sendMessage",0,function(e,t,l,o){return(0,n.fetchJson)(`/api/v1/copilot/conversations/${encodeURIComponent(e)}/messages`,{method:"POST",body:JSON.stringify({content:t,...l?{modelId:l}:{},...o})})},"setCopilotToolEnabled",0,function(e,t){return(0,n.fetchJson)(`/api/v1/copilot/capabilities/${encodeURIComponent(e)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:t})})},"updateCopilotPreferences",0,function(e){return(0,n.fetchJson)("/api/v1/copilot/preferences",{method:"PUT",body:JSON.stringify(e)})}])},41081,99831,e=>{"use strict";var n=e.i(66499),t=e.i(79923),l=e.i(85426),o=e.i(78717),a=e.i(6270),r=e.i(44269),i=e.i(9939),s=e.i(62918),u=e.i(81622),c=e.i(26624),d=e.i(46131),p=e.i(35887),m=e.i(25284),h=e.i(47721),g=e.i(92608);let f="/api/v1/copilot",b=e=>`${f}/skills/${encodeURIComponent(e)}`,v=e=>`${f}/connections/${encodeURIComponent(e)}`,x=["copilot","skills"];e.s(["adoptBuiltinSkill",0,(e,n,t)=>(0,h.fetchJson)(`${b(e)}/adopt-builtin`,{method:"POST",body:JSON.stringify({expectedRevisionId:n,version:t})}),"copilotConnectionsKey",0,["copilot","connections"],"copilotSkillsKey",0,x,"createCopilotConnection",0,e=>(0,h.fetchJson)(`${f}/connections`,{method:"POST",body:JSON.stringify(e)}),"deleteCopilotConnection",0,(e,n)=>(0,h.fetchJson)(`${v(e)}?revision=${n}`,{method:"DELETE"}),"discoverCopilotConnection",0,(e,n)=>(0,h.fetchJson)(`${v(e)}/discover`,{method:"POST",body:JSON.stringify({revision:n})}),"getCopilotSkill",0,e=>(0,h.fetchJson)(b(e)),"getSkillRevision",0,(e,n)=>(0,h.fetchJson)(`${b(e)}/revisions/${encodeURIComponent(n)}`),"importCopilotSkill",0,e=>(0,h.fetchJson)(`${f}/skills/imports`,{method:"POST",body:JSON.stringify(e)}),"listCopilotConnections",0,()=>(0,h.fetchJson)(`${f}/connections`),"listCopilotSkills",0,()=>(0,h.fetchJson)(`${f}/skills`),"listSkillRevisions",0,e=>(0,h.fetchJson)(`${b(e)}/revisions`),"rollbackCopilotSkill",0,(e,n,t)=>(0,h.fetchJson)(`${b(e)}/rollback`,{method:"POST",body:JSON.stringify({revisionId:n,expectedRevisionId:t})}),"setCopilotSkillEnabled",0,(e,n,t)=>(0,h.fetchJson)(`${b(e)}/enabled`,{method:"PUT",body:JSON.stringify({enabled:n,expectedRevisionId:t})}),"updateCopilotConnection",0,(e,n)=>(0,h.fetchJson)(v(e),{method:"PUT",body:JSON.stringify(n)}),"updateCopilotSkill",0,(e,n)=>(0,h.fetchJson)(b(e),{method:"PUT",body:JSON.stringify(n)})],99831);let y=["model-providers"],S=["copilot","capabilities"],k=["copilot","preferences"],C=["off","low","medium","high"],w="__default_model__";function j({title:e,tools:t,pending:l,onToggle:o}){return(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("p",{className:"text-[11px] font-semibold tracking-wide text-muted-foreground/70 uppercase",children:e}),t.map(e=>(0,n.jsx)(P,{tool:e,pending:l,onToggle:n=>o(e.name,n)},e.name))]})}function P({tool:e,pending:t,onToggle:l}){let{t:o}=(0,p.useLanguage)(),a=`copilot.toolDesc.${e.name}`,r=o(a),u=r===a?e.description:r;return(0,n.jsxs)("div",{className:`flex items-start justify-between gap-3 rounded-md border border-border/70 bg-card px-3 py-2 transition-opacity ${e.enabled&&e.available?"":"opacity-60"}`,"data-testid":`tool-row-${e.name}`,children:[(0,n.jsxs)("div",{className:"min-w-0 space-y-0.5",children:[(0,n.jsxs)("p",{className:"flex flex-wrap items-center gap-1.5 text-xs font-medium",children:[(0,n.jsx)(i.Wrench,{className:"size-3 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,n.jsx)("span",{className:"font-mono",children:e.name}),"operate"===e.risk?(0,n.jsx)(s.Badge,{variant:"outline",className:"border-amber-500/50 px-1 py-0 text-[10px] text-amber-500",children:"operate"}):null,e.requiresApproval&&e.available?(0,n.jsx)(s.Badge,{variant:"outline",className:"px-1 py-0 text-[10px] text-muted-foreground",children:o("copilot.toolAuthorization")}):null]}),(0,n.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:u}),e.available?null:(0,n.jsxs)("p",{className:"text-xs text-amber-500",children:[o("copilot.toolUnavailable"),": ",e.unavailableReason??o("copilot.toolUnavailable")]})]}),(0,n.jsx)(c.Switch,{"aria-label":e.name,size:"sm",className:"mt-0.5 shrink-0",disabled:t||!e.available,checked:e.enabled,onCheckedChange:l})]})}e.s(["CapabilitiesSection",0,function({active:e}){let{t:i}=(0,p.useLanguage)(),s=(0,a.useQueryClient)(),[c,d]=(0,t.useState)(""),h=(0,o.useQuery)({queryKey:S,queryFn:g.getCopilotCapabilities,enabled:e,retry:!1}),f=(0,l.useMutation)({mutationFn:({name:e,enabled:n})=>(0,g.setCopilotToolEnabled)(e,n),onSuccess:()=>{s.invalidateQueries({queryKey:S}),s.invalidateQueries({queryKey:x})},onError:()=>m.toast.error(i("copilot.capabilitiesToggleError"))}),b=(0,t.useRef)(!1);(0,t.useEffect)(()=>{h.isError&&!b.current&&(b.current=!0,m.toast.error(i("copilot.capabilitiesLoadError"))),h.isError||(b.current=!1)},[h.isError,i]);let v=h.data?.tools??[],y=c.trim().toLowerCase(),k=y?v.filter(e=>`${e.name} ${e.description}`.toLowerCase().includes(y)):v,C=k.filter(e=>"operate"===e.risk),w=k.filter(e=>"operate"!==e.risk);return(0,n.jsxs)("section",{className:"space-y-3 rounded-lg border border-border bg-card p-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"text-sm font-medium",children:i("copilot.capabilities")}),h.isPending||h.isError||!(v.length>0)?null:(0,n.jsxs)("div",{className:"relative w-48 max-w-full",children:[(0,n.jsx)(r.Search,{className:"absolute top-1/2 left-2.5 size-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),(0,n.jsx)(u.Input,{value:c,onChange:e=>d(e.target.value),placeholder:i("copilot.toolsSearch"),className:"h-8 pl-8 text-xs"})]})]}),h.isPending?(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:i("common.loading")}):h.isError?null:0===v.length?(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:i("copilot.capabilitiesEmpty")}):0===k.length?(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:i("copilot.toolsSearchEmpty")}):(0,n.jsxs)("div",{className:"space-y-3",children:[C.length>0?(0,n.jsx)(j,{title:i("copilot.toolGroupOperate"),tools:C,pending:f.isPending,onToggle:(e,n)=>f.mutate({name:e,enabled:n})}):null,w.length>0?(0,n.jsx)(j,{title:i("copilot.toolGroupRead"),tools:w,pending:f.isPending,onToggle:(e,n)=>f.mutate({name:e,enabled:n})}):null]})]})},"CopilotStatusBar",0,function({onModelChange:e,controlsDisabled:r,onSavingChange:i}){let{t:u}=(0,p.useLanguage)(),c=(0,a.useQueryClient)(),f=(0,o.useQuery)({queryKey:y,queryFn:h.listModelProviders}),b=(0,o.useQuery)({queryKey:k,queryFn:g.getCopilotPreferences,retry:!1}),v=(f.data?.models??[]).filter(e=>"disabled"!==e.status),x=b.isSuccess,S=v.find(e=>e.isDefault)??v[0],j=b.data?.modelId??null,P=(j?v.find(e=>e.id===j):void 0)??S,R=P?`${P.providerName} / ${P.name}`:u("copilot.followSystemDefault"),O=S?`${S.providerName} / ${S.name}`:null,E=(0,l.useMutation)({mutationFn:g.updateCopilotPreferences,onSuccess:n=>{c.setQueryData(k,n),e?.(n.modelId),c.invalidateQueries({queryKey:k})},onError:()=>m.toast.error(u("copilot.preferencesFailed"))}),N=(0,t.useRef)(!1);(0,t.useEffect)(()=>{b.isError&&!N.current&&(N.current=!0,m.toast.error(u("copilot.loadError"))),b.isError||(N.current=!1)},[b.isError,u]),(0,t.useEffect)(()=>{x&&e?.(j)},[x,j,e]),(0,t.useEffect)(()=>{i?.(E.isPending)},[E.isPending,i]);let T=(0,t.useRef)(null);return(0,t.useEffect)(()=>{if(f.data&&j&&e){if(v.some(e=>e.id===j)){T.current=null;return}T.current!==j&&(T.current=j,e(null),E.mutate({modelId:null}))}},[f.data,j,e]),(0,n.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b px-3 py-1.5 text-xs text-muted-foreground","data-testid":"copilot-status-bar",children:[(0,n.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:u("copilot.currentModel")}),e?(0,n.jsxs)(d.Select,{value:j??w,disabled:!x||E.isPending||r,onValueChange:e=>{E.mutate({modelId:e===w?null:e})},children:[(0,n.jsx)(d.SelectTrigger,{"aria-label":u("copilot.currentModel"),size:"sm",className:"min-w-0 max-w-64 flex-1 text-xs sm:flex-none",children:(0,n.jsx)(d.SelectValue,{})}),(0,n.jsxs)(d.SelectContent,{children:[(0,n.jsxs)(d.SelectItem,{value:w,children:[u("copilot.followSystemDefault"),O?`(${O})`:""]}),v.map(e=>(0,n.jsxs)(d.SelectItem,{value:e.id,children:[e.providerName," / ",e.name]},e.id))]})]}):(0,n.jsx)("span",{className:"truncate",children:R}),(0,n.jsx)("span",{className:"sr-only shrink-0 sm:not-sr-only",children:u("copilot.thinkingEffort")}),(0,n.jsxs)(d.Select,{value:b.data?.thinkingEffort??"off",disabled:!x||E.isPending||r,onValueChange:e=>{E.mutate({thinkingEffort:e})},children:[(0,n.jsx)(d.SelectTrigger,{"aria-label":u("copilot.thinkingEffort"),size:"sm",className:"text-xs",children:(0,n.jsx)(d.SelectValue,{})}),(0,n.jsx)(d.SelectContent,{children:C.map(e=>(0,n.jsx)(d.SelectItem,{value:e,children:u(`copilot.thinking${e.charAt(0).toUpperCase()}${e.slice(1)}`)},e))})]}),(0,n.jsxs)(s.Badge,{variant:"secondary",className:"ml-auto hidden gap-1.5 whitespace-nowrap sm:inline-flex",children:[(0,n.jsx)("span",{className:"size-1.5 rounded-full bg-emerald-500"}),u("copilot.nativeRuntime")]})]})},"copilotPreferencesQueryKey",0,k,"modelProvidersQueryKey",0,y],41081)},39840,e=>{"use strict";var n=e.i(29256);e.s(["CheckCircle2",()=>n.default])},73977,e=>{"use strict";let n=(0,e.i(65174).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,n],73977)},16220,e=>{"use strict";e.s(["stringify",0,function(e,n){let t=n||{};return(""===e[e.length-1]?[...e,""]:e).join((t.padRight?" ":"")+","+(!1===t.padLeft?"":" ")).trim()}])},58206,e=>{"use strict";let n=/[ \t\n\f\r]/g;function t(e){return""===e.replace(n,"")}e.s(["whitespace",0,function(e){return"object"==typeof e?"text"===e.type&&t(e.value):t(e)}])},77406,41050,35999,e=>{"use strict";class n{constructor(e,n){this.attribute=n,this.property=e}}n.prototype.attribute="",n.prototype.booleanish=!1,n.prototype.boolean=!1,n.prototype.commaOrSpaceSeparated=!1,n.prototype.commaSeparated=!1,n.prototype.defined=!1,n.prototype.mustUseProperty=!1,n.prototype.number=!1,n.prototype.overloadedBoolean=!1,n.prototype.property="",n.prototype.spaceSeparated=!1,n.prototype.space=void 0,e.s(["Info",0,n],41050);let t=0,l=c(),o=c(),a=c(),r=c(),i=c(),s=c(),u=c();function c(){return 2**++t}e.s(["boolean",0,l,"booleanish",0,o,"commaOrSpaceSeparated",0,u,"commaSeparated",0,s,"number",0,r,"overloadedBoolean",0,a,"spaceSeparated",0,i],35999);var d=e.i(35999);let p=Object.keys(d);class m extends n{constructor(e,n,t,l){let o=-1;if(super(e,n),function(e,n,t){t&&(e[n]=t)}(this,"space",l),"number"==typeof t)for(;++o<p.length;){const e=p[o];!function(e,n,t){t&&(e[n]=t)}(this,p[o],(t&d[e])===d[e])}}}m.prototype.defined=!0,e.s(["DefinedInfo",0,m],77406)},16819,e=>{"use strict";e.s(["normalize",0,function(e){return e.toLowerCase()}])},73138,e=>{"use strict";var n=e.i(77406),t=e.i(41050),l=e.i(16819);let o=/[A-Z]/g,a=/-[a-z]/g,r=/^data[-\w.:]+$/i;function i(e){return"-"+e.toLowerCase()}function s(e){return e.charAt(1).toUpperCase()}e.s(["find",0,function(e,u){let c=(0,l.normalize)(u),d=u,p=t.Info;if(c in e.normal)return e.property[e.normal[c]];if(c.length>4&&"data"===c.slice(0,4)&&r.test(u)){if("-"===u.charAt(4)){let e=u.slice(5).replace(a,s);d="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=u.slice(4);if(!a.test(e)){let n=e.replace(o,i);"-"!==n.charAt(0)&&(n="-"+n),u="data"+n}}p=n.DefinedInfo}return new p(d,u)}])},65108,7418,e=>{"use strict";class n{constructor(e,n,t){this.normal=n,this.property=e,t&&(this.space=t)}}n.prototype.normal={},n.prototype.property={},n.prototype.space=void 0,e.s(["Schema",0,n],7418),e.s(["merge",0,function(e,t){let l={},o={};for(let n of e)Object.assign(l,n.property),Object.assign(o,n.normal);return new n(l,o,t)}],65108)},13800,e=>{"use strict";var n=e.i(65108),t=e.i(16819),l=e.i(77406),o=e.i(7418);function a(e){let n={},a={};for(let[o,r]of Object.entries(e.properties)){let i=new l.DefinedInfo(o,e.transform(e.attributes||{},o),r,e.space);e.mustUseProperty&&e.mustUseProperty.includes(o)&&(i.mustUseProperty=!0),n[o]=i,a[(0,t.normalize)(o)]=o,a[(0,t.normalize)(i.attribute)]=o}return new o.Schema(n,a,e.space)}var r=e.i(35999);let i=a({properties:{ariaActiveDescendant:null,ariaAtomic:r.booleanish,ariaAutoComplete:null,ariaBusy:r.booleanish,ariaChecked:r.booleanish,ariaColCount:r.number,ariaColIndex:r.number,ariaColSpan:r.number,ariaControls:r.spaceSeparated,ariaCurrent:null,ariaDescribedBy:r.spaceSeparated,ariaDetails:null,ariaDisabled:r.booleanish,ariaDropEffect:r.spaceSeparated,ariaErrorMessage:null,ariaExpanded:r.booleanish,ariaFlowTo:r.spaceSeparated,ariaGrabbed:r.booleanish,ariaHasPopup:null,ariaHidden:r.booleanish,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:r.spaceSeparated,ariaLevel:r.number,ariaLive:null,ariaModal:r.booleanish,ariaMultiLine:r.booleanish,ariaMultiSelectable:r.booleanish,ariaOrientation:null,ariaOwns:r.spaceSeparated,ariaPlaceholder:null,ariaPosInSet:r.number,ariaPressed:r.booleanish,ariaReadOnly:r.booleanish,ariaRelevant:null,ariaRequired:r.booleanish,ariaRoleDescription:r.spaceSeparated,ariaRowCount:r.number,ariaRowIndex:r.number,ariaRowSpan:r.number,ariaSelected:r.booleanish,ariaSetSize:r.number,ariaSort:null,ariaValueMax:r.number,ariaValueMin:r.number,ariaValueNow:r.number,ariaValueText:null,role:null},transform:(e,n)=>"role"===n?n:"aria-"+n.slice(4).toLowerCase()});function s(e,n){return n in e?e[n]:n}function u(e,n){return s(e,n.toLowerCase())}let c=a({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:r.commaSeparated,acceptCharset:r.spaceSeparated,accessKey:r.spaceSeparated,action:null,allow:null,allowFullScreen:r.boolean,allowPaymentRequest:r.boolean,allowUserMedia:r.boolean,alpha:r.boolean,alt:null,as:null,async:r.boolean,autoCapitalize:null,autoComplete:r.spaceSeparated,autoFocus:r.boolean,autoPlay:r.boolean,blocking:r.spaceSeparated,capture:null,charSet:null,checked:r.boolean,cite:null,className:r.spaceSeparated,closedBy:null,colorSpace:null,cols:r.number,colSpan:r.number,command:null,commandFor:null,content:null,contentEditable:r.booleanish,controls:r.boolean,controlsList:r.spaceSeparated,coords:r.number|r.commaSeparated,crossOrigin:null,data:null,dateTime:null,decoding:null,default:r.boolean,defer:r.boolean,dir:null,dirName:null,disabled:r.boolean,download:r.overloadedBoolean,draggable:r.booleanish,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:r.boolean,formTarget:null,headers:r.spaceSeparated,height:r.number,hidden:r.overloadedBoolean,high:r.number,href:null,hrefLang:null,htmlFor:r.spaceSeparated,httpEquiv:r.spaceSeparated,id:null,imageSizes:null,imageSrcSet:null,inert:r.boolean,inputMode:null,integrity:null,is:null,isMap:r.boolean,itemId:null,itemProp:r.spaceSeparated,itemRef:r.spaceSeparated,itemScope:r.boolean,itemType:r.spaceSeparated,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:r.boolean,low:r.number,manifest:null,max:null,maxLength:r.number,media:null,method:null,min:null,minLength:r.number,multiple:r.boolean,muted:r.boolean,name:null,nonce:null,noModule:r.boolean,noValidate:r.boolean,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:r.boolean,optimum:r.number,pattern:null,ping:r.spaceSeparated,placeholder:null,playsInline:r.boolean,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:r.boolean,referrerPolicy:null,rel:r.spaceSeparated,required:r.boolean,reversed:r.boolean,rows:r.number,rowSpan:r.number,sandbox:r.spaceSeparated,scope:null,scoped:r.boolean,seamless:r.boolean,selected:r.boolean,shadowRootClonable:r.boolean,shadowRootCustomElementRegistry:r.boolean,shadowRootDelegatesFocus:r.boolean,shadowRootMode:null,shadowRootSerializable:r.boolean,shape:null,size:r.number,sizes:null,slot:null,span:r.number,spellCheck:r.booleanish,src:null,srcDoc:null,srcLang:null,srcSet:null,start:r.number,step:null,style:null,tabIndex:r.number,target:null,title:null,translate:null,type:null,typeMustMatch:r.boolean,useMap:null,value:r.booleanish,width:r.number,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:r.spaceSeparated,axis:null,background:null,bgColor:null,border:r.number,borderColor:null,bottomMargin:r.number,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:r.boolean,declare:r.boolean,event:null,face:null,frame:null,frameBorder:null,hSpace:r.number,leftMargin:r.number,link:null,longDesc:null,lowSrc:null,marginHeight:r.number,marginWidth:r.number,noResize:r.boolean,noHref:r.boolean,noShade:r.boolean,noWrap:r.boolean,object:null,profile:null,prompt:null,rev:null,rightMargin:r.number,rules:null,scheme:null,scrolling:r.booleanish,standby:null,summary:null,text:null,topMargin:r.number,valueType:null,version:null,vAlign:null,vLink:null,vSpace:r.number,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:r.boolean,disablePictureInPicture:r.boolean,disableRemotePlayback:r.boolean,exportParts:r.commaSeparated,part:r.spaceSeparated,prefix:null,property:null,results:r.number,security:null,unselectable:null},space:"html",transform:u}),d=a({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:r.commaOrSpaceSeparated,accentHeight:r.number,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:r.number,amplitude:r.number,arabicForm:null,ascent:r.number,attributeName:null,attributeType:null,azimuth:r.number,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:r.number,by:null,calcMode:null,capHeight:r.number,className:r.spaceSeparated,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:r.number,diffuseConstant:r.number,direction:null,display:null,dur:null,divisor:r.number,dominantBaseline:null,download:r.boolean,dx:null,dy:null,edgeMode:null,editable:null,elevation:r.number,enableBackground:null,end:null,event:null,exponent:r.number,externalResourcesRequired:null,fill:null,fillOpacity:r.number,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:r.commaSeparated,g2:r.commaSeparated,glyphName:r.commaSeparated,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:r.number,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:r.number,horizOriginX:r.number,horizOriginY:r.number,id:null,ideographic:r.number,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:r.number,k:r.number,k1:r.number,k2:r.number,k3:r.number,k4:r.number,kernelMatrix:r.commaOrSpaceSeparated,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:r.number,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:r.number,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:r.number,overlineThickness:r.number,paintOrder:null,panose1:null,path:null,pathLength:r.number,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:r.spaceSeparated,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:r.number,pointsAtY:r.number,pointsAtZ:r.number,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:r.commaOrSpaceSeparated,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:r.commaOrSpaceSeparated,rev:r.commaOrSpaceSeparated,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:r.commaOrSpaceSeparated,requiredFeatures:r.commaOrSpaceSeparated,requiredFonts:r.commaOrSpaceSeparated,requiredFormats:r.commaOrSpaceSeparated,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:r.number,specularExponent:r.number,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:r.number,strikethroughThickness:r.number,string:null,stroke:null,strokeDashArray:r.commaOrSpaceSeparated,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:r.number,strokeOpacity:r.number,strokeWidth:null,style:null,surfaceScale:r.number,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:r.commaOrSpaceSeparated,tabIndex:r.number,tableValues:null,target:null,targetX:r.number,targetY:r.number,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:r.commaOrSpaceSeparated,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:r.number,underlineThickness:r.number,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:r.number,values:null,vAlphabetic:r.number,vMathematical:r.number,vectorEffect:null,vHanging:r.number,vIdeographic:r.number,version:null,vertAdvY:r.number,vertOriginX:r.number,vertOriginY:r.number,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:r.number,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:s}),p=a({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,n)=>"xlink:"+n.slice(5).toLowerCase()}),m=a({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:u}),h=a({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,n)=>"xml:"+n.slice(3).toLowerCase()}),g=(0,n.merge)([i,c,p,m,h],"html"),f=(0,n.merge)([i,d,p,m,h],"svg");e.s(["html",0,g,"svg",0,f],13800)},22365,e=>{"use strict";e.s(["stringify",0,function(e){return e.join(" ").trim()}])},70284,e=>{"use strict";e.s(["ccount",0,function(e,n){let t=String(e);if("string"!=typeof n)throw TypeError("Expected character");let l=0,o=t.indexOf(n);for(;-1!==o;)l++,o=t.indexOf(n,o+n.length);return l}])},63853,e=>{"use strict";let n=(0,e.i(65174).default)("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",0,n],63853)},68229,e=>{"use strict";let n=(0,e.i(65174).default)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",0,n],68229)},26949,e=>{"use strict";let n=(0,e.i(65174).default)("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);e.s(["Maximize2",0,n],26949)},20495,e=>{"use strict";var n=e.i(66499),t=e.i(79923),l=e.i(29096),o=e.i(68229),a=e.i(28774),r=e.i(26949),i=e.i(63853);let s=(0,e.i(65174).default)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var u=e.i(20217),c=e.i(60218),d=e.i(88010),p=e.i(46131),m=e.i(742),h=e.i(19813),g=e.i(95644),f=e.i(64540),b=e.i(41081),v=e.i(98264),x=e.i(35887),y=e.i(25842),S=e.i(64544),k=e.i(60574),C=e.i(75349),w=e.i(47721),j=e.i(92608),P=e.i(65458),R=e.i(25284),O=e.i(89241);let E=O.LAST_COPILOT_CONVERSATION_KEY,N="__no_project__",T={"bottom-right":"md:bottom-32 md:right-4 md:top-auto","bottom-left":"md:bottom-32 md:left-4 md:top-auto","top-right":"md:bottom-auto md:right-4 md:top-32","top-left":"md:bottom-auto md:left-4 md:top-32"};e.s(["ROBOT_CONVERSATION_STORAGE_KEY",0,E,"RobotChatPanel",0,function({onClose:e,onExpandFull:E,corner:I="bottom-right"}){let{t:z}=(0,x.useLanguage)(),M=(0,t.useRef)(null);(0,t.useEffect)(()=>{let e=document.activeElement;return M.current?.focus(),()=>{e instanceof HTMLElement&&e.isConnected&&e.focus()}},[]);let[D,L]=(0,t.useState)(null),[A,U]=(0,t.useState)([]),[J,B]=(0,t.useState)([]),[$,q]=(0,t.useState)(""),[F,H]=(0,t.useState)(null),[K,V]=(0,t.useState)(!1),[_,W]=(0,t.useState)(!1),[X,Q]=(0,t.useState)(!1),[Y,G]=(0,t.useState)(!1),[Z,ee]=(0,t.useState)(null),en=(0,t.useRef)(null),et=(0,t.useRef)(null),el=(0,t.useCallback)(async e=>{if(ev.current!==e)return!1;let n=++eb.current,t=ef.current,l=()=>n===eb.current&&t===ef.current&&ev.current===e;try{let{messages:n}=await (0,j.listMessages)(e);if(!l())return!1;return U(n),ee(null),!0}catch(e){if(l())throw e;return!1}},[]),{active:eo,startRun:ea,startEditedRun:er,clearActive:ei,markPending:es,reconcile:eu,syncError:ec}=(0,y.useCopilotRun)({conversationId:D,onSettled:async e=>{await el(e)}}),ed=(0,t.useCallback)(e=>{U(n=>[...n,{id:`local-${Date.now()}-${Math.random().toString(36).slice(2)}`,conversationId:D??"",userId:"",role:"user",kind:"text",content:e,sequence:n.length+1,createdAt:new Date().toISOString()}])},[D]),ep=(0,t.useCallback)(async(e,n)=>{en.current===e&&(en.current=null,await (0,j.renameConversation)(e,n.slice(0,24)).catch(()=>void 0))},[]),em=(0,t.useCallback)(async e=>{await el(e)},[el]),eh=(0,t.useCallback)(async()=>void 0,[]),eg=(0,S.useCopilotChatController)({conversationId:D,projectId:$,modelId:F,reviewTaskResults:K,repairFailedChecks:_,savingPreferences:X,conversations:[],messages:A,active:eo,startRun:ea,startEditedRun:er,clearActive:ei,markPending:es,reconcile:eu,readMessages:el,refreshConversations:eh,reloadActiveConversation:em,autoTitleIfUntitled:ep,appendUserMessage:ed}),ef=eg.selectionEpochRef,eb=eg.messageSerialRef,ev=eg.conversationIdRef;(0,t.useEffect)(()=>{let e=(0,O.readLastCopilotConversation)();if(!e)return;let n=!1,t=ef.current,l=++eb.current;return G(!0),eg.conversationIdRef.current=e,L(e),(0,j.listMessages)(e).then(({messages:o})=>{n||l!==eb.current||t!==ef.current||eg.conversationIdRef.current!==e||(U(o),ee(null))}).catch(l=>{n||t!==ef.current||eg.conversationIdRef.current!==e||(l instanceof w.GatewayApiError&&404===l.status?(eg.conversationIdRef.current=null,(0,O.writeLastCopilotConversation)(null),L(null),U([]),ei()):ee(z("copilot.loadError")))}).finally(()=>{n||t!==ef.current||G(!1)}),()=>{n=!0}},[]),(0,t.useEffect)(()=>{let e=!1;return(0,w.listProjects)().then(n=>{e||B(n.projects)}).catch(()=>{e||B([])}),()=>{e=!0}},[]);let ex=(0,t.useCallback)(()=>{if(eg.conversationIdRef.current)return Promise.resolve(eg.conversationIdRef.current);if(!et.current){let e=ef.current;et.current=(0,j.createConversation)().then(({conversation:n})=>e!==ef.current?null:((0,l.flushSync)(()=>{eg.conversationIdRef.current=n.id,en.current=n.id,L(n.id),(0,O.writeLastCopilotConversation)(n.id)}),n.id)).catch(()=>(e===ef.current&&ee(z("copilot.loadError")),null)).finally(()=>{et.current=null})}return et.current},[eg,z]),ey=(0,t.useCallback)(async(e,n=!1)=>{if(n)return void await eg.send(void 0,!0);if(et.current)return void R.toast.info(z("copilot.creatingConversation"));let t=(e??eg.input).trim();if(t){if(eP.current){if(!D)return void R.toast.info(z("copilot.creatingConversation"));let e=eg.captureDraft(t);return void(await ej.current(t)&&e())}await ex()&&await eg.send(e,!1)}},[eg,ex,D,z]),eS=(0,t.useCallback)(()=>{eg.advanceSelectionEpoch(),eg.messageSerialRef.current++,eg.conversationIdRef.current=null,en.current=null,ei(),L(null),U([]),ee(null),q(""),eg.resetInteractionState(),eg.setInput(""),(0,O.writeLastCopilotConversation)(null)},[ei,eg]),ek=eo&&("running"===eo.status||"pending"===eo.status),eC=!!(ek||eo?.status==="awaiting_approval"),ew=(0,k.useCopilotFollowups)({conversationId:D,...$?{projectId:$}:{},...F?{modelId:F}:{},reviewTaskResults:K,repairFailedChecks:_,active:eC}),ej=(0,t.useRef)(ew.enqueue);ej.current=ew.enqueue;let eP=(0,t.useRef)(!!ek);eP.current=!!ek;let eR=(0,t.useMemo)(()=>(0,m.indexToolResults)(A),[A]),eO=!Z&&!Y&&0===A.length&&!eo;return(0,n.jsxs)("div",{role:"dialog","aria-label":z("nav.copilot"),"data-testid":"robot-chat-panel",onKeyDown:n=>{"Escape"!==n.key||n.defaultPrevented||(n.preventDefault(),e())},className:(0,P.cn)("fixed inset-x-2 bottom-2 top-14 z-40 flex flex-col overflow-hidden rounded-xl border border-border bg-card shadow-2xl shadow-black/40 md:inset-x-auto md:h-[520px] md:max-h-[calc(100dvh-9rem)] md:w-[380px]",T[I]),children:[(0,n.jsxs)("div",{className:"flex h-11 shrink-0 items-center justify-between gap-2 border-b px-3",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,n.jsx)("span",{className:(0,P.cn)("size-1.5 shrink-0 rounded-full",ek?"animate-pulse bg-brand":"bg-emerald-500"),"aria-hidden":"true"}),(0,n.jsx)("span",{className:"truncate text-sm font-semibold",children:z("nav.copilot")})]}),(0,n.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,n.jsx)(c.Button,{variant:"ghost",size:"icon",className:"size-7 text-muted-foreground hover:text-foreground","aria-label":z("copilot.robotExpand"),title:z("copilot.robotExpand"),onClick:()=>E(D),children:(0,n.jsx)(r.Maximize2,{className:"size-4"})}),(0,n.jsx)(c.Button,{variant:"ghost",size:"icon",className:"size-7 text-muted-foreground hover:text-foreground","aria-label":z("copilot.newConversation"),title:z("copilot.newConversation"),onClick:eS,children:(0,n.jsx)(s,{className:"size-4"})}),(0,n.jsx)(c.Button,{variant:"ghost",size:"icon",className:"size-7 text-muted-foreground hover:text-foreground","aria-label":z("common.close"),title:z("common.close"),onClick:e,children:(0,n.jsx)(u.XIcon,{className:"size-4"})})]})]}),(0,n.jsx)(b.CopilotStatusBar,{onModelChange:H,onSavingChange:Q,controlsDisabled:eC||eg.sending}),(0,n.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[(0,n.jsxs)("div",{ref:eg.scrollRef,onScroll:eg.onScroll,"data-testid":"robot-chat-scroll",className:"flex-1 space-y-4 overflow-y-auto px-3 py-3",children:[Z&&(0,n.jsx)("p",{className:"text-sm text-destructive",children:Z}),!Z&&Y&&(0,n.jsxs)("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,n.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-brand"}),z("common.loading")]}),eO&&(0,n.jsx)(h.CopilotWelcomeState,{compact:!0,onSuggestion:e=>void ey(e)}),A.map(e=>{let t=e.toolCallId&&eR.has(e.toolCallId)?eR.get(e.toolCallId).id:null;return(0,n.jsx)(m.MessageRow,{message:e,pairedResult:null===t?null:eR.get(e.toolCallId)??null,suppressRender:t===e.id,isEditing:eg.editingMessageId===e.id,editDraft:eg.editDraft,editSubmitting:eg.editSubmitting||X,canEdit:!eC&&!X&&!eg.sending&&null===eg.editingMessageId,onBeginEdit:eg.beginEditMessage,onChangeDraft:eg.setEditDraft,onSubmitEdit:()=>void eg.submitEditMessage(),onCancelEdit:eg.cancelEditMessage},e.id)}),(ec||eo?.error)&&(0,n.jsxs)("p",{role:"status",className:"text-sm text-muted-foreground",children:[ec||eo?.error,!ec&&eo?.errorCode?(0,n.jsxs)("span",{className:"text-xs opacity-70",children:[" (",eo.errorCode,")"]}):null]}),eo?.status==="awaiting_approval"&&(eo.pendingAction?(0,n.jsx)(v.CopilotApproval,{action:eo.pendingAction,onDecided:eu},eo.pendingAction.id):(0,n.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:z("copilot.awaitingApproval")})),ek&&(0,n.jsxs)("p",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-brand"}),z((0,C.copilotPhaseLabel)(eo?.phase))]}),eo?.thinking?(0,n.jsx)(m.ThinkingSection,{text:eo.thinking,live:!0===ek}):null,eo?.text?(0,n.jsx)(m.StreamingMessage,{text:eo.text}):ek?(0,n.jsxs)("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,n.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-brand"}),z("copilot.running")]}):null,eg.sendFailed&&(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)(c.Button,{variant:"outline",size:"sm",onClick:()=>void ey(void 0,!0),children:z("copilot.retry")})})]}),!eg.pinnedToBottom&&(0,n.jsx)(c.Button,{variant:"outline",size:"icon",className:"absolute bottom-3 right-3 z-10 size-7 rounded-full shadow",onClick:eg.scrollToBottom,"aria-label":z("copilot.scrollDown"),children:(0,n.jsx)(o.ArrowDown,{className:"size-3.5"})})]}),(0,n.jsxs)("div",{className:"relative shrink-0 px-2.5 pb-2.5 pt-1",children:[(0,n.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsxs)(p.Select,{value:$||N,disabled:eC||eg.sending,onValueChange:e=>q(e===N?"":e),children:[(0,n.jsx)(p.SelectTrigger,{"aria-label":z("copilot.projectContext"),size:"sm",className:"h-7 min-w-0 max-w-40 flex-1 px-2 text-xs",children:(0,n.jsx)(p.SelectValue,{placeholder:z("copilot.noProject")})}),(0,n.jsxs)(p.SelectContent,{children:[(0,n.jsx)(p.SelectItem,{value:N,children:z("copilot.noProject")}),J.map(e=>(0,n.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))]})]}),(0,n.jsx)(g.CopilotRunOptions,{conversationId:D,modelId:F,disabled:eC||eg.sending,reviewTaskResults:K,onReviewChange:V,repairFailedChecks:_,onRepairChange:W})]}),(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-full h-10 bg-gradient-to-t from-card via-card/80 to-transparent"}),D&&(0,n.jsx)(f.CopilotFollowupChips,{items:ew.items,onCancel:e=>void ew.cancel(e)}),(0,n.jsxs)("div",{"data-testid":"robot-chat-composer",className:"flex items-end gap-1.5 rounded-xl border border-border/70 bg-card/90 px-2 py-1.5 shadow-lg shadow-black/20 backdrop-blur-md transition-all duration-200 ease-out hover:-translate-y-0.5 hover:border-border hover:shadow-xl hover:shadow-black/30 focus-within:border-brand/60 focus-within:shadow-xl focus-within:shadow-black/30 focus-within:ring-1 focus-within:ring-brand/30",children:[(0,n.jsx)(d.Textarea,{ref:M,value:eg.input,onChange:e=>eg.setInput(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),ey())},placeholder:ek?z("copilot.followups.placeholder"):z("copilot.placeholder"),"aria-label":z("copilot.placeholder"),className:"min-h-[32px] max-h-32 flex-1 resize-none rounded-none border-0 bg-transparent px-1 py-1 shadow-none focus-visible:ring-0",rows:1}),eC?(0,n.jsx)(c.Button,{variant:"outline",size:"icon",className:"size-7 shrink-0 rounded-full",onClick:()=>void eg.stopRun(),disabled:!eo?.runId,"aria-label":z("copilot.stop"),title:z("copilot.stop"),children:(0,n.jsx)(i.Square,{className:"size-3.5"})}):null,(0,n.jsx)(c.Button,{size:"icon",className:"size-7 shrink-0 rounded-full",onClick:()=>void ey(),disabled:eg.sending||X||ew.enqueuing||!eg.input.trim(),"aria-label":ek?z("copilot.followups.enqueue"):z("copilot.send"),title:ek?z("copilot.followups.enqueue"):z("copilot.send"),children:(0,n.jsx)(a.ArrowUp,{className:"size-4"})})]})]})]})}],20495)},95848,e=>{e.n(e.i(20495))},24612,e=>{e.v(n=>Promise.all(["static/chunks/0qtypt.14w.xv.js","static/chunks/0rn5o811f3gsb.js"].map(n=>e.l(n))).then(()=>n(7222)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,58623,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},87098,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return _},MissingStaticPage:function(){return w},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return p},ST:function(){return y},WEB_VITALS:function(){return o},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return C}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,n=!1;return(...r)=>(n||(n=!0,t=e(...r)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?":"+n:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let p="u">typeof performance,y=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class _ extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function C(e){return JSON.stringify({message:e.message,stack:e.stack})}},63253,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={assign:function(){return u},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});function o(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,a(e));else t.set(n,a(r));return t}function u(e,...t){for(let n of t){for(let t of n.keys())e.delete(t);for(let[t,r]of n.entries())e.append(t,r)}return e}},47190,e=>{"use strict";var t=e.i(78717),n=e.i(85426),r=e.i(6270),i=e.i(37122),o=e.i(47721);e.s(["useAuth",0,function(){let e=(0,r.useQueryClient)(),{data:a,isLoading:s}=(0,t.useQuery)({queryKey:["auth","me"],queryFn:async()=>{if(!(0,i.isAuthenticated)())return null;let e=(0,i.getUser)();try{let e=await (0,o.getMe)();if(0===e.code&&e.data)return(0,i.setUser)(e.data),e.data}catch(n){var t;if(!((t=n)instanceof o.GatewayApiError&&(401===t.status||403===t.status)))return e}return(0,i.logout)(),null},staleTime:3e5}),u=(0,n.useMutation)({mutationFn:async e=>(0,o.login)(e.email,e.password),onSuccess:t=>{0===t.code&&t.data&&((0,i.setToken)(t.data.token),(0,i.setUser)(t.data.user),e.setQueryData(["auth","me"],t.data.user))}}),l=(0,n.useMutation)({mutationFn:async e=>(0,o.register)(e.email,e.password,e.recoveryKey,e.inviteCode),onSuccess:t=>{0===t.code&&t.data&&((0,i.setToken)(t.data.token),(0,i.setUser)(t.data.user),e.setQueryData(["auth","me"],t.data.user))}}),c=(0,n.useMutation)({mutationFn:async()=>(0,i.logout)(),onSuccess:()=>{e.setQueryData(["auth","me"],null),e.invalidateQueries({queryKey:["auth"]})}});return{user:a,isLoading:s,isAuthenticated:!!a,login:u.mutateAsync,register:l.mutateAsync,logout:c.mutateAsync}}])},73870,e=>{"use strict";let t=(0,e.i(65174).default)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",0,t])},98240,76691,e=>{"use strict";let t="forgebadger.color-mode",n="system",r=["light","dark","system"];function i(e){return r.includes(e)}function o(e,r=window.localStorage){let a=i(e)?e:n,s=function(e,t=window.matchMedia?.("(prefers-color-scheme: dark)")){return"system"===e?t?.matches?"dark":"light":e}(a),u=document.documentElement;return u.classList.toggle("dark","dark"===s),u.style.colorScheme=s,r.setItem(t,a),s}let a={mode:n,resolved:"dark"},s=new Set;function u(e){for(let t of(a=e,s))t()}e.s(["getColorModeState",0,function(){return a},"initColorMode",0,function(){let e=function(e=window.localStorage){let r=e.getItem(t);return i(r)?r:n}(),r=o(e);if(u({mode:e,resolved:r}),!window.matchMedia)return()=>{};let s=window.matchMedia("(prefers-color-scheme: dark)"),l=e=>{var t;t=e.matches?"dark":"light","system"===a.mode&&(o("system"),u({mode:"system",resolved:t}))};return s.addEventListener("change",l),()=>s.removeEventListener("change",l)},"setColorMode",0,function(e){let t=i(e)?e:n,r=o(t);return u({mode:t,resolved:r}),r},"subscribeToColorMode",0,function(e){return s.add(e),()=>{s.delete(e)}}],98240);let l="forgebadger.terminal-font",c={fontFamily:'"ForgeBadger Nerd", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace',fontSize:14};function d(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(32,Math.max(8,Math.round(e))):c.fontSize}function f(e){try{var t=(e??window.localStorage).getItem(l);if(!t)return c;try{let e=JSON.parse(t),n="string"==typeof e.fontFamily?e.fontFamily.trim():"";if(0===n.length||n.length>200)return{fontFamily:c.fontFamily,fontSize:d(e.fontSize)};return{fontFamily:n,fontSize:d(e.fontSize)}}catch{return c}}catch{return c}}let h=c,m=new Set;function p(e){for(let t of(h=e,m))t()}async function y(e){if(!("u"<typeof document)&&document.fonts&&e.includes("ForgeBadger Nerd"))try{await document.fonts.load('400 14px "ForgeBadger Nerd"'),await document.fonts.load('700 14px "ForgeBadger Nerd"')}catch{}}e.s(["DEFAULT_TERMINAL_FONT",0,c,"MAX_TERMINAL_FONT_SIZE",0,32,"MIN_TERMINAL_FONT_SIZE",0,8,"ensureTerminalFontLoaded",0,y,"getTerminalFontState",0,function(){return h},"initTerminalFont",0,function(){return p(f()),()=>{}},"readStoredTerminalFont",0,f,"setTerminalFont",0,function(e){let t={fontFamily:e.fontFamily.trim().length>0?e.fontFamily.trim():c.fontFamily,fontSize:d(e.fontSize)},n={fontFamily:t.fontFamily.trim().length>0?t.fontFamily.trim():c.fontFamily,fontSize:d(t.fontSize)};try{((void 0)??window.localStorage).setItem(l,JSON.stringify(n))}catch{}return p(t),t},"subscribeToTerminalFont",0,function(e){return m.add(e),()=>{m.delete(e)}}],76691)},29256,e=>{"use strict";let t=(0,e.i(65174).default)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",0,t])},89350,e=>{"use strict";let t="forgebadger:gateway-event";e.s(["FORGEBADGER_GATEWAY_CONNECTED",0,"forgebadger:gateway-connected","FORGEBADGER_GATEWAY_EVENT",0,t,"dispatchGatewayEvent",0,function(e){window.dispatchEvent(new CustomEvent(t,{detail:e}))}])},1761,e=>{"use strict";let t="forgebadger.browserNotifications.enabled";function n(e=a()){return e?.getItem(t)==="true"}function r(){return"Notification"in window?Notification.permission:"unsupported"}async function i(){return"Notification"in window?Notification.requestPermission():"unsupported"}function o(e,t){return!t.read&&(!!("claude_notification"===e.type&&["permission_prompt","permission_denied","task_completed","task_interrupted","task_failed","session_ended","attention"].includes(String(e.payload?.notification_type??"")))||"session_status_changed"===e.type&&(e.payload?.new_status==="stopped"||e.payload?.new_status==="completed"||e.payload?.new_status==="error"))}function a(){return window.localStorage}e.s(["getBrowserNotificationPermission",0,r,"getBrowserNotificationPreference",0,n,"requestBrowserNotificationPermission",0,i,"setBrowserNotificationPreference",0,function(e,n=a()){n&&n.setItem(t,e?"true":"false")},"shouldTriggerBrowserNotification",0,o,"showBrowserNotification",0,function(e,t,i){if(n()&&"granted"===r()&&o(i,t))try{new Notification(e,{body:t.message,tag:t.id})}catch{}}])},30811,e=>{"use strict";let t=new Set(["permission_prompt","permission_denied","task_completed","task_interrupted","task_failed","session_ended","attention"]);function n(e,t=50){return[...e].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)).slice(0,t)}let r=[{amount:60,unit:"second"},{amount:60,unit:"minute"},{amount:24,unit:"hour"},{amount:7,unit:"day"},{amount:4.34524,unit:"week"},{amount:12,unit:"month"},{amount:1/0,unit:"year"}];function i(e,t){if(t)return e?`${e}: ${t}`:t}function o(e,t){let n=e?.[t];return"string"==typeof n&&n.trim().length>0?n:void 0}function a(e,t){let n=e?.[t];return"boolean"==typeof n?n:void 0}e.s(["createNotificationFromEvent",0,function(e,n=new Date().toISOString()){var r,i,s;let u,l;if("app_action_notification"===e.type)return function(e,t){var n;let r,i=o(e.payload,"title_key"),s=o(e.payload,"message");if(!i||!s)return null;let u=o(e.payload,"notification_id"),l=o(e.payload,"created_at")??t,c=o(e.payload,"action"),d=(n=e.payload,"success"===(r=n?.status)||"error"===r?r:void 0);return{id:u??`${e.type}:${c??"unknown"}:${l}`,type:"app_action_notification",category:"app_action",titleKey:i,message:s,createdAt:l,href:"/models",read:a(e.payload,"read")??!1,adapter:o(e.payload,"adapter"),action:c,status:d}}(e,n);if("claude_notification"!==e.type)return null;let c=o(e.payload,"notification_type");if(!c||!t.has(c))return null;let d=o(e.payload,"session_id");if(!d)return null;let f=(u=o(r=e.payload??{},"message")??"Code CLI notification",(l=o(r,"tool_name"))?`${l}: ${u}`:u),h=o(e.payload,"notification_id"),m=o(e.payload,"created_at")??n,p=a(e.payload,"read")??!1,y=o(e.payload,"adapter"),g=(i=c,s=y,"permission_prompt"===i?"opencode"===s?"notifications.opencodePermissionRequest":"codex"===s?"notifications.codexPermissionRequest":"kimi"===s?"notifications.kimiPermissionRequest":"pi"===s?"notifications.piPermissionRequest":"notifications.claudePermissionRequest":"permission_denied"===i?"opencode"===s?"notifications.opencodePermissionDenied":"codex"===s?"notifications.codexPermissionDenied":"kimi"===s?"notifications.kimiPermissionDenied":"pi"===s?"notifications.piPermissionDenied":"notifications.claudePermissionDenied":"task_completed"===i?"notifications.taskCompleted":"task_failed"===i?"notifications.taskFailed":"session_ended"===i?"notifications.sessionEnded":"attention"===i?"notifications.needsAttention":"notifications.taskInterrupted");return{id:h??`${e.type}:${d}:${c}:${m}`,type:e.type,category:"session_event",titleKey:g,message:f,createdAt:m,href:`/sessions/${encodeURIComponent(d)}`,read:p,projectId:o(e.payload,"project_id"),projectName:o(e.payload,"project_name"),sessionId:d,sessionName:o(e.payload,"session_name"),adapter:y,notificationType:c}},"formatRelativeTime",0,function(e,t,n=new Date){let i=new Date(e);if(Number.isNaN(i.getTime()))return e;let o=new Intl.RelativeTimeFormat(t,{numeric:"auto"}),a=(i.getTime()-n.getTime())/1e3;for(let e of r){if(Math.abs(a)<e.amount)return o.format(Math.round(a),e.unit);a/=e.amount}return o.format(Math.round(a),"year")},"latestUnread",0,function(e,t=5){return e.filter(e=>!e.read).sort((e,t)=>t.createdAt.localeCompare(e.createdAt)).slice(0,t)},"mergeNotifications",0,function(e,t,r=50){return n([t,...e.filter(e=>e.id!==t.id)],r)},"notificationContextParts",0,function(e,t){var n;return[i(t?.project,e.projectName),i(t?.session,e.sessionName),i(t?.cli,"claude"===(n=e.adapter)?"Claude Code":"opencode"===n?"OpenCode":"codex"===n?"Codex":"kimi"===n?"Kimi Code":"pi"===n?"PI":n)].filter(e=>!!e)},"trimNotifications",0,n])},57408,e=>{"use strict";var t=e.i(14698);e.s(["eventsWebSocketProtocols",0,function(e){return["forgebadger-events",e]},"eventsWebSocketUrl",0,function(e=(0,t.getGatewayBaseUrl)()){let n=new URL(e);return n.protocol="https:"===n.protocol?"wss:":"ws:",n.pathname="/ws/events",n.toString()},"terminalWebSocketProtocols",0,function(e,t){return["forgebadger-terminal",e,t]},"terminalWebSocketUrl",0,function(e,n=(0,t.getGatewayBaseUrl)()){let r=new URL(n);return r.protocol="https:"===r.protocol?"wss:":"ws:",r.pathname=`/ws/terminal/${encodeURIComponent(e)}`,r.toString()}])},84208,e=>{"use strict";var t=e.i(66499),n=e.i(79923),r=e.i(6270),i=e.i(37122),o=e.i(47721),a=e.i(1761),s=e.i(30811),u=e.i(89350),l=e.i(57408),c=e.i(47190),d=e.i(35887);let f=(0,n.createContext)(null);e.s(["NotificationProvider",0,function({children:e}){let{user:h}=(0,c.useAuth)(),{t:m}=(0,d.useLanguage)(),p=(0,r.useQueryClient)(),[y,g]=(0,n.useState)([]),[b,v]=(0,n.useState)(!1),w=(0,n.useRef)(null),_=(0,n.useCallback)(e=>{g(t=>e(t))},[]),C=(0,n.useCallback)(async()=>{try{let e=await (0,o.listNotifications)();g((0,s.trimNotifications)(e.notifications,500)),v(!1)}catch{v(!0)}},[]),O=(0,n.useCallback)(e=>{_(t=>t.map(t=>t.id===e?{...t,read:!0}:t)),(0,o.markNotificationRead)(e).catch(()=>{C()})},[C,_]);(0,n.useEffect)(()=>{if(!h)return void g([]);let e=!1;return v(!1),(0,o.listNotifications)().then(t=>{e||g((0,s.trimNotifications)(t.notifications,500))}).catch(()=>{e||(g([]),v(!0))}),()=>{e=!0}},[h]),(0,n.useEffect)(()=>{let e=(0,i.getToken)();if(!h||!e||"u"<typeof WebSocket)return;let t=!1,n=null,r=null,o=1e3,c=()=>{(n=new WebSocket((0,l.eventsWebSocketUrl)(),(0,l.eventsWebSocketProtocols)(e))).onopen=()=>{window.dispatchEvent(new Event(u.FORGEBADGER_GATEWAY_CONNECTED)),o=1e3},n.onmessage=e=>{try{var t,n;let r,i,o=JSON.parse(e.data);(0,u.dispatchGatewayEvent)(o);let l=(0,s.createNotificationFromEvent)(o);if(l){let e=(0,s.notificationContextParts)(l,{project:m("notifications.projectContext"),session:m("notifications.sessionContext"),cli:m("notifications.cliContext")}).join(" · "),t=[m(l.titleKey),e].filter(Boolean).join(" · ");_(e=>(0,s.mergeNotifications)(e,l,500)),(0,a.showBrowserNotification)(t,l,o)}t=w,n=p,i=(r=o.type,"session_created"===r||"session_deleted"===r||"session_status_changed"===r?[["sessions"],["projects"],["dashboard-summary"],["activities"]]:[]),0!==i.length&&null===t.current&&(t.current=setTimeout(()=>{t.current=null,function(e,t){for(let n of t)e.invalidateQueries({queryKey:n})}(n,i)},250))}catch{}},n.onclose=()=>{t||(r=setTimeout(c,o),o=Math.min(2*o,1e4))}};return c(),()=>{t=!0,n?.close(),null!==r&&clearTimeout(r),null!==w.current&&(clearTimeout(w.current),w.current=null)}},[p,m,_,h]);let M=(0,n.useMemo)(()=>({notifications:y,unreadCount:y.filter(e=>!e.read).length,markRead:O,markAllRead:()=>{_(e=>e.map(e=>({...e,read:!0}))),(0,o.markAllNotificationsRead)().catch(()=>{C()})},clearNotifications:()=>{_(()=>[]),(0,o.clearServerNotifications)().catch(()=>{C()})},initialLoadError:b,reloadNotifications:C}),[b,O,y,C,_]);return(0,t.jsx)(f.Provider,{value:M,children:e})},"useNotifications",0,function(){let e=(0,n.useContext)(f);if(!e)throw Error("useNotifications must be used within NotificationProvider");return e}])},41338,31231,59173,e=>{"use strict";var t=e.i(29256);e.s(["CircleCheckIcon",()=>t.default],41338);var n=e.i(65174);let r=(0,n.default)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["InfoIcon",0,r],31231);let i=(0,n.default)("OctagonX",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["OctagonXIcon",0,i],59173)},19044,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelIdleCallback:function(){return a},requestIdleCallback:function(){return o}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},a="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},74790,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return v},handleClientScriptLoad:function(){return y},initScriptLoader:function(){return g}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let o=e.r(81258),a=e.r(44066),s=e.r(66499),u=o._(e.r(29096)),l=a._(e.r(79923)),c=e.r(51401),d=e.r(15824),f=e.r(19044),h=new Map,m=new Set,p=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:i=null,dangerouslySetInnerHTML:o,children:a="",strategy:s="afterInteractive",onError:l,stylesheets:c}=e,f=n||t;if(f&&m.has(f))return;if(h.has(t)){m.add(f),h.get(t).then(r,l);return}let p=()=>{i&&i(),m.add(f)},y=document.createElement("script"),g=new Promise((e,t)=>{y.addEventListener("load",function(t){e(),r&&r.call(this,t),p()}),y.addEventListener("error",function(e){t(e)})}).catch(function(e){l&&l(e)});o?(y.innerHTML=o.__html||"",p()):a?(y.textContent="string"==typeof a?a:Array.isArray(a)?a.join(""):"",p()):t&&(y.src=t,h.set(t,g)),(0,d.setAttributesFromProps)(y,e),"worker"===s&&y.setAttribute("type","text/partytown"),y.setAttribute("data-nscript",s),c&&(e=>{if(u.default.preinit)return e.forEach(e=>{u.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(c),document.body.appendChild(y)};function y(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>p(e))}):p(e)}function g(e){e.forEach(y),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");m.add(t)})}function b(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:i=null,strategy:o="afterInteractive",onError:a,stylesheets:d,...h}=e,{updateScripts:y,scripts:g,getIsSsr:b,appDir:v,nonce:w}=(0,l.useContext)(c.HeadManagerContext);w=h.nonce||w;let _=(0,l.useRef)(!1);(0,l.useEffect)(()=>{let e=t||n;_.current||(i&&e&&m.has(e)&&i(),_.current=!0)},[i,t,n]);let C=(0,l.useRef)(!1);if((0,l.useEffect)(()=>{if(!C.current){if("afterInteractive"===o)p(e);else"lazyOnload"===o&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>p(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>p(e))}));C.current=!0}},[e,o]),("beforeInteractive"===o||"worker"===o)&&(y?(g[o]=(g[o]||[]).concat([{id:t,src:n,onLoad:r,onReady:i,onError:a,...h,nonce:w}]),y(g)):b&&b()?m.add(t||n):b&&!b()&&p({...e,nonce:w})),v){if(d&&d.forEach(e=>{u.default.preinit(e,{as:"style"})}),"beforeInteractive"===o)if(!n)return h.dangerouslySetInnerHTML&&(h.children=h.dangerouslySetInnerHTML.__html,delete h.dangerouslySetInnerHTML),(0,s.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...h,id:t}])})`}});else return u.default.preload(n,h.integrity?{as:"script",integrity:h.integrity,nonce:w,crossOrigin:h.crossOrigin}:{as:"script",nonce:w,crossOrigin:h.crossOrigin}),(0,s.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([n,{...h,id:t}])})`}});"afterInteractive"===o&&n&&u.default.preload(n,h.integrity?{as:"script",integrity:h.integrity,nonce:w,crossOrigin:h.crossOrigin}:{as:"script",nonce:w,crossOrigin:h.crossOrigin})}return null}Object.defineProperty(b,"__nextScript",{value:!0});let v=b;("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},64374,e=>{"use strict";var t=e.i(66499),n=e.i(57158),r=e.i(13278),i=e.i(64300),o=e.i(4780),a=class extends o.Subscribable{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,i){let o=t.queryKey,a=t.queryHash??(0,n.hashQueryKeyByOptions)(o,t),s=this.get(a);return s||(s=new r.Query({client:e,queryKey:o,queryHash:a,options:e.defaultQueryOptions(t),state:i,defaultOptions:e.getQueryDefaults(o)}),this.add(s)),s}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,n.matchQuery)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,n.matchQuery)(e,t)):t}notify(e){i.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},s=e.i(40273),u=o,l=class extends u.Subscribable{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#n=new Map,this.#r=0}#t;#n;#r;build(e,t,n){let r=new s.Mutation({client:e,mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#t.add(e);let t=c(e);if("string"==typeof t){let n=this.#n.get(t);n?n.push(e):this.#n.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=c(e);if("string"==typeof t){let n=this.#n.get(t);if(n)if(n.length>1){let t=n.indexOf(e);-1!==t&&n.splice(t,1)}else n[0]===e&&this.#n.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=c(e);if("string"!=typeof t)return!0;{let n=this.#n.get(t),r=n?.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=c(e);if("string"!=typeof t)return Promise.resolve();{let n=this.#n.get(t)?.find(t=>t!==e&&t.state.isPaused);return n?.continue()??Promise.resolve()}}clear(){i.notifyManager.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#n.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,n.matchMutation)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,n.matchMutation)(e,t))}notify(e){i.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return i.notifyManager.batch(()=>Promise.all(e.map(e=>e.continue().catch(n.noop))))}};function c(e){return e.options.scope?.id}var d=e.i(58059),f=e.i(55100),h=class{#i;#o;#a;#s;#u;#l;#c;#d;constructor(e={}){this.#i=e.queryCache||new a,this.#o=e.mutationCache||new l,this.#a=e.defaultOptions||{},this.#s=new Map,this.#u=new Map,this.#l=0}mount(){this.#l++,1===this.#l&&(this.#c=d.focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#d=f.onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#l--,0===this.#l&&(this.#c?.(),this.#c=void 0,this.#d?.(),this.#d=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#o.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#i.build(this,t),i=r.state.data;return void 0===i?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime((0,n.resolveStaleTime)(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(i))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,r){let i=this.defaultQueryOptions({queryKey:e}),o=this.#i.get(i.queryHash),a=o?.state.data,s=(0,n.functionalUpdate)(t,a);if(void 0!==s)return this.#i.build(this,i).setData(s,{...r,manual:!0})}setQueriesData(e,t,n){return i.notifyManager.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;i.notifyManager.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#i;return i.notifyManager.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let r={revert:!0,...t};return Promise.all(i.notifyManager.batch(()=>this.#i.findAll(e).map(e=>e.cancel(r)))).then(n.noop).catch(n.noop)}invalidateQueries(e,t={}){return i.notifyManager.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(i.notifyManager.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,r);return r.throwOnError||(t=t.catch(n.noop)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(n.noop)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let r=this.#i.build(this,t);return r.isStaleByTime((0,n.resolveStaleTime)(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(n.noop).catch(n.noop)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(n.noop).catch(n.noop)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return f.onlineManager.isOnline()?this.#o.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#o}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#s.set((0,n.hashKey)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#s.values()],r={};return t.forEach(t=>{(0,n.partialMatchKey)(e,t.queryKey)&&Object.assign(r,t.defaultOptions)}),r}setMutationDefaults(e,t){this.#u.set((0,n.hashKey)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#u.values()],r={};return t.forEach(t=>{(0,n.partialMatchKey)(e,t.mutationKey)&&Object.assign(r,t.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,n.hashQueryKeyByOptions)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===n.skipToken&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#o.clear()}},m=e.i(6270),p=e.i(79923),y=e.i(35887),g=e.i(84208),b=e.i(98240),v=e.i(76691),w=e.i(41338),_=e.i(31231),C=e.i(73870),C=C,O=e.i(59173),M=e.i(66936),M=M,S=(e,t,n,r,i,o,a,s)=>{let u=document.documentElement,l=["light","dark"];function c(t){var n;(Array.isArray(e)?e:[e]).forEach(e=>{let n="class"===e,r=n&&o?i.map(e=>o[e]||e):i;n?(u.classList.remove(...r),u.classList.add(o&&o[t]?o[t]:t)):u.setAttribute(e,t)}),n=t,s&&l.includes(n)&&(u.style.colorScheme=n)}if(r)c(r);else try{let e=localStorage.getItem(t)||n,r=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(r)}catch(e){}},E=p.createContext(void 0),N={setTheme:e=>{},themes:[]};p.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:i,defaultTheme:o,value:a,themes:s,nonce:u,scriptProps:l})=>{let c=JSON.stringify([n,t,o,e,s,a,r,i]).slice(1,-1);return p.createElement("script",{...l,suppressHydrationWarning:!0,nonce:"u"<typeof window?u:"",dangerouslySetInnerHTML:{__html:`(${S.toString()})(${c})`}})});var k=e.i(87014);let P=({...e})=>{var n;let{theme:r="system"}=null!=(n=p.useContext(E))?n:N;return(0,t.jsx)(k.Toaster,{theme:r,className:"toaster group",closeButton:!0,richColors:!0,duration:4e3,icons:{success:(0,t.jsx)(w.CircleCheckIcon,{className:"size-4"}),info:(0,t.jsx)(_.InfoIcon,{className:"size-4"}),warning:(0,t.jsx)(M.default,{className:"size-4"}),error:(0,t.jsx)(O.OctagonXIcon,{className:"size-4"}),loading:(0,t.jsx)(C.default,{className:"size-4 animate-spin"})},toastOptions:{classNames:{toast:"rounded-lg border shadow-lg",title:"text-[13px] font-medium",description:"text-xs text-muted-foreground",actionButton:"rounded-md bg-brand px-2.5 py-1.5 text-xs font-medium text-brand-foreground transition-colors hover:bg-brand/90",closeButton:"border-border bg-popover text-muted-foreground transition-colors hover:text-foreground"}},style:{"--normal-bg":"hsl(var(--popover))","--normal-text":"hsl(var(--popover-foreground))","--normal-border":"hsl(var(--border))","--success-bg":"hsl(var(--popover))","--success-text":"hsl(var(--popover-foreground))","--success-border":"hsl(var(--success) / 0.6)","--warning-bg":"hsl(var(--popover))","--warning-text":"hsl(var(--popover-foreground))","--warning-border":"hsl(var(--warning) / 0.6)","--error-bg":"hsl(var(--popover))","--error-text":"hsl(var(--popover-foreground))","--error-border":"hsl(var(--destructive) / 0.6)","--border-radius":"var(--radius)"},...e})};e.s(["Providers",0,function({children:e}){let[n]=(0,p.useState)(()=>new h);return(0,p.useEffect)(()=>(0,b.initColorMode)(),[]),(0,p.useEffect)(()=>(0,v.initTerminalFont)(),[]),(0,t.jsx)(m.QueryClientProvider,{client:n,children:(0,t.jsxs)(y.LanguageProvider,{children:[(0,t.jsx)(g.NotificationProvider,{children:e}),(0,t.jsx)(P,{position:"top-right"})]})})}],64374)}]);