forgebadger 0.1.1 → 0.1.2
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.
- package/README.md +10 -0
- package/dist/commands/uninstall.d.ts +24 -0
- package/dist/commands/uninstall.js +123 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/gateway/src/adapters/index.js +24 -1
- package/dist/gateway/src/adapters/index.js.map +1 -1
- package/dist/gateway/src/config/env.d.ts +19 -5
- package/dist/gateway/src/config/env.js +27 -8
- package/dist/gateway/src/config/env.js.map +1 -1
- package/dist/gateway/src/config-generation/writer.d.ts +2 -0
- package/dist/gateway/src/config-generation/writer.js +29 -3
- package/dist/gateway/src/config-generation/writer.js.map +1 -1
- package/dist/gateway/src/db/migrations/0097_telegram_channel_accounts.sql +7 -0
- package/dist/gateway/src/db/migrations/0098_skill_remote_provenance.sql +1 -0
- package/dist/gateway/src/db/migrations/0099_runtime_settings.sql +1 -0
- package/dist/gateway/src/db/migrations/0100_runtime_confirmation_revocation.sql +27 -0
- package/dist/gateway/src/db/migrations/0101_provider_private_networks.sql +7 -0
- package/dist/gateway/src/db/migrations/0102_copilot_preferences.sql +4 -0
- package/dist/gateway/src/db/migrations/0103_model_thinking_efforts.sql +8 -0
- package/dist/gateway/src/db/migrations/0104_copilot_project_autonomy.sql +1 -0
- package/dist/gateway/src/db/migrations/0105_remove_copilot_grants.sql +91 -0
- package/dist/gateway/src/db/migrations/0106_mcp_cli_dispatch_scope.sql +3 -0
- package/dist/gateway/src/db/migrations/0107_cli_skill_revisions.sql +12 -0
- package/dist/gateway/src/db/migrations/0108_copilot_run_governance.sql +43 -0
- package/dist/gateway/src/db/migrations/0109_copilot_research_jobs.sql +19 -0
- package/dist/gateway/src/db/migrations/0110_copilot_tool_artifacts.sql +19 -0
- package/dist/gateway/src/db/migrations/0111_copilot_model_metering.sql +13 -0
- package/dist/gateway/src/db/migrations/0112_copilot_repair_jobs.sql +27 -0
- package/dist/gateway/src/db/migrations/0113_copilot_memory_search_index.sql +19 -0
- package/dist/gateway/src/db/migrations/0114_channel_reliability.sql +32 -0
- package/dist/gateway/src/db/migrations/0115_feishu_typing_reactions.sql +12 -0
- package/dist/gateway/src/db/migrations/0116_channel_control_commands.sql +6 -0
- package/dist/gateway/src/db/migrations/0117_channel_session_model.sql +2 -0
- package/dist/gateway/src/db/migrations/0118_mcp_project_grants.sql +2 -0
- package/dist/gateway/src/db/migrations/0119_feishu_notifications.sql +23 -0
- package/dist/gateway/src/db/migrations/0120_feishu_notification_targets.sql +25 -0
- package/dist/gateway/src/db/migrations/0121_session_notification_prompts.sql +10 -0
- package/dist/gateway/src/db/migrations/0122_mcode_adapter.sql +97 -0
- package/dist/gateway/src/db/migrations/0123_mcode_supported_adapters_backfill.sql +16 -0
- package/dist/gateway/src/db/migrations/0124_user_adapter_order.sql +4 -0
- package/dist/gateway/src/db/migrations/0125_copilot_approval_clock.sql +15 -0
- package/dist/gateway/src/db/migrations/0126_development_execution_identity.sql +3 -0
- package/dist/gateway/src/db/migrations/0127_cli_observation_summaries.sql +17 -0
- package/dist/gateway/src/db/migrations/0128_feishu_builtin_summaries.sql +11 -0
- package/dist/gateway/src/db/migrations/meta/_journal.json +224 -0
- package/dist/gateway/src/db/migrations/meta/migration-checksums.json +33 -1
- package/dist/gateway/src/db/repositories/adapter-order-repository.d.ts +18 -0
- package/dist/gateway/src/db/repositories/adapter-order-repository.js +61 -0
- package/dist/gateway/src/db/repositories/adapter-order-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/catalog-repository.d.ts +4 -1
- package/dist/gateway/src/db/repositories/catalog-repository.js +16 -2
- package/dist/gateway/src/db/repositories/catalog-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/channel-command-repository.d.ts +14 -0
- package/dist/gateway/src/db/repositories/channel-command-repository.js +34 -0
- package/dist/gateway/src/db/repositories/channel-command-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/channel-delivery-repository.d.ts +11 -0
- package/dist/gateway/src/db/repositories/channel-delivery-repository.js +25 -5
- package/dist/gateway/src/db/repositories/channel-delivery-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/channel-identity-repository.d.ts +29 -5
- package/dist/gateway/src/db/repositories/channel-identity-repository.js +46 -8
- package/dist/gateway/src/db/repositories/channel-identity-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/channel-message-repository.d.ts +11 -1
- package/dist/gateway/src/db/repositories/channel-message-repository.js +21 -6
- package/dist/gateway/src/db/repositories/channel-message-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/cli-observation-repository.d.ts +20 -0
- package/dist/gateway/src/db/repositories/cli-observation-repository.js +91 -0
- package/dist/gateway/src/db/repositories/cli-observation-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/cli-skill-revision-repository.d.ts +11 -0
- package/dist/gateway/src/db/repositories/cli-skill-revision-repository.js +57 -0
- package/dist/gateway/src/db/repositories/cli-skill-revision-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/copilot-model-response-repository.d.ts +20 -0
- package/dist/gateway/src/db/repositories/copilot-model-response-repository.js +151 -0
- package/dist/gateway/src/db/repositories/copilot-model-response-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/copilot-preferences-repository.d.ts +43 -0
- package/dist/gateway/src/db/repositories/copilot-preferences-repository.js +74 -0
- package/dist/gateway/src/db/repositories/copilot-preferences-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/copilot-skill-revision-repository.d.ts +1 -0
- package/dist/gateway/src/db/repositories/copilot-skill-revision-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/copilot-tool-artifact-repository.d.ts +30 -0
- package/dist/gateway/src/db/repositories/copilot-tool-artifact-repository.js +103 -0
- package/dist/gateway/src/db/repositories/copilot-tool-artifact-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/development-task-repository.d.ts +5 -1
- package/dist/gateway/src/db/repositories/development-task-repository.js +25 -0
- package/dist/gateway/src/db/repositories/development-task-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/feishu-channel-repository.js +4 -0
- package/dist/gateway/src/db/repositories/feishu-channel-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/feishu-notification-repository.d.ts +54 -0
- package/dist/gateway/src/db/repositories/feishu-notification-repository.js +72 -0
- package/dist/gateway/src/db/repositories/feishu-notification-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/feishu-notification-target-repository.d.ts +28 -0
- package/dist/gateway/src/db/repositories/feishu-notification-target-repository.js +51 -0
- package/dist/gateway/src/db/repositories/feishu-notification-target-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/feishu-typing-repository.d.ts +26 -0
- package/dist/gateway/src/db/repositories/feishu-typing-repository.js +77 -0
- package/dist/gateway/src/db/repositories/feishu-typing-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/mcp-token-repository.d.ts +14 -1
- package/dist/gateway/src/db/repositories/mcp-token-repository.js +19 -4
- package/dist/gateway/src/db/repositories/mcp-token-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/model-provider-repository.d.ts +10 -1
- package/dist/gateway/src/db/repositories/model-provider-repository.js +22 -12
- package/dist/gateway/src/db/repositories/model-provider-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/notification-repository.d.ts +4 -0
- package/dist/gateway/src/db/repositories/notification-repository.js +24 -2
- package/dist/gateway/src/db/repositories/notification-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/platform-action-repository.d.ts +30 -4
- package/dist/gateway/src/db/repositories/platform-action-repository.js +41 -5
- package/dist/gateway/src/db/repositories/platform-action-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/project-manager-repository.d.ts +3 -0
- package/dist/gateway/src/db/repositories/project-manager-repository.js +16 -0
- package/dist/gateway/src/db/repositories/project-manager-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/project-repository.d.ts +3 -0
- package/dist/gateway/src/db/repositories/project-repository.js +16 -0
- package/dist/gateway/src/db/repositories/project-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/session-notification-prompt-repository.d.ts +17 -0
- package/dist/gateway/src/db/repositories/session-notification-prompt-repository.js +47 -0
- package/dist/gateway/src/db/repositories/session-notification-prompt-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/session-repository.js +16 -4
- package/dist/gateway/src/db/repositories/session-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/session-runtime-confirmation-repository.d.ts +11 -1
- package/dist/gateway/src/db/repositories/session-runtime-confirmation-repository.js +14 -1
- package/dist/gateway/src/db/repositories/session-runtime-confirmation-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/session-writer-lease-repository.d.ts +8 -1
- package/dist/gateway/src/db/repositories/session-writer-lease-repository.js +13 -3
- package/dist/gateway/src/db/repositories/session-writer-lease-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/skill-repository.d.ts +3 -0
- package/dist/gateway/src/db/repositories/skill-repository.js +3 -0
- package/dist/gateway/src/db/repositories/skill-repository.js.map +1 -1
- package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.d.ts +22 -0
- package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js +58 -0
- package/dist/gateway/src/db/repositories/task-dispatch-evidence-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/task-report-repository.d.ts +19 -0
- package/dist/gateway/src/db/repositories/task-report-repository.js +35 -0
- package/dist/gateway/src/db/repositories/task-report-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/telegram-channel-repository.d.ts +36 -0
- package/dist/gateway/src/db/repositories/telegram-channel-repository.js +93 -0
- package/dist/gateway/src/db/repositories/telegram-channel-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/telegram-cursor-repository.d.ts +11 -0
- package/dist/gateway/src/db/repositories/telegram-cursor-repository.js +31 -0
- package/dist/gateway/src/db/repositories/telegram-cursor-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/telegram-integration-repository.d.ts +19 -0
- package/dist/gateway/src/db/repositories/telegram-integration-repository.js +84 -0
- package/dist/gateway/src/db/repositories/telegram-integration-repository.js.map +1 -0
- package/dist/gateway/src/db/repositories/template-repository.d.ts +15 -0
- package/dist/gateway/src/db/repositories/template-repository.js +22 -0
- package/dist/gateway/src/db/repositories/template-repository.js.map +1 -1
- package/dist/gateway/src/db/schema.d.ts +11355 -8305
- package/dist/gateway/src/db/schema.js +226 -29
- package/dist/gateway/src/db/schema.js.map +1 -1
- package/dist/gateway/src/lib/adapter-ids.d.ts +15 -0
- package/dist/gateway/src/lib/adapter-ids.js +24 -0
- package/dist/gateway/src/lib/adapter-ids.js.map +1 -0
- package/dist/gateway/src/lib/dependency-check.d.ts +5 -1
- package/dist/gateway/src/lib/dependency-check.js +65 -6
- package/dist/gateway/src/lib/dependency-check.js.map +1 -1
- package/dist/gateway/src/lib/redaction.js +8 -2
- package/dist/gateway/src/lib/redaction.js.map +1 -1
- package/dist/gateway/src/routes/adapters.d.ts +2 -1
- package/dist/gateway/src/routes/adapters.js +122 -2
- package/dist/gateway/src/routes/adapters.js.map +1 -1
- package/dist/gateway/src/routes/auth.d.ts +5 -1
- package/dist/gateway/src/routes/auth.js +10 -5
- package/dist/gateway/src/routes/auth.js.map +1 -1
- package/dist/gateway/src/routes/catalog.d.ts +2 -1
- package/dist/gateway/src/routes/catalog.js +41 -24
- package/dist/gateway/src/routes/catalog.js.map +1 -1
- package/dist/gateway/src/routes/channel-diagnostics.d.ts +7 -0
- package/dist/gateway/src/routes/channel-diagnostics.js +21 -0
- package/dist/gateway/src/routes/channel-diagnostics.js.map +1 -0
- package/dist/gateway/src/routes/cli-accounts.d.ts +13 -0
- package/dist/gateway/src/routes/cli-accounts.js +89 -0
- package/dist/gateway/src/routes/cli-accounts.js.map +1 -0
- package/dist/gateway/src/routes/cli-config.js +7 -4
- package/dist/gateway/src/routes/cli-config.js.map +1 -1
- package/dist/gateway/src/routes/copilot-channels.js +1 -1
- package/dist/gateway/src/routes/copilot-channels.js.map +1 -1
- package/dist/gateway/src/routes/copilot-development.js +18 -0
- package/dist/gateway/src/routes/copilot-development.js.map +1 -1
- package/dist/gateway/src/routes/copilot-metering.d.ts +4 -0
- package/dist/gateway/src/routes/copilot-metering.js +46 -0
- package/dist/gateway/src/routes/copilot-metering.js.map +1 -0
- package/dist/gateway/src/routes/copilot-skills.js +13 -0
- package/dist/gateway/src/routes/copilot-skills.js.map +1 -1
- package/dist/gateway/src/routes/copilot.js +97 -25
- package/dist/gateway/src/routes/copilot.js.map +1 -1
- package/dist/gateway/src/routes/feishu-notifications.d.ts +9 -0
- package/dist/gateway/src/routes/feishu-notifications.js +63 -0
- package/dist/gateway/src/routes/feishu-notifications.js.map +1 -0
- package/dist/gateway/src/routes/index.js +13 -1
- package/dist/gateway/src/routes/index.js.map +1 -1
- package/dist/gateway/src/routes/integrations-telegram.d.ts +11 -0
- package/dist/gateway/src/routes/integrations-telegram.js +117 -0
- package/dist/gateway/src/routes/integrations-telegram.js.map +1 -0
- package/dist/gateway/src/routes/mcp-tokens.js +36 -5
- package/dist/gateway/src/routes/mcp-tokens.js.map +1 -1
- package/dist/gateway/src/routes/mcp.d.ts +2 -1
- package/dist/gateway/src/routes/mcp.js +4 -2
- package/dist/gateway/src/routes/mcp.js.map +1 -1
- package/dist/gateway/src/routes/model-providers.js +47 -7
- package/dist/gateway/src/routes/model-providers.js.map +1 -1
- package/dist/gateway/src/routes/notifications.d.ts +1 -1
- package/dist/gateway/src/routes/notifications.js +3 -1
- package/dist/gateway/src/routes/notifications.js.map +1 -1
- package/dist/gateway/src/routes/platform-actions.js +2 -28
- package/dist/gateway/src/routes/platform-actions.js.map +1 -1
- package/dist/gateway/src/routes/project-management.js +22 -9
- package/dist/gateway/src/routes/project-management.js.map +1 -1
- package/dist/gateway/src/routes/project-manager.js +2 -1
- package/dist/gateway/src/routes/project-manager.js.map +1 -1
- package/dist/gateway/src/routes/projects.js +3 -2
- package/dist/gateway/src/routes/projects.js.map +1 -1
- package/dist/gateway/src/routes/runtime-settings.d.ts +4 -0
- package/dist/gateway/src/routes/runtime-settings.js +51 -0
- package/dist/gateway/src/routes/runtime-settings.js.map +1 -0
- package/dist/gateway/src/routes/session-hooks.d.ts +2 -1
- package/dist/gateway/src/routes/session-hooks.js +81 -15
- package/dist/gateway/src/routes/session-hooks.js.map +1 -1
- package/dist/gateway/src/routes/sessions.js +129 -36
- package/dist/gateway/src/routes/sessions.js.map +1 -1
- package/dist/gateway/src/routes/skill-registry.d.ts +4 -0
- package/dist/gateway/src/routes/skill-registry.js +77 -0
- package/dist/gateway/src/routes/skill-registry.js.map +1 -0
- package/dist/gateway/src/routes/skills.d.ts +2 -1
- package/dist/gateway/src/routes/skills.js +112 -49
- package/dist/gateway/src/routes/skills.js.map +1 -1
- package/dist/gateway/src/routes/templates.js +3 -2
- package/dist/gateway/src/routes/templates.js.map +1 -1
- package/dist/gateway/src/runtime/start-gateway.js +25 -1
- package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
- package/dist/gateway/src/server.d.ts +18 -2
- package/dist/gateway/src/server.js +47 -8
- package/dist/gateway/src/server.js.map +1 -1
- package/dist/gateway/src/services/adapter-discovery.d.ts +2 -1
- package/dist/gateway/src/services/adapter-discovery.js +16 -2
- package/dist/gateway/src/services/adapter-discovery.js.map +1 -1
- package/dist/gateway/src/services/adapter-updates.d.ts +44 -0
- package/dist/gateway/src/services/adapter-updates.js +344 -0
- package/dist/gateway/src/services/adapter-updates.js.map +1 -0
- package/dist/gateway/src/services/agent/agent-stack.js +2 -0
- package/dist/gateway/src/services/agent/agent-stack.js.map +1 -1
- package/dist/gateway/src/services/agent/approval-clock.d.ts +9 -0
- package/dist/gateway/src/services/agent/approval-clock.js +36 -0
- package/dist/gateway/src/services/agent/approval-clock.js.map +1 -0
- package/dist/gateway/src/services/agent/catalog-search.d.ts +4 -0
- package/dist/gateway/src/services/agent/catalog-search.js +29 -0
- package/dist/gateway/src/services/agent/catalog-search.js.map +1 -0
- package/dist/gateway/src/services/agent/context-recovery.d.ts +15 -0
- package/dist/gateway/src/services/agent/context-recovery.js +34 -0
- package/dist/gateway/src/services/agent/context-recovery.js.map +1 -0
- package/dist/gateway/src/services/agent/context.d.ts +9 -3
- package/dist/gateway/src/services/agent/context.js +129 -42
- package/dist/gateway/src/services/agent/context.js.map +1 -1
- package/dist/gateway/src/services/agent/conversation-log.js +16 -3
- package/dist/gateway/src/services/agent/conversation-log.js.map +1 -1
- package/dist/gateway/src/services/agent/development-repair.d.ts +15 -0
- package/dist/gateway/src/services/agent/development-repair.js +115 -0
- package/dist/gateway/src/services/agent/development-repair.js.map +1 -0
- package/dist/gateway/src/services/agent/dispatch-supervisor.d.ts +3 -16
- package/dist/gateway/src/services/agent/dispatch-supervisor.js +31 -51
- package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -1
- package/dist/gateway/src/services/agent/followups.d.ts +22 -0
- package/dist/gateway/src/services/agent/followups.js +80 -0
- package/dist/gateway/src/services/agent/followups.js.map +1 -0
- package/dist/gateway/src/services/agent/llm-anthropic.js +17 -8
- package/dist/gateway/src/services/agent/llm-anthropic.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-client.d.ts +25 -0
- package/dist/gateway/src/services/agent/llm-client.js +195 -63
- package/dist/gateway/src/services/agent/llm-client.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-connection-error.d.ts +22 -0
- package/dist/gateway/src/services/agent/llm-connection-error.js +64 -0
- package/dist/gateway/src/services/agent/llm-connection-error.js.map +1 -0
- package/dist/gateway/src/services/agent/llm-openai.d.ts +4 -0
- package/dist/gateway/src/services/agent/llm-openai.js +69 -9
- package/dist/gateway/src/services/agent/llm-openai.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-public-fetch.d.ts +10 -1
- package/dist/gateway/src/services/agent/llm-public-fetch.js +182 -51
- package/dist/gateway/src/services/agent/llm-public-fetch.js.map +1 -1
- package/dist/gateway/src/services/agent/llm-replay.d.ts +30 -0
- package/dist/gateway/src/services/agent/llm-replay.js +21 -0
- package/dist/gateway/src/services/agent/llm-replay.js.map +1 -0
- package/dist/gateway/src/services/agent/llm-response.d.ts +6 -0
- package/dist/gateway/src/services/agent/llm-response.js +40 -3
- package/dist/gateway/src/services/agent/llm-response.js.map +1 -1
- package/dist/gateway/src/services/agent/memory-search-index.d.ts +30 -0
- package/dist/gateway/src/services/agent/memory-search-index.js +63 -0
- package/dist/gateway/src/services/agent/memory-search-index.js.map +1 -0
- package/dist/gateway/src/services/agent/memory.d.ts +1 -0
- package/dist/gateway/src/services/agent/memory.js +43 -57
- package/dist/gateway/src/services/agent/memory.js.map +1 -1
- package/dist/gateway/src/services/agent/model-metering.d.ts +32 -0
- package/dist/gateway/src/services/agent/model-metering.js +62 -0
- package/dist/gateway/src/services/agent/model-metering.js.map +1 -0
- package/dist/gateway/src/services/agent/model-transport.d.ts +2 -0
- package/dist/gateway/src/services/agent/model-transport.js +22 -0
- package/dist/gateway/src/services/agent/model-transport.js.map +1 -0
- package/dist/gateway/src/services/agent/no-progress.d.ts +4 -0
- package/dist/gateway/src/services/agent/no-progress.js +57 -0
- package/dist/gateway/src/services/agent/no-progress.js.map +1 -0
- package/dist/gateway/src/services/agent/notification-context.d.ts +5 -0
- package/dist/gateway/src/services/agent/notification-context.js +72 -0
- package/dist/gateway/src/services/agent/notification-context.js.map +1 -0
- package/dist/gateway/src/services/agent/orchestrator-types.d.ts +12 -3
- package/dist/gateway/src/services/agent/orchestrator.d.ts +9 -0
- package/dist/gateway/src/services/agent/orchestrator.js +305 -64
- package/dist/gateway/src/services/agent/orchestrator.js.map +1 -1
- package/dist/gateway/src/services/agent/platform-access.d.ts +5 -1
- package/dist/gateway/src/services/agent/platform-access.js +7 -4
- package/dist/gateway/src/services/agent/platform-access.js.map +1 -1
- package/dist/gateway/src/services/agent/provider-error.d.ts +17 -0
- package/dist/gateway/src/services/agent/provider-error.js +66 -0
- package/dist/gateway/src/services/agent/provider-error.js.map +1 -0
- package/dist/gateway/src/services/agent/provisional-text.d.ts +13 -0
- package/dist/gateway/src/services/agent/provisional-text.js +46 -0
- package/dist/gateway/src/services/agent/provisional-text.js.map +1 -0
- package/dist/gateway/src/services/agent/public-text-stream.d.ts +12 -0
- package/dist/gateway/src/services/agent/public-text-stream.js +36 -0
- package/dist/gateway/src/services/agent/public-text-stream.js.map +1 -0
- package/dist/gateway/src/services/agent/reactive-loop.js +44 -5
- package/dist/gateway/src/services/agent/reactive-loop.js.map +1 -1
- package/dist/gateway/src/services/agent/read-batch.d.ts +3 -0
- package/dist/gateway/src/services/agent/read-batch.js +19 -0
- package/dist/gateway/src/services/agent/read-batch.js.map +1 -0
- package/dist/gateway/src/services/agent/recall-query.d.ts +6 -0
- package/dist/gateway/src/services/agent/recall-query.js +29 -0
- package/dist/gateway/src/services/agent/recall-query.js.map +1 -0
- package/dist/gateway/src/services/agent/redaction.d.ts +10 -0
- package/dist/gateway/src/services/agent/redaction.js +75 -6
- package/dist/gateway/src/services/agent/redaction.js.map +1 -1
- package/dist/gateway/src/services/agent/restricted-runs.d.ts +5 -0
- package/dist/gateway/src/services/agent/restricted-runs.js +22 -0
- package/dist/gateway/src/services/agent/restricted-runs.js.map +1 -0
- package/dist/gateway/src/services/agent/run-governance.d.ts +44 -0
- package/dist/gateway/src/services/agent/run-governance.js +92 -0
- package/dist/gateway/src/services/agent/run-governance.js.map +1 -0
- package/dist/gateway/src/services/agent/run-ledger.d.ts +21 -4
- package/dist/gateway/src/services/agent/run-ledger.js +113 -46
- package/dist/gateway/src/services/agent/run-ledger.js.map +1 -1
- package/dist/gateway/src/services/agent/runtime.js +53 -7
- package/dist/gateway/src/services/agent/runtime.js.map +1 -1
- package/dist/gateway/src/services/agent/security-policy.js +25 -1
- package/dist/gateway/src/services/agent/security-policy.js.map +1 -1
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.d.ts +2 -0
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js +41 -0
- package/dist/gateway/src/services/agent/skills/copilot-skill-baselines.js.map +1 -0
- package/dist/gateway/src/services/agent/skills/copilot-skill-service.d.ts +7 -1
- package/dist/gateway/src/services/agent/skills/copilot-skill-service.js +37 -20
- package/dist/gateway/src/services/agent/skills/copilot-skill-service.js.map +1 -1
- package/dist/gateway/src/services/agent/skills/copilot-skills.js +17 -17
- package/dist/gateway/src/services/agent/skills/copilot-skills.js.map +1 -1
- package/dist/gateway/src/services/agent/task-reports.d.ts +3 -0
- package/dist/gateway/src/services/agent/task-reports.js +78 -0
- package/dist/gateway/src/services/agent/task-reports.js.map +1 -0
- package/dist/gateway/src/services/agent/task-review.d.ts +12 -0
- package/dist/gateway/src/services/agent/task-review.js +67 -0
- package/dist/gateway/src/services/agent/task-review.js.map +1 -0
- package/dist/gateway/src/services/agent/tool-artifact-policy.d.ts +7 -0
- package/dist/gateway/src/services/agent/tool-artifact-policy.js +9 -0
- package/dist/gateway/src/services/agent/tool-artifact-policy.js.map +1 -0
- package/dist/gateway/src/services/agent/tool-availability.d.ts +0 -1
- package/dist/gateway/src/services/agent/tool-availability.js +3 -6
- package/dist/gateway/src/services/agent/tool-availability.js.map +1 -1
- package/dist/gateway/src/services/agent/tool-discovery.d.ts +1 -1
- package/dist/gateway/src/services/agent/tool-discovery.js +5 -10
- package/dist/gateway/src/services/agent/tool-discovery.js.map +1 -1
- package/dist/gateway/src/services/agent/tool-registry.d.ts +1 -0
- package/dist/gateway/src/services/agent/tool-registry.js +26 -10
- package/dist/gateway/src/services/agent/tool-registry.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/development.js +2 -2
- package/dist/gateway/src/services/agent/tools/development.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/discovery.js +1 -1
- package/dist/gateway/src/services/agent/tools/discovery.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/index.js +8 -0
- package/dist/gateway/src/services/agent/tools/index.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/memory.js +3 -3
- package/dist/gateway/src/services/agent/tools/memory.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/platform-management.js +3 -4
- package/dist/gateway/src/services/agent/tools/platform-management.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/project-diff.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/project-diff.js +17 -0
- package/dist/gateway/src/services/agent/tools/project-diff.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/project-manager.js +40 -1
- package/dist/gateway/src/services/agent/tools/project-manager.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/projects.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/projects.js +44 -3
- package/dist/gateway/src/services/agent/tools/projects.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/research.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/research.js +15 -0
- package/dist/gateway/src/services/agent/tools/research.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/sessions.js +38 -10
- package/dist/gateway/src/services/agent/tools/sessions.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/skills.js +2 -2
- package/dist/gateway/src/services/agent/tools/skills.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/source-search.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/source-search.js +44 -0
- package/dist/gateway/src/services/agent/tools/source-search.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/terminal.d.ts +2 -0
- package/dist/gateway/src/services/agent/tools/terminal.js +83 -0
- package/dist/gateway/src/services/agent/tools/terminal.js.map +1 -0
- package/dist/gateway/src/services/agent/tools/tool-results.js +24 -11
- package/dist/gateway/src/services/agent/tools/tool-results.js.map +1 -1
- package/dist/gateway/src/services/agent/types.d.ts +5 -0
- package/dist/gateway/src/services/agent/types.js.map +1 -1
- package/dist/gateway/src/services/automation/delivery.js +2 -2
- package/dist/gateway/src/services/automation/delivery.js.map +1 -1
- package/dist/gateway/src/services/builtin-skills.d.ts +1 -1
- package/dist/gateway/src/services/builtin-skills.js +1 -7
- package/dist/gateway/src/services/builtin-skills.js.map +1 -1
- package/dist/gateway/src/services/catalog-sync.js +1 -1
- package/dist/gateway/src/services/catalog-sync.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-commands.d.ts +19 -0
- package/dist/gateway/src/services/channels/channel-commands.js +106 -0
- package/dist/gateway/src/services/channels/channel-commands.js.map +1 -0
- package/dist/gateway/src/services/channels/channel-diagnostics.d.ts +17 -0
- package/dist/gateway/src/services/channels/channel-diagnostics.js +204 -0
- package/dist/gateway/src/services/channels/channel-diagnostics.js.map +1 -0
- package/dist/gateway/src/services/channels/channel-identity-service.d.ts +81 -21
- package/dist/gateway/src/services/channels/channel-identity-service.js +84 -32
- package/dist/gateway/src/services/channels/channel-identity-service.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-model-command.d.ts +13 -0
- package/dist/gateway/src/services/channels/channel-model-command.js +108 -0
- package/dist/gateway/src/services/channels/channel-model-command.js.map +1 -0
- package/dist/gateway/src/services/channels/channel-run-authority.d.ts +3 -0
- package/dist/gateway/src/services/channels/channel-run-authority.js +26 -7
- package/dist/gateway/src/services/channels/channel-run-authority.js.map +1 -1
- package/dist/gateway/src/services/channels/channel-run-scope.d.ts +64 -0
- package/dist/gateway/src/services/channels/channel-run-scope.js +208 -0
- package/dist/gateway/src/services/channels/channel-run-scope.js.map +1 -0
- package/dist/gateway/src/services/channels/feishu-approval.d.ts +28 -0
- package/dist/gateway/src/services/channels/feishu-approval.js +152 -0
- package/dist/gateway/src/services/channels/feishu-approval.js.map +1 -0
- package/dist/gateway/src/services/channels/feishu-typing-worker.d.ts +16 -0
- package/dist/gateway/src/services/channels/feishu-typing-worker.js +100 -0
- package/dist/gateway/src/services/channels/feishu-typing-worker.js.map +1 -0
- package/dist/gateway/src/services/channels/native-channel-delivery.d.ts +6 -1
- package/dist/gateway/src/services/channels/native-channel-delivery.js +58 -7
- package/dist/gateway/src/services/channels/native-channel-delivery.js.map +1 -1
- package/dist/gateway/src/services/channels/native-channel-inbox.d.ts +35 -0
- package/dist/gateway/src/services/channels/native-channel-inbox.js +123 -15
- package/dist/gateway/src/services/channels/native-channel-inbox.js.map +1 -1
- package/dist/gateway/src/services/channels/native-feishu-runtime.d.ts +5 -1
- package/dist/gateway/src/services/channels/native-feishu-runtime.js +73 -20
- package/dist/gateway/src/services/channels/native-feishu-runtime.js.map +1 -1
- package/dist/gateway/src/services/channels/native-telegram-runtime.d.ts +34 -0
- package/dist/gateway/src/services/channels/native-telegram-runtime.js +139 -0
- package/dist/gateway/src/services/channels/native-telegram-runtime.js.map +1 -0
- package/dist/gateway/src/services/claude-notification-settings.d.ts +2 -0
- package/dist/gateway/src/services/claude-notification-settings.js +8 -0
- package/dist/gateway/src/services/claude-notification-settings.js.map +1 -1
- package/dist/gateway/src/services/claude-route/forwarder.js +4 -2
- package/dist/gateway/src/services/claude-route/forwarder.js.map +1 -1
- package/dist/gateway/src/services/cli-account/claude-account.d.ts +14 -0
- package/dist/gateway/src/services/cli-account/claude-account.js +197 -0
- package/dist/gateway/src/services/cli-account/claude-account.js.map +1 -0
- package/dist/gateway/src/services/cli-account/codex-account.d.ts +11 -0
- package/dist/gateway/src/services/cli-account/codex-account.js +140 -0
- package/dist/gateway/src/services/cli-account/codex-account.js.map +1 -0
- package/dist/gateway/src/services/cli-account/index.d.ts +9 -0
- package/dist/gateway/src/services/cli-account/index.js +27 -0
- package/dist/gateway/src/services/cli-account/index.js.map +1 -0
- package/dist/gateway/src/services/cli-account/kimi-account.d.ts +12 -0
- package/dist/gateway/src/services/cli-account/kimi-account.js +217 -0
- package/dist/gateway/src/services/cli-account/kimi-account.js.map +1 -0
- package/dist/gateway/src/services/cli-account/mcode-account.d.ts +47 -0
- package/dist/gateway/src/services/cli-account/mcode-account.js +249 -0
- package/dist/gateway/src/services/cli-account/mcode-account.js.map +1 -0
- package/dist/gateway/src/services/cli-account/probe-runner.d.ts +81 -0
- package/dist/gateway/src/services/cli-account/probe-runner.js +181 -0
- package/dist/gateway/src/services/cli-account/probe-runner.js.map +1 -0
- package/dist/gateway/src/services/cli-account/types.d.ts +49 -0
- package/dist/gateway/src/services/cli-account/types.js +2 -0
- package/dist/gateway/src/services/cli-account/types.js.map +1 -0
- package/dist/gateway/src/services/cli-config-apply.d.ts +10 -2
- package/dist/gateway/src/services/cli-config-apply.js +184 -15
- package/dist/gateway/src/services/cli-config-apply.js.map +1 -1
- package/dist/gateway/src/services/cli-config-fields.js +30 -1
- package/dist/gateway/src/services/cli-config-fields.js.map +1 -1
- package/dist/gateway/src/services/cli-config-target.js +20 -1
- package/dist/gateway/src/services/cli-config-target.js.map +1 -1
- package/dist/gateway/src/services/cli-config-yaml.d.ts +37 -0
- package/dist/gateway/src/services/cli-config-yaml.js +77 -0
- package/dist/gateway/src/services/cli-config-yaml.js.map +1 -0
- package/dist/gateway/src/services/cli-config.js +124 -2
- package/dist/gateway/src/services/cli-config.js.map +1 -1
- package/dist/gateway/src/services/cli-notification-policy.d.ts +2 -0
- package/dist/gateway/src/services/cli-notification-policy.js +19 -0
- package/dist/gateway/src/services/cli-notification-policy.js.map +1 -0
- package/dist/gateway/src/services/cli-notification-settings.js +98 -14
- package/dist/gateway/src/services/cli-notification-settings.js.map +1 -1
- package/dist/gateway/src/services/codex-config-probe.d.ts +18 -0
- package/dist/gateway/src/services/codex-config-probe.js +149 -0
- package/dist/gateway/src/services/codex-config-probe.js.map +1 -0
- package/dist/gateway/src/services/collaboration/github-pull-requests.d.ts +4 -4
- package/dist/gateway/src/services/dashboard-summary.d.ts +6 -0
- package/dist/gateway/src/services/dashboard-summary.js +7 -2
- package/dist/gateway/src/services/dashboard-summary.js.map +1 -1
- package/dist/gateway/src/services/development/authority.d.ts +4 -0
- package/dist/gateway/src/services/development/authority.js +56 -6
- package/dist/gateway/src/services/development/authority.js.map +1 -1
- package/dist/gateway/src/services/development/commands.d.ts +2 -0
- package/dist/gateway/src/services/development/commands.js +27 -5
- package/dist/gateway/src/services/development/commands.js.map +1 -1
- package/dist/gateway/src/services/development/contracts.d.ts +10 -0
- package/dist/gateway/src/services/development/contracts.js +1 -1
- package/dist/gateway/src/services/development/contracts.js.map +1 -1
- package/dist/gateway/src/services/development/execution-identity.d.ts +78 -0
- package/dist/gateway/src/services/development/execution-identity.js +33 -0
- package/dist/gateway/src/services/development/execution-identity.js.map +1 -0
- package/dist/gateway/src/services/development/project-diff.d.ts +26 -0
- package/dist/gateway/src/services/development/project-diff.js +194 -0
- package/dist/gateway/src/services/development/project-diff.js.map +1 -0
- package/dist/gateway/src/services/development/project-git-status.d.ts +33 -0
- package/dist/gateway/src/services/development/project-git-status.js +232 -0
- package/dist/gateway/src/services/development/project-git-status.js.map +1 -0
- package/dist/gateway/src/services/development/reconciliation.d.ts +11 -0
- package/dist/gateway/src/services/development/reconciliation.js +93 -0
- package/dist/gateway/src/services/development/reconciliation.js.map +1 -0
- package/dist/gateway/src/services/development/repair-scope.d.ts +43 -0
- package/dist/gateway/src/services/development/repair-scope.js +81 -0
- package/dist/gateway/src/services/development/repair-scope.js.map +1 -0
- package/dist/gateway/src/services/development/runtime.js +16 -18
- package/dist/gateway/src/services/development/runtime.js.map +1 -1
- package/dist/gateway/src/services/development/sandbox-supervisor.js +39 -14
- package/dist/gateway/src/services/development/sandbox-supervisor.js.map +1 -1
- package/dist/gateway/src/services/development/sandbox.d.ts +6 -0
- package/dist/gateway/src/services/development/sandbox.js +43 -6
- package/dist/gateway/src/services/development/sandbox.js.map +1 -1
- package/dist/gateway/src/services/development/state-directory.d.ts +5 -0
- package/dist/gateway/src/services/development/state-directory.js +23 -0
- package/dist/gateway/src/services/development/state-directory.js.map +1 -0
- package/dist/gateway/src/services/development/workspace.d.ts +4 -2
- package/dist/gateway/src/services/development/workspace.js +9 -8
- package/dist/gateway/src/services/development/workspace.js.map +1 -1
- package/dist/gateway/src/services/event-bus.d.ts +46 -1
- package/dist/gateway/src/services/event-bus.js +38 -0
- package/dist/gateway/src/services/event-bus.js.map +1 -1
- package/dist/gateway/src/services/extensions/connection-tools.js +1 -1
- package/dist/gateway/src/services/extensions/connection-tools.js.map +1 -1
- package/dist/gateway/src/services/extensions/public-fetch.d.ts +1 -0
- package/dist/gateway/src/services/extensions/public-fetch.js +1 -1
- package/dist/gateway/src/services/extensions/public-fetch.js.map +1 -1
- package/dist/gateway/src/services/github-skill-source.d.ts +102 -0
- package/dist/gateway/src/services/github-skill-source.js +519 -0
- package/dist/gateway/src/services/github-skill-source.js.map +1 -0
- package/dist/gateway/src/services/integrations/feishu-event-normalizer.js +1 -1
- package/dist/gateway/src/services/integrations/feishu-event-normalizer.js.map +1 -1
- package/dist/gateway/src/services/integrations/feishu-markdown.d.ts +9 -0
- package/dist/gateway/src/services/integrations/feishu-markdown.js +169 -0
- package/dist/gateway/src/services/integrations/feishu-markdown.js.map +1 -0
- package/dist/gateway/src/services/integrations/feishu-native-sender.d.ts +1 -1
- package/dist/gateway/src/services/integrations/feishu-native-sender.js +53 -8
- package/dist/gateway/src/services/integrations/feishu-native-sender.js.map +1 -1
- package/dist/gateway/src/services/integrations/feishu-reactions.d.ts +35 -0
- package/dist/gateway/src/services/integrations/feishu-reactions.js +100 -0
- package/dist/gateway/src/services/integrations/feishu-reactions.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-bot-api.d.ts +33 -0
- package/dist/gateway/src/services/integrations/telegram-bot-api.js +103 -0
- package/dist/gateway/src/services/integrations/telegram-bot-api.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-connection-supervisor.d.ts +66 -0
- package/dist/gateway/src/services/integrations/telegram-connection-supervisor.js +250 -0
- package/dist/gateway/src/services/integrations/telegram-connection-supervisor.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-error-redaction.d.ts +1 -0
- package/dist/gateway/src/services/integrations/telegram-error-redaction.js +19 -0
- package/dist/gateway/src/services/integrations/telegram-error-redaction.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-event-normalizer.d.ts +7 -0
- package/dist/gateway/src/services/integrations/telegram-event-normalizer.js +84 -0
- package/dist/gateway/src/services/integrations/telegram-event-normalizer.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-native-sender.d.ts +8 -0
- package/dist/gateway/src/services/integrations/telegram-native-sender.js +55 -0
- package/dist/gateway/src/services/integrations/telegram-native-sender.js.map +1 -0
- package/dist/gateway/src/services/integrations/telegram-polling-client.d.ts +35 -0
- package/dist/gateway/src/services/integrations/telegram-polling-client.js +112 -0
- package/dist/gateway/src/services/integrations/telegram-polling-client.js.map +1 -0
- package/dist/gateway/src/services/local-skills.d.ts +1 -0
- package/dist/gateway/src/services/local-skills.js +5 -2
- package/dist/gateway/src/services/local-skills.js.map +1 -1
- package/dist/gateway/src/services/mcode-notification-preference.d.ts +49 -0
- package/dist/gateway/src/services/mcode-notification-preference.js +91 -0
- package/dist/gateway/src/services/mcode-notification-preference.js.map +1 -0
- package/dist/gateway/src/services/mcp/mcp-server.d.ts +2 -1
- package/dist/gateway/src/services/mcp/mcp-server.js +197 -22
- package/dist/gateway/src/services/mcp/mcp-server.js.map +1 -1
- package/dist/gateway/src/services/mcp/project-workflow.d.ts +25 -0
- package/dist/gateway/src/services/mcp/project-workflow.js +81 -0
- package/dist/gateway/src/services/mcp/project-workflow.js.map +1 -0
- package/dist/gateway/src/services/mcp/token-authority.d.ts +6 -0
- package/dist/gateway/src/services/mcp/token-authority.js +143 -0
- package/dist/gateway/src/services/mcp/token-authority.js.map +1 -0
- package/dist/gateway/src/services/model-capability-projection.d.ts +22 -0
- package/dist/gateway/src/services/model-capability-projection.js +46 -0
- package/dist/gateway/src/services/model-capability-projection.js.map +1 -0
- package/dist/gateway/src/services/model-endpoint-health.d.ts +1 -0
- package/dist/gateway/src/services/model-endpoint-health.js +2 -1
- package/dist/gateway/src/services/model-endpoint-health.js.map +1 -1
- package/dist/gateway/src/services/network-policy.d.ts +12 -4
- package/dist/gateway/src/services/network-policy.js +40 -9
- package/dist/gateway/src/services/network-policy.js.map +1 -1
- package/dist/gateway/src/services/notification-dedupe.d.ts +41 -0
- package/dist/gateway/src/services/notification-dedupe.js +86 -0
- package/dist/gateway/src/services/notification-dedupe.js.map +1 -0
- package/dist/gateway/src/services/notification-events.js +50 -32
- package/dist/gateway/src/services/notification-events.js.map +1 -1
- package/dist/gateway/src/services/notification-service.d.ts +9 -0
- package/dist/gateway/src/services/notification-service.js +19 -0
- package/dist/gateway/src/services/notification-service.js.map +1 -0
- package/dist/gateway/src/services/notifications/cli-observation.d.ts +138 -0
- package/dist/gateway/src/services/notifications/cli-observation.js +62 -0
- package/dist/gateway/src/services/notifications/cli-observation.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notification-card.d.ts +18 -0
- package/dist/gateway/src/services/notifications/feishu-notification-card.js +133 -0
- package/dist/gateway/src/services/notifications/feishu-notification-card.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notification-directory-client.d.ts +14 -0
- package/dist/gateway/src/services/notifications/feishu-notification-directory-client.js +50 -0
- package/dist/gateway/src/services/notifications/feishu-notification-directory-client.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notification-error.d.ts +4 -0
- package/dist/gateway/src/services/notifications/feishu-notification-error.js +8 -0
- package/dist/gateway/src/services/notifications/feishu-notification-error.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notification-targets.d.ts +27 -0
- package/dist/gateway/src/services/notifications/feishu-notification-targets.js +101 -0
- package/dist/gateway/src/services/notifications/feishu-notification-targets.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notification-worker.d.ts +14 -0
- package/dist/gateway/src/services/notifications/feishu-notification-worker.js +117 -0
- package/dist/gateway/src/services/notifications/feishu-notification-worker.js.map +1 -0
- package/dist/gateway/src/services/notifications/feishu-notifications.d.ts +32 -0
- package/dist/gateway/src/services/notifications/feishu-notifications.js +139 -0
- package/dist/gateway/src/services/notifications/feishu-notifications.js.map +1 -0
- package/dist/gateway/src/services/notifications/observe-cli-hook.d.ts +6 -0
- package/dist/gateway/src/services/notifications/observe-cli-hook.js +55 -0
- package/dist/gateway/src/services/notifications/observe-cli-hook.js.map +1 -0
- package/dist/gateway/src/services/opencode-notification-settings.d.ts +1 -1
- package/dist/gateway/src/services/opencode-notification-settings.js +143 -13
- package/dist/gateway/src/services/opencode-notification-settings.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/actions.d.ts +14 -55
- package/dist/gateway/src/services/platform-commands/actions.js +192 -131
- package/dist/gateway/src/services/platform-commands/actions.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/agent-actions.js +1 -1
- package/dist/gateway/src/services/platform-commands/agent-actions.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/agent-scope.d.ts +0 -2
- package/dist/gateway/src/services/platform-commands/agent-scope.js +10 -38
- package/dist/gateway/src/services/platform-commands/agent-scope.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/catalog.d.ts +51 -8
- package/dist/gateway/src/services/platform-commands/catalog.js +184 -65
- package/dist/gateway/src/services/platform-commands/catalog.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/receipt-projection.js +4 -0
- package/dist/gateway/src/services/platform-commands/receipt-projection.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/session-commands.js +89 -38
- package/dist/gateway/src/services/platform-commands/session-commands.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/tool-commands.js +2 -1
- package/dist/gateway/src/services/platform-commands/tool-commands.js.map +1 -1
- package/dist/gateway/src/services/platform-commands/types.d.ts +22 -1
- package/dist/gateway/src/services/programmatic-terminal-submit.d.ts +7 -0
- package/dist/gateway/src/services/programmatic-terminal-submit.js +68 -9
- package/dist/gateway/src/services/programmatic-terminal-submit.js.map +1 -1
- package/dist/gateway/src/services/project-ai-config.js +6 -0
- package/dist/gateway/src/services/project-ai-config.js.map +1 -1
- package/dist/gateway/src/services/project-config-files.d.ts +1 -1
- package/dist/gateway/src/services/project-config-files.js +10 -1
- package/dist/gateway/src/services/project-config-files.js.map +1 -1
- package/dist/gateway/src/services/project-config-render.d.ts +2 -1
- package/dist/gateway/src/services/project-config-render.js +3 -2
- package/dist/gateway/src/services/project-config-render.js.map +1 -1
- package/dist/gateway/src/services/project-git.js +3 -7
- package/dist/gateway/src/services/project-git.js.map +1 -1
- package/dist/gateway/src/services/project-manager/access.js +1 -1
- package/dist/gateway/src/services/project-manager/access.js.map +1 -1
- package/dist/gateway/src/services/project-manager/management.d.ts +4 -3
- package/dist/gateway/src/services/project-manager/management.js +2 -2
- package/dist/gateway/src/services/project-manager/management.js.map +1 -1
- package/dist/gateway/src/services/project-manager/task-execution.d.ts +92 -0
- package/dist/gateway/src/services/project-manager/task-execution.js +142 -0
- package/dist/gateway/src/services/project-manager/task-execution.js.map +1 -0
- package/dist/gateway/src/services/project-manager/task-packets.js +1 -2
- package/dist/gateway/src/services/project-manager/task-packets.js.map +1 -1
- package/dist/gateway/src/services/project-manager/task-progress.d.ts +124 -0
- package/dist/gateway/src/services/project-manager/task-progress.js +154 -0
- package/dist/gateway/src/services/project-manager/task-progress.js.map +1 -0
- package/dist/gateway/src/services/provider-balance.d.ts +1 -0
- package/dist/gateway/src/services/provider-balance.js +2 -1
- package/dist/gateway/src/services/provider-balance.js.map +1 -1
- package/dist/gateway/src/services/provider-capabilities.js +11 -0
- package/dist/gateway/src/services/provider-capabilities.js.map +1 -1
- package/dist/gateway/src/services/provider-model-fetch.d.ts +1 -0
- package/dist/gateway/src/services/provider-model-fetch.js +2 -1
- package/dist/gateway/src/services/provider-model-fetch.js.map +1 -1
- package/dist/gateway/src/services/redaction.d.ts +2 -0
- package/dist/gateway/src/services/redaction.js +6 -3
- package/dist/gateway/src/services/redaction.js.map +1 -1
- package/dist/gateway/src/services/runtime-settings.d.ts +50 -0
- package/dist/gateway/src/services/runtime-settings.js +206 -0
- package/dist/gateway/src/services/runtime-settings.js.map +1 -0
- package/dist/gateway/src/services/session-launch-plan.d.ts +53 -0
- package/dist/gateway/src/services/session-launch-plan.js +143 -3
- package/dist/gateway/src/services/session-launch-plan.js.map +1 -1
- package/dist/gateway/src/services/session-manager.d.ts +64 -2
- package/dist/gateway/src/services/session-manager.js +270 -41
- package/dist/gateway/src/services/session-manager.js.map +1 -1
- package/dist/gateway/src/services/session-server/hello-handshake.d.ts +1 -1
- package/dist/gateway/src/services/session-server/hello-handshake.js +2 -2
- package/dist/gateway/src/services/session-server/hello-handshake.js.map +1 -1
- package/dist/gateway/src/services/session-server/index.d.ts +1 -1
- package/dist/gateway/src/services/session-server/index.js.map +1 -1
- package/dist/gateway/src/services/session-server/ipc-protocol.d.ts +14 -1
- package/dist/gateway/src/services/session-server/ipc-protocol.js.map +1 -1
- package/dist/gateway/src/services/session-server/ipc-server.d.ts +5 -0
- package/dist/gateway/src/services/session-server/ipc-server.js +28 -0
- package/dist/gateway/src/services/session-server/ipc-server.js.map +1 -1
- package/dist/gateway/src/services/session-server/platform-adapter.d.ts +10 -0
- package/dist/gateway/src/services/session-server/platform-adapter.js +159 -15
- package/dist/gateway/src/services/session-server/platform-adapter.js.map +1 -1
- package/dist/gateway/src/services/session-server/session-handle.d.ts +8 -1
- package/dist/gateway/src/services/session-server/session-handle.js +9 -1
- package/dist/gateway/src/services/session-server/session-handle.js.map +1 -1
- package/dist/gateway/src/services/session-server/session-server.d.ts +14 -0
- package/dist/gateway/src/services/session-server/session-server.js +39 -2
- package/dist/gateway/src/services/session-server/session-server.js.map +1 -1
- package/dist/gateway/src/services/session-server/terminal-notification-scanner.d.ts +80 -0
- package/dist/gateway/src/services/session-server/terminal-notification-scanner.js +253 -0
- package/dist/gateway/src/services/session-server/terminal-notification-scanner.js.map +1 -0
- package/dist/gateway/src/services/session-server/terminal-screen.d.ts +9 -3
- package/dist/gateway/src/services/session-server/terminal-screen.js +10 -4
- package/dist/gateway/src/services/session-server/terminal-screen.js.map +1 -1
- package/dist/gateway/src/services/session-server-client.d.ts +8 -0
- package/dist/gateway/src/services/session-server-client.js +22 -1
- package/dist/gateway/src/services/session-server-client.js.map +1 -1
- package/dist/gateway/src/services/session-stop-target.d.ts +79 -0
- package/dist/gateway/src/services/session-stop-target.js +115 -0
- package/dist/gateway/src/services/session-stop-target.js.map +1 -0
- package/dist/gateway/src/services/session-writer-leases.d.ts +12 -0
- package/dist/gateway/src/services/session-writer-leases.js +25 -2
- package/dist/gateway/src/services/session-writer-leases.js.map +1 -1
- package/dist/gateway/src/services/shell-command-execution.d.ts +72 -0
- package/dist/gateway/src/services/shell-command-execution.js +448 -0
- package/dist/gateway/src/services/shell-command-execution.js.map +1 -0
- package/dist/gateway/src/services/skill-discovery.d.ts +46 -0
- package/dist/gateway/src/services/skill-discovery.js +363 -0
- package/dist/gateway/src/services/skill-discovery.js.map +1 -0
- package/dist/gateway/src/services/skill-fs-install.d.ts +24 -0
- package/dist/gateway/src/services/skill-fs-install.js +150 -0
- package/dist/gateway/src/services/skill-fs-install.js.map +1 -0
- package/dist/gateway/src/services/skill-install-service.d.ts +72 -0
- package/dist/gateway/src/services/skill-install-service.js +346 -0
- package/dist/gateway/src/services/skill-install-service.js.map +1 -0
- package/dist/gateway/src/services/skill-marketplaces.d.ts +59 -0
- package/dist/gateway/src/services/skill-marketplaces.js +420 -0
- package/dist/gateway/src/services/skill-marketplaces.js.map +1 -0
- package/dist/gateway/src/services/skill-package.d.ts +27 -0
- package/dist/gateway/src/services/skill-package.js +135 -0
- package/dist/gateway/src/services/skill-package.js.map +1 -0
- package/dist/gateway/src/services/skill-registry-http.d.ts +8 -0
- package/dist/gateway/src/services/skill-registry-http.js +57 -0
- package/dist/gateway/src/services/skill-registry-http.js.map +1 -0
- package/dist/gateway/src/services/skill-registry-package.d.ts +55 -0
- package/dist/gateway/src/services/skill-registry-package.js +208 -0
- package/dist/gateway/src/services/skill-registry-package.js.map +1 -0
- package/dist/gateway/src/services/skill-resources.d.ts +1 -0
- package/dist/gateway/src/services/skill-resources.js +1 -1
- package/dist/gateway/src/services/skill-resources.js.map +1 -1
- package/dist/gateway/src/services/teams/service.d.ts +7 -7
- package/dist/gateway/src/services/terminal-backend.d.ts +3 -0
- package/dist/gateway/src/services/terminal-notification-ingestion.d.ts +19 -0
- package/dist/gateway/src/services/terminal-notification-ingestion.js +135 -0
- package/dist/gateway/src/services/terminal-notification-ingestion.js.map +1 -0
- package/dist/gateway/src/services/terminal-notification-settings.d.ts +42 -0
- package/dist/gateway/src/services/terminal-notification-settings.js +133 -0
- package/dist/gateway/src/services/terminal-notification-settings.js.map +1 -0
- package/dist/gateway/src/services/usage/kimi-source.d.ts +11 -3
- package/dist/gateway/src/services/usage/kimi-source.js +40 -9
- package/dist/gateway/src/services/usage/kimi-source.js.map +1 -1
- package/dist/gateway/src/services/usage/mcode-source.d.ts +39 -0
- package/dist/gateway/src/services/usage/mcode-source.js +137 -0
- package/dist/gateway/src/services/usage/mcode-source.js.map +1 -0
- package/dist/gateway/src/services/usage/usage-source.d.ts +6 -1
- package/dist/gateway/src/services/usage/usage-source.js.map +1 -1
- package/dist/gateway/src/services/usage/usage-token-syncer.d.ts +1 -1
- package/dist/gateway/src/services/usage/usage-token-syncer.js +3 -1
- package/dist/gateway/src/services/usage/usage-token-syncer.js.map +1 -1
- package/dist/gateway/src/websocket/events.js +17 -0
- package/dist/gateway/src/websocket/events.js.map +1 -1
- package/dist/gateway/src/websocket/terminal-output-flow.d.ts +1 -1
- package/dist/gateway/src/websocket/terminal.js +12 -4
- package/dist/gateway/src/websocket/terminal.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +63 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/version.d.ts +10 -0
- package/dist/runtime/version.js +25 -0
- package/dist/runtime/version.js.map +1 -0
- package/dist/web/standalone/packages/web/.next/BUILD_ID +1 -1
- package/dist/web/standalone/packages/web/.next/app-path-routes-manifest.json +2 -1
- package/dist/web/standalone/packages/web/.next/build-manifest.json +3 -3
- package/dist/web/standalone/packages/web/.next/prerender-manifest.json +51 -27
- package/dist/web/standalone/packages/web/.next/routes-manifest.json +12 -6
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/cli-config/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/automations/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/channels/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/extensions/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/tasks/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/history/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/members/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/models/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/notifications/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page/react-loadable-manifest.json +6 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/import/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/new/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/app-paths-manifest.json +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page/react-loadable-manifest.json +12 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/{copilot/settings/access → skills/discover}/page.js +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page.js.nft.json +1 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/discover/page_client-reference-manifest.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/install/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/app-paths-manifest.json +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/build-manifest.json +18 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/next-font-manifest.json +6 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/react-loadable-manifest.json +12 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page/server-reference-manifest.json +4 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js +14 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.map +5 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page.js.nft.json +1 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/skills/sources/page_client-reference-manifest.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/teams/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/templates/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/usage/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/[projectId]/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page/react-loadable-manifest.json +5 -2
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/workspaces/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk/cli-config.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_full.segment.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/cli-config.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.rsc +25 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot/automations.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_full.segment.rsc +25 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/automations.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.rsc +26 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot/channels.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_full.segment.rsc +26 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/channels.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.rsc +25 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot/extensions.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_full.segment.rsc +25 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/extensions.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.rsc +26 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_full.segment.rsc +26 -23
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/copilot.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot.rsc +25 -25
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_full.segment.rsc +25 -25
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/history.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/history.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk/history.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/history.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/index.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/index.rsc +25 -22
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +25 -22
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/join/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/join.rsc +12 -12
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_full.segment.rsc +12 -12
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/join/__PAGE__.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/join.segments/join.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/login/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/login.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/members.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/members.rsc +25 -25
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk/members.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_full.segment.rsc +25 -25
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/members.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/models.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/models.rsc +28 -27
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk/models.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_full.segment.rsc +28 -27
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/models.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/notifications.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/notifications.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk/notifications.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/notifications.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.rsc +24 -24
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects/import.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_full.segment.rsc +24 -24
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects/import.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.rsc +24 -24
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects/new.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_full.segment.rsc +24 -24
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects/new.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/projects.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/projects.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/register/page.js.nft.json +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register/page_client-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/register.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_full.segment.rsc +13 -13
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/register/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/register.segments/register.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/sessions.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/sessions.rsc +28 -29
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_full.segment.rsc +28 -29
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/settings.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/settings.rsc +28 -27
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_full.segment.rsc +28 -27
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.html +1 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.meta +17 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.rsc +32 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover/__PAGE__.segment.rsc +9 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills/discover.segment.rsc +5 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +5 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_full.segment.rsc +32 -0
- package/dist/web/standalone/packages/web/.next/server/app/{copilot/settings/access.segments → skills/discover.segments}/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_index.segment.rsc +8 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/discover.segments/_tree.segment.rsc +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.rsc +29 -27
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills/install.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_full.segment.rsc +29 -27
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills/install.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.html +1 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.meta +17 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.rsc +32 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources/__PAGE__.segment.rsc +9 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills/sources.segment.rsc +5 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +5 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_full.segment.rsc +32 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_head.segment.rsc +6 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_index.segment.rsc +8 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills/sources.segments/_tree.segment.rsc +3 -0
- package/dist/web/standalone/packages/web/.next/server/app/skills.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/skills.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/teams.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/teams.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk/teams.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_full.segment.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/teams.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/templates.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/templates.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk/templates.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/usage.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/usage.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage/__PAGE__.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk/usage.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_full.segment.rsc +28 -25
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/usage.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces/__PAGE__.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk/workspaces.segment.rsc +3 -3
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_full.segment.rsc +25 -20
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_head.segment.rsc +4 -4
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_index.segment.rsc +6 -6
- package/dist/web/standalone/packages/web/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/dist/web/standalone/packages/web/.next/server/app-paths-manifest.json +2 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0942_@dnd-kit_core_dist_core_esm_06quy3m.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0e0j_zod_v3_external_0q93s3v.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0juq_web__next-internal_server_app_(dashboard)_skills_discover_page_actions_0s10d6r.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0juq_web__next-internal_server_app_(dashboard)_skills_sources_page_actions_120iys8.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0vyr_@hookform_resolvers_zod_dist_zod_mjs_13jikrg._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/0zxb_lucide-react_dist_esm_icons_external-link_0buejti.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/12g__next_dist_esm_build_templates_app-page_0mp8266.js +4 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{12g__next_dist_esm_build_templates_app-page_0hj3-t3.js → 12g__next_dist_esm_build_templates_app-page_0u2wn0p.js} +3 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0-ytd88._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0-yv-w0._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0-~3_py._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0.xbx1g._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000_z4-._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__00pu_nf._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__01gw6cp._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__04y4h09._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__04zzicc._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__059ub-x._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05uxdhs._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__099xvsj._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__05zp5v-._.js → [root-of-the-server]__0b_bfwi._.js} +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0bwa4-1._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dm9ht7._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dwolw1._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0dypek8._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0e4wlbg._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0hdcf1b._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0hyeafb._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0i9m599._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0ixm_tt._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0joovln._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0nayrgw._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0oi0duh._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0p0asvc._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0rnn~dl._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0s85g_~._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6hcz2._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0t6yt~4._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0ue.dgb._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0vdrg8-._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0vhr68-._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0w9fpxt._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0xjgo0p._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0ym8445._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0yni1ey._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~uajh5._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0~x9f4h._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__10ulbpl._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12_~9x3._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__12t8cyh._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-46bd0._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0-c~1pz._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00u25e5._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_029s~22._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02b77w9._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_02q4sxr._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03lvgsp._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_055deww._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_06y~qef._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_081_abe._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_08sy38p._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_08w4krs._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09uis~9._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0_y0lld._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d70f63._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0e2js.7._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0eg167x._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0k0ia-e._.js +7 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0l2_hbr._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0nko1ur._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0of~gco._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0pgj5uk._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0q78tdj._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r7r2dd._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0r8225d._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0s2linz._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0u.z_-u._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0uhabr0._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0upw.g1._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vxw15j._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0wz9mfr._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x14feb._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0z-ne1w._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~z3iws._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_11yi7~7._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_12w9fro._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_130nfm2._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_132t5iu._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13cs2xv._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_13jwtym._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/node_modules__pnpm_04syrba._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0dcra4_._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0euki8~._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0p9lxjb._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xlg_r9._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_0xsup7i._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_members_page_tsx_036.9by._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_models_page_tsx_0_ccn2i._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_page_tsx_04lc303._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_projects_[id]_page_tsx_0pmq-e9._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_[id]_page_tsx_0x9_6se._.js +3 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_sessions_page_tsx_0phmhty._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_settings_page_tsx_05ku4-o._.js +2 -2
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_skills_page_tsx_096j6mw._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_templates_page_tsx_0.s32f~._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_(dashboard)_usage_page_tsx_018s0ua._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_CopilotExtensionsPage_tsx_0jl0nnn._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_DevelopmentTasks_tsx_0fr61i5._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_session-tabs_tsx_0qnm.9x._.js +3 -0
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_select_tsx_0led5xt._.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/middleware-build-manifest.js +3 -3
- package/dist/web/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/dist/web/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0-8d_w3npya8o.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0.1mxnjmxr~su.js +5 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0.athqv8ojt0q.js +3 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0.s72kofo_rqw.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/00gq~jtzei49d.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/01u~p.mfnnn02.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/02tbf1dbhnqcj.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{01_gytnzf~ik-.js → 02tn25zg7z463.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/04z6sbk30kk_r.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/04~5~zhq-13bw.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/053cmh-o17957.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/06tu7kgxg31~o.js +2 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/06u~yrka~n0q1.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/07_bj2hhs1b~b.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/07ikcry4s28l9.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0b5zptp8.z.nn.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0b_338udx-~jl.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0ecg~muitl4rl.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0eg3_d4n2kkia.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0equ6w7v0pt2c.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0f4~n_u2rd.u..js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0fjt5fv~.5gyl.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{04r2nmtpcfrz..js → 0g.bgavgt6uke.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0g.jepdilt76o.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0i4_5dn3hx-l4.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0jdbsw64_fybj.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0l2ojgpvlde~a.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0lgdaqjuo1zdw.css +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0n8lawbi2_4vp.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0ouh2tpsjqi5m.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0qz5kbcs~i-jm.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0rvmfvjpdwe.w.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0spmlj~6fltww.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0s~9.kdkdky_4.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0t8mzjjlw~wnz.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0tgs66vwkse.2.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0txrk44pdmdsw.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0ujyee4n5.vxl.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0uqsh8sbcz046.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0v-8fk68e-ugm.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0v4~sp3bx1l88.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0y2ze6bljklix.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0y8vr-14-90yt.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0yy-wz1k_sil_.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/0z6vq-3bfwo0y.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0wys15fa7nhtt.js → 0~cm.ike75hqk.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0~kf3_6b2c_lt.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{0y._brrinmy-y.js → 1052k.mfsf9ib.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/11y_6l.0_a2jc.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/12kzd4cqtbqk~.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/13e0ddfy-03de.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/13wgo~3bv23zr.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/{02cfennlupsr5.js → 140zf2tofmr6d.js} +1 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/17jci4t~zq7c9.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/17lr--xdjl9wa.js +1 -0
- package/dist/web/standalone/packages/web/.next/static/chunks/185bxlmpgwiu-.js +1 -0
- package/dist/web/standalone/packages/web/public/brand/cli/codex.svg +5 -1
- package/dist/web/standalone/packages/web/public/brand/cli/kimi.svg +1 -1
- package/dist/web/standalone/packages/web/public/brand/cli/mcode.svg +1 -0
- package/dist/web/standalone/packages/web/public/brand/fonts/OFL.txt +93 -0
- package/dist/web/standalone/packages/web/public/brand/fonts/forgebadger-nerd-bold.ttf +0 -0
- package/dist/web/standalone/packages/web/public/brand/fonts/forgebadger-nerd-regular.ttf +0 -0
- package/dist/web/standalone/packages/web/public/favicon.ico +0 -0
- package/dist/web/standalone/packages/web/public/pets/honey-badger-v3/sit.webp +0 -0
- package/dist/web/standalone/packages/web/public/pets/honey-badger-v3/stand.webp +0 -0
- package/dist/web/standalone/packages/web/public/pets/honey-badger-v3/walk.webp +0 -0
- package/docs/README.zh-CN.md +10 -0
- package/docs/README.zh-TW.md +10 -0
- package/package.json +9 -9
- package/dist/gateway/src/db/repositories/copilot-grant-repository.d.ts +0 -40
- package/dist/gateway/src/db/repositories/copilot-grant-repository.js +0 -53
- package/dist/gateway/src/db/repositories/copilot-grant-repository.js.map +0 -1
- package/dist/gateway/src/services/codex-native-auth-status.d.ts +0 -22
- package/dist/gateway/src/services/codex-native-auth-status.js +0 -84
- package/dist/gateway/src/services/codex-native-auth-status.js.map +0 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/access/page/app-paths-manifest.json +0 -3
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/access/page/react-loadable-manifest.json +0 -9
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/access/page.js.nft.json +0 -1
- package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/copilot/settings/access/page_client-reference-manifest.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.html +0 -1
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.meta +0 -18
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.rsc +0 -27
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/!KGRhc2hib2FyZCk/copilot/settings/access/__PAGE__.segment.rsc +0 -6
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/!KGRhc2hib2FyZCk/copilot/settings/access.segment.rsc +0 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/!KGRhc2hib2FyZCk/copilot/settings.segment.rsc +0 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/!KGRhc2hib2FyZCk/copilot.segment.rsc +0 -5
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/_full.segment.rsc +0 -27
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/_index.segment.rsc +0 -8
- package/dist/web/standalone/packages/web/.next/server/app/copilot/settings/access.segments/_tree.segment.rsc +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/06ld_server_app_(dashboard)_copilot_settings_access_page_actions_0-w4z-w.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__03qqlsf._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__05_yw9~._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0e0am7z._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0oun.k-._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__0y-e.fw._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__135gcxh._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0.2ld7q._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_00.0g-5._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_01h5sc6._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_03t4dqx._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_04ioa9k._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_05rbfok._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_07sqde5._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0941x7t._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_09~uay9._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0anvf8m._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0atn-ml._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0c3twpg._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0d4~sy4._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0f1dcy2._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0f6qxtj._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0fbdold._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0h3beoe._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0inc1dm._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0i~~g8h._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0p3urqy._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0qi9cog._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0rc9ewt._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0vf07~e._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0x1-w0e._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~t_uoo._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_0~wir~e._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_10h.hnm._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_11586ck._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/_11dpryf._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/node_modules__pnpm_0eo3d7_._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/node_modules__pnpm_0hfdzjb._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/node_modules__pnpm_0mls2za._.js +0 -7
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_08mhbmm._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_12cpu6n._.js +0 -3
- package/dist/web/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_copilot_0mvr-eu._.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0..mi~ip7knx..js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0.4~~7f7.7nat.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0.iplf~527jxz.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0.uku9w_tku_y.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/00a29f0n_owqb.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/00nyo39rsq7i8.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/00pacdmo8d9v~.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/00~iuhivx6vaz.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/012n34zp1cx_n.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/01qswe5yw6zti.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0269he.njfzan.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/05mebsn5x~f7z.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/05pjsamrc9hw8.css +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/06k2e3bpaue8l.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/08i6pyfaut9bg.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/09ue~77p.85v3.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0a812oghcxixr.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0abzy49yu-md1.js +0 -2
- package/dist/web/standalone/packages/web/.next/static/chunks/0av6gt_66dv~q.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0belg47nkwgq6.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0bihh5ze2~z1f.js +0 -5
- package/dist/web/standalone/packages/web/.next/static/chunks/0bwb7o-xmqgh9.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0c2pxjg6tacjx.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0cnz9fv.au4.r.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0h73tv8xwqxqw.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0jm.qk52w_wlq.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0kl7osb_ugtrb.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0kuv_jfsd~d34.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0l2c60o_7mt7g.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0lgu8uprqf5l5.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0ljywx8uhruo~.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0mx93hpu5af8p.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0omo_v~lr8w_w.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0owwl5ly1~5em.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0pav25z50nsff.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0q~8nf7do6jft.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0rcf89hmdwpcw.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0ro2__iu505.1.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0rxi1_itf74bl.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0v0jdpyx4p.1c.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0v_2~m-2hqn2..js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0vxu682behxa7.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0wel25michro~.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/10eii2rij6zzf.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/13ehygx5durlz.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/17b.cxsg0c75d.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/180yq_t-g35fr.js +0 -1
- /package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/{copilot/settings/access → skills/discover}/page/build-manifest.json +0 -0
- /package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/{copilot/settings/access → skills/discover}/page/next-font-manifest.json +0 -0
- /package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/{copilot/settings/access → skills/discover}/page/server-reference-manifest.json +0 -0
- /package/dist/web/standalone/packages/web/.next/server/app/(dashboard)/{copilot/settings/access → skills/discover}/page.js.map +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{lcO9z98BJ26kFzrqXH-ot → rZYlH0_cQ6CsojVFUjtlA}/_buildManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{lcO9z98BJ26kFzrqXH-ot → rZYlH0_cQ6CsojVFUjtlA}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{lcO9z98BJ26kFzrqXH-ot → rZYlH0_cQ6CsojVFUjtlA}/_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(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(97494),t=a.i(4730),u=a.i(12599),v=a.i(94851),w=a.i(13375),x=a.i(56390),y=a.i(21592),z=a.i(83164),A=a.i(14060),B=a.i(91638),C=a.i(79914),D=a.i(39042),E=a.i(39465);function F({sessionId:c,authToken:d,open:f,onClose:g}){let{t:h}=(0,C.useLanguage)(),i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null),[m,n]=(0,e.useState)("idle"),[o,p]=(0,e.useState)(""),q=(0,e.useCallback)(async()=>(0,D.fetchJson)(`/api/v1/sessions/${c}/output`),[c]),r=(0,e.useCallback)(a=>{l.current=a;let b=j.current;b&&(b.reset(),a.output&&b.write(a.output))},[]),t=(0,e.useCallback)(async()=>{n("loading"),p("");try{let a=await q();r(a),n("ready")}catch(a){p(a instanceof Error?a.message:String(a)),n("error")}},[q,r]);if((0,e.useEffect)(()=>{if(!f)return;let b=!1;return Promise.all([a.A(35445),a.A(41690)]).then(([a,c])=>{if(b)return;let d=i.current;if(!d)return;let e=new a.Terminal({scrollback:1e5,cursorBlink:!1,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace',fontSize:14,theme:{background:"#05070a",foreground:"#e5edf7",cursor:"#5cc8ff"}});e.attachCustomKeyEventHandler(()=>!1);let f=new c.FitAddon;e.loadAddon(f),e.open(d),j.current=e,k.current=f,f.fit();let g=l.current;g&&(e.reset(),g.output&&e.write(g.output))}),()=>{b=!0,j.current?.dispose(),j.current=null,k.current=null}},[f]),(0,e.useEffect)(()=>{if(f){if(!d){n("error"),p(h("terminal.historyLoadFailed"));return}t()}},[f,d,t,h]),(0,e.useEffect)(()=>{if(!f)return;let a=()=>k.current?.fit();a(),window.addEventListener("resize",a);let b="u"<typeof ResizeObserver?null:new ResizeObserver(a),c=i.current;return b&&c&&b.observe(c),()=>{window.removeEventListener("resize",a),b?.disconnect()}},[f]),!f)return null;let u="ready"===m&&(!l.current||0===l.current.lineCount);return(0,b.jsxs)("div",{"data-testid":"session-output-history",className:"absolute inset-0 z-20 flex flex-col overflow-hidden bg-[#05070a]",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)(s.Button,{type:"button",variant:"ghost",size:"icon-sm",className:"size-6 text-muted-foreground hover:text-foreground",onClick:()=>void t(),disabled:"loading"===m,title:h("terminal.historyRefresh"),"aria-label":h("terminal.historyRefresh"),children:(0,b.jsx)(A.RefreshCw,{className:(0,E.cn)("size-3.5","loading"===m&&"animate-spin")})}),(0,b.jsx)(s.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)(B.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:i,"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"===m&&(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"===m&&(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:o}),(0,b.jsx)(s.Button,{type:"button",variant:"outline",size:"sm",className:"mt-3",onClick:()=>void t(),children:h("terminal.historyRefresh")})]})}),u&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:h("terminal.historyEmpty")})]})]})}async function G(a,b=globalThis.navigator?.clipboard){let c=a.getSelection();if(!c)return!1;if(b?.writeText)return await b.writeText(c),!0;if("u"<typeof document)return!1;let d=document.createElement("textarea");d.value=c,d.setAttribute("readonly","true"),d.style.position="fixed",d.style.left="-9999px",document.body.appendChild(d),d.select();try{return document.execCommand("copy")}finally{document.body.removeChild(d)}}let H=/\x1b\[[0-9;?]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b[a-zA-Z]/g;function I(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function J(a,b){a.current?.dispose(),a.current=b}var K=a.i(44600);let L=[1e3,2e3,5e3,1e4,3e4];function M({sessionId:c,authToken:d,attachToken:i,historyOpen:j=!1,onHistoryClose:k}){let l,m,{t:n}=(0,C.useLanguage)(),o=(l=(0,f.useQuery)({queryKey:["session-writer",c],queryFn:()=>(0,z.getSessionWriter)(c),refetchInterval:2e3}),m=(0,g.useMutation)({mutationFn:()=>(0,z.takeoverSession)(c),onSuccess:async()=>{await l.refetch()}}),{readOnly:!l.data||l.isError||"automated"===l.data.mode,loading:l.isPending,error:l.error??m.error,takingOver:m.isPending,takeover:()=>m.mutate(),refresh:()=>void l.refetch()}),p=(0,h.useQueryClient)(),q=(0,e.useRef)(o);q.current=o;let r=(0,e.useRef)(null),t=(0,e.useRef)(null),u=(0,e.useRef)(null),v=(0,e.useRef)(null),w=(0,e.useRef)(null),A=(0,e.useRef)(0),B=(0,e.useRef)(null),N=(0,e.useRef)(null),O=(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(H," ").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"}}}()),P=(0,e.useRef)(null),Q=(0,e.useRef)(!0),R=(0,e.useRef)(0),S=(0,e.useRef)(!0),[T,U]=(0,e.useState)("connecting"),[V,W]=(0,e.useState)(0),[X,Y]=(0,e.useState)(!1),[Z,$]=(0,e.useState)(!0),_=(0,e.useCallback)((a,b)=>{(0,D.updateSessionLastPrompt)(a,b).then(()=>p.invalidateQueries({queryKey:["sessions-board"]})).catch(a=>{console.warn("Failed to report session last prompt",a)})},[p]),aa=(0,e.useCallback)(()=>{null!==w.current&&(clearTimeout(w.current),w.current=null)},[]),ab=(0,e.useCallback)(()=>{let a=t.current;if(!a)return;let b=a.buffer.active,c="normal"!==b.type||b.viewportY>=b.baseY;S.current!==c&&(S.current=c,$(c))},[]),ac=(0,e.useCallback)(()=>{let a=t.current;if(!a)return;let b=a.buffer.active;"normal"!==b.type||b.viewportY>=b.baseY||Date.now()-R.current<1e4||(a.scrollToBottom(),ab())},[ab]),ad=(0,e.useCallback)(()=>{let a=t.current;a&&(a.scrollToBottom(),R.current=0,S.current=!0,$(!0))},[]),ae=(0,e.useCallback)((a=!1)=>{var b,c,d;let e=t.current,f=u.current;if(!e||!f)return;f.fit();let g=v.current;if(!g||g.readyState!==WebSocket.OPEN)return;let h=P.current,i=!h||h.cols!==e.cols||h.rows!==e.rows;if(!a&&!i)return;let j=(c=(b={cols:e.cols,rows:e.rows}).cols,d=b.rows,Number.isInteger(c)&&Number.isInteger(d)&&c>0&&d>0&&c<=500&&d<=200)?JSON.stringify({type:"terminal_resize",payload:{cols:b.cols,rows:b.rows}}):null;j&&(g.send(j),P.current={cols:e.cols,rows:e.rows})},[]),af=(0,e.useCallback)(()=>{if(!Q.current||!X)return;if(!d||!i)return void U("disconnected");let a=new WebSocket((0,K.terminalWebSocketUrl)(c),(0,K.terminalWebSocketProtocols)(d,i));v.current=a,a.addEventListener("open",()=>{Q.current&&v.current===a&&(A.current=0,W(0),U("connected"),P.current=null,ae(!0),window.setTimeout(()=>{Q.current&&ae()},400))}),a.addEventListener("message",b=>{let c=t.current;if(!c||!Q.current||v.current!==a)return;let d=function(a){let b;if("string"!=typeof a)return null;try{b=JSON.parse(a)}catch{return null}if(!I(b)||!I(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}}}}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));d&&("terminal_history"===d.type&&c.reset(),("terminal_history"===d.type||"terminal_output"===d.type)&&(ac(),c.write(d.payload.data,()=>{ab(),void 0!==d.payload.sequence&&Q.current&&v.current===a&&a.readyState===WebSocket.OPEN&&a.send(JSON.stringify({type:"terminal_ack",payload:{sequence:d.payload.sequence}}))})),"terminal_exit"===d.type&&(aa(),J(B,null),v.current=null,a.close(1e3),U("disconnected"),q.current.refresh()),"terminal_error"===d.type&&(q.current.refresh(),c.writeln(`\r
|
|
2
|
-
[forgebadger] ${d.payload.message}`)))}),a.addEventListener("close",b=>{let c;if(!Q.current||v.current!==a)return;if(v.current=null,[1e3,4e3,4403,4404].includes(b.code)||b.wasClean&&![1011,4001].includes(b.code)){J(B,null),U("disconnected");return}J(B,null);let d=A.current+1;(A.current=d,W(d),d>10)?U("failed"):(U("reconnecting"),w.current=setTimeout(()=>{w.current=null,af()},(c=Math.min(d-1,L.length-1),L[c])))});let b=t.current;b&&(J(B,null),J(B,b.onData(b=>{if(q.current.readOnly)return;let d=O.current.push(b);d&&((0,x.setSessionTabPrompt)(c,d),(0,x.notifySessionTabsChanged)(),_(c,d)),a.readyState===WebSocket.OPEN&&a.send(JSON.stringify({type:"terminal_input",payload:{data:b}}))})))},[c,d,i,X,ae,aa,ac,ab,_]),ag=(0,e.useCallback)(()=>{aa(),A.current=0,W(0),v.current&&(v.current.close(),v.current=null),U("connecting"),af()},[aa,af]);(0,e.useEffect)(()=>{let b=!1,c=null,d=a=>{a.deltaY<0&&(R.current=Date.now())},e=window.setTimeout(()=>{Promise.all([a.A(35445),a.A(41690)]).then(([a,e])=>{let f=r.current;if(b||!f)return;let g=new a.Terminal({cursorBlink:!0,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace',fontSize:14,theme:{background:"#05070a",foreground:"#e5edf7",cursor:"#5cc8ff"}});g.attachCustomKeyEventHandler(a=>!("keydown"===a.type&&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,g.hasSelection()))||(a.preventDefault(),G(g),!1)),g.attachCustomWheelEventHandler(a=>{var b,c;return"suppress"!=(b=g.buffer.active.type,c="none"!==g.modes.mouseTrackingMode,"alternate"!==b||c?"allow":"suppress")||(a.preventDefault(),!1)});let h=new e.FitAddon;g.loadAddon(h),g.open(f),t.current=g,u.current=h,c=g.onScroll(ab),f.addEventListener("wheel",d,{capture:!0,passive:!0}),window.requestAnimationFrame(()=>{b||(h.fit(),Y(!0))})})},0);return()=>{b=!0,window.clearTimeout(e),Y(!1),c?.dispose(),r.current?.removeEventListener("wheel",d,{capture:!0}),t.current?.dispose(),t.current=null,u.current=null}},[ab]),(0,e.useEffect)(()=>{if(X)return d&&i?(Q.current=!0,U("connecting"),af(),()=>{Q.current=!1,aa(),J(B,null),v.current&&(v.current.close(),v.current=null)}):void U("disconnected")},[d,i,af,aa,X]),(0,e.useEffect)(()=>{if(!X)return;let a=()=>ae(),b=()=>{"visible"===document.visibilityState&&ae()};a(),window.addEventListener("resize",a),document.addEventListener("visibilitychange",b),N.current=a;let c="u"<typeof ResizeObserver?null:new ResizeObserver(a),d=r.current;return c&&d&&(c.observe(d),d.parentElement&&c.observe(d.parentElement)),()=>{window.removeEventListener("resize",a),document.removeEventListener("visibilitychange",b),c?.disconnect(),N.current=null}},[X,ae]);let ah="reconnecting"===T,ai="failed"===T,aj="connected"!==T,ak="connected"===T?"bg-emerald-500":"reconnecting"===T?"bg-amber-400":"failed"===T?"bg-red-500":"bg-muted-foreground";return(0,b.jsxs)("div",{"data-testid":"terminal-frame",className:(0,E.cn)("grid h-full min-h-0 overflow-hidden bg-[#05070a]",aj?"grid-rows-[auto_minmax(0,1fr)]":"grid-rows-[minmax(0,1fr)]"),children:[aj&&(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 border-b border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:(0,E.cn)("size-2 rounded-full",ak),"aria-hidden":"true"}),(0,b.jsx)("span",{"aria-live":"polite",children:T}),V>0&&(0,b.jsxs)("span",{className:"text-amber-300",children:[V,"/",10]}),(0,b.jsxs)("span",{className:"min-w-0 truncate font-mono",children:["session ",c]})]}),!aj&&(0,b.jsx)("span",{"aria-live":"polite",className:"sr-only",children:T}),d&&i?null:(0,b.jsx)("div",{className:"p-4 text-sm text-destructive",children:n("terminal.missingCredentials")}),(0,b.jsxs)("div",{className:"relative flex h-full min-h-0 flex-col overflow-hidden p-2",children:[o.readOnly&&(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2 rounded-md border border-amber-500/40 p-2 text-xs text-amber-300",role:"status",children:[(0,b.jsx)("span",{children:o.loading?"正在检查终端写入权限…":o.error?"写入状态同步失败,终端保持只读。":"Copilot 正在操作此工作区,终端只读。"}),(0,b.jsx)(s.Button,{size:"sm",variant:"outline",disabled:o.loading||o.takingOver,onClick:o.takeover,children:"接管终端"}),(0,b.jsx)(s.Button,{size:"sm",variant:"ghost",onClick:o.refresh,children:"刷新状态"}),o.error&&(0,b.jsx)("span",{role:"alert",children:o.error.message})]}),(0,b.jsx)("div",{ref:r,"data-testid":"terminal-host",className:"min-h-0 flex-1 [&_.xterm-screen]:!h-full [&_.xterm-viewport]:!h-full [&_.xterm]:h-full"}),!Z&&(0,b.jsxs)(s.Button,{type:"button",size:"sm",variant:"secondary",onClick:ad,className:"absolute bottom-4 right-4 z-10 gap-1 shadow","aria-label":n("terminal.backToBottom"),children:[(0,b.jsx)(y.ArrowDown,{className:"size-3.5"}),n("terminal.backToBottom")]}),j&&(0,b.jsx)(F,{sessionId:c,authToken:d,open:j,onClose:()=>k?.()}),ah&&(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:[n("terminal.reconnecting"),"… (",V,"/",10,")"]})})}),ai&&(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:n("terminal.connectionLost")}),(0,b.jsx)(s.Button,{variant:"outline",size:"sm",onClick:ag,className:"text-red-400 border-red-400/50 hover:bg-red-400/10",children:n("terminal.reconnect")})]})})]})]})}var N=a.i(29649),O=a.i(85564),P=a.i(89738),Q=a.i(26421),R=a.i(6391),S=a.i(91569);function T(a){return Math.min(100,Math.max(0,Math.round(a)))}function U(a){return Number.isInteger(a)?String(a):a.toFixed(2).replace(/0+$/,"").replace(/\.$/,"")}let V=new Set(["claude","opencode","codex","kimi","pi"]);function W({aiTool:a}){let{t:c}=(0,C.useLanguage)(),d=V.has(a),e=(0,f.useQuery)({queryKey:["applied-provider",a],queryFn:()=>(0,D.getAppliedProviderForAdapter)(a),enabled:d,retry:!1}),g=e.data?.appliedProvider??null,h=g?.providerProfileId,i=(0,f.useQuery)({queryKey:["provider-balance",h],queryFn:()=>(0,D.checkProviderBalance)(h),enabled:!!h,refetchInterval:6e4,refetchOnWindowFocus:!0,retry:!1});if(!d)return null;let j=i.data,k=i.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)(S.Gauge,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"shrink-0",children:c("sessions.providerQuota")}),g&&(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:g.providerName,children:g.providerName})]}),h&&(0,b.jsx)(s.Button,{variant:"ghost",size:"icon",className:"size-6 shrink-0 text-muted-foreground",disabled:k,onClick:()=>void i.refetch(),"aria-label":c("sessions.providerQuotaRefresh"),title:c("sessions.providerQuotaRefresh"),children:(0,b.jsx)(A.RefreshCw,{className:(0,E.cn)("size-3",k&&"animate-spin")})})]}),g?i.error?(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:c("sessions.providerQuotaLoadFailed")}):j?j.supported?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{className:"mt-3 space-y-2",children:j.balances.map(a=>(0,b.jsx)(X,{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(j.checkedAt).toLocaleTimeString(),k&&" ·…"]})]}):(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:"…"}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:c("sessions.providerQuotaEmpty")})]})}function X({entry:a}){let{t:c}=(0,C.useLanguage)(),d="%"===a.unit?T(100-a.remaining):void 0===a.limit||a.limit<=0?null:T((1-a.remaining/a.limit)*100);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!==d?(0,b.jsxs)("span",{className:(0,E.cn)("shrink-0 text-sm font-semibold tabular-nums",d>=80?"text-red-400":d>=50?"text-amber-400":"text-emerald-400"),title:`${c("sessions.providerQuotaUsed")} ${d}%`,children:[d,(0,b.jsx)("span",{className:"text-[10px] font-normal",children:"%"})]}):(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] tabular-nums",children:[U(a.remaining)," ",a.unit]})]}),null!==d&&(0,b.jsx)("div",{className:"mt-1.5 h-2 overflow-hidden rounded-full bg-muted/60",role:"progressbar","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`${a.label} ${c("sessions.providerQuotaUsed")} ${d}%`,title:`${c("sessions.providerQuotaUsed")} ${d}%`,children:(0,b.jsx)("div",{className:(0,E.cn)("h-full rounded-full transition-[width] duration-700 ease-out",d>=80?"bg-gradient-to-r from-red-600 to-red-400":d>=50?"bg-gradient-to-r from-amber-600 to-amber-400":"bg-gradient-to-r from-emerald-600 to-emerald-400"),style:{width:`${d}%`}})}),(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:[U(a.remaining)," / ",U(a.limit)," ",a.unit]}):"%"===a.unit?(0,b.jsxs)("span",{className:"font-mono tabular-nums",children:[c("sessions.providerQuotaRemaining")," ",U(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()]})]})]})}var Y=a.i(14365),Z=a.i(99350),$=a.i(6707),_=a.i(27025);function aa(){let{t:a}=(0,C.useLanguage)(),f=(0,c.useRouter)(),{notifications:g,unreadCount:h,markRead:i,markAllRead:j}=(0,$.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)(Z.Popover,{open:k,onOpenChange:l,children:[(0,b.jsx)(Z.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)(s.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)(Y.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)(Z.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,_.notificationContextParts)(c,n).length>0&&(0,b.jsx)("span",{className:"truncate text-[10px] text-muted-foreground/75",children:(0,_.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 ab=/\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,ac=/\b(?:todo|tbd|fixme|xxx|placeholder)\b/iu,ad=/(?:^|\n)\s*(?:[$#>]\s+\S+|[A-Z0-9_]+=[^\s]+\s+\S+)|\x1b\[[0-9;]*[A-Za-z]/u;function ae(a){return 0===a.length?"- None recorded":a.map(a=>`- ${a}`).join("\n")}function af({sessionId:a}){let{t:c}=(0,C.useLanguage)();return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-border px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(s.Button,{asChild:!0,variant:"ghost",size:"sm",children:(0,b.jsxs)(d.default,{href:"/sessions",children:[(0,b.jsx)(i.ArrowLeft,{className:"size-4"}),c("sessions.back")]})}),(0,b.jsxs)("span",{className:"truncate text-sm font-medium",children:["Session ",a]})]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,b.jsx)(aa,{})})]})}function ag({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)(ah,{error:e,isFetching:f,session:c,taskPacket:d}),c?.aiTool?(0,b.jsx)(W,{aiTool:c.aiTool}):null,a?(0,b.jsx)(R.GitChangesPanel,{projectId:a}):null]})})}function ah({error:a,isFetching:c,session:e,taskPacket:f}){var g,h;let{t:i}=(0,C.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)(t.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.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,b.jsx)(ak,{label:i("sessions.taskPacketWorkItem"),value:f.title}),(0,b.jsx)(ak,{label:i("sessions.taskPacketRuntime"),value:`${f.runtime.adapter} / ${f.runtime.templateId}`}),(0,b.jsx)(ak,{label:i("sessions.taskPacketLinkedSession"),value:f.sessionLink?`${f.sessionLink.sessionId} / ${f.sessionLink.status}`:"-"})]}),(0,b.jsxs)("div",{className:"mt-3",children:[(0,b.jsx)("div",{className:"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})]}),(0,b.jsx)(al,{title:i("sessions.taskPacketAcceptanceCriteria"),values:f.acceptanceCriteria}),(0,b.jsx)(al,{title:i("sessions.taskPacketExpectedVerification"),values:f.expectedVerification}),(0,b.jsx)(al,{title:i("sessions.taskPacketEvidenceRequirements"),values:f.evidenceRequirements}),(0,b.jsx)(s.Button,{asChild:!0,variant:"outline",size:"sm",className:"mt-3 w-full justify-start",children:(0,b.jsxs)(d.default,{href:(0,Q.sessionTaskPacketProjectManagerHref)(f),children:[(0,b.jsx)(n.ExternalLink,{className:"mr-2 size-3"}),i("sessions.taskPacketOpenWorkItem")]})}),e&&(0,b.jsx)(ai,{session:e,taskPacket:f})]})}function ai({session:a,taskPacket:c}){let{t:d}=(0,C.useLanguage)(),[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r]=(0,e.useState)(()=>new Date().toISOString()),t=(0,e.useMemo)(()=>({generatedAt:r,openReviewItems:j,operatorNotes:f,session:a,taskPacket:c,verificationNotes:h}),[r,j,f,a,c,h]),v=(0,e.useMemo)(()=>{let a,b;return a=new Set,t.operatorNotes.trim()||a.add("operator_notes_required"),t.verificationNotes.trim()||a.add("verification_notes_required"),b=[t.taskPacket.title,t.taskPacket.prompt,...t.taskPacket.acceptanceCriteria,...t.taskPacket.expectedVerification,...t.taskPacket.evidenceRequirements,t.operatorNotes,t.verificationNotes,t.openReviewItems].join("\n"),ab.test(b)&&a.add("secret_like_value"),ac.test(b)&&a.add("placeholder_text"),ad.test(b)&&a.add("raw_terminal_dump"),Array.from(a)},[t]),w=(0,e.useMemo)(()=>{var a;let b,c;return 0===v.length?[`# Session Handoff: ${t.taskPacket.title}`,"\n## Metadata",`- Generated at: ${t.generatedAt}`,`- Project: ${t.taskPacket.projectId}`,`- Work item: ${t.taskPacket.workItemId}`,`- Session: ${t.session.id}`,`- Session status: ${t.session.status}`,`- Runtime: ${t.taskPacket.runtime.adapter} / ${t.taskPacket.runtime.templateId}`,`- Queue status: ${t.taskPacket.queueStatus}`,"\n## Task Prompt",(b=Math.max(0,...Array.from((a=t.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",ae(t.taskPacket.acceptanceCriteria),"\n## Expected Verification",ae(t.taskPacket.expectedVerification),"\n## Evidence Requirements",ae(t.taskPacket.evidenceRequirements),"\n## Operator Notes",t.operatorNotes.trim(),"\n## Verification Notes",t.verificationNotes.trim(),"\n## Open Review Items",t.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"):""},[v.length,t]),x=async()=>{try{await navigator.clipboard.writeText(w),q(!0),o(null)}catch{q(!1),o(d("sessions.handoffCopyFailed"))}};return(0,b.jsxs)("div",{className:"mt-4 border-t border-border/70 pt-3","data-testid":"session-handoff-export",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:d("sessions.handoffExport")}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-5 text-muted-foreground",children:d("sessions.handoffExportDescription")}),(0,b.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,b.jsx)(aj,{label:d("sessions.handoffOperatorNotes"),value:f,onChange:g}),(0,b.jsx)(aj,{label:d("sessions.handoffVerificationNotes"),value:h,onChange:i}),(0,b.jsx)(aj,{label:d("sessions.handoffOpenReviewItems"),value:j,onChange:k})]}),v.length>0?(0,b.jsxs)("div",{className:"mt-3 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:v.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:"mt-3 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)(u.Textarea,{className:"mt-2 min-h-56 font-mono text-xs",readOnly:!0,value:w}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(s.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void x(),children:[(0,b.jsx)(l.Copy,{className:"mr-2 size-3"}),p?d("sessions.handoffCopied"):d("sessions.handoffCopy")]}),(0,b.jsxs)(s.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{let a,b,c=new Blob([`${w}
|
|
3
|
-
`],{type:"text/markdown;charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,a=
|
|
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)}];
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_sessions_%5Bid%5D_page_tsx_0x9_6se._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[45132,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(72637),e=a.i(13376),f=a.i(4837),g=a.i(39747),h=a.i(26248),i=a.i(44935),j=a.i(60420),k=a.i(90259),l=a.i(94327),m=a.i(97494),n=a.i(62384),o=a.i(6023),p=a.i(70458),q=a.i(78725),r=a.i(56390),s=a.i(39465),t=a.i(82977),u=a.i(80395),v=a.i(60870),w=a.i(37134),x=a.i(4730),y=a.i(94851),z=a.i(35133),A=a.i(79914),B=a.i(89738),C=a.i(13662);function D({status:a}){let c=(0,B.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,s.cn)("size-2 shrink-0 rounded-full","running"===c?"animate-pulse bg-emerald-400":"error"===c?"bg-red-400":"bg-muted-foreground/40")})}function E({status:a}){let{t:c}=(0,A.useLanguage)(),d=(0,B.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,s.cn)("shrink-0 text-xs","running"===d?"text-emerald-400":"error"===d?"text-red-400":"text-muted-foreground"),children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"sessions.stopped")})}let F={running:0,error:1,stopped:2};function G(a){if("number"==typeof a)return Number.isFinite(a)&&a>0?a:null;if("string"==typeof a&&a.length>0){let b=Date.parse(a);return Number.isNaN(b)?null:b}return null}function H(a){return G(a.lastActive)??G(a.createdAt)??0}function I(a,b,c){let d=[...c].sort((a,b)=>{let c=(F[(0,B.normalizeSessionStatus)(a.status)]??3)-(F[(0,B.normalizeSessionStatus)(b.status)]??3);return 0!==c?c:H(b)-H(a)}),e=b?.name??c.find(a=>a.projectName)?.projectName??a??"",f=0,g=0;for(let a of d)f=Math.max(f,H(a)),"running"===(0,B.normalizeSessionStatus)(a.status)&&(g+=1);return{key:a??"__unlinked__",projectId:a,projectName:e,sessions:d,runningCount:g,totalCount:d.length,lastActivity:f,unlinked:null===a}}function J(a,b,c){return a.replace("{running}",String(b)).replace("{total}",String(c))}function K(a,b){let c=b?.trim();return c?{title:c,fromPrompt:!0,showNoInputHint:!1}:{title:a.name||a.runtimeSessionName||a.id,fromPrompt:!1,showNoInputHint:!(a.name&&a.name!==a.projectName)}}function L(a,b,c){let d=G(a.lastActive)??G(a.createdAt);if(null===d)return null;let e=Math.round((d-b)/1e3),f=Math.abs(e),g=new Intl.RelativeTimeFormat(c,{numeric:"auto"});return f<60?g.format(e,"second"):f<3600?g.format(Math.round(e/60),"minute"):f<86400?g.format(Math.round(e/3600),"hour"):f<2592e3?g.format(Math.round(e/86400),"day"):f<31536e3?g.format(Math.round(e/2592e3),"month"):g.format(Math.round(e/31536e3),"year")}let M={running:"bg-emerald-500/80",error:"bg-red-500/80",stopped:"bg-muted-foreground/30"};function N({session:a,tasks:c,lastPrompt:d,highlight:e,now:f,actionPending:g,onOpen:h,onStart:i,onStop:j,onDelete:k}){let{t:l,language:m}=(0,A.useLanguage)(),n=(0,B.normalizeSessionStatus)(a.status),o=K(a,d),p=L(a,f,m),q=c.slice(0,2),r=c.length-q.length;return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:(0,s.cn)("group relative cursor-pointer rounded-lg border border-border bg-card p-3 pl-4","transition-all duration-150 hover:border-border/80 hover:shadow-md","motion-safe:hover:-translate-y-px","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",e&&"forgebadger-session-card-new"),children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("absolute inset-y-0 left-0 w-0.5 rounded-l-lg",M[n])}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(D,{status:a.status}),a.aiTool?(0,b.jsx)(z.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)(E,{status:a.status}),(0,b.jsx)("div",{className:"min-w-0 flex-1"}),(0,b.jsx)("div",{className:(0,s.cn)("flex items-center transition-opacity duration-150","opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100"),onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(y.DropdownMenu,{children:[(0,b.jsx)(y.DropdownMenuTrigger,{"aria-label":`${l("common.actions")} \xb7 ${o.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(t.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(y.DropdownMenuContent,{align:"end",children:["running"===n?(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,onSelect:()=>j(a),children:[(0,b.jsx)(v.Square,{className:"size-3.5"}),l("common.stop")]}):(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,onSelect:()=>i(a),children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),l("common.start")]}),(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,className:"text-destructive focus:text-destructive",onSelect:()=>k(a),children:[(0,b.jsx)(w.Trash2,{className:"size-3.5"}),l("common.delete")]})]})]})})]}),(0,b.jsx)("div",{className:(0,s.cn)("mt-2 text-sm font-medium leading-snug",o.fromPrompt?"line-clamp-2 break-words":"truncate"),title:o.title,children:o.title}),o.showNoInputHint?(0,b.jsx)("p",{className:"mt-0.5 text-xs italic text-muted-foreground",children:l("sessions.noInputRecord")}):null,c.length>0?(0,b.jsxs)("div",{className:"mt-2 space-y-1 border-t border-border/70 pt-2",children:[q.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-1 py-0.5",children:[(0,b.jsx)(x.Badge,{variant:(0,C.statusBadgeVariant)(a.status),className:(0,s.cn)("shrink-0 px-1.5 text-[10px]",(0,C.statusBadgeClassName)(a.status)),children:(0,C.statusLabel)(a.status,l)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:a.title,children:a.title})]},a.id)),r>0?(0,b.jsx)("p",{className:"px-1 text-xs text-muted-foreground",children:l("sessions.moreTasks").replace("{count}",String(r))}):null]}):null,(0,b.jsx)("div",{className:"mt-2 flex items-center justify-between gap-2",children:(0,b.jsx)("span",{className:"truncate text-xs tabular-nums text-muted-foreground",children:p??l("sessions.noActivity")})})]})}var O=a.i(6145),P=a.i(35485);let Q=(0,P.default)("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);function R({column:a,index:c,color:d,width:e,onNewSessionFor:f,onOpenProject:g,onResizeStart:h,children:i}){let{t:j}=(0,A.useLanguage)(),l=!a.unlinked,{attributes:n,listeners:o,setNodeRef:p,transform:r,isDragging:t}=(0,q.useDraggable)({id:a.key,disabled:!l}),{setNodeRef:u}=(0,q.useDroppable)({id:a.key,disabled:!l});return(0,b.jsxs)("section",{ref:a=>{p(a),u(a)},"aria-label":a.projectName,className:(0,s.cn)("forgebadger-board-column-in relative flex shrink-0 flex-col gap-2 self-start",t?"z-20 opacity-80":""),style:{width:e,animationDelay:`${40*c}ms`,transform:r?`translate3d(${r.x}px, ${r.y}px, 0)`:void 0},children:[(0,b.jsxs)("header",{className:"sticky top-0 z-10 flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5",children:[l?(0,b.jsx)("button",{type:"button",...n,...o,"aria-label":`${j("sessions.dragColumn")} \xb7 ${a.projectName}`,className:"flex size-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:bg-muted hover:text-foreground active:cursor-grabbing",children:(0,b.jsx)(Q,{className:"size-4"})}):null,(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("size-2 shrink-0 rounded-full",d?"":"bg-muted-foreground/40"),style:d?{backgroundColor:d}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:J(j("sessions.columnStats"),a.runningCount,a.totalCount)}),l&&a.projectId?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,b.jsx)(m.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${j("projects.newSession")} \xb7 ${a.projectName}`,onClick:()=>f(a.projectId??""),children:(0,b.jsx)(k.Plus,{className:"size-4"})}),(0,b.jsx)(m.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${j("sessions.openProject")} \xb7 ${a.projectName}`,onClick:()=>g(a.projectId??""),children:(0,b.jsx)(O.ArrowUpRight,{className:"size-4"})})]}):null]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:0===a.sessions.length?(0,b.jsx)("div",{className:(0,s.cn)("rounded-lg border border-dashed border-border/70 py-8 text-center","text-xs text-muted-foreground"),children:j("sessions.columnEmpty")}):i}),(0,b.jsx)("div",{role:"separator","aria-label":j("sessions.resizeColumn"),"aria-orientation":"vertical",onPointerDown:h,className:"absolute inset-y-3 right-[-5px] z-10 w-2 cursor-col-resize touch-none rounded-full transition-colors hover:bg-brand/30"})]})}let S="forgebadger.sessionBoard.width.v1",T="forgebadger.sessionBoard.columnOrder.v1",U="forgebadger.sessionBoard.view.v1";function V(a){return Number.isFinite(a)?Math.min(420,Math.max(260,Math.round(a))):300}function W(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a)"string"!=typeof d||0===d.length||b.has(d)||(b.add(d),c.push(d));return c}function X({columns:a,sessionTasks:d,prompts:f,now:g,actionPending:h,columnWidth:i,onColumnWidthChange:j,onColumnOrderChange:k,onOpenSession:l,onStartSession:m,onStopSession:n,onDeleteSession:o}){let p=(0,e.useRouter)(),[s,t]=(0,c.useState)(null),u=(0,c.useRef)(null),[v,w]=(0,c.useState)({left:!1,right:!1}),x=(0,q.useSensors)((0,q.useSensor)(q.PointerSensor,{activationConstraint:{distance:8}}),(0,q.useSensor)(q.KeyboardSensor)),y=s??i;(0,c.useEffect)(()=>{let a=u.current;if(!a)return;let b=()=>{let b=a.scrollWidth-a.clientWidth;w({left:a.scrollLeft>1,right:a.scrollLeft<b-1})};b(),a.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);for(let b of(c.observe(a),Array.from(a.children)))c.observe(b);return()=>{a.removeEventListener("scroll",b),c.disconnect()}},[a.length,y]);let z=function(a,b){if(a||b)return`linear-gradient(to right, ${a?"transparent, black 32px":"black"}, ${b?"black calc(100% - 32px), transparent":"black"})`}(v.left,v.right),A=a=>{if(0!==a.button)return;a.preventDefault(),a.stopPropagation();let b=a.clientX,c=a=>{t(V(y+a.clientX-b))};window.addEventListener("pointermove",c),window.addEventListener("pointerup",a=>{window.removeEventListener("pointermove",c);let d=V(y+a.clientX-b);t(null),j(d)},{once:!0})};return(0,b.jsx)(q.DndContext,{sensors:x,onDragEnd:b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.filter(a=>!a.unlinked).map(a=>a.key),f=function(a,b,c){let d=a.indexOf(b),e=a.indexOf(c);if(d<0||e<0||d===e)return[...a];let f=[...a];return f.splice(e,0,...f.splice(d,1)),f}(e,String(c.id),String(d.id));f.join("\n")!==e.join("\n")&&k(f)},children:(0,b.jsx)("div",{ref:u,className:"overflow-x-auto pb-2",style:z?{maskImage:z,WebkitMaskImage:z}:void 0,children:(0,b.jsx)("div",{className:"flex items-start gap-4",children:a.map((a,c)=>(0,b.jsx)(R,{column:a,index:c,color:a.unlinked?null:(0,r.sessionTabGroupColor)(a.projectName),width:y,onNewSessionFor:a=>p.push(`/projects/${a}?tab=sessions`),onOpenProject:a=>p.push(`/projects/${a}`),onResizeStart:A,children:a.sessions.map(a=>(0,b.jsx)(N,{session:a,tasks:d[a.id]??[],lastPrompt:f[a.id],highlight:function(a,b){let c=G(a.createdAt);if(null===c)return!1;let d=b-c;return d>=0&&d<=12e4}(a,g),now:g,actionPending:h,onOpen:l,onStart:m,onStop:n,onDelete:o},a.id))},a.key))})})})}function Y(){return(0,b.jsx)("div",{className:"flex items-start gap-4 overflow-x-auto pb-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:"flex w-[300px] shrink-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted-foreground/30"}),(0,b.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,b.jsx)("div",{className:"ml-auto h-3 w-16 animate-pulse rounded bg-muted"})]}),[0,1,2].map(a=>(0,b.jsxs)("div",{className:(0,s.cn)("animate-pulse rounded-lg border border-border bg-card p-3 pl-4"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted"}),(0,b.jsx)("div",{className:"h-4 w-16 rounded bg-muted"})]}),(0,b.jsx)("div",{className:"mt-2 h-4 w-4/5 rounded bg-muted"}),(0,b.jsx)("div",{className:"mt-1.5 h-3 w-2/5 rounded bg-muted"})]},a))]},a))})}var Z=a.i(2355);function $({columns:a,prompts:c,now:d,actionPending:e,onOpenSession:f,onStartSession:g,onStopSession:h,onDeleteSession:i}){let{t:j,language:k}=(0,A.useLanguage)();return(0,b.jsx)("div",{className:"space-y-4",children:a.map((a,l)=>{let m=a.unlinked?null:(0,r.sessionTabGroupColor)(a.projectName);return(0,b.jsxs)("section",{"aria-label":a.projectName,className:"forgebadger-animate-in overflow-hidden rounded-lg border border-border bg-card",style:{animationDelay:`${40*l}ms`},children:[(0,b.jsxs)("header",{className:"flex items-center gap-2 border-b border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("size-2 shrink-0 rounded-full",m?"":"bg-muted-foreground/40"),style:m?{backgroundColor:m}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:J(j("sessions.columnStats"),a.runningCount,a.totalCount)})]}),0===a.sessions.length?(0,b.jsx)("div",{className:"py-6 text-center text-xs text-muted-foreground",children:j("sessions.columnEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70",children:a.sessions.map(a=>(0,b.jsx)(_,{session:a,lastPrompt:c[a.id],now:d,actionPending:e,onOpen:f,onStart:g,onStop:h,onDelete:i,language:k},a.id))})]},a.key)})})}function _({session:a,lastPrompt:c,now:d,actionPending:e,language:f,onOpen:g,onStart:h,onStop:i,onDelete:j}){let{t:k}=(0,A.useLanguage)(),l="running"===(0,B.normalizeSessionStatus)(a.status),n=K(a,c),o=L(a,d,f);return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>g(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),g(a))},className:(0,s.cn)("flex cursor-pointer items-center gap-3 px-3 py-2 transition-colors","hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset"),children:[(0,b.jsx)(D,{status:a.status}),a.aiTool?(0,b.jsx)(z.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)("span",{className:"hidden w-28 shrink-0 truncate text-xs text-muted-foreground md:block",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:n.title,children:n.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:o??k("sessions.noActivity")}),l?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"h-7 shrink-0 px-2 text-xs",onClick:b=>{b.stopPropagation(),g(a)},children:[(0,b.jsx)(Z.Play,{className:"size-3.5"}),k("common.connect")]}):null,(0,b.jsx)("div",{className:"shrink-0",onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(y.DropdownMenu,{children:[(0,b.jsx)(y.DropdownMenuTrigger,{"aria-label":`${k("common.actions")} \xb7 ${n.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(t.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(y.DropdownMenuContent,{align:"end",children:[l?(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,onSelect:()=>i(a),children:[(0,b.jsx)(v.Square,{className:"size-3.5"}),k("common.stop")]}):(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,onSelect:()=>h(a),children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),k("common.start")]}),(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,className:"text-destructive focus:text-destructive",onSelect:()=>j(a),children:[(0,b.jsx)(w.Trash2,{className:"size-3.5"}),k("common.delete")]})]})]})})]})}let aa=(0,P.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),ab=(0,P.default)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var ac=a.i(48459),ad=a.i(55068),ae=a.i(3030),af=a.i(10917),ag=a.i(27291);function ah({query:a,onQueryChange:c,statusFilter:d,onStatusFilterChange:e,cliTools:f,selectedCliTools:g,onToggleCliTool:h,showEmptyProjects:i,onShowEmptyProjectsChange:j,hasCustomColumnOrder:k,onResetColumnOrder:l,view:n,onViewChange:o}){let{t:q}=(0,A.useLanguage)();return(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex flex-wrap items-center gap-3 p-3",children:[(0,b.jsxs)("div",{className:"relative min-w-[200px] flex-1",children:[(0,b.jsx)(ac.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(ad.Input,{value:a,onChange:a=>c(a.target.value),placeholder:q("sessions.searchPlaceholder"),className:"pl-9"})]}),(0,b.jsxs)("select",{className:"h-9 rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:d,onChange:a=>e(a.target.value),"aria-label":q("sessions.statusFilter"),children:[(0,b.jsx)("option",{value:"all",children:q("sessions.statusAll")}),(0,b.jsx)("option",{value:"running",children:q("sessions.running")}),(0,b.jsx)("option",{value:"stopped",children:q("sessions.stopped")}),(0,b.jsx)("option",{value:"error",children:q("sessions.error")})]}),f.length>0?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5","aria-label":q("sessions.cliFilter"),children:f.map(a=>{let c=g.has(a);return(0,b.jsx)("button",{type:"button","aria-pressed":c,onClick:()=>h(a),className:(0,s.cn)("rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",c?"border-brand/40 bg-brand/10 text-brand":"border-border/70 text-muted-foreground hover:border-border hover:text-foreground"),children:(0,ag.getCliBrand)(a).label},a)})}):null,(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[k?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",onClick:l,children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),q("sessions.resetColumnOrder")]}):null,(0,b.jsxs)("div",{className:"flex items-center gap-0.5 rounded-md border border-border p-0.5",role:"group","aria-label":q("sessions.viewToggle"),children:[(0,b.jsx)("button",{type:"button","aria-pressed":"board"===n,"aria-label":q("sessions.viewBoard"),onClick:()=>o("board"),className:(0,s.cn)("flex size-7 items-center justify-center rounded transition-colors","board"===n?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(aa,{className:"size-4"})}),(0,b.jsx)("button",{type:"button","aria-pressed":"list"===n,"aria-label":q("sessions.viewList"),onClick:()=>o("list"),className:(0,s.cn)("flex size-7 items-center justify-center rounded transition-colors","list"===n?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(ab,{className:"size-4"})})]}),(0,b.jsx)(ae.Label,{htmlFor:"session-board-show-empty",className:"text-xs text-muted-foreground",children:q("sessions.showEmptyProjects")}),(0,b.jsx)(af.Switch,{id:"session-board-show-empty",size:"sm",checked:i,onCheckedChange:j,"aria-label":q("sessions.showEmptyProjects")})]})]})})}function ai(a){try{return window.localStorage.getItem(a)}catch{return null}}var aj=a.i(39042);a.i(13375);var ak=a.i(90409),al=a.i(85564);a.s(["default",0,function(){let{t:a}=(0,A.useLanguage)(),q=(0,e.useRouter)(),t=(0,h.useQueryClient)(),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)("all"),[y,z]=(0,c.useState)(new Set),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),{data:G,isLoading:H,isFetching:J,isError:K}=(0,g.useQuery)({queryKey:["sessions-board"],queryFn:aj.getSessionBoard}),{data:L,isLoading:M}=(0,g.useQuery)({queryKey:["dependencies"],queryFn:aj.getDependencies}),N=function(){let[a,b]=(0,c.useState)(300),[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)("board");(0,c.useEffect)(()=>{b(function(a){if("string"!=typeof a)return 300;let b=Number.parseInt(a,10);return V(Number.isNaN(b)?300:b)}(ai(S)));try{e(W(JSON.parse(ai(T)??"[]")))}catch{e([])}g("list"===ai(U)?"list":"board")},[]);let h=(0,c.useCallback)(a=>{let c=V(a);b(c);try{window.localStorage.setItem(S,String(c))}catch{}},[]),i=(0,c.useCallback)(a=>{let b=W(a);e(b);try{window.localStorage.setItem(T,JSON.stringify(b))}catch{}},[]);return{columnWidth:a,setColumnWidth:h,columnOrder:d,setColumnOrder:i,resetColumnOrder:(0,c.useCallback)(()=>{e([]);try{window.localStorage.removeItem(T)}catch{}},[]),view:f,setView:(0,c.useCallback)(a=>{g(a);try{window.localStorage.setItem(U,a)}catch{}},[])}}(),O=()=>{t.invalidateQueries({queryKey:["sessions-board"]}),t.invalidateQueries({queryKey:["sessions"]})},P=(0,f.useMutation)({mutationFn:a=>(0,aj.startSession)(a),onSuccess:O,onError:b=>{al.toast.error(b instanceof Error&&b.message?`${a("sessions.startFailed")}: ${b.message}`:a("sessions.startFailed"))}}),Q=(0,f.useMutation)({mutationFn:a=>(0,aj.stopSession)(a),onSuccess:O,onError:b=>{al.toast.error(b instanceof Error&&b.message?`${a("sessions.stopFailed")}: ${b.message}`:a("sessions.stopFailed"))}}),R=(0,f.useMutation)({mutationFn:a=>(0,aj.deleteSession)(a),onSuccess:O,onError:b=>{al.toast.error(b instanceof Error&&b.message?`${a("sessions.deleteFailed")}: ${b.message}`:a("sessions.deleteFailed"))}}),Z=G?.board,_=Z?.sessions??[],aa=Z?.projects??[],ab=Z?.sessionTasks??{},ac=!H&&aa.length>0,ad=L?.terminalRuntime,ae=(0,ak.getTerminalRuntimeSetupGuidance)(ad?.mode,ad?.supported),af=!M&&ae.blocked;(0,c.useEffect)(()=>{if(!Z||J||K)return;let a=(0,r.readSessionTabs)().filter(a=>"running"===a.status).map(a=>a.id);(0,r.pruneSessionTabs)(new Set([..._.map(a=>a.id),...a])),(0,r.notifySessionTabsChanged)()},[Z,_,J,K]);let ag=(0,c.useMemo)(()=>(function(a){let b=new Set;for(let c of a)c.aiTool&&b.add(c.aiTool);return Array.from(b).sort()})(_),[_]),am=(0,c.useMemo)(()=>{var a;let b;return b=(a={query:u,statusFilter:w,cliTools:y}).query.trim().toLowerCase(),_.filter(c=>(!(a.cliTools.size>0)||!!c.aiTool&&!!a.cliTools.has(c.aiTool))&&("all"===a.statusFilter||(0,B.normalizeSessionStatus)(c.status)===a.statusFilter)&&(0===b.length||[c.name,c.runtimeSessionName,c.id,c.projectName,c.projectId,c.aiTool,c.status,(0,B.normalizeSessionStatus)(c.status)].some(a=>a?.toLowerCase().includes(b))))},[_,u,w,y]),an=u.trim().length>0,ao=(0,c.useMemo)(()=>(function(a,b,c){let d=new Map(b.map(a=>[a.id,a])),e=new Map,f=[];for(let b of a){if(!b.projectId){f.push(b);continue}let a=e.get(b.projectId);a?a.push(b):e.set(b.projectId,[b])}let g=[],h=[];for(let[a,b]of e)g.push(I(a,d.get(a),b));for(let a of b){if(e.has(a.id))continue;let b=I(a.id,a,[]);c.showEmptyProjects&&h.push(b)}h.sort((a,b)=>{var c,d;return c=a.projectName,d=b.projectName,c.localeCompare(d,"zh-Hans-CN-u-co-pinyin")}),g.sort((a,b)=>b.lastActivity-a.lastActivity);let i=[...g,...h];return f.length>0&&i.push(I(null,void 0,f)),i})(am,aa,{showEmptyProjects:C||an}),[am,aa,C,an]),ap=(0,c.useMemo)(()=>(function(a,b){if(0===b.length)return a;let c=new Map(a.map(a=>[a.key,a])),d=new Set,e=[];for(let a of b){let b=c.get(a);b&&!d.has(a)&&(d.add(a),e.push(b))}return[...e,...a.filter(a=>!a.unlinked&&!d.has(a.key)),...a.filter(a=>a.unlinked)]})(ao,N.columnOrder),[ao,N.columnOrder]),aq=function(){let[a,b]=(0,c.useState)({});return(0,c.useEffect)(()=>{let a=()=>{b(function(){let a={};for(let b of(0,r.readSessionTabs)())b.lastPrompt&&(a[b.id]=b.lastPrompt);return a}())};return a(),window.addEventListener("forgebadger-session-tabs-changed",a),()=>{window.removeEventListener("forgebadger-session-tabs-changed",a)}},[]),a}(),ar=(0,c.useMemo)(()=>{let a={};for(let b of _){let c=function(a,b){let c=b[a.id]?.trim();return c?c:a.lastPrompt?.trim()||void 0}(b,aq);c&&(a[b.id]=c)}return a},[_,aq]),as=Date.now(),at=P.isPending||Q.isPending||R.isPending,au={onOpenSession:a=>{(0,r.upsertSessionTab)((0,r.sessionToTab)(a)),(0,r.notifySessionTabsChanged)(),q.push(`/sessions/${a.id}`)},onStartSession:a=>P.mutate(a.id),onStopSession:a=>Q.mutate(a.id),onDeleteSession:a=>R.mutate(a.id)};return(0,b.jsxs)("div",{className:"mx-auto max-w-[1440px] space-y-4 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("sessions.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("sessions.subtitle")})]}),ac?(0,b.jsxs)(m.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>F(!0),children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("projects.newSession")]}):(0,b.jsx)(m.Button,{asChild:!0,size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}),H?(0,b.jsx)(Y,{}):0===_.length?(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex flex-col items-center justify-center gap-4 py-12 text-center",children:[(0,b.jsx)("div",{className:(0,s.cn)("flex size-10 items-center justify-center rounded-md",af?"bg-destructive/10 text-destructive":"bg-brand/10 text-brand"),children:af?(0,b.jsx)(i.AlertTriangle,{className:"size-5"}):(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:af?a(ae.titleKey):a("sessions.emptyTitle")}),(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:af?a("sessions.runtimeBlockedDescription"):a("sessions.emptyReadyDescription")}),af&&(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:a(ae.descriptionKey)})]}),af&&(0,b.jsx)("div",{className:"w-full max-w-3xl text-left",children:(0,b.jsx)(o.RuntimeSetupCommands,{guidance:ae})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[af&&(0,b.jsx)(m.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)(d.default,{href:"/settings",children:[(0,b.jsx)(i.AlertTriangle,{className:"size-4"}),a("sessions.openSettings")]})}),ac?(0,b.jsxs)(m.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>F(!0),children:[(0,b.jsx)(j.FolderOpen,{className:"size-4"}),a("sessions.createFromProject")]}):(0,b.jsx)(m.Button,{asChild:!0,size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]})}):0===am.length?(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("sessions.noMatchesTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("sessions.noMatchesDescription")})]})]})}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(ah,{query:u,onQueryChange:v,statusFilter:w,onStatusFilterChange:x,cliTools:ag,selectedCliTools:y,onToggleCliTool:a=>{z(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},showEmptyProjects:C,onShowEmptyProjectsChange:D,hasCustomColumnOrder:N.columnOrder.length>0,onResetColumnOrder:N.resetColumnOrder,view:N.view,onViewChange:N.setView}),"list"===N.view?(0,b.jsx)($,{columns:ap,prompts:ar,now:as,actionPending:at,...au}):(0,b.jsx)(X,{columns:ap,sessionTasks:ab,prompts:ar,now:as,actionPending:at,columnWidth:N.columnWidth,onColumnWidthChange:N.setColumnWidth,onColumnOrderChange:N.setColumnOrder,...au})]}),(0,b.jsx)(n.Dialog,{open:E,onOpenChange:F,children:(0,b.jsxs)(n.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:a("sessions.chooseProjectTitle")}),(0,b.jsx)(n.DialogDescription,{children:a("sessions.chooseProjectDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[aa.map(a=>(0,b.jsxs)(m.Button,{variant:"outline",className:"h-auto w-full min-w-0 justify-start gap-3 px-3 py-2.5",onClick:()=>{F(!1),q.push(`/projects/${a.id}?tab=sessions`)},children:[(0,b.jsx)(j.FolderOpen,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start gap-0.5",children:[(0,b.jsx)("span",{className:"max-w-full truncate text-sm font-medium",children:a.name}),a.path&&(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id)),H?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:a("sessions.loading")}):0===aa.length?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("sessions.chooseProjectEmpty")}),(0,b.jsx)(m.Button,{asChild:!0,size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}):null]})]})})]})}],45132)}];
|
|
1
|
+
module.exports=[45132,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(72637),e=a.i(13376),f=a.i(4837),g=a.i(39747),h=a.i(26248),i=a.i(44935),j=a.i(60420),k=a.i(90259),l=a.i(94327),m=a.i(97494),n=a.i(62384),o=a.i(6023),p=a.i(70458),q=a.i(78725),r=a.i(56390),s=a.i(39465),t=a.i(82977),u=a.i(80395),v=a.i(60870),w=a.i(37134),x=a.i(4730),y=a.i(94851),z=a.i(35133),A=a.i(79914),B=a.i(89738),C=a.i(13662);function D({status:a}){let c=(0,B.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,s.cn)("size-2 shrink-0 rounded-full","running"===c?"animate-pulse bg-emerald-400":"error"===c?"bg-red-400":"lost"===c?"bg-amber-400":"bg-muted-foreground/40")})}function E({status:a}){let{t:c}=(0,A.useLanguage)(),d=(0,B.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,s.cn)("shrink-0 text-xs","running"===d?"text-emerald-400":"error"===d?"text-red-400":"lost"===d?"text-amber-400":"text-muted-foreground"),children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"lost"===d?"sessions.lost":"sessions.stopped")})}var F=a.i(80658);let G={running:"bg-emerald-500/80",error:"bg-red-500/80",stopped:"bg-muted-foreground/30",lost:"bg-amber-500/80"};function H({session:a,tasks:c,lastPrompt:d,highlight:e,now:f,actionPending:g,onOpen:h,onStart:i,onStop:j,onDelete:k}){let{t:l,language:m}=(0,A.useLanguage)(),n=(0,B.normalizeSessionStatus)(a.status),o=(0,F.pickSessionTitle)(a,d),p=null===f?null:(0,F.formatSessionRelativeTime)(a,f,m),q=c.slice(0,2),r=c.length-q.length;return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:(0,s.cn)("group relative cursor-pointer rounded-lg border border-border bg-card p-3 pl-4","transition-all duration-150 hover:border-border/80 hover:shadow-md","motion-safe:hover:-translate-y-px","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",e&&"forgebadger-session-card-new"),children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("absolute inset-y-0 left-0 w-0.5 rounded-l-lg",G[n])}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(D,{status:a.status}),a.aiTool?(0,b.jsx)(z.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)(E,{status:a.status}),(0,b.jsx)("div",{className:"min-w-0 flex-1"}),(0,b.jsx)("div",{className:(0,s.cn)("flex items-center transition-opacity duration-150","opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100"),onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(y.DropdownMenu,{children:[(0,b.jsx)(y.DropdownMenuTrigger,{"aria-label":`${l("common.actions")} \xb7 ${o.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(t.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(y.DropdownMenuContent,{align:"end",children:["running"===n?(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,onSelect:()=>j(a),children:[(0,b.jsx)(v.Square,{className:"size-3.5"}),l("common.stop")]}):(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,onSelect:()=>i(a),children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),l("common.start")]}),(0,b.jsxs)(y.DropdownMenuItem,{disabled:g,className:"text-destructive focus:text-destructive",onSelect:()=>k(a),children:[(0,b.jsx)(w.Trash2,{className:"size-3.5"}),l("common.delete")]})]})]})})]}),(0,b.jsx)("div",{className:(0,s.cn)("mt-2 text-sm font-medium leading-snug",o.fromPrompt?"line-clamp-2 break-words":"truncate"),title:o.title,children:o.title}),o.showNoInputHint?(0,b.jsx)("p",{className:"mt-0.5 text-xs italic text-muted-foreground",children:l("sessions.noInputRecord")}):null,c.length>0?(0,b.jsxs)("div",{className:"mt-2 space-y-1 border-t border-border/70 pt-2",children:[q.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md px-1 py-0.5",children:[(0,b.jsx)(x.Badge,{variant:(0,C.statusBadgeVariant)(a.status),className:(0,s.cn)("shrink-0 px-1.5 text-[10px]",(0,C.statusBadgeClassName)(a.status)),children:(0,C.statusLabel)(a.status,l)}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",title:a.title,children:a.title})]},a.id)),r>0?(0,b.jsx)("p",{className:"px-1 text-xs text-muted-foreground",children:l("sessions.moreTasks").replace("{count}",String(r))}):null]}):null,(0,b.jsx)("div",{className:"mt-2 flex items-center justify-between gap-2",children:(0,b.jsx)("span",{className:"truncate text-xs tabular-nums text-muted-foreground",children:null===f?"":p??l("sessions.noActivity")})})]})}var I=a.i(6145),J=a.i(45783);function K({column:a,index:c,color:d,width:e,onNewSessionFor:f,onOpenProject:g,onResizeStart:h,children:i}){let{t:j}=(0,A.useLanguage)(),l=!a.unlinked,{attributes:n,listeners:o,setNodeRef:p,transform:r,isDragging:t}=(0,q.useDraggable)({id:a.key,disabled:!l}),{setNodeRef:u}=(0,q.useDroppable)({id:a.key,disabled:!l});return(0,b.jsxs)("section",{ref:a=>{p(a),u(a)},"aria-label":a.projectName,className:(0,s.cn)("forgebadger-board-column-in relative flex shrink-0 flex-col gap-2 self-start",t?"z-20 opacity-80":""),style:{width:e,animationDelay:`${40*c}ms`,transform:r?`translate3d(${r.x}px, ${r.y}px, 0)`:void 0},children:[(0,b.jsxs)("header",{className:"sticky top-0 z-10 flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5",children:[l?(0,b.jsx)("button",{type:"button",...n,...o,"aria-label":`${j("sessions.dragColumn")} \xb7 ${a.projectName}`,className:"flex size-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:bg-muted hover:text-foreground active:cursor-grabbing",children:(0,b.jsx)(J.GripVertical,{className:"size-4"})}):null,(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("size-2 shrink-0 rounded-full",d?"":"bg-muted-foreground/40"),style:d?{backgroundColor:d}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,F.formatColumnStats)(j("sessions.columnStats"),a.runningCount,a.totalCount)}),l&&a.projectId?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,b.jsx)(m.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${j("projects.newSession")} \xb7 ${a.projectName}`,onClick:()=>f(a.projectId??""),children:(0,b.jsx)(k.Plus,{className:"size-4"})}),(0,b.jsx)(m.Button,{variant:"ghost",size:"icon",className:"size-7","aria-label":`${j("sessions.openProject")} \xb7 ${a.projectName}`,onClick:()=>g(a.projectId??""),children:(0,b.jsx)(I.ArrowUpRight,{className:"size-4"})})]}):null]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:0===a.sessions.length?(0,b.jsx)("div",{className:(0,s.cn)("rounded-lg border border-dashed border-border/70 py-8 text-center","text-xs text-muted-foreground"),children:j("sessions.columnEmpty")}):i}),(0,b.jsx)("div",{role:"separator","aria-label":j("sessions.resizeColumn"),"aria-orientation":"vertical",onPointerDown:h,className:"absolute inset-y-3 right-[-5px] z-10 w-2 cursor-col-resize touch-none rounded-full transition-colors hover:bg-brand/30"})]})}let L="forgebadger.sessionBoard.width.v1",M="forgebadger.sessionBoard.columnOrder.v1",N="forgebadger.sessionBoard.view.v1";function O(a){return Number.isFinite(a)?Math.min(420,Math.max(260,Math.round(a))):300}function P(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a)"string"!=typeof d||0===d.length||b.has(d)||(b.add(d),c.push(d));return c}function Q({columns:a,sessionTasks:d,prompts:f,now:g,actionPending:h,columnWidth:i,onColumnWidthChange:j,onColumnOrderChange:k,onOpenSession:l,onStartSession:m,onStopSession:n,onDeleteSession:o}){let p=(0,e.useRouter)(),[s,t]=(0,c.useState)(null),u=(0,c.useRef)(null),[v,w]=(0,c.useState)({left:!1,right:!1}),x=(0,q.useSensors)((0,q.useSensor)(q.PointerSensor,{activationConstraint:{distance:8}}),(0,q.useSensor)(q.KeyboardSensor)),y=s??i;(0,c.useEffect)(()=>{let a=u.current;if(!a)return;let b=()=>{let b=a.scrollWidth-a.clientWidth;w({left:a.scrollLeft>1,right:a.scrollLeft<b-1})};b(),a.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);for(let b of(c.observe(a),Array.from(a.children)))c.observe(b);return()=>{a.removeEventListener("scroll",b),c.disconnect()}},[a.length,y]);let z=function(a,b){if(a||b)return`linear-gradient(to right, ${a?"transparent, black 32px":"black"}, ${b?"black calc(100% - 32px), transparent":"black"})`}(v.left,v.right),A=a=>{if(0!==a.button)return;a.preventDefault(),a.stopPropagation();let b=a.clientX,c=a=>{t(O(y+a.clientX-b))};window.addEventListener("pointermove",c),window.addEventListener("pointerup",a=>{window.removeEventListener("pointermove",c);let d=O(y+a.clientX-b);t(null),j(d)},{once:!0})};return(0,b.jsx)(q.DndContext,{sensors:x,onDragEnd:b=>{let{active:c,over:d}=b;if(!d||c.id===d.id)return;let e=a.filter(a=>!a.unlinked).map(a=>a.key),f=function(a,b,c){let d=a.indexOf(b),e=a.indexOf(c);if(d<0||e<0||d===e)return[...a];let f=[...a];return f.splice(e,0,...f.splice(d,1)),f}(e,String(c.id),String(d.id));f.join("\n")!==e.join("\n")&&k(f)},children:(0,b.jsx)("div",{ref:u,className:"overflow-x-auto pb-2",style:z?{maskImage:z,WebkitMaskImage:z}:void 0,children:(0,b.jsx)("div",{className:"flex items-start gap-4",children:a.map((a,c)=>(0,b.jsx)(K,{column:a,index:c,color:a.unlinked?null:(0,r.sessionTabGroupColor)(a.projectName),width:y,onNewSessionFor:a=>p.push(`/projects/${a}?tab=sessions`),onOpenProject:a=>p.push(`/projects/${a}`),onResizeStart:A,children:a.sessions.map(a=>(0,b.jsx)(H,{session:a,tasks:d[a.id]??[],lastPrompt:f[a.id],highlight:null!==g&&(0,F.isRecentlyCreated)(a,g,12e4),now:g,actionPending:h,onOpen:l,onStart:m,onStop:n,onDelete:o},a.id))},a.key))})})})}function R(){return(0,b.jsx)("div",{className:"flex items-start gap-4 overflow-x-auto pb-2",children:[0,1,2].map(a=>(0,b.jsxs)("div",{className:"flex w-[300px] shrink-0 flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted-foreground/30"}),(0,b.jsx)("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),(0,b.jsx)("div",{className:"ml-auto h-3 w-16 animate-pulse rounded bg-muted"})]}),[0,1,2].map(a=>(0,b.jsxs)("div",{className:(0,s.cn)("animate-pulse rounded-lg border border-border bg-card p-3 pl-4"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"size-2 rounded-full bg-muted"}),(0,b.jsx)("div",{className:"h-4 w-16 rounded bg-muted"})]}),(0,b.jsx)("div",{className:"mt-2 h-4 w-4/5 rounded bg-muted"}),(0,b.jsx)("div",{className:"mt-1.5 h-3 w-2/5 rounded bg-muted"})]},a))]},a))})}var S=a.i(2355);function T({columns:a,prompts:c,now:d,actionPending:e,onOpenSession:f,onStartSession:g,onStopSession:h,onDeleteSession:i}){let{t:j,language:k}=(0,A.useLanguage)();return(0,b.jsx)("div",{className:"space-y-4",children:a.map((a,l)=>{let m=a.unlinked?null:(0,r.sessionTabGroupColor)(a.projectName);return(0,b.jsxs)("section",{"aria-label":a.projectName,className:"forgebadger-animate-in overflow-hidden rounded-lg border border-border bg-card",style:{animationDelay:`${40*l}ms`},children:[(0,b.jsxs)("header",{className:"flex items-center gap-2 border-b border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,s.cn)("size-2 shrink-0 rounded-full",m?"":"bg-muted-foreground/40"),style:m?{backgroundColor:m}:void 0}),(0,b.jsx)("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:(0,F.formatColumnStats)(j("sessions.columnStats"),a.runningCount,a.totalCount)})]}),0===a.sessions.length?(0,b.jsx)("div",{className:"py-6 text-center text-xs text-muted-foreground",children:j("sessions.columnEmpty")}):(0,b.jsx)("div",{className:"divide-y divide-border/70",children:a.sessions.map(a=>(0,b.jsx)(U,{session:a,lastPrompt:c[a.id],now:d,actionPending:e,onOpen:f,onStart:g,onStop:h,onDelete:i,language:k},a.id))})]},a.key)})})}function U({session:a,lastPrompt:c,now:d,actionPending:e,language:f,onOpen:g,onStart:h,onStop:i,onDelete:j}){let{t:k}=(0,A.useLanguage)(),l="running"===(0,B.normalizeSessionStatus)(a.status),n=(0,F.pickSessionTitle)(a,c),o=null===d?null:(0,F.formatSessionRelativeTime)(a,d,f);return(0,b.jsxs)("div",{role:"link",tabIndex:0,"data-session-id":a.id,onClick:()=>g(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),g(a))},className:(0,s.cn)("flex cursor-pointer items-center gap-3 px-3 py-2 transition-colors","hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset"),children:[(0,b.jsx)(D,{status:a.status}),a.aiTool?(0,b.jsx)(z.CliBrandChip,{aiTool:a.aiTool}):null,(0,b.jsx)("span",{className:"hidden w-28 shrink-0 truncate text-xs text-muted-foreground md:block",title:a.projectName,children:a.projectName}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:n.title,children:n.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:null===d?"":o??k("sessions.noActivity")}),l?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"hidden h-7 shrink-0 px-2 text-xs md:inline-flex",onClick:b=>{b.stopPropagation(),g(a)},children:[(0,b.jsx)(S.Play,{className:"size-3.5"}),k("common.connect")]}):null,(0,b.jsx)("div",{className:"shrink-0",onClick:a=>a.stopPropagation(),children:(0,b.jsxs)(y.DropdownMenu,{children:[(0,b.jsx)(y.DropdownMenuTrigger,{"aria-label":`${k("common.actions")} \xb7 ${n.title}`,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:(0,b.jsx)(t.MoreHorizontal,{className:"size-4"})}),(0,b.jsxs)(y.DropdownMenuContent,{align:"end",children:[l?(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,onSelect:()=>i(a),children:[(0,b.jsx)(v.Square,{className:"size-3.5"}),k("common.stop")]}):(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,onSelect:()=>h(a),children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),k("common.start")]}),(0,b.jsxs)(y.DropdownMenuItem,{disabled:e,className:"text-destructive focus:text-destructive",onSelect:()=>j(a),children:[(0,b.jsx)(w.Trash2,{className:"size-3.5"}),k("common.delete")]})]})]})})]})}var V=a.i(35485);let W=(0,V.default)("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),X=(0,V.default)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);var Y=a.i(48459),Z=a.i(55068),$=a.i(3030),_=a.i(75196),aa=a.i(10917),ab=a.i(27291);function ac({query:a,onQueryChange:c,statusFilter:d,onStatusFilterChange:e,cliTools:f,selectedCliTools:g,onToggleCliTool:h,showEmptyProjects:i,onShowEmptyProjectsChange:j,hasCustomColumnOrder:k,onResetColumnOrder:l,view:n,onViewChange:o}){let{t:q}=(0,A.useLanguage)();return(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex flex-wrap items-center gap-3 p-3",children:[(0,b.jsxs)("div",{className:"relative min-w-[200px] flex-1",children:[(0,b.jsx)(Y.Search,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(Z.Input,{value:a,onChange:a=>c(a.target.value),placeholder:q("sessions.searchPlaceholder"),"aria-label":q("sessions.searchPlaceholder"),className:"pl-9"})]}),(0,b.jsxs)(_.Select,{value:d,onValueChange:e,children:[(0,b.jsx)(_.SelectTrigger,{"aria-label":q("sessions.statusFilter"),children:(0,b.jsx)(_.SelectValue,{})}),(0,b.jsxs)(_.SelectContent,{children:[(0,b.jsx)(_.SelectItem,{value:"all",children:q("sessions.statusAll")}),(0,b.jsx)(_.SelectItem,{value:"running",children:q("sessions.running")}),(0,b.jsx)(_.SelectItem,{value:"stopped",children:q("sessions.stopped")}),(0,b.jsx)(_.SelectItem,{value:"error",children:q("sessions.error")}),(0,b.jsx)(_.SelectItem,{value:"lost",children:q("sessions.lost")})]})]}),f.length>0?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5","aria-label":q("sessions.cliFilter"),children:f.map(a=>{let c=g.has(a);return(0,b.jsx)("button",{type:"button","aria-pressed":c,onClick:()=>h(a),className:(0,s.cn)("rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",c?"border-brand/40 bg-brand/10 text-brand":"border-border/70 text-muted-foreground hover:border-border hover:text-foreground"),children:(0,ab.getCliBrand)(a).label},a)})}):null,(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[k?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",onClick:l,children:[(0,b.jsx)(u.RotateCcw,{className:"size-3.5"}),q("sessions.resetColumnOrder")]}):null,(0,b.jsxs)("div",{className:"hidden items-center gap-0.5 rounded-md border border-border p-0.5 md:flex",role:"group","aria-label":q("sessions.viewToggle"),children:[(0,b.jsx)("button",{type:"button","aria-pressed":"board"===n,"aria-label":q("sessions.viewBoard"),onClick:()=>o("board"),className:(0,s.cn)("flex size-7 items-center justify-center rounded transition-colors","board"===n?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(W,{className:"size-4"})}),(0,b.jsx)("button",{type:"button","aria-pressed":"list"===n,"aria-label":q("sessions.viewList"),onClick:()=>o("list"),className:(0,s.cn)("flex size-7 items-center justify-center rounded transition-colors","list"===n?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,b.jsx)(X,{className:"size-4"})})]}),(0,b.jsx)($.Label,{htmlFor:"session-board-show-empty",className:"text-xs text-muted-foreground",children:q("sessions.showEmptyProjects")}),(0,b.jsx)(aa.Switch,{id:"session-board-show-empty",size:"sm",checked:i,onCheckedChange:j,"aria-label":q("sessions.showEmptyProjects")})]})]})})}function ad(a){try{return window.localStorage.getItem(a)}catch{return null}}var ae=a.i(39042);a.i(13375);var af=a.i(90409),ag=a.i(85564);a.s(["default",0,function(){let{t:a}=(0,A.useLanguage)(),q=(0,e.useRouter)(),t=(0,h.useQueryClient)(),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)("all"),[y,z]=(0,c.useState)(new Set),[B,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(!1),[G,H]=(0,c.useState)(null),{data:I,isLoading:J,isFetching:K,isError:S}=(0,g.useQuery)({queryKey:["sessions-board"],queryFn:ae.getSessionBoard}),{data:U,isLoading:V}=(0,g.useQuery)({queryKey:["dependencies"],queryFn:ae.getDependencies}),W=function(){let[a,b]=(0,c.useState)(300),[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)("board");(0,c.useEffect)(()=>{b(function(a){if("string"!=typeof a)return 300;let b=Number.parseInt(a,10);return O(Number.isNaN(b)?300:b)}(ad(L)));try{e(P(JSON.parse(ad(M)??"[]")))}catch{e([])}g("list"===ad(N)?"list":"board")},[]);let h=(0,c.useCallback)(a=>{let c=O(a);b(c);try{window.localStorage.setItem(L,String(c))}catch{}},[]),i=(0,c.useCallback)(a=>{let b=P(a);e(b);try{window.localStorage.setItem(M,JSON.stringify(b))}catch{}},[]);return{columnWidth:a,setColumnWidth:h,columnOrder:d,setColumnOrder:i,resetColumnOrder:(0,c.useCallback)(()=>{e([]);try{window.localStorage.removeItem(M)}catch{}},[]),view:f,setView:(0,c.useCallback)(a=>{g(a);try{window.localStorage.setItem(N,a)}catch{}},[])}}(),[X,Y]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let a=window.matchMedia("(min-width: 768px)"),b=()=>Y(a.matches);return b(),a.addEventListener("change",b),()=>a.removeEventListener("change",b)},[]);let Z=X?W.view:"list",$=()=>{t.invalidateQueries({queryKey:["sessions-board"]}),t.invalidateQueries({queryKey:["sessions"]})},_=(0,f.useMutation)({mutationFn:a=>(0,ae.startSession)(a),onSuccess:$,onError:b=>{ag.toast.error(b instanceof Error&&b.message?`${a("sessions.startFailed")}: ${b.message}`:a("sessions.startFailed"))}}),aa=(0,f.useMutation)({mutationFn:a=>(0,ae.stopSession)(a),onSuccess:b=>{b?.session?.warning&&ag.toast.warning(a("copilot.stopExternalWarning")),$()},onError:b=>{ag.toast.error(b instanceof Error&&b.message?`${a("sessions.stopFailed")}: ${b.message}`:a("sessions.stopFailed"))}}),ab=(0,f.useMutation)({mutationFn:a=>(0,ae.deleteSession)(a.id,{force:a.force}),onSuccess:()=>{H(null),$()},onError:(b,c)=>{!c.force&&b instanceof ae.GatewayApiError&&b.details?.code==="SESSION_RUNTIME_STOP_UNCONFIRMED"?H(c.id):ag.toast.error(b instanceof Error&&b.message?`${a("sessions.deleteFailed")}: ${b.message}`:a("sessions.deleteFailed"))}}),ah=I?.board,ai=ah?.sessions??[],aj=ah?.projects??[],ak=ah?.sessionTasks??{},al=!J&&aj.length>0,am=U?.terminalRuntime,an=(0,af.getTerminalRuntimeSetupGuidance)(am?.mode,am?.supported),ao=!V&&an.blocked;(0,c.useEffect)(()=>{if(!ah||K||S)return;let a=Date.now(),b=(0,r.readSessionTabs)().filter(b=>"running"===b.status||a-b.updatedAt<3e4).map(a=>a.id);(0,r.pruneSessionTabs)(new Set([...ai.map(a=>a.id),...b])),(0,r.notifySessionTabsChanged)()},[ah,ai,K,S]);let ap=(0,c.useMemo)(()=>(0,F.collectSessionCliTools)(ai),[ai]),aq=(0,c.useMemo)(()=>(0,F.filterBoardSessions)(ai,{query:u,statusFilter:w,cliTools:y}),[ai,u,w,y]),ar=u.trim().length>0,as=(0,c.useMemo)(()=>(0,F.groupSessionsIntoColumns)(aq,aj,{showEmptyProjects:B||ar}),[aq,aj,B,ar]),at=(0,c.useMemo)(()=>(function(a,b){if(0===b.length)return a;let c=new Map(a.map(a=>[a.key,a])),d=new Set,e=[];for(let a of b){let b=c.get(a);b&&!d.has(a)&&(d.add(a),e.push(b))}return[...e,...a.filter(a=>!a.unlinked&&!d.has(a.key)),...a.filter(a=>a.unlinked)]})(as,W.columnOrder),[as,W.columnOrder]),au=function(){let[a,b]=(0,c.useState)({});return(0,c.useEffect)(()=>{let a=()=>{b(function(){let a={};for(let b of(0,r.readSessionTabs)())b.lastPrompt&&(a[b.id]=b.lastPrompt);return a}())};return a(),window.addEventListener("forgebadger-session-tabs-changed",a),()=>{window.removeEventListener("forgebadger-session-tabs-changed",a)}},[]),a}(),av=(0,c.useMemo)(()=>{let a={};for(let b of ai){let c=(0,F.resolveSessionPrompt)(b,au);c&&(a[b.id]=c)}return a},[ai,au]),[aw,ax]=(0,c.useState)(null);(0,c.useEffect)(()=>{ax(Date.now());let a=window.setInterval(()=>ax(Date.now()),6e4);return()=>window.clearInterval(a)},[]);let ay=_.isPending||aa.isPending||ab.isPending,az={onOpenSession:a=>{(0,r.upsertSessionTab)((0,r.sessionToTab)(a)),(0,r.notifySessionTabsChanged)(),q.push(`/sessions/${a.id}`)},onStartSession:a=>_.mutate(a.id),onStopSession:a=>aa.mutate(a.id),onDeleteSession:a=>ab.mutate({id:a.id})};return(0,b.jsxs)("div",{className:"mx-auto max-w-[1440px] space-y-4 p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:a("sessions.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("sessions.subtitle")})]}),al?(0,b.jsxs)(m.Button,{size:"sm",variant:"brand",onClick:()=>E(!0),children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("projects.newSession")]}):(0,b.jsx)(m.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}),J?(0,b.jsx)(R,{}):0===ai.length?(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex min-h-[50vh] flex-col items-center justify-center gap-4 py-12 text-center",children:[(0,b.jsx)("div",{className:(0,s.cn)("flex size-10 items-center justify-center rounded-md",ao?"bg-destructive/10 text-destructive":"bg-brand/10 text-brand"),children:ao?(0,b.jsx)(i.AlertTriangle,{className:"size-5"}):(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:ao?a(an.titleKey):a("sessions.emptyTitle")}),(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:ao?a("sessions.runtimeBlockedDescription"):a("sessions.emptyReadyDescription")}),ao&&(0,b.jsx)("p",{className:"mx-auto max-w-2xl text-xs text-muted-foreground",children:a(an.descriptionKey)})]}),ao&&(0,b.jsx)("div",{className:"w-full max-w-3xl text-left",children:(0,b.jsx)(o.RuntimeSetupCommands,{guidance:an})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[ao&&(0,b.jsx)(m.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)(d.default,{href:"/settings",children:[(0,b.jsx)(i.AlertTriangle,{className:"size-4"}),a("sessions.openSettings")]})}),al?(0,b.jsxs)(m.Button,{size:"sm",variant:"brand",onClick:()=>E(!0),children:[(0,b.jsx)(j.FolderOpen,{className:"size-4"}),a("sessions.createFromProject")]}):(0,b.jsx)(m.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]})]})}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(ac,{query:u,onQueryChange:v,statusFilter:w,onStatusFilterChange:x,cliTools:ap,selectedCliTools:y,onToggleCliTool:a=>{z(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},showEmptyProjects:B,onShowEmptyProjectsChange:C,hasCustomColumnOrder:W.columnOrder.length>0,onResetColumnOrder:W.resetColumnOrder,view:Z,onViewChange:W.setView}),0===aq.length?(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{className:"flex flex-col items-center justify-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(l.TerminalSquare,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("sessions.noMatchesTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("sessions.noMatchesDescription")})]})]})}):"list"===Z?(0,b.jsx)(T,{columns:at,prompts:av,now:aw,actionPending:ay,...az}):(0,b.jsx)(Q,{columns:at,sessionTasks:ak,prompts:av,now:aw,actionPending:ay,columnWidth:W.columnWidth,onColumnWidthChange:W.setColumnWidth,onColumnOrderChange:W.setColumnOrder,...az})]}),(0,b.jsx)(n.Dialog,{open:D,onOpenChange:E,children:(0,b.jsxs)(n.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:a("sessions.chooseProjectTitle")}),(0,b.jsx)(n.DialogDescription,{children:a("sessions.chooseProjectDescription")})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[aj.map(a=>(0,b.jsxs)(m.Button,{variant:"outline",className:"h-auto w-full min-w-0 justify-start gap-3 px-3 py-2.5",onClick:()=>{E(!1),q.push(`/projects/${a.id}?tab=sessions`)},children:[(0,b.jsx)(j.FolderOpen,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start gap-0.5",children:[(0,b.jsx)("span",{className:"max-w-full truncate text-sm font-medium",children:a.name}),a.path&&(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-xs text-muted-foreground",children:a.path})]})]},a.id)),J?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:a("sessions.loading")}):0===aj.length?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("sessions.chooseProjectEmpty")}),(0,b.jsx)(m.Button,{asChild:!0,size:"sm",variant:"brand",children:(0,b.jsxs)(d.default,{href:"/projects/new",children:[(0,b.jsx)(k.Plus,{className:"size-4"}),a("sessions.createProject")]})})]}):null]})]})}),(0,b.jsx)(n.Dialog,{open:null!==G,onOpenChange:a=>{a||H(null)},children:(0,b.jsxs)(n.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:a("sessions.forceDeleteTitle")}),(0,b.jsx)(n.DialogDescription,{children:a("sessions.forceDeleteDescription")})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(m.Button,{variant:"outline",size:"sm",onClick:()=>H(null),children:a("sessions.forceDeleteCancel")}),(0,b.jsx)(m.Button,{variant:"destructive",size:"sm",disabled:ab.isPending,onClick:()=>{G&&ab.mutate({id:G,force:!0})},children:a("sessions.forceDeleteConfirm")})]})]})})]})}],45132)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_sessions_page_tsx_0phmhty._.js.map
|