forgebadger 0.1.0 → 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 +36 -23
- package/dist/commands/doctor.d.ts +2 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/start.d.ts +3 -2
- package/dist/commands/start.js +5 -4
- package/dist/commands/start.js.map +1 -1
- 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 -0
- package/dist/gateway/src/config/env.js +27 -2
- 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 -31
- 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 +134 -38
- 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 +28 -1
- package/dist/gateway/src/runtime/start-gateway.js.map +1 -1
- package/dist/gateway/src/server.d.ts +20 -2
- package/dist/gateway/src/server.js +50 -3
- package/dist/gateway/src/server.js.map +1 -1
- package/dist/gateway/src/services/adapter-autonomy.d.ts +5 -2
- package/dist/gateway/src/services/adapter-autonomy.js +19 -1
- package/dist/gateway/src/services/adapter-autonomy.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 +10 -0
- package/dist/gateway/src/services/agent/dispatch-supervisor.js +36 -0
- package/dist/gateway/src/services/agent/dispatch-supervisor.js.map +1 -0
- 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 +25 -24
- 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 -8
- 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-coverage.js +5 -2
- package/dist/gateway/src/services/agent/tools/platform-coverage.js.map +1 -1
- package/dist/gateway/src/services/agent/tools/platform-management.js +4 -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 +50 -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 +198 -20
- 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 +61 -8
- package/dist/gateway/src/services/platform-commands/catalog.js +218 -29
- 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.d.ts +18 -1
- package/dist/gateway/src/services/platform-commands/session-commands.js +93 -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 +5 -4
- package/dist/gateway/src/services/project-manager/management.js +4 -3
- 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.d.ts +4 -0
- package/dist/gateway/src/services/project-manager/task-packets.js +13 -0
- 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/dependency-check.d.ts +3 -1
- package/dist/runtime/dependency-check.js +31 -5
- package/dist/runtime/dependency-check.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 +25 -15
- package/docs/README.zh-TW.md +25 -15
- package/package.json +10 -10
- 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-xefkkbz5sms.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0-~0vw7n16dl5.js +0 -1
- 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.dinxntqfai9.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/0269he.njfzan.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/06k2e3bpaue8l.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/09wc9dfimci6a.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/0bwb7o-xmqgh9.js +0 -3
- package/dist/web/standalone/packages/web/.next/static/chunks/0c11igjuiagib.js +0 -5
- package/dist/web/standalone/packages/web/.next/static/chunks/0c2pxjg6tacjx.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0d7lv09enxqxk.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0ek9hith8j-xs.js +0 -1
- package/dist/web/standalone/packages/web/.next/static/chunks/0g477-voyum5d.css +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/0om1z.zeag-a7.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/0ub4kcycb_b...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/0v8tskw4xza79.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/10eii2rij6zzf.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/17hy0ddp_si9n.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/{UoUlLp6otXSsVrQmrFF4Z → rZYlH0_cQ6CsojVFUjtlA}/_buildManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{UoUlLp6otXSsVrQmrFF4Z → rZYlH0_cQ6CsojVFUjtlA}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/standalone/packages/web/.next/static/{UoUlLp6otXSsVrQmrFF4Z → rZYlH0_cQ6CsojVFUjtlA}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[78513,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(84889),h=a.i(63865),i=a.i(35485);let j=(0,i.default)("Braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]),k=(0,i.default)("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var l=a.i(14060),m=a.i(97494),n=a.i(70458),o=a.i(35133),p=a.i(39042),q=a.i(27291);function r(a){return!Number.isFinite(a)||a<=0?"0":a<1e3?String(Math.round(a)):a<1e6?`${s(a/1e3)}k`:a<1e9?`${s(a/1e6)}M`:`${s(a/1e9)}B`}function s(a){let b=Math.round(10*a)/10;return Number.isInteger(b),String(b)}var t=a.i(79914),u=a.i(39465);function v(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function w(a,b){let c=[];for(let d=new Date(a);d<b;d.setDate(d.getDate()+1))c.push(v(d));return c}let x="last30";function y({title:a,rows:c,brandChip:d=!1,showHitRate:e=!1,className:f}){let{t:g}=(0,t.useLanguage)(),h=Math.max(1,...c.map(a=>a.totalTokens));return(0,b.jsxs)("section",{className:(0,u.cn)("space-y-3 forgebadger-animate-in",f),children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:a}),(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1",children:g("usage.group")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:g("usage.input")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:g("usage.output")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:g("usage.total")}),e&&(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:g("usage.cacheHitRate")})]}),c.map(a=>(0,b.jsxs)("div",{className:"relative flex items-center gap-3 px-4 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsx)("span",{className:"pointer-events-none absolute inset-y-0 left-0 bg-brand/5",style:{width:`${a.totalTokens/h*100}%`}}),(0,b.jsx)("span",{className:"relative min-w-0 flex-1 truncate text-sm font-medium",children:d&&"unknown"!==(0,q.getCliBrand)(a.key).id?(0,b.jsx)(o.CliBrandChip,{aiTool:a.key}):a.key}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:r(a.inputTokens)}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:r(a.outputTokens)}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm font-medium tabular-nums",children:r(a.totalTokens)}),e&&(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:null===a.cacheHitRate?"—":`${a.cacheHitRate}%`})]},a.key))]})]})}function z({series:a,days:d}){let{t:e}=(0,t.useLanguage)(),[f,g]=(0,c.useState)(null),h=(0,c.useMemo)(()=>{let b=new Map;for(let c of a)b.set(`${c.day}|${c.group}`,c);return b},[a]),i=(0,c.useMemo)(()=>[...new Set(a.map(a=>a.group))].sort(),[a]),j=Math.max(1,...a.map(a=>a.totalTokens));return 0===i.length||0===d.length?null:(0,b.jsxs)(n.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(n.CardHeader,{className:"pb-3",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(n.CardTitle,{className:"text-sm font-semibold",children:e("usage.activityTitle")}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground",children:f?`${f.project.split("/").filter(Boolean).pop()??f.project} \xb7 ${f.day} \xb7 ${r(f.total)}`:" "}),(0,b.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-muted"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/20"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/40"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/60"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand"})]})]})]})}),(0,b.jsx)(n.CardContent,{children:(0,b.jsx)("div",{className:"overflow-x-auto",onMouseLeave:()=>g(null),children:(0,b.jsxs)("div",{className:"inline-block space-y-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"w-36 shrink-0"}),d.map(a=>(0,b.jsx)("div",{className:"w-4 shrink-0 text-center text-[10px] leading-none text-muted-foreground",children:a.slice(8)},a))]}),i.map(a=>{let c=a.split("/").filter(Boolean).pop()??a;return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"w-36 shrink-0 truncate pr-2 text-xs leading-none text-muted-foreground",title:a,children:c}),d.map(c=>{let d=h.get(`${c}|${a}`),e=d?.totalTokens??0,f=e>0?Math.ceil(e/j*4):0;return(0,b.jsx)("div",{className:(0,u.cn)("size-4 shrink-0 rounded-[3px] transition-transform hover:scale-110 hover:ring-1 hover:ring-foreground/40",0===f?"bg-muted":1===f?"bg-brand/20":2===f?"bg-brand/40":3===f?"bg-brand/60":"bg-brand"),onMouseEnter:()=>g({project:a,day:c,total:e})},`${c}|${a}`)})]},a)}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"w-36 shrink-0"}),(0,b.jsxs)("div",{className:"flex flex-1 justify-between pt-1 text-[10px] leading-none text-muted-foreground",children:[(0,b.jsx)("span",{children:d[0]}),(0,b.jsx)("span",{children:d[d.length-1]})]})]})]})})})]})}a.s(["default",0,function(){let{t:a}=(0,t.useLanguage)(),i=(0,f.useQueryClient)(),[o,q]=(0,c.useState)(""),[s,A]=(0,c.useState)("ok"),[B,C]=(0,c.useState)(x),D=(0,c.useMemo)(()=>(function(a=12){let b=new Date;return Array.from({length:a},(a,c)=>{let d=new Date(b.getFullYear(),b.getMonth()-c,1);return`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}`})})(),[]),E=(0,c.useMemo)(()=>(function(a){if(a===x){let a=new Date,b=new Date(a.getFullYear(),a.getMonth(),a.getDate()-29),c=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return{from:`${v(b)}T00:00:00`,to:`${v(c)}T00:00:00`,days:w(b,c)}}let[b=0,c=1]=a.split("-").map(Number),d=new Date(b,c-1,1),e=new Date(b,c,1);return{from:`${v(d)}T00:00:00`,to:`${v(e)}T00:00:00`,days:w(d,e)}})(B),[B]),{data:F,isLoading:G}=(0,e.useQuery)({queryKey:["usage-token-summary"],queryFn:()=>(0,p.getTokenUsageSummary)()}),{data:H,isLoading:I}=(0,e.useQuery)({queryKey:["usage-project-activity",B],queryFn:()=>(0,p.getProjectActivity)({from:E.from,to:E.to})}),J=F?.summary,K=H?.series??[],L=E.days,M=(0,d.useMutation)({mutationFn:p.syncUsageTokens,onSuccess:b=>{let c=b.result?.totalInserted??0;A("ok"),q(c>0?`${a("usage.syncDone")} (+${c})`:a("usage.syncDone")),i.invalidateQueries({queryKey:["usage-token-summary"]}),i.invalidateQueries({queryKey:["usage-project-activity"]})},onError:b=>{A("error"),q(b instanceof Error?b.message:a("usage.syncFailed"))}}),N=(0,c.useMemo)(()=>{let a=new Map;for(let b of K){let c=a.get(b.day)??{inputTokens:0,outputTokens:0,totalTokens:0};c.inputTokens+=b.inputTokens,c.outputTokens+=b.outputTokens,c.totalTokens+=b.totalTokens,a.set(b.day,c)}return L.map(b=>({day:b,...a.get(b)??{inputTokens:0,outputTokens:0,totalTokens:0}}))},[K,L]),O=Math.max(1,...N.map(a=>a.totalTokens)),P=J?[{icon:j,label:a("usage.totalTokens"),value:r(J.totalTokens),hint:`${a("usage.requests")} ${J.requestCount}`},{icon:k,label:a("usage.totalInput"),value:r(J.totalInputTokens)},{icon:j,label:a("usage.totalOutput"),value:r(J.totalOutputTokens)},{icon:k,label:a("usage.totalCacheRead"),value:r(J.totalCacheReadTokens)},{icon:k,label:a("usage.totalCacheWrite"),value:r(J.totalCacheWriteTokens)},{icon:h.Brain,label:a("usage.totalReasoning"),value:r(J.totalReasoningTokens)},{icon:k,label:a("usage.cacheHitRate"),value:null===J.cacheHitRate?"—":`${J.cacheHitRate}%`,hint:a("usage.cacheHitRateHint")}]:[];return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 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("usage.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("usage.subtitle")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{"aria-label":a("usage.activityTitle"),className:"h-8 rounded-md border border-border bg-background px-2 text-xs text-foreground",value:B,onChange:a=>C(a.target.value),children:[(0,b.jsx)("option",{value:x,children:a("usage.last30Days")}),D.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}),(0,b.jsxs)(m.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>M.mutate(),disabled:M.isPending,children:[(0,b.jsx)(l.RefreshCw,{className:(0,u.cn)("size-4",M.isPending&&"animate-spin")}),M.isPending?a("usage.syncing"):a("usage.sync")]})]})]}),o&&(0,b.jsxs)("div",{className:(0,u.cn)("flex items-center gap-2.5 rounded-lg border px-4 py-3 text-sm forgebadger-animate-in","error"===s?"border-red-500/40 bg-red-500/10 text-red-300":"border-emerald-500/40 bg-emerald-500/10 text-emerald-300"),children:[(0,b.jsx)("span",{className:(0,u.cn)("size-1.5 shrink-0 rounded-full","error"===s?"bg-red-400":"bg-emerald-400")}),o]}),G||!J?(0,b.jsx)(n.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(n.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:a("usage.loading")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(n.CardContent,{className:"flex flex-wrap p-0",children:P.map(a=>(0,b.jsxs)("div",{className:"flex min-w-[150px] flex-1 items-center gap-2.5 border-l border-border/70 px-4 py-3 first:border-l-0",children:[(0,b.jsx)("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(a.icon,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-base font-semibold leading-tight tabular-nums",children:a.value}),(0,b.jsxs)("div",{className:"mt-0.5 truncate text-[11px] text-muted-foreground",title:a.hint?`${a.label} \xb7 ${a.hint}`:a.label,children:[a.label,a.hint?(0,b.jsxs)("span",{className:"text-muted-foreground/70",children:[" · ",a.hint]}):null]})]})]},a.label))})}),0===J.requestCount?(0,b.jsx)(n.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(n.CardContent,{className:"flex flex-col items-center gap-3 py-12 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)(g.Activity,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("usage.emptyTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("usage.emptyDescription")})]}),(0,b.jsxs)(m.Button,{size:"sm",variant:"outline",onClick:()=>M.mutate(),disabled:M.isPending,children:[(0,b.jsx)(l.RefreshCw,{className:(0,u.cn)("size-4",M.isPending&&"animate-spin")}),M.isPending?a("usage.syncing"):a("usage.sync")]})]})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(n.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(n.CardHeader,{className:"pb-3",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(n.CardTitle,{className:"text-sm font-semibold",children:a("usage.dailyTrend")}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-2 rounded-sm bg-brand"}),a("usage.output")]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-2 rounded-sm bg-brand/50"}),a("usage.input")]})]})]})}),(0,b.jsxs)(n.CardContent,{children:[(0,b.jsx)("div",{className:"flex h-44 items-end gap-1 border-b border-border/70",children:N.map(c=>{let d=c.totalTokens>0?Math.min(100,c.outputTokens/c.totalTokens*100):0;return(0,b.jsxs)("div",{className:"group relative flex h-full flex-1 items-end",children:[(0,b.jsxs)("div",{className:"pointer-events-none absolute bottom-full left-1/2 z-10 mb-2 hidden -translate-x-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs shadow-lg group-hover:block",children:[(0,b.jsx)("div",{className:"font-medium",children:c.day}),(0,b.jsxs)("div",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsx)("span",{children:a("usage.total")}),(0,b.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:r(c.totalTokens)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-sm bg-brand"}),a("usage.output")]}),(0,b.jsx)("span",{className:"tabular-nums",children:r(c.outputTokens)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-sm bg-brand/50"}),a("usage.input")]}),(0,b.jsx)("span",{className:"tabular-nums",children:r(c.inputTokens)})]})]})]}),c.totalTokens>0&&(0,b.jsxs)("div",{className:"flex w-full flex-col justify-end overflow-hidden rounded-t",style:{height:`${Math.max(2,c.totalTokens/O*100)}%`},children:[(0,b.jsx)("div",{className:"w-full bg-brand transition-colors group-hover:bg-brand/90",style:{height:`${d}%`}}),(0,b.jsx)("div",{className:"w-full flex-1 bg-brand/50 transition-colors group-hover:bg-brand/60"})]})]},c.day)})}),(0,b.jsxs)("div",{className:"mt-2 flex justify-between text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:N[0]?.day}),(0,b.jsx)("span",{children:N[N.length-1]?.day})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,b.jsx)(y,{title:a("usage.byAdapter"),rows:J.byAdapter,brandChip:!0}),(0,b.jsx)(y,{title:a("usage.byProject"),rows:J.byProject}),(0,b.jsx)(y,{title:a("usage.byModel"),rows:J.byModel,showHitRate:!0,className:"md:col-span-2"})]})]}),I?(0,b.jsx)(n.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(n.CardContent,{className:"py-6 text-center text-sm text-muted-foreground",children:a("usage.loading")})}):(0,b.jsx)(z,{series:K,days:L})]})]})}],78513)}];
|
|
1
|
+
module.exports=[78513,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(4837),e=a.i(39747),f=a.i(26248),g=a.i(84889),h=a.i(35485);let i=(0,h.default)("ArrowDownToLine",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),j=(0,h.default)("ArrowUpFromLine",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]);var k=a.i(21115),l=a.i(63865);let m=(0,h.default)("Braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]),n=(0,h.default)("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);var o=a.i(14060),p=a.i(69168),q=a.i(97494),r=a.i(70458),s=a.i(35133),t=a.i(67305),u=a.i(39042),v=a.i(27291);function w(a){return!Number.isFinite(a)||a<=0?"0":a<1e3?String(Math.round(a)):a<1e6?`${x(a/1e3)}k`:a<1e9?`${x(a/1e6)}M`:`${x(a/1e9)}B`}function x(a){let b=Math.round(10*a)/10;return Number.isInteger(b),String(b)}var y=a.i(79914),z=a.i(39465);function A(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function B(a,b){let c=[];for(let d=new Date(a);d<b;d.setDate(d.getDate()+1))c.push(A(d));return c}let C="last30";function D({title:a,rows:c,brandChip:d=!1,showHitRate:e=!1,resolveLabel:f,className:g}){let{t:h}=(0,y.useLanguage)(),i=Math.max(1,...c.map(a=>a.totalTokens));return(0,b.jsxs)("section",{className:(0,z.cn)("space-y-3 forgebadger-animate-in",g),children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:a}),(0,b.jsxs)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1",children:h("usage.group")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:h("usage.input")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:h("usage.output")}),(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:h("usage.total")}),e&&(0,b.jsx)("span",{className:"w-20 shrink-0 text-right",children:h("usage.cacheHitRate")})]}),c.map(a=>(0,b.jsxs)("div",{className:"relative flex items-center gap-3 px-4 py-2.5 transition-colors hover:bg-muted/40",children:[(0,b.jsx)("span",{className:"pointer-events-none absolute inset-y-0 left-0 bg-brand/5",style:{width:`${a.totalTokens/i*100}%`}}),(0,b.jsx)("span",{className:"relative min-w-0 flex-1 truncate text-sm font-medium",children:d&&"unknown"!==(0,v.getCliBrand)(a.key).id?(0,b.jsx)(s.CliBrandChip,{aiTool:a.key}):f?.(a.key)??a.key}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:w(a.inputTokens)}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:w(a.outputTokens)}),(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm font-medium tabular-nums",children:w(a.totalTokens)}),e&&(0,b.jsx)("span",{className:"relative w-20 shrink-0 text-right text-sm tabular-nums text-muted-foreground",children:null===a.cacheHitRate?"—":`${a.cacheHitRate}%`})]},a.key))]})]})}function E({series:a,days:d}){let{t:e}=(0,y.useLanguage)(),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(null),j=h??f,k=(0,c.useMemo)(()=>{let b=new Map;for(let c of a)b.set(`${c.day}|${c.group}`,c);return b},[a]),l=(0,c.useMemo)(()=>[...new Set(a.map(a=>a.group))].sort(),[a]),m=Math.max(1,...a.map(a=>a.totalTokens));return 0===l.length||0===d.length?null:(0,b.jsxs)(r.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(r.CardHeader,{className:"pb-3",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(r.CardTitle,{className:"text-sm font-semibold",children:e("usage.activityTitle")}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("span",{className:"text-xs tabular-nums text-muted-foreground",children:j?`${j.project.split("/").filter(Boolean).pop()??j.project} \xb7 ${j.day} \xb7 ${w(j.total)}`:" "}),(0,b.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-muted"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/20"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/40"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand/60"}),(0,b.jsx)("span",{className:"size-2.5 rounded-sm bg-brand"})]})]})]})}),(0,b.jsx)(r.CardContent,{children:(0,b.jsx)("div",{className:"overflow-x-auto",onMouseLeave:()=>{g(null),i(null)},children:(0,b.jsxs)("div",{className:"inline-block space-y-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"sticky left-0 z-10 w-36 shrink-0 bg-card"}),d.map((a,c)=>{let e=0===c||a.slice(0,7)!==d[c-1].slice(0,7);return(0,b.jsxs)("div",{className:"flex w-4 shrink-0 flex-col items-center gap-0.5 text-muted-foreground",children:[(0,b.jsx)("span",{className:"text-[9px] leading-none",children:e?a.slice(5,7):""}),(0,b.jsx)("span",{className:"text-center text-[10px] leading-none",children:a.slice(8)})]},a)})]}),l.map(a=>{let c=a.split("/").filter(Boolean).pop()??a;return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"sticky left-0 z-10 w-36 shrink-0 truncate bg-card pr-2 text-xs leading-none text-muted-foreground",title:a,children:c}),d.map(c=>{let d=k.get(`${c}|${a}`),e=d?.totalTokens??0,f=e>0?Math.ceil(e/m*4):0;return(0,b.jsx)("div",{"data-testid":`usage-cell-${c}`,className:(0,z.cn)("size-4 shrink-0 cursor-pointer rounded-[3px] transition-transform hover:scale-110 hover:ring-1 hover:ring-foreground/40",0===f?"bg-muted":1===f?"bg-brand/20":2===f?"bg-brand/40":3===f?"bg-brand/60":"bg-brand"),onMouseEnter:()=>g({project:a,day:c,total:e}),onClick:()=>{i(b=>b&&b.project===a&&b.day===c?null:{project:a,day:c,total:e})}},`${c}|${a}`)})]},a)}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"sticky left-0 z-10 w-36 shrink-0 bg-card"}),(0,b.jsxs)("div",{className:"flex flex-1 justify-between pt-1 text-[10px] leading-none text-muted-foreground",children:[(0,b.jsx)("span",{children:d[0]}),(0,b.jsx)("span",{children:d[d.length-1]})]})]})]})})})]})}a.s(["default",0,function(){let{t:a}=(0,y.useLanguage)(),h=(0,f.useQueryClient)(),[s,v]=(0,c.useState)(""),[x,F]=(0,c.useState)("ok"),[G,H]=(0,c.useState)(C),[I,J]=(0,c.useState)(null),K=(0,c.useMemo)(()=>(function(a=12){let b=new Date;return Array.from({length:a},(a,c)=>{let d=new Date(b.getFullYear(),b.getMonth()-c,1);return`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}`})})(),[]),L=(0,c.useMemo)(()=>(function(a){if(a===C){let a=new Date,b=new Date(a.getFullYear(),a.getMonth(),a.getDate()-29),c=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return{from:`${A(b)}T00:00:00`,to:`${A(c)}T00:00:00`,days:B(b,c)}}let[b=0,c=1]=a.split("-").map(Number),d=new Date(b,c-1,1),e=new Date(b,c,1);return{from:`${A(d)}T00:00:00`,to:`${A(e)}T00:00:00`,days:B(d,e)}})(G),[G]),{data:M,isLoading:N,isError:O,refetch:P}=(0,e.useQuery)({queryKey:["usage-token-summary"],queryFn:()=>(0,u.getTokenUsageSummary)()}),{data:Q,isLoading:R}=(0,e.useQuery)({queryKey:["usage-project-activity",G],queryFn:()=>(0,u.getProjectActivity)({from:L.from,to:L.to})}),{data:S}=(0,e.useQuery)({queryKey:["projects"],queryFn:()=>(0,u.listProjects)()}),T=(0,c.useMemo)(()=>{let a=new Map;for(let b of S?.projects??[])a.set(b.id,b.name),b.path&&a.set(b.path,b.name),b.rootPath&&a.set(b.rootPath,b.name);return a},[S]),U=M?.summary,V=Q?.series??[],W=L.days,X=(0,d.useMutation)({mutationFn:u.syncUsageTokens,onSuccess:b=>{let c=b.result?.totalInserted??0;F("ok"),v(c>0?`${a("usage.syncDone")} (+${c})`:a("usage.syncDone")),h.invalidateQueries({queryKey:["usage-token-summary"]}),h.invalidateQueries({queryKey:["usage-project-activity"]})},onError:b=>{F("error"),v(b instanceof Error?b.message:a("usage.syncFailed"))}}),Y=(0,c.useMemo)(()=>{let a=new Map;for(let b of V){let c=a.get(b.day)??{inputTokens:0,outputTokens:0,totalTokens:0};c.inputTokens+=b.inputTokens,c.outputTokens+=b.outputTokens,c.totalTokens+=b.totalTokens,a.set(b.day,c)}return W.map(b=>({day:b,...a.get(b)??{inputTokens:0,outputTokens:0,totalTokens:0}}))},[V,W]),Z=Math.max(1,...Y.map(a=>a.totalTokens)),$=U?[{icon:m,label:a("usage.totalTokens"),value:w(U.totalTokens),hint:`${a("usage.requests")} ${U.requestCount}`},{icon:i,label:a("usage.totalInput"),value:w(U.totalInputTokens)},{icon:j,label:a("usage.totalOutput"),value:w(U.totalOutputTokens)},{icon:k.BookOpen,label:a("usage.totalCacheRead"),value:w(U.totalCacheReadTokens)},{icon:n,label:a("usage.totalCacheWrite"),value:w(U.totalCacheWriteTokens)},{icon:l.Brain,label:a("usage.totalReasoning"),value:w(U.totalReasoningTokens)},{icon:p.Target,label:a("usage.cacheHitRate"),value:null===U.cacheHitRate?"—":`${U.cacheHitRate}%`,hint:a("usage.cacheHitRateHint")}]:[];return(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 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("usage.title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("usage.subtitle")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{"aria-label":a("usage.activityTitle"),className:"h-8 rounded-md border border-border bg-background px-2 text-xs text-foreground",value:G,onChange:a=>{H(a.target.value),J(null)},children:[(0,b.jsx)("option",{value:C,children:a("usage.last30Days")}),K.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"brand",onClick:()=>X.mutate(),disabled:X.isPending,children:[(0,b.jsx)(o.RefreshCw,{className:(0,z.cn)("size-4",X.isPending&&"animate-spin")}),X.isPending?a("usage.syncing"):a("usage.sync")]})]})]}),s&&(0,b.jsxs)("div",{className:(0,z.cn)("flex items-center gap-2.5 rounded-lg border px-4 py-3 text-sm forgebadger-animate-in","error"===x?"border-red-500/40 bg-red-500/10 text-red-300":"border-emerald-500/40 bg-emerald-500/10 text-emerald-300"),children:[(0,b.jsx)("span",{className:(0,z.cn)("size-1.5 shrink-0 rounded-full","error"===x?"bg-red-400":"bg-emerald-400")}),s]}),O?(0,b.jsx)(t.QueryState,{isLoading:!1,isError:!0,isEmpty:!1,onRetry:()=>void P(),empty:null}):N||!U?(0,b.jsx)(r.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(r.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:a("usage.loading")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(r.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(r.CardContent,{className:"flex flex-wrap p-0",children:$.map(a=>(0,b.jsxs)("div",{className:"flex min-w-[150px] flex-1 items-center gap-2.5 border-l border-border/70 px-4 py-3 first:border-l-0",children:[(0,b.jsx)("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(a.icon,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-base font-semibold leading-tight tabular-nums",children:a.value}),(0,b.jsxs)("div",{className:"mt-0.5 truncate text-[11px] text-muted-foreground",title:a.hint?`${a.label} \xb7 ${a.hint}`:a.label,children:[a.label,a.hint?(0,b.jsxs)("span",{className:"text-muted-foreground/70",children:[" · ",a.hint]}):null]})]})]},a.label))}),(0,b.jsx)("div",{className:"border-t border-border/70 px-4 py-2 text-[11px] text-muted-foreground",children:a("usage.metricsAllTimeNote")})]}),0===U.requestCount?(0,b.jsx)(r.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(r.CardContent,{className:"flex flex-col items-center gap-3 py-12 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)(g.Activity,{className:"size-5"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a("usage.emptyTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("usage.emptyDescription")})]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>X.mutate(),disabled:X.isPending,children:[(0,b.jsx)(o.RefreshCw,{className:(0,z.cn)("size-4",X.isPending&&"animate-spin")}),X.isPending?a("usage.syncing"):a("usage.sync")]})]})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(r.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(r.CardHeader,{className:"pb-3",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(r.CardTitle,{className:"text-sm font-semibold",children:a("usage.dailyTrend")}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-2 rounded-sm bg-brand"}),a("usage.output")]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-2 rounded-sm bg-brand/50"}),a("usage.input")]})]})]})}),(0,b.jsxs)(r.CardContent,{children:[(0,b.jsxs)("div",{className:"flex h-44 gap-3",children:[(0,b.jsxs)("div",{className:"flex w-12 shrink-0 flex-col justify-between py-0 text-right text-[10px] leading-none tabular-nums text-muted-foreground","aria-hidden":"true",children:[(0,b.jsx)("span",{children:w(Z)}),(0,b.jsx)("span",{children:w(Math.round(Z/2))}),(0,b.jsx)("span",{children:"0"})]}),(0,b.jsxs)("div",{className:"relative flex flex-1 items-end gap-1 border-b border-border/70",children:[(0,b.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 border-t border-border/40"}),(0,b.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-1/2 border-t border-border/40"}),Y.map(c=>{let d=c.totalTokens>0?Math.min(100,c.outputTokens/c.totalTokens*100):0,e=I===c.day;return(0,b.jsxs)("div",{"data-testid":`usage-bar-${c.day}`,className:"group relative flex h-full flex-1 cursor-pointer items-end",onClick:()=>J(a=>a===c.day?null:c.day),children:[(0,b.jsxs)("div",{className:(0,z.cn)("pointer-events-none absolute bottom-full left-1/2 z-10 mb-2 -translate-x-1/2 whitespace-nowrap rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs shadow-lg",e?"block":"hidden group-hover:block"),children:[(0,b.jsx)("div",{className:"font-medium",children:c.day}),(0,b.jsxs)("div",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsx)("span",{children:a("usage.total")}),(0,b.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:w(c.totalTokens)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-sm bg-brand"}),a("usage.output")]}),(0,b.jsx)("span",{className:"tabular-nums",children:w(c.outputTokens)})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"size-1.5 rounded-sm bg-brand/50"}),a("usage.input")]}),(0,b.jsx)("span",{className:"tabular-nums",children:w(c.inputTokens)})]})]})]}),c.totalTokens>0&&(0,b.jsxs)("div",{className:"flex w-full flex-col justify-end overflow-hidden rounded-t",style:{height:`${Math.max(2,c.totalTokens/Z*100)}%`},children:[(0,b.jsx)("div",{className:"w-full bg-brand transition-colors group-hover:bg-brand/90",style:{height:`${d}%`}}),(0,b.jsx)("div",{className:"w-full flex-1 bg-brand/50 [background-image:repeating-linear-gradient(135deg,transparent_0px,transparent_2px,rgba(255,255,255,0.35)_2px,rgba(255,255,255,0.35)_3px)] transition-colors group-hover:bg-brand/60"})]})]},c.day)})]})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-between text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:Y[0]?.day}),(0,b.jsx)("span",{children:Y[Y.length-1]?.day})]})]})]}),(0,b.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,b.jsx)(D,{title:a("usage.byAdapter"),rows:U.byAdapter,brandChip:!0}),(0,b.jsx)(D,{title:a("usage.byProject"),rows:U.byProject,resolveLabel:a=>T.get(a)??a}),(0,b.jsx)(D,{title:a("usage.byModel"),rows:U.byModel,showHitRate:!0,className:"md:col-span-2"})]})]}),R?(0,b.jsx)(r.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(r.CardContent,{className:"py-6 text-center text-sm text-muted-foreground",children:a("usage.loading")})}):(0,b.jsx)(E,{series:V,days:W})]})]})}],78513)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_usage_page_tsx_018s0ua._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[28503,a=>{"use strict";var b=a.i(20486),c=a.i(72637),d=a.i(85198),e=a.i(39747),f=a.i(26248),g=a.i(97494),h=a.i(55068),i=a.i(70458),j=a.i(39042),k=a.i(83164);let l="/api/v1/copilot/channels",m=(a,b={})=>(0,j.fetchJson)(l+a,{method:"POST",body:JSON.stringify(b)});async function n(){let[a,b,c,d]=await Promise.all([(0,j.fetchJson)(l+"/pairings"),(0,j.fetchJson)(l+"/identities"),(0,j.fetchJson)(l+"/routes"),(0,j.fetchJson)(l+"/deliveries")]);return{...a,...b,...c,...d}}var o=a.i(4837),p=a.i(13877);function q(a){return(0,b.jsxs)("div",{className:"space-y-6 p-4 text-sm",children:[(0,b.jsx)(p.CopilotGrantsPanel,{...a}),(0,b.jsx)(r,{})]})}function r(){let a=(0,e.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,k.getProjectOverview)(),refetchInterval:3e4});return(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"font-semibold",children:"多项目进度"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"此处是账号下的项目管理视图,不会扩大会话授权范围。CLI 模式用于任务规划;当前 CLI 自动执行权限未验证,仍需人工操作。"}),a.isPending&&(0,b.jsx)("p",{role:"status",children:"正在加载项目…"}),a.isError&&(0,b.jsxs)("p",{role:"alert",children:["项目加载失败"," ",(0,b.jsx)(g.Button,{size:"sm",variant:"outline",onClick:()=>void a.refetch(),children:"重试"})]}),a.data?.projects.length===0&&(0,b.jsx)("p",{className:"text-muted-foreground",children:"暂无项目,请先在项目页创建或导入。"}),a.data?.projects.map(a=>(0,b.jsx)(s,{project:a},`${a.id}-${a.management.revision}`))]})}function s({project:a}){let c=(0,f.useQueryClient)(),[e,i]=(0,d.useState)(a.management),j=(0,o.useMutation)({mutationFn:()=>(0,k.updateProjectManagement)(a.id,{mode:e.mode,ownerLabel:e.ownerLabel,nextAction:e.nextAction,freshnessHours:e.freshnessHours,expectedRevision:a.management.revision}),onSuccess:()=>c.invalidateQueries({queryKey:["project-management-overview"]})});return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,b.jsx)("a",{className:"font-medium hover:underline",href:`/projects/${a.id}`,children:a.name}),(0,b.jsxs)("span",{className:"text-xs",children:["manual"===a.management.mode?"人工项目":"CLI 规划"," · 人工执行"]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.goal?.summary||"尚未设置目标"}),(0,b.jsxs)("p",{className:"text-xs",children:["完成 ",a.counts.done,"/",a.counts.total," · 进行中"," ",a.counts.in_progress," · 阻塞 ",a.counts.blocked," · 证据",{unknown:"时间未知",stale:"已过期",fresh:"新鲜"}[a.evidenceFreshness.status]]}),(0,b.jsxs)("details",{children:[(0,b.jsxs)("summary",{className:"cursor-pointer text-xs",children:["负责人及下一步:",a.management.ownerLabel||"未指定"," ·"," ",a.management.nextAction||"待安排"]}),(0,b.jsxs)("form",{className:"mt-2 space-y-2",onSubmit:a=>{a.preventDefault(),j.mutate()},children:[(0,b.jsxs)("label",{className:"block",children:["管理模式",(0,b.jsxs)("select",{className:"ml-2 rounded border border-border bg-background p-1",value:e.mode,onChange:a=>i({...e,mode:a.target.value}),children:[(0,b.jsx)("option",{value:"manual",children:"人工"}),(0,b.jsx)("option",{value:"cli",children:"CLI 规划(仍需人工执行)"})]})]}),(0,b.jsxs)("label",{className:"block",children:["负责人",(0,b.jsx)(h.Input,{value:e.ownerLabel,onChange:a=>i({...e,ownerLabel:a.target.value})})]}),(0,b.jsxs)("label",{className:"block",children:["下一步",(0,b.jsx)(h.Input,{value:e.nextAction,onChange:a=>i({...e,nextAction:a.target.value})})]}),(0,b.jsxs)("label",{className:"block",children:["证据有效小时",(0,b.jsx)(h.Input,{type:"number",min:"1",max:"8760",value:e.freshnessHours,onChange:a=>i({...e,freshnessHours:Number(a.target.value)})})]}),j.isError&&(0,b.jsxs)("p",{role:"alert",className:"text-destructive",children:["保存失败:",j.error.message,(0,b.jsx)(g.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void c.invalidateQueries({queryKey:["project-management-overview"]}),children:"重新加载"})]}),(0,b.jsx)(g.Button,{size:"sm",disabled:j.isPending,children:"保存管理信息"})]})]})]})}var t=a.i(81421),u=a.i(37926);let v=["copilot-channels"],w={pending:"待处理",claimed:"等待确认",confirmed:"已确认",cancelled:"已取消",active:"有效",revoked:"已撤销",sending:"发送中",delivered:"飞书已接收",failed:"发送失败",unknown:"结果不确定",connected:"已连接",connecting:"连接中",reconnecting:"重新连接中",unhealthy:"连接异常",stopped:"已停止",disabled:"未启用"},x=a=>w[a]??a;a.s(["CopilotChannelsPage",0,function(){let a=(0,u.useSettingsCopy)(),l=(0,f.useQueryClient)(),o=(0,e.useQuery)({queryKey:v,queryFn:async()=>{let[a,b,c]=await Promise.all([(0,j.getFeishuChannelAccount)(),(0,j.getFeishuConnectionHealth)(),n()]);return{account:a,health:b,...c}},refetchInterval:3e3}),p=(0,e.useQuery)({queryKey:["copilot-grants"],queryFn:k.listGrants,refetchInterval:15e3}),r=(0,e.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,k.getProjectOverview)()}),[s,w]=(0,d.useState)(""),[y,z]=(0,d.useState)(""),[A,B]=(0,d.useState)(!1),[C,D]=(0,d.useState)(""),[E,F]=(0,d.useState)(""),[G,H]=(0,d.useState)(null),[I,J]=(0,d.useState)(""),[K,L]=(0,d.useState)(""),[M,N]=(0,d.useState)(""),[O,P]=(0,d.useState)(Date.now());(0,d.useEffect)(()=>{let a=setInterval(()=>P(Date.now()),1e3);return()=>clearInterval(a)},[]);let Q=o.data,R=Q?.pairings.find(a=>a.accountId===Q.account?.id&&a.accountRevision===Q.account?.configRevision&&["pending","claimed"].includes(a.status)&&a.expiresAt>O),S=R?`${R.id}:${R.revision}:${R.externalUserId}:${R.chatId}`:"";(0,d.useEffect)(()=>J(""),[S]),(0,d.useEffect)(()=>{G&&(G.expiresAt<=O||Q&&!Q.pairings.some(a=>a.id===G.id&&"pending"===a.status&&a.accountRevision===Q.account?.configRevision))&&H(null)},[Q,O,G]);let T=Q?.identities.filter(a=>"active"===a.status&&a.accountId===Q.account?.id&&a.accountRevision===Q.account?.configRevision)??[],U=p.data?.grants.filter(a=>"active"===a.status&&(null===a.expiresAt||a.expiresAt>O)&&(null===a.maxActions||a.usedActions<a.maxActions))??[],V=U.find(a=>a.id===M),W=T.find(a=>a.id===K)??(1===T.length?T[0]:void 0);function X(a){if("active"!==a.status)return x(a.status);let b=Q?.identities.find(b=>b.id===a.identityId);if(!b||"active"!==b.status)return"身份已失效";if(b.accountId!==Q?.account?.id||b.accountRevision!==Q?.account?.configRevision)return"配置已更新,需要重新绑定";if(!Q.account.enabled)return"渠道已停用";if(p.isPending||p.isError)return"授权状态待核查";let c=p.data?.grants.find(b=>b.id===a.grantId);return!c||"active"!==c.status||c.revision!==a.grantRevision||null!==c.expiresAt&&c.expiresAt<=O||null!==c.maxActions&&c.usedActions>=c.maxActions?"授权已失效":"权限有效"}async function Y(){await Promise.all([l.invalidateQueries({queryKey:v}),l.invalidateQueries({queryKey:["copilot-grants"]})])}async function Z(a){B(!0),D(""),F("");try{await a(),await Y()}catch{D("操作未完成。请刷新状态后重试;身份、授权或连接状态可能已变化。"),H(null),J("")}finally{B(!1),z("")}}return(0,b.jsx)(t.CopilotSettingsShell,{active:"channels",title:a.channelsCardTitle,description:a.channelsCardDescription,children:(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[o.isPending&&(0,b.jsx)("p",{role:"status",children:"正在加载渠道…"}),(o.isError||p.isError)&&(0,b.jsxs)("div",{role:"alert",children:["加载失败。",(0,b.jsx)(g.Button,{variant:"outline",onClick:()=>{o.refetch(),p.refetch()},children:"重新加载"})]}),C&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:C}),E&&(0,b.jsx)("p",{role:"status",className:"text-sm",children:E}),Q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{role:"status",className:"rounded-md border border-border p-3 text-sm",children:p.isPending||p.isError?"远程操作状态待核查。":Q.routes.some(a=>"权限有效"===X(a))?"飞书远程操作已授权;实际收发还需连接正常。":"飞书远程操作尚未启用:请在第 3 步选择有效项目授权,并点击“启用飞书远程操作”。仅创建项目授权不会启用飞书。"}),(0,b.jsxs)(i.Card,{children:[(0,b.jsx)(i.CardHeader,{children:(0,b.jsx)(i.CardTitle,{children:"1. 飞书应用"})}),(0,b.jsxs)(i.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("p",{role:"status",children:["连接:",x(Q.health.state)," · ",Q.account?.secretConfigured?"凭证已保存":"尚未配置凭证"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"保存应用会更新配置版本,已有身份和渠道授权将失效,需要重新配对和绑定。"}),(0,b.jsxs)("form",{className:"grid gap-3 sm:grid-cols-2",onSubmit:a=>{a.preventDefault(),z(""),H(null),Z(()=>(0,j.saveFeishuChannelAccount)({appId:s||Q.account?.appId||"",enabled:!0,...y?{appSecret:y}:{}}))},children:[(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["App ID",(0,b.jsx)(h.Input,{"aria-label":"App ID",autoComplete:"off",value:s,placeholder:Q.account?.appId??"cli_…",onChange:a=>w(a.target.value)})]}),(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["App Secret",(0,b.jsx)(h.Input,{"aria-label":"App Secret",type:"password",autoComplete:"new-password",value:y,placeholder:Q.account?.secretConfigured?"留空保留已保存密钥":"输入应用密钥",onChange:a=>z(a.target.value)})]}),(0,b.jsx)(g.Button,{type:"submit",disabled:A||!(s||Q.account?.appId)||!Q.account?.secretConfigured&&!y,children:"保存并启用"}),(0,b.jsx)(g.Button,{type:"button",variant:"destructive",disabled:A||!Q.account,onClick:()=>{H(null),Z(j.emergencyStopFeishu)},children:"紧急停止飞书"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"紧急停止阻止后续入站和操作;已经发生的操作无法撤回。飞书开放平台需要开启机器人和消息接收事件。"})]})]}),(0,b.jsxs)(i.Card,{children:[(0,b.jsx)(i.CardHeader,{children:(0,b.jsx)(i.CardTitle,{children:"2. 确认私聊身份"})}),(0,b.jsxs)(i.CardContent,{className:"space-y-3",children:[(0,b.jsx)(g.Button,{disabled:A||!Q.account?.enabled,onClick:()=>void Z(async()=>{H(null);let a=await m("/pairings",{channel:"feishu",accountId:Q.account.id});await Y(),H({id:a.pairing.id,value:a.token,expiresAt:a.pairing.expiresAt})}),children:"生成新的配对码"}),G&&G.expiresAt>O&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border p-3",children:[(0,b.jsxs)("p",{className:"text-sm",children:["向本应用机器人私聊发送以下命令,请勿转发。到期:",new Date(G.expiresAt).toLocaleTimeString()]}),(0,b.jsxs)("code",{className:"block break-all select-all",children:["/pair ",G.value]})]}),!R&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"没有待确认配对。新配对码会使旧码失效。"}),R?.status==="pending"&&(0,b.jsx)("p",{role:"status",children:"等待飞书私聊认领… 配对码仅在生成时显示,刷新页面后可重新生成。"}),R?.status==="claimed"&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:"请核对认领者,勾选后确认;系统不会自动绑定身份。"}),(0,b.jsxs)("dl",{className:"break-all text-sm",children:[(0,b.jsx)("dt",{children:"飞书用户 ID"}),(0,b.jsx)("dd",{children:R.externalUserId}),(0,b.jsx)("dt",{className:"mt-2",children:"私聊 ID"}),(0,b.jsx)("dd",{children:R.chatId})]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:I===S,onChange:a=>J(a.target.checked?S:"")}),"我确认这是自己的飞书私聊"]}),(0,b.jsx)(g.Button,{disabled:A||I!==S,onClick:()=>void Z(async()=>{J(""),H(null),await m(`/pairings/${encodeURIComponent(R.id)}/confirm`,{revision:R.revision,externalUserId:R.externalUserId,chatId:R.chatId})}),children:"确认身份"})]}),R&&(0,b.jsx)(g.Button,{variant:"outline",disabled:A,onClick:()=>{H(null),J(""),Z(()=>{let a;return a=R.id,m(`/pairings/${encodeURIComponent(a)}/cancel`)})},children:"取消本次配对"}),Q.identities.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("span",{className:"break-all",children:[a.externalUserId," · ",x(a.status),a.accountRevision!==Q.account?.configRevision?" · 配置已更新,请重新配对":""]}),(0,b.jsx)(g.Button,{variant:"outline",size:"sm",disabled:A||"active"!==a.status,onClick:()=>void Z(()=>{let b;return b=a.id,m(`/identities/${encodeURIComponent(b)}/revoke`)}),children:"撤销身份"})]},a.id))]})]}),(0,b.jsxs)(i.Card,{children:[(0,b.jsx)(i.CardHeader,{children:(0,b.jsx)(i.CardTitle,{children:"3. 绑定项目与操作授权"})}),(0,b.jsxs)(i.CardContent,{className:"space-y-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"绑定会创建独立会话。权限范围不可在该会话中切换;更换授权需要撤销旧绑定。"}),(0,b.jsxs)("details",{open:!0,className:"rounded-md border border-border p-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer text-sm",children:"创建或管理项目授权"}),(0,b.jsx)(q,{onGrantCreated:N,startConversationLabel:"选择此授权",onStartConversation:async a=>N(a)})]}),p.isPending&&(0,b.jsx)("p",{role:"status",children:"正在加载授权…"}),!p.isPending&&!U.length&&(0,b.jsx)("p",{className:"text-sm",children:"尚无可用授权,请先创建。"}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["私聊身份",(0,b.jsxs)("select",{"aria-label":"私聊身份",className:"w-full rounded-md border border-border bg-background p-2",value:W?.id??"",onChange:a=>L(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"选择已确认身份"}),T.map(a=>(0,b.jsx)("option",{value:a.id,children:a.externalUserId},a.id))]})]}),(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["授权",(0,b.jsxs)("select",{"aria-label":"授权",className:"w-full rounded-md border border-border bg-background p-2",value:V?.id??"",onChange:a=>N(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"选择有效授权"}),U.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),V&&(0,b.jsxs)("div",{className:"space-y-1 rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("p",{children:["项目:",V.scope.projectIds.map(a=>r.data?.projects.find(b=>b.id===a)?.name??a).join("、")||"无现有项目"]}),(0,b.jsxs)("p",{className:"break-all",children:["允许操作:",V.scope.capabilities.join("、")||"无写操作"]}),(0,b.jsxs)("p",{className:"break-all",children:["允许目录:",V.scope.allowedRoots.join("、")||"无额外目录"]}),(0,b.jsxs)("p",{children:["已用次数:",V.usedActions,"/",V.maxActions??"不限"," · 最大并发:",V.maxConcurrency]}),(0,b.jsxs)("p",{children:["到期:",null===V.expiresAt?"长期有效,直至撤销":new Date(V.expiresAt).toLocaleString()]})]}),(0,b.jsx)(g.Button,{disabled:A||!V||!W||Q.routes.some(a=>a.identityId===W.id&&"active"===a.status),onClick:()=>void Z(async()=>{await m("/routes",{identityId:W.id,grantId:V.id}),F("渠道绑定已创建;请以上方实时状态为准,状态正常后发送一条新消息。")}),children:"启用飞书远程操作"}),Q.routes.map(a=>(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("p",{children:[p.data?.grants.find(b=>b.id===a.grantId)?.name??a.grantId," · ",X(a)]}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:["独立会话:",a.conversationId]}),(0,b.jsx)(c.default,{className:"inline-block underline underline-offset-4",href:`/copilot?c=${encodeURIComponent(a.conversationId)}`,children:"打开会话与审批"}),(0,b.jsx)(g.Button,{variant:"outline",size:"sm",disabled:A||"active"!==a.status,onClick:()=>void Z(()=>{let b;return b=a.id,m(`/routes/${encodeURIComponent(b)}/revoke`)}),children:"撤销渠道授权"})]},a.id))]})]}),(0,b.jsxs)(i.Card,{children:[(0,b.jsx)(i.CardHeader,{children:(0,b.jsx)(i.CardTitle,{children:"最近结果回传"})}),(0,b.jsxs)(i.CardContent,{className:"space-y-3 text-sm",children:[(0,b.jsx)("p",{className:"text-muted-foreground",children:"“飞书已接收”不代表已读。“结果不确定”可能已经送达,请先核对飞书;系统不会自动重发。"}),!Q.deliveries.length&&(0,b.jsx)("p",{children:"暂无回传记录。"}),Q.deliveries.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap justify-between gap-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("span",{children:["terminal"===a.phase?"任务结果":"审批提示"," · ",x(a.status)]}),(0,b.jsx)("time",{children:new Date(a.createdAt).toLocaleString()})]},a.id))]})]})]})]})})}],28503)}];
|
|
1
|
+
module.exports=[28503,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(39747),e=a.i(26248),f=a.i(97494),g=a.i(39042),h=a.i(83164);let i="/api/v1/copilot/channels",j=(a,b={})=>(0,g.fetchJson)(i+a,{method:"POST",body:JSON.stringify(b)});async function k(){let[a,b,c,d]=await Promise.all([(0,g.fetchJson)(i+"/pairings"),(0,g.fetchJson)(i+"/identities"),(0,g.fetchJson)(i+"/routes"),(0,g.fetchJson)(i+"/deliveries")]);return{...a,...b,...c,...d}}var l=a.i(72637),m=a.i(94872),n=a.i(78281),o=a.i(4730),p=a.i(70458),q=a.i(75196);let r=["identity_inactive","config_changed","channel_disabled","project_missing","autonomy_off","authority_revoked"];var s=a.i(4837),t=a.i(55068),u=a.i(10917),v=a.i(37926);function w(){let a=(0,v.useSettingsCopy)(),c=(0,d.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,h.getProjectOverview)(),refetchInterval:3e4});return(0,b.jsxs)("div",{className:"space-y-6 p-4 text-sm",children:[(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"font-semibold",children:a.mgmtTitle}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.mgmtDescription}),c.isPending&&(0,b.jsx)("p",{role:"status",children:a.projectsLoading}),c.isError&&(0,b.jsxs)("p",{role:"alert",children:[a.mgmtLoadFailed," ",(0,b.jsx)(f.Button,{size:"sm",variant:"outline",onClick:()=>void c.refetch(),children:a.autonomyRetry})]}),c.data?.projects.length===0&&(0,b.jsx)("p",{className:"text-muted-foreground",children:a.mgmtNoProjects}),c.data?.projects.map(a=>(0,b.jsx)(x,{project:a},`autonomy-${a.id}`))]}),(0,b.jsx)(y,{overview:c})]})}function x({project:a}){let c=(0,v.useSettingsCopy)(),d=(0,e.useQueryClient)(),f=(0,s.useMutation)({mutationFn:b=>(0,h.setCopilotAutonomy)(a.id,b),onSuccess:()=>d.invalidateQueries({queryKey:["project-management-overview"]})});return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("a",{className:"font-medium hover:underline",href:`/projects/${a.id}`,children:a.name}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[a.copilotAutonomy?c.mgmtAutonomyOn:c.mgmtAutonomyOff,f.isError?` \xb7 ${c.mgmtSaveFailed(f.error.message)}`:""]})]}),(0,b.jsx)(u.Switch,{checked:a.copilotAutonomy,onCheckedChange:a=>f.mutate(a),disabled:f.isPending,"aria-label":c.mgmtSwitchAria(a.name)})]})}function y({overview:a}){let c=(0,v.useSettingsCopy)();return(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"font-semibold",children:c.mgmtProgressTitle}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.mgmtProgressDescription}),a.data?.projects.map(a=>(0,b.jsx)(z,{project:a},`${a.id}-${a.management.revision}`))]})}function z({project:a}){let d=(0,v.useSettingsCopy)(),g=(0,e.useQueryClient)(),[i,j]=(0,c.useState)(a.management),k=(0,s.useMutation)({mutationFn:()=>(0,h.updateProjectManagement)(a.id,{mode:i.mode,ownerLabel:i.ownerLabel,nextAction:i.nextAction,freshnessHours:i.freshnessHours,expectedRevision:a.management.revision}),onSuccess:()=>g.invalidateQueries({queryKey:["project-management-overview"]})});return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,b.jsx)("a",{className:"font-medium hover:underline",href:`/projects/${a.id}`,children:a.name}),(0,b.jsxs)("span",{className:"text-xs",children:["manual"===a.management.mode?d.mgmtModeManual:d.mgmtModeCli," · ","supervised"===a.autonomy?d.mgmtSupervised:d.mgmtManualExec]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.goal?.summary||d.mgmtNoGoal}),(0,b.jsxs)("p",{className:"text-xs",children:[d.mgmtProgressSummary(a.counts.done,a.counts.total,a.counts.in_progress,a.counts.blocked),d.mgmtEvidenceFreshness[a.evidenceFreshness.status]??a.evidenceFreshness.status]}),(0,b.jsxs)("details",{children:[(0,b.jsxs)("summary",{className:"cursor-pointer text-xs",children:[d.mgmtOwnerNextSummary,a.management.ownerLabel||d.mgmtUnassigned," ·"," ",a.management.nextAction||d.mgmtUnplanned]}),(0,b.jsxs)("form",{className:"mt-2 space-y-2",onSubmit:a=>{a.preventDefault(),k.mutate()},children:[(0,b.jsxs)("label",{className:"block",children:[d.mgmtModeLabel,(0,b.jsxs)("select",{className:"ml-2 rounded border border-border bg-background p-1",value:i.mode,onChange:a=>j({...i,mode:a.target.value}),children:[(0,b.jsx)("option",{value:"manual",children:d.mgmtModeOptionManual}),(0,b.jsx)("option",{value:"cli",children:d.mgmtModeOptionCli})]})]}),(0,b.jsxs)("label",{className:"block",children:[d.mgmtOwnerLabel,(0,b.jsx)(t.Input,{value:i.ownerLabel,onChange:a=>j({...i,ownerLabel:a.target.value})})]}),(0,b.jsxs)("label",{className:"block",children:[d.mgmtNextActionLabel,(0,b.jsx)(t.Input,{value:i.nextAction,onChange:a=>j({...i,nextAction:a.target.value})})]}),(0,b.jsxs)("label",{className:"block",children:[d.mgmtFreshnessLabel,(0,b.jsx)(t.Input,{type:"number",min:"1",max:"8760",value:i.freshnessHours,onChange:a=>j({...i,freshnessHours:Number(a.target.value)})})]}),k.isError&&(0,b.jsxs)("p",{role:"alert",className:"text-destructive",children:[d.mgmtSaveFailed(k.error.message),(0,b.jsx)(f.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void g.invalidateQueries({queryKey:["project-management-overview"]}),children:d.mgmtReload})]}),(0,b.jsx)(f.Button,{size:"sm",disabled:k.isPending,children:d.mgmtSave})]})]})]})}function A({busy:a,queriesError:c,channelName:d,identities:e,identityId:g,onIdentityChange:h,autonomyProjects:i,projectId:j,onProjectChange:k,projectsLoading:s,projectsError:t,blocker:u,activationReason:x,showBlockerLink:y,onActivate:z,routes:B,routeState:C,projectName:D,onRevokeRoute:E}){let F=(0,v.useSettingsCopy)();return(0,b.jsxs)(p.Card,{id:"channel-authorization",className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(m.Link2,{className:"size-4"}),title:F.bindingTitle,description:F.bindingDescription}),(0,b.jsxs)(p.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:F.manageAutonomy}),(0,b.jsx)(w,{})]}),s&&(0,b.jsx)("p",{role:"status",children:F.projectsLoading}),!s&&!t&&!i.length&&(0,b.jsx)("p",{className:"text-sm",children:F.noAutonomyProjects}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("span",{children:F.identityLabel}),(0,b.jsxs)(q.Select,{value:g,onValueChange:h,children:[(0,b.jsx)(q.SelectTrigger,{"aria-label":F.identityLabel,className:"w-full",children:(0,b.jsx)(q.SelectValue,{placeholder:F.identityPlaceholder})}),(0,b.jsx)(q.SelectContent,{children:e.map(a=>(0,b.jsx)(q.SelectItem,{value:a.id,children:a.externalUserId},a.id))})]})]}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("span",{children:F.projectLabel}),(0,b.jsxs)(q.Select,{value:j,onValueChange:k,children:[(0,b.jsx)(q.SelectTrigger,{"aria-label":F.projectLabel,className:"w-full",children:(0,b.jsx)(q.SelectValue,{placeholder:F.projectPlaceholder})}),(0,b.jsx)(q.SelectContent,{children:i.map(a=>(0,b.jsx)(q.SelectItem,{value:a.id,children:a.name},a.id))})]})]})]}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(f.Button,{"aria-describedby":"channel-activation-reason",disabled:a||!!u||c,onClick:z,children:F.activateRemote(d)})}),(0,b.jsxs)("p",{id:"channel-activation-reason","data-testid":"channel-activation-reason",role:"status",className:"text-sm text-muted-foreground",children:[x,u&&y&&(0,b.jsx)("a",{className:"ml-2 underline underline-offset-4",href:`#channel-${u.step}`,children:u.action})]}),0===B.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:F.bindingsEmpty}),B.map(c=>{let d=C(c);return(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"min-w-0",children:D(c.projectId)}),(0,b.jsx)(o.Badge,{variant:"secondary",className:"authorized"===d?"bg-emerald-500/15 text-emerald-400":"pending_review"===d?"bg-amber-500/15 text-amber-400":d&&r.includes(d)?"bg-destructive/15 text-destructive":"text-muted-foreground",children:d?F.routeStates[d]:F.channelStates[c.status]??c.status})]}),(0,b.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:F.independentSession(c.conversationId)}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(l.default,{className:"underline underline-offset-4",href:`/copilot?c=${encodeURIComponent(c.conversationId)}`,children:F.openConversation}),(0,b.jsx)(f.Button,{variant:"outline",size:"sm",disabled:a||"active"!==c.status,onClick:()=>E(c.id),children:F.revokeBinding})]})]},c.id)})]})]})}var B=a.i(79914),C=a.i(10567),D=a.i(62384);function E({channel:a,channelName:d,account:e,health:g,busy:h,onSaveFeishu:i,onSaveTelegram:j,onEmergencyStop:k}){let l=(0,v.useSettingsCopy)(),m=(0,B.useUiLocale)(),q=!!e?.secretConfigured,[r,s]=(0,c.useState)(!q),[u,w]=(0,c.useState)(q),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(!1),J=g?.state??"disabled";function K(){s(!1),y(""),A(""),G("")}(0,c.useEffect)(()=>{q!==u&&(w(q),q&&s(!1))},[q,u]);let L=(0,b.jsx)(o.Badge,{variant:"secondary",children:"feishu"===a?l.savedBadgeFeishu:l.savedBadgeTelegram});return(0,b.jsxs)(p.Card,{id:"channel-connection",className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(C.Plug,{className:"size-4"}),title:"feishu"===a?l.connectionTitleFeishu:l.connectionTitleTelegram,description:l.connectionDescription,action:(0,b.jsx)(o.Badge,{variant:"secondary",className:"connected"===J?"bg-emerald-500/15 text-emerald-400":"connecting"===J||"reconnecting"===J?"bg-amber-500/15 text-amber-400":"unhealthy"===J?"bg-destructive/15 text-destructive":"text-muted-foreground",children:l.channelStates[J]??J})}),(0,b.jsxs)(p.CardContent,{className:"space-y-3",children:[q&&!r?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-sm",children:[L,"feishu"===a&&e?.appId&&(0,b.jsxs)("span",{className:"break-all font-mono text-xs text-muted-foreground",children:["App ID · ",e.appId]}),"telegram"===a&&e?.botUsername&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:l.botUsername(e.botUsername)}),g?.lastConnectedAt&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:l.lastConnected(new Date(g.lastConnectedAt).toLocaleString(m))})]}),g?.lastErrorMessage&&(0,b.jsx)("div",{role:"alert",className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive",children:l.lastError(g.lastErrorMessage)}),(0,b.jsx)("div",{children:(0,b.jsx)(f.Button,{type:"button",variant:"outline",size:"sm",disabled:h,onClick:()=>s(!0),children:l.modifyConfig})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:q?L:(0,b.jsx)(o.Badge,{variant:"outline",children:"feishu"===a?l.notConfiguredBadgeFeishu:l.notConfiguredBadgeTelegram})}),g?.lastConnectedAt&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l.lastConnected(new Date(g.lastConnectedAt).toLocaleString(m))}),g?.lastErrorMessage&&(0,b.jsx)("div",{role:"alert",className:"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive",children:l.lastError(g.lastErrorMessage)}),"feishu"===a&&(0,b.jsxs)("form",{className:"grid gap-3 sm:grid-cols-2",onSubmit:a=>{a.preventDefault(),i(x||e?.appId||"",z).then(a=>{A(""),a&&(y(""),s(!1))})},children:[(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["App ID",(0,b.jsx)(t.Input,{"aria-label":"App ID",autoComplete:"off",value:x,placeholder:e?.appId??"cli_…",onChange:a=>y(a.target.value)})]}),(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["App Secret",(0,b.jsx)(t.Input,{"aria-label":"App Secret",type:"password",autoComplete:"new-password",value:z,placeholder:q?l.secretKeepPlaceholder:l.secretInputPlaceholder,onChange:a=>A(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 sm:col-span-2",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",disabled:h,onClick:K,children:l.dialogCancel}),(0,b.jsx)(f.Button,{type:"submit",disabled:h||!(x||e?.appId)||!q&&!z,children:l.saveAndEnable})]})]}),"telegram"===a&&(0,b.jsxs)("form",{className:"grid gap-3 sm:grid-cols-2",onSubmit:a=>{a.preventDefault(),j(F).then(a=>{G(""),a&&s(!1)})},children:[(0,b.jsxs)("label",{className:"space-y-1 text-sm",children:["Bot Token",(0,b.jsx)(t.Input,{"aria-label":"Bot Token",type:"password",autoComplete:"new-password",value:F,placeholder:q?l.tokenKeepPlaceholder:"123456:ABC-DEF…",onChange:a=>G(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex items-end justify-end gap-2",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",disabled:h,onClick:K,children:l.dialogCancel}),(0,b.jsx)(f.Button,{type:"submit",disabled:h||!F&&!q,children:l.saveAndEnable})]})]})]}),"feishu"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l.feishuReconnectHint}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l.feishuPlatformHint}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l.feishuCardHint})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l.emergencyStopNote("telegram"===a)}),(0,b.jsx)(f.Button,{type:"button",variant:"outline",className:"border-destructive/50 text-destructive hover:bg-destructive/10 hover:text-destructive",disabled:h||!e,onClick:()=>I(!0),children:l.emergencyStopButton(d)})]})]}),(0,b.jsx)(D.Dialog,{open:H,onOpenChange:I,children:(0,b.jsxs)(D.DialogContent,{children:[(0,b.jsxs)(D.DialogHeader,{children:[(0,b.jsx)(D.DialogTitle,{children:l.emergencyStopTitle(d)}),(0,b.jsx)(D.DialogDescription,{children:l.emergencyStopDescription})]}),(0,b.jsxs)(D.DialogFooter,{children:[(0,b.jsx)(f.Button,{variant:"outline",onClick:()=>I(!1),children:l.dialogCancel}),(0,b.jsx)(f.Button,{variant:"destructive",disabled:h,onClick:()=>{I(!1),k()},children:l.emergencyStopConfirm})]})]})})]})}var F=a.i(78234);function G({deliveries:a}){let c=(0,v.useSettingsCopy)(),d=(0,B.useUiLocale)();return(0,b.jsxs)(p.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(F.History,{className:"size-4"}),title:c.deliveriesTitle,description:c.deliveriesDescription}),(0,b.jsxs)(p.CardContent,{className:"space-y-2 text-sm",children:[!a.length&&(0,b.jsx)("p",{className:"text-muted-foreground",children:c.deliveriesEmpty}),a.map(a=>{var e;return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:["terminal"===a.phase?c.deliveryPhaseTerminal:c.deliveryPhaseStatus,(0,b.jsx)(o.Badge,{variant:"secondary",className:"delivered"===(e=a.status)?"bg-emerald-500/15 text-emerald-400":"failed"===e?"bg-destructive/15 text-destructive":"unknown"===e||"sending"===e||"pending"===e?"bg-amber-500/15 text-amber-400":"text-muted-foreground",children:c.channelStates[a.status]??a.status})]}),(0,b.jsx)("time",{className:"text-xs text-muted-foreground",children:new Date(a.createdAt).toLocaleString(d)})]},a.id)})]})]})}var H=a.i(84889),I=a.i(22510),J=a.i(37060);let K=(0,a.i(35485).default)("CircleDashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]);var L=a.i(92019),M=a.i(91638),N=a.i(39465);function O({channelName:a,isPending:d,isError:e,checks:g,onFailedCountChange:h}){let i=(0,v.useSettingsCopy)(),[j,k]=(0,c.useState)(!1),l=(g??[]).filter(a=>!a.ok&&"untested"!==a.status&&"pending"!==a.status).length;return(0,c.useEffect)(()=>{h(l)},[l,h]),(0,b.jsxs)(p.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(H.Activity,{className:"size-4"}),title:i.diagnosticsTitle(a),description:i.diagnosticsDescription,action:(0,b.jsxs)(f.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>k(a=>!a),"aria-expanded":j,children:[j?i.diagnosticsCollapse:i.diagnosticsExpand,(0,b.jsx)(J.ChevronDown,{className:(0,N.cn)("size-3.5 transition-transform",j&&"rotate-180")})]})}),j&&(0,b.jsxs)(p.CardContent,{className:"space-y-2",children:[d&&(0,b.jsx)("p",{role:"status",children:i.diagnosticsChecking}),e&&(0,b.jsx)("p",{role:"alert",children:i.diagnosticsLoadError}),!d&&!e&&!g?.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:i.diagnosticsEmpty}),g?.map(a=>{let c=a.ok?"ok":"untested"===a.status?"untested":"pending"===a.status?"pending":"failed";return(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border/70 p-3 text-sm",children:["ok"===c?(0,b.jsx)(I.Check,{className:"mt-0.5 size-4 shrink-0 text-emerald-400"}):"pending"===c?(0,b.jsx)(L.Loader2,{className:"mt-0.5 size-4 shrink-0 animate-spin text-amber-400"}):"untested"===c?(0,b.jsx)(K,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground"}):(0,b.jsx)(M.X,{className:"mt-0.5 size-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-2",children:[a.detail,"untested"===c&&(0,b.jsx)(o.Badge,{variant:"outline",className:"text-muted-foreground",children:i.diagnosticsStatusUntested}),"pending"===c&&(0,b.jsx)(o.Badge,{variant:"secondary",className:"bg-amber-500/15 text-amber-400",children:i.diagnosticsStatusPending}),"failed"===c&&(0,b.jsx)(o.Badge,{variant:"secondary",className:"bg-destructive/15 text-destructive",children:i.diagnosticsStatusFailed})]}),"failed"===c&&a.fixHint&&(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:i.diagnosticsFixHint(a.fixHint)})]})]},a.key)})]})]})}var P=a.i(14027),Q=a.i(83124),R=a.i(16569);function S({channel:a,channelName:d,busy:e,canPair:g,queriesError:h,pairing:i,token:j,candidate:k,accountIdentities:l,accountRevision:m,onCreatePairing:q,onConfirmPairing:r,onCancelPairing:s,onRevokeIdentity:u,whitelistIdsText:w,whitelistLoading:x,whitelistError:y,onSaveWhitelist:z}){let A=(0,v.useSettingsCopy)(),C=(0,B.useUiLocale)(),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(null),[H,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(!1);(0,c.useEffect)(()=>E(""),[k]);let M=F??w,N=[...new Set((F??"").split(/[,,\s]+/).filter(Boolean))];async function O(){if(j)try{await navigator.clipboard.writeText(`/pair ${j.value}`),L(!0),setTimeout(()=>L(!1),1500)}catch{}}return(0,b.jsxs)(p.Card,{id:"channel-pairing",className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(Q.KeyRound,{className:"size-4"}),title:A.pairingTitle,description:A.pairingDescription}),(0,b.jsxs)(p.CardContent,{className:"space-y-3",children:[(0,b.jsx)(f.Button,{disabled:e||!g||h,onClick:q,children:A.createPairingCode}),j&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:A.pairingCommandHint(d,new Date(j.expiresAt).toLocaleTimeString(C))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("code",{className:"block min-w-0 flex-1 break-all select-all rounded bg-muted/40 px-2 py-1.5 font-mono text-xs",children:["/pair ",j.value]}),(0,b.jsxs)(f.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void O(),children:[K?(0,b.jsx)(I.Check,{className:"size-3.5 text-emerald-400"}):(0,b.jsx)(P.Copy,{className:"size-3.5"}),K?A.commandCopied:A.copyCommand]})]})]}),!i&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:A.noPendingPairing}),i?.status==="pending"&&(0,b.jsxs)("p",{role:"status",className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,b.jsx)(o.Badge,{variant:"secondary",className:"bg-amber-500/15 text-amber-400",children:A.pairingStatusPending}),A.waitingClaim(d)]}),i?.status==="claimed"&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:A.claimReviewHint}),(0,b.jsxs)("dl",{className:"break-all text-sm",children:[(0,b.jsx)("dt",{children:"feishu"===a?A.userIdLabelFeishu:A.userIdLabelTelegram}),(0,b.jsx)("dd",{children:i.externalUserId}),(0,b.jsx)("dt",{className:"mt-2",children:"feishu"===a?A.chatIdLabelFeishu:A.chatIdLabelTelegram}),(0,b.jsx)("dd",{children:i.chatId})]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(R.Checkbox,{"aria-label":A.ackLabel(d),checked:D===k,onCheckedChange:a=>E(!0===a?k:"")}),A.ackLabel(d)]}),(0,b.jsx)(f.Button,{disabled:e||!g||h||D!==k,onClick:()=>r(i),children:A.confirmIdentity})]}),i&&(0,b.jsx)(f.Button,{variant:"outline",disabled:e,onClick:()=>{E(""),s(i.id)},children:A.cancelPairing}),0===l.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:A.identitiesEmpty}),l.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("span",{className:"break-all",children:[a.externalUserId," · ","active"===a.status&&a.accountRevision!==m?A.identityStale:A.channelStates[a.status]??a.status]}),(0,b.jsx)(f.Button,{variant:"outline",size:"sm",disabled:e||"active"!==a.status,onClick:()=>u(a.id),children:A.revokeIdentity})]},a.id)),(0,b.jsxs)("div",{id:"channel-chat-allowlist",className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("p",{className:"text-sm",children:A.allowlistTitle}),!H&&(0,b.jsx)(f.Button,{type:"button",variant:"outline",size:"sm",disabled:e,onClick:()=>J(!0),children:w?A.editAllowlist:A.setAllowlist})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:A.allowlistHint}),H?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[A.allowlistInputLabel,(0,b.jsx)(t.Input,{"aria-label":A.allowlistAria,value:M,placeholder:"feishu"===a?A.allowlistPlaceholderFeishu:A.allowlistPlaceholderTelegram,onChange:a=>G(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(f.Button,{type:"button",variant:"ghost",disabled:e,onClick:()=>{G(null),J(!1)},children:A.dialogCancel}),(0,b.jsx)(f.Button,{type:"button",variant:"outline",disabled:e||x||y||N.length>50||null===F||F===w,onClick:()=>{z(N).then(a=>{a&&(G(null),J(!1))})},children:A.saveAllowlist})]})]}):w?(0,b.jsx)("p",{className:"break-all font-mono text-xs text-muted-foreground",children:w}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:A.allowlistEmpty}),N.length>50&&(0,b.jsx)("p",{role:"alert",children:A.allowlistTooMany}),y&&(0,b.jsx)("p",{role:"alert",children:A.allowlistLoadError})]})]})]})}let T={running:{variant:"secondary",className:"bg-emerald-500/15 text-emerald-400"},pairing:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},authorization:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},unknown:{variant:"secondary",className:"bg-amber-500/15 text-amber-400"},stopped:{variant:"destructive",className:""},not_connected:{variant:"outline",className:"text-muted-foreground"}};function U({channel:a,busy:c,onSwitch:d,state:e,statusText:g,blocker:h,failedChecks:i}){let j=(0,v.useSettingsCopy)(),k={not_connected:j.channelStateNotConnected,pairing:j.channelStatePairing,authorization:j.channelStateAuthorization,running:j.channelStateRunning,stopped:j.channelStateStopped,unknown:j.channelStateUnknown},l=T[e];return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{role:"group","aria-label":j.channelPlatformLabel,className:"flex w-fit rounded-md border border-border/70 p-0.5",children:["feishu","telegram"].map(e=>(0,b.jsx)(f.Button,{type:"button",size:"sm",variant:a===e?"default":"ghost","aria-pressed":a===e,disabled:c,onClick:()=>d(e),children:"feishu"===e?j.channelNameFeishu:j.channelNameTelegram},e))}),(0,b.jsxs)("div",{role:"status",className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 rounded-md border border-border/70 bg-muted/20 px-3 py-2.5 text-sm",children:[(0,b.jsx)(o.Badge,{variant:l.variant,className:(0,N.cn)(l.className),children:k[e]}),(0,b.jsx)("span",{className:"min-w-0",children:g}),h&&(0,b.jsx)("a",{className:"underline underline-offset-4",href:`#channel-${h.step}`,children:h.action}),i>0&&(0,b.jsx)("span",{className:"w-full text-xs text-destructive",children:j.diagnosticsFailedNotice(i)})]})]})}var V=a.i(81421),W=a.i(14365);let X="/api/v1/notifications/feishu",Y=()=>(0,g.fetchJson)(X),Z=()=>(0,g.fetchJson)(X+"/deliveries"),$=["feishu-notification-settings"],_=["feishu-notification-deliveries"],aa=["attention","failure","completion","lifecycle","app_action","automation"];function ab({available:a}){let h=(0,v.useSettingsCopy)(),i=(0,e.useQueryClient)(),j=(0,d.useQuery)({queryKey:$,queryFn:Y,refetchInterval:5e3,refetchIntervalInBackground:!1}),k=(0,d.useQuery)({queryKey:_,queryFn:Z,refetchInterval:5e3,refetchIntervalInBackground:!1}),[l,m]=(0,c.useState)(null),[o,r]=(0,c.useState)(!1),[s,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(""),B={...h.notifyBlockers,...h.notifyErrors},C=aa.map(a=>({type:a,label:h.notifyTypes[a]})),D=(a,b)=>{let c=a instanceof g.GatewayApiError&&"string"==typeof a.details?.code?a.details.code:"";A(c);let d=B[c]??(a instanceof g.GatewayApiError&&401===a.status?h.notifyAuthExpired:h.notifyGenericError);w(h.notifyActionFailed(b,d))},E=l??j.data?.config,F=j.data?.targets??[],G=F.filter(a=>"private"===a.kind&&a.available),H=E?.targetId??(1===G.length?G[0].id:""),I=F.find(a=>a.id===H),J=(a,b=H)=>({...a,targetId:b||null,identityId:b.startsWith("private:")?b.slice(8):null}),K=a=>{E&&m(J({...E,...a},void 0===a.targetId?H:a.targetId??""))},L=async()=>{r(!0),w(""),A(""),y("");try{let a=await (0,g.fetchJson)(X+"/targets/refresh",{method:"POST",body:"{}"});await j.refetch(),y(a.targets.some(a=>"group"===a.kind&&a.available)?h.notifyRefreshOk:h.notifyRefreshNoGroup)}catch(a){D(a,h.notifyActionRefresh)}finally{r(!1)}},M=async()=>{if(E){r(!0),w(""),A(""),y("");try{let a,b=await (a=J(E),(0,g.fetchJson)(X,{method:"PUT",body:JSON.stringify(a)}));i.setQueryData($,b),m(null),y(b.config.enabled?h.notifySavedOn:h.notifySavedOff),await i.invalidateQueries({queryKey:_})}catch(a){D(a,h.notifyActionSave)}finally{r(!1)}}},N=async()=>{r(!0),w(""),A(""),y("");try{let a;await (a=crypto.randomUUID(),(0,g.fetchJson)(X+"/test",{method:"POST",body:JSON.stringify({requestId:a})})),y(h.notifyTestQueued),await i.invalidateQueries({queryKey:_})}catch(a){D(a,h.notifyActionTest)}finally{r(!1)}};return(0,b.jsxs)(p.Card,{id:"feishu-notifications",className:"forgebadger-animate-in",children:[(0,b.jsx)(n.SettingsCardHeader,{icon:(0,b.jsx)(W.Bell,{className:"size-4"}),title:h.notifyTitle,description:h.notifyDescription,action:E&&(0,b.jsx)(u.Switch,{"aria-label":h.notifySwitchAria,checked:E.enabled,disabled:o||j.isError||!E.enabled&&(!a||!F.some(a=>a.available)),onCheckedChange:a=>K({enabled:a})})}),(0,b.jsxs)(p.CardContent,{className:"space-y-3",children:[j.isPending&&(0,b.jsx)("p",{role:"status",children:h.notifyLoading}),j.isError&&(0,b.jsx)("p",{role:"alert",children:h.notifyLoadError}),s&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:s}),("CONFIG_CONFLICT"===z||j.isError)&&(0,b.jsx)(f.Button,{variant:"outline",disabled:o,onClick:()=>{m(null),w(""),A(""),j.refetch()},children:h.notifyReload}),x&&(0,b.jsx)("p",{role:"status",className:"text-sm",children:x}),E&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("span",{children:h.notifyTargetLabel}),(0,b.jsxs)(q.Select,{value:H,disabled:o||j.isError,onValueChange:a=>K({targetId:a||null}),children:[(0,b.jsx)(q.SelectTrigger,{"aria-label":h.notifyTargetLabel,className:"w-full min-w-0",children:(0,b.jsx)(q.SelectValue,{placeholder:h.notifyTargetPlaceholder})}),(0,b.jsxs)(q.SelectContent,{children:[H&&!I&&(0,b.jsx)(q.SelectItem,{value:H,children:h.notifyTargetStale}),F.map(a=>(0,b.jsxs)(q.SelectItem,{value:a.id,disabled:!a.available,children:["group"===a.kind?h.notifyKindGroup:h.notifyKindPrivate," · ",a.name,a.available?"":` \xb7 ${h.notifyUnavailableSuffix}`]},a.id))]})]})]}),(0,b.jsx)(f.Button,{variant:"outline",disabled:o||!a,onClick:()=>void L(),children:h.notifyRefreshTargets}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h.notifyPrivateHint}),I?.kind==="group"&&(0,b.jsx)("p",{role:"note",className:"break-words text-sm",children:h.notifyGroupNotice(I.name)}),(0,b.jsx)("p",{role:"note",className:"text-xs text-muted-foreground",children:h.notifyContentHint}),(0,b.jsxs)("fieldset",{disabled:o||j.isError,className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)("legend",{className:"mb-2 text-sm",children:h.notifyTypesLegend}),C.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(R.Checkbox,{"aria-label":a.label,checked:E.types.includes(a.type),onCheckedChange:b=>K({types:!0===b?[...E.types,a.type]:E.types.filter(b=>b!==a.type)})}),a.label]},a.type))]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[h.notifyWebLabel,(0,b.jsx)(t.Input,{"aria-label":h.notifyWebAria,value:E.webBaseUrl,placeholder:"https://forge.example.com",disabled:o||j.isError,onChange:a=>K({webBaseUrl:a.target.value})})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h.notifyWebHint}),!l&&j.data?.blocker&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h.notifyBlockers[j.data.blocker]??h.notifyBlockerFallback}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,b.jsx)(f.Button,{disabled:o||j.isError||E.enabled&&(!I?.available||!E.types.length),onClick:()=>void M(),children:h.notifySave}),(0,b.jsx)(f.Button,{variant:"outline",disabled:o||!!l||j.isError||!j.data?.config.enabled||!j.data.ready,onClick:()=>void N(),children:h.notifyTest})]})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-3 text-sm",children:[(0,b.jsx)("p",{children:h.notifyDeliveriesTitle}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h.notifyDeliveriesHint}),k.isPending&&(0,b.jsx)("p",{children:h.notifyDeliveriesLoading}),k.isError&&(0,b.jsx)("p",{role:"alert",children:h.notifyDeliveriesLoadError}),k.data?.deliveries.length===0&&(0,b.jsx)("p",{className:"text-muted-foreground",children:h.notifyDeliveriesEmpty}),k.data?.deliveries.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap justify-between gap-2 rounded-md border border-border/70 p-2",children:[(0,b.jsxs)("span",{children:["test"===a.type?h.notifyTestCard:C.find(b=>b.type===a.type)?.label??h.notifyDeliveryFallback," · ",h.notifyStatuses[a.status]??a.status]}),(0,b.jsx)("time",{children:new Date(a.createdAt).toLocaleString()}),a.errorCode&&B[a.errorCode]&&(0,b.jsx)("p",{className:"w-full text-xs text-muted-foreground",children:B[a.errorCode]})]},a.id))]})]})]})}let ac=["copilot-channels"];a.s(["CopilotChannelsPage",0,function(){var a,i,l;let m,n,o,p=(0,v.useSettingsCopy)(),q=(0,e.useQueryClient)(),[r,s]=(0,c.useState)("feishu"),t=(0,d.useQuery)({queryKey:ac,queryFn:k,refetchInterval:3e3,refetchIntervalInBackground:!1}),u=(0,d.useQuery)({queryKey:["copilot-channel-account",r],queryFn:async()=>{if("feishu"===r){let[a,b]=await Promise.all([(0,g.getFeishuChannelAccount)(),(0,g.getFeishuConnectionHealth)()]);return{account:a,health:b,telegramAccount:null,telegramHealth:null}}let[a,b]=await Promise.all([(0,g.getTelegramChannelAccount)(),(0,g.getTelegramConnectionHealth)()]);return{account:null,health:null,telegramAccount:a,telegramHealth:b}},refetchInterval:3e3,refetchIntervalInBackground:!1}),w=(0,d.useQuery)({queryKey:["channel-diagnostics",r],queryFn:()=>(0,g.getChannelDiagnostics)(r),refetchInterval:5e3,refetchIntervalInBackground:!1}),x=(0,d.useQuery)({queryKey:["channel-integration-config",r],queryFn:()=>"telegram"===r?(0,g.getTelegramIntegrationConfig)():(0,g.getFeishuIntegrationConfig)(),refetchInterval:5e3,refetchIntervalInBackground:!1}),y=(0,d.useQuery)({queryKey:["project-management-overview"],queryFn:()=>(0,h.getProjectOverview)(),refetchInterval:15e3,refetchIntervalInBackground:!1}),[z,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(""),[F,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(null),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[P,Q]=(0,c.useState)(Date.now()),[R,T]=(0,c.useState)(0),W=t.data&&u.data?{...t.data,...u.data}:void 0,X=("feishu"===r?W?.account:W?.telegramAccount)??null,Y=("feishu"===r?W?.health:W?.telegramHealth)??null,Z="feishu"===r?p.channelNameFeishu:p.channelNameTelegram,$=X?.id,_=X?.configRevision,aa=W?.pairings.find(a=>a.accountId===$&&a.accountRevision===_&&["pending","claimed"].includes(a.status)&&a.expiresAt>P),ad=aa?`${aa.id}:${aa.revision}:${aa.externalUserId}:${aa.chatId}`:"",ae=!!(aa||I);(0,c.useEffect)(()=>{if(!ae)return;Q(Date.now());let a=setInterval(()=>Q(Date.now()),1e3);return()=>clearInterval(a)},[ae]),(0,c.useEffect)(()=>{I&&(I.expiresAt<=P||W&&!W.pairings.some(a=>a.id===I.id&&"pending"===a.status&&a.accountRevision===_))&&J(null)},[W,P,I,_]);let af=W?.identities.filter(a=>a.accountId===$)??[],ag=W?.routes.filter(a=>af.some(b=>b.id===a.identityId))??[],ah=W?.deliveries.filter(a=>a.accountId===$&&a.channel===r)??[],ai=W?.identities.filter(a=>"active"===a.status&&a.accountId===$&&a.accountRevision===_)??[],aj=y.data?.projects.filter(a=>a.copilotAutonomy)??[],ak=aj.find(a=>a.id===M),al=ai.find(a=>a.id===K)??(1===ai.length?ai[0]:void 0),am=!x.isPending&&!x.isError&&!!x.data?.enabled&&!x.data.emergencyDisabled,an=!!X?.enabled&&am,ao=(i={account:X,configLoading:x.isPending,configError:x.isError,config:x.data,identities:ai,identity:al,pairing:aa,staleIdentity:af.some(a=>a.accountRevision!==_),projectsLoading:y.isPending,projectsError:y.isError,projectCount:aj.length,selectedProject:!!ak,existingRoute:ag.find(a=>a.identityId===al?.id&&"active"===a.status)},l=p.channelSetup,m=a=>({message:a,step:"connection",action:l.connectionAction}),n=a=>({message:a,step:"pairing",action:l.pairingAction}),o=a=>({message:a,step:"authorization",action:l.authorizationAction}),i.account?.secretConfigured?i.configLoading?m(l.configChecking):i.configError||!i.config?m(l.configLoadFailed):i.account.enabled&&i.config.enabled&&!i.config.emergencyDisabled?i.identity?i.existingRoute?o(l.existingRoute):i.projectsLoading?o(l.projectsLoading):i.projectsError?o(l.projectsError):i.projectCount?i.selectedProject?void 0:o(l.selectProject):o(l.noAutonomyProjects):n(i.identities.length?l.selectIdentity:i.pairing?.status==="claimed"?l.identityClaimed:i.pairing?.status==="pending"?l.identityPending:i.staleIdentity?l.identityStale:l.pairFirst):m(l.channelDisabled):m(l.secretRequired)),ap=!!I&&I.expiresAt>P&&(W?.pairings.some(a=>a.id===I.id&&a.accountId===$)??!1),aq=!!(t.isError||u.isError);function ar(a){if("active"!==a.status)return null;let b=W?.identities.find(b=>b.id===a.identityId);if(!b||"active"!==b.status)return"identity_inactive";if(b.accountId!==$||b.accountRevision!==_)return"config_changed";if(!X?.enabled)return"channel_disabled";if(x.isPending||x.isError)return"pending_review";if(!x.data?.enabled||x.data.emergencyDisabled)return"channel_disabled";if(y.isPending||y.isError)return"pending_review";let c=y.data?.projects.find(b=>b.id===a.projectId);return c?c.copilotAutonomy?!1===a.authorityValid?"authority_revoked":!0!==a.authorityValid?"pending_review":"authorized":"autonomy_off":"project_missing"}let as=ag.some(a=>"authorized"===ar(a)),at=ag.some(a=>"pending_review"===ar(a)),au=t.isError||u.isError||y.isPending||y.isError?p.channelStatusPending:as?p.channelStatusAuthorized(Z):at?p.channelStatusPending:p.channelStatusNotEnabled(Z,ao?.message??p.channelReadyHint),av=(a={loadPending:aq||y.isPending||y.isError,authorized:as,pendingReview:at,stopped:!!X?.secretConfigured&&(!X.enabled||!!x.data?.emergencyDisabled),blocker:ao}).loadPending?"unknown":a.authorized?"running":a.stopped?"stopped":a.pendingReview||!a.blocker?"authorization":"pairing"===a.blocker.step?"pairing":"authorization"===a.blocker.step?"authorization":"not_connected";async function aw(){await Promise.all([q.invalidateQueries({queryKey:ac}),q.invalidateQueries({queryKey:["project-management-overview"]}),q.invalidateQueries({queryKey:["channel-diagnostics"]}),q.invalidateQueries({queryKey:["channel-integration-config"]}),q.invalidateQueries({queryKey:["copilot-channel-account"]})])}async function ax(a){B(!0),D(""),H("");try{return await a(),await aw(),!0}catch{return D(p.actionFailedError),J(null),!1}finally{B(!1)}}let ay=(0,c.useCallback)(a=>T(a),[]),az=aq?p.activationLoadError:ao?.message??p.activationReady;return(0,b.jsx)(V.CopilotSettingsShell,{active:"channels",title:p.channelsCardTitle,description:p.channelsCardDescription,children:(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(t.isPending||u.isPending)&&(0,b.jsx)("p",{role:"status",children:p.channelsLoading}),(t.isError||u.isError||y.isError||x.isError)&&(0,b.jsxs)("div",{role:"alert",children:[p.loadFailed,(0,b.jsx)(f.Button,{variant:"outline",onClick:()=>void aw(),children:p.reloadAction})]}),C&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:C}),F&&(0,b.jsx)("p",{role:"status",className:"text-sm",children:F}),(0,b.jsx)(U,{channel:r,busy:z,onSwitch:function(a){s(a),J(null),L(""),N(""),D(""),H("")},state:av,statusText:au,blocker:ao,failedChecks:R}),W&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E,{channel:r,channelName:Z,account:X,health:Y,busy:z,onSaveFeishu:(a,b)=>(J(null),ax(()=>(0,g.saveFeishuChannelAccount)({appId:a,enabled:!0,...b?{appSecret:b}:{}}))),onSaveTelegram:a=>(J(null),ax(()=>(0,g.saveTelegramChannelAccount)({enabled:!0,...a?{botToken:a}:{}}))),onEmergencyStop:()=>{J(null),ax("feishu"===r?g.emergencyStopFeishu:g.emergencyStopTelegram)}},`connection:${r}`),(0,b.jsx)(S,{channel:r,channelName:Z,busy:z,canPair:an,queriesError:aq,pairing:aa,token:ap&&I?{value:I.value,expiresAt:I.expiresAt}:null,candidate:ad,accountIdentities:af,accountRevision:_,onCreatePairing:()=>void ax(async()=>{J(null);let a=await ((a,b="feishu")=>j("/pairings",{channel:b,accountId:a}))(X.id,r);await aw(),J({id:a.pairing.id,value:a.token,expiresAt:a.pairing.expiresAt})}),onConfirmPairing:a=>void ax(async()=>{J(null),await j(`/pairings/${encodeURIComponent(a.id)}/confirm`,{revision:a.revision,externalUserId:a.externalUserId,chatId:a.chatId})}),onCancelPairing:a=>{J(null),ax(()=>j(`/pairings/${encodeURIComponent(a)}/cancel`))},onRevokeIdentity:a=>void ax(()=>j(`/identities/${encodeURIComponent(a)}/revoke`)),whitelistIdsText:x.data?.allowedChatIds.join(", ")??"",whitelistLoading:x.isPending,whitelistError:x.isError,onSaveWhitelist:a=>ax(async()=>{await ("telegram"===r?g.updateTelegramIntegrationConfig:g.updateFeishuIntegrationConfig)({allowedChatIds:a})})},`pairing:${r}`),(0,b.jsx)(A,{busy:z,queriesError:aq,channelName:Z,identities:ai,identityId:al?.id??"",onIdentityChange:L,autonomyProjects:aj,projectId:ak?.id??"",onProjectChange:N,projectsLoading:y.isPending,projectsError:y.isError,blocker:ao,activationReason:az,showBlockerLink:!!ao&&"authorization"!==ao.step,onActivate:()=>void ax(async()=>{await j("/routes",{identityId:al.id,projectId:ak.id}),H(p.bindingCreated)}),routes:ag,routeState:ar,projectName:a=>y.data?.projects.find(b=>b.id===a)?.name??a,onRevokeRoute:a=>void ax(()=>j(`/routes/${encodeURIComponent(a)}/revoke`))},`binding:${r}`),"feishu"===r&&(0,b.jsx)(ab,{available:an&&!aq}),(0,b.jsx)(O,{channelName:Z,isPending:w.isPending,isError:w.isError,checks:w.data?.checks,onFailedCountChange:ay}),(0,b.jsx)(G,{deliveries:ah})]})]})})}],28503)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_components_copilot_CopilotChannelsPage_tsx_10jdmdv._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[10729,a=>{"use strict";var b=a.i(20486),c=a.i(39747);let d=(0,a.i(35485).default)("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var e=a.i(10567),f=a.i(4730),g=a.i(25538),h=a.i(85198),i=a.i(26248),j=a.i(90259),k=a.i(71700),l=a.i(97494),m=a.i(62384),n=a.i(55068),o=a.i(10917),p=a.i(6377),q=a.i(35105),r=a.i(84142);function s(){let a=(0,q.useExtensionsCopy)(),[d,e]=(0,h.useState)(!1),[g,i]=(0,h.useState)(!1),n=(0,c.useQuery)({queryKey:r.copilotConnectionsKey,queryFn:r.listCopilotConnections,retry:!1}),o=n.data?.connections.filter(a=>"mcp"===a.kind)??[];return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.connectionsHelp}),(0,b.jsxs)(l.Button,{size:"sm",onClick:()=>e(!0),children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a.addConnection]})]}),(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Wrench,{className:"size-4 text-brand"}),(0,b.jsx)("h2",{className:"font-medium",children:"ForgeBadger"}),(0,b.jsx)(f.Badge,{variant:"secondary",children:a.builtin})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.builtinHelp}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>i(!0),children:a.manageTools})]}),n.isPending?(0,b.jsx)("p",{children:a.loading}):n.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.loadError}),(0,b.jsx)(l.Button,{variant:"outline",size:"sm",onClick:()=>void n.refetch(),children:a.retry})]}):0===o.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.emptyConnections}):o.map(a=>(0,b.jsx)(v,{connection:a},`${a.id}:${a.revision}`)),(0,b.jsx)(m.Dialog,{open:g,onOpenChange:i,children:(0,b.jsxs)(m.DialogContent,{className:"max-h-[85vh] overflow-y-auto sm:max-w-3xl",children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsxs)(m.DialogTitle,{children:["ForgeBadger · ",a.tools]}),(0,b.jsx)(m.DialogDescription,{children:a.builtinHelp})]}),(0,b.jsx)(p.CapabilitiesSection,{active:g})]})}),(0,b.jsx)(m.Dialog,{open:d,onOpenChange:e,children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:a.addConnection}),(0,b.jsx)(m.DialogDescription,{children:a.connectHelp})]}),d&&(0,b.jsx)(u,{onDone:()=>e(!1)})]})})]})}function t(){let a=(0,i.useQueryClient)();return async()=>{await Promise.all([a.invalidateQueries({queryKey:r.copilotConnectionsKey}),a.invalidateQueries({queryKey:r.copilotSkillsKey})])}}function u({connection:a,onDone:c}){let d=(0,q.useExtensionsCopy)(),e=t(),[f,g]=(0,h.useState)(a?.name??""),[i,j]=(0,h.useState)(a?.endpoint??""),[k]=(0,h.useState)(a?.revision),[m,o]=(0,h.useState)(""),[p,s]=(0,h.useState)(!1),[v,w]=(0,h.useState)(!1),[x,y]=(0,h.useState)(!1);async function z(){if(!v){o(""),w(!0),y(!1);try{let b={name:f.trim(),endpoint:i.trim()};a&&void 0!==k?await (0,r.updateCopilotConnection)(a.id,{revision:k,...b,...p?{bearerToken:null}:m?{bearerToken:m}:{}}):await (0,r.createCopilotConnection)({...b,...m?{bearerToken:m}:{}}),await e(),c()}catch{y(!0)}finally{w(!1)}}}return(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),z()},children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.name}),(0,b.jsx)(n.Input,{required:!0,maxLength:80,value:f,onChange:a=>g(a.target.value),disabled:v})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.endpoint}),(0,b.jsx)(n.Input,{required:!0,type:"url",maxLength:2048,pattern:"https://.*",value:i,onChange:a=>j(a.target.value),disabled:v,placeholder:"https://mcp.example.com/mcp"})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.bearer}),(0,b.jsx)(n.Input,{type:"password",maxLength:4096,autoComplete:"new-password",value:m,onChange:a=>o(a.target.value),disabled:v||p,placeholder:a?.hasCredential?d.credentialKeep:""})]}),a?.hasCredential&&(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("input",{type:"checkbox",checked:p,disabled:v,onChange:a=>{s(a.target.checked),o("")}}),d.clearCredential]}),a&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d.configurationHelp}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d.remoteApproval}),x&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:d.error}),(0,b.jsx)(l.Button,{type:"submit",disabled:v,children:v?d.refreshing:a?d.save:d.create})]})}function v({connection:a}){let c=(0,q.useExtensionsCopy)(),d=t(),[g,i]=(0,h.useState)(!1),[j,k]=(0,h.useState)(!1),[n,p]=(0,h.useState)(!1),[s,w]=(0,h.useState)(a.tools.filter(a=>a.enabled).map(a=>a.name)),[x,y]=(0,h.useState)(!1),[z,A]=(0,h.useState)(!1);async function B(a){if(!x){y(!0),A(!1);try{await a(),await d()}catch{A(!0)}finally{y(!1)}}}return(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(e.Plug,{className:"size-4 shrink-0 text-brand"}),(0,b.jsx)("h2",{className:"break-all font-medium",children:a.name}),(0,b.jsx)(f.Badge,{variant:"outline",children:"MCP"}),(0,b.jsx)(f.Badge,{variant:"secondary",children:a.enabled?c.enabled:c.disabled})]}),(0,b.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:a.endpoint})]}),(0,b.jsx)(o.Switch,{"aria-label":a.name,disabled:x,checked:a.enabled,onCheckedChange:b=>void B(()=>(0,r.updateCopilotConnection)(a.id,{revision:a.revision,enabled:b}))})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:"not_discovered"===a.status?c.notDiscovered:`${a.tools.filter(a=>a.enabled&&a.compatible).length}/${a.tools.length} ${c.tools}`}),a.hasCredential&&(0,b.jsxs)("span",{children:["· ",c.credentialSet]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.remoteApproval}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:x,onClick:()=>void B(()=>(0,r.discoverCopilotConnection)(a.id,a.revision)),children:x?c.refreshing:c.discover}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:x||"ready"!==a.status,onClick:()=>k(a=>!a),children:c.selectTools}),(0,b.jsx)(l.Button,{size:"sm",variant:"ghost",disabled:x,onClick:()=>i(!0),children:c.edit}),(0,b.jsx)(l.Button,{size:"sm",variant:"ghost",disabled:x,onClick:()=>p(!0),children:c.delete})]}),j&&(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-3",children:[0===a.tools.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c.noTools}),a.tools.map(a=>(0,b.jsxs)("div",{className:"space-y-1 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:s.includes(a.name),disabled:x||!a.compatible,onChange:b=>w(c=>b.target.checked?[...c,a.name]:c.filter(b=>b!==a.name))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"break-all font-mono",children:a.name}),(0,b.jsx)("span",{className:"mt-1 block text-xs text-muted-foreground",children:a.description})]})]}),(0,b.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:a.modelName}),!a.compatible&&(0,b.jsxs)("p",{className:"text-xs text-amber-500",children:[c.incompatible,": ",a.unavailableReason]}),(0,b.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,b.jsx)("summary",{children:c.schema}),(0,b.jsx)("pre",{className:"mt-2 max-h-40 overflow-auto whitespace-pre-wrap break-all",children:JSON.stringify(a.inputSchema,null,2)})]})]},a.name)),(0,b.jsx)(l.Button,{size:"sm",disabled:x,onClick:()=>void B(()=>(0,r.updateCopilotConnection)(a.id,{revision:a.revision,enabledTools:s})),children:c.saveTools})]}),z&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:c.error}),(0,b.jsx)(m.Dialog,{open:g,onOpenChange:i,children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:c.editConnection}),(0,b.jsx)(m.DialogDescription,{children:c.configurationHelp})]}),g&&(0,b.jsx)(u,{connection:a,onDone:()=>i(!1)})]})}),(0,b.jsx)(m.Dialog,{open:n,onOpenChange:p,children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:c.deleteConfirm}),(0,b.jsx)(m.DialogDescription,{children:a.name})]}),(0,b.jsx)(l.Button,{variant:"destructive",disabled:x,onClick:()=>void B(()=>(0,r.deleteCopilotConnection)(a.id,a.revision)),children:c.delete}),z&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:c.error})]})})]})}var w=a.i(12599);function x(a){if(!a.length||a.length>65||!a.some(a=>"SKILL.md"===a.path))throw Error("invalid_skill_package");let b=new Set,c=0;for(let d of a){if(!d.path||d.path.startsWith("/")||/[\\\u0000-\u001f:]/.test(d.path)||d.path.split("/").some(a=>!a||"."===a||".."===a)||b.has(d.path))throw Error("invalid_skill_path");b.add(d.path);let a=new TextEncoder().encode(d.content).byteLength;if(c+=a,a>131072||d.content.includes("\0")||c>1048576)throw Error("skill_package_too_large_or_binary")}}async function y(a){let b=Array.from(a);if(b.length>65||b.some(a=>a.size>131072)||b.reduce((a,b)=>a+b.size,0)>1048576)throw Error("skill_package_too_large");let c=b.map(a=>a.webkitRelativePath||a.name),d=c[0]?.split("/")[0],e=d&&c.every(a=>a.startsWith(`${d}/`))&&c.includes(`${d}/SKILL.md`),f=[];for(let[a,g]of b.entries())f.push({path:e?c[a].slice(d.length+1):c[a],content:new TextDecoder("utf-8",{fatal:!0}).decode(await g.arrayBuffer())});return x(f),f}function z({disabled:a,onFiles:c}){let d=(0,q.useExtensionsCopy)(),[e,f]=(0,h.useState)(!1),[g,i]=(0,h.useState)(!1);async function j(a){if(a.files){i(!0),f(!1);try{c(await y(a.files))}catch{f(!0)}finally{i(!1),a.value=""}}}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"space-y-1 text-xs",children:[(0,b.jsx)("span",{children:d.chooseFiles}),(0,b.jsx)(n.Input,{type:"file",multiple:!0,disabled:a||g,onChange:a=>void j(a.currentTarget)})]}),(0,b.jsxs)("label",{className:"space-y-1 text-xs",children:[(0,b.jsx)("span",{children:d.chooseFolder}),(0,b.jsx)(n.Input,{type:"file",multiple:!0,webkitdirectory:"",disabled:a||g,onChange:a=>void j(a.currentTarget)})]})]}),g&&(0,b.jsx)("p",{className:"text-xs",children:d.loading}),e&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:d.fileError})]})}function A({onDone:a}){let c=(0,q.useExtensionsCopy)(),d=(0,i.useQueryClient)(),[e,f]=(0,h.useState)("paste"),[g,j]=(0,h.useState)(""),[k,m]=(0,h.useState)(""),[o,p]=(0,h.useState)([]),[s,t]=(0,h.useState)(!1),[u,v]=(0,h.useState)(null);async function y(){if(s)return;v(null);let b="paste"===e?[{path:"SKILL.md",content:g}]:o;if("url"!==e)try{x(b)}catch{v(c.fileError);return}t(!0);try{await (0,r.importCopilotSkill)("url"===e?{source:{kind:"url",url:k.trim()}}:{source:{kind:"paste"===e?"paste":"upload"},files:b}),await d.invalidateQueries({queryKey:r.copilotSkillsKey}),a()}catch{v(c.error)}finally{t(!1)}}return(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),y()},children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.importMethod}),(0,b.jsxs)("select",{"aria-label":c.importMethod,className:"h-9 w-full rounded-md border border-input bg-background px-2",value:e,disabled:s,onChange:a=>{f(a.target.value),v(null)},children:[(0,b.jsx)("option",{value:"paste",children:c.paste}),(0,b.jsx)("option",{value:"upload",children:c.upload}),(0,b.jsx)("option",{value:"url",children:c.url})]})]}),"paste"===e?(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.importContent}),(0,b.jsx)(w.Textarea,{required:!0,className:"min-h-64 font-mono text-xs",value:g,disabled:s,onChange:a=>j(a.target.value),placeholder:"---\nname: project-review\ndescription: Review project status\n---\n# Project review\n"})]}):"url"===e?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.url}),(0,b.jsx)(n.Input,{required:!0,type:"url",pattern:"https://.*",value:k,disabled:s,onChange:a=>m(a.target.value),placeholder:"https://example.com/SKILL.md"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.urlHelp})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(z,{disabled:s,onFiles:p}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[c.selectedFiles,": ",o.length]}),(0,b.jsx)("ul",{className:"max-h-32 overflow-auto text-xs",children:o.map(a=>(0,b.jsx)("li",{className:"break-all font-mono",children:a.path},a.path))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.importHelp}),u&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:u}),(0,b.jsx)(l.Button,{type:"submit",disabled:s||"upload"===e&&!o.length,children:s?c.refreshing:c.install})]})}function B(){let a=(0,q.useExtensionsCopy)(),[d,e]=(0,h.useState)(!1),[f,g]=(0,h.useState)(null),i=(0,c.useQuery)({queryKey:r.copilotSkillsKey,queryFn:r.listCopilotSkills,retry:!1});return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.skillsHelp}),(0,b.jsxs)(l.Button,{size:"sm",onClick:()=>e(!0),children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a.importSkill]})]}),i.isPending?(0,b.jsx)("p",{children:a.loading}):i.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void i.refetch(),children:a.retry})]}):i.data?.skills.length?i.data.skills.map(a=>(0,b.jsx)(D,{skill:a,onOpen:()=>g(a)},a.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.emptySkills}),(0,b.jsx)(m.Dialog,{open:d,onOpenChange:e,children:(0,b.jsxs)(m.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:a.importSkill}),(0,b.jsx)(m.DialogDescription,{children:a.skillsHelp})]}),d&&(0,b.jsx)(A,{onDone:()=>e(!1)})]})}),(0,b.jsx)(m.Dialog,{open:!!f,onOpenChange:a=>{a||g(null)},children:(0,b.jsxs)(m.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-3xl",children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:f?.name}),(0,b.jsx)(m.DialogDescription,{children:a.detail})]}),f&&(0,b.jsx)(E,{id:f.id})]})})]})}function C({skill:a}){let c=(0,q.useExtensionsCopy)();return(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(f.Badge,{variant:"outline",children:"builtin-playbook"===a.kind?c.playbook:c.imported}),(0,b.jsx)(f.Badge,{variant:"secondary",children:a.isEnabled?c.enabled:c.disabled}),(0,b.jsxs)(f.Badge,{variant:"outline",children:["v",a.version]})]}),!a.compatible&&(0,b.jsxs)("p",{className:"text-amber-500",children:[c.incompatible,": ",a.incompatibilityReasons.join("; ")]}),a.reviewRequired&&(0,b.jsxs)("p",{className:"text-amber-500",children:[c.review,": v",a.version," → v",a.currentVersion]}),a.isEnabled&&!a.available&&!a.reviewRequired&&a.compatible&&(0,b.jsxs)("p",{className:"text-amber-500",children:[c.unavailable,": ",a.unavailableReason]}),a.requiredTools.length>0&&(0,b.jsxs)("p",{className:"break-all text-muted-foreground",children:[c.dependencies,": ",a.requiredTools.join(", ")]})]})}function D({skill:a,onOpen:c}){let e=(0,q.useExtensionsCopy)(),f=(0,i.useQueryClient)(),[g,j]=(0,h.useState)(!1),[k,m]=(0,h.useState)(!1);async function n(b){if(!g){j(!0),m(!1);try{await (0,r.setCopilotSkillEnabled)(a.id,b,a.revisionId),await f.invalidateQueries({queryKey:r.copilotSkillsKey})}catch{m(!0)}finally{j(!1)}}}return(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsxs)("h2",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(d,{className:"size-4 shrink-0 text-brand"}),(0,b.jsx)("span",{className:"break-all",children:a.name})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.description})]}),(0,b.jsx)(o.Switch,{"aria-label":a.name,checked:a.isEnabled,disabled:g||!a.editable||!a.isEnabled&&(!a.compatible||a.reviewRequired),onCheckedChange:a=>void n(a)})]}),(0,b.jsx)(C,{skill:a}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[e.source,": ",a.source.url??a.source.label??a.source.kind]}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:c,children:e.detail}),k&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:e.error})]})}function E({id:a}){let d=(0,q.useExtensionsCopy)(),e=(0,c.useQuery)({queryKey:[...r.copilotSkillsKey,a],queryFn:()=>(0,r.getCopilotSkill)(a),retry:!1});return e.isPending?(0,b.jsx)("p",{children:d.loading}):e.isError||!e.data?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:d.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void e.refetch(),children:d.retry})]}):(0,b.jsx)(F,{skill:e.data.skill},e.data.skill.revisionId)}function F({skill:a}){let c=(0,q.useExtensionsCopy)(),d=(0,i.useQueryClient)(),[e,f]=(0,h.useState)(a.files),[g,j]=(0,h.useState)("SKILL.md"),[k,m]=(0,h.useState)(!1),[n,o]=(0,h.useState)(null),[p,s]=(0,h.useState)(!1);async function t(){if(!k){o(null);try{x(e)}catch{o(c.fileError);return}m(!0);try{await (0,r.updateCopilotSkill)(a.id,{expectedRevisionId:a.revisionId,files:e,...a.reviewRequired?{reviewedVersion:a.currentVersion}:{}}),await d.invalidateQueries({queryKey:r.copilotSkillsKey})}catch{o(c.error)}finally{m(!1)}}}return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(C,{skill:a}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{children:[c.files,": ",e.length]}),(0,b.jsxs)("span",{children:[c.revision,": ",a.revisionId]})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.files}),(0,b.jsx)("select",{"aria-label":c.files,className:"h-9 w-full rounded-md border border-input bg-background px-2",value:g,onChange:a=>j(a.target.value),children:e.map(a=>(0,b.jsx)("option",{value:a.path,children:a.path},a.path))})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{className:"break-all font-mono",children:g}),(0,b.jsx)(w.Textarea,{className:"min-h-64 font-mono text-xs",value:e.find(a=>a.path===g)?.content??"",disabled:k||!a.editable,onChange:a=>f(b=>b.map(b=>b.path===g?{...b,content:a.target.value}:b))})]}),a.editable&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(z,{disabled:k,onFiles:a=>{f(a),j("SKILL.md")}}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.importHelp}),"builtin-playbook"===a.kind&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.builtinReview}),(0,b.jsx)(l.Button,{size:"sm",disabled:k,onClick:()=>void t(),children:k?c.refreshing:c.saveSkill})]}),n&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:n}),(0,b.jsxs)("div",{className:"border-t border-border/70 pt-3",children:[(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>s(a=>!a),children:c.history}),p&&(0,b.jsx)(G,{skill:a})]})]})}function G({skill:a}){let d=(0,q.useExtensionsCopy)(),[e,f]=(0,h.useState)(null),g=(0,c.useQuery)({queryKey:[...r.copilotSkillsKey,a.id,"revisions"],queryFn:()=>(0,r.listSkillRevisions)(a.id),retry:!1});return(0,b.jsx)("div",{className:"mt-3 space-y-3",children:g.isPending?(0,b.jsx)("p",{children:d.loading}):g.isError?(0,b.jsxs)("div",{role:"alert",children:[(0,b.jsx)("p",{className:"text-sm text-destructive",children:d.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void g.refetch(),children:d.retry})]}):g.data?.revisions.length?g.data.revisions.map(c=>(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("p",{className:"text-xs",children:["v",c.version," · ",c.action," · ",c.fileCount," ",d.files]}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:!a.editable||c.id===a.revisionId,onClick:()=>f(e===c.id?null:c.id),children:d.rollback})]}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[c.createdAt," · ",c.source.url??c.source.label??c.source.kind]}),e===c.id&&(0,b.jsx)(H,{skill:a,revisionId:c.id})]},c.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d.noHistory})})}function H({skill:a,revisionId:d}){let e=(0,q.useExtensionsCopy)(),f=(0,i.useQueryClient)(),[g,j]=(0,h.useState)(!1),[k,m]=(0,h.useState)(!1),n=(0,c.useQuery)({queryKey:[...r.copilotSkillsKey,a.id,"revisions",d],queryFn:()=>(0,r.getSkillRevision)(a.id,d),retry:!1});async function o(){if(!g){j(!0),m(!1);try{await (0,r.rollbackCopilotSkill)(a.id,d,a.revisionId),await f.invalidateQueries({queryKey:r.copilotSkillsKey})}catch{m(!0)}finally{j(!1)}}}return(0,b.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-2",children:[n.isPending?(0,b.jsx)("p",{children:e.loading}):n.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-xs text-destructive",children:[(0,b.jsx)("p",{children:e.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void n.refetch(),children:e.retry})]}):n.data&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e.rollbackHelp}),n.data.revision.files.map(a=>(0,b.jsxs)("details",{className:"text-xs",children:[(0,b.jsx)("summary",{className:"break-all font-mono",children:a.path}),(0,b.jsx)("pre",{className:"max-h-48 overflow-auto whitespace-pre-wrap break-all rounded-md bg-muted/30 p-2",children:a.content})]},a.path)),(0,b.jsx)(l.Button,{size:"sm",disabled:g,onClick:()=>void o(),children:e.rollbackConfirm})]}),k&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:e.error})]})}var I=a.i(81421);a.s(["CopilotExtensionsPage",0,function(){let a=(0,q.useExtensionsCopy)(),h=(0,c.useQuery)({queryKey:r.copilotSkillsKey,queryFn:r.listCopilotSkills,retry:!1}),i=(0,c.useQuery)({queryKey:r.copilotConnectionsKey,queryFn:r.listCopilotConnections,retry:!1}),j=h.data?.skills.length,k=i.data?.connections.filter(a=>"mcp"===a.kind).length;return(0,b.jsx)(I.CopilotSettingsShell,{active:"extensions",title:a.title,description:a.description,children:(0,b.jsxs)(g.Tabs,{defaultValue:"skills",className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsxs)(g.TabsList,{"aria-label":a.title,children:[(0,b.jsxs)(g.TabsTrigger,{value:"skills",className:"gap-1.5",children:[(0,b.jsx)(d,{className:"size-3.5"}),a.skills,j?(0,b.jsx)(f.Badge,{variant:"secondary",className:"px-1.5 py-0 text-[10px]",children:j}):null]}),(0,b.jsxs)(g.TabsTrigger,{value:"connections",className:"gap-1.5",children:[(0,b.jsx)(e.Plug,{className:"size-3.5"}),a.connections,k?(0,b.jsx)(f.Badge,{variant:"secondary",className:"px-1.5 py-0 text-[10px]",children:k}):null]})]}),(0,b.jsx)(g.TabsContent,{value:"skills",className:"mt-4",children:(0,b.jsx)(B,{})}),(0,b.jsx)(g.TabsContent,{value:"connections",className:"mt-4",children:(0,b.jsx)(s,{})})]})})}],10729)}];
|
|
1
|
+
module.exports=[10729,a=>{"use strict";var b=a.i(20486),c=a.i(39747),d=a.i(21115),e=a.i(10567),f=a.i(4730),g=a.i(25538),h=a.i(85198),i=a.i(26248),j=a.i(90259),k=a.i(71700),l=a.i(97494),m=a.i(16569),n=a.i(62384),o=a.i(55068),p=a.i(10917),q=a.i(6377),r=a.i(64709),s=a.i(35105),t=a.i(84142);function u(){let a=(0,s.useExtensionsCopy)(),[d,g]=(0,h.useState)(!1),[i,m]=(0,h.useState)(!1),o=(0,c.useQuery)({queryKey:t.copilotConnectionsKey,queryFn:t.listCopilotConnections,retry:!1}),p=o.data?.connections.filter(a=>"mcp"===a.kind)??[];return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.connectionsHelp}),(0,b.jsxs)(l.Button,{size:"sm",onClick:()=>g(!0),children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a.addConnection]})]}),(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Wrench,{className:"size-4 text-brand"}),(0,b.jsx)("h2",{className:"font-medium",children:"ForgeBadger"}),(0,b.jsx)(f.Badge,{variant:"secondary",children:a.builtin})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.builtinHelp}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>m(!0),children:a.manageTools})]}),o.isPending?(0,b.jsx)("p",{children:a.loading}):o.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.loadError}),(0,b.jsx)(l.Button,{variant:"outline",size:"sm",onClick:()=>void o.refetch(),children:a.retry})]}):0===p.length?(0,b.jsx)(r.CopilotEmptyState,{icon:e.Plug,title:a.emptyConnections,description:a.connectionsHelp}):p.map(a=>(0,b.jsx)(x,{connection:a},`${a.id}:${a.revision}`)),(0,b.jsx)(n.Dialog,{open:i,onOpenChange:m,children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[85vh] overflow-y-auto sm:max-w-3xl",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsxs)(n.DialogTitle,{children:["ForgeBadger · ",a.tools]}),(0,b.jsx)(n.DialogDescription,{children:a.builtinHelp})]}),(0,b.jsx)(q.CapabilitiesSection,{active:i})]})}),(0,b.jsx)(n.Dialog,{open:d,onOpenChange:g,children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:a.addConnection}),(0,b.jsx)(n.DialogDescription,{children:a.connectHelp})]}),d&&(0,b.jsx)(w,{onDone:()=>g(!1)})]})})]})}function v(){let a=(0,i.useQueryClient)();return async()=>{await Promise.all([a.invalidateQueries({queryKey:t.copilotConnectionsKey}),a.invalidateQueries({queryKey:t.copilotSkillsKey})])}}function w({connection:a,onDone:c}){let d=(0,s.useExtensionsCopy)(),e=v(),[f,g]=(0,h.useState)(a?.name??""),[i,j]=(0,h.useState)(a?.endpoint??""),[k]=(0,h.useState)(a?.revision),[n,p]=(0,h.useState)(""),[q,r]=(0,h.useState)(!1),[u,x]=(0,h.useState)(!1),[y,z]=(0,h.useState)(!1);async function A(){if(!u){p(""),x(!0),z(!1);try{let b={name:f.trim(),endpoint:i.trim()};a&&void 0!==k?await (0,t.updateCopilotConnection)(a.id,{revision:k,...b,...q?{bearerToken:null}:n?{bearerToken:n}:{}}):await (0,t.createCopilotConnection)({...b,...n?{bearerToken:n}:{}}),await e(),c()}catch{z(!0)}finally{x(!1)}}}return(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),A()},children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.name}),(0,b.jsx)(o.Input,{required:!0,maxLength:80,value:f,onChange:a=>g(a.target.value),disabled:u})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.endpoint}),(0,b.jsx)(o.Input,{required:!0,type:"url",maxLength:2048,pattern:"https://.*",value:i,onChange:a=>j(a.target.value),disabled:u,placeholder:"https://mcp.example.com/mcp"})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:d.bearer}),(0,b.jsx)(o.Input,{type:"password",maxLength:4096,autoComplete:"new-password",value:n,onChange:a=>p(a.target.value),disabled:u||q,placeholder:a?.hasCredential?d.credentialKeep:""})]}),a?.hasCredential&&(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)(m.Checkbox,{"aria-label":d.clearCredential,checked:q,disabled:u,onCheckedChange:a=>{r(!0===a),p("")}}),d.clearCredential]}),a&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d.configurationHelp}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d.remoteApproval}),y&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:d.error}),(0,b.jsx)(l.Button,{type:"submit",disabled:u,children:u?d.refreshing:a?d.save:d.create})]})}function x({connection:a}){let c=(0,s.useExtensionsCopy)(),d=v(),[g,i]=(0,h.useState)(!1),[j,k]=(0,h.useState)(!1),[o,q]=(0,h.useState)(!1),[r,u]=(0,h.useState)(a.tools.filter(a=>a.enabled).map(a=>a.name)),[y,z]=(0,h.useState)(!1),[A,B]=(0,h.useState)(!1);async function C(a){if(!y){z(!0),B(!1);try{await a(),await d()}catch{B(!0)}finally{z(!1)}}}let D=a.tools.filter(a=>a.enabled&&a.compatible).length;return(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(e.Plug,{className:"size-4 shrink-0 text-brand"}),(0,b.jsx)("h2",{className:"break-all font-medium",children:a.name}),(0,b.jsx)(f.Badge,{variant:"outline",children:"MCP"}),(0,b.jsx)(f.Badge,{variant:"secondary",className:a.enabled?"bg-emerald-500/15 text-emerald-400":"text-muted-foreground",children:a.enabled?c.enabled:c.disabled})]}),(0,b.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:a.endpoint})]}),(0,b.jsx)(p.Switch,{"aria-label":a.name,disabled:y,checked:a.enabled,onCheckedChange:b=>void C(()=>(0,t.updateCopilotConnection)(a.id,{revision:a.revision,enabled:b}))})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground",children:["not_discovered"===a.status?(0,b.jsx)(f.Badge,{variant:"secondary",className:"bg-amber-500/15 text-amber-400",children:c.notDiscovered}):(0,b.jsxs)(f.Badge,{variant:"outline",children:[D,"/",a.tools.length," ",c.tools]}),a.hasCredential&&(0,b.jsx)(f.Badge,{variant:"outline",children:c.credentialSet})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.remoteApproval}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:y,onClick:()=>void C(()=>(0,t.discoverCopilotConnection)(a.id,a.revision)),children:y?c.refreshing:c.discover}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:y||"ready"!==a.status,onClick:()=>k(a=>!a),children:c.selectTools}),(0,b.jsx)(l.Button,{size:"sm",variant:"ghost",disabled:y,onClick:()=>i(!0),children:c.edit}),(0,b.jsx)(l.Button,{size:"sm",variant:"ghost",disabled:y,onClick:()=>q(!0),children:c.delete})]}),j&&(0,b.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-3",children:[0===a.tools.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c.noTools}),a.tools.map(a=>(0,b.jsxs)("div",{className:"space-y-1 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)(m.Checkbox,{"aria-label":a.name,checked:r.includes(a.name),disabled:y||!a.compatible,onCheckedChange:b=>u(c=>!0===b?[...c,a.name]:c.filter(b=>b!==a.name))}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"break-all font-mono",children:a.name}),(0,b.jsx)("span",{className:"mt-1 block text-xs text-muted-foreground",children:a.description})]})]}),(0,b.jsx)("p",{className:"break-all text-xs text-muted-foreground",children:a.modelName}),!a.compatible&&(0,b.jsxs)("p",{className:"text-xs text-amber-500",children:[c.incompatible,": ",a.unavailableReason]}),(0,b.jsxs)("details",{className:"text-xs text-muted-foreground",children:[(0,b.jsx)("summary",{children:c.schema}),(0,b.jsx)("pre",{className:"mt-2 max-h-40 overflow-auto whitespace-pre-wrap break-all",children:JSON.stringify(a.inputSchema,null,2)})]})]},a.name)),(0,b.jsx)(l.Button,{size:"sm",disabled:y,onClick:()=>void C(()=>(0,t.updateCopilotConnection)(a.id,{revision:a.revision,enabledTools:r})),children:c.saveTools})]}),A&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:c.error}),(0,b.jsx)(n.Dialog,{open:g,onOpenChange:i,children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:c.editConnection}),(0,b.jsx)(n.DialogDescription,{children:c.configurationHelp})]}),g&&(0,b.jsx)(w,{connection:a,onDone:()=>i(!1)})]})}),(0,b.jsx)(n.Dialog,{open:o,onOpenChange:q,children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:c.deleteConfirm}),(0,b.jsx)(n.DialogDescription,{children:a.name})]}),(0,b.jsx)(l.Button,{variant:"destructive",disabled:y,onClick:()=>void C(()=>(0,t.deleteCopilotConnection)(a.id,a.revision)),children:c.delete}),A&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:c.error})]})})]})}var y=a.i(44935),z=a.i(75196),A=a.i(12599);function B(a){if(!a.length||a.length>65||!a.some(a=>"SKILL.md"===a.path))throw Error("invalid_skill_package");let b=new Set,c=0;for(let d of a){if(!d.path||d.path.startsWith("/")||/[\\\u0000-\u001f:]/.test(d.path)||d.path.split("/").some(a=>!a||"."===a||".."===a)||b.has(d.path))throw Error("invalid_skill_path");b.add(d.path);let a=new TextEncoder().encode(d.content).byteLength;if(c+=a,a>131072||d.content.includes("\0")||c>1048576)throw Error("skill_package_too_large_or_binary")}}async function C(a){let b=Array.from(a);if(b.length>65||b.some(a=>a.size>131072)||b.reduce((a,b)=>a+b.size,0)>1048576)throw Error("skill_package_too_large");let c=b.map(a=>a.webkitRelativePath||a.name),d=c[0]?.split("/")[0],e=d&&c.every(a=>a.startsWith(`${d}/`))&&c.includes(`${d}/SKILL.md`),f=[];for(let[a,g]of b.entries())f.push({path:e?c[a].slice(d.length+1):c[a],content:new TextDecoder("utf-8",{fatal:!0}).decode(await g.arrayBuffer())});return B(f),f}function D({disabled:a,onFiles:c}){let d=(0,s.useExtensionsCopy)(),[e,f]=(0,h.useState)(!1),[g,i]=(0,h.useState)(!1);async function j(a){if(a.files){i(!0),f(!1);try{c(await C(a.files))}catch{f(!0)}finally{i(!1),a.value=""}}}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"space-y-1 text-xs",children:[(0,b.jsx)("span",{children:d.chooseFiles}),(0,b.jsx)(o.Input,{type:"file",multiple:!0,disabled:a||g,onChange:a=>void j(a.currentTarget)})]}),(0,b.jsxs)("label",{className:"space-y-1 text-xs",children:[(0,b.jsx)("span",{children:d.chooseFolder}),(0,b.jsx)(o.Input,{type:"file",multiple:!0,webkitdirectory:"",disabled:a||g,onChange:a=>void j(a.currentTarget)})]})]}),g&&(0,b.jsx)("p",{className:"text-xs",children:d.loading}),e&&(0,b.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:d.fileError})]})}function E({onDone:a}){let c=(0,s.useExtensionsCopy)(),d=(0,i.useQueryClient)(),[e,f]=(0,h.useState)("paste"),[g,j]=(0,h.useState)(""),[k,m]=(0,h.useState)(""),[n,p]=(0,h.useState)([]),[q,r]=(0,h.useState)(!1),[u,v]=(0,h.useState)(null);async function w(){if(q)return;v(null);let b="paste"===e?[{path:"SKILL.md",content:g}]:n;if("url"!==e)try{B(b)}catch{v(c.fileError);return}r(!0);try{await (0,t.importCopilotSkill)("url"===e?{source:{kind:"url",url:k.trim()}}:{source:{kind:"paste"===e?"paste":"upload"},files:b}),await d.invalidateQueries({queryKey:t.copilotSkillsKey}),a()}catch{v(c.error)}finally{r(!1)}}return(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),w()},children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.importMethod}),(0,b.jsxs)("select",{"aria-label":c.importMethod,className:"h-9 w-full rounded-md border border-input bg-background px-2",value:e,disabled:q,onChange:a=>{f(a.target.value),v(null)},children:[(0,b.jsx)("option",{value:"paste",children:c.paste}),(0,b.jsx)("option",{value:"upload",children:c.upload}),(0,b.jsx)("option",{value:"url",children:c.url})]})]}),"paste"===e?(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.importContent}),(0,b.jsx)(A.Textarea,{required:!0,className:"min-h-64 font-mono text-xs",value:g,disabled:q,onChange:a=>j(a.target.value),placeholder:"---\nname: project-review\ndescription: Review project status\n---\n# Project review\n"})]}):"url"===e?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.url}),(0,b.jsx)(o.Input,{required:!0,type:"url",pattern:"https://.*",value:k,disabled:q,onChange:a=>m(a.target.value),placeholder:"https://example.com/SKILL.md"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.urlHelp})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(D,{disabled:q,onFiles:p}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[c.selectedFiles,": ",n.length]}),(0,b.jsx)("ul",{className:"max-h-32 overflow-auto text-xs",children:n.map(a=>(0,b.jsx)("li",{className:"break-all font-mono",children:a.path},a.path))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.importHelp}),u&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:u}),(0,b.jsx)(l.Button,{type:"submit",disabled:q||"upload"===e&&!n.length,children:q?c.refreshing:c.install})]})}function F({currentFiles:a,bundled:c,busy:d,editable:e,acknowledged:f,onAcknowledge:g,onAdopt:h,onKeep:i}){let j=(0,s.useExtensionsCopy)();return(0,b.jsxs)("section",{className:"space-y-3 rounded-md border border-border bg-muted/20 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:j.updateHelp}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsx)(G,{title:j.currentPackage,files:a}),(0,b.jsx)(G,{title:`${j.bundledPackage} v${c.version}`,files:c.files})]}),e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:j.adoptHelp}),(0,b.jsx)(l.Button,{size:"sm",disabled:d,onClick:h,children:j.adoptBuiltin}),(0,b.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-3",children:[(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",className:"mt-1",checked:f,disabled:d,onChange:a=>g(a.target.checked)}),j.acknowledge]}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",className:"h-auto whitespace-normal text-left",disabled:d||!f,onClick:i,children:j.keepReviewed})]})]})]})}function G({title:a,files:c}){return(0,b.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-medium",children:a}),(0,b.jsx)("div",{className:"max-h-64 space-y-2 overflow-auto rounded-md border border-border/70 p-2",children:c.map(a=>(0,b.jsxs)("details",{open:"SKILL.md"===a.path,children:[(0,b.jsx)("summary",{className:"break-all font-mono text-xs",children:a.path}),(0,b.jsx)("pre",{className:"whitespace-pre-wrap break-words text-xs [overflow-wrap:anywhere]",children:a.content})]},a.path))})]})}function H(){let a=(0,s.useExtensionsCopy)(),[e,f]=(0,h.useState)(!1),[g,i]=(0,h.useState)(null),k=(0,c.useQuery)({queryKey:t.copilotSkillsKey,queryFn:t.listCopilotSkills,retry:!1});return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.skillsHelp}),(0,b.jsxs)(l.Button,{size:"sm",onClick:()=>f(!0),children:[(0,b.jsx)(j.Plus,{className:"size-4"}),a.importSkill]})]}),k.isPending?(0,b.jsx)("p",{children:a.loading}):k.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void k.refetch(),children:a.retry})]}):k.data?.skills.length?k.data.skills.map(a=>(0,b.jsx)(K,{skill:a,onOpen:()=>i(a)},a.id)):(0,b.jsx)(r.CopilotEmptyState,{icon:d.BookOpen,title:a.emptySkills,description:a.skillsHelp}),(0,b.jsx)(n.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:a.importSkill}),(0,b.jsx)(n.DialogDescription,{children:a.skillsHelp})]}),e&&(0,b.jsx)(E,{onDone:()=>f(!1)})]})}),(0,b.jsx)(n.Dialog,{open:!!g,onOpenChange:a=>{a||i(null)},children:(0,b.jsxs)(n.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-3xl",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:g?.name}),(0,b.jsx)(n.DialogDescription,{children:a.detail})]}),g&&(0,b.jsx)(L,{id:g.id})]})})]})}function I({children:a}){return(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 p-3 text-xs text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(y.AlertTriangle,{className:"mt-0.5 size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"min-w-0",children:a})]})}function J({skill:a}){let c=(0,s.useExtensionsCopy)();return(0,b.jsxs)("div",{className:"space-y-1.5 text-xs",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(f.Badge,{variant:"outline",children:"builtin-playbook"===a.kind?c.playbook:c.imported}),(0,b.jsx)(f.Badge,{variant:"secondary",children:a.isEnabled?a.available?c.enabled:c.effectiveUnavailable:c.disabled}),(0,b.jsxs)(f.Badge,{variant:"outline",children:["v",a.version]}),a.customized&&(0,b.jsx)(f.Badge,{variant:"outline",children:c.customized})]}),!a.compatible&&(0,b.jsxs)(I,{children:[c.incompatible,": ",a.incompatibilityReasons.join("; ")]}),a.reviewRequired&&(0,b.jsxs)(I,{children:[c.review,": v",a.reviewedBuiltinVersion??a.version," → v",a.currentVersion]}),a.isEnabled&&!a.available&&!a.reviewRequired&&a.compatible&&(0,b.jsxs)(I,{children:[c.unavailable,": ",a.unavailableReason]}),!a.reviewRequired&&a.customized&&a.reviewedBuiltinVersion&&(0,b.jsxs)("p",{className:"text-muted-foreground",children:[c.reviewedAgainst,": v",a.reviewedBuiltinVersion]}),a.requiredTools.length>0&&(0,b.jsxs)("p",{className:"break-all text-muted-foreground",children:[c.dependencies,": ",a.requiredTools.join(", ")]})]})}function K({skill:a,onOpen:c}){let e=(0,s.useExtensionsCopy)(),f=(0,i.useQueryClient)(),[g,j]=(0,h.useState)(!1),[k,m]=(0,h.useState)(!1);async function n(b){if(!g){j(!0),m(!1);try{await (0,t.setCopilotSkillEnabled)(a.id,b,a.revisionId),await f.invalidateQueries({queryKey:t.copilotSkillsKey})}catch{m(!0)}finally{j(!1)}}}return(0,b.jsxs)("section",{className:"forgebadger-animate-in space-y-3 rounded-lg border border-border bg-card p-4 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsxs)("h2",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(d.BookOpen,{className:"size-4 shrink-0 text-brand"}),(0,b.jsx)("span",{className:"break-all",children:a.name})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.description})]}),(0,b.jsx)(p.Switch,{"aria-label":a.name,checked:a.isEnabled,disabled:g||!a.editable||!a.isEnabled&&(!a.compatible||a.reviewRequired),onCheckedChange:a=>void n(a)})]}),(0,b.jsx)(J,{skill:a}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[e.source,": ",a.source.url??a.source.label??a.source.kind]}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:c,children:e.detail}),k&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:e.error})]})}function L({id:a}){let d=(0,s.useExtensionsCopy)(),e=(0,c.useQuery)({queryKey:[...t.copilotSkillsKey,a],queryFn:()=>(0,t.getCopilotSkill)(a),retry:!1});return e.isPending?(0,b.jsx)("p",{children:d.loading}):e.isError||!e.data?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:d.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void e.refetch(),children:d.retry})]}):(0,b.jsx)(M,{skill:e.data.skill},e.data.skill.revisionId)}function M({skill:a}){let c=(0,s.useExtensionsCopy)(),d=(0,i.useQueryClient)(),[e,f]=(0,h.useState)(a.files),[g,j]=(0,h.useState)("SKILL.md"),[k,m]=(0,h.useState)(!1),[n,o]=(0,h.useState)(null),[p,q]=(0,h.useState)(!1),[r,u]=(0,h.useState)(!1);async function v(b=!1){if(!k&&(!b||r)){o(null);try{B(e)}catch{o(c.fileError);return}m(!0);try{await (0,t.updateCopilotSkill)(a.id,{expectedRevisionId:a.revisionId,files:e,...b?{reviewedVersion:a.currentVersion}:{}}),await d.invalidateQueries({queryKey:t.copilotSkillsKey})}catch{o(c.error)}finally{m(!1)}}}async function w(){if(!k&&a.bundled){m(!0),o(null);try{await (0,t.adoptBuiltinSkill)(a.id,a.revisionId,a.bundled.version),await d.invalidateQueries({queryKey:t.copilotSkillsKey})}catch{o(c.error)}finally{m(!1)}}}return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(J,{skill:a}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{children:[c.files,": ",e.length]}),(0,b.jsxs)("span",{children:[c.revision,": ",a.revisionId]})]}),a.reviewRequired&&a.bundled&&(0,b.jsx)(F,{currentFiles:e,bundled:a.bundled,busy:k,editable:a.editable,acknowledged:r,onAcknowledge:u,onAdopt:()=>void w(),onKeep:()=>void v(!0)}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("span",{children:c.files}),(0,b.jsxs)(z.Select,{value:g,onValueChange:j,children:[(0,b.jsx)(z.SelectTrigger,{"aria-label":c.files,className:"h-9 w-full",children:(0,b.jsx)(z.SelectValue,{})}),(0,b.jsx)(z.SelectContent,{children:e.map(a=>(0,b.jsx)(z.SelectItem,{value:a.path,children:a.path},a.path))})]})]}),(0,b.jsxs)("label",{className:"block space-y-1 text-sm",children:[(0,b.jsx)("span",{className:"break-all font-mono",children:g}),(0,b.jsx)(A.Textarea,{className:"min-h-64 font-mono text-xs",value:e.find(a=>a.path===g)?.content??"",disabled:k||!a.editable,onChange:a=>{u(!1),f(b=>b.map(b=>b.path===g?{...b,content:a.target.value}:b))}})]}),a.editable&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(D,{disabled:k,onFiles:a=>{u(!1),f(a),j("SKILL.md")}}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.importHelp}),"builtin-playbook"===a.kind&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c.builtinReview}),(0,b.jsx)(l.Button,{size:"sm",disabled:k,onClick:()=>void v(),children:k?c.refreshing:c.saveSkill})]}),n&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:n}),(0,b.jsxs)("div",{className:"border-t border-border/70 pt-3",children:[(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>q(a=>!a),children:c.history}),p&&(0,b.jsx)(N,{skill:a})]})]})}function N({skill:a}){let e=(0,s.useExtensionsCopy)(),[f,g]=(0,h.useState)(null),i=(0,c.useQuery)({queryKey:[...t.copilotSkillsKey,a.id,"revisions"],queryFn:()=>(0,t.listSkillRevisions)(a.id),retry:!1});return(0,b.jsx)("div",{className:"mt-3 space-y-3",children:i.isPending?(0,b.jsx)("p",{children:e.loading}):i.isError?(0,b.jsxs)("div",{role:"alert",children:[(0,b.jsx)("p",{className:"text-sm text-destructive",children:e.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void i.refetch(),children:e.retry})]}):i.data?.revisions.length?i.data.revisions.map(c=>(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("p",{className:"text-xs",children:["v",c.version," · ",c.action," · ",c.fileCount," ",e.files]}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",disabled:!a.editable||c.id===a.revisionId,onClick:()=>g(a=>a===c.id?null:c.id),children:e.rollback})]}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[c.createdAt," · ",c.source.url??c.source.label??c.source.kind]}),f===c.id&&(0,b.jsx)(O,{skill:a,revisionId:c.id})]},c.id)):(0,b.jsx)(r.CopilotEmptyState,{icon:d.BookOpen,title:e.noHistory})})}function O({skill:a,revisionId:d}){let e=(0,s.useExtensionsCopy)(),f=(0,i.useQueryClient)(),[g,j]=(0,h.useState)(!1),[k,m]=(0,h.useState)(!1),n=(0,c.useQuery)({queryKey:[...t.copilotSkillsKey,a.id,"revisions",d],queryFn:()=>(0,t.getSkillRevision)(a.id,d),retry:!1});async function o(){if(!g){j(!0),m(!1);try{await (0,t.rollbackCopilotSkill)(a.id,d,a.revisionId),await f.invalidateQueries({queryKey:t.copilotSkillsKey})}catch{m(!0)}finally{j(!1)}}}return(0,b.jsxs)("div",{className:"space-y-2 border-t border-border/70 pt-2",children:[n.isPending?(0,b.jsx)("p",{children:e.loading}):n.isError?(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-xs text-destructive",children:[(0,b.jsx)("p",{children:e.loadError}),(0,b.jsx)(l.Button,{size:"sm",variant:"outline",onClick:()=>void n.refetch(),children:e.retry})]}):n.data&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e.rollbackHelp}),n.data.revision.files.map(a=>(0,b.jsxs)("details",{className:"text-xs",children:[(0,b.jsx)("summary",{className:"break-all font-mono",children:a.path}),(0,b.jsx)("pre",{className:"max-h-48 overflow-auto whitespace-pre-wrap break-all rounded-md bg-muted/30 p-2",children:a.content})]},a.path)),(0,b.jsx)(l.Button,{size:"sm",disabled:g,onClick:()=>void o(),children:e.rollbackConfirm})]}),k&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:e.error})]})}var P=a.i(81421);a.s(["CopilotExtensionsPage",0,function(){let a=(0,s.useExtensionsCopy)(),h=(0,c.useQuery)({queryKey:t.copilotSkillsKey,queryFn:t.listCopilotSkills,retry:!1}),i=(0,c.useQuery)({queryKey:t.copilotConnectionsKey,queryFn:t.listCopilotConnections,retry:!1}),j=h.data?.skills.length,k=i.data?.connections.filter(a=>"mcp"===a.kind).length;return(0,b.jsx)(P.CopilotSettingsShell,{active:"extensions",title:a.title,description:a.description,children:(0,b.jsxs)(g.Tabs,{defaultValue:"skills",className:"forgebadger-animate-in",style:{animationDelay:"120ms"},children:[(0,b.jsxs)(g.TabsList,{"aria-label":a.title,children:[(0,b.jsxs)(g.TabsTrigger,{value:"skills",className:"gap-1.5",children:[(0,b.jsx)(d.BookOpen,{className:"size-3.5"}),a.skills,j?(0,b.jsx)(f.Badge,{variant:"secondary",className:"px-1.5 py-0 text-[10px]",children:j}):null]}),(0,b.jsxs)(g.TabsTrigger,{value:"connections",className:"gap-1.5",children:[(0,b.jsx)(e.Plug,{className:"size-3.5"}),a.connections,k?(0,b.jsx)(f.Badge,{variant:"secondary",className:"px-1.5 py-0 text-[10px]",children:k}):null]})]}),(0,b.jsx)(g.TabsContent,{value:"skills",className:"mt-4",children:(0,b.jsx)(H,{})}),(0,b.jsx)(g.TabsContent,{value:"connections",className:"mt-4",children:(0,b.jsx)(u,{})})]})})}],10729)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_components_copilot_CopilotExtensionsPage_tsx_0jl0nnn._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[11277,a=>{"use strict";var b=a.i(20486),c=a.i(72637),d=a.i(85198),e=a.i(39747),f=a.i(26248),g=a.i(97494),h=a.i(4730),i=a.i(79914),j=a.i(39042),k=a.i(83164);let l=a=>"queued"===a||"running"===a,m="/api/v1/copilot/development";function n(){return(0,j.fetchJson)(`${m}/capability`)}function o(){let{language:a}=(0,i.useLanguage)();return(b,c)=>"zh-CN"===a?b:c}function p({status:a}){let c=o(),d={queued:c("排队中","Queued"),running:c("运行中","Running"),checks_passed:c("检查通过 · 待验收","Checks passed · review required"),checks_failed:c("检查未通过","Checks failed"),failed:c("失败","Failed"),cancelled:c("已取消","Cancelled"),indeterminate:c("结果未知 · 需核实","Indeterminate · verify manually"),accepted:c("所有者已验收","Accepted by owner")};return(0,b.jsx)(h.Badge,{variant:"outline",children:d[a]??a})}function q({error:a,retry:c}){let d=o();return(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.message}),(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:c,children:d("重试读取","Retry read")})]})}function r({projectId:a,taskId:c}){let d=o(),f=(0,e.useQuery)({queryKey:["development-task",a,c],queryFn:()=>(0,j.fetchJson)(`${m}/tasks/${encodeURIComponent(c)}?projectId=${encodeURIComponent(a)}`),refetchInterval:a=>!!(a.state.data&&l(a.state.data.task.status))&&5e3});if(f.isPending)return(0,b.jsx)("p",{role:"status",children:d("正在加载回执…","Loading evidence…")});if(f.isError)return(0,b.jsx)(q,{error:f.error,retry:()=>void f.refetch()});let{task:h,evidence:i}=f.data;return(0,b.jsxs)("section",{className:"min-w-0 space-y-4 rounded-lg border border-border p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsx)("h2",{className:"break-words text-sm font-semibold",children:h.goal}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p,{status:h.status}),(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",disabled:f.isFetching,onClick:()=>void f.refetch(),children:d("刷新回执","Refresh evidence")})]})]}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[h.id," · ",d("版本","Revision")," ",h.revision," · ",new Date(h.updatedAt).toLocaleString()]}),h.error&&(0,b.jsx)("p",{role:"alert",className:"break-words text-sm text-destructive",children:h.error}),"indeterminate"===h.status&&(0,b.jsx)("p",{role:"status",children:d("执行结果未知,请人工核实已有回执;不要重复执行。","Execution outcome is unknown. Verify existing receipts manually; do not replay.")}),i?(0,b.jsx)(s,{evidence:i}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("尚无可用差异或检查回执。","No diff or check evidence is available yet.")}),(0,b.jsx)(t,{task:h},h.id)]})}function s({evidence:a}){let c=o();return(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(0,b.jsxs)("details",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer text-sm",children:c("产物与输入摘要","Artifact and input digests")}),(0,b.jsxs)("dl",{className:"space-y-2 break-all pt-2 font-mono text-xs",children:[(0,b.jsx)("dt",{children:"sourceDigest"}),(0,b.jsx)("dd",{children:a.sourceDigest}),(0,b.jsx)("dt",{children:"outputDigest"}),(0,b.jsx)("dd",{children:a.outputDigest}),(0,b.jsx)("dt",{children:"recipeDigest"}),(0,b.jsx)("dd",{children:a.recipeDigest})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"mb-2 text-sm font-semibold",children:c("文件差异","File changes")}),a.files.length?(0,b.jsx)("ul",{className:"space-y-1 break-all text-xs",children:a.files.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("details",{children:[(0,b.jsx)("summary",{className:"cursor-pointer",children:a.path}),(0,b.jsxs)("p",{children:[a.beforeSha256??"∅"," → ",a.afterSha256??"∅"]})]})},a.path))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("没有文件变更。","No file changes.")}),(0,b.jsx)("pre",{className:"mt-2 max-h-96 overflow-auto rounded-md bg-muted p-3 text-xs",children:a.diff||c("无差异内容","No diff content")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:c("检查回执","Check receipts")}),!a.checks.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("未运行检查。","No checks were run.")}),a.checks.map((a,d)=>(0,b.jsxs)("details",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer break-all text-sm",children:[a.path," · ",c("退出码","Exit code")," ",a.exitCode??"—"," · ",a.durationMs," ms",a.timedOut?c(" · 超时"," · Timed out"):"",a.cancelled?c(" · 已取消"," · Cancelled"):""]}),(0,b.jsx)("p",{className:"mt-2 text-xs",children:"stdout"}),(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap break-all text-xs",children:a.stdout||"—"}),(0,b.jsx)("p",{className:"mt-2 text-xs",children:"stderr"}),(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap break-all text-xs",children:a.stderr||"—"})]},`${a.path}:${d}`))]})]})}function t({task:a}){let c=o(),e=(0,f.useQueryClient)(),[h,i]=(0,d.useState)(null),[m,n]=(0,d.useState)(!1),[p,q]=(0,d.useState)(""),[r,s]=(0,d.useState)(!1),[u,v]=(0,d.useState)(null),[w,x]=(0,d.useState)(Date.now()),y=(0,d.useRef)(null),z=(0,d.useRef)(a.revision),A=(0,d.useRef)(!1),B="checks_passed"===a.status&&a.artifactDigest?"accept":l(a.status)?"cancel":null;async function C(){if(B&&!A.current){A.current=!0,n(!0),q(""),y.current??=crypto.randomUUID();try{var b;let c=await (b=y.current,(0,j.fetchJson)("/api/v1/platform-actions/preview",{method:"POST",body:JSON.stringify({commandId:`development.task.${B}`,input:{projectId:a.projectId,taskId:a.id,..."accept"===B?{artifactDigest:a.artifactDigest}:{}},idempotencyKey:b})}));x(Date.now()),i(c.intent)}catch(a){q(a instanceof Error?a.message:c("预览失败","Preview failed"))}finally{A.current=!1,n(!1)}}}async function D(){if(!(!h||r||A.current||h.expires_at<=Date.now())){A.current=!0,n(!0),q(""),s(!0);try{var b;let a=await (0,k.getPlatformAction)(h.id);if(a.receipt)return void v(a.receipt);if(a.intent.digest!==h.digest||"pending"!==a.intent.status||"owner_action"!==a.intent.authority||a.intent.expires_at<=Date.now())throw Error(c("预览已失效,请刷新任务并重新核实。","Preview is no longer valid. Refresh the task and review again."));await (0,j.fetchJson)(`/api/v1/platform-actions/${encodeURIComponent(h.id)}/decide`,{method:"POST",body:JSON.stringify({digest:h.digest,approved:!0})}),v((await (b=h.id,(0,j.fetchJson)(`/api/v1/platform-actions/${encodeURIComponent(b)}/execute`,{method:"POST",body:"{}"}))).receipt)}catch(a){q(`${a instanceof Error?a.message:c("操作失败","Action failed")} ${c("请核实操作回执;不会自动重试执行。","Verify the action receipt; execution will not be retried automatically.")}`)}finally{A.current=!1,n(!1),e.invalidateQueries({queryKey:["development-tasks",a.projectId]}),e.invalidateQueries({queryKey:["development-task",a.projectId,a.id]})}}}async function E(){if(h){n(!0);try{let a=await (0,k.getPlatformAction)(h.id);v(a.receipt),q(a.receipt?"":c("尚无回执,请人工核实。","No receipt yet. Verify manually."))}catch(a){q(a instanceof Error?a.message:c("读取失败","Read failed"))}finally{n(!1)}}}return((0,d.useEffect)(()=>{z.current===a.revision||r||(i(null),y.current=null),z.current=a.revision},[a.revision,r]),(0,d.useEffect)(()=>{if(!h)return;let a=setInterval(()=>x(Date.now()),1e3);return()=>clearInterval(a)},[h]),B||h)?(0,b.jsxs)("div",{className:"space-y-3 border-t border-border pt-3",children:[!h&&(0,b.jsx)(g.Button,{variant:"outline",disabled:m,onClick:()=>void C(),children:m?c("正在生成预览…","Preparing preview…"):"accept"===B?c("预览验收操作","Preview acceptance"):c("预览取消操作","Preview cancellation")}),h&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:c("确认精确操作","Confirm exact action")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("本次人工确认。验收记录所有者判断,不会合并或写回源项目。","One-time owner confirmation. Acceptance records the owner's judgment and does not merge or write back to the source project.")}),(0,b.jsxs)("pre",{className:"max-h-80 overflow-auto whitespace-pre-wrap break-all text-xs",children:[h.command_id,"\n",h.input_json,"\n",h.resources_json]}),(0,b.jsx)("p",{className:"break-all text-xs",children:h.digest}),(0,b.jsxs)("p",{className:"text-xs",children:[c("有效期","Expires")," ",new Date(h.expires_at).toLocaleString()]}),h.expires_at<=w&&(0,b.jsx)("p",{role:"alert",children:c("预览已过期,请重新预览。","Preview expired. Prepare a new preview.")}),!r&&!m&&h.expires_at<=w&&(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>{y.current=null,i(null)},children:c("重新预览","New preview")}),!r&&(0,b.jsx)(g.Button,{disabled:m||h.expires_at<=w||"owner_action"!==h.authority||"pending"!==h.status,onClick:()=>void D(),children:m?c("正在确认…","Confirming…"):c("所有者确认并执行","Owner confirms and executes")}),r&&(0,b.jsx)(g.Button,{size:"sm",variant:"outline",disabled:m,onClick:()=>void E(),children:c("读取操作回执","Read action receipt")})]}),u&&(0,b.jsx)("p",{role:"status",children:"confirmed"===u.outcome?c("操作回执已确认。","Action receipt confirmed."):"unknown"===u.outcome?c("操作结果未知,请人工核实;不会自动重放。","Action outcome unknown. Verify manually; no automatic replay."):c("确认未产生变更。","Confirmed no effect.")}),p&&(0,b.jsx)("p",{role:"alert",className:"break-words text-sm text-destructive",children:p})]}):null}a.s(["DevelopmentTasks",0,function({initialProjectId:a="",initialTaskId:f=""}={}){let h=o(),[i,k]=(0,d.useState)(a),[s,t]=(0,d.useState)(f),u=(0,e.useQuery)({queryKey:["development-projects"],queryFn:j.listProjects}),v=(0,e.useQuery)({queryKey:["development-capability"],queryFn:n}),w=(0,e.useQuery)({queryKey:["development-tasks",i],queryFn:()=>(0,j.fetchJson)(`${m}/tasks?projectId=${encodeURIComponent(i)}`),enabled:!!i,refetchInterval:a=>!!a.state.data?.tasks.some(a=>l(a.status))&&5e3});return(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-4 p-3 sm:p-6",children:[(0,b.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-3 pl-12 md:pl-0",children:[(0,b.jsx)("h1",{className:"text-lg font-semibold",children:h("受控开发任务","Controlled development tasks")}),(0,b.jsx)(c.default,{href:"/copilot",className:"text-sm text-brand hover:underline",children:h("返回 Copilot","Back to Copilot")})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("查看隔离任务的差异和检查回执。检查通过后仍需所有者判断目标是否完成;验收不会合并或写回源项目。","Review isolated task diffs and check receipts. Passing checks still requires the owner's judgment of the goal. Acceptance does not merge or write back to the source project.")}),v.isPending&&(0,b.jsx)("p",{role:"status",children:h("正在检查运行能力…","Checking runtime capability…")}),v.isError&&(0,b.jsx)(q,{error:v.error,retry:()=>void v.refetch()}),v.data&&!v.data.available&&(0,b.jsxs)("p",{role:"status",className:"rounded-lg border border-border p-3 text-sm",children:[h("当前无法执行新开发任务:","New development tasks are unavailable: "),v.data.reason??h("运行环境不可用","Runtime unavailable")]}),u.isPending?(0,b.jsx)("p",{role:"status",children:h("正在加载项目…","Loading projects…")}):u.isError?(0,b.jsx)(q,{error:u.error,retry:()=>void u.refetch()}):u.data.projects.length?(0,b.jsxs)("label",{className:"flex flex-wrap items-center gap-3 text-sm",children:[h("项目","Project"),(0,b.jsxs)("select",{"aria-label":h("项目","Project"),className:"max-w-full rounded-md border border-border bg-background px-3 py-2",value:i,onChange:a=>{k(a.target.value),t("")},children:[(0,b.jsx)("option",{value:"",children:h("选择项目","Select a project")}),u.data.projects.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})]}):(0,b.jsx)("p",{children:h("暂无项目。请先导入项目。","No projects. Import a project first.")}),i&&(0,b.jsxs)("div",{className:"grid min-w-0 gap-4 lg:grid-cols-[minmax(220px,1fr)_minmax(0,3fr)]",children:[(0,b.jsxs)("section",{className:"min-w-0 space-y-3 rounded-lg border border-border p-3","aria-label":h("任务列表","Task list"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:h("任务","Tasks")}),(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",disabled:w.isFetching,onClick:()=>void w.refetch(),children:h("刷新","Refresh")})]}),w.isPending&&(0,b.jsx)("p",{role:"status",children:h("正在加载任务…","Loading tasks…")}),w.isError&&(0,b.jsx)(q,{error:w.error,retry:()=>void w.refetch()}),!w.isError&&w.data?.tasks.length===0&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("暂无任务。在 Copilot 对话中提出开发目标,审阅任务预览并确认后创建。","No tasks. Describe your development goal in Copilot, review the task preview and confirm to create it.")}),w.data?.tasks.map(a=>(0,b.jsxs)("button",{type:"button","aria-pressed":a.id===s,className:"w-full space-y-2 rounded-md border border-border/70 p-3 text-left text-sm hover:bg-muted aria-pressed:bg-muted",onClick:()=>t(a.id),children:[(0,b.jsx)("span",{className:"block break-words",children:a.goal}),(0,b.jsx)(p,{status:a.status})]},a.id))]}),s?(0,b.jsx)(r,{projectId:i,taskId:s},`${i}:${s}`):(0,b.jsx)("p",{className:"p-3 text-sm text-muted-foreground",children:h("选择任务查看差异和回执。","Select a task to review its diff and receipts.")})]})]})}],11277)}];
|
|
1
|
+
module.exports=[11277,a=>{"use strict";var b=a.i(20486),c=a.i(72637),d=a.i(85198),e=a.i(39747),f=a.i(26248),g=a.i(97494),h=a.i(79914),i=a.i(39042);let j=a=>"queued"===a||"running"===a,k="/api/v1/copilot/development";function l(){return(0,i.fetchJson)(`${k}/capability`)}function m({task:a}){let{t:c}=(0,h.useLanguage)(),e=(0,f.useQueryClient)(),[j,l]=(0,d.useState)(!1),[n,o]=(0,d.useState)(null),[p,q]=(0,d.useState)(!1),r=(0,d.useRef)(!1),s=(0,d.useRef)(!0);async function t(){if(!r.current&&"indeterminate"===a.status){var b,c,d;r.current=!0,l(!0),o(null);try{let f=await (b=a.projectId,c=a.id,d=a.revision,(0,i.fetchJson)(`${k}/tasks/${encodeURIComponent(c)}/reconcile`,{method:"POST",body:JSON.stringify({projectId:b,expectedRevision:d})}));e.setQueryData(["development-task",a.projectId,a.id],a=>a?{...a,task:f.task}:a),s.current&&q("failed"===f.task.status)}catch(b){let a;s.current&&o("DEVELOPMENT_RECONCILIATION_STALE"===(a=b instanceof i.GatewayApiError?b.details?.code:void 0)||"DEVELOPMENT_RECONCILIATION_NOT_FOUND"===a?"copilot.development.reconciliationStale":"DEVELOPMENT_RECONCILIATION_IDENTITY_MISSING"===a?"copilot.development.reconciliationIdentityMissing":"DEVELOPMENT_RECONCILIATION_STILL_ACTIVE"===a?"copilot.development.reconciliationStillActive":"string"==typeof a&&/IDENTITY_MISMATCH|EVIDENCE_/.test(a)?"copilot.development.reconciliationEvidenceMissing":"copilot.development.reconciliationUncertain")}finally{await Promise.allSettled([e.invalidateQueries({queryKey:["development-tasks",a.projectId]}),e.invalidateQueries({queryKey:["development-task",a.projectId,a.id]})]),r.current=!1,s.current&&l(!1)}}}return((0,d.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]),"indeterminate"===a.status||p)?(0,b.jsxs)("div",{className:"space-y-2",children:["indeterminate"===a.status&&(0,b.jsx)(g.Button,{variant:"outline",size:"sm",disabled:j,onClick:()=>void t(),children:c(j?"copilot.development.reconciling":"copilot.development.reconcile")}),p&&(0,b.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:c("copilot.development.reconciledUnknown")}),n&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:c(n)})]}):null}var n=a.i(4730),o=a.i(83164);function p(){let{language:a}=(0,h.useLanguage)();return(b,c,d)=>"en"===a?d:"zh-TW"===a?c:b}function q(a,b){switch(a){case"DEVELOPMENT_SANDBOX_REQUIRES_MACOS":return b("开发任务的检查需在 macOS Seatbelt 沙箱(/usr/bin/sandbox-exec)内隔离执行,当前主机不是 macOS,因此无法执行新开发任务。历史任务的差异与检查回执仍可查看,排队中的任务仍可取消。","開發任務的檢查需在 macOS Seatbelt 沙箱(/usr/bin/sandbox-exec)內隔離執行,目前主機不是 macOS,因此無法執行新開發任務。歷史任務的差異與檢查回執仍可檢視,佇列中的任務仍可取消。","Development task checks must run isolated inside the macOS Seatbelt sandbox (/usr/bin/sandbox-exec). This host is not macOS, so new development tasks cannot run. Existing task diffs and check receipts remain viewable, and queued tasks can still be cancelled.");case"DEVELOPMENT_SANDBOX_REQUIRES_NODE_22_8":return b("执行开发任务检查需要 Node 22.8 或更高版本,当前 Gateway 的 Node 版本不满足,因此无法执行新开发任务。","執行開發任務檢查需要 Node 22.8 或更高版本,目前 Gateway 的 Node 版本不滿足,因此無法執行新開發任務。","Running development task checks requires Node 22.8 or newer. The Gateway is running an older Node version, so new development tasks cannot run.");case"DEVELOPMENT_SANDBOX_UNAVAILABLE":return b("本机沙箱探测失败(/usr/bin/sandbox-exec 缺失或运行失败),因此无法执行新开发任务。","本機沙箱探測失敗(/usr/bin/sandbox-exec 缺失或執行失敗),因此無法執行新開發任務。","The local sandbox probe failed (/usr/bin/sandbox-exec is missing or failed), so new development tasks cannot run.");default:return""}}function r({status:a}){let c=p(),d={queued:c("排队中","佇列中","Queued"),running:c("运行中","執行中","Running"),checks_passed:c("检查通过 · 待验收","檢查通過 · 待驗收","Checks passed · review required"),checks_failed:c("检查未通过","檢查未通過","Checks failed"),failed:c("失败","失敗","Failed"),cancelled:c("已取消","已取消","Cancelled"),indeterminate:c("结果未知 · 需核实","結果未知 · 需核實","Indeterminate · verify manually"),accepted:c("所有者已验收","所有者已驗收","Accepted by owner")};return(0,b.jsx)(n.Badge,{variant:"outline",children:d[a]??a})}function s({error:a,retry:c}){let d=p();return(0,b.jsxs)("div",{role:"alert",className:"space-y-2 text-sm text-destructive",children:[(0,b.jsx)("p",{children:a.message}),(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:c,children:d("重试读取","重試讀取","Retry read")})]})}function t({projectId:a,taskId:c}){let d=p(),f=(0,h.useUiLocale)(),l=(0,e.useQuery)({queryKey:["development-task",a,c],queryFn:()=>(0,i.fetchJson)(`${k}/tasks/${encodeURIComponent(c)}?projectId=${encodeURIComponent(a)}`),refetchInterval:a=>!!(a.state.data&&j(a.state.data.task.status))&&5e3});if(l.isPending)return(0,b.jsx)("p",{role:"status",children:d("正在加载回执…","正在載入回執…","Loading evidence…")});if(l.isError)return(0,b.jsx)(s,{error:l.error,retry:()=>void l.refetch()});let{task:n,evidence:o}=l.data;return(0,b.jsxs)("section",{className:"min-w-0 space-y-4 rounded-lg border border-border p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsx)("h2",{className:"break-words text-sm font-semibold",children:n.goal}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(r,{status:n.status}),(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",disabled:l.isFetching,onClick:()=>void l.refetch(),children:d("刷新回执","重新整理回執","Refresh evidence")})]})]}),(0,b.jsxs)("p",{className:"break-all text-xs text-muted-foreground",children:[n.id," · ",d("版本","版本","Revision")," ",n.revision," · ",new Date(n.updatedAt).toLocaleString(f)]}),n.error&&(0,b.jsx)("p",{role:"alert",className:"break-words text-sm text-destructive",children:q(n.error,d)?(0,b.jsxs)(b.Fragment,{children:[q(n.error,d),(0,b.jsx)("span",{className:"mt-1 block font-mono text-xs opacity-70",children:n.error})]}):n.error}),"indeterminate"===n.status&&(0,b.jsx)("p",{role:"status",children:d("执行结果未知,请人工核实已有回执;不要重复执行。","執行結果未知,請人工核實已有回執;不要重複執行。","Execution outcome is unknown. Verify existing receipts manually; do not replay.")}),(0,b.jsx)(m,{task:n},`reconcile:${n.id}`),o?(0,b.jsx)(u,{evidence:o}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("尚无可用差异或检查回执。","尚無可用差異或檢查回執。","No diff or check evidence is available yet.")}),(0,b.jsx)(v,{task:n},n.id)]})}function u({evidence:a}){let c=p();return(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(0,b.jsxs)("details",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer text-sm",children:c("产物与输入摘要","產物與輸入摘要","Artifact and input digests")}),(0,b.jsxs)("dl",{className:"space-y-2 break-all pt-2 font-mono text-xs",children:[(0,b.jsx)("dt",{children:"sourceDigest"}),(0,b.jsx)("dd",{children:a.sourceDigest}),(0,b.jsx)("dt",{children:"outputDigest"}),(0,b.jsx)("dd",{children:a.outputDigest}),(0,b.jsx)("dt",{children:"recipeDigest"}),(0,b.jsx)("dd",{children:a.recipeDigest})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"mb-2 text-sm font-semibold",children:c("文件差异","檔案差異","File changes")}),a.files.length?(0,b.jsx)("ul",{className:"space-y-1 break-all text-xs",children:a.files.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("details",{children:[(0,b.jsx)("summary",{className:"cursor-pointer",children:a.path}),(0,b.jsxs)("p",{children:[a.beforeSha256??"∅"," → ",a.afterSha256??"∅"]})]})},a.path))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("没有文件变更。","沒有檔案變更。","No file changes.")}),(0,b.jsx)("pre",{className:"mt-2 max-h-96 overflow-auto rounded-md bg-muted p-3 text-xs",children:a.diff||c("无差异内容","無差異內容","No diff content")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:c("检查回执","檢查回執","Check receipts")}),!a.checks.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("未运行检查。","未執行檢查。","No checks were run.")}),a.checks.map((a,d)=>(0,b.jsxs)("details",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer break-all text-sm",children:[a.path," · ",c("退出码","結束碼","Exit code")," ",a.exitCode??"—"," · ",a.durationMs," ms",a.timedOut?c(" · 超时"," · 逾時"," · Timed out"):"",a.cancelled?c(" · 已取消"," · 已取消"," · Cancelled"):""]}),(0,b.jsx)("p",{className:"mt-2 text-xs",children:"stdout"}),(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap break-all text-xs",children:a.stdout||"—"}),(0,b.jsx)("p",{className:"mt-2 text-xs",children:"stderr"}),(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap break-all text-xs",children:a.stderr||"—"})]},`${a.path}:${d}`))]})]})}function v({task:a}){let c=p(),e=(0,h.useUiLocale)(),k=(0,f.useQueryClient)(),[l,m]=(0,d.useState)(null),[n,q]=(0,d.useState)(!1),[r,s]=(0,d.useState)(""),[t,u]=(0,d.useState)(!1),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(Date.now()),A=(0,d.useRef)(null),B=(0,d.useRef)(a.revision),C=(0,d.useRef)(!1),D="checks_passed"===a.status&&a.artifactDigest?"accept":j(a.status)?"cancel":null;async function E(){if(D&&!C.current){C.current=!0,q(!0),s(""),A.current??=crypto.randomUUID();try{var b;let c=await (b=A.current,(0,i.fetchJson)("/api/v1/platform-actions/preview",{method:"POST",body:JSON.stringify({commandId:`development.task.${D}`,input:{projectId:a.projectId,taskId:a.id,..."accept"===D?{artifactDigest:a.artifactDigest}:{}},idempotencyKey:b})}));z(Date.now()),m(c.intent)}catch(a){s(a instanceof Error?a.message:c("预览失败","預覽失敗","Preview failed"))}finally{C.current=!1,q(!1)}}}async function F(){if(!(!l||t||C.current||l.expires_at<=Date.now())){C.current=!0,q(!0),s(""),u(!0);try{var b;let a=await (0,o.getPlatformAction)(l.id);if(a.receipt)return void x(a.receipt);if(a.intent.digest!==l.digest||"approved"!==a.intent.status||"owner_action"!==a.intent.authority||a.intent.expires_at<=Date.now())throw Error(c("预览已失效,请刷新任务并重新核实。","預覽已失效,請重新整理任務並重新核實。","Preview is no longer valid. Refresh the task and review again."));x((await (b=l.id,(0,i.fetchJson)(`/api/v1/platform-actions/${encodeURIComponent(b)}/execute`,{method:"POST",body:"{}"}))).receipt)}catch(a){s(`${a instanceof Error?a.message:c("操作失败","操作失敗","Action failed")} ${c("请核实操作回执;不会自动重试执行。","請核實操作回執;不會自動重試執行。","Verify the action receipt; execution will not be retried automatically.")}`)}finally{C.current=!1,q(!1),k.invalidateQueries({queryKey:["development-tasks",a.projectId]}),k.invalidateQueries({queryKey:["development-task",a.projectId,a.id]})}}}async function G(){if(l){q(!0);try{let a=await (0,o.getPlatformAction)(l.id);x(a.receipt),s(a.receipt?"":c("尚无回执,请人工核实。","尚無回執,請人工核實。","No receipt yet. Verify manually."))}catch(a){s(a instanceof Error?a.message:c("读取失败","讀取失敗","Read failed"))}finally{q(!1)}}}return((0,d.useEffect)(()=>{B.current===a.revision||t||(m(null),A.current=null),B.current=a.revision},[a.revision,t]),(0,d.useEffect)(()=>{if(!l)return;let a=setInterval(()=>z(Date.now()),1e3);return()=>clearInterval(a)},[l]),D||l)?(0,b.jsxs)("div",{className:"space-y-3 border-t border-border pt-3",children:[!l&&(0,b.jsx)(g.Button,{variant:"outline",disabled:n,onClick:()=>void E(),children:n?c("正在生成预览…","正在產生預覽…","Preparing preview…"):"accept"===D?c("预览验收操作","預覽驗收操作","Preview acceptance"):c("预览取消操作","預覽取消操作","Preview cancellation")}),l&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:c("确认精确操作","確認精確操作","Confirm exact action")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("本次人工确认。验收记录所有者判断,不会合并或写回源项目。","本次人工確認。驗收記錄所有者判斷,不會合併或寫回源專案。","One-time owner confirmation. Acceptance records the owner's judgment and does not merge or write back to the source project.")}),(0,b.jsxs)("pre",{className:"max-h-80 overflow-auto whitespace-pre-wrap break-all text-xs",children:[l.command_id,"\n",l.input_json,"\n",l.resources_json]}),(0,b.jsx)("p",{className:"break-all text-xs",children:l.digest}),(0,b.jsxs)("p",{className:"text-xs",children:[c("有效期","有效期","Expires")," ",new Date(l.expires_at).toLocaleString(e)]}),l.expires_at<=y&&(0,b.jsx)("p",{role:"alert",children:c("预览已过期,请重新预览。","預覽已過期,請重新預覽。","Preview expired. Prepare a new preview.")}),!t&&!n&&l.expires_at<=y&&(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>{A.current=null,m(null)},children:c("重新预览","重新預覽","New preview")}),!t&&(0,b.jsx)(g.Button,{disabled:n||l.expires_at<=y||"owner_action"!==l.authority||"approved"!==l.status,onClick:()=>void F(),children:n?c("正在确认…","正在確認…","Confirming…"):c("所有者确认并执行","所有者確認並執行","Owner confirms and executes")}),t&&(0,b.jsx)(g.Button,{size:"sm",variant:"outline",disabled:n,onClick:()=>void G(),children:c("读取操作回执","讀取操作回執","Read action receipt")})]}),w&&(0,b.jsx)("p",{role:"status",children:"confirmed"===w.outcome?c("操作回执已确认。","操作回執已確認。","Action receipt confirmed."):"unknown"===w.outcome?c("操作结果未知,请人工核实;不会自动重放。","操作結果未知,請人工核實;不會自動重放。","Action outcome unknown. Verify manually; no automatic replay."):c("确认未产生变更。","確認未產生變更。","Confirmed no effect.")}),r&&(0,b.jsx)("p",{role:"alert",className:"break-words text-sm text-destructive",children:r})]}):null}a.s(["DevelopmentTasks",0,function({initialProjectId:a="",initialTaskId:f=""}={}){let h=p(),[m,n]=(0,d.useState)(a),[o,u]=(0,d.useState)(f),v=(0,e.useQuery)({queryKey:["development-projects"],queryFn:i.listProjects}),w=(0,e.useQuery)({queryKey:["development-capability"],queryFn:l}),x=(0,e.useQuery)({queryKey:["development-tasks",m],queryFn:()=>(0,i.fetchJson)(`${k}/tasks?projectId=${encodeURIComponent(m)}`),enabled:!!m,refetchInterval:a=>!!a.state.data?.tasks.some(a=>j(a.status))&&5e3});return(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-4 p-3 pt-16 sm:p-6 sm:pt-16 md:p-6",children:[(0,b.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsx)("h1",{className:"text-lg font-semibold",children:h("受控开发任务","受控開發任務","Controlled development tasks")}),(0,b.jsx)(c.default,{href:"/copilot",className:"text-sm text-brand hover:underline",children:h("返回 Copilot","返回 Copilot","Back to Copilot")})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("查看隔离任务的差异和检查回执。检查通过后仍需所有者判断目标是否完成;验收不会合并或写回源项目。","檢視隔離任務的差異和檢查回執。檢查通過後仍需所有者判斷目標是否完成;驗收不會合併或寫回源專案。","Review isolated task diffs and check receipts. Passing checks still requires the owner's judgment of the goal. Acceptance does not merge or write back to the source project.")}),w.isPending&&(0,b.jsx)("p",{role:"status",children:h("正在检查运行能力…","正在檢查執行能力…","Checking runtime capability…")}),w.isError&&(0,b.jsx)(s,{error:w.error,retry:()=>void w.refetch()}),w.data&&!w.data.available&&(0,b.jsx)("p",{role:"status",className:"rounded-lg border border-border p-3 text-sm",children:q(w.data.reason??"",h)||`${h("当前无法执行新开发任务:","目前無法執行新開發任務:","New development tasks are unavailable: ")}${w.data.reason??h("运行环境不可用","執行環境不可用","Runtime unavailable")}`}),v.isPending?(0,b.jsx)("p",{role:"status",children:h("正在加载项目…","正在載入專案…","Loading projects…")}):v.isError?(0,b.jsx)(s,{error:v.error,retry:()=>void v.refetch()}):v.data.projects.length?(0,b.jsxs)("label",{className:"flex flex-wrap items-center gap-3 text-sm",children:[h("项目","專案","Project"),(0,b.jsxs)("select",{"aria-label":h("项目","專案","Project"),className:"max-w-full rounded-md border border-border bg-background px-3 py-2",value:m,onChange:a=>{n(a.target.value),u("")},children:[(0,b.jsx)("option",{value:"",children:h("选择项目","選擇專案","Select a project")}),v.data.projects.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})]}):(0,b.jsxs)("p",{children:[h("暂无项目。","暫無專案。","No projects yet.")," ",(0,b.jsx)(c.default,{href:"/projects/import",className:"text-brand hover:underline",children:h("导入项目","匯入專案","Import a project")})]}),m&&(0,b.jsxs)("div",{className:"grid min-w-0 gap-4 lg:grid-cols-[minmax(220px,1fr)_minmax(0,3fr)]",children:[(0,b.jsxs)("section",{className:"min-w-0 space-y-3 rounded-lg border border-border p-3","aria-label":h("任务列表","任務列表","Task list"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:h("任务","任務","Tasks")}),(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",disabled:x.isFetching,onClick:()=>void x.refetch(),children:h("刷新","重新整理","Refresh")})]}),x.isPending&&(0,b.jsx)("p",{role:"status",children:h("正在加载任务…","正在載入任務…","Loading tasks…")}),x.isError&&(0,b.jsx)(s,{error:x.error,retry:()=>void x.refetch()}),!x.isError&&x.data?.tasks.length===0&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("暂无任务。在 Copilot 对话中提出开发目标,审阅任务预览并确认后创建。","暫無任務。在 Copilot 對話中提出開發目標,審閱任務預覽並確認後建立。","No tasks. Describe your development goal in Copilot, review the task preview and confirm to create it.")}),x.data?.tasks.map(a=>(0,b.jsxs)("button",{type:"button","aria-pressed":a.id===o,className:"w-full space-y-2 rounded-md border border-border/70 p-3 text-left text-sm hover:bg-muted aria-pressed:bg-muted",onClick:()=>u(a.id),children:[(0,b.jsx)("span",{className:"block break-words",children:a.goal}),(0,b.jsx)(r,{status:a.status})]},a.id))]}),o?(0,b.jsx)(t,{projectId:m,taskId:o},`${m}:${o}`):(0,b.jsx)("p",{className:"p-3 text-sm text-muted-foreground",children:h("选择任务查看差异和回执。","選擇任務檢視差異和回執。","Select a task to review its diff and receipts.")})]})]})}],11277)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_components_copilot_DevelopmentTasks_tsx_0fr61i5._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[13375,a=>{"use strict";var b=a.i(20486),c=a.i(85198),d=a.i(72637),e=a.i(13376),f=a.i(14015),g=a.i(45783),h=a.i(82977),i=a.i(90259),j=a.i(91638),k=a.i(78725),l=a.i(68557),m=a.i(26248),n=a.i(97494),o=a.i(94851),p=a.i(73008),q=a.i(4837),r=a.i(39747),s=a.i(23834),t=a.i(35133),u=a.i(62384),v=a.i(3030),w=a.i(79914),x=a.i(39042),y=a.i(61875);function z(a){return a?["pwsh","powershell","cmd"]:["sh","bash","zsh"]}let A=()=>"u">typeof navigator&&navigator.platform?.startsWith("Win"),B=["terminal-shell-availability"];function C({projectId:a,open:d,onOpenChange:e,onCreated:f,initialAdapter:g}){let{t:h}=(0,w.useLanguage)(),[i,j]=(0,c.useState)("cli"),[k,l]=(0,c.useState)(g??"claude"),[m,o]=(0,c.useState)(()=>z(A())[0]??"sh"),p=(0,r.useQuery)({queryKey:s.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:x.discoverAdapters,enabled:d}),D=(0,r.useQuery)({queryKey:B,queryFn:x.listTerminalShells,enabled:d}),E=D.data?"win32"===D.data.platform:A(),F=(0,c.useMemo)(()=>z(E),[E]);(0,c.useEffect)(()=>{if(!d)return;let a=D.data,b=a?a.shells.filter(a=>a.available).map(a=>a.shell):null;o(a=>(function(a,b,c){if(!c||0===c.length)return a;let d=new Set(c);return d.has(a)?a:b.find(a=>d.has(a))??c[0]??a})(a,F,b))},[d,D.data,F]);let G=(0,c.useMemo)(()=>{let a=E?[{value:"pwsh",label:"pwsh (PowerShell 7+)"},{value:"powershell",label:"powershell (Windows PowerShell 5.1)"},{value:"cmd",label:"cmd.exe"}]:[{value:"sh",label:h("projects.terminalShellSystem")},{value:"bash",label:"bash"},{value:"zsh",label:"zsh"}],b=D.data;return a.map(a=>void 0===b||b.shells.some(b=>b.shell===a.value&&b.available)?a:{...a,label:a.label+h("projects.terminalShellNotInstalled"),disabled:!0})},[E,h,D.data]),H=(0,c.useMemo)(()=>(p.data?.adapters??[]).filter(a=>a.available&&a.launchEnabled&&a.runtimeModes.includes("terminal")),[p.data?.adapters]),I=(0,y.useOrderedAdapters)(H);(0,c.useEffect)(()=>{if(!d)return;let a=g&&I.some(a=>a.id===g)?g:I[0]?.id;a&&l(a)},[g,I,d]);let J=(0,q.useMutation)({mutationFn:()=>"terminal"===i?(0,x.createSession)({projectId:a,aiTool:"terminal",shell:m}):(0,x.createSession)({projectId:a,aiTool:k}),onSuccess:({session:a})=>{e(!1),f(a)}}),K=p.isLoading,L=p.error??J.error,M=K||0===H.length;return(0,b.jsx)(u.Dialog,{open:d,onOpenChange:e,children:(0,b.jsxs)(u.DialogContent,{className:"sm:max-w-lg",children:[(0,b.jsxs)(u.DialogHeader,{children:[(0,b.jsx)(u.DialogTitle,{children:h("projects.newSession")}),(0,b.jsx)(u.DialogDescription,{children:"terminal"===i?h("projects.launchTerminalDescription"):h("projects.launchSessionDescription")})]}),K?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:h("common.loading")}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex gap-1 rounded-md border border-border/70 p-1",children:[(0,b.jsx)("button",{type:"button",className:`flex-1 rounded px-3 py-1.5 text-sm transition-colors ${"cli"===i?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"}`,onClick:()=>j("cli"),children:h("common.aiTool")}),(0,b.jsx)("button",{type:"button",className:`flex-1 rounded px-3 py-1.5 text-sm transition-colors ${"terminal"===i?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"}`,onClick:()=>j("terminal"),children:h("projects.launchTerminalTab")})]}),"cli"===i?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{htmlFor:"launch-adapter",children:h("common.aiTool")}),(0,b.jsx)(s.AdapterSelect,{id:"launch-adapter",ariaLabel:h("common.aiTool"),className:"h-10 w-full",value:k,onValueChange:l,placeholder:h("common.loading")})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(t.CliBrandChip,{aiTool:k}),(0,b.jsx)("span",{className:"ml-2",children:h("projects.hostEnvironmentHint")})]})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{htmlFor:"launch-shell",children:h("projects.terminalShell")}),(0,b.jsx)("select",{id:"launch-shell",className:"h-10 w-full rounded-md border border-border bg-background px-3 text-sm",value:m,onChange:a=>o(a.target.value),children:G.map(a=>(0,b.jsx)("option",{value:a.value,disabled:a.disabled,children:a.label},a.value))})]})]}),L instanceof Error?(0,b.jsx)("p",{className:"text-sm text-destructive",children:L.message}):null,(0,b.jsxs)(u.DialogFooter,{children:[(0,b.jsx)(n.Button,{type:"button",variant:"outline",onClick:()=>e(!1),children:h("common.cancel")}),(0,b.jsx)(n.Button,{type:"button",disabled:K||"cli"===i&&M||"terminal"===i&&(D.isLoading||!G.some(a=>a.value===m&&!a.disabled))||J.isPending,onClick:()=>J.mutate(),children:J.isPending?h("projects.creating"):h("projects.newSession")})]})]})})}var D=a.i(54604),E=a.i(27291),F=a.i(83164),G=a.i(89738),H=a.i(85564),I=a.i(39465),J=a.i(56390);let K=[({transform:a})=>({...a,y:0})];function L(a,b){a.prefetchQuery({queryKey:["session",b],queryFn:()=>(0,x.getSession)(b),retry:!1}),a.prefetchQuery({queryKey:["session-writer",b],queryFn:()=>(0,F.getSessionWriter)(b),retry:!1})}function M({tab:a,workState:c,active:e,now:f,closeLabel:h,reorderLabel:i,onClose:k,onReorder:n}){let o=(0,E.getCliBrand)(a.aiTool),{language:q}=(0,w.useLanguage)(),r=a.lastPrompt??a.label,s=a.lastPrompt||null===f?"":` \xb7 ${(0,G.formatRelativeTime)(a.updatedAt,f,q)}`,t=(0,m.useQueryClient)(),{attributes:u,listeners:v,setNodeRef:x,setActivatorNodeRef:y,transform:z,transition:A,isDragging:B}=(0,l.useSortable)({id:a.id,data:{groupId:(0,J.sessionTabGroupKey)(a)}});return(0,b.jsxs)("div",{ref:x,"data-session-tab-id":a.id,onPointerDown:a=>{a.target instanceof Element&&a.target.closest("button")||v?.onPointerDown?.(a)},className:(0,I.cn)("select-none",B&&"relative z-10 opacity-80",e?"group flex h-8 max-w-60 shrink-0 items-center gap-2 rounded-t-md border border-b-background border-border bg-background px-2.5 text-left text-xs text-foreground transition-colors duration-150":"group flex h-8 max-w-60 shrink-0 items-center gap-2 rounded-t-md border border-transparent bg-transparent px-2.5 text-left text-xs text-muted-foreground transition-colors duration-150 hover:border-border/60 hover:bg-muted/40 hover:text-foreground"),style:{...e?{boxShadow:`inset 0 2px 0 0 ${o.color}`}:{},transform:z?`translate3d(${z.x}px, ${z.y}px, 0)`:void 0,transition:A??void 0},title:`${r}${a.projectName?` \xb7 ${a.projectName}`:""} \xb7 ${o.label}`,children:[(0,b.jsx)("button",{ref:y,type:"button",className:"shrink-0 cursor-grab touch-none rounded p-0.5 text-muted-foreground/60 hover:text-foreground active:cursor-grabbing",...u,...v,"aria-label":i,title:i,onKeyDown:b=>{if("ArrowLeft"!==b.key&&"ArrowRight"!==b.key)return;b.preventDefault(),b.stopPropagation();let c=(0,J.groupSessionTabs)((0,J.readSessionTabs)()).find(b=>b.id===(0,J.sessionTabGroupKey)(a)),d=c?.tabs.findIndex(b=>b.id===a.id)??-1;if(d<0)return;let e=c?.tabs[d+("ArrowLeft"===b.key?-1:1)];e&&n(a.id,e.id)},children:(0,b.jsx)(g.GripVertical,{className:"size-3"})}),(0,b.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",children:[(0,b.jsx)(O,{tab:a,state:c}),"unknown"!==o.id?(0,b.jsx)(p.CliBrandIcon,{aiTool:a.aiTool,className:"mcode"===o.id?"size-3.5":"size-3"}):(0,b.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:o.color},children:o.shortLabel})]}),(0,b.jsxs)(d.default,{href:`/sessions/${a.id}`,draggable:!1,"aria-current":e?"page":void 0,className:"min-w-0 flex-1 truncate",onMouseEnter:()=>L(t,a.id),children:[r,s?(0,b.jsx)("span",{className:"text-muted-foreground",children:s}):null]}),(0,b.jsx)("button",{type:"button","aria-label":`${h} ${a.label}`,className:"shrink-0 rounded p-0.5 text-muted-foreground opacity-0 transition-opacity duration-150 hover:bg-muted hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100",onClick:a=>{a.stopPropagation(),k()},children:(0,b.jsx)(j.X,{className:"size-3"})})]})}function N({hiddenTabs:a,workStates:c,overflowLabel:d,onNavigate:e}){let f=(0,m.useQueryClient)();return(0,b.jsxs)(o.DropdownMenu,{children:[(0,b.jsx)(o.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"size-7 shrink-0 self-center text-muted-foreground",title:d,"aria-label":`${d} (${a.length})`,children:(0,b.jsx)(h.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(o.DropdownMenuContent,{align:"start",className:"w-72",children:[(0,b.jsx)(o.DropdownMenuLabel,{children:d}),a.map(a=>{let d=(0,E.getCliBrand)(a.aiTool);return(0,b.jsx)(o.DropdownMenuItem,{onSelect:()=>e(a.id),onMouseEnter:()=>L(f,a.id),children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(O,{tab:a,state:c.get(a.id)?.state}),"unknown"!==d.id?(0,b.jsx)(p.CliBrandIcon,{aiTool:a.aiTool,className:"size-3.5 shrink-0"}):null,(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.lastPrompt??a.label}),a.projectName?(0,b.jsx)("span",{className:"shrink-0 truncate text-[10px] text-muted-foreground",children:a.projectName}):null]})},a.id)})]})]})}function O({tab:a,state:c}){let{t:d}=(0,w.useLanguage)(),e="running"===a.status&&"working"===c,f=d("running"!==a.status?"sessions.workInactive":e?"sessions.workWorking":"idle"===c?"sessions.workIdle":"sessions.workUnknown");return(0,b.jsx)("span",{"data-session-work-id":a.id,"data-work-state":"running"===a.status?c??"unknown":"idle",role:"img","aria-label":f,title:f,className:(0,I.cn)("size-1.5 shrink-0 rounded-full",e?"motion-safe:animate-pulse":"opacity-50"),style:{backgroundColor:(0,E.getCliBrand)(a.aiTool).color}})}function P({projectId:a,projectName:d}){let f=(0,e.useRouter)(),{t:g}=(0,w.useLanguage)(),[h,j]=(0,c.useState)(!1),k=`${g("projects.newSession")} \xb7 ${d}`;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",className:"mb-1 size-6 shrink-0 rounded-sm text-muted-foreground hover:text-foreground",title:k,"aria-label":k,onClick:()=>j(!0),children:(0,b.jsx)(i.Plus,{className:"size-3.5"})}),(0,b.jsx)(C,{projectId:a,open:h,onOpenChange:j,onCreated:a=>{(0,J.upsertSessionTab)((0,J.sessionToTab)(a)),(0,J.notifySessionTabsChanged)(),f.push(`/sessions/${a.id}`)}})]})}a.s(["SessionTabs",0,function({activeSessionId:a,trailing:g}){let h=(0,e.useRouter)(),j=(0,e.usePathname)(),{t:m}=(0,w.useLanguage)(),o=function(){let[a,b]=(0,c.useState)(new Map),{data:d,refetch:e}=(0,r.useQuery)({queryKey:["session-work-states"],queryFn:x.getSessionWorkStates,staleTime:1e4,refetchInterval:3e4});(0,c.useEffect)(()=>{let a=()=>{e()},c=a=>{let c=a instanceof CustomEvent?a.detail:void 0;if(c?.type!=="session_work_state_changed")return;let d=c.payload,e=d?.session_id,f=d?.state,g=d?.updated_at;"string"==typeof e&&"number"==typeof g&&Number.isFinite(g)&&("working"===f||"idle"===f||"unknown"===f)&&b(a=>(a.get(e)?.updatedAt??-1)>=g?a:new Map(a).set(e,{sessionId:e,state:f,updatedAt:g}))};return window.addEventListener(D.FORGEBADGER_GATEWAY_EVENT,c),window.addEventListener(D.FORGEBADGER_GATEWAY_CONNECTED,a),()=>{window.removeEventListener(D.FORGEBADGER_GATEWAY_EVENT,c),window.removeEventListener(D.FORGEBADGER_GATEWAY_CONNECTED,a)}},[e]);let f=new Map((d?.states??[]).map(a=>[a.sessionId,a]));for(let[b,c]of a){let a=f.get(b);!a&&d&&d.snapshotAt>=c.updatedAt||(!a||c.updatedAt>a.updatedAt)&&f.set(b,c)}return f}(),[p,q]=(0,c.useState)([]),[s,t]=(0,c.useState)(new Set),[u,v]=(0,c.useState)(null);(0,c.useEffect)(()=>{v(Date.now());let a=window.setInterval(()=>v(Date.now()),6e4);return()=>window.clearInterval(a)},[]);let y=(0,c.useRef)(a),z=(0,c.useRef)(!1),A=(0,c.useRef)(0),B=(0,c.useRef)(null),[C,E]=(0,c.useState)(!1),F=(0,k.useSensors)((0,k.useSensor)(k.PointerSensor,{activationConstraint:{distance:8}})),G=(0,c.useCallback)(()=>{q((0,J.readSessionTabs)()),t((0,J.readCollapsedSessionTabGroups)())},[]);(0,c.useEffect)(()=>(G(),window.addEventListener("storage",G),window.addEventListener("forgebadger-session-tabs-changed",G),()=>{window.removeEventListener("storage",G),window.removeEventListener("forgebadger-session-tabs-changed",G)}),[G]);let I=(0,c.useCallback)((a,b)=>{t((0,J.setSessionTabGroupCollapsed)(a,b)),(0,J.notifySessionTabsChanged)()},[]);(0,c.useEffect)(()=>{let a=a=>{!z.current||!(a.target instanceof Element)||B.current?.contains(a.target)&&a.target.closest("[data-session-tab-id]")&&(a.preventDefault(),a.stopPropagation())};return window.addEventListener("click",a,!0),()=>{window.removeEventListener("click",a,!0),window.clearTimeout(A.current)}},[]);let L=(0,c.useCallback)(()=>{window.clearTimeout(A.current),A.current=window.setTimeout(()=>{z.current=!1},0)},[]);(0,c.useEffect)(()=>{if(y.current===a)return;let b=(0,J.readSessionTabs)().find(b=>b.id===a);b&&(y.current=a,I((0,J.sessionTabGroupKey)(b),!1))},[a,p,I]);let O=(0,c.useCallback)((a,b)=>{q((0,J.reorderSessionTab)(a,b)),(0,J.notifySessionTabsChanged)()},[]),Q=(0,c.useCallback)(({active:a,over:b})=>{L(),b&&a.id!==b.id&&O(String(a.id),String(b.id))},[O,L]);(0,c.useEffect)(()=>{let a=B.current,b=a?.querySelector('[aria-current="page"]')??a?.querySelector('[data-active-group="true"]');b?.scrollIntoView({block:"nearest",inline:"nearest"})},[a,p,s]),(0,c.useEffect)(()=>{let a=B.current;if(!a)return;let b=()=>{E(a.scrollWidth-a.scrollLeft-a.clientWidth>1)},c=b=>{Math.abs(b.deltaY)<=Math.abs(b.deltaX)||(a.scrollLeft+=b.deltaY)};b();let d=new ResizeObserver(b);return d.observe(a),a.addEventListener("scroll",b,{passive:!0}),a.addEventListener("wheel",c,{passive:!0}),()=>{d.disconnect(),a.removeEventListener("scroll",b),a.removeEventListener("wheel",c)}},[p,s]);let R=(0,c.useCallback)(b=>{let c=(0,J.removeSessionTab)(b);if(q(c),b!==a)return;let d=c.find(a=>a.id!==b);h.push(d?`/sessions/${d.id}`:"/sessions")},[a,h]);(0,c.useEffect)(()=>{let a=a=>{let b=a instanceof CustomEvent?a.detail:void 0;if(b?.type!=="session_status_changed")return;let c=b.payload?.session_id,d=b.payload?.new_status;if("string"!=typeof c||"string"!=typeof d)return;let e=(0,J.readSessionTabs)().find(a=>a.id===c);if(e){if("exited"===d){H.toast.info(`${e.label} \xb7 ${m("sessions.sessionExitedTabClosed")}`),R(e.id);return}e.status!==d&&((0,J.upsertSessionTab)({...e,status:d,updatedAt:Date.now()}),(0,J.notifySessionTabsChanged)())}};return window.addEventListener(D.FORGEBADGER_GATEWAY_EVENT,a),()=>window.removeEventListener(D.FORGEBADGER_GATEWAY_EVENT,a)},[R,m]);let{visibleIds:S,hiddenTabs:T}=(0,J.splitSessionTabsByVisibility)(p,a,void 0,s);return(0,b.jsx)(k.DndContext,{sensors:F,collisionDetection:k.closestCenter,modifiers:K,onDragStart:()=>{window.clearTimeout(A.current),z.current=!0},onDragCancel:L,onDragEnd:Q,accessibility:{screenReaderInstructions:{draggable:m("sessions.tabDragInstructions")}},children:(0,b.jsxs)("div",{className:"flex h-10 min-w-0 items-end border-b border-border bg-muted/20 pl-16 pt-1.5 md:pl-2","data-testid":"session-tabs",children:[(0,b.jsx)("div",{ref:B,className:C?"flex min-w-0 flex-1 items-end gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden [mask-image:linear-gradient(to_right,black_calc(100%_-_40px),transparent)]":"flex min-w-0 flex-1 items-end gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:(0,J.groupSessionTabs)(p).map(c=>{let d=c.tabs.filter(a=>S.has(a.id)),e=s.has(c.id),g=(0,J.sessionTabGroupColor)(c.projectName??""),h=c.tabs.find(a=>a.projectId)?.projectId,i=c.projectName??m("sessions.unknownProject"),k=m(e?"sessions.expandTabGroup":"sessions.collapseTabGroup").replace("{project}",i),n=`session-tab-group-${encodeURIComponent(c.id)}`;return(0,b.jsxs)("div",{role:"group","aria-label":i,className:"flex shrink-0 items-end gap-1",children:[(0,b.jsxs)("button",{type:"button",className:"mb-1 inline-flex h-7 max-w-44 shrink-0 items-center gap-1 rounded-md px-2 text-[10px] font-semibold hover:brightness-125 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[active-group=true]:ring-1 data-[active-group=true]:ring-inset data-[active-group=true]:ring-current",style:{backgroundColor:`${g}26`,color:g},title:k,"aria-label":k,"aria-expanded":!e,"aria-controls":n,"data-active-group":c.tabs.some(b=>b.id===a)?"true":void 0,onClick:()=>I(c.id,!e),children:[(0,b.jsx)(f.ChevronRight,{className:e?"size-3 shrink-0":"size-3 shrink-0 rotate-90"}),(0,b.jsx)("span",{className:"truncate",children:i}),(0,b.jsxs)("span",{className:"shrink-0 opacity-70",children:["(",c.tabs.length,")"]})]}),(0,b.jsx)(l.SortableContext,{items:d.map(a=>a.id),strategy:l.horizontalListSortingStrategy,children:(0,b.jsx)("div",{id:n,className:"flex items-end gap-1",children:d.map(c=>{let d=c.id===a||j===`/sessions/${c.id}`;return(0,b.jsx)(M,{tab:c,workState:o.get(c.id)?.state,active:d,now:u,closeLabel:m("sessions.closeTab"),reorderLabel:m("sessions.reorderTab").replace("{session}",c.label),onClose:()=>R(c.id),onReorder:O},c.id)})})}),c.projectName&&h&&(0,b.jsx)(P,{projectId:h,projectName:c.projectName})]},c.id)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1 self-center px-1",children:[T.length>0&&(0,b.jsx)(N,{workStates:o,hiddenTabs:T,overflowLabel:m("sessions.overflowTabs"),onNavigate:a=>{let b=p.find(b=>b.id===a);b&&(I((0,J.sessionTabGroupKey)(b),!1),(0,J.upsertSessionTab)(b),(0,J.notifySessionTabsChanged)()),h.push(`/sessions/${a}`)}}),(0,b.jsx)(n.Button,{asChild:!0,variant:"ghost",size:"icon",className:"size-7 text-muted-foreground",title:m("sessions.openSessionList"),"aria-label":m("sessions.openSessionList"),children:(0,b.jsx)(d.default,{href:"/sessions",children:(0,b.jsx)(i.Plus,{className:"size-3.5"})})}),g]})]})})}],13375)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=packages_web_src_components_session-tabs_tsx_0qnm.9x._.js.map
|