forgebadger 0.1.3 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (724) hide show
  1. package/README.md +11 -5
  2. package/dist/gateway/src/cli/init.js +9 -4
  3. package/dist/gateway/src/cli/init.js.map +1 -1
  4. package/dist/gateway/src/config/env.d.ts +0 -7
  5. package/dist/gateway/src/config/env.js +1 -9
  6. package/dist/gateway/src/config/env.js.map +1 -1
  7. package/dist/gateway/src/db/migrations/0129_session_notification_type.sql +4 -0
  8. package/dist/gateway/src/db/migrations/0130_template_adapter_backfill.sql +4 -0
  9. package/dist/gateway/src/db/migrations/0131_single_project_autonomy.sql +7 -0
  10. package/dist/gateway/src/db/migrations/0132_api_format_protocol_values.sql +29 -0
  11. package/dist/gateway/src/db/migrations/0133_copilot_run_trace.sql +16 -0
  12. package/dist/gateway/src/db/migrations/0134_drop_copilot_project_autonomy.sql +5 -0
  13. package/dist/gateway/src/db/migrations/meta/_journal.json +42 -0
  14. package/dist/gateway/src/db/migrations/meta/migration-checksums.json +7 -1
  15. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.d.ts +18 -0
  16. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js +40 -0
  17. package/dist/gateway/src/db/repositories/mcp-session-observation-repository.js.map +1 -0
  18. package/dist/gateway/src/db/repositories/mcp-token-repository.d.ts +2 -1
  19. package/dist/gateway/src/db/repositories/mcp-token-repository.js +7 -1
  20. package/dist/gateway/src/db/repositories/mcp-token-repository.js.map +1 -1
  21. package/dist/gateway/src/db/repositories/model-provider-repository.d.ts +7 -1
  22. package/dist/gateway/src/db/repositories/model-provider-repository.js.map +1 -1
  23. package/dist/gateway/src/db/repositories/notification-repository.js +1 -1
  24. package/dist/gateway/src/db/repositories/notification-repository.js.map +1 -1
  25. package/dist/gateway/src/db/repositories/project-management-repository.d.ts +1 -2
  26. package/dist/gateway/src/db/repositories/project-management-repository.js +6 -6
  27. package/dist/gateway/src/db/repositories/project-management-repository.js.map +1 -1
  28. package/dist/gateway/src/db/repositories/project-manager-repository.d.ts +3 -0
  29. package/dist/gateway/src/db/repositories/project-manager-repository.js +16 -0
  30. package/dist/gateway/src/db/repositories/project-manager-repository.js.map +1 -1
  31. package/dist/gateway/src/db/repositories/project-repository.d.ts +0 -3
  32. package/dist/gateway/src/db/repositories/project-repository.js +0 -16
  33. package/dist/gateway/src/db/repositories/project-repository.js.map +1 -1
  34. package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js +2 -2
  35. package/dist/gateway/src/db/schema.d.ts +160 -34
  36. package/dist/gateway/src/db/schema.js +9 -4
  37. package/dist/gateway/src/db/schema.js.map +1 -1
  38. package/dist/gateway/src/lib/terminal-wheel-input.d.ts +2 -0
  39. package/dist/gateway/src/lib/terminal-wheel-input.js +5 -0
  40. package/dist/gateway/src/lib/terminal-wheel-input.js.map +1 -0
  41. package/dist/gateway/src/mvp0/api.d.ts +1 -1
  42. package/dist/gateway/src/mvp0/api.js +1 -1
  43. package/dist/gateway/src/mvp0/api.js.map +1 -1
  44. package/dist/gateway/src/routes/copilot.js +9 -0
  45. package/dist/gateway/src/routes/copilot.js.map +1 -1
  46. package/dist/gateway/src/routes/mcp-tokens.js +44 -3
  47. package/dist/gateway/src/routes/mcp-tokens.js.map +1 -1
  48. package/dist/gateway/src/routes/model-providers.js +58 -1
  49. package/dist/gateway/src/routes/model-providers.js.map +1 -1
  50. package/dist/gateway/src/routes/project-management.js +0 -21
  51. package/dist/gateway/src/routes/project-management.js.map +1 -1
  52. package/dist/gateway/src/routes/session-hooks.d.ts +2 -2
  53. package/dist/gateway/src/routes/session-hooks.js +50 -53
  54. package/dist/gateway/src/routes/session-hooks.js.map +1 -1
  55. package/dist/gateway/src/routes/sessions.js +1 -3
  56. package/dist/gateway/src/routes/sessions.js.map +1 -1
  57. package/dist/gateway/src/routes/templates.js +3 -3
  58. package/dist/gateway/src/routes/templates.js.map +1 -1
  59. package/dist/gateway/src/runtime/start-gateway.js +1 -3
  60. package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
  61. package/dist/gateway/src/server.d.ts +2 -2
  62. package/dist/gateway/src/server.js +14 -14
  63. package/dist/gateway/src/server.js.map +1 -1
  64. package/dist/gateway/src/services/agent/context-recovery.js +5 -4
  65. package/dist/gateway/src/services/agent/context-recovery.js.map +1 -1
  66. package/dist/gateway/src/services/agent/context.d.ts +9 -8
  67. package/dist/gateway/src/services/agent/context.js +16 -19
  68. package/dist/gateway/src/services/agent/context.js.map +1 -1
  69. package/dist/gateway/src/services/agent/dispatch-supervisor.js +1 -1
  70. package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -1
  71. package/dist/gateway/src/services/agent/followups.js +2 -0
  72. package/dist/gateway/src/services/agent/followups.js.map +1 -1
  73. package/dist/gateway/src/services/agent/llm-client.d.ts +0 -2
  74. package/dist/gateway/src/services/agent/llm-client.js +12 -12
  75. package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
  76. package/dist/gateway/src/services/agent/orchestrator-types.d.ts +1 -0
  77. package/dist/gateway/src/services/agent/orchestrator.js +59 -27
  78. package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
  79. package/dist/gateway/src/services/agent/redaction.js +1 -1
  80. package/dist/gateway/src/services/agent/redaction.js.map +1 -1
  81. package/dist/gateway/src/services/agent/restricted-runs.d.ts +1 -0
  82. package/dist/gateway/src/services/agent/restricted-runs.js +2 -3
  83. package/dist/gateway/src/services/agent/restricted-runs.js.map +1 -1
  84. package/dist/gateway/src/services/agent/run-authorization.d.ts +38 -0
  85. package/dist/gateway/src/services/agent/run-authorization.js +65 -0
  86. package/dist/gateway/src/services/agent/run-authorization.js.map +1 -0
  87. package/dist/gateway/src/services/agent/run-governance.js +7 -2
  88. package/dist/gateway/src/services/agent/run-governance.js.map +1 -1
  89. package/dist/gateway/src/services/agent/run-ledger.d.ts +2 -0
  90. package/dist/gateway/src/services/agent/run-ledger.js +48 -13
  91. package/dist/gateway/src/services/agent/run-ledger.js.map +1 -1
  92. package/dist/gateway/src/services/agent/run-trace.d.ts +25 -0
  93. package/dist/gateway/src/services/agent/run-trace.js +42 -0
  94. package/dist/gateway/src/services/agent/run-trace.js.map +1 -0
  95. package/dist/gateway/src/services/agent/security-policy.js +7 -2
  96. package/dist/gateway/src/services/agent/security-policy.js.map +1 -1
  97. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +17 -0
  98. package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js.map +1 -1
  99. package/dist/gateway/src/services/agent/skills/copilot-skills.js +9 -11
  100. package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
  101. package/dist/gateway/src/services/agent/task-review.js +2 -1
  102. package/dist/gateway/src/services/agent/task-review.js.map +1 -1
  103. package/dist/gateway/src/services/agent/token-estimate.d.ts +36 -0
  104. package/dist/gateway/src/services/agent/token-estimate.js +79 -0
  105. package/dist/gateway/src/services/agent/token-estimate.js.map +1 -0
  106. package/dist/gateway/src/services/agent/tool-availability.d.ts +2 -5
  107. package/dist/gateway/src/services/agent/tool-availability.js +7 -14
  108. package/dist/gateway/src/services/agent/tool-availability.js.map +1 -1
  109. package/dist/gateway/src/services/agent/tool-surface.d.ts +50 -0
  110. package/dist/gateway/src/services/agent/tool-surface.js +78 -0
  111. package/dist/gateway/src/services/agent/tool-surface.js.map +1 -0
  112. package/dist/gateway/src/services/agent/tools/platform-coverage.js +3 -6
  113. package/dist/gateway/src/services/agent/tools/platform-coverage.js.map +1 -1
  114. package/dist/gateway/src/services/agent/tools/platform-management.js +3 -3
  115. package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
  116. package/dist/gateway/src/services/agent/tools/project-manager.js +1 -1
  117. package/dist/gateway/src/services/agent/tools/project-manager.js.map +1 -1
  118. package/dist/gateway/src/services/agent/tools/sessions.js +5 -1
  119. package/dist/gateway/src/services/agent/tools/sessions.js.map +1 -1
  120. package/dist/gateway/src/services/agent/tools/terminal.js +3 -4
  121. package/dist/gateway/src/services/agent/tools/terminal.js.map +1 -1
  122. package/dist/gateway/src/services/channels/channel-diagnostics.js +5 -13
  123. package/dist/gateway/src/services/channels/channel-diagnostics.js.map +1 -1
  124. package/dist/gateway/src/services/channels/channel-identity-service.js +1 -1
  125. package/dist/gateway/src/services/channels/channel-identity-service.js.map +1 -1
  126. package/dist/gateway/src/services/channels/channel-run-scope.d.ts +2 -4
  127. package/dist/gateway/src/services/channels/channel-run-scope.js +33 -20
  128. package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -1
  129. package/dist/gateway/src/services/claude-notification-settings.js +15 -7
  130. package/dist/gateway/src/services/claude-notification-settings.js.map +1 -1
  131. package/dist/gateway/src/services/claude-route/gateway-url.js +1 -1
  132. package/dist/gateway/src/services/claude-route/gateway-url.js.map +1 -1
  133. package/dist/gateway/src/services/cli-config-apply.d.ts +7 -7
  134. package/dist/gateway/src/services/cli-config-apply.js +49 -34
  135. package/dist/gateway/src/services/cli-config-apply.js.map +1 -1
  136. package/dist/gateway/src/services/cli-config.js +3 -2
  137. package/dist/gateway/src/services/cli-config.js.map +1 -1
  138. package/dist/gateway/src/services/cli-notification-settings.js +2 -2
  139. package/dist/gateway/src/services/development/authority.js +2 -5
  140. package/dist/gateway/src/services/development/authority.js.map +1 -1
  141. package/dist/gateway/src/services/development/repair-scope.js +2 -9
  142. package/dist/gateway/src/services/development/repair-scope.js.map +1 -1
  143. package/dist/gateway/src/services/event-bus.d.ts +3 -3
  144. package/dist/gateway/src/services/event-bus.js +1 -1
  145. package/dist/gateway/src/services/event-bus.js.map +1 -1
  146. package/dist/gateway/src/services/mcp/lifecycle-tools.d.ts +3 -0
  147. package/dist/gateway/src/services/mcp/lifecycle-tools.js +29 -0
  148. package/dist/gateway/src/services/mcp/lifecycle-tools.js.map +1 -0
  149. package/dist/gateway/src/services/mcp/lifecycle.d.ts +480 -0
  150. package/dist/gateway/src/services/mcp/lifecycle.js +216 -0
  151. package/dist/gateway/src/services/mcp/lifecycle.js.map +1 -0
  152. package/dist/gateway/src/services/mcp/mcp-server.js +45 -13
  153. package/dist/gateway/src/services/mcp/mcp-server.js.map +1 -1
  154. package/dist/gateway/src/services/notification-dedupe.d.ts +1 -1
  155. package/dist/gateway/src/services/notification-dedupe.js +1 -1
  156. package/dist/gateway/src/services/notification-events.js +10 -12
  157. package/dist/gateway/src/services/notification-events.js.map +1 -1
  158. package/dist/gateway/src/services/notifications/feishu-notification-card.js +2 -2
  159. package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -1
  160. package/dist/gateway/src/services/notifications/feishu-notifications.js +1 -1
  161. package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -1
  162. package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
  163. package/dist/gateway/src/services/opencode-notification-settings.js +1 -1
  164. package/dist/gateway/src/services/platform-commands/actions.js +2 -10
  165. package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
  166. package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
  167. package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
  168. package/dist/gateway/src/services/platform-commands/catalog.js +2 -5
  169. package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
  170. package/dist/gateway/src/services/platform-commands/tool-commands.js +4 -0
  171. package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
  172. package/dist/gateway/src/services/platform-commands/types.d.ts +2 -0
  173. package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +1 -1
  174. package/dist/gateway/src/services/programmatic-terminal-submit.js +75 -28
  175. package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
  176. package/dist/gateway/src/services/project-config-files.d.ts +1 -1
  177. package/dist/gateway/src/services/project-config-files.js +11 -2
  178. package/dist/gateway/src/services/project-config-files.js.map +1 -1
  179. package/dist/gateway/src/services/project-config-render.js +10 -3
  180. package/dist/gateway/src/services/project-config-render.js.map +1 -1
  181. package/dist/gateway/src/services/project-manager/access.js +1 -1
  182. package/dist/gateway/src/services/project-manager/access.js.map +1 -1
  183. package/dist/gateway/src/services/project-manager/management.d.ts +1 -6
  184. package/dist/gateway/src/services/project-manager/management.js +2 -6
  185. package/dist/gateway/src/services/project-manager/management.js.map +1 -1
  186. package/dist/gateway/src/services/project-manager/task-execution.js +0 -3
  187. package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -1
  188. package/dist/gateway/src/services/provider-capabilities.js +7 -7
  189. package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
  190. package/dist/gateway/src/services/runtime-settings.d.ts +2 -3
  191. package/dist/gateway/src/services/runtime-settings.js +1 -17
  192. package/dist/gateway/src/services/runtime-settings.js.map +1 -1
  193. package/dist/gateway/src/services/session-launch-plan.js +1 -1
  194. package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
  195. package/dist/gateway/src/services/session-manager.d.ts +9 -0
  196. package/dist/gateway/src/services/session-manager.js +51 -7
  197. package/dist/gateway/src/services/session-manager.js.map +1 -1
  198. package/dist/gateway/src/services/session-stop-target.js +10 -2
  199. package/dist/gateway/src/services/session-stop-target.js.map +1 -1
  200. package/dist/gateway/src/services/template-git-import.d.ts +1 -1
  201. package/dist/gateway/src/services/template-git-import.js +3 -2
  202. package/dist/gateway/src/services/template-git-import.js.map +1 -1
  203. package/dist/gateway/src/services/terminal-notification-ingestion.js +2 -2
  204. package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -1
  205. package/dist/gateway/src/websocket/events.js +2 -2
  206. package/dist/gateway/src/websocket/events.js.map +1 -1
  207. package/dist/gateway/src/websocket/terminal.d.ts +1 -1
  208. package/dist/gateway/src/websocket/terminal.js +3 -6
  209. package/dist/gateway/src/websocket/terminal.js.map +1 -1
  210. package/dist/runtime/backup.js +1 -1
  211. package/dist/runtime/config.js +2 -2
  212. package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
  213. package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
  214. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +4 -4
  215. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
  216. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
  217. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +4 -4
  218. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
  219. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
  220. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +4 -4
  221. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
  222. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
  223. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +4 -4
  224. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
  225. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
  226. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +4 -4
  227. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
  228. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
  229. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +4 -4
  230. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
  231. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
  232. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +4 -4
  233. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
  234. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
  235. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +4 -4
  236. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
  237. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
  238. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +4 -4
  239. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
  240. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
  241. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +4 -4
  242. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
  243. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
  244. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +4 -4
  245. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
  246. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
  247. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +4 -4
  248. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  249. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  250. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +4 -4
  251. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
  252. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
  253. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +4 -4
  254. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
  255. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
  256. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +4 -4
  257. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
  258. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
  259. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +4 -4
  260. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  261. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  262. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +4 -4
  263. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
  264. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
  265. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +4 -4
  266. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
  267. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  268. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +4 -4
  269. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  270. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  271. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +4 -4
  272. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -1
  273. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +1 -1
  274. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +4 -4
  275. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
  276. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
  277. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +4 -4
  278. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  279. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  280. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +4 -4
  281. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -1
  282. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +1 -1
  283. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +4 -4
  284. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
  285. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
  286. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +4 -4
  287. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
  288. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
  289. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +4 -4
  290. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
  291. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
  292. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +4 -4
  293. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
  294. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
  295. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +4 -4
  296. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
  297. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
  298. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +4 -4
  299. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
  300. package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
  301. package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  302. package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  303. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  304. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  305. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  306. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  307. package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  308. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  309. package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  310. package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  311. package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
  312. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  313. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  314. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  315. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  316. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  317. package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  318. package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
  319. package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +14 -14
  320. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
  321. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
  322. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  323. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +14 -14
  324. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
  325. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
  326. package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
  327. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
  328. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +16 -16
  329. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
  330. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
  331. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  332. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  333. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +16 -16
  334. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
  335. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
  336. package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
  337. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
  338. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +16 -16
  339. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
  340. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
  341. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  342. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  343. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +16 -16
  344. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
  345. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
  346. package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
  347. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
  348. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +16 -16
  349. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
  350. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
  351. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  352. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  353. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +16 -16
  354. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
  355. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
  356. package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
  357. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
  358. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +16 -16
  359. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
  360. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
  361. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  362. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  363. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +16 -16
  364. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
  365. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
  366. package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
  367. package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
  368. package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +17 -17
  369. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
  370. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
  371. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  372. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +17 -17
  373. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
  374. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
  375. package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
  376. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
  377. package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  378. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
  379. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
  380. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
  381. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
  382. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
  383. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  384. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
  385. package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
  386. package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
  387. package/dist/web/standalone/packages/web/.next/server/app/history.rsc +17 -17
  388. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
  389. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
  390. package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  391. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +17 -17
  392. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
  393. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
  394. package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
  395. package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
  396. package/dist/web/standalone/packages/web/.next/server/app/index.rsc +17 -17
  397. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
  398. package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  399. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
  400. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  401. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
  402. package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  403. package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
  404. package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
  405. package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
  406. package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
  407. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
  408. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
  409. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
  410. package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
  411. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
  412. package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
  413. package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
  414. package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  415. package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
  416. package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
  417. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
  418. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
  419. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
  420. package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  421. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  422. package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
  423. package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
  424. package/dist/web/standalone/packages/web/.next/server/app/members.rsc +17 -17
  425. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
  426. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
  427. package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  428. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +17 -17
  429. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
  430. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
  431. package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
  432. package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
  433. package/dist/web/standalone/packages/web/.next/server/app/models.rsc +17 -17
  434. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
  435. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
  436. package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  437. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +17 -17
  438. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
  439. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
  440. package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
  441. package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
  442. package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +17 -17
  443. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
  444. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
  445. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  446. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +17 -17
  447. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
  448. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
  449. package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
  450. package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
  451. package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +17 -17
  452. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
  453. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
  454. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  455. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  456. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +17 -17
  457. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
  458. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
  459. package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
  460. package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
  461. package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +17 -17
  462. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
  463. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
  464. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  465. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  466. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +17 -17
  467. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
  468. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
  469. package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
  470. package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
  471. package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +16 -16
  472. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
  473. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
  474. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  475. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +16 -16
  476. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  477. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
  478. package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  479. package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
  480. package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
  481. package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
  482. package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
  483. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
  484. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
  485. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
  486. package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
  487. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
  488. package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
  489. package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
  490. package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +17 -17
  491. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
  492. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
  493. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  494. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +17 -17
  495. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
  496. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
  497. package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  498. package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
  499. package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +17 -17
  500. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
  501. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
  502. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  503. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +17 -17
  504. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  505. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  506. package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  507. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -1
  508. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +16 -16
  509. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +4 -4
  510. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +3 -3
  511. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  512. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  513. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +16 -16
  514. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_head.segment.rsc +4 -4
  515. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +6 -6
  516. package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +2 -2
  517. package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
  518. package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +16 -16
  519. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
  520. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
  521. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  522. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  523. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +16 -16
  524. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
  525. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
  526. package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
  527. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -1
  528. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +16 -16
  529. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +4 -4
  530. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +3 -3
  531. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  532. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  533. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +16 -16
  534. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +4 -4
  535. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +6 -6
  536. package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +2 -2
  537. package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
  538. package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +17 -17
  539. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
  540. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
  541. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  542. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +17 -17
  543. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
  544. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
  545. package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  546. package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
  547. package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +14 -14
  548. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
  549. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
  550. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  551. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +14 -14
  552. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
  553. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
  554. package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
  555. package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
  556. package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +17 -17
  557. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
  558. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
  559. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  560. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +17 -17
  561. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
  562. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
  563. package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
  564. package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
  565. package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +16 -16
  566. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
  567. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
  568. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  569. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +16 -16
  570. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
  571. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
  572. package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
  573. package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
  574. package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +14 -14
  575. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
  576. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
  577. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  578. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +14 -14
  579. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
  580. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
  581. package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  582. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03inbb0._.js +3 -0
  583. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
  584. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0mvyp71._.js +3 -0
  585. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~hqizj._.js +3 -0
  586. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__13w0f1~._.js +3 -0
  587. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-8y7~8._.js +3 -0
  588. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-gw886._.js +3 -0
  589. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_038nxrj._.js +3 -0
  590. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03n-g57._.js +3 -0
  591. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04xf5q9._.js +3 -0
  592. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055d-ao._.js +3 -0
  593. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05zx7t7._.js +3 -0
  594. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{_12w9fro._.js → _06.zuca._.js} +2 -2
  595. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07xrtbe._.js +3 -0
  596. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09qlnot._.js +3 -0
  597. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +1 -1
  598. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_6knqk._.js +3 -0
  599. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_7nkt6._.js +3 -0
  600. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0aj4ajk._.js +3 -0
  601. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0awj3ix._.js +3 -0
  602. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +3 -0
  603. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eyvq.q._.js +3 -0
  604. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l.3_po._.js +3 -0
  605. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p-i6oy._.js +3 -0
  606. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgkuef._.js +3 -0
  607. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qlo6ux._.js +3 -0
  608. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +1 -1
  609. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +1 -1
  610. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xjjrmf._.js +3 -0
  611. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0xxhxhp._.js +3 -0
  612. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~6bpee._.js +3 -0
  613. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12h5j52._.js +3 -0
  614. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
  615. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
  616. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +1 -1
  617. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
  618. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
  619. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +1 -1
  620. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
  621. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
  622. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +1 -1
  623. package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
  624. package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
  625. package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
  626. package/dist/web/standalone/packages/web/.next/static/chunks/{0txrk44pdmdsw.js → 01-hqvam3w0~~.js} +1 -1
  627. package/dist/web/standalone/packages/web/.next/static/chunks/02net~gj5seu8.js +1 -0
  628. package/dist/web/standalone/packages/web/.next/static/chunks/{0g.jepdilt76o.js → 034bfwrk4dtch.js} +1 -1
  629. package/dist/web/standalone/packages/web/.next/static/chunks/042m5fzwa.5rb.js +1 -0
  630. package/dist/web/standalone/packages/web/.next/static/chunks/04t8.94ylt2j6.js +1 -0
  631. package/dist/web/standalone/packages/web/.next/static/chunks/079pi3esz7ztj.js +1 -0
  632. package/dist/web/standalone/packages/web/.next/static/chunks/07dsa~2xhj7fp.js +1 -0
  633. package/dist/web/standalone/packages/web/.next/static/chunks/084df1q.t96px.js +1 -0
  634. package/dist/web/standalone/packages/web/.next/static/chunks/09-77kwttecp8.js +1 -0
  635. package/dist/web/standalone/packages/web/.next/static/chunks/0ahamdhz5rqd0.js +1 -0
  636. package/dist/web/standalone/packages/web/.next/static/chunks/0aymq5zo45jwo.css +1 -0
  637. package/dist/web/standalone/packages/web/.next/static/chunks/0a~p89jkiv-xy.js +1 -0
  638. package/dist/web/standalone/packages/web/.next/static/chunks/0blz40tkx36ya.js +1 -0
  639. package/dist/web/standalone/packages/web/.next/static/chunks/0bo35rh3et6nh.js +1 -0
  640. package/dist/web/standalone/packages/web/.next/static/chunks/0c3i0-wz63ys6.js +1 -0
  641. package/dist/web/standalone/packages/web/.next/static/chunks/0c3qwax9lt4tx.js +1 -0
  642. package/dist/web/standalone/packages/web/.next/static/chunks/0crxf3wawwn83.js +2 -0
  643. package/dist/web/standalone/packages/web/.next/static/chunks/0gz0he~jrjk8a.js +3 -0
  644. package/dist/web/standalone/packages/web/.next/static/chunks/0j3ve5insz6.3.js +1 -0
  645. package/dist/web/standalone/packages/web/.next/static/chunks/0l-uwd_dr1mbk.js +1 -0
  646. package/dist/web/standalone/packages/web/.next/static/chunks/{0.1mxnjmxr~su.js → 0nxwqjcq79-4u.js} +2 -2
  647. package/dist/web/standalone/packages/web/.next/static/chunks/{0rvmfvjpdwe.w.js → 0p3t7a~kdodga.js} +1 -1
  648. package/dist/web/standalone/packages/web/.next/static/chunks/0rs04qz9_.2h5.js +1 -0
  649. package/dist/web/standalone/packages/web/.next/static/chunks/0sv0hnum1q_mj.js +1 -0
  650. package/dist/web/standalone/packages/web/.next/static/chunks/0tf8lwgh~fndc.js +1 -0
  651. package/dist/web/standalone/packages/web/.next/static/chunks/0wnkj_m4ke__p.js +1 -0
  652. package/dist/web/standalone/packages/web/.next/static/chunks/0xszl0jyt02ly.js +1 -0
  653. package/dist/web/standalone/packages/web/.next/static/chunks/0y8o9-d.39uek.js +1 -0
  654. package/dist/web/standalone/packages/web/.next/static/chunks/0~.y-iqdl1g2v.js +1 -0
  655. package/dist/web/standalone/packages/web/.next/static/chunks/{0b5zptp8.z.nn.js → 0~0f5pw_ezzrh.js} +1 -1
  656. package/dist/web/standalone/packages/web/.next/static/chunks/117spe00n0ln_.js +1 -0
  657. package/dist/web/standalone/packages/web/.next/static/chunks/129g7a~bc67a8.js +1 -0
  658. package/dist/web/standalone/packages/web/.next/static/chunks/13qimumcmf67m.js +1 -0
  659. package/dist/web/standalone/packages/web/.next/static/chunks/15y1w~u~sxuqn.js +1 -0
  660. package/dist/web/standalone/packages/web/.next/static/chunks/16evga~sgvskl.js +1 -0
  661. package/dist/web/standalone/packages/web/.next/static/chunks/1708mw9d18sq2.js +1 -0
  662. package/dist/web/standalone/packages/web/public/forgebadger-runtime.js +1 -1
  663. package/docs/PERSONAL-TEAM-WORKFLOWS.md +6 -6
  664. package/docs/README.zh-CN.md +5 -5
  665. package/docs/README.zh-TW.md +5 -5
  666. package/package.json +1 -1
  667. package/dist/gateway/src/services/adapter-autonomy.d.ts +0 -10
  668. package/dist/gateway/src/services/adapter-autonomy.js +0 -25
  669. package/dist/gateway/src/services/adapter-autonomy.js.map +0 -1
  670. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +0 -3
  671. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +0 -3
  672. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +0 -3
  673. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +0 -3
  674. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +0 -3
  675. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +0 -3
  676. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +0 -3
  677. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +0 -3
  678. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +0 -3
  679. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +0 -3
  680. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +0 -3
  681. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +0 -3
  682. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +0 -3
  683. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +0 -3
  684. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +0 -3
  685. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +0 -3
  686. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +0 -3
  687. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +0 -3
  688. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +0 -3
  689. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +0 -3
  690. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +0 -3
  691. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +0 -3
  692. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +0 -3
  693. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +0 -3
  694. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +0 -3
  695. package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +0 -3
  696. package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +0 -3
  697. package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +0 -1
  698. package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +0 -1
  699. package/dist/web/standalone/packages/web/.next/static/chunks/04iwl3440l6ci.js +0 -1
  700. package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +0 -1
  701. package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +0 -2
  702. package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +0 -1
  703. package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +0 -1
  704. package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +0 -1
  705. package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +0 -1
  706. package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +0 -1
  707. package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +0 -1
  708. package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +0 -1
  709. package/dist/web/standalone/packages/web/.next/static/chunks/0qz-8gatr0e58.js +0 -1
  710. package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +0 -1
  711. package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +0 -1
  712. package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +0 -1
  713. package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +0 -1
  714. package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +0 -1
  715. package/dist/web/standalone/packages/web/.next/static/chunks/0vu012c_~rsq2.js +0 -1
  716. package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +0 -1
  717. package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +0 -1
  718. package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +0 -1
  719. package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +0 -1
  720. package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +0 -1
  721. package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +0 -1
  722. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_buildManifest.js +0 -0
  723. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_clientMiddlewareManifest.js +0 -0
  724. /package/dist/web/standalone/packages/web/.next/static/{RJQQaO6wuaTxGJ_LVnGhM → wkc8XKp3khKRctgTww1hC}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- module.exports=[30429,a=>{"use strict";var b=a.i(20486),c=a.i(13376),d=a.i(72637),e=a.i(85198),f=a.i(39747),g=a.i(4837),h=a.i(26248),i=a.i(76770),j=a.i(60870),k=a.i(23205),l=a.i(14027),m=a.i(76897),n=a.i(57462),o=a.i(97531),p=a.i(78234),q=a.i(35485);let r=(0,q.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"}]]),s=(0,q.default)("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);var t=a.i(62384),u=a.i(97494),v=a.i(4730),w=a.i(12599),x=a.i(94851),y=a.i(13375),z=a.i(56390),A=a.i(21592);let B=(0,q.default)("ClipboardCopy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),C=(0,q.default)("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);var D=a.i(45783);let E=(0,q.default)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var F=a.i(90259),G=a.i(83164),H=a.i(23579),I=a.i(42167);function J(){return(0,e.useSyncExternalStore)(I.subscribeToTerminalFont,I.getTerminalFontState,()=>I.DEFAULT_TERMINAL_FONT)}let K="forgebadger.terminal-toolbar-position";function L(a){try{a?window.localStorage.setItem(K,JSON.stringify(a)):window.localStorage.removeItem(K)}catch{}}var M=a.i(14060),N=a.i(91638),O=a.i(79914),P=a.i(39042);let Q={dark:{background:"#05070a",foreground:"#e5edf7",cursor:"#5cc8ff",cursorAccent:"#05070a",selectionBackground:"rgba(92, 200, 255, 0.3)",black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#ffffff"},light:{background:"#f6f8fa",foreground:"#24292f",cursor:"#0e7490",cursorAccent:"#f6f8fa",selectionBackground:"rgba(8, 110, 168, 0.25)",black:"#24292f",red:"#cf222e",green:"#1a7f37",yellow:"#9a6700",blue:"#0550ae",magenta:"#8250df",cyan:"#0969da",white:"#57606a",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#2da44e",brightYellow:"#bb8009",brightBlue:"#388bfd",brightMagenta:"#8250df",brightCyan:"#1b7c83",brightWhite:"#24292f"}};var R=a.i(39465);function S({sessionId:c,authToken:d,open:f,onClose:g}){let{t:h}=(0,O.useLanguage)(),{resolved:i}=(0,H.useColorMode)(),j=J(),k=(0,e.useRef)(null),l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(j);n.current=j;let o=(0,e.useRef)(null),[p,q]=(0,e.useState)("idle"),[r,s]=(0,e.useState)(""),t=(0,e.useCallback)(async()=>(0,P.fetchJson)(`/api/v1/sessions/${c}/output`),[c]),v=(0,e.useCallback)(a=>{o.current=a;let b=l.current;b&&(b.reset(),a.output&&b.write(a.output))},[]),w=(0,e.useCallback)(async()=>{q("loading"),s("");try{let a=await t();v(a),q("ready")}catch(a){s(a instanceof Error?a.message:String(a)),q("error")}},[t,v]);if((0,e.useEffect)(()=>{if(!f)return;let b=!1;return Promise.all([a.A(35445),a.A(41690),(0,I.ensureTerminalFontLoaded)(n.current.fontFamily)]).then(([a,c])=>{if(b)return;let d=k.current;if(!d)return;let e=new a.Terminal({scrollback:1e5,cursorBlink:!1,fontFamily:n.current.fontFamily,fontSize:n.current.fontSize,theme:Q[document.documentElement.classList.contains("dark")?"dark":"light"]});e.attachCustomKeyEventHandler(()=>!1);let f=new c.FitAddon;e.loadAddon(f),e.open(d),l.current=e,m.current=f,f.fit();let g=o.current;g&&(e.reset(),g.output&&e.write(g.output))}),()=>{b=!0,l.current?.dispose(),l.current=null,m.current=null}},[f]),(0,e.useEffect)(()=>{let a=l.current;a&&(a.options.theme=Q[i])},[i]),(0,e.useEffect)(()=>{let a=l.current;a&&(a.options.fontFamily=j.fontFamily,a.options.fontSize=j.fontSize)},[j.fontFamily,j.fontSize]),(0,e.useEffect)(()=>{if(f){if(!d){q("error"),s(h("terminal.historyLoadFailed"));return}w()}},[f,d,w,h]),(0,e.useEffect)(()=>{if(!f)return;let a=()=>m.current?.fit();a(),window.addEventListener("resize",a);let b="u"<typeof ResizeObserver?null:new ResizeObserver(a),c=k.current;return b&&c&&b.observe(c),()=>{window.removeEventListener("resize",a),b?.disconnect()}},[f]),!f)return null;let x="ready"===p&&(!o.current||0===o.current.lineCount);return(0,b.jsxs)("div",{"data-testid":"session-output-history",className:"absolute inset-0 z-20 flex flex-col overflow-hidden bg-terminal",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 border-b border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:h("terminal.historyOutput")}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon-sm",className:"size-6 text-muted-foreground hover:text-foreground",onClick:()=>void w(),disabled:"loading"===p,title:h("terminal.historyRefresh"),"aria-label":h("terminal.historyRefresh"),children:(0,b.jsx)(M.RefreshCw,{className:(0,R.cn)("size-3.5","loading"===p&&"animate-spin")})}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon-sm",className:"size-6 text-muted-foreground hover:text-foreground",onClick:g,title:h("common.close"),"aria-label":h("common.close"),children:(0,b.jsx)(N.X,{className:"size-3.5"})})]})]}),(0,b.jsxs)("div",{className:"relative min-h-0 flex-1 overflow-hidden p-2",children:[(0,b.jsx)("div",{ref:k,"data-testid":"session-output-history-host",className:"h-full min-h-0 [&_.xterm-cursor]:!opacity-0 [&_.xterm-screen]:!h-full [&_.xterm-viewport]:!h-full [&_.xterm]:h-full"}),"loading"===p&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/50 text-sm text-muted-foreground",children:h("common.loading")}),"error"===p&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/60",children:(0,b.jsxs)("div",{className:"max-w-sm rounded-md border border-destructive/50 bg-destructive/10 p-4 text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:h("terminal.historyLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 break-words text-xs text-destructive/80",children:r}),(0,b.jsx)(u.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void w(),children:h("terminal.historyRefresh")})]})}),x&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:h("terminal.historyEmpty")})]})]})}function T(a,b,c){return Math.min(Math.max(a,b),c)}class U{pendingLines=0;encode(a,b){if(!Number.isFinite(a.deltaY)||0===a.deltaY||a.shiftKey||a.ctrlKey||a.metaKey||b.width<=0||b.height<=0||b.cols<=0||b.rows<=0)return null;let c=b.height/b.rows,d=a.deltaMode===WheelEvent.DOM_DELTA_PIXEL?a.deltaY/(c/2):a.deltaMode===WheelEvent.DOM_DELTA_PAGE?a.deltaY*b.rows:a.deltaY;this.pendingLines+=d;let e=Math.trunc(this.pendingLines);if(0===e)return"";let f=Math.min(Math.abs(e),24);this.pendingLines%=1;let g=T(Math.floor((a.clientX-b.left)/b.width*b.cols)+1,1,b.cols),h=T(Math.floor((a.clientY-b.top)/b.height*b.rows)+1,1,b.rows),i=e<0?64:65;return`\x1b[<${i};${g};${h}M`.repeat(f)}}async function V(a,b=globalThis.navigator?.clipboard){if(!a)return!1;if(b?.writeText)try{return await b.writeText(a),!0}catch{}if("u"<typeof document||"function"!=typeof document.execCommand)return!1;let c=document.activeElement,d=document.createElement("textarea");d.value=a,d.setAttribute("readonly","true"),d.style.position="fixed",d.style.left="-9999px";try{return document.body.appendChild(d),d.select(),document.execCommand("copy")}catch{return!1}finally{d.remove(),c instanceof HTMLElement&&c.isConnected&&c.focus({preventScroll:!0})}}var W=a.i(85564);let X=/\x1b\[[0-9;?]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b[a-zA-Z]/g,Y={moveToolbar:"拖动工具栏(双击或 Home 键复位)",fontSmaller:"减小字号",fontLarger:"增大字号",clear:"清屏",copySelection:"复制选中内容",copyAll:"复制全部",clearAlternate:"全屏 CLI 界面由 CLI 管理,无法清屏",copied:"已复制到剪贴板",copyFailed:"复制失败,请检查浏览器剪贴板权限",copyEmpty:"没有可复制的内容"},Z={moveToolbar:"Drag toolbar (double-click or Home to reset)",fontSmaller:"Decrease font size",fontLarger:"Increase font size",clear:"Clear screen",copySelection:"Copy selection",copyAll:"Copy all",clearAlternate:"The CLI controls this full-screen view; clearing is unavailable",copied:"Copied to clipboard",copyFailed:"Copy failed. Check your browser clipboard permissions",copyEmpty:"There is no text to copy"},$={moveToolbar:"拖動工具列(按兩下或 Home 鍵復位)",fontSmaller:"減小字級",fontLarger:"增大字級",clear:"清屏",copySelection:"複製選取內容",copyAll:"複製全部",clearAlternate:"全螢幕 CLI 畫面由 CLI 管理,無法清屏",copied:"已複製到剪貼簿",copyFailed:"複製失敗,請檢查瀏覽器剪貼簿權限",copyEmpty:"沒有可複製的內容"};function _(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function aa(a,b){a.current?.dispose(),a.current=b}var ab=a.i(73604),ac=a.i(44600);let ad=[1e3,2e3,5e3,1e4,3e4],ae={connecting:"terminal.status.connecting",connected:"terminal.status.connected",reconnecting:"terminal.status.reconnecting",disconnected:"terminal.status.disconnected",failed:"terminal.status.failed"};function af({sessionId:c,authToken:d,attachToken:i,aiTool:j,historyOpen:k=!1,onHistoryClose:m,credentialsPending:n=!1}){let o,p,{t:q}=(0,O.useLanguage)(),r=function(){let{language:a}=(0,O.useLanguage)();return"en"===a?Z:"zh-TW"===a?$:Y}(),{resolved:s}=(0,H.useColorMode)(),t=J(),v=(o=(0,f.useQuery)({queryKey:["session-writer",c],queryFn:()=>(0,G.getSessionWriter)(c),refetchInterval:2e3}),p=(0,g.useMutation)({mutationFn:()=>(0,G.takeoverSession)(c),onSuccess:async()=>{await o.refetch()}}),{readOnly:!o.data||o.isError||"automated"===o.data.mode,loading:o.isPending,error:o.error??p.error,takingOver:p.isPending,takeover:()=>p.mutate(),refresh:()=>void o.refetch()}),w=(0,h.useQueryClient)(),x=(0,e.useRef)(v);x.current=v;let y=(0,e.useRef)(t);y.current=t;let M=(0,e.useRef)(j);M.current=j;let N=(0,e.useRef)(null),T=(0,e.useRef)(null),ag=function(a){let b=(0,e.useRef)(null),c=(0,e.useRef)(null),d=(0,e.useRef)(null),[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null);function j(c,e){let f=a.current,h=b.current;if(!f||!h)return null;let j=f.getBoundingClientRect(),k=h.getBoundingClientRect(),l=Math.max(0,j.width-k.width-16),m=Math.max(0,j.height-k.height-16),n={x:l?Math.min(1,Math.max(0,(c-8)/l)):0,y:m?Math.min(1,Math.max(0,(e-8)/m)):0};return d.current=n,i({width:j.width,height:j.height,toolbarWidth:k.width,toolbarHeight:k.height}),g(n),n}function k(){d.current=null,g(null),L(null)}function l(a){let b=c.current;b&&b.pointerId===a.pointerId&&(c.current=null,b.moved&&L(d.current),a.currentTarget.hasPointerCapture(a.pointerId)&&a.currentTarget.releasePointerCapture(a.pointerId))}return(0,e.useEffect)(()=>{let e=a.current,f=b.current;if(!e||!f)return;let h=()=>{let a=e.getBoundingClientRect(),b=f.getBoundingClientRect();i(c=>c?.width===a.width&&c.height===a.height&&c.toolbarWidth===b.width&&c.toolbarHeight===b.height?c:{width:a.width,height:a.height,toolbarWidth:b.width,toolbarHeight:b.height})};h(),d.current=function(){try{let a=JSON.parse(window.localStorage.getItem(K)??"null");if(!a||"object"!=typeof a||!("x"in a)||!("y"in a)||"number"!=typeof a.x||"number"!=typeof a.y||!Number.isFinite(a.x)||!Number.isFinite(a.y))return null;return{x:Math.min(1,Math.max(0,a.x)),y:Math.min(1,Math.max(0,a.y))}}catch{return null}}(),g(d.current);let j="u"<typeof ResizeObserver?null:new ResizeObserver(h);return j?.observe(e),j?.observe(f),window.addEventListener("resize",h),()=>{j?.disconnect(),window.removeEventListener("resize",h),c.current=null}},[a]),{toolbarRef:b,style:f&&h?{left:8+f.x*Math.max(0,h.width-h.toolbarWidth-16),top:8+f.y*Math.max(0,h.height-h.toolbarHeight-16),right:"auto",bottom:"auto"}:void 0,handleProps:{onPointerDown:function(d){if(0!==d.button||c.current||!b.current||!a.current)return;d.preventDefault(),d.stopPropagation();let e=b.current.getBoundingClientRect(),f=a.current.getBoundingClientRect();c.current={pointerId:d.pointerId,startX:d.clientX,startY:d.clientY,x:e.left-f.left,y:e.top-f.top,moved:!1},d.currentTarget.setPointerCapture(d.pointerId)},onPointerMove:function(a){let b=c.current;if(!b||b.pointerId!==a.pointerId)return;let d=a.clientX-b.startX,e=a.clientY-b.startY;!b.moved&&4>Math.hypot(d,e)||(b.moved=!0,a.preventDefault(),a.stopPropagation(),j(b.x+d,b.y+e))},onPointerUp:l,onKeyDown:function(c){if("Home"===c.key){c.preventDefault(),k();return}let d={ArrowLeft:{x:-10,y:0},ArrowRight:{x:10,y:0},ArrowUp:{x:0,y:-10},ArrowDown:{x:0,y:10}}[c.key];if(!d||!b.current||!a.current)return;c.preventDefault(),c.stopPropagation();let e=b.current.getBoundingClientRect(),f=a.current.getBoundingClientRect();L(j(e.left-f.left+d.x,e.top-f.top+d.y))},onPointerCancel:l,onLostPointerCapture:()=>{c.current=null},onDoubleClick:k}}}(T),ah=(0,e.useRef)(null),ai=(0,e.useRef)(null),aj=(0,e.useRef)(null),ak=(0,e.useRef)(null),al=(0,e.useRef)(0),am=(0,e.useRef)(null),an=(0,e.useRef)(null),ao=(0,e.useRef)(function(a=48){let b="",c="normal";return{push(d){for(let e=0;e<d.length;e+=1){let f=d.charAt(e),g=f.charCodeAt(0);if("\r"===f||"\n"===f){c="normal";let d=function(){let c=b.replace(X," ").replace(/\s+/g," ").trim();return(b="",c.length<2)?null:c.slice(0,a)}();if(null!==d)return d;continue}if("escape"===c){c="["===f?"csi":"O"===f?"ss3":"]"===f?"osc":"P"===f||"_"===f||"^"===f||"X"===f?"string":"normal";continue}if("csi"===c||"ss3"===c){g>=64&&g<=126&&(c="normal");continue}if("osc"===c){"\x07"===f?c="normal":"\x1b"===f&&(c="osc_escape");continue}if("osc_escape"===c){c="\\"===f?"normal":"osc";continue}if("string"===c){"\x1b"===f&&(c="string_escape");continue}if("string_escape"===c){c="\\"===f?"normal":"string";continue}if("\x1b"===f){c="escape";continue}if(""===f||"\b"===f){b=b.slice(0,-1);continue}g>=32&&127!==g&&(b=(b+f).slice(-240))}return null},reset(){b="",c="normal"}}}()),ap=(0,e.useRef)(null),aq=(0,e.useRef)(null),ar=(0,e.useRef)(!0),as=(0,e.useRef)(0),at=(0,e.useRef)(!0),[au,av]=(0,e.useState)("connecting"),[aw,ax]=(0,e.useState)(0),[ay,az]=(0,e.useState)(!1),[aA,aB]=(0,e.useState)(!0),[aC,aD]=(0,e.useState)(!1),[aE,aF]=(0,e.useState)(!1),[aG,aH]=(0,e.useState)(!1),aI=(0,e.useRef)(!1),aJ=(0,e.useRef)(!0),[aK,aL]=(0,e.useState)(null),aM=(0,e.useRef)(null),aN=(0,e.useRef)(0),aO=(0,e.useRef)(q);aO.current=q;let aP=(0,e.useCallback)((a,b,c,d)=>{aN.current+=1,aL({id:aN.current,tone:b,title:c,message:d??""}),null!==aM.current&&clearTimeout(aM.current),aM.current=setTimeout(()=>{aM.current=null,aL(null)},(0,ab.toastDurationFor)(a))},[]),aQ=(0,e.useRef)(aP);aQ.current=aP;let aR=(0,e.useCallback)((a,b)=>{(0,P.updateSessionLastPrompt)(a,b).then(()=>w.invalidateQueries({queryKey:["sessions-board"]})).catch(a=>{console.warn("Failed to report session last prompt",a)})},[w]),aS=(0,e.useCallback)(()=>{null!==ak.current&&(clearTimeout(ak.current),ak.current=null)},[]),aT=(0,e.useCallback)(()=>{let a=ah.current;if(!a)return;let b=a.buffer.active;aF("alternate"===b.type);let c="normal"!==b.type||b.viewportY>=b.baseY;at.current!==c&&(at.current=c,aB(c))},[]),aU=(0,e.useCallback)(()=>{let a=ah.current;if(!a)return;let b=a.buffer.active;"normal"!==b.type||b.viewportY>=b.baseY||Date.now()-as.current<1e4||(a.scrollToBottom(),aT())},[aT]),aV=(0,e.useCallback)(()=>{let a=ah.current;a&&(a.scrollToBottom(),a.focus(),as.current=0,at.current=!0,aB(!0))},[]),aW=(0,e.useCallback)(()=>{var a,b,c;let d=ah.current,e=ai.current;if(!d||!e)return;let f=d.buffer.active,g="normal"===f.type&&f.viewportY>=f.baseY,h=d.cols,i=d.rows;e.fit(),(d.cols>500||d.rows>200)&&d.resize(Math.min(d.cols,500),Math.min(d.rows,200)),g&&(d.cols!==h||d.rows!==i)&&d.scrollToBottom(),aT();let j=aj.current;if(!j||j.readyState!==WebSocket.OPEN)return;let k=ap.current;if(null!==k&&k.cols===d.cols&&k.rows===d.rows)return;let l=(b=(a={cols:d.cols,rows:d.rows}).cols,c=a.rows,Number.isInteger(b)&&Number.isInteger(c)&&b>0&&c>0&&b<=500&&c<=200)?JSON.stringify({type:"terminal_resize",payload:{cols:a.cols,rows:a.rows}}):null;l&&(j.send(l),ap.current={cols:d.cols,rows:d.rows})},[aT]),aX=(0,e.useCallback)(()=>{if(!ar.current||!ay)return;if(!d||!i)return void av(n?"connecting":"disconnected");aq.current=null;let a=new WebSocket((0,ac.terminalWebSocketUrl)(c),(0,ac.terminalWebSocketProtocols)(d,i));aj.current=a,a.addEventListener("open",()=>{ar.current&&aj.current===a&&(al.current=0,ax(0),av("connected"),ap.current=null,aW(),window.setTimeout(()=>{ar.current&&aW()},400))}),a.addEventListener("message",b=>{let c=ah.current;if(!c||!ar.current||aj.current!==a)return;let d=function(a){let b;if("string"!=typeof a)return null;try{b=JSON.parse(a)}catch{return null}if(!_(b)||!_(b.payload))return null;if(("terminal_output"===b.type||"terminal_history"===b.type)&&"string"==typeof b.payload.data){let a=b.payload.sequence;return void 0!==a&&("number"!=typeof a||!Number.isSafeInteger(a)||a<=0)?null:{type:b.type,payload:{data:b.payload.data,...void 0===a?{}:{sequence:a}}}}if("terminal_history_end"===b.type){let a=b.payload.sequence;return void 0!==a&&("number"!=typeof a||!Number.isSafeInteger(a)||a<=0)?null:{type:"terminal_history_end",payload:{data:"",...void 0===a?{}:{sequence:a}}}}return"terminal_exit"===b.type&&"number"==typeof b.payload.exitCode&&Number.isInteger(b.payload.exitCode)?{type:"terminal_exit",payload:{exitCode:b.payload.exitCode}}:"terminal_error"===b.type&&"string"==typeof b.payload.message?{type:"terminal_error",payload:{message:b.payload.message}}:null}(String(b.data));if(!d)return;let e=b=>{void 0===b||ar.current&&aj.current===a&&a.readyState===WebSocket.OPEN&&a.send(JSON.stringify({type:"terminal_ack",payload:{sequence:b}}))};if("terminal_history"===d.type){(aq.current??(aq.current={history:[],live:[]})).history.push(d.payload.data),e(d.payload.sequence);return}if("terminal_history_end"===d.type){e(d.payload.sequence);let a=aq.current;if(aq.current=null,a){c.reset(),aU();let b=a.history.join("");for(let d of(b?c.write(b,()=>aT()):aT(),a.live))aU(),c.write(d,()=>aT())}return}if("terminal_output"===d.type){if(null!==aq.current){aq.current.live.push(d.payload.data),e(d.payload.sequence);return}aU(),c.write(d.payload.data,()=>{aT(),e(d.payload.sequence)})}"terminal_exit"===d.type&&(aq.current=null,aS(),aa(am,null),aj.current=null,a.close(1e3),av("disconnected"),x.current.refresh()),"terminal_error"===d.type&&(x.current.refresh(),c.writeln(`\r
2
- [forgebadger] ${d.payload.message}`))}),a.addEventListener("close",b=>{let c;if(!ar.current||aj.current!==a)return;if(aj.current=null,[1e3,4e3,4403,4404].includes(b.code)||b.wasClean&&![1011,4001].includes(b.code)){aa(am,null),av("disconnected");return}aa(am,null);let d=al.current+1;(al.current=d,ax(d),d>10)?av("failed"):(av("reconnecting"),ak.current=setTimeout(()=>{ak.current=null,aX()},(c=Math.min(d-1,ad.length-1),ad[c])))});let b=ah.current;b&&(aa(am,null),aa(am,b.onData(b=>{if(x.current.readOnly)return;let d=ao.current.push(b);d&&((0,z.setSessionTabPrompt)(c,d),(0,z.notifySessionTabsChanged)(),aR(c,d)),a.readyState===WebSocket.OPEN&&a.send(JSON.stringify({type:"terminal_input",payload:{data:b}}))})))},[c,d,i,n,ay,aW,aS,aU,aT,aR]),aY=(0,e.useCallback)(()=>{aS(),al.current=0,ax(0),aj.current&&(aj.current.close(),aj.current=null),av("connecting"),aX()},[aS,aX]),aZ=(0,e.useCallback)(a=>{(0,I.setTerminalFont)({fontFamily:y.current.fontFamily,fontSize:y.current.fontSize+a})},[]),a$=(0,e.useCallback)(()=>{let a=ah.current;a&&"normal"===a.buffer.active.type&&(a.clearSelection(),a.clear(),aT())},[aT]);(0,e.useEffect)(()=>(aJ.current=!0,()=>{aJ.current=!1}),[]);let a_=(0,e.useCallback)(async a=>{if(!aI.current){if(!a)return void W.toast.info(r.copyEmpty);aI.current=!0,aH(!0);try{let b=await V(a);if(!aJ.current)return;b?W.toast.success(r.copied):W.toast.error(r.copyFailed)}finally{aI.current=!1,aJ.current&&aH(!1)}}},[r]),a0=(0,e.useCallback)(()=>{let a=ah.current;a&&a_(a.getSelection())},[a_]),a1=(0,e.useRef)(a0);a1.current=a0;let a2=(0,e.useCallback)(()=>{let a=ah.current;a&&a_(function(a){let b=a.buffer.active,c=[];for(let d=0;d<b.length;d++){let e=b.getLine(d);if(!e)continue;let f=e.translateToString(!0,0,a.cols);e.isWrapped&&c.length?c[c.length-1]+=f:c.push(f)}return c.join("\n").replace(/\n+$/,"")}(a))},[a_]);(0,e.useEffect)(()=>{let b,c=!1,d=null,e=null,f=null,g=null,h=null,i=new U,j=null,k=null,l=null,m=()=>{null===l&&(l=window.requestAnimationFrame(()=>{l=null,aT()}))},n=a=>{a.deltaY<0&&(as.current=Date.now())},o=window.setTimeout(()=>{Promise.all([a.A(35445),a.A(41690),(0,I.ensureTerminalFontLoaded)(y.current.fontFamily)]).then(([a,l])=>{let o=N.current;if(c||!o)return;let p=new a.Terminal({cursorBlink:!0,fontFamily:y.current.fontFamily,fontSize:y.current.fontSize,theme:Q[document.documentElement.classList.contains("dark")?"dark":"light"]});p.attachCustomKeyEventHandler(a=>{var b;if("keydown"!==a.type)return!0;let c=(b=navigator.platform,!/^(Macintosh|MacIntel|MacPPC|Mac68K)$/.test(b)||"keydown"!==a.type||a.isComposing||!a.altKey||a.ctrlKey||a.metaKey||a.shiftKey?null:"ArrowUp"===a.key?"\x1b[1;3A":"ArrowDown"===a.key?"\x1b[1;3B":null);return null!==c?(a.preventDefault(),p.input(c,!0),!1):!function(a,b){if(!b)return!1;let c="c"===a.key.toLowerCase(),d=a.ctrlKey||a.metaKey,e=a.altKey||a.shiftKey;return c&&d&&!e}(a,p.hasSelection())||(a.preventDefault(),a1.current(),!1)}),p.attachCustomWheelEventHandler(a=>{var b,c;if("codex"===M.current&&"alternate"===p.buffer.active.type&&"none"!==p.modes.mouseTrackingMode){let b=p.element?.querySelector(".xterm-screen"),c=b?.getBoundingClientRect(),d=c?i.encode(a,{left:c.left,top:c.top,width:c.width,height:c.height,cols:p.cols,rows:p.rows}):null;if(null!==d)return a.preventDefault(),d&&p.input(d,!1),!1}return"suppress"!=(b=p.buffer.active.type,c="none"!==p.modes.mouseTrackingMode,"alternate"!==b||c?"allow":"suppress")||(a.preventDefault(),!1)});let q=new l.FitAddon;p.loadAddon(q),p.open(o),b=function(a){let b=a.textarea,c=navigator.userAgent,d=/Macintosh/.test(c)&&/AppleWebKit/.test(c)&&/Safari\//.test(c)&&!/Chrome|Chromium|Edg|OPR|CriOS|FxiOS/.test(c);if(!b||!d)return()=>{};let e=!1,f=!1,g=()=>{e=!1},h=a=>{e=("Shift"===a.key||"CapsLock"===a.key)&&!a.ctrlKey&&!a.altKey&&!a.metaKey},i=()=>{f=!0,g()},j=()=>{f=!1,g()},k=b=>{if(!e||f||b.isComposing||!b.composed||"insertText"!==b.inputType||!b.data||a.options.screenReaderMode)return;let c=a._core;c?._keyDownSeen===!0&&!1===c._keyPressHandled&&(c._keyDownSeen=!1),g()};return b.addEventListener("keydown",h,!0),b.addEventListener("keyup",g,!0),b.addEventListener("blur",g),b.addEventListener("compositionstart",i),b.addEventListener("compositionend",j),b.addEventListener("beforeinput",k),()=>{b.removeEventListener("keydown",h,!0),b.removeEventListener("keyup",g,!0),b.removeEventListener("blur",g),b.removeEventListener("compositionstart",i),b.removeEventListener("compositionend",j),b.removeEventListener("beforeinput",k)}}(p),ah.current=p,ai.current=q,d=p.onScroll(aT),k=p.buffer.onBufferChange(aT),o.addEventListener("scroll",m,{capture:!0}),j=p.onSelectionChange(()=>{aD(p.hasSelection())}),e=p.onBell(()=>{aQ.current("attention","warning",aO.current("terminal.notif.terminalBell"))}),f=p.parser.registerOscHandler(9,a=>{let b=a.trim();return b&&!/^\d+$/.test(b.split(";",1)[0]??"")&&aQ.current("permission_prompt","warning",aO.current("terminal.notif.needsAttention"),b),!0}),g=p.parser.registerOscHandler(99,a=>{if(a.includes("p=?"))return!0;let{alert:b,title:c}=function(a){let b={};for(let c of a.split(";")){let a=c.indexOf("=");if(a<=0)continue;let d=c.slice(0,a).trim(),e=c.slice(a+1).trim();e&&("A"===d?b.alert=e:"T"===d&&(b.title=e))}return b}(a),d=`${c??""} ${b??""}`.toLowerCase(),e=/(error|fail)/.test(d)?"task_failed":/(complete|idle|done)/.test(d)?"task_completed":"permission_prompt";return aQ.current(e,"permission_prompt"===e?"warning":"task_failed"===e?"error":"task_completed"===e?"success":"info",c??aO.current("terminal.notif.needsAttention"),b??c??a),!0}),h=p.parser.registerOscHandler(777,a=>{let b=a.split(";");if((b[0]??"")!=="notify")return!0;let c=(b[1]??"").trim(),d=b.slice(2).join(";").trim();return(c||d)&&aQ.current("permission_prompt","warning",c||aO.current("terminal.notif.needsAttention"),d||void 0),!0}),o.addEventListener("wheel",n,{capture:!0,passive:!0}),window.requestAnimationFrame(()=>{c||(q.fit(),az(!0))})})},0);return()=>{c=!0,b?.(),window.clearTimeout(o),az(!1),d?.dispose(),e?.dispose(),f?.dispose(),g?.dispose(),h?.dispose(),null!==aM.current&&(clearTimeout(aM.current),aM.current=null),aL(null),N.current?.removeEventListener("wheel",n,{capture:!0}),N.current?.removeEventListener("scroll",m,{capture:!0}),null!==l&&window.cancelAnimationFrame(l),j?.dispose(),k?.dispose(),ah.current?.dispose(),ah.current=null,ai.current=null}},[aT]),(0,e.useEffect)(()=>{let a=ah.current;a&&(a.options.theme=Q[s])},[s]),(0,e.useEffect)(()=>{let a=ah.current;if(!a)return;a.options.fontFamily=t.fontFamily,a.options.fontSize=t.fontSize;let b=window.requestAnimationFrame(aW);return()=>window.cancelAnimationFrame(b)},[t.fontFamily,t.fontSize,ay,aW]),(0,e.useEffect)(()=>{if(ay)return d&&i?(ar.current=!0,av("connecting"),aX(),()=>{ar.current=!1,aS(),aa(am,null),aj.current&&(aj.current.close(),aj.current=null)}):void av(n?"connecting":"disconnected")},[d,i,n,aX,aS,ay]),(0,e.useEffect)(()=>{if(!ay)return;let a=()=>aW(),b=()=>{"visible"===document.visibilityState&&aW()};a(),window.addEventListener("resize",a),document.addEventListener("visibilitychange",b),an.current=a;let c="u"<typeof ResizeObserver?null:new ResizeObserver(a),d=N.current;return c&&d&&(c.observe(d),d.parentElement&&c.observe(d.parentElement)),()=>{window.removeEventListener("resize",a),document.removeEventListener("visibilitychange",b),c?.disconnect(),an.current=null}},[ay,aW]);let a3="connected"!==au,a4=q(ae[au]),a5=(!d||!i)&&!n,a6="connected"===au?"bg-emerald-500":"reconnecting"===au?"bg-amber-400":"failed"===au?"bg-red-500":"bg-muted-foreground",a7=aK?ab.toneIcons[aK.tone]:null;return(0,b.jsxs)("div",{"data-testid":"terminal-frame",className:(0,R.cn)("grid h-full min-h-0 overflow-hidden bg-terminal",a5?"grid-rows-[auto_minmax(0,1fr)]":"grid-rows-[minmax(0,1fr)]"),children:[a5&&(0,b.jsx)("div",{className:"p-4 text-sm text-destructive",children:q("terminal.missingCredentials")}),(0,b.jsxs)("div",{ref:T,className:"relative flex h-full min-h-0 flex-col overflow-hidden p-2 pb-12",children:[!a3&&(0,b.jsx)("span",{"aria-live":"polite",className:"sr-only",children:a4}),(a3||v.readOnly)&&(0,b.jsxs)("div",{className:"pointer-events-none absolute inset-x-0 top-12 z-20 flex flex-col items-stretch gap-2 p-2",children:[a3&&(0,b.jsxs)("div",{className:"pointer-events-auto flex min-w-0 flex-wrap items-center gap-2 rounded-md border border-border bg-terminal/85 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,R.cn)("size-2 rounded-full",a6),"aria-hidden":"true"}),(0,b.jsx)("span",{"aria-live":"polite",children:a4}),aw>0&&(0,b.jsxs)("span",{className:"text-amber-600 dark:text-amber-300",children:[aw,"/",10]}),(0,b.jsxs)("span",{className:"min-w-0 truncate font-mono",children:["session ",c]})]}),v.readOnly&&(0,b.jsxs)("div",{className:"pointer-events-auto flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-terminal/85 p-2 text-xs text-amber-600 dark:text-amber-300",role:"status",children:[(0,b.jsx)("span",{children:q(v.loading?"terminal.writer.checking":v.error?"terminal.writer.syncFailed":"terminal.writer.copilotReadOnly")}),(0,b.jsx)(u.Button,{size:"sm",variant:"outline",disabled:v.loading||v.takingOver,onClick:v.takeover,children:q("terminal.writer.takeover")}),(0,b.jsx)(u.Button,{size:"sm",variant:"ghost",onClick:v.refresh,children:q("terminal.writer.refresh")}),v.error&&(0,b.jsx)("span",{role:"alert",children:v.error.message})]})]}),(0,b.jsx)("div",{ref:N,"data-testid":"terminal-host",title:q("terminal.selectionHint"),className:"min-h-0 flex-1 [&_.xterm-screen]:!h-full [&_.xterm-viewport]:!h-full [&_.xterm]:h-full"}),(0,b.jsxs)("div",{ref:ag.toolbarRef,style:ag.style,"data-testid":"terminal-toolbar","aria-busy":aG,onMouseDown:a=>{0===a.button&&a.target instanceof Element&&a.target.closest("button")&&a.preventDefault()},className:"absolute right-2 top-2 z-10 flex w-max max-w-[calc(100%-1rem)] flex-wrap items-center gap-0.5 rounded-md border border-border bg-terminal/85 px-1 py-0.5 shadow-sm backdrop-blur-sm",children:[(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 touch-none cursor-grab select-none active:cursor-grabbing","aria-label":r.moveToolbar,title:r.moveToolbar,"data-testid":"terminal-toolbar-drag-handle",...ag.handleProps,children:(0,b.jsx)(D.GripVertical,{className:"size-3.5"})}),(0,b.jsx)("span",{role:"status","aria-label":a4,title:a4,className:(0,R.cn)("mx-0.5 size-2 shrink-0 rounded-full",a6)}),j?(0,b.jsx)("span",{className:"hidden px-1 font-mono text-[10px] uppercase tracking-wide text-muted-foreground sm:inline",children:j}):null,(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.fontSmaller,title:r.fontSmaller,disabled:t.fontSize<=I.MIN_TERMINAL_FONT_SIZE,onClick:()=>aZ(-1),children:(0,b.jsxs)("span",{className:"flex items-center gap-px",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold leading-none",children:"A"}),(0,b.jsx)(E,{className:"size-2.5"})]})}),(0,b.jsx)("span",{className:"hidden w-6 text-center text-[10px] tabular-nums text-muted-foreground sm:inline",children:t.fontSize}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.fontLarger,title:r.fontLarger,disabled:t.fontSize>=I.MAX_TERMINAL_FONT_SIZE,onClick:()=>aZ(1),children:(0,b.jsxs)("span",{className:"flex items-center gap-px",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold leading-none",children:"A"}),(0,b.jsx)(F.Plus,{className:"size-2.5"})]})}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.clear,title:aE?r.clearAlternate:r.clear,disabled:!ay||aE,onClick:a$,children:(0,b.jsx)(C,{className:"size-3.5"})}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.copySelection,title:r.copySelection,disabled:!ay||!aC||aG,onClick:a0,children:(0,b.jsx)(l.Copy,{className:"size-3.5"})}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.copyAll,title:r.copyAll,disabled:!ay||aG,onClick:a2,children:(0,b.jsx)(B,{className:"size-3.5"})})]}),aK&&a7&&(0,b.jsxs)("div",{role:"status","aria-live":"polite",className:(0,R.cn)("absolute left-1/2 top-12 z-20 flex max-w-[80%] -translate-x-1/2 items-start gap-2 rounded-md border bg-popover px-3 py-2 text-xs shadow-lg",ab.toneAccentClassNames[aK.tone]),children:[(0,b.jsx)(a7,{"aria-hidden":"true",className:(0,R.cn)("mt-0.5 shrink-0",ab.toneIconClassNames[aK.tone])}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"font-medium",children:aK.title}),aK.message&&(0,b.jsx)("p",{className:"mt-0.5 break-words text-muted-foreground",children:aK.message})]})]},aK.id),!aA&&(0,b.jsxs)(u.Button,{type:"button",size:"sm",variant:"secondary",onClick:aV,className:"absolute bottom-12 right-4 z-10 gap-1 shadow md:bottom-4","aria-label":q("terminal.backToBottom"),children:[(0,b.jsx)(A.ArrowDown,{className:"size-3.5"}),q("terminal.backToBottom")]}),k&&(0,b.jsx)(S,{sessionId:c,authToken:d,open:k,onClose:()=>m?.()}),"reconnecting"===au&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/70 z-10",children:(0,b.jsx)("div",{className:"text-center",children:(0,b.jsxs)("p",{className:"text-yellow-400 text-sm font-mono",children:[q("terminal.reconnecting"),"… (",aw,"/",10,")"]})})}),"failed"===au&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/80 z-10",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-red-400 text-sm font-mono mb-3",children:q("terminal.connectionLost")}),(0,b.jsx)(u.Button,{variant:"outline",size:"sm",onClick:aY,className:"text-red-400 border-red-400/50 hover:bg-red-400/10",children:q("terminal.reconnect")})]})})]})]})}var ag=a.i(29649),ah=a.i(89738),ai=a.i(26421),aj=a.i(6391),ak=a.i(91155);function al({sessionId:a}){let{language:c}=(0,O.useLanguage)(),d="en"===c,e=(0,ak.localeForLanguage)(c),g=(0,f.useQuery)({queryKey:["session-summary",a],queryFn:()=>(0,P.fetchJson)(`/api/v1/sessions/${encodeURIComponent(a)}/summary`),refetchInterval:5e3,refetchIntervalInBackground:!1,retry:!1}),h=g.data?.summary,i=g.data?.latestResult,j=g.data?.workState;return(0,b.jsxs)("details",{className:"shrink-0 border-b border-border bg-muted/20 px-3 py-2 text-sm","data-testid":"session-summary",children:[(0,b.jsxs)("summary",{className:"cursor-pointer text-muted-foreground",children:[d?"Latest session progress":"会话最新进度",j?` \xb7 ${"working"===j?d?"Working":"执行中":"idle"===j?d?"Idle":"空闲":d?"Current progress unknown":"当前进度未知"}`:""]}),(0,b.jsxs)("div",{className:"max-h-64 space-y-2 overflow-auto py-2",children:[g.isPending&&(0,b.jsx)("p",{role:"status",children:d?"Loading…":"正在读取…"}),g.isError&&(0,b.jsx)("p",{role:"alert",children:d?"Could not load the session summary.":"无法读取会话摘要。"}),g.data&&!h&&!i&&(0,b.jsx)("p",{children:d?"No observations captured. Restart the CLI to load updated hooks.":"尚未采集到观察记录,CLI 需重新启动以加载更新后的 hooks。"}),h?.request&&(0,b.jsxs)("p",{className:"break-words",children:[d?"Current request: ":"当前请求:",h.request]}),h?.progress.map((a,c)=>(0,b.jsx)("p",{className:"break-words",children:a.text},`${c}:${a.text}`)),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[d?"Latest recorded round":"最近记录的轮次"," · ",new Date(i.observedAt).toLocaleString(e)]}),(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:i.error?.text??i.result?.text??(d?"Round result not captured.":"未采集到本轮结果。")}),i.result&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Source: CLI final reply":"来源:CLI 最终回复"}),i.error&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Source: CLI error event":"来源:CLI 错误事件"}),"exact_turn"!==i.identityQuality&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Round identity unconfirmed; event excerpt only.":"轮次未确认,仅展示本次事件摘录。"}),i.verification.length?i.verification.map((a,c)=>(0,b.jsx)("p",{className:"break-words",children:a.text},`${c}:${a.text}`)):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"No command verification evidence captured.":"未采集到命令验证证据。"})]}),h&&(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[d?"Last observation: ":"最后观察:",new Date(h.observedAt).toLocaleString(e)]})]})]})}var am=a.i(91569),an=a.i(94588),ao=a.i(76344);let ap=new Set(P.runtimeAdapterIds);function aq({aiTool:a}){let{t:c}=(0,O.useLanguage)(),d=(0,O.useUiLocale)(),g=ap.has(a),h=P.CLI_ACCOUNT_ADAPTERS.includes(a)?a:null,i=(0,f.useQuery)({queryKey:["applied-provider",a],queryFn:()=>(0,P.getAppliedProviderForAdapter)(a),enabled:g,retry:!1}),j=i.data?.appliedProvider??null,k=j?.providerProfileId,l=(0,f.useQuery)({queryKey:["provider-balance",k],queryFn:()=>(0,P.checkProviderBalance)(k),enabled:!!k,refetchInterval:6e4,refetchOnWindowFocus:!0,retry:!1}),[m,n]=(0,e.useState)(!1),o=(0,f.useQuery)({queryKey:["cli-account",a],queryFn:async()=>(await (0,P.getCliAccount)(h)).overview,enabled:null!==h,refetchInterval:6e4,retry:!1}),p=o.data?.login??null,q=o.data?.quota,r=p?.state==="ready"&&!!(q?.supported&&q.entries.length>0),s=p&&"ready"===p.state?(0,an.loginMethodLabel)(p.method,c):void 0,t=!!j,v=null!==h&&p?.state==="ready",w=t&&v,x=w&&j?j.providerName:null,y=w?`${c("sessions.providerQuotaNative")}${s?` \xb7 ${s}`:""}`:null,z=null!==h&&null!==p&&("ready"===p.state||!t&&"not_authenticated"===p.state);if(!g)return null;let A=l.data,B=l.isFetching;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"provider-quota-panel",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(am.Gauge,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"shrink-0",children:c("sessions.providerQuota")}),j?(0,b.jsx)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",title:j.providerName,children:j.providerName}):null,r?(0,b.jsxs)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",title:s?`${c("sessions.providerQuotaNative")} \xb7 ${s}`:c("sessions.providerQuotaNative"),children:[c("sessions.providerQuotaNative"),s?` \xb7 ${s}`:""]}):null]}),(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-1",children:k||z?(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:B||m,onClick:()=>{k&&l.refetch(),h&&z&&(n(!0),(0,P.refreshCliAccountQuota)(h).then(()=>o.refetch()).catch(()=>W.toast.error(c("models.cliAccountQuotaRefreshFailed"))).finally(()=>n(!1)))},"aria-label":c("sessions.providerQuotaRefresh"),title:c("sessions.providerQuotaRefresh"),children:(0,b.jsx)(M.RefreshCw,{className:(0,R.cn)("size-3",(B||m)&&"animate-spin")})}):null})]}),j?(0,b.jsx)(ar,{label:x,children:l.error?(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:c("sessions.providerQuotaLoadFailed")}):A?A.supported?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{className:"mt-3 space-y-2",children:A.balances.map(a=>(0,b.jsx)(at,{entry:a},a.label))}),(0,b.jsxs)("p",{className:"mt-2 text-right text-[10px] text-muted-foreground/60 tabular-nums",children:[c("sessions.providerQuotaCheckedAt")," ",new Date(A.checkedAt).toLocaleTimeString(d),B&&" ·…"]})]}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c("sessions.providerQuotaUnsupported")}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"…"})}):null,h&&(w||!j)?(0,b.jsx)(ar,{label:y,children:(0,b.jsx)(as,{adapter:h,login:p,quota:q,failed:!!o.error,t:c})}):j?null:(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c("sessions.providerQuotaEmpty")})]})}function ar({label:a,children:c}){return a?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mt-3 text-[10px] font-medium text-muted-foreground/80",children:a}),c]}):(0,b.jsx)(b.Fragment,{children:c})}function as({adapter:a,login:c,quota:d,failed:e,t:f}){let g=(0,O.useUiLocale)();if(!c)return(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:e?f("sessions.providerQuotaEmpty"):"…"});if("not_authenticated"===c.state)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:f("sessions.providerQuotaEmpty")}),(0,b.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground/70",title:f(an.LOGIN_HINT_KEYS[a]),children:f(an.LOGIN_HINT_KEYS[a])})]});if("ready"===c.state&&d){if(d.supported&&d.entries.length>0)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(an.CliQuotaSummary,{quota:d,t:f})}),(0,b.jsxs)("p",{className:"mt-2 text-right text-[10px] text-muted-foreground/60 tabular-nums",children:[f("sessions.providerQuotaCheckedAt")," ",new Date(d.fetchedAt).toLocaleTimeString(g)]})]});if(!d.supported&&d.unsupportedReason)return(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(an.CliQuotaSummary,{quota:d,t:f})})}return(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:f("sessions.providerQuotaEmpty")})}function at({entry:a}){let{t:c}=(0,O.useLanguage)(),d=(0,O.useUiLocale)(),e=(0,ao.quotaUsagePercent)(a);return(0,b.jsxs)("li",{className:"rounded-md border border-border/70 bg-muted/10 px-2.5 py-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-xs text-muted-foreground",children:a.label}),null!==e?(0,b.jsxs)("span",{className:(0,R.cn)("shrink-0 text-sm font-semibold tabular-nums",(0,ao.quotaTextToneClass)(e)),title:`${c("sessions.providerQuotaUsed")} ${e}%`,children:[e,(0,b.jsx)("span",{className:"text-[10px] font-normal",children:"%"})]}):(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] tabular-nums",children:[(0,ao.formatQuotaAmount)(a.remaining)," ",a.unit]})]}),null!==e&&(0,b.jsx)("div",{className:"mt-1.5 h-2 overflow-hidden rounded-full bg-muted/60",role:"progressbar","aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`${a.label} ${c("sessions.providerQuotaUsed")} ${e}%`,title:`${c("sessions.providerQuotaUsed")} ${e}%`,children:(0,b.jsx)("div",{className:(0,R.cn)("h-full rounded-full transition-[width] duration-700 ease-out",(0,ao.quotaBarToneClass)(e)),style:{width:`${e}%`}})}),(void 0!==a.limit||"%"===a.unit||a.resetsAt)&&(0,b.jsxs)("div",{className:"mt-1 flex items-center justify-between gap-2 text-[10px] text-muted-foreground/70",children:[void 0!==a.limit?(0,b.jsxs)("span",{className:"font-mono tabular-nums",children:[(0,ao.formatQuotaAmount)(a.remaining)," / ",(0,ao.formatQuotaAmount)(a.limit)," ",a.unit]}):"%"===a.unit?(0,b.jsxs)("span",{className:"font-mono tabular-nums",children:[c("sessions.providerQuotaRemaining")," ",(0,ao.formatQuotaAmount)(a.remaining),"%"]}):(0,b.jsx)("span",{}),a.resetsAt&&(0,b.jsxs)("span",{className:"shrink-0 tabular-nums",children:[c("sessions.providerQuotaResetAt"),": ",new Date(a.resetsAt).toLocaleString(d)]})]})]})}var au=a.i(14365),av=a.i(99350),aw=a.i(6707),ax=a.i(27025);function ay(){let{t:a}=(0,O.useLanguage)(),f=(0,c.useRouter)(),{notifications:g,unreadCount:h,markRead:i,markAllRead:j}=(0,aw.useNotifications)(),[k,l]=(0,e.useState)(!1),m=g.slice(0,8),n={project:a("notifications.projectContext"),session:a("notifications.sessionContext"),cli:a("notifications.cliContext")};return(0,b.jsxs)(av.Popover,{open:k,onOpenChange:l,children:[(0,b.jsx)(av.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)(u.Button,{variant:"ghost",size:"icon",className:"relative size-8 text-muted-foreground hover:text-foreground","aria-label":a("notifications.title"),title:a("notifications.title"),children:[(0,b.jsx)(au.Bell,{className:"size-4"}),h>0&&(0,b.jsx)("span",{className:"absolute right-0.5 top-0.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-destructive px-0.5 text-[9px] font-semibold text-destructive-foreground",children:h>99?"99+":h})]})}),(0,b.jsxs)(av.PopoverContent,{align:"end",className:"w-80 p-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a("notifications.title")}),h>0&&(0,b.jsx)("button",{type:"button",className:"text-[11px] text-muted-foreground transition-colors hover:text-foreground",onClick:()=>j(),children:a("notifications.markAllRead")})]}),(0,b.jsx)("div",{className:"max-h-72 overflow-y-auto",children:0===m.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:a("notifications.emptyTitle")}):m.map(c=>(0,b.jsxs)("button",{type:"button",className:"flex w-full flex-col gap-0.5 border-b border-border/50 px-3 py-2 text-left transition-colors last:border-b-0 hover:bg-muted/40",onClick:()=>{i(c.id),l(!1),f.push(c.href)},children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-medium",children:[!c.read&&(0,b.jsx)("span",{className:"size-1.5 shrink-0 rounded-full bg-primary","aria-hidden":"true"}),a(c.titleKey)]}),(0,b.jsx)("span",{className:"line-clamp-2 text-[11px] text-muted-foreground",children:c.message}),(0,ax.notificationContextParts)(c,n).length>0&&(0,b.jsx)("span",{className:"truncate text-[10px] text-muted-foreground/75",children:(0,ax.notificationContextParts)(c,n).join(" · ")})]},c.id))}),(0,b.jsx)("div",{className:"border-t border-border px-3 py-2",children:(0,b.jsx)(d.default,{href:"/notifications",className:"text-[11px] text-muted-foreground transition-colors hover:text-foreground",onClick:()=>l(!1),children:a("notifications.viewAll")})})]})]})}let az=/\b(?:sk-[A-Za-z0-9_-]{6,}|Bearer\s+[A-Za-z0-9._~+/=-]+|(?:FORGEBADGER|OPENFORGE)_ATTACH_TOKEN=|api[_-]?key\s*[:=]|token\s*[:=]|password\s*[:=]|secret\s*[:=])/iu,aA=/\b(?:todo|tbd|fixme|xxx|placeholder)\b/iu,aB=/(?:^|\n)\s*(?:[$#>]\s+\S+|[A-Z0-9_]+=[^\s]+\s+\S+)|\x1b\[[0-9;]*[A-Za-z]/u;function aC(a){return 0===a.length?"- None recorded":a.map(a=>`- ${a}`).join("\n")}let aD={stoppedTitle:"会话已停止",stoppedMessage:"会话已停止。点击下方「启动」按钮重新打开终端。"},aE={stoppedTitle:"Session stopped",stoppedMessage:"This session is stopped. Use the Start button below to reopen its terminal."},aF={stoppedTitle:"會話已停止",stoppedMessage:"會話已停止。點擊下方「啟動」按鈕重新開啟終端。"};function aG({sessionId:a,sessionName:c}){let{t:e}=(0,O.useLanguage)();return(0,b.jsxs)("div",{"data-testid":"session-fallback-header",className:"flex flex-wrap items-center justify-between gap-3 border-b border-border pl-16 pr-4 py-3 md:pl-4",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(u.Button,{asChild:!0,variant:"ghost",size:"sm",children:(0,b.jsxs)(d.default,{href:"/sessions",children:[(0,b.jsx)(i.ArrowLeft,{className:"size-4"}),e("sessions.back")]})}),(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:c??`Session ${a}`}),c?(0,b.jsx)("span",{className:"hidden max-w-40 truncate font-mono text-xs text-muted-foreground sm:inline",title:a,children:a}):null]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,b.jsx)(ay,{})})]})}function aH({sessionId:a,sessionName:c,title:e,message:f,hint:g,action:h,tone:i="destructive"}){let{t:j}=(0,O.useLanguage)();return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[(0,b.jsx)(aG,{sessionId:a,sessionName:c}),c&&(0,b.jsx)(al,{sessionId:a}),(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,b.jsxs)("div",{className:(0,R.cn)("max-w-md rounded-lg border p-6 text-center","warning"===i?"border-amber-500/50 bg-amber-500/10":"muted"===i?"border-border/70 bg-muted/30":"border-destructive/50 bg-destructive/10"),children:[(0,b.jsx)("h2",{className:(0,R.cn)("text-lg font-semibold","warning"===i?"text-amber-500":"muted"===i?"text-foreground":"text-destructive"),children:e}),f?(0,b.jsxs)("p",{className:"mt-2 text-sm text-muted-foreground",children:[f," ",g??""]}):null,(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap justify-center gap-2",children:[h,(0,b.jsx)(u.Button,{asChild:!0,variant:"outline",size:"sm",children:(0,b.jsx)(d.default,{href:"/sessions",children:j("sessions.backToSessions")})})]})]})})]})}function aI({projectId:a,session:c,taskPacket:d,taskPacketError:e,taskPacketFetching:f}){return(0,b.jsx)("aside",{className:"hidden min-h-0 overflow-auto border-t border-border bg-background/95 p-3 lg:block lg:border-l lg:border-t-0",children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(aJ,{error:e,isFetching:f,session:c,taskPacket:d}),c?.aiTool?(0,b.jsx)(aq,{aiTool:c.aiTool}):null,a?(0,b.jsx)(aj.GitChangesPanel,{projectId:a}):null]})})}function aJ({error:a,isFetching:c,session:e,taskPacket:f}){var g,h;let{t:i}=(0,O.useLanguage)();if(a)return(0,b.jsxs)("section",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-destructive",children:[(0,b.jsx)(k.ClipboardList,{className:"size-4"}),i("sessions.taskPacketHandoff")]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:i("sessions.taskPacketLoadFailed")})]});if(!f)return c?(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(k.ClipboardList,{className:"size-4 text-muted-foreground"}),i("sessions.taskPacketHandoff")]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:i("sessions.taskPacketLoading")})]}):null;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"session-task-packet-handoff",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(k.ClipboardList,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate",children:i("sessions.taskPacketHandoff")})]}),(0,b.jsx)(v.Badge,{variant:"completed"===(g=f.queueStatus)?"default":"blocked"===g?"destructive":"running"===g||"waiting_for_review"===g?"secondary":"outline",children:(h=f.queueStatus,i({planned:"sessions.taskPacketQueuePlanned",running:"sessions.taskPacketQueueRunning",waiting_for_review:"sessions.taskPacketQueueWaitingForReview",blocked:"sessions.taskPacketQueueBlocked",completed:"sessions.taskPacketQueueCompleted",cancelled:"sessions.taskPacketQueueCancelled"}[h]))})]}),(0,b.jsx)("p",{className:"mt-2 text-xs leading-5 text-muted-foreground",children:i("sessions.taskPacketHandoffDescription")}),(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(aM,{label:i("sessions.taskPacketWorkItem"),value:f.title})}),f.prompt.trim()?(0,b.jsxs)("details",{className:"mt-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer select-none text-xs text-muted-foreground",children:i("sessions.taskPacketPrompt")}),(0,b.jsx)("pre",{className:"mt-1 max-h-44 overflow-auto whitespace-pre-wrap rounded-md border border-border/70 bg-muted/20 p-2 text-xs leading-5",children:f.prompt})]}):null,f.acceptanceCriteria.length>0?(0,b.jsx)(aN,{title:i("sessions.taskPacketAcceptanceCriteria"),values:f.acceptanceCriteria}):null,f.expectedVerification.length>0?(0,b.jsx)(aN,{title:i("sessions.taskPacketExpectedVerification"),values:f.expectedVerification}):null,f.evidenceRequirements.length>0?(0,b.jsx)(aN,{title:i("sessions.taskPacketEvidenceRequirements"),values:f.evidenceRequirements}):null,(0,b.jsx)(u.Button,{asChild:!0,variant:"outline",size:"sm",className:"mt-3 w-full justify-start",children:(0,b.jsxs)(d.default,{href:(0,ai.sessionTaskPacketProjectManagerHref)(f),children:[(0,b.jsx)(n.ExternalLink,{className:"mr-2 size-3"}),i("sessions.taskPacketOpenWorkItem")]})}),e&&(0,b.jsx)(aK,{session:e,taskPacket:f})]})}function aK({session:a,taskPacket:c}){let{t:d}=(0,O.useLanguage)(),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(""),[n,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(null),[s,v]=(0,e.useState)(!1),[x,y]=(0,e.useState)(()=>new Date().toISOString()),z=(0,e.useMemo)(()=>({generatedAt:x,openReviewItems:n,operatorNotes:h,session:a,taskPacket:c,verificationNotes:j}),[x,n,h,a,c,j]),A=(0,e.useMemo)(()=>{let a,b;return a=new Set,z.operatorNotes.trim()||a.add("operator_notes_required"),z.verificationNotes.trim()||a.add("verification_notes_required"),b=[z.taskPacket.title,z.taskPacket.prompt,...z.taskPacket.acceptanceCriteria,...z.taskPacket.expectedVerification,...z.taskPacket.evidenceRequirements,z.operatorNotes,z.verificationNotes,z.openReviewItems].join("\n"),az.test(b)&&a.add("secret_like_value"),aA.test(b)&&a.add("placeholder_text"),aB.test(b)&&a.add("raw_terminal_dump"),Array.from(a)},[z]),B=(0,e.useMemo)(()=>{var a;let b,c;return 0===A.length?[`# Session Handoff: ${z.taskPacket.title}`,"\n## Metadata",`- Generated at: ${z.generatedAt}`,`- Project: ${z.taskPacket.projectId}`,`- Work item: ${z.taskPacket.workItemId}`,`- Session: ${z.session.id}`,`- Session status: ${z.session.status}`,`- Runtime: ${z.taskPacket.runtime.adapter} / ${z.taskPacket.runtime.templateId}`,`- Queue status: ${z.taskPacket.queueStatus}`,"\n## Task Prompt",(b=Math.max(0,...Array.from((a=z.taskPacket.prompt).matchAll(/`+/gu),a=>a[0].length)),c="`".repeat(Math.max(3,b+1)),[`${c}text`,a.trim(),c].join("\n")),"\n## Acceptance Criteria",aC(z.taskPacket.acceptanceCriteria),"\n## Expected Verification",aC(z.taskPacket.expectedVerification),"\n## Evidence Requirements",aC(z.taskPacket.evidenceRequirements),"\n## Operator Notes",z.operatorNotes.trim(),"\n## Verification Notes",z.verificationNotes.trim(),"\n## Open Review Items",z.openReviewItems.trim()||"- None recorded","\n## Safety Boundary\n- Terminal scrollback remains in the built-in terminal service and is not stored in SQLite.\n- This handoff is manually authored and does not clear external evidence gates.\n- Do not paste secrets, raw provider payloads, Feishu message bodies, or raw terminal dumps.\n"].join("\n"):""},[A.length,z]),C=async()=>{try{await navigator.clipboard.writeText(B),v(!0),r(null)}catch{v(!1),r(d("sessions.handoffCopyFailed"))}};return(0,b.jsxs)(t.Dialog,{open:f,onOpenChange:a=>{a&&y(new Date().toISOString()),g(a)},children:[(0,b.jsxs)(u.Button,{type:"button",variant:"outline",size:"sm",className:"w-full justify-start",onClick:()=>g(!0),children:[(0,b.jsx)(o.FileText,{className:"mr-2 size-3"}),d("sessions.handoffGenerate")]}),(0,b.jsxs)(t.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-2xl","data-testid":"session-handoff-export",children:[(0,b.jsxs)(t.DialogHeader,{children:[(0,b.jsx)(t.DialogTitle,{children:d("sessions.handoffExport")}),(0,b.jsx)(t.DialogDescription,{children:d("sessions.handoffExportDescription")})]}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(aL,{label:d("sessions.handoffOperatorNotes"),value:h,onChange:i}),(0,b.jsx)(aL,{label:d("sessions.handoffVerificationNotes"),value:j,onChange:k}),(0,b.jsx)(aL,{label:d("sessions.handoffOpenReviewItems"),value:n,onChange:p})]}),A.length>0?(0,b.jsxs)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-destructive",children:d("sessions.handoffAuditBlocked")}),(0,b.jsx)("ul",{className:"mt-2 space-y-1",children:A.map(a=>(0,b.jsx)("li",{className:"text-xs text-destructive",children:d({operator_notes_required:"sessions.handoffAuditOperatorNotesRequired",verification_notes_required:"sessions.handoffAuditVerificationNotesRequired",secret_like_value:"sessions.handoffAuditSecretLikeValue",placeholder_text:"sessions.handoffAuditPlaceholderText",raw_terminal_dump:"sessions.handoffAuditRawTerminalDump"}[a])},a))})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 p-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium",children:d("sessions.handoffMarkdownReady")}),(0,b.jsx)(w.Textarea,{className:"mt-2 max-h-72 min-h-40 font-mono text-xs",readOnly:!0,value:B})]}),(0,b.jsxs)(t.DialogFooter,{children:[q&&(0,b.jsx)("span",{className:"mr-auto text-xs text-destructive",children:q}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void C(),disabled:A.length>0,children:[(0,b.jsx)(l.Copy,{className:"mr-2 size-3"}),s?d("sessions.handoffCopied"):d("sessions.handoffCopy")]}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{let a,b,c=new Blob([`${B}
3
- `],{type:"text/markdown;charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,a=z.generatedAt.replace(/[:.]/g,"-"),b=z.taskPacket.title.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"task",e.download=`forgebadger-session-handoff-${b}-${a}.md`,e.click(),URL.revokeObjectURL(d),r(null)},disabled:A.length>0,children:[(0,b.jsx)(m.Download,{className:"mr-2 size-3"}),d("sessions.handoffDownload")]})]})]})]})}function aL({label:a,onChange:c,value:d}){return(0,b.jsxs)("label",{className:"block space-y-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(w.Textarea,{className:"min-h-20 text-xs",value:d,onChange:a=>c(a.target.value)})]})}function aM({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-words font-mono text-xs",children:c})]})}function aN({title:a,values:c}){return(0,b.jsxs)("div",{className:"mt-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("ul",{className:"mt-1 space-y-1",children:c.map(a=>(0,b.jsx)("li",{className:"break-words rounded-md border border-border/70 bg-muted/10 px-2 py-1 text-xs",children:a},a))})]})}function aO({status:a}){let{t:c}=(0,O.useLanguage)(),d=(0,ah.normalizeSessionStatus)(a);return"running"===d?(0,b.jsxs)(v.Badge,{variant:"default",className:"gap-1.5 bg-green-600 hover:bg-green-600",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-white motion-safe:animate-pulse"}),c("sessions.running")]}):"error"===d?(0,b.jsx)(v.Badge,{variant:"destructive",children:c("sessions.error")}):"lost"===d?(0,b.jsx)(v.Badge,{className:"gap-1.5 bg-amber-600 text-white hover:bg-amber-600",children:c("sessions.lost")}):(0,b.jsx)(v.Badge,{variant:"secondary",children:c("sessions.stopped")})}a.s(["default",0,function(){let a=(0,c.useParams)(),i=(0,c.useSearchParams)(),k=(0,h.useQueryClient)(),{t:l}=(0,O.useLanguage)(),m=function(){let{language:a}=(0,O.useLanguage)();return"en"===a?aE:"zh-TW"===a?aF:aD}(),n=a.id,[o,q]=(0,e.useState)(!1),[t,v]=(0,e.useState)(!1),w=(0,ag.getToken)()??"",A=i.get("attachToken"),B=(0,f.useQuery)({queryKey:["session",n],queryFn:()=>(0,P.getSession)(n),enabled:!!n,retry:!1}),C=(0,g.useMutation)({mutationFn:()=>(0,P.connectSession)(n),onSuccess:({session:a})=>{k.setQueryData(["session",n],{session:a}),k.invalidateQueries({queryKey:["sessions"]})}});(0,e.useEffect)(()=>{C.reset()},[n]);let D=C.data&&C.data.session.id===n?C.data.session:void 0,E=D??B.data?.session,F=A??D?.attachToken??B.data?.session?.attachToken??"",{data:G,error:H,isFetching:I}=(0,f.useQuery)({queryKey:["project-manager",E?.projectId,"task-packets",{limit:50,sessionId:n}],queryFn:()=>(0,P.listProjectManagerTaskPackets)(E?.projectId??"",{limit:50}),enabled:!!E?.projectId,retry:!1}),J=(0,g.useMutation)({mutationFn:()=>(0,P.startSession)(n),onSuccess:async()=>{await k.invalidateQueries({queryKey:["session",n]}),C.reset(),C.mutate()},onError:a=>{W.toast.error(a instanceof Error&&a.message?`${l("sessions.startFailed")}: ${a.message}`:l("sessions.startFailed"))}}),K=(0,g.useMutation)({mutationFn:()=>(0,P.stopSession)(n),onSuccess:a=>{a?.session?.warning&&W.toast.warning(l("copilot.stopExternalWarning")),k.invalidateQueries({queryKey:["session",n]}),k.invalidateQueries({queryKey:["sessions"]})},onError:a=>{W.toast.error(a instanceof Error&&a.message?`${l("sessions.stopFailed")}: ${a.message}`:l("sessions.stopFailed"))}}),L=C.mutate,M=C.isPending,N=(0,ai.findSessionTaskPacket)(G?.taskPackets??[],n);(0,e.useEffect)(()=>{var a;E?.status==="running"&&(!((a={sessionId:n,hasAuthToken:w.length>0,hasAttachTokenOverride:null!==A,isConnecting:M,hasConnectedSession:!!D,hasConnectError:C.isError}).sessionId.length>0)||!a.hasAuthToken||a.hasAttachTokenOverride||a.isConnecting||a.hasConnectedSession||a.hasConnectError||L())},[A,w,C.isError,L,D,n,M,E?.status]),(0,e.useEffect)(()=>{E&&((0,z.upsertSessionTab)((0,z.sessionToTab)(E)),(0,z.notifySessionTabsChanged)())},[E]),(0,e.useEffect)(()=>{if(o)return document.body.setAttribute("data-session-focus-mode",""),()=>document.body.removeAttribute("data-session-focus-mode")},[o]);let Q=F.length>0,R=E?.status==="running",S=C.isError,T=C.error instanceof Error?C.error.message:"";if(!w)return(0,b.jsx)(aH,{sessionId:n,title:l("sessions.cannotOpen"),message:l("sessions.returnToList")});if(E&&"lost"===E.status&&!Q)return(0,b.jsx)(aH,{sessionId:n,sessionName:E.name,title:l("sessions.lostTitle"),message:l("sessions.lostDescription"),tone:"warning",action:(0,b.jsx)(u.Button,{size:"sm",onClick:()=>J.mutate(),disabled:J.isPending,children:l("common.start")})});if(E&&!R&&!Q)return(0,b.jsx)(aH,{sessionId:n,sessionName:E.name,title:m.stoppedTitle,message:m.stoppedMessage,tone:"muted",action:(0,b.jsx)(u.Button,{size:"sm",onClick:()=>J.mutate(),disabled:J.isPending,children:l("common.start")})});if(!E){var U;if(B.isError)return(0,b.jsx)(aH,{sessionId:n,title:l("sessions.cannotOpen"),message:l("sessions.notFound")});if(S)return(0,b.jsx)(aH,{sessionId:n,title:l("sessions.cannotOpen"),message:T,hint:l("sessions.returnToList")});if((U={hasAuthToken:!0,hasAttachTokenOverride:null!==A,connectStatus:C.status,hasConnectError:C.isError,hasSession:!1}).hasAuthToken&&!U.hasAttachTokenOverride&&!U.hasConnectError&&!U.hasSession&&("idle"===U.connectStatus||"pending"===U.connectStatus))return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[(0,b.jsx)(aG,{sessionId:n}),(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:l("sessions.preparing")})]})}return S&&!Q?(0,b.jsx)(aH,{sessionId:n,title:l("sessions.cannotOpen"),message:T,hint:l("sessions.returnToList")}):(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[(0,b.jsx)(y.SessionTabs,{activeSessionId:n,trailing:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aO,{status:E?.status}),(0,b.jsx)(ay,{}),(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground",title:l("nav.history"),"aria-label":l("nav.history"),children:(0,b.jsx)(p.History,{className:"size-4"})})}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[(0,b.jsx)(x.DropdownMenuItem,{onSelect:()=>v(!0),children:l("terminal.historyOutput")}),(0,b.jsx)(x.DropdownMenuItem,{asChild:!0,children:(0,b.jsx)(d.default,{href:`/history?sessionId=${n}`,children:l("sessions.snapshotHistory")})})]})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground",onClick:()=>q(a=>!a),title:o?l("sessions.exitFocusMode"):l("sessions.focusMode"),"aria-label":o?l("sessions.exitFocusMode"):l("sessions.focusMode"),children:o?(0,b.jsx)(s,{className:"size-4"}):(0,b.jsx)(r,{className:"size-4"})}),(0,b.jsx)("div",{className:"mx-0.5 h-4 w-px bg-border","aria-hidden":"true"}),(0,b.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-8 text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>K.mutate(),disabled:K.isPending,title:K.isPending?l("sessions.stopping"):l("common.stop"),"aria-label":K.isPending?l("sessions.stopping"):l("common.stop"),children:(0,b.jsx)(j.Square,{className:"size-4"})})]})}),!o&&(0,b.jsx)(al,{sessionId:n}),(0,b.jsxs)("div",{className:o?"grid min-h-0 flex-1 grid-cols-1 overflow-hidden":"grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsx)("div",{className:"h-full min-h-0 overflow-hidden",children:(0,b.jsx)(af,{sessionId:n,authToken:w,attachToken:F,aiTool:E?.aiTool,historyOpen:t,onHistoryClose:()=>v(!1),credentialsPending:!Q})}),!o&&(0,b.jsx)(aI,{projectId:E?.projectId,session:E,taskPacket:N,taskPacketError:H,taskPacketFetching:I})]})]})}],30429)}];
1
+ module.exports=[30429,a=>{"use strict";var b=a.i(20486),c=a.i(13376),d=a.i(72637),e=a.i(85198),f=a.i(39747),g=a.i(4837),h=a.i(26248),i=a.i(60870),j=a.i(23205),k=a.i(14027),l=a.i(76897),m=a.i(57462),n=a.i(97531),o=a.i(78234),p=a.i(35485);let q=(0,p.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"}]]),r=(0,p.default)("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);var s=a.i(62384),t=a.i(97494),u=a.i(4730),v=a.i(12599),w=a.i(94851),x=a.i(13375),y=a.i(56390),z=a.i(21592);let A=(0,p.default)("ClipboardCopy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),B=(0,p.default)("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);var C=a.i(45783);let D=(0,p.default)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var E=a.i(90259),F=a.i(83164),G=a.i(23579),H=a.i(42167);function I(){return(0,e.useSyncExternalStore)(H.subscribeToTerminalFont,H.getTerminalFontState,()=>H.DEFAULT_TERMINAL_FONT)}let J="forgebadger.terminal-toolbar-position";function K(a){try{a?window.localStorage.setItem(J,JSON.stringify(a)):window.localStorage.removeItem(J)}catch{}}var L=a.i(14060),M=a.i(91638),N=a.i(79914),O=a.i(39042);let P={dark:{background:"#05070a",foreground:"#e5edf7",cursor:"#5cc8ff",cursorAccent:"#05070a",selectionBackground:"rgba(92, 200, 255, 0.3)",black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#ffffff"},light:{background:"#f6f8fa",foreground:"#24292f",cursor:"#0e7490",cursorAccent:"#f6f8fa",selectionBackground:"rgba(8, 110, 168, 0.25)",black:"#24292f",red:"#cf222e",green:"#1a7f37",yellow:"#9a6700",blue:"#0550ae",magenta:"#8250df",cyan:"#0969da",white:"#57606a",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#2da44e",brightYellow:"#bb8009",brightBlue:"#388bfd",brightMagenta:"#8250df",brightCyan:"#1b7c83",brightWhite:"#24292f"}};var Q=a.i(39465);function R({sessionId:c,authToken:d,open:f,onClose:g}){let{t:h}=(0,N.useLanguage)(),{resolved:i}=(0,G.useColorMode)(),j=I(),k=(0,e.useRef)(null),l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(j);n.current=j;let o=(0,e.useRef)(null),[p,q]=(0,e.useState)("idle"),[r,s]=(0,e.useState)(""),u=(0,e.useCallback)(async()=>(0,O.fetchJson)(`/api/v1/sessions/${c}/output`),[c]),v=(0,e.useCallback)(a=>{o.current=a;let b=l.current;b&&(b.reset(),a.output&&b.write(a.output))},[]),w=(0,e.useCallback)(async()=>{q("loading"),s("");try{let a=await u();v(a),q("ready")}catch(a){s(a instanceof Error?a.message:String(a)),q("error")}},[u,v]);if((0,e.useEffect)(()=>{if(!f)return;let b=!1;return Promise.all([a.A(35445),a.A(41690),(0,H.ensureTerminalFontLoaded)(n.current.fontFamily)]).then(([a,c])=>{if(b)return;let d=k.current;if(!d)return;let e=new a.Terminal({scrollback:1e5,cursorBlink:!1,fontFamily:n.current.fontFamily,fontSize:n.current.fontSize,theme:P[document.documentElement.classList.contains("dark")?"dark":"light"]});e.attachCustomKeyEventHandler(()=>!1);let f=new c.FitAddon;e.loadAddon(f),e.open(d),l.current=e,m.current=f,f.fit();let g=o.current;g&&(e.reset(),g.output&&e.write(g.output))}),()=>{b=!0,l.current?.dispose(),l.current=null,m.current=null}},[f]),(0,e.useEffect)(()=>{let a=l.current;a&&(a.options.theme=P[i])},[i]),(0,e.useEffect)(()=>{let a=l.current;a&&(a.options.fontFamily=j.fontFamily,a.options.fontSize=j.fontSize)},[j.fontFamily,j.fontSize]),(0,e.useEffect)(()=>{if(f){if(!d){q("error"),s(h("terminal.historyLoadFailed"));return}w()}},[f,d,w,h]),(0,e.useEffect)(()=>{if(!f)return;let a=()=>m.current?.fit();a(),window.addEventListener("resize",a);let b="u"<typeof ResizeObserver?null:new ResizeObserver(a),c=k.current;return b&&c&&b.observe(c),()=>{window.removeEventListener("resize",a),b?.disconnect()}},[f]),!f)return null;let x="ready"===p&&(!o.current||0===o.current.lineCount);return(0,b.jsxs)("div",{"data-testid":"session-output-history",className:"absolute inset-0 z-20 flex flex-col overflow-hidden bg-terminal",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 border-b border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:h("terminal.historyOutput")}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon-sm",className:"size-6 text-muted-foreground hover:text-foreground",onClick:()=>void w(),disabled:"loading"===p,title:h("terminal.historyRefresh"),"aria-label":h("terminal.historyRefresh"),children:(0,b.jsx)(L.RefreshCw,{className:(0,Q.cn)("size-3.5","loading"===p&&"animate-spin")})}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon-sm",className:"size-6 text-muted-foreground hover:text-foreground",onClick:g,title:h("common.close"),"aria-label":h("common.close"),children:(0,b.jsx)(M.X,{className:"size-3.5"})})]})]}),(0,b.jsxs)("div",{className:"relative min-h-0 flex-1 overflow-hidden p-2",children:[(0,b.jsx)("div",{ref:k,"data-testid":"session-output-history-host",className:"h-full min-h-0 [&_.xterm-cursor]:!opacity-0 [&_.xterm-screen]:!h-full [&_.xterm-viewport]:!h-full [&_.xterm]:h-full"}),"loading"===p&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/50 text-sm text-muted-foreground",children:h("common.loading")}),"error"===p&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/60",children:(0,b.jsxs)("div",{className:"max-w-sm rounded-md border border-destructive/50 bg-destructive/10 p-4 text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-destructive",children:h("terminal.historyLoadFailed")}),(0,b.jsx)("p",{className:"mt-1 break-words text-xs text-destructive/80",children:r}),(0,b.jsx)(t.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void w(),children:h("terminal.historyRefresh")})]})}),x&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:h("terminal.historyEmpty")})]})]})}function S(a,b,c){return Math.min(Math.max(a,b),c)}class T{pendingLines=0;encode(a,b){if(!Number.isFinite(a.deltaY)||0===a.deltaY||a.shiftKey||a.ctrlKey||a.metaKey||b.width<=0||b.height<=0||b.cols<=0||b.rows<=0)return null;let c=b.height/b.rows,d=a.deltaMode===WheelEvent.DOM_DELTA_PIXEL?a.deltaY/(c/2):a.deltaMode===WheelEvent.DOM_DELTA_PAGE?a.deltaY*b.rows:a.deltaY;this.pendingLines+=d;let e=Math.trunc(this.pendingLines);if(0===e)return"";let f=Math.min(Math.abs(e),24);this.pendingLines%=1;let g=S(Math.floor((a.clientX-b.left)/b.width*b.cols)+1,1,b.cols),h=S(Math.floor((a.clientY-b.top)/b.height*b.rows)+1,1,b.rows),i=e<0?64:65;return`\x1b[<${i};${g};${h}M`.repeat(f)}}function U(a,b,c){return Math.min(Math.max(a,b),c)}class V{sink;pending;lastX;lastY;tailTimer;constructor(a){this.sink=a,this.pending=0,this.lastX=0,this.lastY=0,this.tailTimer=null}encode(a,b){if(!Number.isFinite(a.deltaY)||0===a.deltaY||a.shiftKey||a.ctrlKey||a.metaKey||b.width<=0||b.height<=0||b.cols<=0||b.rows<=0)return null;this.lastX=a.clientX,this.lastY=a.clientY,this.pending+=a.deltaMode===WheelEvent.DOM_DELTA_LINE?40*a.deltaY:a.deltaMode===WheelEvent.DOM_DELTA_PAGE?a.deltaY*b.height:a.deltaY,this.scheduleTailFlush(b);let c=Math.trunc(this.pending/100);return 0===c?"":(this.pending-=100*c,this.report(c<0?64:65,b))}dispose(){null!==this.tailTimer&&clearTimeout(this.tailTimer),this.tailTimer=null,this.pending=0}scheduleTailFlush(a){null!==this.tailTimer&&clearTimeout(this.tailTimer),this.tailTimer=setTimeout(()=>{if(this.tailTimer=null,25>Math.abs(this.pending)){this.pending=0;return}let b=this.report(this.pending<0?64:65,a);this.pending=0,this.sink(b)},100)}report(a,b){let c=U(Math.floor((this.lastX-b.left)/b.width*b.cols)+1,1,b.cols),d=U(Math.floor((this.lastY-b.top)/b.height*b.rows)+1,1,b.rows);return`\x1b[<${a};${c};${d}M`}}let W=/^(?:\x1b\[<(?:64|65|68|69|72|73|80|81);\d+;\d+[Mm])+$/;async function X(a,b=globalThis.navigator?.clipboard){if(!a)return!1;if(b?.writeText)try{return await b.writeText(a),!0}catch{}if("u"<typeof document||"function"!=typeof document.execCommand)return!1;let c=document.activeElement,d=document.createElement("textarea");d.value=a,d.setAttribute("readonly","true"),d.style.position="fixed",d.style.left="-9999px";try{return document.body.appendChild(d),d.select(),document.execCommand("copy")}catch{return!1}finally{d.remove(),c instanceof HTMLElement&&c.isConnected&&c.focus({preventScroll:!0})}}var Y=a.i(85564);function Z(a){return JSON.stringify({type:"terminal_input",payload:{data:a}})}let $=/\x1b\[[0-9;?]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b[a-zA-Z]/g,_={moveToolbar:"拖动工具栏(双击或 Home 键复位)",fontSmaller:"减小字号",fontLarger:"增大字号",clear:"清屏",copySelection:"复制选中内容",copyAll:"复制全部",clearAlternate:"全屏 CLI 界面由 CLI 管理,无法清屏",copied:"已复制到剪贴板",copyFailed:"复制失败,请检查浏览器剪贴板权限",copyEmpty:"没有可复制的内容"},aa={moveToolbar:"Drag toolbar (double-click or Home to reset)",fontSmaller:"Decrease font size",fontLarger:"Increase font size",clear:"Clear screen",copySelection:"Copy selection",copyAll:"Copy all",clearAlternate:"The CLI controls this full-screen view; clearing is unavailable",copied:"Copied to clipboard",copyFailed:"Copy failed. Check your browser clipboard permissions",copyEmpty:"There is no text to copy"},ab={moveToolbar:"拖動工具列(按兩下或 Home 鍵復位)",fontSmaller:"減小字級",fontLarger:"增大字級",clear:"清屏",copySelection:"複製選取內容",copyAll:"複製全部",clearAlternate:"全螢幕 CLI 畫面由 CLI 管理,無法清屏",copied:"已複製到剪貼簿",copyFailed:"複製失敗,請檢查瀏覽器剪貼簿權限",copyEmpty:"沒有可複製的內容"};function ac(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ad(a,b){a.current?.dispose(),a.current=b}var ae=a.i(73604),af=a.i(44600);let ag=[1e3,2e3,5e3,1e4,3e4],ah={connecting:"terminal.status.connecting",connected:"terminal.status.connected",reconnecting:"terminal.status.reconnecting",disconnected:"terminal.status.disconnected",failed:"terminal.status.failed"};function ai({sessionId:c,authToken:d,attachToken:i,aiTool:j,historyOpen:l=!1,onHistoryClose:m,credentialsPending:n=!1}){let o,p,{t:q}=(0,N.useLanguage)(),r=function(){let{language:a}=(0,N.useLanguage)();return"en"===a?aa:"zh-TW"===a?ab:_}(),{resolved:s}=(0,G.useColorMode)(),u=I(),v=(o=(0,f.useQuery)({queryKey:["session-writer",c],queryFn:()=>(0,F.getSessionWriter)(c),refetchInterval:2e3}),p=(0,g.useMutation)({mutationFn:()=>(0,F.takeoverSession)(c),onSuccess:async()=>{await o.refetch()}}),{readOnly:!o.data||o.isError||"automated"===o.data.mode,loading:o.isPending,error:o.error??p.error,takingOver:p.isPending,takeover:()=>p.mutate(),refresh:()=>void o.refetch()}),w=(0,h.useQueryClient)(),x=(0,e.useRef)(v);x.current=v;let L=(0,e.useRef)(u);L.current=u;let M=(0,e.useRef)(j);M.current=j;let S=(0,e.useRef)(null),U=(0,e.useRef)(null),aj=function(a){let b=(0,e.useRef)(null),c=(0,e.useRef)(null),d=(0,e.useRef)(null),[f,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null);function j(c,e){let f=a.current,h=b.current;if(!f||!h)return null;let j=f.getBoundingClientRect(),k=h.getBoundingClientRect(),l=Math.max(0,j.width-k.width-16),m=Math.max(0,j.height-k.height-16),n={x:l?Math.min(1,Math.max(0,(c-8)/l)):0,y:m?Math.min(1,Math.max(0,(e-8)/m)):0};return d.current=n,i({width:j.width,height:j.height,toolbarWidth:k.width,toolbarHeight:k.height}),g(n),n}function k(){d.current=null,g(null),K(null)}function l(a){let b=c.current;b&&b.pointerId===a.pointerId&&(c.current=null,b.moved&&K(d.current),a.currentTarget.hasPointerCapture(a.pointerId)&&a.currentTarget.releasePointerCapture(a.pointerId))}return(0,e.useEffect)(()=>{let e=a.current,f=b.current;if(!e||!f)return;let h=()=>{let a=e.getBoundingClientRect(),b=f.getBoundingClientRect();i(c=>c?.width===a.width&&c.height===a.height&&c.toolbarWidth===b.width&&c.toolbarHeight===b.height?c:{width:a.width,height:a.height,toolbarWidth:b.width,toolbarHeight:b.height})};h(),d.current=function(){try{let a=JSON.parse(window.localStorage.getItem(J)??"null");if(!a||"object"!=typeof a||!("x"in a)||!("y"in a)||"number"!=typeof a.x||"number"!=typeof a.y||!Number.isFinite(a.x)||!Number.isFinite(a.y))return null;return{x:Math.min(1,Math.max(0,a.x)),y:Math.min(1,Math.max(0,a.y))}}catch{return null}}(),g(d.current);let j="u"<typeof ResizeObserver?null:new ResizeObserver(h);return j?.observe(e),j?.observe(f),window.addEventListener("resize",h),()=>{j?.disconnect(),window.removeEventListener("resize",h),c.current=null}},[a]),{toolbarRef:b,style:f&&h?{left:8+f.x*Math.max(0,h.width-h.toolbarWidth-16),top:8+f.y*Math.max(0,h.height-h.toolbarHeight-16),right:"auto",bottom:"auto"}:void 0,handleProps:{onPointerDown:function(d){if(0!==d.button||c.current||!b.current||!a.current)return;d.preventDefault(),d.stopPropagation();let e=b.current.getBoundingClientRect(),f=a.current.getBoundingClientRect();c.current={pointerId:d.pointerId,startX:d.clientX,startY:d.clientY,x:e.left-f.left,y:e.top-f.top,moved:!1},d.currentTarget.setPointerCapture(d.pointerId)},onPointerMove:function(a){let b=c.current;if(!b||b.pointerId!==a.pointerId)return;let d=a.clientX-b.startX,e=a.clientY-b.startY;!b.moved&&4>Math.hypot(d,e)||(b.moved=!0,a.preventDefault(),a.stopPropagation(),j(b.x+d,b.y+e))},onPointerUp:l,onKeyDown:function(c){if("Home"===c.key){c.preventDefault(),k();return}let d={ArrowLeft:{x:-10,y:0},ArrowRight:{x:10,y:0},ArrowUp:{x:0,y:-10},ArrowDown:{x:0,y:10}}[c.key];if(!d||!b.current||!a.current)return;c.preventDefault(),c.stopPropagation();let e=b.current.getBoundingClientRect(),f=a.current.getBoundingClientRect();K(j(e.left-f.left+d.x,e.top-f.top+d.y))},onPointerCancel:l,onLostPointerCapture:()=>{c.current=null},onDoubleClick:k}}}(U),ak=(0,e.useRef)(null),al=(0,e.useRef)(null),am=(0,e.useRef)(null),an=(0,e.useRef)(null),ao=(0,e.useRef)(0),ap=(0,e.useRef)(null),aq=(0,e.useRef)(null),ar=(0,e.useRef)(function(a=48){let b="",c="normal";return{push(d){for(let e=0;e<d.length;e+=1){let f=d.charAt(e),g=f.charCodeAt(0);if("\r"===f||"\n"===f){c="normal";let d=function(){let c=b.replace($," ").replace(/\s+/g," ").trim();return(b="",c.length<2)?null:c.slice(0,a)}();if(null!==d)return d;continue}if("escape"===c){c="["===f?"csi":"O"===f?"ss3":"]"===f?"osc":"P"===f||"_"===f||"^"===f||"X"===f?"string":"normal";continue}if("csi"===c||"ss3"===c){g>=64&&g<=126&&(c="normal");continue}if("osc"===c){"\x07"===f?c="normal":"\x1b"===f&&(c="osc_escape");continue}if("osc_escape"===c){c="\\"===f?"normal":"osc";continue}if("string"===c){"\x1b"===f&&(c="string_escape");continue}if("string_escape"===c){c="\\"===f?"normal":"string";continue}if("\x1b"===f){c="escape";continue}if(""===f||"\b"===f){b=b.slice(0,-1);continue}g>=32&&127!==g&&(b=(b+f).slice(-240))}return null},reset(){b="",c="normal"}}}()),as=(0,e.useRef)(null),at=(0,e.useRef)(null),au=(0,e.useRef)(!0),av=(0,e.useRef)(0),aw=(0,e.useRef)(!0),[ax,ay]=(0,e.useState)("connecting"),[az,aA]=(0,e.useState)(0),[aB,aC]=(0,e.useState)(!1),[aD,aE]=(0,e.useState)(!0),[aF,aG]=(0,e.useState)(!1),[aH,aI]=(0,e.useState)(!1),[aJ,aK]=(0,e.useState)(!1),aL=(0,e.useRef)(!1),aM=(0,e.useRef)(!0),[aN,aO]=(0,e.useState)(null),aP=(0,e.useRef)(null),aQ=(0,e.useRef)(0),aR=(0,e.useRef)(q);aR.current=q;let aS=(0,e.useCallback)((a,b,c,d)=>{aQ.current+=1,aO({id:aQ.current,tone:b,title:c,message:d??""}),null!==aP.current&&clearTimeout(aP.current),aP.current=setTimeout(()=>{aP.current=null,aO(null)},(0,ae.toastDurationFor)(a))},[]),aT=(0,e.useRef)(aS);aT.current=aS;let aU=(0,e.useCallback)((a,b)=>{(0,O.updateSessionLastPrompt)(a,b).then(()=>w.invalidateQueries({queryKey:["sessions-board"]})).catch(a=>{console.warn("Failed to report session last prompt",a)})},[w]),aV=(0,e.useCallback)(()=>{null!==an.current&&(clearTimeout(an.current),an.current=null)},[]),aW=(0,e.useCallback)(()=>{let a=ak.current;if(!a)return;let b=a.buffer.active;aI("alternate"===b.type);let c="normal"!==b.type||b.viewportY>=b.baseY;aw.current!==c&&(aw.current=c,aE(c))},[]),aX=(0,e.useCallback)(()=>{let a=ak.current;if(!a)return;let b=a.buffer.active;"normal"!==b.type||b.viewportY>=b.baseY||Date.now()-av.current<1e4||(a.scrollToBottom(),aW())},[aW]),aY=(0,e.useCallback)(()=>{let a=ak.current;a&&(a.scrollToBottom(),a.focus(),av.current=0,aw.current=!0,aE(!0))},[]),aZ=(0,e.useCallback)(()=>{var a,b,c;let d=ak.current,e=al.current;if(!d||!e)return;let f=d.buffer.active,g="normal"===f.type&&f.viewportY>=f.baseY,h=d.cols,i=d.rows;e.fit(),(d.cols>500||d.rows>200)&&d.resize(Math.min(d.cols,500),Math.min(d.rows,200)),g&&(d.cols!==h||d.rows!==i)&&d.scrollToBottom(),aW();let j=am.current;if(!j||j.readyState!==WebSocket.OPEN)return;let k=as.current;if(null!==k&&k.cols===d.cols&&k.rows===d.rows)return;let l=(b=(a={cols:d.cols,rows:d.rows}).cols,c=a.rows,Number.isInteger(b)&&Number.isInteger(c)&&b>0&&c>0&&b<=500&&c<=200)?JSON.stringify({type:"terminal_resize",payload:{cols:a.cols,rows:a.rows}}):null;l&&(j.send(l),as.current={cols:d.cols,rows:d.rows})},[aW]),a$=(0,e.useCallback)(()=>{if(!au.current||!aB)return;if(!d||!i)return void ay(n?"connecting":"disconnected");at.current=null;let a=new WebSocket((0,af.terminalWebSocketUrl)(c),(0,af.terminalWebSocketProtocols)(d,i));am.current=a,a.addEventListener("open",()=>{au.current&&am.current===a&&(ao.current=0,aA(0),ay("connected"),as.current=null,aZ(),window.setTimeout(()=>{au.current&&aZ()},400))}),a.addEventListener("message",b=>{let c=ak.current;if(!c||!au.current||am.current!==a)return;let d=function(a){let b;if("string"!=typeof a)return null;try{b=JSON.parse(a)}catch{return null}if(!ac(b)||!ac(b.payload))return null;if(("terminal_output"===b.type||"terminal_history"===b.type)&&"string"==typeof b.payload.data){let a=b.payload.sequence;return void 0!==a&&("number"!=typeof a||!Number.isSafeInteger(a)||a<=0)?null:{type:b.type,payload:{data:b.payload.data,...void 0===a?{}:{sequence:a}}}}if("terminal_history_end"===b.type){let a=b.payload.sequence;return void 0!==a&&("number"!=typeof a||!Number.isSafeInteger(a)||a<=0)?null:{type:"terminal_history_end",payload:{data:"",...void 0===a?{}:{sequence:a}}}}return"terminal_exit"===b.type&&"number"==typeof b.payload.exitCode&&Number.isInteger(b.payload.exitCode)?{type:"terminal_exit",payload:{exitCode:b.payload.exitCode}}:"terminal_error"===b.type&&"string"==typeof b.payload.message?{type:"terminal_error",payload:{message:b.payload.message}}:null}(String(b.data));if(!d)return;let e=b=>{void 0===b||au.current&&am.current===a&&a.readyState===WebSocket.OPEN&&a.send(JSON.stringify({type:"terminal_ack",payload:{sequence:b}}))};if("terminal_history"===d.type){(at.current??(at.current={history:[],live:[]})).history.push(d.payload.data),e(d.payload.sequence);return}if("terminal_history_end"===d.type){e(d.payload.sequence);let a=at.current;if(at.current=null,a){c.reset(),aX();let b=a.history.join("");for(let d of(b?c.write(b,()=>aW()):aW(),a.live))aX(),c.write(d,()=>aW())}return}if("terminal_output"===d.type){if(null!==at.current){at.current.live.push(d.payload.data),e(d.payload.sequence);return}aX(),c.write(d.payload.data,()=>{aW(),e(d.payload.sequence)})}"terminal_exit"===d.type&&(at.current=null,aV(),ad(ap,null),am.current=null,a.close(1e3),ay("disconnected"),x.current.refresh()),"terminal_error"===d.type&&(x.current.refresh(),c.writeln(`\r
2
+ [forgebadger] ${d.payload.message}`))}),a.addEventListener("close",b=>{let c;if(!au.current||am.current!==a)return;if(am.current=null,[1e3,4e3,4403,4404].includes(b.code)||b.wasClean&&![1011,4001].includes(b.code)){ad(ap,null),ay("disconnected");return}ad(ap,null);let d=ao.current+1;(ao.current=d,aA(d),d>10)?ay("failed"):(ay("reconnecting"),an.current=setTimeout(()=>{an.current=null,a$()},(c=Math.min(d-1,ag.length-1),ag[c])))});let b=ak.current;b&&(ad(ap,null),ad(ap,b.onData(b=>{if(x.current.readOnly){b.length>0&&W.test(b)&&a.readyState===WebSocket.OPEN&&a.send(Z(b));return}let d=ar.current.push(b);d&&((0,y.setSessionTabPrompt)(c,d),(0,y.notifySessionTabsChanged)(),aU(c,d)),a.readyState===WebSocket.OPEN&&a.send(Z(b))})))},[c,d,i,n,aB,aZ,aV,aX,aW,aU]),a_=(0,e.useCallback)(()=>{aV(),ao.current=0,aA(0),am.current&&(am.current.close(),am.current=null),ay("connecting"),a$()},[aV,a$]),a0=(0,e.useCallback)(a=>{(0,H.setTerminalFont)({fontFamily:L.current.fontFamily,fontSize:L.current.fontSize+a})},[]),a1=(0,e.useCallback)(()=>{let a=ak.current;a&&"normal"===a.buffer.active.type&&(a.clearSelection(),a.clear(),aW())},[aW]);(0,e.useEffect)(()=>(aM.current=!0,()=>{aM.current=!1}),[]);let a2=(0,e.useCallback)(async a=>{if(!aL.current){if(!a)return void Y.toast.info(r.copyEmpty);aL.current=!0,aK(!0);try{let b=await X(a);if(!aM.current)return;b?Y.toast.success(r.copied):Y.toast.error(r.copyFailed)}finally{aL.current=!1,aM.current&&aK(!1)}}},[r]),a3=(0,e.useCallback)(()=>{let a=ak.current;a&&a2(a.getSelection())},[a2]),a4=(0,e.useRef)(a3);a4.current=a3;let a5=(0,e.useCallback)(()=>{let a=ak.current;a&&a2(function(a){let b=a.buffer.active,c=[];for(let d=0;d<b.length;d++){let e=b.getLine(d);if(!e)continue;let f=e.translateToString(!0,0,a.cols);e.isWrapped&&c.length?c[c.length-1]+=f:c.push(f)}return c.join("\n").replace(/\n+$/,"")}(a))},[a2]);(0,e.useEffect)(()=>{let b,c=!1,d=null,e=null,f=null,g=null,h=null,i=new T,j=null,k=null,l=null,m=null,n=()=>{null===m&&(m=window.requestAnimationFrame(()=>{m=null,aW()}))},o=a=>{a.deltaY<0&&(av.current=Date.now())},p=window.setTimeout(()=>{Promise.all([a.A(35445),a.A(41690),(0,H.ensureTerminalFontLoaded)(L.current.fontFamily)]).then(([a,m])=>{let p=S.current;if(c||!p)return;let q=new a.Terminal({cursorBlink:!0,fontFamily:L.current.fontFamily,fontSize:L.current.fontSize,theme:P[document.documentElement.classList.contains("dark")?"dark":"light"]});q.attachCustomKeyEventHandler(a=>{var b;if("keydown"!==a.type)return!0;let c=(b=navigator.platform,!/^(Macintosh|MacIntel|MacPPC|Mac68K)$/.test(b)||"keydown"!==a.type||a.isComposing||!a.altKey||a.ctrlKey||a.metaKey||a.shiftKey?null:"ArrowUp"===a.key?"\x1b[1;3A":"ArrowDown"===a.key?"\x1b[1;3B":null);return null!==c?(a.preventDefault(),q.input(c,!0),!1):!function(a,b){if(!b)return!1;let c="c"===a.key.toLowerCase(),d=a.ctrlKey||a.metaKey,e=a.altKey||a.shiftKey;return c&&d&&!e}(a,q.hasSelection())||(a.preventDefault(),a4.current(),!1)});let r=new V(a=>ak.current?.input(a,!1));j=r,q.attachCustomWheelEventHandler(a=>{var b,c;if("pi"===M.current){let b=q.element?.querySelector(".xterm-screen"),c=b?.getBoundingClientRect(),d=c?r.encode(a,{left:c.left,top:c.top,width:c.width,height:c.height,cols:q.cols,rows:q.rows}):null;if(null!==d)return a.preventDefault(),d&&q.input(d,!1),!1}if("codex"===M.current&&"alternate"===q.buffer.active.type&&"none"!==q.modes.mouseTrackingMode){let b=q.element?.querySelector(".xterm-screen"),c=b?.getBoundingClientRect(),d=c?i.encode(a,{left:c.left,top:c.top,width:c.width,height:c.height,cols:q.cols,rows:q.rows}):null;if(null!==d)return a.preventDefault(),d&&q.input(d,!1),!1}return"suppress"!=(b=q.buffer.active.type,c="none"!==q.modes.mouseTrackingMode,"alternate"!==b||c?"allow":"suppress")||(a.preventDefault(),!1)});let s=new m.FitAddon;q.loadAddon(s),q.open(p),b=function(a){let b=a.textarea,c=navigator.userAgent,d=/Macintosh/.test(c)&&/AppleWebKit/.test(c)&&/Safari\//.test(c)&&!/Chrome|Chromium|Edg|OPR|CriOS|FxiOS/.test(c);if(!b||!d)return()=>{};let e=!1,f=!1,g=()=>{e=!1},h=a=>{e=("Shift"===a.key||"CapsLock"===a.key)&&!a.ctrlKey&&!a.altKey&&!a.metaKey},i=()=>{f=!0,g()},j=()=>{f=!1,g()},k=b=>{if(!e||f||b.isComposing||!b.composed||"insertText"!==b.inputType||!b.data||a.options.screenReaderMode)return;let c=a._core;c?._keyDownSeen===!0&&!1===c._keyPressHandled&&(c._keyDownSeen=!1),g()};return b.addEventListener("keydown",h,!0),b.addEventListener("keyup",g,!0),b.addEventListener("blur",g),b.addEventListener("compositionstart",i),b.addEventListener("compositionend",j),b.addEventListener("beforeinput",k),()=>{b.removeEventListener("keydown",h,!0),b.removeEventListener("keyup",g,!0),b.removeEventListener("blur",g),b.removeEventListener("compositionstart",i),b.removeEventListener("compositionend",j),b.removeEventListener("beforeinput",k)}}(q),ak.current=q,al.current=s,d=q.onScroll(aW),l=q.buffer.onBufferChange(aW),p.addEventListener("scroll",n,{capture:!0}),k=q.onSelectionChange(()=>{aG(q.hasSelection())}),e=q.onBell(()=>{aT.current("attention","warning",aR.current("terminal.notif.terminalBell"))}),f=q.parser.registerOscHandler(9,a=>{let b=a.trim();return b&&!/^\d+$/.test(b.split(";",1)[0]??"")&&aT.current("permission_prompt","warning",aR.current("terminal.notif.needsAttention"),b),!0}),g=q.parser.registerOscHandler(99,a=>{if(a.includes("p=?"))return!0;let{alert:b,title:c}=function(a){let b={};for(let c of a.split(";")){let a=c.indexOf("=");if(a<=0)continue;let d=c.slice(0,a).trim(),e=c.slice(a+1).trim();e&&("A"===d?b.alert=e:"T"===d&&(b.title=e))}return b}(a),d=`${c??""} ${b??""}`.toLowerCase(),e=/(error|fail)/.test(d)?"task_failed":/(complete|idle|done)/.test(d)?"task_completed":"permission_prompt";return aT.current(e,"permission_prompt"===e?"warning":"task_failed"===e?"error":"task_completed"===e?"success":"info",c??aR.current("terminal.notif.needsAttention"),b??c??a),!0}),h=q.parser.registerOscHandler(777,a=>{let b=a.split(";");if((b[0]??"")!=="notify")return!0;let c=(b[1]??"").trim(),d=b.slice(2).join(";").trim();return(c||d)&&aT.current("permission_prompt","warning",c||aR.current("terminal.notif.needsAttention"),d||void 0),!0}),p.addEventListener("wheel",o,{capture:!0,passive:!0}),window.requestAnimationFrame(()=>{c||(s.fit(),aC(!0))})})},0);return()=>{c=!0,b?.(),window.clearTimeout(p),aC(!1),d?.dispose(),e?.dispose(),f?.dispose(),g?.dispose(),h?.dispose(),null!==aP.current&&(clearTimeout(aP.current),aP.current=null),aO(null),S.current?.removeEventListener("wheel",o,{capture:!0}),S.current?.removeEventListener("scroll",n,{capture:!0}),null!==m&&window.cancelAnimationFrame(m),k?.dispose(),l?.dispose(),j?.dispose(),j=null,ak.current?.dispose(),ak.current=null,al.current=null}},[aW]),(0,e.useEffect)(()=>{let a=ak.current;a&&(a.options.theme=P[s])},[s]),(0,e.useEffect)(()=>{let a=ak.current;if(!a)return;a.options.fontFamily=u.fontFamily,a.options.fontSize=u.fontSize;let b=window.requestAnimationFrame(aZ);return()=>window.cancelAnimationFrame(b)},[u.fontFamily,u.fontSize,aB,aZ]),(0,e.useEffect)(()=>{if(aB)return d&&i?(au.current=!0,ay("connecting"),a$(),()=>{au.current=!1,aV(),ad(ap,null),am.current&&(am.current.close(),am.current=null)}):void ay(n?"connecting":"disconnected")},[d,i,n,a$,aV,aB]),(0,e.useEffect)(()=>{if(!aB)return;let a=()=>aZ(),b=()=>{"visible"===document.visibilityState&&aZ()};a(),window.addEventListener("resize",a),document.addEventListener("visibilitychange",b),aq.current=a;let c="u"<typeof ResizeObserver?null:new ResizeObserver(a),d=S.current;return c&&d&&(c.observe(d),d.parentElement&&c.observe(d.parentElement)),()=>{window.removeEventListener("resize",a),document.removeEventListener("visibilitychange",b),c?.disconnect(),aq.current=null}},[aB,aZ]);let a6="connected"!==ax,a7=q(ah[ax]),a8=(!d||!i)&&!n,a9="connected"===ax?"bg-emerald-500":"reconnecting"===ax?"bg-amber-400":"failed"===ax?"bg-red-500":"bg-muted-foreground",ba=aN?ae.toneIcons[aN.tone]:null;return(0,b.jsxs)("div",{"data-testid":"terminal-frame",className:(0,Q.cn)("grid h-full min-h-0 overflow-hidden bg-terminal",a8?"grid-rows-[auto_minmax(0,1fr)]":"grid-rows-[minmax(0,1fr)]"),children:[a8&&(0,b.jsx)("div",{className:"p-4 text-sm text-destructive",children:q("terminal.missingCredentials")}),(0,b.jsxs)("div",{ref:U,className:"relative flex h-full min-h-0 flex-col overflow-hidden p-2 pb-12",children:[!a6&&(0,b.jsx)("span",{"aria-live":"polite",className:"sr-only",children:a7}),(a6||v.readOnly)&&(0,b.jsxs)("div",{className:"pointer-events-none absolute inset-x-0 top-12 z-20 flex flex-col items-stretch gap-2 p-2",children:[a6&&(0,b.jsxs)("div",{className:"pointer-events-auto flex min-w-0 flex-wrap items-center gap-2 rounded-md border border-border bg-terminal/85 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,Q.cn)("size-2 rounded-full",a9),"aria-hidden":"true"}),(0,b.jsx)("span",{"aria-live":"polite",children:a7}),az>0&&(0,b.jsxs)("span",{className:"text-amber-600 dark:text-amber-300",children:[az,"/",10]}),(0,b.jsxs)("span",{className:"min-w-0 truncate font-mono",children:["session ",c]})]}),v.readOnly&&(0,b.jsxs)("div",{className:"pointer-events-auto flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 bg-terminal/85 p-2 text-xs text-amber-600 dark:text-amber-300",role:"status",children:[(0,b.jsx)("span",{children:q(v.loading?"terminal.writer.checking":v.error?"terminal.writer.syncFailed":"terminal.writer.copilotReadOnly")}),(0,b.jsx)(t.Button,{size:"sm",variant:"outline",disabled:v.loading||v.takingOver,onClick:v.takeover,children:q("terminal.writer.takeover")}),(0,b.jsx)(t.Button,{size:"sm",variant:"ghost",onClick:v.refresh,children:q("terminal.writer.refresh")}),v.error&&(0,b.jsx)("span",{role:"alert",children:v.error.message})]})]}),(0,b.jsx)("div",{ref:S,"data-testid":"terminal-host",title:q("terminal.selectionHint"),className:"min-h-0 flex-1 [&_.xterm-screen]:!h-full [&_.xterm-viewport]:!h-full [&_.xterm]:h-full"}),(0,b.jsxs)("div",{ref:aj.toolbarRef,style:aj.style,"data-testid":"terminal-toolbar","aria-busy":aJ,onMouseDown:a=>{0===a.button&&a.target instanceof Element&&a.target.closest("button")&&a.preventDefault()},className:"absolute right-2 top-2 z-10 flex w-max max-w-[calc(100%-1rem)] flex-wrap items-center gap-0.5 rounded-md border border-border bg-terminal/85 px-1 py-0.5 shadow-sm backdrop-blur-sm",children:[(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6 touch-none cursor-grab select-none active:cursor-grabbing","aria-label":r.moveToolbar,title:r.moveToolbar,"data-testid":"terminal-toolbar-drag-handle",...aj.handleProps,children:(0,b.jsx)(C.GripVertical,{className:"size-3.5"})}),(0,b.jsx)("span",{role:"status","aria-label":a7,title:a7,className:(0,Q.cn)("mx-0.5 size-2 shrink-0 rounded-full",a9)}),j?(0,b.jsx)("span",{className:"hidden px-1 font-mono text-[10px] uppercase tracking-wide text-muted-foreground sm:inline",children:j}):null,(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.fontSmaller,title:r.fontSmaller,disabled:u.fontSize<=H.MIN_TERMINAL_FONT_SIZE,onClick:()=>a0(-1),children:(0,b.jsxs)("span",{className:"flex items-center gap-px",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold leading-none",children:"A"}),(0,b.jsx)(D,{className:"size-2.5"})]})}),(0,b.jsx)("span",{className:"hidden w-6 text-center text-[10px] tabular-nums text-muted-foreground sm:inline",children:u.fontSize}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.fontLarger,title:r.fontLarger,disabled:u.fontSize>=H.MAX_TERMINAL_FONT_SIZE,onClick:()=>a0(1),children:(0,b.jsxs)("span",{className:"flex items-center gap-px",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold leading-none",children:"A"}),(0,b.jsx)(E.Plus,{className:"size-2.5"})]})}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.clear,title:aH?r.clearAlternate:r.clear,disabled:!aB||aH,onClick:a1,children:(0,b.jsx)(B,{className:"size-3.5"})}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.copySelection,title:r.copySelection,disabled:!aB||!aF||aJ,onClick:a3,children:(0,b.jsx)(k.Copy,{className:"size-3.5"})}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"size-6","aria-label":r.copyAll,title:r.copyAll,disabled:!aB||aJ,onClick:a5,children:(0,b.jsx)(A,{className:"size-3.5"})})]}),aN&&ba&&(0,b.jsxs)("div",{role:"status","aria-live":"polite",className:(0,Q.cn)("absolute left-1/2 top-12 z-20 flex max-w-[80%] -translate-x-1/2 items-start gap-2 rounded-md border bg-popover px-3 py-2 text-xs shadow-lg",ae.toneAccentClassNames[aN.tone]),children:[(0,b.jsx)(ba,{"aria-hidden":"true",className:(0,Q.cn)("mt-0.5 shrink-0",ae.toneIconClassNames[aN.tone])}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"font-medium",children:aN.title}),aN.message&&(0,b.jsx)("p",{className:"mt-0.5 break-words text-muted-foreground",children:aN.message})]})]},aN.id),!aD&&(0,b.jsxs)(t.Button,{type:"button",size:"sm",variant:"secondary",onClick:aY,className:"absolute bottom-12 right-4 z-10 gap-1 shadow md:bottom-4","aria-label":q("terminal.backToBottom"),children:[(0,b.jsx)(z.ArrowDown,{className:"size-3.5"}),q("terminal.backToBottom")]}),l&&(0,b.jsx)(R,{sessionId:c,authToken:d,open:l,onClose:()=>m?.()}),"reconnecting"===ax&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/70 z-10",children:(0,b.jsx)("div",{className:"text-center",children:(0,b.jsxs)("p",{className:"text-yellow-400 text-sm font-mono",children:[q("terminal.reconnecting"),"… (",az,"/",10,")"]})})}),"failed"===ax&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/80 z-10",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-red-400 text-sm font-mono mb-3",children:q("terminal.connectionLost")}),(0,b.jsx)(t.Button,{variant:"outline",size:"sm",onClick:a_,className:"text-red-400 border-red-400/50 hover:bg-red-400/10",children:q("terminal.reconnect")})]})})]})]})}var aj=a.i(29649),ak=a.i(89738),al=a.i(26421),am=a.i(6391),an=a.i(91155);function ao({sessionId:a}){let{language:c}=(0,N.useLanguage)(),d="en"===c,e=(0,an.localeForLanguage)(c),g=(0,f.useQuery)({queryKey:["session-summary",a],queryFn:()=>(0,O.fetchJson)(`/api/v1/sessions/${encodeURIComponent(a)}/summary`),refetchInterval:5e3,refetchIntervalInBackground:!1,retry:!1}),h=g.data?.summary,i=g.data?.latestResult,j=g.data?.workState;return(0,b.jsxs)("details",{className:"shrink-0 border-b border-border bg-muted/20 px-3 py-2 text-sm","data-testid":"session-summary",children:[(0,b.jsxs)("summary",{className:"cursor-pointer text-muted-foreground",children:[d?"Latest session progress":"会话最新进度",j?` \xb7 ${"working"===j?d?"Working":"执行中":"idle"===j?d?"Idle":"空闲":d?"Current progress unknown":"当前进度未知"}`:""]}),(0,b.jsxs)("div",{className:"max-h-64 space-y-2 overflow-auto py-2",children:[g.isPending&&(0,b.jsx)("p",{role:"status",children:d?"Loading…":"正在读取…"}),g.isError&&(0,b.jsx)("p",{role:"alert",children:d?"Could not load the session summary.":"无法读取会话摘要。"}),g.data&&!h&&!i&&(0,b.jsx)("p",{children:d?"No observations captured. Restart the CLI to load updated hooks.":"尚未采集到观察记录,CLI 需重新启动以加载更新后的 hooks。"}),h?.request&&(0,b.jsxs)("p",{className:"break-words",children:[d?"Current request: ":"当前请求:",h.request]}),h?.progress.map((a,c)=>(0,b.jsx)("p",{className:"break-words",children:a.text},`${c}:${a.text}`)),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[d?"Latest recorded round":"最近记录的轮次"," · ",new Date(i.observedAt).toLocaleString(e)]}),(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:i.error?.text??i.result?.text??(d?"Round result not captured.":"未采集到本轮结果。")}),i.result&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Source: CLI final reply":"来源:CLI 最终回复"}),i.error&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Source: CLI error event":"来源:CLI 错误事件"}),"exact_turn"!==i.identityQuality&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"Round identity unconfirmed; event excerpt only.":"轮次未确认,仅展示本次事件摘录。"}),i.verification.length?i.verification.map((a,c)=>(0,b.jsx)("p",{className:"break-words",children:a.text},`${c}:${a.text}`)):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d?"No command verification evidence captured.":"未采集到命令验证证据。"})]}),h&&(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[d?"Last observation: ":"最后观察:",new Date(h.observedAt).toLocaleString(e)]})]})]})}var ap=a.i(91569),aq=a.i(94588),ar=a.i(76344);let as=new Set(O.runtimeAdapterIds);function at({aiTool:a}){let{t:c}=(0,N.useLanguage)(),d=(0,N.useUiLocale)(),g=as.has(a),h=O.CLI_ACCOUNT_ADAPTERS.includes(a)?a:null,i=(0,f.useQuery)({queryKey:["applied-provider",a],queryFn:()=>(0,O.getAppliedProviderForAdapter)(a),enabled:g,retry:!1}),j=i.data?.appliedProvider??null,k=j?.providerProfileId,l=(0,f.useQuery)({queryKey:["provider-balance",k],queryFn:()=>(0,O.checkProviderBalance)(k),enabled:!!k,refetchInterval:6e4,refetchOnWindowFocus:!0,retry:!1}),[m,n]=(0,e.useState)(!1),o=(0,f.useQuery)({queryKey:["cli-account",a],queryFn:async()=>(await (0,O.getCliAccount)(h)).overview,enabled:null!==h,refetchInterval:6e4,retry:!1}),p=o.data?.login??null,q=o.data?.quota,r=p?.state==="ready"&&!!(q?.supported&&q.entries.length>0),s=p&&"ready"===p.state?(0,aq.loginMethodLabel)(p.method,c):void 0,u=!!j,v=null!==h&&p?.state==="ready",w=u&&v,x=w&&j?j.providerName:null,y=w?`${c("sessions.providerQuotaNative")}${s?` \xb7 ${s}`:""}`:null,z=null!==h&&null!==p&&("ready"===p.state||!u&&"not_authenticated"===p.state);if(!g)return null;let A=l.data,B=l.isFetching;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"provider-quota-panel",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(ap.Gauge,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"shrink-0",children:c("sessions.providerQuota")}),j?(0,b.jsx)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",title:j.providerName,children:j.providerName}):null,r?(0,b.jsxs)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",title:s?`${c("sessions.providerQuotaNative")} \xb7 ${s}`:c("sessions.providerQuotaNative"),children:[c("sessions.providerQuotaNative"),s?` \xb7 ${s}`:""]}):null]}),(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-1",children:k||z?(0,b.jsx)(t.Button,{variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:B||m,onClick:()=>{k&&l.refetch(),h&&z&&(n(!0),(0,O.refreshCliAccountQuota)(h).then(()=>o.refetch()).catch(()=>Y.toast.error(c("models.cliAccountQuotaRefreshFailed"))).finally(()=>n(!1)))},"aria-label":c("sessions.providerQuotaRefresh"),title:c("sessions.providerQuotaRefresh"),children:(0,b.jsx)(L.RefreshCw,{className:(0,Q.cn)("size-3",(B||m)&&"animate-spin")})}):null})]}),j?(0,b.jsx)(au,{label:x,children:l.error?(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:c("sessions.providerQuotaLoadFailed")}):A?A.supported?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{className:"mt-3 space-y-2",children:A.balances.map(a=>(0,b.jsx)(aw,{entry:a},a.label))}),(0,b.jsxs)("p",{className:"mt-2 text-right text-[10px] text-muted-foreground/60 tabular-nums",children:[c("sessions.providerQuotaCheckedAt")," ",new Date(A.checkedAt).toLocaleTimeString(d),B&&" ·…"]})]}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c("sessions.providerQuotaUnsupported")}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"…"})}):null,h&&(w||!j)?(0,b.jsx)(au,{label:y,children:(0,b.jsx)(av,{adapter:h,login:p,quota:q,failed:!!o.error,t:c})}):j?null:(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c("sessions.providerQuotaEmpty")})]})}function au({label:a,children:c}){return a?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mt-3 text-[10px] font-medium text-muted-foreground/80",children:a}),c]}):(0,b.jsx)(b.Fragment,{children:c})}function av({adapter:a,login:c,quota:d,failed:e,t:f}){let g=(0,N.useUiLocale)();if(!c)return(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:e?f("sessions.providerQuotaEmpty"):"…"});if("not_authenticated"===c.state)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:f("sessions.providerQuotaEmpty")}),(0,b.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground/70",title:f(aq.LOGIN_HINT_KEYS[a]),children:f(aq.LOGIN_HINT_KEYS[a])})]});if("ready"===c.state&&d){if(d.supported&&d.entries.length>0)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(aq.CliQuotaSummary,{quota:d,t:f})}),(0,b.jsxs)("p",{className:"mt-2 text-right text-[10px] text-muted-foreground/60 tabular-nums",children:[f("sessions.providerQuotaCheckedAt")," ",new Date(d.fetchedAt).toLocaleTimeString(g)]})]});if(!d.supported&&d.unsupportedReason)return(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(aq.CliQuotaSummary,{quota:d,t:f})})}return(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:f("sessions.providerQuotaEmpty")})}function aw({entry:a}){let{t:c}=(0,N.useLanguage)(),d=(0,N.useUiLocale)(),e=(0,ar.quotaUsagePercent)(a);return(0,b.jsxs)("li",{className:"rounded-md border border-border/70 bg-muted/10 px-2.5 py-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("span",{className:"min-w-0 truncate text-xs text-muted-foreground",children:a.label}),null!==e?(0,b.jsxs)("span",{className:(0,Q.cn)("shrink-0 text-sm font-semibold tabular-nums",(0,ar.quotaTextToneClass)(e)),title:`${c("sessions.providerQuotaUsed")} ${e}%`,children:[e,(0,b.jsx)("span",{className:"text-[10px] font-normal",children:"%"})]}):(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] tabular-nums",children:[(0,ar.formatQuotaAmount)(a.remaining)," ",a.unit]})]}),null!==e&&(0,b.jsx)("div",{className:"mt-1.5 h-2 overflow-hidden rounded-full bg-muted/60",role:"progressbar","aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`${a.label} ${c("sessions.providerQuotaUsed")} ${e}%`,title:`${c("sessions.providerQuotaUsed")} ${e}%`,children:(0,b.jsx)("div",{className:(0,Q.cn)("h-full rounded-full transition-[width] duration-700 ease-out",(0,ar.quotaBarToneClass)(e)),style:{width:`${e}%`}})}),(void 0!==a.limit||"%"===a.unit||a.resetsAt)&&(0,b.jsxs)("div",{className:"mt-1 flex items-center justify-between gap-2 text-[10px] text-muted-foreground/70",children:[void 0!==a.limit?(0,b.jsxs)("span",{className:"font-mono tabular-nums",children:[(0,ar.formatQuotaAmount)(a.remaining)," / ",(0,ar.formatQuotaAmount)(a.limit)," ",a.unit]}):"%"===a.unit?(0,b.jsxs)("span",{className:"font-mono tabular-nums",children:[c("sessions.providerQuotaRemaining")," ",(0,ar.formatQuotaAmount)(a.remaining),"%"]}):(0,b.jsx)("span",{}),a.resetsAt&&(0,b.jsxs)("span",{className:"shrink-0 tabular-nums",children:[c("sessions.providerQuotaResetAt"),": ",new Date(a.resetsAt).toLocaleString(d)]})]})]})}var ax=a.i(14365),ay=a.i(99350),az=a.i(6707),aA=a.i(27025);function aB(){let{t:a}=(0,N.useLanguage)(),f=(0,c.useRouter)(),{notifications:g,unreadCount:h,markRead:i,markAllRead:j}=(0,az.useNotifications)(),[k,l]=(0,e.useState)(!1),m=g.slice(0,8),n={project:a("notifications.projectContext"),session:a("notifications.sessionContext"),cli:a("notifications.cliContext")};return(0,b.jsxs)(ay.Popover,{open:k,onOpenChange:l,children:[(0,b.jsx)(ay.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)(t.Button,{variant:"ghost",size:"icon",className:"relative size-8 text-muted-foreground hover:text-foreground","aria-label":a("notifications.title"),title:a("notifications.title"),children:[(0,b.jsx)(ax.Bell,{className:"size-4"}),h>0&&(0,b.jsx)("span",{className:"absolute right-0.5 top-0.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-destructive px-0.5 text-[9px] font-semibold text-destructive-foreground",children:h>99?"99+":h})]})}),(0,b.jsxs)(ay.PopoverContent,{align:"end",className:"w-80 p-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a("notifications.title")}),h>0&&(0,b.jsx)("button",{type:"button",className:"text-[11px] text-muted-foreground transition-colors hover:text-foreground",onClick:()=>j(),children:a("notifications.markAllRead")})]}),(0,b.jsx)("div",{className:"max-h-72 overflow-y-auto",children:0===m.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:a("notifications.emptyTitle")}):m.map(c=>(0,b.jsxs)("button",{type:"button",className:"flex w-full flex-col gap-0.5 border-b border-border/50 px-3 py-2 text-left transition-colors last:border-b-0 hover:bg-muted/40",onClick:()=>{i(c.id),l(!1),f.push(c.href)},children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-medium",children:[!c.read&&(0,b.jsx)("span",{className:"size-1.5 shrink-0 rounded-full bg-primary","aria-hidden":"true"}),a(c.titleKey)]}),(0,b.jsx)("span",{className:"line-clamp-2 text-[11px] text-muted-foreground",children:c.message}),(0,aA.notificationContextParts)(c,n).length>0&&(0,b.jsx)("span",{className:"truncate text-[10px] text-muted-foreground/75",children:(0,aA.notificationContextParts)(c,n).join(" · ")})]},c.id))}),(0,b.jsx)("div",{className:"border-t border-border px-3 py-2",children:(0,b.jsx)(d.default,{href:"/notifications",className:"text-[11px] text-muted-foreground transition-colors hover:text-foreground",onClick:()=>l(!1),children:a("notifications.viewAll")})})]})]})}let aC=/\b(?:sk-[A-Za-z0-9_-]{6,}|Bearer\s+[A-Za-z0-9._~+/=-]+|(?:FORGEBADGER|OPENFORGE)_ATTACH_TOKEN=|api[_-]?key\s*[:=]|token\s*[:=]|password\s*[:=]|secret\s*[:=])/iu,aD=/\b(?:todo|tbd|fixme|xxx|placeholder)\b/iu,aE=/(?:^|\n)\s*(?:[$#>]\s+\S+|[A-Z0-9_]+=[^\s]+\s+\S+)|\x1b\[[0-9;]*[A-Za-z]/u;function aF(a){return 0===a.length?"- None recorded":a.map(a=>`- ${a}`).join("\n")}let aG={stoppedTitle:"会话已停止",stoppedMessage:"会话已停止。点击下方「启动」按钮重新打开终端。"},aH={stoppedTitle:"Session stopped",stoppedMessage:"This session is stopped. Use the Start button below to reopen its terminal."},aI={stoppedTitle:"會話已停止",stoppedMessage:"會話已停止。點擊下方「啟動」按鈕重新開啟終端。"};function aJ({title:a,message:c,hint:e,action:f,tone:g="destructive"}){let{t:h}=(0,N.useLanguage)();return(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,b.jsxs)("div",{className:(0,Q.cn)("max-w-md rounded-lg border p-6 text-center","warning"===g?"border-amber-500/50 bg-amber-500/10":"muted"===g?"border-border/70 bg-muted/30":"border-destructive/50 bg-destructive/10"),children:[(0,b.jsx)("h2",{className:(0,Q.cn)("text-lg font-semibold","warning"===g?"text-amber-500":"muted"===g?"text-foreground":"text-destructive"),children:a}),c?(0,b.jsxs)("p",{className:"mt-2 text-sm text-muted-foreground",children:[c," ",e??""]}):null,(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap justify-center gap-2",children:[f,(0,b.jsx)(t.Button,{asChild:!0,variant:"outline",size:"sm",children:(0,b.jsx)(d.default,{href:"/sessions",children:h("sessions.backToSessions")})})]})]})})}function aK({projectId:a,session:c,taskPacket:d,taskPacketError:e,taskPacketFetching:f}){return(0,b.jsx)("aside",{className:"hidden min-h-0 overflow-auto border-t border-border bg-background/95 p-3 lg:block lg:border-l lg:border-t-0",children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(aL,{error:e,isFetching:f,session:c,taskPacket:d}),c?.aiTool?(0,b.jsx)(at,{aiTool:c.aiTool}):null,a?(0,b.jsx)(am.GitChangesPanel,{projectId:a}):null]})})}function aL({error:a,isFetching:c,session:e,taskPacket:f}){var g,h;let{t:i}=(0,N.useLanguage)();if(a)return(0,b.jsxs)("section",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-destructive",children:[(0,b.jsx)(j.ClipboardList,{className:"size-4"}),i("sessions.taskPacketHandoff")]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:i("sessions.taskPacketLoadFailed")})]});if(!f)return c?(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(j.ClipboardList,{className:"size-4 text-muted-foreground"}),i("sessions.taskPacketHandoff")]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:i("sessions.taskPacketLoading")})]}):null;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"session-task-packet-handoff",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(j.ClipboardList,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"truncate",children:i("sessions.taskPacketHandoff")})]}),(0,b.jsx)(u.Badge,{variant:"completed"===(g=f.queueStatus)?"default":"blocked"===g?"destructive":"running"===g||"waiting_for_review"===g?"secondary":"outline",children:(h=f.queueStatus,i({planned:"sessions.taskPacketQueuePlanned",running:"sessions.taskPacketQueueRunning",waiting_for_review:"sessions.taskPacketQueueWaitingForReview",blocked:"sessions.taskPacketQueueBlocked",completed:"sessions.taskPacketQueueCompleted",cancelled:"sessions.taskPacketQueueCancelled"}[h]))})]}),(0,b.jsx)("p",{className:"mt-2 text-xs leading-5 text-muted-foreground",children:i("sessions.taskPacketHandoffDescription")}),(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(aO,{label:i("sessions.taskPacketWorkItem"),value:f.title})}),f.prompt.trim()?(0,b.jsxs)("details",{className:"mt-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer select-none text-xs text-muted-foreground",children:i("sessions.taskPacketPrompt")}),(0,b.jsx)("pre",{className:"mt-1 max-h-44 overflow-auto whitespace-pre-wrap rounded-md border border-border/70 bg-muted/20 p-2 text-xs leading-5",children:f.prompt})]}):null,f.acceptanceCriteria.length>0?(0,b.jsx)(aP,{title:i("sessions.taskPacketAcceptanceCriteria"),values:f.acceptanceCriteria}):null,f.expectedVerification.length>0?(0,b.jsx)(aP,{title:i("sessions.taskPacketExpectedVerification"),values:f.expectedVerification}):null,f.evidenceRequirements.length>0?(0,b.jsx)(aP,{title:i("sessions.taskPacketEvidenceRequirements"),values:f.evidenceRequirements}):null,(0,b.jsx)(t.Button,{asChild:!0,variant:"outline",size:"sm",className:"mt-3 w-full justify-start",children:(0,b.jsxs)(d.default,{href:(0,al.sessionTaskPacketProjectManagerHref)(f),children:[(0,b.jsx)(m.ExternalLink,{className:"mr-2 size-3"}),i("sessions.taskPacketOpenWorkItem")]})}),e&&(0,b.jsx)(aM,{session:e,taskPacket:f})]})}function aM({session:a,taskPacket:c}){let{t:d}=(0,N.useLanguage)(),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(""),[j,m]=(0,e.useState)(""),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(null),[u,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(()=>new Date().toISOString()),z=(0,e.useMemo)(()=>({generatedAt:x,openReviewItems:o,operatorNotes:h,session:a,taskPacket:c,verificationNotes:j}),[x,o,h,a,c,j]),A=(0,e.useMemo)(()=>{let a,b;return a=new Set,z.operatorNotes.trim()||a.add("operator_notes_required"),z.verificationNotes.trim()||a.add("verification_notes_required"),b=[z.taskPacket.title,z.taskPacket.prompt,...z.taskPacket.acceptanceCriteria,...z.taskPacket.expectedVerification,...z.taskPacket.evidenceRequirements,z.operatorNotes,z.verificationNotes,z.openReviewItems].join("\n"),aC.test(b)&&a.add("secret_like_value"),aD.test(b)&&a.add("placeholder_text"),aE.test(b)&&a.add("raw_terminal_dump"),Array.from(a)},[z]),B=(0,e.useMemo)(()=>{var a;let b,c;return 0===A.length?[`# Session Handoff: ${z.taskPacket.title}`,"\n## Metadata",`- Generated at: ${z.generatedAt}`,`- Project: ${z.taskPacket.projectId}`,`- Work item: ${z.taskPacket.workItemId}`,`- Session: ${z.session.id}`,`- Session status: ${z.session.status}`,`- Runtime: ${z.taskPacket.runtime.adapter} / ${z.taskPacket.runtime.templateId}`,`- Queue status: ${z.taskPacket.queueStatus}`,"\n## Task Prompt",(b=Math.max(0,...Array.from((a=z.taskPacket.prompt).matchAll(/`+/gu),a=>a[0].length)),c="`".repeat(Math.max(3,b+1)),[`${c}text`,a.trim(),c].join("\n")),"\n## Acceptance Criteria",aF(z.taskPacket.acceptanceCriteria),"\n## Expected Verification",aF(z.taskPacket.expectedVerification),"\n## Evidence Requirements",aF(z.taskPacket.evidenceRequirements),"\n## Operator Notes",z.operatorNotes.trim(),"\n## Verification Notes",z.verificationNotes.trim(),"\n## Open Review Items",z.openReviewItems.trim()||"- None recorded","\n## Safety Boundary\n- Terminal scrollback remains in the built-in terminal service and is not stored in SQLite.\n- This handoff is manually authored and does not clear external evidence gates.\n- Do not paste secrets, raw provider payloads, Feishu message bodies, or raw terminal dumps.\n"].join("\n"):""},[A.length,z]),C=async()=>{try{await navigator.clipboard.writeText(B),w(!0),r(null)}catch{w(!1),r(d("sessions.handoffCopyFailed"))}};return(0,b.jsxs)(s.Dialog,{open:f,onOpenChange:a=>{a&&y(new Date().toISOString()),g(a)},children:[(0,b.jsxs)(t.Button,{type:"button",variant:"outline",size:"sm",className:"w-full justify-start",onClick:()=>g(!0),children:[(0,b.jsx)(n.FileText,{className:"mr-2 size-3"}),d("sessions.handoffGenerate")]}),(0,b.jsxs)(s.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-2xl","data-testid":"session-handoff-export",children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsx)(s.DialogTitle,{children:d("sessions.handoffExport")}),(0,b.jsx)(s.DialogDescription,{children:d("sessions.handoffExportDescription")})]}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(aN,{label:d("sessions.handoffOperatorNotes"),value:h,onChange:i}),(0,b.jsx)(aN,{label:d("sessions.handoffVerificationNotes"),value:j,onChange:m}),(0,b.jsx)(aN,{label:d("sessions.handoffOpenReviewItems"),value:o,onChange:p})]}),A.length>0?(0,b.jsxs)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-destructive",children:d("sessions.handoffAuditBlocked")}),(0,b.jsx)("ul",{className:"mt-2 space-y-1",children:A.map(a=>(0,b.jsx)("li",{className:"text-xs text-destructive",children:d({operator_notes_required:"sessions.handoffAuditOperatorNotesRequired",verification_notes_required:"sessions.handoffAuditVerificationNotesRequired",secret_like_value:"sessions.handoffAuditSecretLikeValue",placeholder_text:"sessions.handoffAuditPlaceholderText",raw_terminal_dump:"sessions.handoffAuditRawTerminalDump"}[a])},a))})]}):(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 p-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium",children:d("sessions.handoffMarkdownReady")}),(0,b.jsx)(v.Textarea,{className:"mt-2 max-h-72 min-h-40 font-mono text-xs",readOnly:!0,value:B})]}),(0,b.jsxs)(s.DialogFooter,{children:[q&&(0,b.jsx)("span",{className:"mr-auto text-xs text-destructive",children:q}),(0,b.jsxs)(t.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void C(),disabled:A.length>0,children:[(0,b.jsx)(k.Copy,{className:"mr-2 size-3"}),u?d("sessions.handoffCopied"):d("sessions.handoffCopy")]}),(0,b.jsxs)(t.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{let a,b,c=new Blob([`${B}
3
+ `],{type:"text/markdown;charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,a=z.generatedAt.replace(/[:.]/g,"-"),b=z.taskPacket.title.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"task",e.download=`forgebadger-session-handoff-${b}-${a}.md`,e.click(),URL.revokeObjectURL(d),r(null)},disabled:A.length>0,children:[(0,b.jsx)(l.Download,{className:"mr-2 size-3"}),d("sessions.handoffDownload")]})]})]})]})}function aN({label:a,onChange:c,value:d}){return(0,b.jsxs)("label",{className:"block space-y-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)(v.Textarea,{className:"min-h-20 text-xs",value:d,onChange:a=>c(a.target.value)})]})}function aO({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-words font-mono text-xs",children:c})]})}function aP({title:a,values:c}){return(0,b.jsxs)("div",{className:"mt-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("ul",{className:"mt-1 space-y-1",children:c.map(a=>(0,b.jsx)("li",{className:"break-words rounded-md border border-border/70 bg-muted/10 px-2 py-1 text-xs",children:a},a))})]})}function aQ({status:a}){let{t:c}=(0,N.useLanguage)(),d=(0,ak.normalizeSessionStatus)(a);return"running"===d?(0,b.jsxs)(u.Badge,{variant:"default",className:"gap-1.5 bg-green-600 hover:bg-green-600",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-full bg-white motion-safe:animate-pulse"}),c("sessions.running")]}):"error"===d?(0,b.jsx)(u.Badge,{variant:"destructive",children:c("sessions.error")}):"lost"===d?(0,b.jsx)(u.Badge,{className:"gap-1.5 bg-amber-600 text-white hover:bg-amber-600",children:c("sessions.lost")}):(0,b.jsx)(u.Badge,{variant:"secondary",children:c("sessions.stopped")})}a.s(["default",0,function(){let a=(0,c.useParams)(),j=(0,c.useRouter)(),k=(0,c.useSearchParams)(),l=(0,h.useQueryClient)(),{t:m}=(0,N.useLanguage)(),n=function(){let{language:a}=(0,N.useLanguage)();return"en"===a?aH:"zh-TW"===a?aI:aG}(),p=a.id,[s,u]=(0,e.useState)(!1),[v,z]=(0,e.useState)(!1),A=(0,aj.getToken)()??"",B=k.get("attachToken"),C=(0,f.useQuery)({queryKey:["session",p],queryFn:()=>(0,O.getSession)(p),enabled:!!p,retry:!1});(0,e.useEffect)(()=>{let a=C.error;if(!a||!(a instanceof O.GatewayApiError)||404!==a.status)return;let b=(0,y.getLatestRunningTab)((0,y.removeSessionTab)(p));(0,y.notifySessionTabsChanged)(),j.replace(b?`/sessions/${b.id}`:"/sessions")},[p,j,C.error]);let D=(0,g.useMutation)({mutationFn:()=>(0,O.connectSession)(p),onSuccess:({session:a})=>{l.setQueryData(["session",p],{session:a}),l.invalidateQueries({queryKey:["sessions"]})}});(0,e.useEffect)(()=>{D.reset()},[p]);let E=D.data&&D.data.session.id===p?D.data.session:void 0,F=E??C.data?.session,G=B??E?.attachToken??C.data?.session?.attachToken??"",{data:H,error:I,isFetching:J}=(0,f.useQuery)({queryKey:["project-manager",F?.projectId,"task-packets",{limit:50,sessionId:p}],queryFn:()=>(0,O.listProjectManagerTaskPackets)(F?.projectId??"",{limit:50}),enabled:!!F?.projectId,retry:!1}),K=(0,g.useMutation)({mutationFn:()=>(0,O.startSession)(p),onSuccess:async()=>{await l.invalidateQueries({queryKey:["session",p]}),D.reset(),D.mutate()},onError:a=>{Y.toast.error(a instanceof Error&&a.message?`${m("sessions.startFailed")}: ${a.message}`:m("sessions.startFailed"))}}),L=(0,g.useMutation)({mutationFn:()=>(0,O.stopSession)(p),onSuccess:a=>{a?.session?.warning&&Y.toast.warning(m("copilot.stopExternalWarning")),l.invalidateQueries({queryKey:["session",p]}),l.invalidateQueries({queryKey:["sessions"]})},onError:a=>{Y.toast.error(a instanceof Error&&a.message?`${m("sessions.stopFailed")}: ${a.message}`:m("sessions.stopFailed"))}}),M=D.mutate,P=D.isPending,Q=(0,al.findSessionTaskPacket)(H?.taskPackets??[],p);(0,e.useEffect)(()=>{var a;F?.status==="running"&&(!((a={sessionId:p,hasAuthToken:A.length>0,hasAttachTokenOverride:null!==B,isConnecting:P,hasConnectedSession:!!E,hasConnectError:D.isError}).sessionId.length>0)||!a.hasAuthToken||a.hasAttachTokenOverride||a.isConnecting||a.hasConnectedSession||a.hasConnectError||M())},[B,A,D.isError,M,E,p,P,F?.status]),(0,e.useEffect)(()=>{F&&((0,y.upsertSessionTab)((0,y.sessionToTab)(F)),(0,y.notifySessionTabsChanged)())},[F]);let R=G.length>0,S=F?.status==="running",T=D.isError,U=D.error instanceof Error?D.error.message:"",V="terminal",W=null,X=(0,b.jsx)(t.Button,{size:"sm",onClick:()=>K.mutate(),disabled:K.isPending,children:m("common.start")});if(A)if(F&&"lost"===F.status&&!R)V="problem",W={title:m("sessions.lostTitle"),message:m("sessions.lostDescription"),tone:"warning",action:X};else if(!F||S||R)if(F)T&&!R&&(V="problem",W={title:m("sessions.cannotOpen"),message:U,hint:m("sessions.returnToList")});else if(C.isError)V="problem",W={title:m("sessions.cannotOpen"),message:m("sessions.notFound")};else if(T)V="problem",W={title:m("sessions.cannotOpen"),message:U,hint:m("sessions.returnToList")};else{var Z;!(Z={hasAuthToken:!0,hasAttachTokenOverride:null!==B,connectStatus:D.status,hasConnectError:D.isError,hasSession:!1}).hasAuthToken||Z.hasAttachTokenOverride||Z.hasConnectError||Z.hasSession||"idle"!==Z.connectStatus&&"pending"!==Z.connectStatus||(V="preparing")}else V="problem",W={title:n.stoppedTitle,message:n.stoppedMessage,tone:"muted",action:X};else V="problem",W={title:m("sessions.cannotOpen"),message:m("sessions.returnToList")};let $=s&&"terminal"===V;return(0,e.useEffect)(()=>"terminal"!==V?void u(!1):$?(document.body.setAttribute("data-session-focus-mode",""),()=>document.body.removeAttribute("data-session-focus-mode")):void 0,[$,V]),(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[(0,b.jsx)(x.SessionTabs,{activeSessionId:p,trailing:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aQ,{status:F?.status}),(0,b.jsx)(aB,{}),"terminal"===V&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(w.DropdownMenu,{children:[(0,b.jsx)(w.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(t.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground",title:m("nav.history"),"aria-label":m("nav.history"),children:(0,b.jsx)(o.History,{className:"size-4"})})}),(0,b.jsxs)(w.DropdownMenuContent,{align:"end",children:[(0,b.jsx)(w.DropdownMenuItem,{onSelect:()=>z(!0),children:m("terminal.historyOutput")}),(0,b.jsx)(w.DropdownMenuItem,{asChild:!0,children:(0,b.jsx)(d.default,{href:`/history?sessionId=${p}`,children:m("sessions.snapshotHistory")})})]})]}),(0,b.jsx)(t.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground",onClick:()=>u(a=>!a),title:s?m("sessions.exitFocusMode"):m("sessions.focusMode"),"aria-label":s?m("sessions.exitFocusMode"):m("sessions.focusMode"),children:s?(0,b.jsx)(r,{className:"size-4"}):(0,b.jsx)(q,{className:"size-4"})}),(0,b.jsx)("div",{className:"mx-0.5 h-4 w-px bg-border","aria-hidden":"true"}),(0,b.jsx)(t.Button,{variant:"ghost",size:"icon",className:"size-8 text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>L.mutate(),disabled:L.isPending,title:L.isPending?m("sessions.stopping"):m("common.stop"),"aria-label":L.isPending?m("sessions.stopping"):m("common.stop"),children:(0,b.jsx)(i.Square,{className:"size-4"})})]})]})}),F&&("terminal"!==V||!s)&&(0,b.jsx)(ao,{sessionId:p}),"terminal"===V?(0,b.jsxs)("div",{className:s?"grid min-h-0 flex-1 grid-cols-1 overflow-hidden":"grid min-h-0 flex-1 grid-cols-1 overflow-hidden lg:grid-cols-[minmax(0,1fr)_320px]",children:[(0,b.jsx)("div",{className:"h-full min-h-0 overflow-hidden",children:(0,b.jsx)(ai,{sessionId:p,authToken:A,attachToken:G,aiTool:F?.aiTool,historyOpen:v,onHistoryClose:()=>z(!1),credentialsPending:!R})}),!s&&(0,b.jsx)(aK,{projectId:F?.projectId,session:F,taskPacket:Q,taskPacketError:I,taskPacketFetching:J})]}):"preparing"===V?(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:m("sessions.preparing")}):(0,b.jsx)(aJ,{title:W?.title??m("sessions.cannotOpen"),message:W?.message??"",...W?.hint?{hint:W.hint}:{},...W?.tone?{tone:W.tone}:{},...W?.action?{action:W.action}:{}})]})}],30429)}];
4
4
 
5
5
  //# sourceMappingURL=packages_web_src_app_%28dashboard%29_sessions_%5Bid%5D_page_tsx_0x9_6se._.js.map