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=[46759,a=>{"use strict";var b=a.i(20486),c=a.i(13376),d=a.i(72637),e=a.i(39747),f=a.i(10339),g=a.i(79914),h=a.i(54588),i=a.i(29331),j=a.i(85198),k=a.i(58382),l=a.i(4837),m=a.i(26248),n=a.i(84889),o=a.i(44935),p=a.i(76770),q=a.i(6145),r=a.i(91167),s=a.i(62803),t=a.i(35485);let u=(0,t.default)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var v=a.i(60584),w=a.i(78234);let x=(0,t.default)("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var y=a.i(82977);let z=(0,t.default)("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var A=a.i(38094),B=a.i(90259),C=a.i(67164),D=a.i(94327),E=a.i(37134),F=a.i(71700),G=a.i(97494),H=a.i(4730),I=a.i(70458),J=a.i(94851),K=a.i(23834),L=a.i(35133),M=a.i(2337);let N=(0,t.default)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var O=a.i(39042);function P(a){return a.slice(0,10)}function Q({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 text-lg font-semibold",children:c})]})}let R=(0,j.forwardRef)(function({projectId:a,templateId:c,credentialMode:d,onPendingChange:e,pendingAction:f,onPendingActionConsumed:h},i){let k=(0,m.useQueryClient)(),{t:n}=(0,g.useLanguage)(),[o,p]=(0,j.useState)([]),[q,r]=(0,j.useState)({}),t=(0,j.useRef)(null),u=null===c,v=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,O.previewConfigSync)(a,c,d)},onSuccess:a=>{p(a.conflicts??[]),r((0,O.defaultConfigConflictDecisions)(a.conflicts??[]))}}),w=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,O.applyConfigSync)(a,q,c,d)},onSuccess:()=>{p([]),r({}),k.invalidateQueries({queryKey:["activities"]})}}),x=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,O.getConfigCompliance)(a,{templateId:c,credentialMode:d})}}),y=(0,l.useMutation)({mutationFn:()=>(0,O.updateProjectTemplate)(a,null),onSuccess:()=>{k.invalidateQueries({queryKey:["project",a]})}});(0,j.useImperativeHandle)(i,()=>({preview:()=>{u||v.mutate()},checkCompliance:()=>{u||x.mutate()}})),(0,j.useEffect)(()=>{p([]),r({})},[c,d]),(0,j.useEffect)(()=>{e?.({preview:v.isPending,compliance:x.isPending})},[e,v.isPending,x.isPending]);let z=v.mutate;if((0,j.useEffect)(()=>{if(!f){t.current=null;return}u||t.current===f||(t.current=f,"preview"===f&&z(),h?.())},[f,u,z,h]),u)return(0,b.jsxs)("p",{className:"rounded-md border border-border/70 bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:n("projects.untrackedConfigTitle")})," · ",n("projects.untrackedConfigDescription")," ",n("projects.untrackedConfigHint")]});let A=o.some(a=>0===a.allowedActions.length);return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-md border border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)("span",{className:"shrink-0 text-sm font-medium",children:n("projects.configSyncTitle")}),(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs text-muted-foreground",children:c})]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>x.mutate(),disabled:x.isPending,children:[(0,b.jsx)(M.ShieldCheck,{className:"size-4"}),x.isPending?n("projects.checkingCompliance"):n("projects.checkCompliance")]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>v.mutate(),disabled:v.isPending,children:[(0,b.jsx)(s.FileCode2,{className:"size-4"}),v.isPending?n("projects.generating"):n("projects.previewConfig")]})]}),(v.data||o.length>0)&&(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsx)(I.CardTitle,{className:"text-base",children:n("projects.configPreview")})}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm text-muted-foreground",children:[(0,b.jsxs)("div",{children:[n("projects.previewFiles"),": ",v.data?.plan.files.length??0]}),(0,b.jsx)("p",{children:n("projects.configPreviewDescription")})]}),o.length>0?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.conflicts")}),(0,b.jsx)("ul",{className:"space-y-1 text-sm text-muted-foreground",children:o.map(a=>(0,b.jsxs)("li",{className:"flex flex-col gap-2 rounded-md border border-border bg-background p-3 md:flex-row md:items-center md:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-foreground",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:"modified"===a.conflictType?"destructive":"secondary",children:a.conflictType})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-xs",children:[a.existingSha256&&(0,b.jsxs)("span",{children:[n("projects.existingHash"),": ",P(a.existingSha256)]}),a.incomingSha256&&(0,b.jsxs)("span",{children:[n("projects.incomingHash"),": ",P(a.incomingSha256)]})]}),a.diffPreview&&a.diffPreview.length>0&&(0,b.jsx)("div",{className:"overflow-hidden rounded-md border border-border bg-muted/40",children:a.diffPreview.map(a=>(0,b.jsxs)("div",{className:"grid gap-0 border-b border-border/60 last:border-b-0 md:grid-cols-[72px_1fr_1fr]",children:[(0,b.jsxs)("div",{className:"bg-background/70 px-2 py-1 font-mono text-[11px] text-muted-foreground",children:["L",a.line]}),(0,b.jsxs)("div",{className:"min-w-0 border-border px-2 py-1 font-mono text-[11px] text-destructive md:border-l",children:[(0,b.jsx)("span",{className:"mr-1 select-none",children:"-"}),a.existing]}),(0,b.jsxs)("div",{className:"min-w-0 border-border px-2 py-1 font-mono text-[11px] text-emerald-600 md:border-l dark:text-emerald-400",children:[(0,b.jsx)("span",{className:"mr-1 select-none",children:"+"}),a.incoming]})]},a.line))})]}),a.allowedActions.length>0?(0,b.jsx)("select",{className:"h-8 rounded-md border border-input bg-background px-2 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:q[a.relativePath]??"skip",onChange:b=>r(c=>({...c,[a.relativePath]:b.target.value})),"aria-label":`${n("projects.conflictDecision")} ${a.relativePath}`,children:a.allowedActions.map(a=>(0,b.jsx)("option",{value:a,children:"overwrite"===a?n("projects.overwrite"):n("projects.skip")},a))}):(0,b.jsx)(H.Badge,{variant:"destructive",children:n("projects.blocked")})]},a.relativePath))})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:n("projects.noConflicts")}),(0,b.jsxs)(G.Button,{onClick:()=>w.mutate(),disabled:w.isPending||A,children:[(0,b.jsx)(s.FileCode2,{className:"mr-2 size-4"}),w.isPending?n("projects.generating"):n("projects.applyConfig")]})]})]}),x.data&&(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center justify-between gap-3 text-base",children:[(0,b.jsx)("span",{children:n("projects.configCompliance")}),(0,b.jsx)(H.Badge,{variant:"compliant"===x.data.compliance.status?"default":"secondary",children:"compliant"===x.data.compliance.status?n("projects.compliant"):n("projects.needsAttention")})]})}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-2 text-sm md:grid-cols-5",children:[(0,b.jsx)(Q,{label:n("projects.totalFiles"),value:x.data.compliance.totalFiles}),(0,b.jsx)(Q,{label:n("projects.missingFiles"),value:x.data.compliance.missingFiles.length}),(0,b.jsx)(Q,{label:n("projects.identicalFiles"),value:x.data.compliance.identicalFiles.length}),(0,b.jsx)(Q,{label:n("projects.staleFiles"),value:x.data.compliance.staleFiles.length}),(0,b.jsx)(Q,{label:n("projects.unsafeFiles"),value:x.data.compliance.unsafeFiles.length})]}),x.data.compliance.requiresDecision.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.requiresDecision")}),(0,b.jsx)("ul",{className:"space-y-1 text-sm text-muted-foreground",children:x.data.compliance.requiresDecision.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>v.mutate(),disabled:v.isPending,children:[(0,b.jsx)(s.FileCode2,{className:"mr-2 size-4"}),n("projects.reviewConfig")]})]})]})]}),v.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:v.error instanceof Error?v.error.message:n("projects.failedGenerateConfig")}),x.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:x.error instanceof Error?x.error.message:n("projects.failedCompliance")}),w.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:w.error instanceof Error?w.error.message:n("projects.failedGenerateConfig")}),y.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y.error instanceof Error?y.error.message:n("projects.failedCompliance")}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{variant:"ghost",size:"sm",className:"text-destructive",onClick:()=>{window.confirm(n("projects.stopTrackingConfirm"))&&y.mutate()},disabled:y.isPending,children:[(0,b.jsx)(N,{className:"mr-2 size-4"}),y.isPending?n("projects.unbinding"):n("projects.stopTrackingTemplate")]})})]})});var S=a.i(85564),T=a.i(16569),U=a.i(62384),V=a.i(55068),W=a.i(3030),X=a.i(12599);let Y=["claude","opencode","codex","kimi"];function Z({projectId:a,open:c,onOpenChange:d,onExtracted:e}){let{t:f}=(0,g.useLanguage)(),[h,i]=(0,j.useState)(""),[k,m]=(0,j.useState)(""),[n,o]=(0,j.useState)("claude"),[p,q]=(0,j.useState)(!0),r=(0,l.useMutation)({mutationFn:()=>(0,O.extractProjectTemplate)(a,{name:h.trim(),...k.trim()?{description:k.trim()}:{},adapter:n,bind:p}),onSuccess:()=>{S.toast.success(f("templates.created")),e?.()}}),s=a=>{r.isPending||(a||(i(""),m(""),o("claude"),q(!0),r.reset()),d(a))},t=h.trim().length>0&&!r.isPending;return(0,b.jsx)(U.Dialog,{open:c,onOpenChange:s,children:(0,b.jsxs)(U.DialogContent,{className:"sm:max-w-lg",children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:f("templates.extractTitle")}),(0,b.jsx)(U.DialogDescription,{children:f("templates.extractDescription")})]}),(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),t&&r.mutate()},children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"extract-template-name",children:f("common.name")}),(0,b.jsx)(V.Input,{id:"extract-template-name",value:h,onChange:a=>i(a.target.value),disabled:r.isPending})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"extract-template-description",children:f("common.description")}),(0,b.jsx)(X.Textarea,{id:"extract-template-description",value:k,onChange:a=>m(a.target.value),rows:3,disabled:r.isPending})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"extract-template-adapter",children:f("templates.adapter")}),(0,b.jsx)("select",{id:"extract-template-adapter","aria-label":f("templates.adapter"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:n,onChange:a=>o(a.target.value),disabled:r.isPending,children:Y.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 text-sm",children:[(0,b.jsx)(T.Checkbox,{checked:p,onCheckedChange:a=>q(!0===a),disabled:r.isPending}),f("templates.extractBind")]}),r.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:r.error instanceof Error?r.error.message:f("templates.extractFailed")}),r.data&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:f("templates.extractedFiles")}),(0,b.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:r.data.extracted.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-mono",children:a.filePath}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.sizeBytes," B"]})]},a.filePath))})]}),r.data.skipped.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:f("templates.skippedFiles")}),(0,b.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:r.data.skipped.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-mono",children:a.path}),(0,b.jsx)("span",{className:"shrink-0",children:a.reason})]},a.path))})]})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:r.isPending,onClick:()=>s(!1),children:f("common.cancel")}),(0,b.jsxs)(G.Button,{type:"submit",disabled:!t,children:[(0,b.jsx)(z,{className:"size-4"}),r.isPending?f("templates.extracting"):f("templates.extract")]})]})]})]})})}var $=a.i(6023),_=a.i(14060),aa=a.i(76310),ab=a.i(39465),ac=a.i(22510),ad=a.i(92019),ae=a.i(91638),af=a.i(802);function ag(a){return a<1024?`${a} B`:a<1048576?`${Math.round(a/1024)} KB`:`${(a/1024/1024).toFixed(1)} MB`}function ah({projectId:a,path:c,enabled:d=!0,variant:f="panel",onClose:h,focusLine:i,className:k}){var n;let p,{t:q}=(0,g.useLanguage)(),r=(0,j.useRef)(null),[s,t]=(0,j.useState)(null),v=(0,e.useQuery)({queryKey:["workspace-context",a,"file",c],queryFn:()=>(0,O.getProjectWorkspaceFile)(a,c),enabled:d&&!!c,retry:!1}),w=v.data,x=(0,m.useQueryClient)(),[y,z]=(0,j.useState)(!1),[B,C]=(0,j.useState)(""),[D,E]=(0,j.useState)(!1);(0,j.useEffect)(()=>{z(!1),C(""),E(!1)},[c]),(0,j.useEffect)(()=>{if(!D)return;let a=setTimeout(()=>E(!1),2500);return()=>clearTimeout(a)},[D]);let F=!!(w&&!w.binary&&!w.truncated),H=y&&B!==(w?.content??""),I=(0,l.useMutation)({mutationFn:()=>(0,O.putProjectWorkspaceFile)(a,c??"",B),onSuccess:()=>{z(!1),E(!0),x.invalidateQueries({queryKey:["workspace-context",a,"file"]})}});(0,j.useEffect)(()=>{if(!i||!w)return void t(null);t(i);let a=setTimeout(()=>{r.current&&(r.current.scrollTop=Math.max(0,(i-5)*20))},60);return()=>clearTimeout(a)},[i,w]);let J=(0,j.useMemo)(()=>w?.content.split("\n")??[],[w?.content]),K=function(a,b){let[c,d]=(0,j.useState)(null);return(0,j.useEffect)(()=>{let c=!1;if(d(null),a&&b)return(0,af.highlightWorkspaceCode)(b,a).then(a=>{c||d(a)}),()=>{c=!0}},[a,b]),c}(w&&!w.binary&&w.content.length>0?w.name:null,w?.content??null);return(0,b.jsxs)("div",{"data-testid":"workspace-file-viewer",className:(0,ab.cn)("flex min-h-0 flex-col overflow-hidden rounded-md border border-border/70 bg-background/70",k),children:[c?(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 border-b border-border/70 px-3 py-2",children:[(0,b.jsx)("nav",{"aria-label":q("projects.workspaceBreadcrumb"),className:"min-w-0",children:(0,b.jsx)("ol",{className:"flex min-w-0 flex-wrap items-center gap-1 font-mono text-xs",children:c.split("/").map((a,c,d)=>{let e=c===d.length-1;return(0,b.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[c>0?(0,b.jsx)("span",{className:"text-muted-foreground/50",children:"/"}):null,(0,b.jsx)("span",{className:(0,ab.cn)("truncate",e?"font-medium text-foreground":"text-muted-foreground"),children:a})]},`${c}-${a}`)})})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[w?(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[ag(w.sizeBytes)," · ",Number.isNaN((p=new Date(n=w.updatedAt)).getTime())?n:p.toLocaleString()]}):null,D&&!y?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-500",children:[(0,b.jsx)(ac.Check,{className:"size-3.5"}),q("projects.workspaceFileSaved")]}):null,y?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(G.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>z(!1),disabled:I.isPending,children:q("projects.workspaceCancelEdit")}),(0,b.jsxs)(G.Button,{size:"sm",className:"h-7 px-2 text-xs",disabled:!H||I.isPending,onClick:()=>I.mutate(),children:[I.isPending?(0,b.jsx)(ad.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(ac.Check,{className:"size-3.5"}),q(I.isPending?"projects.workspaceSavingFile":"projects.workspaceSaveFile")]})]}):w?(0,b.jsxs)(G.Button,{variant:"ghost",size:"sm",className:"h-7 gap-1 px-2 text-xs",onClick:()=>{F&&w&&(C(w.content),z(!0))},disabled:!F,title:q(w.truncated?"projects.workspaceFileTooLargeToEdit":"projects.workspaceEditFile"),"aria-label":q("projects.workspaceEditFile"),children:[(0,b.jsx)(A.Pencil,{className:"size-3.5"}),q("projects.workspaceEditFile")]}):null,"sheet"===f&&h?(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:h,"aria-label":q("projects.workspaceCloseViewer"),title:q("projects.workspaceCloseViewer"),children:(0,b.jsx)(ae.X,{className:"size-4"})}):null]})]}):null,w?.truncated&&!w.binary?(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-amber-500/30 bg-amber-500/10 px-3 py-1.5 text-[11px] text-amber-400",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),q("projects.workspaceFileTruncated")]}):null,y?(0,b.jsxs)("div",{className:"flex min-h-[240px] min-w-0 flex-1 flex-col overflow-hidden",children:[I.isError?(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-[11px] text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),I.error instanceof Error?I.error.message:q("projects.workspaceFileSaveFailed")]}):null,(0,b.jsx)("textarea",{"data-testid":"workspace-file-editor",className:"min-h-0 flex-1 resize-none overflow-auto bg-transparent px-3 py-3 font-mono text-xs leading-5 text-foreground outline-none [scrollbar-width:thin]",value:B,spellCheck:!1,wrap:"off","aria-label":q("projects.workspaceEditFile"),onChange:a=>C(a.target.value),onKeyDown:a=>{"Escape"===a.key?(a.preventDefault(),z(!1)):(a.metaKey||a.ctrlKey)&&"s"===a.key.toLowerCase()&&(a.preventDefault(),H&&!I.isPending&&I.mutate())}})]}):c?v.isLoading?(0,b.jsx)("div",{className:"min-h-[240px] flex-1 space-y-2 p-4","aria-hidden":"true",children:[100,88,94,70,82,60,90,48].map((a,c)=>(0,b.jsx)("div",{className:"h-3.5 animate-pulse rounded bg-muted/50",style:{width:`${a}%`}},c))}):v.isError?(0,b.jsx)(aj,{destructive:!0,message:v.error instanceof Error?v.error.message:q("projects.workspaceFileLoadFailed")}):w?.binary?(0,b.jsx)(aj,{message:q("projects.workspaceBinaryFile")}):w&&0!==w.content.length?(0,b.jsx)("div",{ref:r,className:"min-h-[240px] min-w-0 flex-1 overflow-auto [scrollbar-width:thin]",children:(0,b.jsxs)("div",{className:"flex min-w-max items-stretch",children:[(0,b.jsx)("div",{"aria-label":q("projects.workspaceLineNumbers"),className:"sticky left-0 shrink-0 select-none border-r border-border/70 bg-muted/40 px-2 py-3 text-right font-mono text-xs leading-5 text-muted-foreground/60",children:J.map((a,c)=>(0,b.jsx)("div",{className:(0,ab.cn)(c+1===s&&"bg-brand/15 text-brand"),children:c+1},c))}),(0,b.jsx)("div",{className:"flex-1 px-3 py-3 font-mono text-xs leading-5 text-foreground",children:J.map((a,c)=>{let d=K?.[c];return(0,b.jsx)("div",{className:(0,ab.cn)("whitespace-pre",c+1===s&&"-mx-3 rounded-sm bg-brand/10 px-3 ring-1 ring-brand/40"),children:d?(0,b.jsx)(ai,{tokens:d}):a.length>0?a:" "},c)})})]})}):(0,b.jsx)(aj,{message:q("projects.workspaceFileEmpty")}):(0,b.jsxs)("div",{className:"flex min-h-[240px] flex-1 flex-col items-center justify-center gap-3 px-6 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)(u,{className:"size-5"})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:q("projects.workspaceSelectFile")})]})]})}function ai({tokens:a}){return(0,b.jsx)(b.Fragment,{children:a.map((a,c)=>{let d=(0,af.tokenFontStyle)(a.fontStyle);return(0,b.jsx)("span",{style:{color:a.color,fontStyle:d.italic?"italic":void 0,fontWeight:d.bold?600:void 0,textDecoration:d.underline?"underline":void 0},children:a.content},c)})})}function aj({message:a,destructive:c=!1}){return(0,b.jsxs)("div",{className:(0,ab.cn)("flex min-h-[240px] flex-1 items-center justify-center gap-2 px-4 py-10 text-center text-xs text-muted-foreground",c&&"text-destructive"),children:[c?(0,b.jsx)(o.AlertTriangle,{className:"size-4"}):null,(0,b.jsx)("span",{children:a})]})}var ak=a.i(14015);let al=(0,t.default)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var am=a.i(60420),an=a.i(48459);function ao({projectId:a,enabled:c=!0,selectedPath:d=null,onSelectFile:f,compact:h=!1,className:i}){let{t:k}=(0,g.useLanguage)(),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)(()=>new Set),p=(0,e.useQuery)({queryKey:["workspace-context",a,"tree"],queryFn:()=>(0,O.getProjectWorkspaceTree)(a,{depth:1,limit:500}),enabled:c,retry:!1}),q=l.trim().length>0,r=(0,e.useQuery)({queryKey:["workspace-context",a,"search"],queryFn:()=>(0,O.getProjectWorkspaceTree)(a,{depth:3,limit:500}),enabled:c&&q,retry:!1}),s=(0,j.useMemo)(()=>q?function(a,b,c=100){let d=b.trim().toLowerCase();return d?(function a(b){return b.flatMap(b=>"directory"===b.kind?a(b.children??[]):"file"===b.kind?[b]:[])})(a).filter(a=>a.name.toLowerCase().includes(d)||a.path.toLowerCase().includes(d)).slice(0,c):[]}(r.data?.entries??[],l):[],[q,r.data?.entries,l]);return(0,b.jsxs)("div",{className:(0,ab.cn)("flex min-h-0 flex-col gap-2",i),children:[(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(an.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(V.Input,{value:l,onChange:a=>m(a.target.value),placeholder:k("projects.workspaceSearchPlaceholder"),"aria-label":k("projects.workspaceSearchPlaceholder"),className:"h-8 pl-8 text-xs"})]}),q?r.isLoading?(0,b.jsx)(av,{compact:h}):r.isError?(0,b.jsx)(aw,{destructive:!0,message:r.error instanceof Error?r.error.message:k("projects.workspaceLoadFailed")}):0===s.length?(0,b.jsx)(aw,{message:k("projects.workspaceSearchNoResults")}):(0,b.jsxs)("div",{className:"min-w-max",children:[s.map((a,c)=>(0,b.jsx)(au,{entry:a,index:c,compact:h,selected:d===a.path,onSelect:()=>{var b;return b=a.path,void(o(a=>{let c=new Set(a);return(function(a){let b=a.split("/"),c=[];for(let a=1;a<b.length;a+=1)c.push(b.slice(0,a).join("/"));return c})(b).forEach(a=>c.add(a)),c}),m(""),f(b))}},a.path)),r.data?.truncated?(0,b.jsx)(ax,{}):null]}):p.isLoading?(0,b.jsx)(av,{compact:h}):p.isError?(0,b.jsx)(aw,{destructive:!0,message:p.error instanceof Error?p.error.message:k("projects.workspaceLoadFailed")}):0===(p.data?.entries??[]).length?(0,b.jsx)(aw,{message:k("projects.workspaceEmpty")}):(0,b.jsxs)("div",{className:"min-w-max",children:[(0,b.jsx)(ap,{entries:p.data?.entries??[],depth:0,ctx:{projectId:a,enabled:c,compact:h,expandedPaths:n,selectedPath:d,onToggleDirectory:a=>{o(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},onSelectFile:f}}),p.data?.truncated?(0,b.jsx)(ax,{}):null]})]})}function ap({entries:a,depth:c,ctx:d}){return(0,b.jsx)(b.Fragment,{children:a.map((a,e)=>(0,b.jsx)(aq,{entry:a,depth:c,index:e,ctx:d},a.path))})}function aq({entry:a,depth:c,index:d,ctx:e}){return"directory"===a.kind?(0,b.jsx)(ar,{entry:a,depth:c,index:d,ctx:e}):"file"===a.kind?(0,b.jsx)(as,{entry:a,depth:c,index:d,ctx:e}):(0,b.jsx)(at,{entry:a,depth:c,index:d,compact:e.compact})}function ar({entry:a,depth:c,index:d,ctx:f}){let{t:h}=(0,g.useLanguage)(),i=f.expandedPaths.has(a.path),j=(0,e.useQuery)({queryKey:["workspace-context",f.projectId,"tree",a.path],queryFn:()=>(0,O.getProjectWorkspaceTree)(f.projectId,{path:a.path,depth:1}),enabled:f.enabled&&i,retry:!1}),k=j.data?.entries??[];return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f.onToggleDirectory(a.path),"aria-expanded":i,title:a.path,className:(0,ab.cn)("forgebadger-animate-in flex w-full items-center gap-1 rounded pr-2 text-left transition-colors hover:bg-muted/40",f.compact?"h-7 text-[11px]":"h-8 text-xs"),style:{paddingLeft:8+14*c,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(ak.ChevronRight,{className:(0,ab.cn)("size-3.5 shrink-0 text-muted-foreground transition-transform duration-200",i&&"rotate-90")}),i?(0,b.jsx)(am.FolderOpen,{className:"size-3.5 shrink-0 text-brand/80"}):(0,b.jsx)(al,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name}),j.isFetching?(0,b.jsx)(ad.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"}):null]}),(0,b.jsx)("div",{className:"forgebadger-collapse-grid","data-open":i,children:(0,b.jsx)("div",{children:(0,b.jsx)("div",{className:"border-l border-border/50",style:{marginLeft:8+14*c+6},children:i&&j.isLoading?(0,b.jsx)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground",children:h("projects.workspaceLoading")}):i&&j.isError?(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 text-xs text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),h("projects.workspaceLoadFailed")]}):j.data?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ap,{entries:k,depth:c+1,ctx:f}),j.data.truncated?(0,b.jsx)(ax,{}):null]}):null})})})]})}function as({entry:a,depth:c,index:d,ctx:e}){let{t:f}=(0,g.useLanguage)(),h=e.selectedPath===a.path;return(0,b.jsxs)("button",{type:"button",onClick:()=>e.onSelectFile(a.path),"aria-current":h?"true":void 0,title:e.compact?f("projects.workspaceOpenViewer"):a.path,className:(0,ab.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded pr-2 text-left transition-colors hover:bg-muted/40",e.compact?"h-7 text-[11px]":"h-8 text-xs",h?"bg-brand/10 text-brand":"text-foreground/90"),style:{paddingLeft:8+14*c+18,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(u,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name}),void 0!==a.sizeBytes?(0,b.jsx)("span",{className:"shrink-0 pr-1 text-[10px] text-muted-foreground",children:ag(a.sizeBytes)}):null]})}function at({entry:a,depth:c,index:d,compact:e}){return(0,b.jsxs)("div",{title:a.path,className:(0,ab.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded pr-2 text-muted-foreground/70",e?"h-7 text-[11px]":"h-8 text-xs"),style:{paddingLeft:8+14*c+18,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(u,{className:"size-3.5 shrink-0 opacity-50"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name})]})}function au({entry:a,index:c,compact:d,selected:e,onSelect:f}){let g=a.path.lastIndexOf("/"),h=g>=0?a.path.slice(0,g+1):"";return(0,b.jsxs)("button",{type:"button",onClick:f,title:a.path,className:(0,ab.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded px-2 text-left transition-colors hover:bg-muted/40",d?"h-7 text-[11px]":"h-8 text-xs",e&&"bg-brand/10 text-brand"),style:{animationDelay:`${20*Math.min(c,10)}ms`},children:[(0,b.jsx)(u,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex-1 whitespace-nowrap font-mono",children:[h?(0,b.jsx)("span",{className:"text-muted-foreground",children:h}):null,(0,b.jsx)("span",{className:"text-foreground",children:a.name})]}),void 0!==a.sizeBytes?(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:ag(a.sizeBytes)}):null]})}function av({compact:a}){return(0,b.jsx)("div",{className:"space-y-1 px-1 py-1","aria-hidden":"true",children:[92,76,84,64,80,56].map((c,d)=>(0,b.jsx)("div",{className:(0,ab.cn)("animate-pulse rounded bg-muted/50",a?"h-6":"h-7"),style:{width:`${c}%`}},d))})}function aw({message:a,destructive:c=!1}){return(0,b.jsxs)("div",{className:(0,ab.cn)("flex min-h-20 items-center justify-center gap-2 rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground",c&&"border-destructive/50 text-destructive"),children:[c?(0,b.jsx)(o.AlertTriangle,{className:"size-4"}):null,(0,b.jsx)("span",{children:a})]})}function ax(){let{t:a}=(0,g.useLanguage)();return(0,b.jsx)("p",{className:"px-2 py-1.5 text-[11px] text-muted-foreground",children:a("projects.workspaceTreeTruncated")})}function ay({projectId:a,className:c,enabled:d=!0}){let{t:f}=(0,g.useLanguage)(),h=(0,m.useQueryClient)(),[i,k]=(0,j.useState)(null),[l,n]=(0,j.useState)(!1),o=!!a&&d;(0,j.useEffect)(()=>{k(null),n(!1)},[a]);let p=(0,e.useQuery)({queryKey:["workspace-context",a,"tree"],queryFn:()=>(0,O.getProjectWorkspaceTree)(a,{depth:1,limit:500}),enabled:o,retry:!1});return(0,b.jsxs)(I.Card,{"data-testid":"workspace-context-panel",className:(0,ab.cn)("forgebadger-animate-in gap-0 overflow-hidden py-0",c),children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-start justify-between gap-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold leading-none",children:f("projects.workspace")}),(0,b.jsx)("p",{className:"break-all font-mono text-[11px] text-muted-foreground",children:p.data?.rootPath??f("projects.workspaceRootPending")})]}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7 shrink-0",onClick:()=>h.invalidateQueries({queryKey:["workspace-context",a]}),disabled:!o,"aria-label":f("projects.workspaceRefresh"),title:f("projects.workspaceRefresh"),children:(0,b.jsx)(_.RefreshCw,{className:(0,ab.cn)("size-4",p.isFetching&&"animate-spin")})})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-2 px-3 pb-3",children:[p.data?.truncated?(0,b.jsx)(H.Badge,{variant:"secondary",className:"w-fit",children:f("projects.workspaceTruncated")}):null,a?(0,b.jsx)("div",{className:"max-h-72 overflow-auto rounded-md border border-border/70 bg-background/60 p-1 [scrollbar-width:thin]",children:(0,b.jsx)(ao,{projectId:a,enabled:o,compact:!0,selectedPath:i,onSelectFile:a=>{k(a),n(!0)}})}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground",children:f("projects.workspaceNoProject")})]}),(0,b.jsx)(aa.Sheet,{open:l,onOpenChange:n,children:(0,b.jsxs)(aa.SheetContent,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-2xl",children:[(0,b.jsx)(aa.SheetHeader,{className:"sr-only",children:(0,b.jsx)(aa.SheetTitle,{children:i??f("projects.workspace")})}),a?(0,b.jsx)(ah,{variant:"sheet",projectId:a,path:i,enabled:l,onClose:()=>n(!1),className:"h-full flex-1 rounded-none border-0"}):null]})})]})}let az=(0,t.default)("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);function aA({projectId:a,enabled:c=!0,className:d}){let{t:e}=(0,g.useLanguage)(),f=(0,m.useQueryClient)(),[h,i]=(0,j.useState)(null);return((0,j.useEffect)(()=>{i(null)},[a]),a)?(0,b.jsxs)("div",{"data-testid":"workspace-explorer",className:(0,ab.cn)("grid gap-4 lg:grid-cols-[300px_minmax(0,1fr)]",d),children:[(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in gap-0 overflow-hidden py-0",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-center justify-between gap-2 px-4 py-3",children:[(0,b.jsxs)("h2",{className:"flex items-center gap-2 text-sm font-semibold leading-none",children:[(0,b.jsx)(az,{className:"size-4 text-brand"}),e("projects.workspace")]}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>f.invalidateQueries({queryKey:["workspace-context",a]}),"aria-label":e("projects.workspaceRefresh"),title:e("projects.workspaceRefresh"),children:(0,b.jsx)(_.RefreshCw,{className:"size-4"})})]}),(0,b.jsx)(I.CardContent,{className:"px-2 py-2",children:(0,b.jsx)("div",{className:"max-h-[320px] overflow-auto [scrollbar-width:thin] lg:max-h-[calc(100vh-15rem)]",children:(0,b.jsx)(ao,{projectId:a,enabled:c,selectedPath:h,onSelectFile:i})})})]}),(0,b.jsx)(I.Card,{className:"forgebadger-animate-in gap-0 overflow-hidden py-0",style:{animationDelay:"50ms"},children:(0,b.jsx)(I.CardContent,{className:"p-2",children:(0,b.jsx)(ah,{variant:"panel",projectId:a,path:h,enabled:c,className:"h-[420px] lg:h-[calc(100vh-15.5rem)]"})})})]}):(0,b.jsx)(I.Card,{className:(0,ab.cn)("forgebadger-animate-in",d),children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:e("projects.workspaceNoProject")})})}var aB=a.i(85874);let aC=(0,t.default)("GitBranchPlus",[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]);function aD({projectId:a,enabled:c}){let{t:d}=(0,g.useLanguage)(),f=(0,m.useQueryClient)(),[h,i]=(0,j.useState)(null),[k,n]=(0,j.useState)(!1),[o,p]=(0,j.useState)(""),{data:q,error:r,isFetching:s,refetch:t}=(0,e.useQuery)({queryKey:["project-git-branches",a],queryFn:()=>(0,O.getProjectGitBranches)(a),enabled:c,retry:!1}),u=()=>Promise.all([f.invalidateQueries({queryKey:["project-git-branches",a]}),f.invalidateQueries({queryKey:["project-git-changes",a]}),f.invalidateQueries({queryKey:["project",a]})]),v=(0,l.useMutation)({mutationFn:b=>(0,O.checkoutProjectGitBranch)(a,{branch:b}),onSuccess:async a=>{S.toast.success(d("projects.gitSwitchSuccess").replace("{branch}",a.current)),i(null),await u()},onError:a=>{S.toast.error(a instanceof Error?a.message:d("projects.gitSwitchFailed"))}}),w=(0,l.useMutation)({mutationFn:b=>(0,O.checkoutProjectGitBranch)(a,{branch:b,create:!0}),onSuccess:async a=>{S.toast.success(d("projects.gitCreateSuccess").replace("{branch}",a.current)),n(!1),p(""),await u()},onError:a=>{S.toast.error(a instanceof Error?a.message:d("projects.gitSwitchFailed"))}}),x=q?.workingTree,y=void 0!==x&&!x.clean;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"git-branches-panel",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(aB.GitBranch,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"shrink-0",children:d("projects.gitBranches")}),q?.current&&(0,b.jsx)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 font-mono text-[10px] text-muted-foreground",title:q.current,children:q.current})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[q?.isGitRepo&&(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-6 text-muted-foreground",onClick:()=>n(!0),"aria-label":d("projects.gitNewBranch"),title:d("projects.gitNewBranch"),children:(0,b.jsx)(aC,{className:"size-3.5"})}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-6 text-muted-foreground",onClick:()=>void t(),"aria-label":d("sessions.gitRefresh"),title:d("sessions.gitRefresh"),children:(0,b.jsx)(_.RefreshCw,{className:(0,ab.cn)("size-3",s&&"animate-spin")})})]})]}),r?(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:d("projects.gitLoadFailed")}):q?q.isGitRepo?0===q.branches.length?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("projects.gitNoBranches")}):(0,b.jsx)("ul",{className:"mt-2 divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:q.branches.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",className:(0,ab.cn)("flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",a.isCurrent?"bg-muted/40":"hover:bg-muted/30"),disabled:a.isCurrent,onClick:()=>i(a.name),children:[(0,b.jsx)(ac.Check,{className:(0,ab.cn)("size-3.5 shrink-0",a.isCurrent?"text-brand":"text-transparent")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:a.name}),a.isCurrent&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:d("projects.gitBranchCurrent")})]})},a.name))}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("sessions.gitNotRepo")}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("common.loading")}),(0,b.jsx)(U.Dialog,{open:null!==h,onOpenChange:a=>{a||v.isPending||i(null)},children:(0,b.jsxs)(U.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsxs)(U.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(aB.GitBranch,{className:"size-5 shrink-0"}),d("projects.gitSwitchConfirmTitle")]}),(0,b.jsx)(U.DialogDescription,{children:d("projects.gitSwitchConfirmDesc").replace("{branch}",h??"")})]}),y&&x&&(0,b.jsxs)("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-3 text-xs text-destructive",children:[(0,b.jsx)("p",{children:d("projects.gitWorkingTreeDirty").replace("{count}",String(x.changedCount))}),x.sample.length>0&&(0,b.jsx)("ul",{className:"mt-1 list-inside list-disc font-mono text-[10px]",children:x.sample.map(a=>(0,b.jsx)("li",{className:"truncate",children:a},a))})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:v.isPending,onClick:()=>i(null),children:d("common.cancel")}),(0,b.jsx)(G.Button,{type:"button",disabled:y||v.isPending||null===h,onClick:()=>h&&v.mutate(h),children:d("projects.gitSwitchConfirmTitle")})]})]})}),(0,b.jsx)(U.Dialog,{open:k,onOpenChange:a=>{a||w.isPending||(n(!1),p(""))},children:(0,b.jsxs)(U.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsxs)(U.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(aC,{className:"size-5 shrink-0"}),d("projects.gitNewBranchTitle")]}),(0,b.jsx)(U.DialogDescription,{children:d("projects.gitNewBranchDesc")})]}),(0,b.jsx)(V.Input,{value:o,onChange:a=>p(a.target.value),placeholder:d("projects.gitBranchNamePlaceholder"),className:"font-mono text-sm",autoFocus:!0}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:w.isPending,onClick:()=>{n(!1),p("")},children:d("common.cancel")}),(0,b.jsx)(G.Button,{type:"button",disabled:w.isPending||0===o.trim().length,onClick:()=>w.mutate(o.trim()),children:d("projects.gitNewBranch")})]})]})})]})}var aE=a.i(6391),aF=a.i(10917),aG=a.i(25538),aH=a.i(26421),aI=a.i(89738);let aJ=new Set(["json","toml","yaml","markdown","javascript"]);function aK(a,b,c){let d=[],e=0;for(let f of a.matchAll(b)){let b=f.index??0;b>e&&d.push({text:a.slice(e,b)}),d.push({text:f[0],className:c(f)}),e=b+f[0].length}return e<a.length&&d.push({text:a.slice(e)}),d.length>0?d:[{text:a}]}var aL=a.i(90409),aM=a.i(14027);let aN=/(`[^`\n]+`)|(\*\*[^*\n]+\*\*)|(\*[^*\n]+\*)|(\[[^\]]+\]\([^)\s]+\))/gu,aO=a=>{try{let b=new URL(a,"https://example.invalid").protocol;if("http:"===b||"https:"===b||"mailto:"===b)return a}catch{}};function aP(a,c){return(function(a){let b=[],c=0;for(let d of a.matchAll(aN)){let e=d.index??0;e>c&&b.push({text:a.slice(c,e),kind:"text"});let[f,g,h,i,j]=d;if(g)b.push({text:g.slice(1,-1),kind:"code"});else if(h)b.push({text:h.slice(2,-2),kind:"bold"});else if(i)b.push({text:i.slice(1,-1),kind:"italic"});else if(j){let a=j.match(/\[([^\]]+)\]\(([^)\s]+)\)/u);a?b.push({text:a[1],kind:"link",href:aO(a[2])}):b.push({text:f,kind:"text"})}c=e+f.length}return c<a.length&&b.push({text:a.slice(c),kind:"text"}),b})(a).map((a,d)=>{let e=`${c}-${d}`;return"code"===a.kind?(0,b.jsx)("code",{className:"rounded bg-muted/80 px-1 py-0.5 font-mono text-[0.85em] text-foreground",children:a.text},e):"bold"===a.kind?(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a.text},e):"italic"===a.kind?(0,b.jsx)("em",{className:"italic",children:a.text},e):"link"===a.kind&&a.href?(0,b.jsx)("a",{href:a.href,target:"_blank",rel:"noreferrer noopener",className:"text-brand underline underline-offset-2 hover:text-brand/80",children:a.text},e):(0,b.jsx)(j.Fragment,{children:a.text},e)})}let aQ=/^```([^\s`]*)\s*$/u;function aR({content:a,className:c}){let d=function(a){let b=[],c=a.replace(/\r\n/gu,"\n").split("\n");for(let a=0;a<c.length;a+=1){let d=c[a],e=d.match(aQ);if(e){let d=(e[1]??"").trim(),f=[];for(a+=1;a<c.length&&!c[a].startsWith("```");)f.push(c[a]),a+=1;b.push({type:"codeblock",text:f.join("\n"),language:d});continue}let f=d.match(/^(#{1,6})\s+(.+)$/u);if(f){b.push({type:"heading",text:f[2],level:f[1].length});continue}if(/^\s*(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(d)){b.push({type:"hr",text:""});continue}if(/^\s*>\s?/u.test(d)){b.push({type:"quote",text:d.replace(/^\s*>\s?/u,"")});continue}if(/^\s*(?:[-*]|\d+\.)\s+/u.test(d)){b.push({type:"list",text:d.replace(/^\s*(?:[-*]|\d+\.)\s+/u,"")});continue}""!==d.trim()&&b.push({type:"paragraph",text:d})}return b}(a),e=[],f=[],g=()=>{f.length>0&&(e.push({type:"paragraph",text:f.join(" ")}),f=[])};for(let a of d){if("paragraph"===a.type){f.push(a.text);continue}g(),e.push(a)}return g(),(0,b.jsx)("div",{className:c??"space-y-3 text-sm leading-relaxed text-foreground/90",children:e.map((a,c)=>{let d=`md-${c}`;switch(a.type){case"heading":{let c=Math.min(a.level??1,6),e=["font-semibold text-foreground",1===c?"text-xl":"",2===c?"text-lg":"",3===c?"text-base":"",c>=4?"text-sm":""].join(" ");return(0,b.jsx)("div",{className:e,role:"heading","aria-level":c,children:aP(a.text,d)},d)}case"codeblock":return(0,b.jsx)(aS,{text:a.text,language:a.language??""},d);case"list":return(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"•"}),(0,b.jsx)("span",{children:aP(a.text,d)})]},d);case"quote":return(0,b.jsx)("blockquote",{className:"border-l-2 border-border/70 pl-3 text-muted-foreground",children:aP(a.text,d)},d);case"hr":return(0,b.jsx)("hr",{className:"border-border/70"},d);default:return(0,b.jsx)("p",{className:"my-0",children:aP(a.text,d)},d)}})})}function aS({text:a,language:c}){let[d,e]=(0,j.useState)(!1),f=(0,j.useCallback)(async()=>{if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(a),e(!0),window.setTimeout(()=>e(!1),1500)}catch{}},[a]);return(0,b.jsxs)("div",{className:"overflow-hidden rounded-md border border-border/70 bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border/60 bg-muted/60 px-3 py-1.5 text-[11px] uppercase tracking-wide text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-mono normal-case tracking-normal text-foreground/80",children:c||"code"}),(0,b.jsxs)("button",{type:"button",onClick:()=>void f(),"aria-label":d?"Copied":"Copy code",className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-background hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:[d?(0,b.jsx)(ac.Check,{className:"size-3"}):(0,b.jsx)(aM.Copy,{className:"size-3"}),(0,b.jsx)("span",{children:d?"Copied":"Copy"})]})]}),(0,b.jsx)("pre",{className:"overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:(0,b.jsx)("code",{children:a})})]})}let aT=(0,k.default)(async()=>{},{loadableGenerated:{modules:[25825]},ssr:!1}),aU=(0,k.default)(async()=>{},{loadableGenerated:{modules:[90839]},ssr:!1}),aV=["sessions","git","files","graph","project-manager","skills","config","activity"];function aW({taskAuthority:a}){let f=(0,c.useParams)(),h=(0,c.useRouter)(),i=(0,c.useSearchParams)(),k=(0,m.useQueryClient)(),{t:n}=(0,g.useLanguage)(),r=f.id,[t,u]=(0,j.useState)(()=>a2("collaboration-settings"===i.get("tab")?"project-manager":i.get("tab"))??"project-manager"),[v,x]=(0,j.useState)(""),[A,C]=(0,j.useState)(""),[M,N]=(0,j.useState)(""),[P,Q]=(0,j.useState)(null),[T,U]=(0,j.useState)(!1),V=(0,j.useRef)(null),{data:W,isLoading:X}=(0,e.useQuery)({queryKey:["project",r],queryFn:()=>(0,O.getProject)(r),enabled:!!r}),{data:Y}=(0,e.useQuery)({queryKey:["sessions",{projectId:r}],queryFn:()=>(0,O.listSessions)({projectId:r}),enabled:!!r}),{data:_}=(0,e.useQuery)({queryKey:["project-manager",r,"task-packets",{limit:50}],queryFn:()=>(0,O.listProjectManagerTaskPackets)(r,{limit:50}),enabled:!!r&&"sessions"===t,retry:!1}),{data:aa}=(0,e.useQuery)({queryKey:["activities",{projectId:r}],queryFn:()=>(0,O.listActivities)({projectId:r}),enabled:!!r&&"activity"===t}),{data:ac}=(0,e.useQuery)({queryKey:["skills"],queryFn:O.listSkills}),{data:ad}=(0,e.useQuery)({queryKey:["project-skills",r],queryFn:()=>(0,O.listProjectSkills)(r),enabled:!!r}),{data:ae,isLoading:af}=(0,e.useQuery)({queryKey:K.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:O.discoverAdapters}),{data:ag,isLoading:ah}=(0,e.useQuery)({queryKey:["dependencies"],queryFn:O.getDependencies}),{data:ai,isLoading:aj}=(0,e.useQuery)({queryKey:["project-ai-config",r,v],queryFn:()=>(0,O.getProjectAiConfig)(r,v||void 0),enabled:!!r&&!!v}),{data:ak,isLoading:al}=(0,e.useQuery)({queryKey:["project-ai-config-global",r,v],queryFn:()=>(0,O.getGlobalAiConfig)(r,v||void 0),enabled:!!r&&!!v}),am=(0,l.useMutation)({mutationFn:()=>(0,O.deleteProject)(r),onSuccess:()=>{k.invalidateQueries({queryKey:["projects"]}),h.push("/projects")}}),an=(0,l.useMutation)({mutationFn:()=>(0,O.createSession)({projectId:r,aiTool:v}),onSuccess:({session:a})=>{k.invalidateQueries({queryKey:["sessions",{projectId:r}]}),h.push(`/sessions/${a.id}`)},onError:a=>{S.toast.error(a instanceof Error?a.message:n("projects.failedCreateSession"))}}),ao=(0,l.useMutation)({mutationFn:({skillId:a,enabled:b})=>(0,O.setProjectSkill)(r,a,b),onSuccess:()=>{k.invalidateQueries({queryKey:["project-skills",r]})}}),ap=(0,l.useMutation)({mutationFn:()=>(0,O.updateProjectAiConfigFile)(r,A,M,v||void 0),onSuccess:a=>{k.setQueryData(["project-ai-config",r,v],a),k.invalidateQueries({queryKey:["activities"]})}}),aq=W?.project,ar=(0,j.useMemo)(()=>Y?.sessions??[],[Y?.sessions]),as=(0,j.useMemo)(()=>aa?.activities??[],[aa?.activities]),at=ac?.skills??[],au=ad?.skills??[],av=(0,j.useMemo)(()=>new Map(au.map(a=>[a.skillId,a])),[au]),aw=(0,j.useMemo)(()=>new Set(au.filter(a=>a.isEnabled).map(a=>a.skillId)),[au]),ax=aq?.templateId??null,az=!!aq&&null===aq.templateId,aB=ae?.adapters??[],aC=ag?.terminalRuntime,aI=(0,aL.getTerminalRuntimeSetupGuidance)(aC?.mode,aC?.supported),aJ=(0,j.useMemo)(()=>aB.filter(O.isAdapterLaunchable),[aB]),aK=aB.find(a=>a.id===v),aM=!!aK&&(0,O.isAdapterLaunchable)(aK),aN=ai?.files.find(a=>a.relativePath===A),aO=af||!v||!aM,aP=["failed","needs_review"].includes(i.get("configStatus")??""),aQ=a3(i.get("workItemId")),aR=ar.filter(a=>"running"===a.status).length,aS=aw.size;(0,j.useEffect)(()=>{let a=a2("collaboration-settings"===i.get("tab")?"project-manager":i.get("tab"));a&&a!==t&&u(a)},[t,i]);let aV=a=>{let b=a2(a);if(!b)return;u(b);let c=new URLSearchParams(i.toString());"sessions"===b?c.delete("tab"):c.set("tab",b),"project-manager"!==b&&c.delete("workItemId");let d=c.toString();h.replace(d?`/projects/${encodeURIComponent(r)}?${d}`:`/projects/${encodeURIComponent(r)}`,{scroll:!1})};return(0,j.useEffect)(()=>{if(!ae?.adapters)return;let a=(0,O.chooseDefaultRuntimeAdapter)(ae.adapters,v);x(b=>b===(a??"")?b:a??"")},[ae?.adapters,v]),(0,j.useEffect)(()=>{let a=ai?.files??[];if(0===a.length)return;let b=a.find(a=>a.exists&&"instructions"===a.role)??a[0];if(!A||!a.some(a=>a.relativePath===A)){let a=b?.relativePath??"";C(b=>b===a?b:a)}},[ai?.files,A]),(0,j.useEffect)(()=>{let a=aN?.content??"";N(b=>b===a?b:a)},[aN?.content,aN?.relativePath]),(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-4 p-6",children:[X?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:n("projects.loadingOne")})}):aq?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2 forgebadger-animate-in",children:[(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"-ml-2 size-8 shrink-0 text-muted-foreground hover:text-foreground","aria-label":n("projects.back"),onClick:()=>h.push("/projects"),children:(0,b.jsx)(p.ArrowLeft,{className:"size-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)("h1",{className:"truncate text-lg font-semibold tracking-tight",children:aq.name}),aq.status&&(0,b.jsx)(H.Badge,{variant:"outline",className:"shrink-0",children:aq.status}),(0,b.jsx)("span",{className:"hidden min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground sm:inline",title:aq.path??aq.rootPath,children:aq.path??aq.rootPath})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(K.AdapterSelect,{id:"runtime-adapter",ariaLabel:n("projects.selectRuntimeCli"),value:v||"",onValueChange:x,disabled:af||0===aB.length,size:"sm",className:"h-8 w-52",placeholder:af?n("projects.loadingRuntimeCli"):n("projects.selectRuntimeCli")}),(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>an.mutate(),disabled:aO||an.isPending,children:[(0,b.jsx)(B.Plus,{className:"size-4"}),an.isPending?n("projects.creating"):n("projects.newSession")]}),(0,b.jsxs)(J.DropdownMenu,{children:[(0,b.jsx)(J.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground","aria-label":n("projects.moreActions"),children:(0,b.jsx)(y.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(J.DropdownMenuContent,{align:"end",children:[(0,b.jsx)(J.DropdownMenuItem,{asChild:!0,children:(0,b.jsxs)(d.default,{href:`/history?projectId=${aq.id}`,children:[(0,b.jsx)(w.History,{className:"size-4"}),n("nav.history")]})}),(0,b.jsxs)(J.DropdownMenuItem,{variant:"destructive",disabled:am.isPending,onSelect:()=>{window.confirm(n("projects.deleteConfirm"))&&am.mutate()},children:[(0,b.jsx)(E.Trash2,{className:"size-4"}),am.isPending?n("projects.deleting"):n("projects.deleteRecord")]})]})]})]})]}),0===aJ.length&&!af&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/40 bg-destructive/10 p-3 forgebadger-animate-in",children:[(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-xs font-medium text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5"}),!ah&&aI.blocked?n(aI.titleKey):n("projects.noLaunchableRuntimeCli")]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:!ah&&aI.blocked?n(aI.descriptionKey):n("projects.runtimeCliRecoveryDescription")}),!ah&&aI.blocked&&(0,b.jsx)($.RuntimeSetupCommands,{guidance:aI}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,b.jsx)(G.Button,{asChild:!0,variant:"outline",size:"sm",children:(0,b.jsx)(d.default,{href:"/settings",children:n("projects.openSettings")})})})]}),aP&&!az&&(0,b.jsx)(I.Card,{className:"forgebadger-animate-in border-amber-500/40 bg-amber-500/10",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 md:flex-row md:items-center md:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-amber-500/15 text-amber-400",children:(0,b.jsx)(o.AlertTriangle,{className:"size-4"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.configNeedsReviewTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:n("projects.configNeedsReviewDescription")})]})]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>{aV("config"),Q("preview")},children:[(0,b.jsx)(s.FileCode2,{className:"size-4"}),n("projects.reviewConfig")]})]})}),am.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:am.error instanceof Error?am.error.message:n("projects.deleteFailed")}),(0,b.jsxs)(aG.Tabs,{value:t,onValueChange:aV,children:[(0,b.jsx)("div",{className:"-mx-1 overflow-x-auto px-1 [scrollbar-width:thin]",children:(0,b.jsxs)(aG.TabsList,{className:"min-w-max",children:[(0,b.jsxs)(aG.TabsTrigger,{value:"sessions",children:[n("nav.sessions"),ar.length>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none text-muted-foreground tabular-nums",children:ar.length})]}),(0,b.jsx)(aG.TabsTrigger,{value:"git",children:n("projects.gitTab")}),(0,b.jsx)(aG.TabsTrigger,{value:"files",children:n("projects.filesTab")}),(0,b.jsx)(aG.TabsTrigger,{value:"graph",children:n("projects.graphTab")}),(0,b.jsx)(aG.TabsTrigger,{value:"project-manager",children:n("projects.devTasks")}),(0,b.jsxs)(aG.TabsTrigger,{value:"skills",children:[n("nav.skills"),aS>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none text-muted-foreground tabular-nums",children:aS})]}),(0,b.jsx)(aG.TabsTrigger,{value:"config",children:n("projects.aiConfig")}),(0,b.jsx)(aG.TabsTrigger,{value:"activity",children:n("sessions.activity")})]})}),(0,b.jsxs)(aG.TabsContent,{value:"sessions",className:"mt-4",children:[(0,b.jsx)("p",{className:"mb-3 text-xs text-muted-foreground",children:n("projects.sessionsSummary").replace("{total}",String(ar.length)).replace("{running}",String(aR))}),(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_360px]",children:[0===ar.length?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(D.TerminalSquare,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.noSessions")}),(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>an.mutate(),disabled:aO||an.isPending,children:[(0,b.jsx)(B.Plus,{className:"size-4"}),an.isPending?n("projects.creating"):n("projects.newSession")]})]})}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:ar.map((a,c)=>{let e=(0,aH.findSessionTaskPacket)(_?.taskPackets??[],a.id);return(0,b.jsxs)(d.default,{href:`/sessions/${a.id}`,className:"group flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40",style:{animationDelay:`${40*c}ms`},children:[(0,b.jsx)(aY,{status:a.status}),(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:a.name||a.runtimeSessionName||a.id})}),e&&(0,b.jsx)(aX,{packet:e}),(0,b.jsx)(L.CliBrandChip,{aiTool:a.aiTool}),(0,b.jsx)(aZ,{status:a.status}),(0,b.jsx)(q.ArrowUpRight,{className:"size-4 shrink-0 text-muted-foreground/30 transition-colors group-hover:text-brand"})]},a.id)})}),(0,b.jsx)(ay,{projectId:r,enabled:"sessions"===t})]})]}),(0,b.jsx)(aG.TabsContent,{value:"git",className:"mt-4",children:(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-2",children:[(0,b.jsx)(aD,{projectId:r,enabled:"git"===t}),(0,b.jsx)(aE.GitChangesPanel,{projectId:r})]})}),(0,b.jsx)(aG.TabsContent,{value:"files",className:"mt-4",children:(0,b.jsx)(aA,{projectId:r,enabled:"files"===t})}),(0,b.jsx)(aG.TabsContent,{value:"graph",className:"mt-4",children:(0,b.jsx)(aT,{projectId:r,enabled:"graph"===t})}),(0,b.jsx)(aG.TabsContent,{value:"project-manager",className:"mt-4",children:(0,b.jsx)(aU,{projectId:r,authority:a,enabled:"project-manager"===t,selectedWorkItemId:aQ})}),(0,b.jsx)(aG.TabsContent,{value:"skills",className:"mt-4",children:0===at.length?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(F.Wrench,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:n("skills.emptyTitle")})]})}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:at.map((a,c)=>{var d;let e=av.get(a.id),f=aw.has(a.id);return(0,b.jsxs)("div",{role:"group","aria-label":a.name,className:"flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40",style:{animationDelay:`${40*c}ms`},children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:a.name}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:(d=e?.selectionState,n("project_enabled"===d?"projects.skillProjectEnabled":"project_disabled"===d?"projects.skillProjectDisabled":"inherited_disabled"===d?"projects.skillInheritedDisabled":"projects.skillInheritedEnabled"))})]}),(0,b.jsx)(H.Badge,{variant:"outline",className:"shrink-0",children:a.source}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(aF.Switch,{checked:f,onCheckedChange:b=>ao.mutate({skillId:a.id,enabled:b}),disabled:ao.isPending}),(0,b.jsx)("span",{className:(0,ab.cn)("w-10 shrink-0 text-xs",f?"text-emerald-400":"text-muted-foreground"),children:f?n("common.enabled"):n("common.disabled")})]})]},a.id)})})}),(0,b.jsxs)(aG.TabsContent,{value:"config",className:"mt-4 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>U(!0),children:[(0,b.jsx)(z,{className:"mr-2 size-4"}),n("templates.extract")]})}),(0,b.jsx)(R,{ref:V,projectId:r,templateId:ax,credentialMode:"host_environment",pendingAction:P,onPendingActionConsumed:()=>Q(null)}),(0,b.jsx)(a$,{projectConfig:ai,globalConfig:ak,selectedPath:A,draft:M,projectLoading:aj,globalLoading:al,isSaving:ap.isPending,error:ap.error,onSelectedPathChange:C,onDraftChange:N,onSave:()=>ap.mutate()})]}),(0,b.jsx)(aG.TabsContent,{value:"activity",className:"mt-4",children:(0,b.jsx)(a1,{activities:as})})]})]}):(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:n("projects.notFound")})}),(0,b.jsx)(Z,{projectId:r,open:T,onOpenChange:U,onExtracted:()=>{k.invalidateQueries({queryKey:["project",r]}),k.invalidateQueries({queryKey:["templates"]})}})]})}function aX({packet:a}){let d=(0,c.useRouter)(),{t:e}=(0,g.useLanguage)(),f=(0,aH.sessionTaskPacketProjectManagerHref)(a),h=a=>{a.preventDefault(),a.stopPropagation(),d.push(f)};return(0,b.jsxs)("span",{role:"button",tabIndex:0,"aria-label":e("projects.projectManagerLinkedSession"),title:a.title,className:"hidden max-w-44 items-center gap-1 rounded-md border border-border/70 px-1.5 py-0.5 text-xs text-brand hover:underline sm:inline-flex",onClick:h,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&h(a)},children:[(0,b.jsx)(x,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.title})]})}function aY({status:a}){let c=(0,aI.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,ab.cn)("size-2 shrink-0 rounded-full","running"===c?"animate-pulse bg-emerald-400":"error"===c?"bg-red-400":"bg-muted-foreground/40")})}function aZ({status:a}){let{t:c}=(0,g.useLanguage)(),d=(0,aI.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,ab.cn)("shrink-0 text-xs","running"===d?"text-emerald-400":"error"===d?"text-red-400":"text-muted-foreground"),children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"sessions.stopped")})}function a$({projectConfig:a,globalConfig:c,selectedPath:d,draft:e,projectLoading:f,globalLoading:h,isSaving:i,error:k,onSelectedPathChange:l,onDraftChange:m,onSave:n}){let{t:o}=(0,g.useLanguage)(),p=a?.files??[],q=c?.files??[],s=p.find(a=>a.relativePath===d),t=s?.fileType==="markdown",[w,x]=(0,j.useState)(!1);return((0,j.useEffect)(()=>{x(!1)},[d,t]),f)?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:o("common.loading")})}):(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[300px_minmax(0,1fr)]",children:[(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(I.CardHeader,{className:"pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(u,{className:"size-4 text-brand"}),o("projects.projectConfigFiles")]})}),(0,b.jsx)(I.CardContent,{className:"space-y-2",children:0===p.length?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("projects.noConfigFiles")}):p.map(a=>(0,b.jsxs)("button",{type:"button",className:(0,ab.cn)("flex w-full items-center justify-between gap-3 rounded-md border px-3 py-2 text-left text-sm transition-colors",a.relativePath===d?"border-brand/50 bg-brand/10 text-foreground":"border-border/70 bg-background hover:bg-muted/40"),onClick:()=>l(a.relativePath),children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:a.exists?"secondary":"outline",children:a.exists?o("projects.configExists"):o("projects.configMissing")})]},a.relativePath))})]}),(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",style:{animationDelay:"50ms"},children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row flex-wrap items-center justify-between gap-3 pb-3",children:[(0,b.jsx)(I.CardTitle,{className:"min-w-0 truncate font-mono text-sm font-semibold",children:s?.relativePath??o("projects.selectConfigFile")}),s&&t&&!w?(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>x(!0),disabled:!s,children:[(0,b.jsx)(A.Pencil,{className:"size-4"}),o("projects.editFile")]}):(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[s&&t&&w&&(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>x(!1),disabled:!s,children:[(0,b.jsx)(r.Eye,{className:"size-4"}),o("projects.previewFile")]}),(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:n,disabled:!s||i,children:[(0,b.jsx)(C.Save,{className:"size-4"}),i?o("projects.savingConfig"):o("common.save")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[s&&t&&!w?(0,b.jsx)(aR,{content:e,className:"max-h-[560px] min-h-[200px] space-y-3 overflow-y-auto rounded-md border border-border/70 bg-background p-4 text-sm leading-relaxed text-foreground/90"}):(0,b.jsx)(a_,{content:e,fileType:s?.fileType??"text",disabled:!s,ariaLabel:s?.relativePath??o("projects.selectConfigFile"),onChange:m}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:s&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.Badge,{variant:"outline",children:s.fileType}),(0,b.jsx)(H.Badge,{variant:"outline",children:s.role}),(0,b.jsxs)("span",{children:[s.sizeBytes," bytes"]})]})}),!!k&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:k instanceof Error?k.message:o("projects.failedSaveConfig")})]})]}),(0,b.jsx)("div",{className:"grid gap-4 xl:col-span-2",children:(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",style:{animationDelay:"100ms"},children:[(0,b.jsx)(I.CardHeader,{className:"pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(v.Globe2,{className:"size-4 text-brand"}),o("projects.globalConfigReadOnly")]})}),(0,b.jsx)(I.CardContent,{className:"space-y-2",children:h?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("common.loading")}):0===q.length?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("projects.noGlobalConfig")}):q.map(a=>(0,b.jsx)(a0,{file:a},a.relativePath))})]})})]})}function a_({content:a,fileType:c,disabled:d,ariaLabel:e,onChange:f,readOnly:g=!1,minHeightClassName:h="min-h-[560px]"}){let i=(0,j.useRef)(null),k=(0,j.useRef)(null),l=aJ.has(c),m=(0,j.useMemo)(()=>l?"json"===c?aK(a,/("(?:\\.|[^"\\])*"(?=\s*:))|("(?:\\.|[^"\\])*")|(\btrue\b|\bfalse\b|\bnull\b)|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/gu,a=>a[1]?"text-sky-300":a[2]?"text-emerald-300":a[3]?"text-purple-300":"text-amber-300"):"toml"===c||"yaml"===c?aK(a,/(^\s*[A-Za-z0-9_.-]+(?=\s*[:=]))|("(?:\\.|[^"\\])*")|(\btrue\b|\bfalse\b)|(-?\d+(?:\.\d+)?)/gmu,a=>a[1]?"text-sky-300":a[2]?"text-emerald-300":a[3]?"text-purple-300":"text-amber-300"):"markdown"===c?aK(a,/(^#{1,6}\s.*$)|(`[^`]+`)|(\[[^\]]+\]\([^)]+\))/gmu,a=>a[1]?"text-sky-300":a[2]?"text-amber-300":"text-emerald-300"):"javascript"===c?aK(a,/\b(const|let|var|function|return|if|else|import|export|from|await|async)\b|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/gu,a=>a[1]?"text-purple-300":"text-emerald-300"):[{text:a}]:[{text:a}],[a,c,l]),n=(0,j.useMemo)(()=>Array.from({length:Math.max(a.split("\n").length,1)},(a,b)=>b+1),[a]);return(0,b.jsxs)("div",{className:"overflow-hidden rounded-lg border border-input bg-[#05070a] shadow-inner shadow-black/30",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-slate-800 bg-slate-950/80 px-3 py-2",children:[(0,b.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-[0.18em] text-slate-400",children:g?"Readonly config":"Live syntax editor"}),(0,b.jsx)(H.Badge,{variant:"outline",className:"border-slate-700 bg-slate-900/80 text-[10px] text-slate-300",children:l?c:"plain"})]}),(0,b.jsxs)("div",{className:(0,ab.cn)("grid grid-cols-[3.5rem_minmax(0,1fr)]",h),children:[(0,b.jsx)("div",{ref:k,"aria-hidden":"true",className:"overflow-hidden border-r border-slate-800 bg-slate-950/70 px-2 py-4 text-right font-mono text-[11px] leading-6 text-slate-600 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:n.map(a=>(0,b.jsx)("div",{children:a},a))}),(0,b.jsxs)("div",{className:"relative min-w-0",children:[(0,b.jsx)("pre",{ref:i,"aria-hidden":!g,onScroll:g?function(a){let b=k.current;b&&(b.scrollTop=a.currentTarget.scrollTop)}:void 0,className:(0,ab.cn)("inset-0 whitespace-pre p-4 font-mono text-[13px] leading-6 text-slate-200",g?"h-full max-h-[420px] overflow-auto":"pointer-events-none absolute overflow-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"),children:m.map((a,c)=>(0,b.jsx)("span",{className:a.className,children:a.text},`${c}-${a.text}`))}),!g&&(0,b.jsx)("textarea",{className:"absolute inset-0 h-full w-full resize-none overflow-auto border-0 bg-transparent p-4 font-mono text-[13px] leading-6 text-transparent caret-sky-300 outline-none selection:bg-sky-500/30 focus-visible:ring-[3px] focus-visible:ring-ring/40 disabled:cursor-not-allowed disabled:opacity-60",value:a,onChange:a=>f?.(a.target.value),onScroll:function(a){let b=i.current,c=k.current;b&&(b.scrollTop=a.currentTarget.scrollTop,b.scrollLeft=a.currentTarget.scrollLeft),c&&(c.scrollTop=a.currentTarget.scrollTop)},spellCheck:!1,disabled:d,"aria-label":e,wrap:"off"})]})]})]})}function a0({file:a}){let{t:c}=(0,g.useLanguage)();return(0,b.jsxs)("details",{className:"rounded-md border border-border/70 bg-background px-3 py-2 text-sm",children:[(0,b.jsxs)("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:a.exists?"secondary":"outline",children:c(a.exists?"projects.configExists":"projects.configMissing")})]}),a.content?(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(a_,{content:a.content,fileType:a.fileType,disabled:!0,readOnly:!0,ariaLabel:a.relativePath,minHeightClassName:"min-h-[260px]"})}):(0,b.jsx)("pre",{className:"mt-2 max-h-96 overflow-auto whitespace-pre-wrap rounded bg-muted p-3 text-xs leading-5 text-muted-foreground",children:c("projects.noGlobalConfigContent")})]})}function a1({activities:a}){let{t:c}=(0,g.useLanguage)();return(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in overflow-hidden",children:[(0,b.jsx)(I.CardHeader,{className:"flex flex-row flex-wrap items-center justify-between gap-3 pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(n.Activity,{className:"size-4 text-brand"}),c("sessions.activity")]})}),0===a.length?(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(n.Activity,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:c("sessions.noActivity")})]}):(0,b.jsx)("div",{className:"divide-y divide-border/70 border-t border-border/70",children:a.map(a=>{var c;let e;return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-muted/40",children:[(0,b.jsx)("span",{className:(0,ab.cn)("mt-1.5 size-2 shrink-0 rounded-full","error"===a.status?"bg-red-400":"bg-emerald-400")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:"error"===a.status?"destructive":"outline",className:"w-fit",children:a.type}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:Number.isNaN((e=new Date(c=a.createdAt)).getTime())?c:e.toLocaleString()})]}),(0,b.jsx)("p",{className:"break-words text-sm text-foreground",children:a.message}),a.sessionId&&(0,b.jsx)(d.default,{href:`/sessions/${a.sessionId}`,className:"inline-block break-all font-mono text-xs text-muted-foreground transition-colors hover:text-brand",children:a.sessionId})]})]},a.id)})})]})}function a2(a){let b=a3(a);return b&&aV.includes(b)?b:null}function a3(a){return a?.trim()||null}let a4=(0,j.createContext)({canEdit:!1,canManage:!1,legacySessions:!1});function a5(){return(0,j.useContext)(a4)}let a6=["planned","running","waiting_for_review","blocked","completed","cancelled"],a7=(0,t.default)("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);var a8=a.i(13662);function a9({goal:a,t:c,draft:d,error:e,isEditing:f,isSaving:g,onCancel:h,onDraftChange:i,onEdit:j,onSave:k}){let{canEdit:l,canManage:m,legacySessions:n}=a5(),o=m??l;return f&&o?(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(a7,{className:"size-4 text-brand"}),c("projects.projectManagerGoal")]})}),(0,b.jsxs)(I.CardContent,{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-goal-summary",children:c("projects.projectManagerGoalSummary")}),(0,b.jsx)(V.Input,{id:"project-manager-goal-summary",value:d.summary,"aria-invalid":!!e&&0===d.summary.trim().length,disabled:g,onChange:a=>i({...d,summary:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-goal-constraints",children:c("projects.projectManagerConstraints")}),(0,b.jsx)(X.Textarea,{id:"project-manager-goal-constraints",value:d.constraintsText,disabled:g,placeholder:c("projects.projectManagerTextListHint"),onChange:a=>i({...d,constraintsText:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerTextListHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-goal-acceptance",children:c("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(X.Textarea,{id:"project-manager-goal-acceptance",value:d.acceptanceCriteriaText,disabled:g,placeholder:c("projects.projectManagerTextListHint"),onChange:a=>i({...d,acceptanceCriteriaText:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerTextListHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-goal-status",children:c("projects.projectManagerGoalStatus")}),(0,b.jsx)(V.Input,{id:"project-manager-goal-status",value:d.status,disabled:g,onChange:a=>i({...d,status:a.target.value})})]}),e&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e}),(0,b.jsxs)("div",{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:h,disabled:g,children:c("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:k,disabled:g,children:c("projects.projectManagerSaveGoal")})]})]})]}):a?(0,b.jsx)(I.Card,{children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-3 lg:flex-row lg:items-center lg:gap-4",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",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)(a7,{className:"size-4"})}),(0,b.jsx)("p",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:a.summary,children:a.summary})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:"secondary",children:(0,a8.statusLabel)(a.status,c)}),(0,b.jsxs)("span",{className:"rounded border border-border/70 bg-muted/20 px-2 py-0.5 text-xs text-muted-foreground",children:[c("projects.projectManagerConstraints")," · ",a.constraints.length]}),(0,b.jsxs)("span",{className:"rounded border border-border/70 bg-muted/20 px-2 py-0.5 text-xs text-muted-foreground",children:[c("projects.projectManagerAcceptanceCriteria")," · ",a.acceptanceCriteria.length]}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:[c("projects.projectManagerUpdated"),": ",(0,a8.formatTimestamp)(a.updatedAt)]}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!o,onClick:j,children:c("projects.projectManagerEditGoal")})]})]})}):(0,b.jsx)(I.Card,{children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",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)(a7,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:c("projects.projectManagerNoGoalTitle")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerNoGoalBody")})]})]}),(0,b.jsx)(G.Button,{size:"sm",className:"shrink-0 bg-brand text-brand-foreground hover:bg-brand/90",disabled:!o,onClick:j,children:c("projects.projectManagerEditGoal")})]})})}var ba=a.i(78725),bb=a.i(31692);let bc=(0,t.default)("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var bd=a.i(73867);function be({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-background/40 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs tabular-nums",children:c})]})}function bf({title:a,body:c,icon:d}){return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 py-10 text-center",children:[d?(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(d,{className:"size-5"})}):null,(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:c})]})]})}function bg({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 font-mono text-sm tabular-nums",children:c})]})}let bh="backlog",bi="lane:";function bj(a){return"string"==typeof a&&a.startsWith(bi)?a.slice(bi.length):null}function bk({isFetching:a,links:c,onViewDetails:d,projectId:e,stages:f,t:g,taskPackets:h,workItems:i}){let{canEdit:k,canManage:n,legacySessions:o}=a5(),p=(0,m.useQueryClient)(),[q,r]=(0,j.useState)(!1),[s,t]=(0,j.useState)({name:"",description:""}),[u,v]=(0,j.useState)(null),[w,x]=(0,j.useState)(null),[y,z]=(0,j.useState)(""),[A,C]=(0,j.useState)(null),[D,E]=(0,j.useState)(null),[F,H]=(0,j.useState)(null),[J,K]=(0,j.useState)(null),[L,M]=(0,j.useState)(null),[N,P]=(0,j.useState)(null),[Q,R]=(0,j.useState)(null),S=(0,j.useRef)(null),T=(0,ba.useSensors)((0,ba.useSensor)(ba.PointerSensor,{activationConstraint:{distance:6}}),(0,ba.useSensor)(ba.KeyboardSensor));(0,j.useEffect)(()=>()=>{null!==S.current&&window.clearTimeout(S.current)},[]);let V=async()=>{await p.invalidateQueries({queryKey:["project-manager",e]})},W=a=>(0,a8.projectManagerMutationMessage)(a,g("projects.projectManagerStageMutationError")),X=(0,l.useMutation)({mutationFn:a=>(0,O.createProjectManagerStage)(e,a),onSuccess:async()=>{v(null),r(!1),t({name:"",description:""}),await V()},onError:a=>v(W(a))}),Y=(0,l.useMutation)({mutationFn:()=>(0,O.seedProjectManagerStageTemplate)(e),onSuccess:async()=>{K(null),await V()},onError:a=>K(W(a))}),Z=(0,l.useMutation)({mutationFn:({name:a,stageId:b})=>(0,O.updateProjectManagerStage)(e,b,{name:a}),onSuccess:async()=>{C(null),x(null),await V()},onError:a=>C(W(a))}),$=(0,l.useMutation)({mutationFn:a=>(0,O.deleteProjectManagerStage)(e,a),onSuccess:async()=>{H(null),E(null),await V()},onError:a=>H(W(a))}),aa=(0,l.useMutation)({mutationFn:a=>(0,O.reorderProjectManagerStages)(e,a),onSuccess:async()=>{K(null),await V()},onError:a=>K(W(a))}),ab=(0,l.useMutation)({mutationFn:({stageId:a,workItemId:b})=>(0,O.updateProjectManagerWorkItem)(e,b,{stageId:a,expectedRevision:i.find(a=>a.id===b)?.revision}),onSuccess:async(a,b)=>{K(null),M(b.stageId??bh),null!==S.current&&window.clearTimeout(S.current),S.current=window.setTimeout(()=>M(null),1200),await V()},onError:a=>K(W(a))}),ac=(0,j.useMemo)(()=>{let a=new Map;for(let b of h)b.sessionLink&&a.set(b.workItemId,b.sessionLink);return a},[h]),ad=(0,j.useMemo)(()=>{let a=new Map,b=new Map;for(let d of c)a.set(d.blockedWorkItemId,(a.get(d.blockedWorkItemId)??0)+1),b.set(d.blockerWorkItemId,(b.get(d.blockerWorkItemId)??0)+1);return{blockedBy:a,blocking:b}},[c]),ae=!(n??k)||X.isPending||Y.isPending||aa.isPending,af=(a,b)=>{if(!(n??k))return;let c=f.map(a=>a.id),d=c.indexOf(a.id),e=d+b;if(d<0||e<0||e>=c.length)return;let g=[...c],h=g[d],i=g[e];void 0!==h&&void 0!==i&&(g[d]=i,g[e]=h,K(null),aa.mutate(g))},ag=(a,b)=>{k&&(K(null),ab.mutate({stageId:b,workItemId:a.id}))},ah=N?i.find(a=>a.id===N)??null:null,ai=()=>{P(null),R(null)};return(0,b.jsxs)(I.Card,{"data-testid":"project-manager-stages-card",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(bc,{className:"size-4 text-brand"}),g("projects.projectManagerPipelineTitle"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:f.length}),a&&(0,b.jsx)(_.RefreshCw,{className:"size-3 animate-spin text-muted-foreground"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("projects.projectManagerPipelineDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[0===f.length&&(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>{K(null),Y.mutate()},disabled:ae,children:[(0,b.jsx)(bd.Sparkles,{className:"mr-2 size-4"}),g("projects.projectManagerStageSeedTemplate")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>{v(null),t({name:"",description:""}),r(!0)},disabled:ae,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),g("projects.projectManagerStageCreate")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[J&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:J}),0===f.length?(0,b.jsx)(bf,{title:g("projects.projectManagerStageEmptyTitle"),body:g("projects.projectManagerStageEmptyBody"),icon:bc}):(0,b.jsxs)(ba.DndContext,{sensors:T,onDragStart:a=>{P(String(a.active.id)),R(null)},onDragOver:a=>{R(bj(a.over?.id))},onDragEnd:a=>{let b=bj(a.over?.id),c=i.find(b=>b.id===String(a.active.id))??null;if(ai(),!b||!c)return;let d=b===bh?null:b;d!==c.stageId&&ag(c,d)},onDragCancel:ai,children:[(0,b.jsxs)("div",{className:"flex items-stretch gap-2 overflow-x-auto pb-1",children:[(0,b.jsx)(bl,{dependencyCounts:ad,highlighted:L===bh||Q===bh,items:i.filter(a=>null===a.stageId),movePending:!k||ab.isPending,onMoveWorkItem:ag,onViewDetails:d,sessionByWorkItemId:ac,stages:f,t:g,title:g("projects.projectManagerStageBacklog")}),f.map((a,c)=>(0,b.jsxs)(j.Fragment,{children:[(0,b.jsx)(ak.ChevronRight,{className:"mt-8 size-4 shrink-0 self-start text-muted-foreground/50","aria-hidden":!0}),(0,b.jsx)(bl,{dependencyCounts:ad,highlighted:L===a.id||Q===a.id,items:i.filter(b=>b.stageId===a.id),movePending:!k||ab.isPending,onDelete:()=>{(n??k)&&(H(null),E(a))},onMove:c>0?()=>af(a,-1):void 0,onMoveBack:c<f.length-1?()=>af(a,1):void 0,onMoveWorkItem:ag,onRename:()=>{(n??k)&&(C(null),z(a.name),x(a))},onViewDetails:d,sessionByWorkItemId:ac,stage:a,stages:f,t:g,title:a.name})]},a.id))]}),(0,b.jsx)(ba.DragOverlay,{dropAnimation:null,children:ah?(0,b.jsx)(bn,{item:ah,t:g}):null})]})]}),(0,b.jsx)(bo,{description:s.description,error:u,isSaving:X.isPending,name:s.name,onDescriptionChange:a=>t(b=>({...b,description:a})),onNameChange:a=>t(b=>({...b,name:a})),onOpenChange:a=>{a||(r(!1),v(null))},onSave:()=>{let a=s.name.trim();if(!a)return void v(g("projects.projectManagerStageNameRequired"));v(null);let b=s.description.trim();X.mutate({name:a,...b?{description:b}:{}})},open:q,t:g,title:g("projects.projectManagerStageCreate")}),(0,b.jsx)(bo,{description:"",error:A,isSaving:Z.isPending,name:y,onNameChange:z,onOpenChange:a=>{a||(x(null),C(null))},onSave:()=>{if(!w)return;let a=y.trim();a?(C(null),Z.mutate({name:a,stageId:w.id})):C(g("projects.projectManagerStageNameRequired"))},open:!!w,t:g,title:g("projects.projectManagerStageRename")}),(0,b.jsx)(U.Dialog,{open:!!D,onOpenChange:a=>{a||(E(null),H(null))},children:(0,b.jsxs)(U.DialogContent,{children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:g("projects.projectManagerStageDelete")}),(0,b.jsx)(U.DialogDescription,{children:g("projects.projectManagerStageDeleteConfirm")})]}),D&&(0,b.jsx)("p",{className:"text-sm font-medium",children:D.name}),F&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:F}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>E(null),disabled:$.isPending,children:g("common.cancel")}),(0,b.jsx)(G.Button,{variant:"destructive",onClick:()=>D&&$.mutate(D.id),disabled:$.isPending,children:g("common.delete")})]})]})})]})}function bl({dependencyCounts:a,highlighted:c,items:d,movePending:e,onDelete:f,onMove:g,onMoveBack:h,onMoveWorkItem:i,onRename:j,onViewDetails:k,sessionByWorkItemId:l,stage:m,stages:n,t:o,title:q}){var r;let{canManage:s,canEdit:t}=a5(),u=m?m.id:bh,{setNodeRef:v}=(0,ba.useDroppable)({id:`${bi}${u}`});return(0,b.jsxs)("section",{ref:v,className:(0,ab.cn)("flex w-72 shrink-0 flex-col rounded-md border border-border/70 bg-background/40",c&&"forgebadger-lane-drop-highlight"),"data-testid":m?`project-manager-stage-lane-${m.id}`:"project-manager-stage-lane-backlog",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border/70 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:(0,ab.cn)("size-2 shrink-0 rounded-full",(r=m?.status)?"active"===r?"bg-brand forgebadger-pulse-dot":"completed"===r?"bg-emerald-500":"bg-muted-foreground/40":"bg-muted-foreground/60"),"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:q}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d.length}),m&&"active"!==m.status&&(0,b.jsx)(H.Badge,{variant:"outline",children:(0,a8.stageStatusLabel)(m.status,o)})]}),m&&(j||f)&&(0,b.jsxs)(J.DropdownMenu,{children:[(0,b.jsx)(J.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(G.Button,{disabled:!(s??t),size:"xs",variant:"ghost","aria-label":q,children:(0,b.jsx)(y.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(J.DropdownMenuContent,{align:"end",children:[j&&(0,b.jsxs)(J.DropdownMenuItem,{onClick:j,children:[(0,b.jsx)(A.Pencil,{className:"mr-2 size-3"}),o("projects.projectManagerStageRename")]}),g&&(0,b.jsxs)(J.DropdownMenuItem,{onClick:g,children:[(0,b.jsx)(p.ArrowLeft,{className:"mr-2 size-3"}),o("projects.projectManagerStageMoveLeft")]}),h&&(0,b.jsxs)(J.DropdownMenuItem,{onClick:h,children:[(0,b.jsx)(bb.ArrowRight,{className:"mr-2 size-3"}),o("projects.projectManagerStageMoveRight")]}),f&&(0,b.jsxs)(J.DropdownMenuItem,{onClick:f,className:"text-destructive",children:[(0,b.jsx)(E.Trash2,{className:"mr-2 size-3"}),o("projects.projectManagerStageDelete")]})]})]})]}),(0,b.jsx)("div",{className:"flex max-h-96 flex-col gap-2 overflow-y-auto p-2",children:0===d.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:o("projects.projectManagerStageLaneEmpty")}):d.map((c,d)=>(0,b.jsx)(bm,{dependencyCounts:a,index:d,item:c,movePending:e,onMoveWorkItem:i,onViewDetails:k,sessionLink:l.get(c.id)??null,stages:n,t:o},c.id))})]})}function bm({dependencyCounts:a,index:c,item:d,movePending:e,onMoveWorkItem:f,onViewDetails:g,sessionLink:h,stages:i,t:j}){let k=a.blockedBy.get(d.id)??0,l=a.blocking.get(d.id)??0,{attributes:m,isDragging:n,listeners:o,setNodeRef:p}=(0,ba.useDraggable)({id:d.id,disabled:e});return(0,b.jsxs)("article",{ref:p,className:(0,ab.cn)("forgebadger-animate-in rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",n&&"opacity-40"),style:{animationDelay:`${40*c}ms`},"data-testid":`project-manager-stage-item-${d.id}`,...m,...o,children:[(0,b.jsx)("button",{type:"button",className:"w-full break-words text-left text-sm font-medium leading-5 transition-colors hover:text-brand",onClick:()=>g(d),children:d.title}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(d.status),className:(0,a8.statusBadgeClassName)(d.status),children:(0,a8.statusLabel)(d.status,j)}),k>0&&(0,b.jsxs)(H.Badge,{variant:"destructive",children:[j("projects.projectManagerDependencyBlockedBy"),": ",k]}),l>0&&(0,b.jsxs)(H.Badge,{variant:"secondary",children:[j("projects.projectManagerDependencyBlocking"),": ",l]}),h&&(0,b.jsxs)("a",{className:"inline-flex items-center gap-1 rounded border border-border/70 px-1.5 py-0.5 text-xs text-brand transition-colors hover:border-brand/40 hover:underline",href:h.href,children:[(0,b.jsx)(x,{className:"size-3"}),j("projects.projectManagerLinkedSession")]})]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)("select",{"aria-label":j("projects.projectManagerStageAssign"),className:"h-8 w-full rounded-md border border-input bg-transparent px-2 text-xs shadow-xs outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30",value:d.stageId??"",disabled:e,onChange:a=>f(d,a.target.value||null),children:[(0,b.jsx)("option",{value:"",children:j("projects.projectManagerStageBacklog")}),i.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})})]})}function bn({item:a,t:c}){return(0,b.jsxs)("div",{className:"w-72 rotate-2 cursor-grabbing rounded-md border border-brand/50 bg-card p-3 opacity-90 shadow-lg","data-testid":`project-manager-stage-item-drag-preview-${a.id}`,children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:a.title}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(a.status),className:(0,a8.statusBadgeClassName)(a.status),children:(0,a8.statusLabel)(a.status,c)})})]})}function bo({description:a,error:c,isSaving:d,name:e,onDescriptionChange:f,onNameChange:g,onOpenChange:h,onSave:i,open:j,t:k,title:l}){return(0,b.jsx)(U.Dialog,{open:j,onOpenChange:h,children:(0,b.jsxs)(U.DialogContent,{children:[(0,b.jsx)(U.DialogHeader,{children:(0,b.jsx)(U.DialogTitle,{children:l})}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-stage-name",children:k("projects.projectManagerStageName")}),(0,b.jsx)(V.Input,{id:"project-manager-stage-name",value:e,"aria-invalid":!!c&&0===e.trim().length,disabled:d,onChange:a=>g(a.target.value)})]}),f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-stage-description",children:k("projects.projectManagerStageDescription")}),(0,b.jsx)(X.Textarea,{id:"project-manager-stage-description",value:a??"",disabled:d,onChange:a=>f(a.target.value)})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>h(!1),disabled:d,children:k("common.cancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:i,disabled:d,children:k("common.save")})]})]})})}function bp({item:a,projectId:c,stages:d,t:e}){let{canEdit:f,legacySessions:g}=a5(),h=(0,m.useQueryClient)(),[i,k]=(0,j.useState)(null),n=(0,l.useMutation)({mutationFn:b=>(0,O.updateProjectManagerWorkItem)(c,a.id,{stageId:b,expectedRevision:a.revision}),onSuccess:async()=>{k(null),await h.invalidateQueries({queryKey:["project-manager",c]})},onError:a=>k((0,a8.projectManagerMutationMessage)(a,e("projects.projectManagerStageMutationError")))});return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("select",{"aria-label":e("projects.projectManagerStageAssign"),className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:a.stageId??"",disabled:!f||n.isPending,onChange:a=>n.mutate(a.target.value||null),children:[(0,b.jsx)("option",{value:"",children:e("projects.projectManagerStageBacklog")}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),i&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i})]})}let bq=(0,t.default)("CircleArrowRight",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]]);var br=a.i(23205),bs=a.i(57462);let bt=(0,t.default)("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);var bu=a.i(99609);let bv=(0,t.default)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);var bw=a.i(2355);let bx=(0,t.default)("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);var by=a.i(75196);function bz({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,ab.cn)("w-full caption-bottom text-sm",a),...c})})}function bA({className:a,...c}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,ab.cn)("[&_tr]:border-b",a),...c})}function bB({className:a,...c}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,ab.cn)("[&_tr:last-child]:border-0",a),...c})}function bC({className:a,...c}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,ab.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",a),...c})}function bD({className:a,...c}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,ab.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}function bE({className:a,...c}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,ab.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}var bF=a.i(86422);function bG(a,b){return!b||a.title.toLowerCase().includes(b)}let bH="board-column:";function bI(a){if("string"!=typeof a||!a.startsWith(bH))return null;let b=a.slice(bH.length);return bF.WORK_ITEM_STATUSES.includes(b)?b:null}function bJ({batchStatusError:a,batchStatusPending:c,batchTargetOptions:d,batchTargetStatus:e,highlightedWorkItemId:f,isFetching:g,onBatchStatusSubmit:h,onBatchTargetStatusChange:i,onClearSelection:k,onCreate:l,onDelete:m,onEdit:n,onQuickStart:o,onStatusFilterChange:p,onStatusChange:q,onToggleSelection:r,onViewDetails:s,onViewModeChange:t,quickStartError:u,quickStartPendingWorkItemId:v,selectedWorkItemIds:w,statusError:x,statusFilter:y,statusMutationPending:z,tableWorkItems:A,taskPackets:C,taskPacketsError:D,taskPacketsFetching:E,viewMode:F,workItems:H,t:J}){let{canEdit:K,legacySessions:L}=a5(),[M,N]=(0,j.useState)(""),O=M.trim().toLowerCase(),P=(0,j.useMemo)(()=>H.filter(a=>bG(a,O)),[H,O]),Q=(0,j.useMemo)(()=>A.filter(a=>bG(a,O)),[A,O]),R=(0,j.useMemo)(()=>new Map(C.map(a=>[a.workItemId,a])),[C]),S=("all"!==y||O.length>0)&&0===Q.length,T=w.filter(a=>H.some(b=>b.id===a)).length;return(0,b.jsxs)(I.Card,{children:[(0,b.jsxs)(I.CardHeader,{className:"space-y-3",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(br.ClipboardList,{className:"size-4 text-brand"}),J("projects.projectManagerWorkItems"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:H.length})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 lg:flex-row lg:items-center",children:[(0,b.jsxs)("div",{className:"inline-flex w-fit rounded-md border border-border/70 bg-muted/20 p-1",children:[(0,b.jsxs)(G.Button,{size:"sm",variant:"board"===F?"default":"ghost",className:"board"===F?"bg-brand text-brand-foreground hover:bg-brand/90":void 0,"aria-pressed":"board"===F,onClick:()=>t("board"),children:[(0,b.jsx)(bu.LayoutDashboard,{className:"mr-2 size-4"}),J("projects.projectManagerBoard")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"table"===F?"default":"ghost",className:"table"===F?"bg-brand text-brand-foreground hover:bg-brand/90":void 0,"aria-pressed":"table"===F,onClick:()=>t("table"),children:[(0,b.jsx)(bx,{className:"mr-2 size-4"}),J("projects.projectManagerTable")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"queue"===F?"default":"ghost",className:"queue"===F?"bg-brand text-brand-foreground hover:bg-brand/90":void 0,"aria-pressed":"queue"===F,onClick:()=>t("queue"),children:[(0,b.jsx)(bv,{className:"mr-2 size-4"}),J("projects.projectManagerTaskQueue")]})]}),(0,b.jsxs)("div",{className:"relative lg:flex-1",children:[(0,b.jsx)(an.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(V.Input,{value:M,onChange:a=>N(a.target.value),placeholder:J("projects.projectManagerSearchPlaceholder"),className:"h-9 pl-8"})]}),(0,b.jsxs)(by.Select,{value:y,onValueChange:a=>p(a),disabled:g,children:[(0,b.jsx)(by.SelectTrigger,{"aria-label":J("projects.projectManagerFilterByStatus"),className:"w-full lg:w-44",children:(0,b.jsx)(by.SelectValue,{})}),(0,b.jsxs)(by.SelectContent,{children:[(0,b.jsx)(by.SelectItem,{value:"all",children:J("projects.projectManagerAllStatuses")}),bF.WORK_ITEM_STATUSES.map(a=>(0,b.jsx)(by.SelectItem,{value:a,children:(0,a8.statusLabel)(a,J)},a))]})]}),(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",disabled:!K,onClick:l,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),J("projects.projectManagerCreateWorkItem")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[x&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:x}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a}),u&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:u}),0===H.length?(0,b.jsx)(bf,{title:S?J("projects.projectManagerFilterEmptyTitle"):J("projects.projectManagerNoWorkItemsTitle"),body:S?J("projects.projectManagerFilterEmptyBody"):J("projects.projectManagerNoWorkItemsBody"),icon:br.ClipboardList}):"board"===F?(0,b.jsx)(bK,{batchStatusPending:c,highlightedWorkItemId:f,onDelete:m,onEdit:n,onQuickStart:o,onStatusChange:q,onToggleSelection:r,onViewDetails:s,quickStartPendingWorkItemId:v,selectedWorkItemIds:w,statusMutationPending:z,t:J,taskPacketByWorkItemId:R,workItems:P}):"table"===F?0===Q.length?(0,b.jsx)(bf,{title:J("projects.projectManagerFilterEmptyTitle"),body:J("projects.projectManagerFilterEmptyBody"),icon:br.ClipboardList}):(0,b.jsx)(bO,{highlightedWorkItemId:f,onQuickStart:o,onStatusChange:q,onViewDetails:s,quickStartPendingWorkItemId:v,statusMutationPending:z,t:J,taskPacketByWorkItemId:R,workItems:Q}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:J("projects.projectManagerTaskQueueDescription")}),(0,b.jsx)(bP,{error:D,highlightedWorkItemId:f,isFetching:E,onQuickStart:o,onViewDetails:s,quickStartPendingWorkItemId:v,t:J,taskPackets:C,workItems:H})]})]}),T>0&&(0,b.jsxs)("div",{className:"forgebadger-slide-up-toolbar fixed bottom-6 left-1/2 z-40 flex max-w-[calc(100vw-2rem)] flex-wrap items-center gap-3 rounded-lg border border-border bg-card px-4 py-3 shadow-lg","data-testid":"project-manager-batch-toolbar",children:[(0,b.jsxs)("span",{className:"text-sm font-medium",children:[J("projects.projectManagerSelected"),": ",T]}),(0,b.jsxs)(by.Select,{value:e||void 0,onValueChange:a=>i(a),disabled:!K||c||0===d.length,children:[(0,b.jsx)(by.SelectTrigger,{size:"sm","aria-label":J("projects.projectManagerBatchTargetStatus"),className:"min-w-44",children:(0,b.jsx)(by.SelectValue,{placeholder:J("projects.projectManagerBatchTargetStatus")})}),(0,b.jsx)(by.SelectContent,{children:d.map(a=>(0,b.jsx)(by.SelectItem,{value:a,children:(0,a8.statusLabel)(a,J)},a))})]}),0===d.length&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:J("projects.projectManagerNoBatchTargets")}),(0,b.jsx)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:h,disabled:!K||c||!e,children:J("projects.projectManagerMoveSelected")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:k,disabled:c,children:J("projects.projectManagerClearSelection")})]})]})}function bK({batchStatusPending:a,highlightedWorkItemId:c,onDelete:d,onEdit:e,onQuickStart:f,onStatusChange:g,onToggleSelection:h,onViewDetails:i,quickStartPendingWorkItemId:k,selectedWorkItemIds:l,statusMutationPending:m,t:n,taskPacketByWorkItemId:o,workItems:p}){let[q,r]=(0,j.useState)(null),[s,t]=(0,j.useState)(null),u=(0,ba.useSensors)((0,ba.useSensor)(ba.PointerSensor,{activationConstraint:{distance:6}}),(0,ba.useSensor)(ba.KeyboardSensor)),v=q?p.find(a=>a.id===q)??null:null,w=(a,b)=>a&&b&&b!==a.status&&bF.PROJECT_MANAGER_STATUS_TRANSITIONS[a.status].includes(b)?b:null,x=()=>{r(null),t(null)};return(0,b.jsx)("div",{className:"space-y-3","data-testid":"project-manager-board",children:(0,b.jsxs)(ba.DndContext,{sensors:u,onDragStart:a=>{r(String(a.active.id)),t(null)},onDragOver:a=>{t(w(p.find(b=>b.id===String(a.active.id))??null,bI(a.over?.id)))},onDragEnd:a=>{let b=p.find(b=>b.id===String(a.active.id))??null,c=w(b,bI(a.over?.id));x(),b&&c&&g(b,c)},onDragCancel:x,children:[(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:bF.WORK_ITEM_STATUSES.map(j=>{let q=p.filter(a=>a.status===j);return(0,b.jsx)(bL,{highlighted:s===j,itemCount:q.length,status:j,t:n,children:0===q.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:n("projects.projectManagerBoardEmptyColumn")}):q.map((j,p)=>(0,b.jsx)(bM,{highlighted:j.id===c,index:p,isStarting:k===j.id,item:j,onDelete:d,onEdit:e,onQuickStart:f,onStatusChange:g,onToggleSelection:h,onViewDetails:i,selected:l.includes(j.id),statusMutationPending:m||a,t:n,taskPacket:o.get(j.id)??null},j.id))},j)})}),(0,b.jsx)(ba.DragOverlay,{dropAnimation:null,children:v?(0,b.jsx)(bN,{item:v,t:n}):null})]})})}function bL({children:a,highlighted:c,itemCount:d,status:e,t:f}){let{setNodeRef:g}=(0,ba.useDroppable)({id:`${bH}${e}`});return(0,b.jsxs)("section",{ref:g,className:(0,ab.cn)("min-h-56 rounded-md border border-border/70 bg-background/40",c&&"forgebadger-lane-drop-highlight"),"data-testid":`project-manager-board-column-${e}`,children:[(0,b.jsx)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:(0,ab.cn)("size-2 rounded-full",(0,a8.statusDotClassName)(e)),"aria-hidden":!0}),(0,b.jsx)("span",{className:"text-xs font-medium",children:(0,a8.statusLabel)(e,f)}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d})]})}),(0,b.jsx)("div",{className:"flex flex-col gap-2 p-2",children:a})]})}function bM({highlighted:a,index:c,isStarting:d,item:e,onDelete:f,onEdit:g,onQuickStart:h,onStatusChange:i,onToggleSelection:j,onViewDetails:k,selected:l,statusMutationPending:m,t:n,taskPacket:o}){let{canEdit:p,legacySessions:q}=a5(),s=(0,a8.priorityLevel)(e.priority),{attributes:t,isDragging:u,listeners:v,setNodeRef:w}=(0,ba.useDraggable)({id:e.id,disabled:m||!p});return(0,b.jsxs)("article",{ref:w,className:(0,ab.cn)("forgebadger-animate-in rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",a&&"border-brand/50 bg-brand/5",l&&"ring-2 ring-brand/40",u&&"opacity-40"),style:{animationDelay:`${40*c}ms`},"data-testid":`project-manager-board-card-${e.id}`,...t,...v,children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(T.Checkbox,{className:"mt-1",disabled:!p,checked:l,"aria-label":n("projects.projectManagerSelectWorkItem"),onCheckedChange:a=>j(e,!0===a)}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:e.title}),e.description&&(0,b.jsx)("p",{className:"mt-1 line-clamp-2 break-words text-xs leading-5 text-muted-foreground",children:e.description})]}),(0,b.jsxs)("span",{className:(0,ab.cn)("inline-flex shrink-0 items-center gap-1 text-xs",(0,a8.priorityClassName)(s)),title:`${n((0,a8.priorityLabelKey)(s))} \xb7 ${e.priority}`,children:[(0,b.jsx)(bt,{className:"size-3.5"}),(0,b.jsx)("span",{className:"font-mono tabular-nums",children:e.priority})]})]}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:(0,b.jsxs)(H.Badge,{variant:"outline",children:[n("projects.projectManagerEvidenceRefs"),": ",e.evidenceRefCount]})}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(bR,{isStarting:d,item:e,onQuickStart:h,size:"xs",t:n,taskPacket:o}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",onClick:()=>k(e),children:[(0,b.jsx)(r.Eye,{className:"mr-1 size-3"}),n("projects.projectManagerViewDetails")]}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",disabled:!p,onClick:()=>g(e),children:[(0,b.jsx)(A.Pencil,{className:"mr-1 size-3"}),n("projects.projectManagerEditWorkItem")]}),(0,b.jsxs)(G.Button,{size:"xs",variant:"destructive",disabled:!p,onClick:()=>f(e),children:[(0,b.jsx)(E.Trash2,{className:"mr-1 size-3"}),n("projects.projectManagerDeleteWorkItem")]}),(0,b.jsx)(bS,{disabled:m,item:e,onStatusChange:i,t:n,size:"xs"})]})]})}function bN({item:a,t:c}){let d=(0,a8.priorityLevel)(a.priority);return(0,b.jsxs)("div",{className:"w-64 rotate-2 cursor-grabbing rounded-md border border-brand/50 bg-card p-3 opacity-90 shadow-lg","data-testid":`project-manager-board-card-drag-preview-${a.id}`,children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:a.title}),(0,b.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[(0,b.jsxs)(H.Badge,{variant:"outline",children:[c("projects.projectManagerEvidenceRefs"),": ",a.evidenceRefCount]}),(0,b.jsxs)("span",{className:(0,ab.cn)("inline-flex items-center gap-1 text-xs",(0,a8.priorityClassName)(d)),children:[(0,b.jsx)(bt,{className:"size-3.5"}),(0,b.jsx)("span",{className:"font-mono tabular-nums",children:a.priority})]})]})]})}function bO({highlightedWorkItemId:a,onQuickStart:c,onStatusChange:d,onViewDetails:e,quickStartPendingWorkItemId:f,statusMutationPending:g,taskPacketByWorkItemId:h,workItems:i,t:j}){return(0,b.jsxs)(bz,{children:[(0,b.jsx)(bA,{children:(0,b.jsxs)(bC,{children:[(0,b.jsx)(bD,{children:j("common.name")}),(0,b.jsx)(bD,{children:j("common.status")}),(0,b.jsx)(bD,{children:j("projects.projectManagerPriority")}),(0,b.jsx)(bD,{children:j("projects.projectManagerEvidenceRefs")}),(0,b.jsx)(bD,{children:j("projects.projectManagerUpdated")}),(0,b.jsx)(bD,{className:"text-right",children:j("common.actions")})]})}),(0,b.jsx)(bB,{children:i.map(i=>(0,b.jsxs)(bC,{className:(0,ab.cn)(i.id===a&&"border-brand/50 bg-brand/5"),children:[(0,b.jsx)(bE,{className:"max-w-[240px] whitespace-normal break-words font-medium",children:i.title}),(0,b.jsx)(bE,{children:(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(i.status),className:(0,a8.statusBadgeClassName)(i.status),children:(0,a8.statusLabel)(i.status,j)})}),(0,b.jsx)(bE,{className:"font-mono text-xs",children:i.priority}),(0,b.jsx)(bE,{className:"font-mono text-xs tabular-nums",children:i.evidenceRefCount}),(0,b.jsx)(bE,{className:"text-xs text-muted-foreground",children:(0,a8.formatTimestamp)(i.updatedAt)}),(0,b.jsx)(bE,{className:"text-right",children:(0,b.jsxs)("div",{className:"flex flex-col justify-end gap-2 sm:flex-row sm:items-center",children:[(0,b.jsx)(bR,{isStarting:f===i.id,item:i,onQuickStart:c,t:j,taskPacket:h.get(i.id)??null}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>e(i),children:[(0,b.jsx)(r.Eye,{className:"mr-2 size-4"}),j("projects.projectManagerViewDetails")]}),(0,b.jsx)(bS,{disabled:g,item:i,onStatusChange:d,t:j})]})})]},i.id))})]})}function bP({error:a,highlightedWorkItemId:c,isFetching:d,onQuickStart:e,onViewDetails:f,quickStartPendingWorkItemId:g,taskPackets:h,t:i,workItems:k}){let l=(0,j.useMemo)(()=>new Map(k.map(a=>[a.id,a])),[k]),m=(0,j.useMemo)(()=>(function(a){let b={planned:[],running:[],waiting_for_review:[],blocked:[],completed:[],cancelled:[]};for(let c of a)b[c.queueStatus].push(c);return b})(h),[h]);return a?(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i("projects.projectManagerTaskQueueLoadError")}):d&&0===h.length?(0,b.jsx)("div",{className:"rounded-md border border-border/70 px-3 py-6 text-center text-sm text-muted-foreground",children:i("projects.projectManagerTaskQueueLoading")}):0===h.length?(0,b.jsx)(bf,{title:i("projects.projectManagerTaskQueueEmptyTitle"),body:i("projects.projectManagerTaskQueueEmptyBody"),icon:bv}):(0,b.jsxs)("div",{className:"space-y-3","data-testid":"project-manager-task-queue",children:[d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTaskQueueLoading")}),(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:a6.map(a=>{let d=m[a];return(0,b.jsxs)("section",{className:"min-h-56 rounded-md border border-border/70 bg-background/40","data-testid":`project-manager-task-queue-column-${a}`,children:[(0,b.jsx)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,a8.taskPacketQueueBadgeVariant)(a),children:(0,a8.taskPacketQueueStatusLabel)(a,i)}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d.length})]})}),(0,b.jsx)("div",{className:"flex flex-col gap-2 p-2",children:0===d.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:i("projects.projectManagerTaskQueueEmptyColumn")}):d.map(a=>(0,b.jsx)(bQ,{highlighted:a.workItemId===c,isStarting:g===a.workItemId,onQuickStart:e,onViewDetails:f,t:i,taskPacket:a,workItem:l.get(a.workItemId)??null},a.id))})]},a)})})]})}function bQ({highlighted:a,isStarting:c,onQuickStart:d,onViewDetails:e,taskPacket:f,t:g,workItem:h}){return(0,b.jsxs)("article",{className:(0,ab.cn)("rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",a&&"border-brand/50 bg-brand/5"),"data-testid":`project-manager-task-queue-card-${f.workItemId}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(f.workItemStatus),children:(0,a8.statusLabel)(f.workItemStatus,g)}),(0,b.jsx)(H.Badge,{variant:"outline",children:f.runtime.adapter}),(0,b.jsx)(H.Badge,{variant:"outline",children:f.runtime.templateId})]}),(0,b.jsx)("h3",{className:"mt-2 break-words text-sm font-medium leading-5",children:f.title}),(0,b.jsxs)("div",{className:"mt-3 grid gap-2 text-xs sm:grid-cols-2",children:[(0,b.jsx)(be,{label:g("projects.projectManagerAcceptanceCriteria"),value:f.acceptanceCriteria.length}),(0,b.jsx)(be,{label:g("projects.projectManagerTaskPacketExpectedVerification"),value:f.expectedVerification.length})]}),(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-border/50 bg-background/40 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:g("projects.projectManagerTaskPacketLinkedSession")}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs",children:f.sessionLink?`${f.sessionLink.sessionId} / ${f.sessionLink.status}`:g("projects.projectManagerTaskPacketBlockedNoSession")})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,a8.formatTimestamp)(f.updatedAt)}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h&&(0,b.jsx)(bR,{isStarting:c,item:h,onQuickStart:d,size:"xs",t:g,taskPacket:f}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",disabled:!h,onClick:()=>{h&&e(h)},children:[(0,b.jsx)(r.Eye,{className:"mr-1 size-3"}),g("projects.projectManagerViewDetails")]})]})]})]})}function bR({isStarting:a,item:c,onQuickStart:d,size:e="sm",taskPacket:f,t:g}){let{canEdit:h,legacySessions:i}=a5();return i?f?.sessionLink?(0,b.jsxs)("a",{className:"inline-flex items-center self-center text-xs font-medium text-brand hover:underline",href:f.sessionLink.href,children:[(0,b.jsx)(bs.ExternalLink,{className:"mr-1 size-3"}),g("projects.projectManagerTaskPacketOpenSession")]}):f?(0,b.jsxs)(G.Button,{size:e,variant:"outline",disabled:a,onClick:()=>d(c),children:[(0,b.jsx)(bw.Play,{className:"xs"===e?"mr-1 size-3":"mr-2 size-4"}),g(a?"projects.projectManagerTaskPacketStarting":"projects.projectManagerTaskPacketQuickStart")]}):null:null}function bS({disabled:a,item:c,onStatusChange:d,size:e="sm",t:f}){let{canEdit:g,legacySessions:h}=a5(),i=bF.PROJECT_MANAGER_STATUS_TRANSITIONS[c.status];return 0===i.length?(0,b.jsx)("span",{className:"inline-flex h-9 items-center text-xs text-muted-foreground",children:"-"}):(0,b.jsxs)(J.DropdownMenu,{children:[(0,b.jsx)(J.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)(G.Button,{size:e,variant:"outline",disabled:a||!g,children:[(0,b.jsx)(bq,{className:"xs"===e?"mr-1 size-3":"mr-2 size-4"}),f("projects.projectManagerChangeStatus")]})}),(0,b.jsx)(J.DropdownMenuContent,{align:"end",children:i.map(a=>(0,b.jsx)(J.DropdownMenuItem,{onSelect:()=>d(c,a),children:(0,a8.statusLabel)(a,f)},a))})]})}var bT=a.i(69133);function bU({projectId:a,taskId:c,revision:f,canLink:i,actorId:k}){let{t:n}=(0,g.useLanguage)(),o=(0,m.useQueryClient)(),[p,q]=(0,j.useState)(""),[r,s]=(0,j.useState)(!1),t=(0,e.useQuery)({queryKey:["task-artifacts",a,c,k],queryFn:()=>h.taskArtifactsApi.list(a,c)}),u=t.data?.candidates.find(a=>a.developmentTaskId===p),v=(0,l.useMutation)({mutationFn:async()=>{u&&r&&void 0!==f&&i&&await h.taskArtifactsApi.link(a,c,{developmentTaskId:u.developmentTaskId,artifactDigest:u.artifactDigest,expectedTaskRevision:f,shareSummary:!0})},onSuccess:async()=>{q(""),s(!1),await o.invalidateQueries({queryKey:["task-artifacts",a,c]})}});return(0,b.jsxs)(bT.Panel,{title:n("task.artifacts"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n("task.artifactHint")}),t.isPending?(0,b.jsx)("p",{role:"status",children:n("common.loading")}):t.isError?(0,b.jsx)(bT.ErrorNotice,{error:t.error,retry:()=>void t.refetch()}):(0,b.jsxs)(b.Fragment,{children:[t.data.artifacts.length?(0,b.jsx)("ul",{className:"space-y-3",children:t.data.artifacts.map(c=>(0,b.jsxs)("li",{className:"space-y-2 rounded-md border border-border/70 p-3 text-xs",children:[(0,b.jsxs)("p",{children:["Copilot · ",c.status]}),(0,b.jsx)("code",{className:"block break-all",children:c.artifactDigest}),(0,b.jsxs)("p",{children:[n("task.filesChecks"),": ",c.filesCount," / ",c.passedChecks," /"," ",c.checksCount]}),(0,b.jsx)("p",{children:n(c.current?"task.snapshotCurrent":"task.snapshotStale")}),c.canOpen&&(0,b.jsx)(d.default,{className:"text-brand underline",href:`/copilot/tasks?${new URLSearchParams({projectId:a,taskId:c.developmentTaskId})}`,children:n("task.openPrivate")})]},c.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:n("task.noArtifacts")}),i&&(t.data.candidates.length?(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),v.mutate()},children:[(0,b.jsx)(bT.Field,{label:n("task.artifactCandidate"),children:(0,b.jsxs)("select",{className:bT.inputClass,value:p,onChange:a=>{q(a.target.value),s(!1)},disabled:v.isPending,children:[(0,b.jsx)("option",{value:"",children:n("teams.select")}),t.data.candidates.map(a=>(0,b.jsxs)("option",{value:a.developmentTaskId,children:["Copilot · ",a.status," · ",a.developmentTaskId.slice(0,8)]},a.developmentTaskId))]})}),u&&(0,b.jsx)("code",{className:"block break-all text-xs",children:u.artifactDigest}),(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:r,onChange:a=>s(a.target.checked),disabled:v.isPending}),n("task.shareSummary")]}),(0,b.jsx)(G.Button,{size:"sm",disabled:!u||!r||void 0===f||v.isPending,children:n("task.linkArtifact")})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n("task.noCandidates")}))]}),(0,b.jsx)(bT.ErrorNotice,{error:v.error})]})}function bV({projectId:a,actorId:c,detail:d,editable:f}){let{t:h}=(0,g.useLanguage)(),k=(0,bT.useWorkspaceAction)(a),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)(d.run.previewUrl??""),[p,q]=(0,j.useState)(d.run.prUrl??""),r=(0,e.useQuery)({queryKey:["collaboration",a,"run",d.run.id,"diff",c,d.git.commit,l],queryFn:()=>i.collaborationApi.diff(a,d.run.id,l),enabled:!!l}),s=!!(n&&!(0,i.safeWorkspaceUrl)(n)||p&&!(0,i.safeWorkspaceUrl)(p));return(0,b.jsxs)("div",{className:"grid min-w-0 gap-4 xl:grid-cols-2",children:[(0,b.jsxs)(bT.Panel,{title:h("workspace.changes"),children:[0===d.git.files.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("workspace.noChanges")}):(0,b.jsx)("ul",{className:"max-h-48 overflow-auto",children:d.git.files.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{className:"flex w-full gap-2 rounded px-2 py-1 text-left font-mono text-xs hover:bg-muted",onClick:()=>m(a.path),"aria-pressed":l===a.path,children:[(0,b.jsx)("span",{children:a.status}),(0,b.jsx)("span",{className:"break-all",children:a.path})]})},a.path))}),r.isLoading&&(0,b.jsx)("p",{role:"status",children:h("common.loading")}),(0,b.jsx)(bT.ErrorNotice,{error:r.error,retry:()=>void r.refetch()}),r.data&&!r.isError&&(0,b.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-background p-3 text-xs","aria-label":l,children:r.data.diff||h("workspace.noChanges")})]}),(0,b.jsxs)(bT.Panel,{title:h("workspace.preview"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.linksHint")}),(0,b.jsxs)("form",{className:"space-y-3",onSubmit:b=>{b.preventDefault(),s||k.mutate(()=>i.collaborationApi.links(a,d.run.id,n||null,p||null))},children:[(0,b.jsx)(bT.Field,{label:h("workspace.preview"),children:(0,b.jsx)("input",{className:bT.inputClass,type:"url",maxLength:2048,value:n,disabled:!f,onChange:a=>o(a.target.value)})}),(0,b.jsx)(bT.Field,{label:h("workspace.pr"),children:(0,b.jsx)("input",{className:bT.inputClass,type:"url",maxLength:2048,value:p,disabled:!f,onChange:a=>q(a.target.value)})}),s&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:h("workspace.invalidUrl")}),(0,b.jsx)(bT.ErrorNotice,{error:k.error}),f&&(0,b.jsx)(G.Button,{size:"sm",disabled:s||k.isPending,children:h("common.save")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-sm text-brand",children:[(0,i.safeWorkspaceUrl)(d.run.previewUrl)&&(0,b.jsxs)("a",{href:(0,i.safeWorkspaceUrl)(d.run.previewUrl),target:"_blank",rel:"noopener noreferrer",children:[h("workspace.preview")," ↗"]}),(0,i.safeWorkspaceUrl)(d.run.prUrl)&&(0,b.jsxs)("a",{href:(0,i.safeWorkspaceUrl)(d.run.prUrl),target:"_blank",rel:"noopener noreferrer",children:[h("workspace.pr")," ↗"]})]})]})]})}function bW({project:a,detail:c,actorId:d,reviewerId:e,team:f}){let{t:h}=(0,g.useLanguage)(),k=(0,bT.useWorkspaceAction)(a.id),[l,m]=(0,j.useState)(""),n=c.verifications.find(a=>"passed"===a.status&&!0===a.current&&a.commit===c.git.commit),o=c.verifications.find(a=>a.commit===c.git.commit),p=(0,i.canReview)(a,d,c.run.actorId,f)&&(!e||e===d),q="ready"===c.run.state&&!c.git.dirty&&!c.git.conflicts?.length&&!c.git.error&&!c.run.operation;return(0,b.jsxs)(bT.Panel,{title:h("workspace.review"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.reviewHint")}),c.reviews.length?(0,b.jsx)("ul",{className:"space-y-2",children:c.reviews.map(a=>(0,b.jsxs)("li",{className:"rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(bT.WorkspaceStatus,{value:a.decision}),(0,b.jsx)("span",{children:a.actorLabel}),(0,b.jsx)("code",{className:"text-xs",children:a.commit.slice(0,12)})]}),(0,b.jsx)("p",{className:"mt-2 whitespace-pre-wrap break-words",children:a.note})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("workspace.noReviews")}),e&&e!==d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.assignedReviewer")}),p&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(bT.Field,{label:h("workspace.reviewNote"),children:(0,b.jsx)("textarea",{maxLength:5e3,required:!0,className:bT.inputClass,value:l,onChange:a=>m(a.target.value)})}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(G.Button,{size:"sm",disabled:!q||!n||!l.trim()||k.isPending,onClick:()=>n&&k.mutate(()=>i.collaborationApi.review(a.id,c.run.id,{expectedCommit:c.git.commit,verificationId:n.id,decision:"accepted",note:l.trim()})),children:h("workspace.accept")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!q||!o||!l.trim()||k.isPending,onClick:()=>o&&k.mutate(()=>i.collaborationApi.review(a.id,c.run.id,{expectedCommit:c.git.commit,verificationId:o.id,decision:"changes_requested",note:l.trim()})),children:h("workspace.requestChanges")})]})]}),(0,b.jsx)(bT.ErrorNotice,{error:k.error})]})}function bX({detail:a}){let{t:c}=(0,g.useLanguage)(),{run:d}=a;return(0,b.jsxs)(bT.Panel,{title:c("workspace.verification"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("workspace.noVerification")}),a.verifications.length?(0,b.jsx)("ul",{className:"space-y-2",children:a.verifications.map(a=>(0,b.jsxs)("li",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(bT.WorkspaceStatus,{value:a.status}),"passed"===a.status&&!0!==a.current&&(0,b.jsx)("span",{className:"text-xs text-amber-500",children:c("ready"===d.state?"workspace.staleReceipt":"workspace.historicalReceipt")}),(0,b.jsx)("code",{className:"text-xs",children:a.commit.slice(0,12)})]}),(0,b.jsx)("pre",{className:"max-h-56 overflow-auto whitespace-pre-wrap break-words text-xs",children:a.summary}),"unknown"===a.status&&(0,b.jsx)("p",{className:"text-xs text-amber-500",children:c("workspace.unknownHint")})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("workspace.noReceipts")})]})}function bY({project:a,detail:c,executor:d,onReconciled:e}){let{t:f}=(0,g.useLanguage)(),h=(0,bT.useWorkspaceAction)(a.id),[k,l]=(0,j.useState)(!1),[m,n]=(0,j.useState)(()=>crypto.randomUUID()),{run:o,git:p}=c,q=d&&a.managedExecution?.supported!==!1&&!o.operation&&["ready","closed","revoking"].includes(o.state)&&!!p.commit&&!p.error;return(0,b.jsxs)(bT.Panel,{title:f("delivery.git"),children:[!!p.conflicts?.length&&(0,b.jsxs)("div",{role:"alert",className:"space-y-2 rounded-md border border-amber-500/40 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:f("delivery.conflicts")}),(0,b.jsx)("ul",{className:"text-xs",children:p.conflicts.map(a=>(0,b.jsx)("li",{className:"break-all",children:a},a))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f("delivery.reconcileHint")}),d&&(0,b.jsx)(G.Button,{variant:"outline",size:"sm",disabled:!q||h.isPending,onClick:()=>l(!0),children:f("delivery.reconcile")}),k&&(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:f("delivery.reconcileConfirm")}),(0,b.jsx)("code",{className:"block break-all text-xs",children:p.commit}),(0,b.jsx)(G.Button,{size:"sm",disabled:!q||h.isPending,onClick:()=>h.mutate(async()=>{let b=await i.collaborationApi.reconcile(a.id,o.id,p.commit,m);n(crypto.randomUUID()),l(!1),e(b.run.id)}),children:f("workspace.confirm")}),(0,b.jsx)(G.Button,{variant:"ghost",size:"sm",disabled:h.isPending,onClick:()=>l(!1),children:f("common.cancel")})]}),(0,b.jsx)(bT.ErrorNotice,{error:h.error}),d&&(0,b.jsx)(bZ,{project:a,detail:c})]})}function bZ({project:a,detail:c}){let{t:d}=(0,g.useLanguage)(),e=(0,bT.useWorkspaceAction)(a.id),[f,h]=(0,j.useState)(!1),[i,k]=(0,j.useState)(""),[l,m]=(0,j.useState)(c.run.branch),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(""),[r,s]=(0,j.useState)(""),[t,u]=(0,j.useState)(""),[v,w]=(0,j.useState)(!1),[x,y]=(0,j.useState)(""),z=!!c.verifications.find(a=>!0===a.current&&"passed"===a.status&&a.commit===c.git.commit)&&"ready"===c.run.state&&!c.run.operation&&!c.git.dirty&&!c.git.error&&!c.git.conflicts?.length;return(0,b.jsxs)("div",{className:"space-y-3 border-t border-border pt-3",children:[(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!z,onClick:()=>h(!0),children:d("delivery.draftPr")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d("delivery.prHint")}),x&&(0,b.jsxs)("a",{className:"text-sm text-brand underline",target:"_blank",rel:"noopener noreferrer",href:x,children:[d("workspace.pr")," ↗"]}),f&&(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault()},children:[(0,b.jsxs)("p",{className:"break-all text-xs",children:[d("workspace.commit"),": ",c.git.commit]}),(0,b.jsxs)("fieldset",{disabled:e.isPending,className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(bT.Field,{label:d("delivery.repository"),children:(0,b.jsx)("input",{className:bT.inputClass,required:!0,value:i,onChange:a=>{k(a.target.value),w(!1)},placeholder:"owner/repo"})}),(0,b.jsx)(bT.Field,{label:d("delivery.head"),children:(0,b.jsx)("input",{className:bT.inputClass,required:!0,value:l,onChange:a=>{m(a.target.value),w(!1)}})}),(0,b.jsx)(bT.Field,{label:d("delivery.base"),children:(0,b.jsx)("input",{className:bT.inputClass,required:!0,value:n,onChange:a=>{o(a.target.value),w(!1)}})}),(0,b.jsx)(bT.Field,{label:d("delivery.title"),children:(0,b.jsx)("input",{className:bT.inputClass,required:!0,value:p,onChange:a=>q(a.target.value)})})]}),(0,b.jsx)(bT.Field,{label:d("common.description"),children:(0,b.jsx)("textarea",{className:bT.inputClass,value:r,onChange:a=>s(a.target.value)})}),(0,b.jsx)(bT.Field,{label:d("delivery.token"),children:(0,b.jsx)("input",{className:bT.inputClass,type:"password",autoComplete:"off",required:!0,value:t,onChange:a=>u(a.target.value),disabled:!0})}),(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:d("delivery.secure")}),(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:v,onChange:a=>w(a.target.checked)}),d("delivery.confirmPr")]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(G.Button,{disabled:!0,children:d("delivery.draftPr")}),(0,b.jsx)(G.Button,{type:"button",variant:"ghost",onClick:()=>{h(!1),u(""),w(!1)},children:d("common.cancel")})]})]})]}),(0,b.jsx)(bT.ErrorNotice,{error:e.error})]})}function b$({project:a,detail:c,executor:d,onRecovered:e}){let{t:f}=(0,g.useLanguage)(),h=(0,bT.useWorkspaceAction)(a.id),[k,l]=(0,j.useState)(null),[m,n]=(0,j.useState)(()=>crypto.randomUUID()),[o,p]=(0,j.useState)(null),{run:q,git:r}=c,s="ready"===q.state,t=d&&(0,i.hasCapability)(a,"closeOwnRun")||(0,i.hasCapability)(a,"manage"),u=c.verifications.find(a=>"passed"===a.status&&!0===a.current&&a.commit===r.commit),v=c.reviews[0],w=!!(u&&v?.decision==="accepted"&&v.commit===r.commit&&v.verificationId===u.id);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(bT.Panel,{title:f("common.actions"),children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,i.hasCapability)(a,"manage")&&(0,b.jsx)(G.Button,{size:"sm",disabled:!!q.operation||!s||!w||r.dirty||!!r.conflicts?.length||!!r.error||h.isPending,onClick:()=>l("integrate"),children:f("workspace.integrate")}),d&&(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending||["provisioning","revoking"].includes(q.state)||!a.executionEnabled||a.managedExecution?.supported===!1,onClick:()=>l("recover"),children:f("workspace.recover")}),t&&(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending||"closed"===q.state,onClick:()=>l("close"),children:f("workspace.close")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending,onClick:()=>h.mutate(async()=>{let b=await i.collaborationApi.handoff(a.id,q.id);p(b.markdown);let c=new Blob([b.markdown],{type:"text/markdown;charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`handoff-${q.id}.md`,e.click(),setTimeout(()=>URL.revokeObjectURL(d),1e3)}),children:f("workspace.handoff")})]}),k&&(0,b.jsxs)("div",{role:"group","aria-label":f(`workspace.${k}`),className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:f(`workspace.${k}Hint`)}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(G.Button,{size:"sm",disabled:h.isPending||"recover"===k&&a.managedExecution?.supported===!1,onClick:()=>{k&&h.mutate(async()=>{if("recover"===k){let b=await i.collaborationApi.recover(a.id,q.id,m);n(crypto.randomUUID()),e(b.run.id)}else"integrate"===k?await i.collaborationApi.integrate(a.id,q.id,r.commit):await i.collaborationApi.close(a.id,q.id);l(null)})},children:f("workspace.confirm")}),(0,b.jsx)(G.Button,{size:"sm",variant:"ghost",disabled:h.isPending,onClick:()=>l(null),children:f("workspace.cancel")})]})]}),o&&(0,b.jsx)("pre",{"aria-label":f("workspace.handoffText"),className:"max-h-96 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border/70 p-3 text-xs",children:o})]}),(0,b.jsx)(bT.ErrorNotice,{error:h.error})]})}function b_({project:a,runId:c,actorId:f,team:h,reviewerId:j,onRecovered:k}){let{t:l}=(0,g.useLanguage)(),m=(0,e.useQuery)({queryKey:["collaboration",a.id,"run",c,f],queryFn:()=>i.collaborationApi.run(a.id,c),refetchInterval:a=>a.state.data?.run.state==="provisioning"||a.state.data?.run.operation||a.state.data?.verifications.some(a=>"running"===a.status)?3e3:15e3});if(m.isLoading)return(0,b.jsx)("p",{role:"status",children:l("common.loading")});if(m.isError)return(0,b.jsx)(bT.ErrorNotice,{error:m.error,retry:()=>void m.refetch()});if(!m.data)return null;let n=m.data,{run:o,git:p}=n,q=f===o.actorId,r=(0,i.canDevelop)(a)&&q,s="ready"===o.state;return(0,b.jsxs)("div",{className:"min-w-0 space-y-4 border-t border-border pt-4",children:[(0,b.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,b.jsx)(bT.WorkspaceStatus,{value:o.state}),(0,b.jsx)("span",{className:"text-sm",children:o.actorLabel}),(0,b.jsx)("code",{className:"break-all text-xs text-muted-foreground",children:o.branch})]}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:()=>void m.refetch(),children:l("workspace.refresh")})]}),o.error&&(0,b.jsx)(bT.ErrorNotice,{error:o.error}),o.operation&&(0,b.jsxs)("p",{role:"status",className:"rounded-md border border-amber-500/40 p-3 text-sm",children:[l("interrupted"===o.operation.phase?"workspace.operationInterrupted":"workspace.operationActive")," ",l("workspace.operationRecoveryHint")]}),p.error&&(0,b.jsx)(bT.ErrorNotice,{error:l("workspace.unavailable")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l("workspace.privateHint")}),o.sessionId&&r&&!o.operation&&(0,b.jsx)(G.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(d.default,{href:`/sessions/${o.sessionId}`,children:l("workspace.terminal")})}),(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("p",{children:[l("workspace.commit"),":"," ",(0,b.jsx)("code",{className:"break-all",children:p.commit||"—"})]}),!p.error&&(0,b.jsx)("p",{className:p.dirty?"text-amber-500":"text-muted-foreground",children:l(p.dirty?"workspace.dirty":"workspace.clean")})]}),(0,b.jsx)(bV,{projectId:a.id,actorId:f,detail:n,editable:r&&s},`${o.id}:${o.previewUrl}:${o.prUrl}`),(0,b.jsx)(bX,{detail:n}),(0,b.jsx)(bW,{project:a,detail:n,actorId:f,reviewerId:j,team:h}),(0,b.jsx)(bY,{project:a,detail:n,executor:r,onReconciled:k}),(0,b.jsx)(b$,{project:a,detail:n,executor:r,onRecovered:k})]})}function b0({detail:a,taskId:c,actorId:d}){let{t:f}=(0,g.useLanguage)(),{project:h}=a,k=(0,bT.useWorkspaceAction)(h.id),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)("claude"),[p,q]=(0,j.useState)(()=>crypto.randomUUID()),[r,s]=(0,j.useState)(null),t=(0,e.useQuery)({queryKey:["collaboration",h.id,"task",c,d],queryFn:()=>i.collaborationApi.task(h.id,c)});if(t.isLoading)return(0,b.jsx)("p",{role:"status",children:f("common.loading")});if(t.isError)return(0,b.jsx)(bT.ErrorNotice,{error:t.error,retry:()=>void t.refetch()});if(!t.data)return null;let{task:u,comments:v,runs:w}=t.data,x=(0,i.canDevelop)(h),y=r??w[0]?.id;return(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(h.executionEnabled||w.length>0)&&(0,b.jsxs)(bT.Panel,{title:f("workspace.runs"),children:[h.managedExecution?.supported===!1&&(0,b.jsx)("p",{role:"status",className:"rounded-md border border-amber-500/40 p-3 text-sm",children:f("workspace.runtimeUpgrade")}),x&&(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsx)(bT.Field,{label:f("common.aiTool"),children:(0,b.jsx)("select",{className:bT.inputClass,value:n,disabled:k.isPending,onChange:a=>{o(a.target.value),q(crypto.randomUUID())},children:["claude","opencode","codex","kimi"].map(a=>(0,b.jsx)("option",{value:a,children:a},a))})}),(0,b.jsx)(G.Button,{size:"sm",disabled:!h.executionEnabled||h.managedExecution?.supported===!1||!!(u.assigneeId&&u.assigneeId!==d)||k.isPending,onClick:()=>k.mutate(async()=>{s((await i.collaborationApi.prepare(h.id,u.id,n,p)).run.id),q(crypto.randomUUID())}),children:f("workspace.prepare")})]}),x&&u.assigneeId&&u.assigneeId!==d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f("workspace.assignedElsewhere")}),w.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":f("workspace.runs"),children:w.map(a=>(0,b.jsxs)("button",{"aria-pressed":y===a.id,onClick:()=>s(a.id),className:`flex items-center gap-2 rounded-md border p-2 text-xs ${y===a.id?"border-brand bg-brand/10":"border-border/70"}`,children:[(0,b.jsxs)("span",{children:[a.actorLabel," · ",a.id.slice(0,8)]}),(0,b.jsx)(bT.WorkspaceStatus,{value:a.state})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("workspace.noRuns")}),y&&(0,b.jsx)(b_,{project:h,runId:y,actorId:d,reviewerId:u.reviewerId,team:!!h.teamId||a.members.some(a=>"owner"!==a.role&&"active"===a.state),onRecovered:s},y)]}),(0,b.jsxs)(bT.Panel,{title:f("workspace.comments"),children:[v.length?(0,b.jsx)("ul",{className:"space-y-3",children:v.map(a=>(0,b.jsxs)("li",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.actorLabel}),(0,b.jsx)("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm",children:a.text})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("workspace.noComments")}),(0,i.hasCapability)(h,"comment")&&(0,b.jsxs)("form",{className:"space-y-2",onSubmit:a=>{a.preventDefault(),k.mutate(async()=>{await i.collaborationApi.comment(h.id,u.id,l.trim()),m("")})},children:[(0,b.jsx)(bT.Field,{label:f("workspace.comment"),children:(0,b.jsx)("textarea",{required:!0,maxLength:5e3,className:bT.inputClass,value:l,onChange:a=>m(a.target.value)})}),(0,b.jsx)(G.Button,{size:"sm",disabled:!l.trim()||k.isPending,children:f("workspace.post")})]})]}),(0,b.jsx)(bT.ErrorNotice,{error:k.error,retry:()=>void t.refetch()})]})}function b1({evidenceDraft:a,evidenceError:c,isEvidenceSaving:d,isTaskPacketLinking:e,isTaskPacketLoading:f,isTaskPacketStarting:g,item:h,ledgerEvents:j,links:k,onAttachEvidence:l,onEvidenceDraftChange:m,onOpenChange:n,onStatusChange:o,onTaskPacketSessionChange:p,onTaskPacketSessionLink:q,onTaskPacketStart:r,open:s,projectId:t,stages:u,statusMutationPending:v,t:w,taskPacket:x,taskPacketError:y,taskPacketLinkError:z,taskPacketStartError:A,taskPacketSessionId:C,taskPacketSessions:D,workItems:E}){let{canEdit:F,legacySessions:I,collaboration:J,actorId:K}=a5(),L=h?(0,a8.workItemTraceMarkers)(h,j):[];return(0,b.jsx)(aa.Sheet,{open:s,onOpenChange:n,children:(0,b.jsxs)(aa.SheetContent,{className:"w-full overflow-y-auto sm:max-w-4xl",children:[(0,b.jsxs)(aa.SheetHeader,{children:[(0,b.jsx)(aa.SheetTitle,{children:h?.title??w("projects.projectManagerViewDetails")}),(0,b.jsx)(aa.SheetDescription,{children:w("projects.projectManagerWorkItemDetail")})]}),h&&(0,b.jsxs)("div",{className:"space-y-5 px-4 pb-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(h.status),children:(0,a8.statusLabel)(h.status,w)}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:[w("projects.projectManagerUpdated"),": ",(0,a8.formatTimestamp)(h.updatedAt)]})]}),(0,b.jsx)(bS,{disabled:v,item:h,onStatusChange:o,t:w})]}),(0,b.jsx)(b5,{label:w("projects.projectManagerWorkItemDescription"),children:h.description?(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:h.description}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(bg,{label:w("projects.projectManagerPriority"),value:h.priority}),(0,b.jsx)(bg,{label:w("projects.projectManagerEvidenceRefs"),value:h.evidenceRefCount})]}),J&&(0,b.jsxs)("div",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[(0,b.jsxs)("p",{children:[w("workspace.assignee"),": ",J.members.find(a=>a.userId===h.assigneeId)?.email??w("workspace.unassigned")]}),(0,b.jsxs)("p",{children:[w("workspace.reviewAssignee"),": ",J.members.find(a=>a.userId===h.reviewerId)?.email??w("workspace.unassigned")]})]}),(0,b.jsx)(b5,{label:w("projects.projectManagerStageAssign"),children:(0,b.jsx)(bp,{item:h,projectId:t,stages:u,t:w})}),(0,b.jsx)(b2,{item:h,links:k,projectId:t,t:w,workItems:E}),(0,b.jsx)(b5,{label:w("projects.projectManagerAcceptanceCriteria"),children:h.acceptanceCriteria.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5",children:h.acceptanceCriteria.map(a=>(0,b.jsx)("li",{className:"break-words",children:a},a))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),h.manualCompletion&&(0,b.jsxs)("div",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,b.jsx)("p",{children:w("task.manualDone")}),(0,b.jsx)("p",{children:h.manualCompletion.reason}),(0,b.jsxs)("p",{children:[h.manualCompletion.actorId," · ",(0,a8.formatTimestamp)(h.manualCompletion.createdAt)]})]}),J&&(0,b.jsx)(bU,{actorId:K,projectId:t,taskId:h.id,revision:h.revision,canLink:(0,i.hasCapability)(J.project,"develop")},`artifact:${K}:${t}:${h.id}`),J&&(0,b.jsx)(b0,{detail:J,taskId:h.id,actorId:K},`execution:${K}:${t}:${h.id}`),I&&(0,b.jsx)(b3,{error:y,isLinking:e,isLoading:f,onSessionChange:p,onSessionLink:q,onStart:r,selectedSessionId:C,sessions:D,t:w,taskPacket:x,linkError:z,startError:A,isStarting:g}),(0,b.jsx)(b5,{label:w("projects.projectManagerEvidenceRefs"),children:h.evidenceRefs.length>0?(0,b.jsx)("ul",{className:"space-y-2",children:h.evidenceRefs.map((a,c)=>(0,b.jsx)("li",{className:"rounded-md border border-border/70 px-3 py-2 text-xs",children:(0,a8.formatEvidenceRef)(a)},`${a.ref??a.path??c}`))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),L.length>0&&(0,b.jsx)(b5,{label:w("projects.projectManagerLedger"),children:(0,b.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:L.map(a=>(0,b.jsx)(be,{label:w(a.labelKey),value:a.value},`${a.labelKey}-${a.value}`))})}),(0,b.jsxs)("fieldset",{disabled:!F,className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("legend",{className:"px-1 text-sm font-medium",children:w("projects.projectManagerAttachEvidence")}),(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:w("projects.projectManagerEvidenceReferenceHint")}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2 sm:col-span-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-type",children:w("projects.projectManagerEvidenceReferenceType")}),(0,b.jsx)("select",{id:"project-manager-evidence-type",className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:a.referenceType,disabled:d,onChange:b=>m((0,a8.applyEvidenceReferenceType)(a,(0,a8.readEvidenceReferenceType)(b.target.value),w)),children:bF.EVIDENCE_REFERENCE_TYPE_OPTIONS.map(a=>(0,b.jsx)("option",{value:a.value,children:w(a.labelKey)},a.value))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-kind",children:w("projects.projectManagerRefKind")}),(0,b.jsx)(V.Input,{id:"project-manager-evidence-kind",value:a.kind,"aria-invalid":!!c&&0===a.kind.trim().length,disabled:d,onChange:b=>m({...a,kind:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-label",children:w("projects.projectManagerRefLabel")}),(0,b.jsx)(V.Input,{id:"project-manager-evidence-label",value:a.label,disabled:d,onChange:b=>m({...a,label:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-ref",children:w("projects.projectManagerRefId")}),(0,b.jsx)(V.Input,{id:"project-manager-evidence-ref",value:a.ref,"aria-invalid":!!c&&0===a.ref.trim().length&&0===a.path.trim().length,disabled:d,onChange:b=>m({...a,ref:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-path",children:w("common.path")}),(0,b.jsx)(V.Input,{id:"project-manager-evidence-path",value:a.path,"aria-invalid":!!c&&0===a.ref.trim().length&&0===a.path.trim().length,disabled:d,onChange:b=>m({...a,path:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-evidence-session-id",children:w("projects.projectManagerEvidenceSessionId")}),(0,b.jsx)(V.Input,{id:"project-manager-evidence-session-id",value:a.sessionId,"aria-invalid":!!c&&("terminal_snapshot"===a.referenceType||"session"===a.referenceType)&&0===a.sessionId.trim().length,disabled:d,onChange:b=>m({...a,sessionId:b.target.value})})]})]}),"terminal_snapshot"===a.referenceType&&(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:w("projects.projectManagerTerminalSnapshotMarkerHint")}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:l,disabled:d,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),w("projects.projectManagerAttachEvidence")]})})]}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(b5,{label:w("projects.projectManagerCreated"),children:(0,a8.formatTimestamp)(h.createdAt)}),(0,b.jsx)(b5,{label:w("projects.projectManagerUpdated"),children:(0,a8.formatTimestamp)(h.updatedAt)})]})]})]})})}function b2({item:a,links:c,projectId:d,t:e,workItems:f}){let{canEdit:g,canManage:h,legacySessions:i}=a5(),k=(0,m.useQueryClient)(),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(null),r=c.filter(b=>b.blockedWorkItemId===a.id),s=c.filter(b=>b.blockerWorkItemId===a.id),t=f.filter(b=>b.id!==a.id&&!r.some(a=>a.blockerWorkItemId===b.id)),u=a=>f.find(b=>b.id===a)?.title??a,v=a=>(0,a8.projectManagerMutationMessage)(a,e("projects.projectManagerDependencyMutationError")),w=(0,l.useMutation)({mutationFn:b=>(0,O.addProjectManagerWorkItemDependency)(d,a.id,b,a.revision),onSuccess:async()=>{q(null),o(""),await k.invalidateQueries({queryKey:["project-manager",d]})},onError:a=>q(v(a))}),x=(0,l.useMutation)({mutationFn:b=>(0,O.removeProjectManagerWorkItemDependency)(d,a.id,b,a.revision),onSuccess:async()=>{q(null),await k.invalidateQueries({queryKey:["project-manager",d]})},onError:a=>q(v(a))}),y=w.isPending||x.isPending;return(0,b.jsxs)("fieldset",{disabled:!(h??g),className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("legend",{className:"px-1 text-sm font-medium",children:e("projects.projectManagerDependencies")}),0===r.length&&0===s.length&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e("projects.projectManagerDependencyNone")}),r.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:e("projects.projectManagerDependencyBlockedBy")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:r.map(a=>(0,b.jsxs)(H.Badge,{variant:"destructive",className:"gap-1",children:[u(a.blockerWorkItemId),(0,b.jsx)("button",{type:"button","aria-label":e("common.delete"),className:"rounded-full hover:bg-destructive-foreground/20",disabled:y,onClick:()=>x.mutate(a.blockerWorkItemId),children:(0,b.jsx)(ae.X,{className:"size-3"})})]},a.id))})]}),s.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:e("projects.projectManagerDependencyBlocking")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:s.map(a=>(0,b.jsx)(H.Badge,{variant:"secondary",children:u(a.blockedWorkItemId)},a.id))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,b.jsxs)("select",{"aria-label":e("projects.projectManagerDependencyAdd"),className:"h-9 min-w-0 flex-1 rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:n,disabled:y||0===t.length,onChange:a=>o(a.target.value),children:[(0,b.jsx)("option",{value:"",children:e("projects.projectManagerDependencyAddPlaceholder")}),t.map(a=>(0,b.jsx)("option",{value:a.id,children:a.title},a.id))]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",disabled:y||!n,onClick:()=>n&&w.mutate(n),children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),e("projects.projectManagerDependencyAdd")]})]}),p&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:p})]})}function b3({error:a,isLinking:c,isLoading:d,isStarting:e,linkError:f,onSessionChange:g,onSessionLink:h,onStart:i,selectedSessionId:j,sessions:k,startError:l,t:m,taskPacket:n}){var o;let{canEdit:p}=a5(),q=k.some(a=>a.id===j),r=j.length>0&&q&&!c,s=!!(n&&!n.sessionLink&&!e);return(0,b.jsxs)("fieldset",{disabled:!p,className:"space-y-3 rounded-md border border-border/70 p-3","data-testid":"project-manager-task-packet",children:[(0,b.jsxs)("legend",{className:"flex items-center gap-2 px-1 text-sm font-medium",children:[(0,b.jsx)(br.ClipboardList,{className:"size-4"}),m("projects.projectManagerTaskPacket")]}),d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:m("projects.projectManagerLoading")}):a?(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:(0,a8.projectManagerMutationMessage)(a,m("projects.projectManagerTaskPacketLoadError"))}):n?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(be,{label:m("projects.projectManagerTaskPacketRuntimeAdapter"),value:n.runtime.adapter}),(0,b.jsx)(be,{label:m("projects.projectManagerTaskPacketRuntimeTemplate"),value:n.runtime.templateId}),(0,b.jsx)(be,{label:m("projects.projectManagerTaskPacketStatus"),value:m("no_linked_session"===(o=n.blockedReason)?"projects.projectManagerTaskPacketBlockedNoSession":"linked_session_not_running"===o?"projects.projectManagerTaskPacketBlockedInactiveSession":"projects.projectManagerTaskPacketReady")}),(0,b.jsx)(be,{label:m("projects.projectManagerTaskPacketLinkedSession"),value:n.sessionLink?.sessionId??"-"})]}),(0,b.jsx)(b5,{label:m("projects.projectManagerTaskPacketPrompt"),children:(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap rounded-md border border-border/70 bg-muted/20 p-3 text-xs leading-5",children:n.prompt})}),(0,b.jsx)(b4,{emptyLabel:"-",label:m("projects.projectManagerAcceptanceCriteria"),values:n.acceptanceCriteria}),(0,b.jsx)(b4,{emptyLabel:"-",label:m("projects.projectManagerTaskPacketExpectedVerification"),values:n.expectedVerification}),(0,b.jsx)(b4,{emptyLabel:"-",label:m("projects.projectManagerTaskPacketEvidenceRequirements"),values:n.evidenceRequirements}),n.sessionLink&&(0,b.jsx)("a",{className:"inline-flex text-xs font-medium text-brand hover:underline",href:n.sessionLink.href,children:m("projects.projectManagerTaskPacketOpenSession")}),!n.sessionLink&&(0,b.jsx)(G.Button,{size:"sm",className:"w-fit bg-brand text-brand-foreground hover:bg-brand/90",onClick:i,disabled:!s,children:m(e?"projects.projectManagerTaskPacketStarting":"projects.projectManagerTaskPacketStart")}),l&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:l}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[minmax(0,1fr)_auto]",children:[(0,b.jsxs)("select",{className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:j,disabled:c||0===k.length,onChange:a=>g(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m(k.length>0?"projects.projectManagerTaskPacketSelectSession":"projects.projectManagerTaskPacketNoSessions")}),k.map(a=>(0,b.jsx)("option",{value:a.id,children:[a.name?.trim()||a.id,a.aiTool?.trim()||"unknown",a.status].join(" / ")},a.id))]}),(0,b.jsx)(G.Button,{size:"sm",className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:h,disabled:!r,children:m("projects.projectManagerTaskPacketLinkSession")})]}),f&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:f})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:m("projects.projectManagerTaskPacketUnavailable")})]})}function b4({emptyLabel:a,label:c,values:d}){return(0,b.jsx)(b5,{label:c,children:d.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm",children:d.map(a=>(0,b.jsx)("li",{className:"break-words",children:a},a))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:a})})}function b5({children:a,label:c}){return(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("div",{className:"text-xs font-medium uppercase text-muted-foreground",children:c}),(0,b.jsx)("div",{className:"break-words",children:a})]})}a.i(45020);var b6=a.i(73008),b7=a.i(27291);function b8({error:a,isStarting:c,item:d,onConfirm:f,onOpenChange:g,t:h,taskPacket:i}){let k=(0,e.useQuery)({queryKey:["adapter-discovery"],queryFn:O.discoverAdapters,enabled:!!d,staleTime:3e4}),l=(0,j.useMemo)(()=>k.data?.adapters??[],[k.data?.adapters]),[m,n]=(0,j.useState)("");(0,j.useEffect)(()=>{if(!d)return;let a=i?.runtime.adapter??null;n((0,O.chooseDefaultRuntimeAdapter)(l,a)??"")},[l,d,i?.runtime.adapter]);let o=l.filter(a=>(0,O.isAdapterLaunchable)(a)),p=""!==m&&o.some(a=>a.id===m);return(0,b.jsx)(U.Dialog,{open:!!d,onOpenChange:g,children:(0,b.jsxs)(U.DialogContent,{children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:h("projects.projectManagerTaskPacketSelectCli")}),(0,b.jsx)(U.DialogDescription,{children:h("projects.projectManagerTaskPacketSelectCliDescription")})]}),d&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-sm font-medium break-words",children:d.title}),k.isLoading?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("projects.loadingRuntimeCli")}):0===o.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("projects.projectManagerTaskPacketNoCliAvailable")}):(0,b.jsxs)("fieldset",{className:"space-y-2",disabled:c,children:[(0,b.jsx)("legend",{className:"sr-only",children:h("projects.selectRuntimeCli")}),o.map(a=>(0,b.jsx)(b9,{adapter:a,checked:m===a.id,disabled:c,label:(0,b7.runtimeAdapterLabel)(a,h),onSelect:()=>n(a.id)},a.id))]}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>g(!1),disabled:c,children:h("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:()=>m&&f(m),disabled:c||!p,children:c?h("projects.projectManagerTaskPacketStarting"):h("projects.projectManagerTaskPacketStart")})]})]})})}function b9({adapter:a,checked:c,disabled:d,label:e,onSelect:f}){return(0,b.jsxs)("label",{className:["flex cursor-pointer items-center gap-3 rounded-md border px-3 py-2 text-sm transition-colors",c?"border-brand/50 bg-brand/5":"border-border/70 bg-background hover:border-border","disabled:cursor-not-allowed disabled:opacity-60"].join(" "),"data-testid":`quick-start-cli-option-${a.id}`,children:[(0,b.jsx)("input",{type:"radio",name:"project-manager-quick-start-adapter",className:"size-4 shrink-0 accent-brand",checked:c,disabled:d,onChange:f}),(0,b.jsx)(b6.CliBrandIcon,{aiTool:a.id}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:a.version??""})]})}function ca({assigneeId:a,reviewerId:c,onChange:d,disabled:e}){let{collaboration:f}=a5(),{t:h}=(0,g.useLanguage)();if(!f)return null;let j=f.members.filter(a=>"active"===a.state);return(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(bT.Field,{label:h("workspace.assignee"),children:(0,b.jsxs)("select",{className:bT.inputClass,value:a??"",disabled:e,onChange:a=>d({assigneeId:a.target.value||null}),children:[(0,b.jsx)("option",{value:"",children:h("workspace.unassigned")}),j.filter(a=>(0,i.hasCapability)(a,"develop")).map(a=>(0,b.jsx)("option",{value:a.userId,children:a.email},a.userId))]})}),(0,b.jsx)(bT.Field,{label:h("workspace.reviewAssignee"),children:(0,b.jsxs)("select",{className:bT.inputClass,value:c??"",disabled:e,onChange:a=>d({reviewerId:a.target.value||null}),children:[(0,b.jsx)("option",{value:"",children:h("workspace.unassigned")}),j.filter(b=>(0,i.hasCapability)(b,"review")&&b.userId!==a).map(a=>(0,b.jsx)("option",{value:a.userId,children:a.email},a.userId))]})})]})}function cb({draft:a,error:c,isSaving:d,onDraftChange:e,onOpenChange:f,onSave:g,open:h,t:i}){return(0,b.jsx)(U.Dialog,{open:h,onOpenChange:f,children:(0,b.jsxs)(U.DialogContent,{className:"max-h-[min(900px,calc(100vh-2rem))] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:i("projects.projectManagerCreateWorkItem")}),(0,b.jsx)(U.DialogDescription,{children:i("projects.projectManagerCreateWorkItemBody")})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-[minmax(0,1fr)_120px]",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-work-item-title",children:i("projects.projectManagerWorkItemTitle")}),(0,b.jsx)(V.Input,{id:"project-manager-work-item-title",value:a.title,"aria-invalid":!!c&&0===a.title.trim().length,disabled:d,onChange:b=>e({...a,title:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-work-item-priority",children:i("projects.projectManagerPriority")}),(0,b.jsx)(V.Input,{id:"project-manager-work-item-priority",inputMode:"numeric",value:a.priority,disabled:d,onChange:b=>e({...a,priority:b.target.value})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-work-item-description",children:i("projects.projectManagerWorkItemDescription")}),(0,b.jsx)(X.Textarea,{id:"project-manager-work-item-description",value:a.description,disabled:d,onChange:b=>e({...a,description:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-work-item-acceptance",children:i("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(X.Textarea,{id:"project-manager-work-item-acceptance",value:a.acceptanceCriteriaText,disabled:d,placeholder:i("projects.projectManagerTextListHint"),onChange:b=>e({...a,acceptanceCriteriaText:b.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTextListHint")})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsx)(ca,{assigneeId:a.assigneeId,reviewerId:a.reviewerId,disabled:d,onChange:b=>e({...a,...b})}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>f(!1),disabled:d,children:i("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:g,disabled:d,children:i("projects.projectManagerCreateWorkItem")})]})]})})}function cc({draft:a,error:c,isSaving:d,item:e,onDraftChange:f,onOpenChange:g,onSave:h,t:i}){return(0,b.jsx)(U.Dialog,{open:!!e,onOpenChange:g,children:(0,b.jsxs)(U.DialogContent,{className:"max-h-[min(760px,calc(100vh-2rem))] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:i("projects.projectManagerEditWorkItem")}),(0,b.jsx)(U.DialogDescription,{children:i("projects.projectManagerEditWorkItemBody")})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-[minmax(0,1fr)_120px]",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-edit-work-item-title",children:i("projects.projectManagerWorkItemTitle")}),(0,b.jsx)(V.Input,{id:"project-manager-edit-work-item-title",value:a.title,"aria-invalid":!!c&&0===a.title.trim().length,disabled:d,onChange:b=>f({...a,title:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-edit-work-item-priority",children:i("projects.projectManagerPriority")}),(0,b.jsx)(V.Input,{id:"project-manager-edit-work-item-priority",inputMode:"numeric",value:a.priority,disabled:d,onChange:b=>f({...a,priority:b.target.value})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-edit-work-item-description",children:i("projects.projectManagerWorkItemDescription")}),(0,b.jsx)(X.Textarea,{id:"project-manager-edit-work-item-description",value:a.description,disabled:d,onChange:b=>f({...a,description:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-edit-work-item-acceptance",children:i("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(X.Textarea,{id:"project-manager-edit-work-item-acceptance",value:a.acceptanceCriteriaText,disabled:d,placeholder:i("projects.projectManagerTextListHint"),onChange:b=>f({...a,acceptanceCriteriaText:b.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTextListHint")})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsx)(ca,{assigneeId:a.assigneeId,reviewerId:a.reviewerId,disabled:d,onChange:b=>f({...a,...b})}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>g(!1),disabled:d,children:i("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:h,disabled:d,children:i("projects.projectManagerSaveWorkItem")})]})]})})}function cd({error:a,isDeleting:c,item:d,onConfirm:e,onOpenChange:f,t:g}){return(0,b.jsx)(U.Dialog,{open:!!d,onOpenChange:f,children:(0,b.jsxs)(U.DialogContent,{children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:g("projects.projectManagerDeleteWorkItem")}),(0,b.jsx)(U.DialogDescription,{children:g("projects.projectManagerDeleteWorkItemBody")})]}),d&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium",children:d.title}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[(0,a8.statusLabel)(d.status,g)," · ",g("projects.projectManagerEvidenceRefs"),": ",d.evidenceRefCount]})]}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>f(!1),disabled:c,children:g("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"destructive",onClick:e,disabled:c,children:g("projects.projectManagerDeleteWorkItem")})]})]})})}function ce({error:a,isSaving:c,onConfirm:d,onOpenChange:e,open:f,reason:g,reasonRef:h,setReason:i,t:j,workItemTitle:k}){return(0,b.jsx)(U.Dialog,{open:f,onOpenChange:e,children:(0,b.jsxs)(U.DialogContent,{children:[(0,b.jsxs)(U.DialogHeader,{children:[(0,b.jsx)(U.DialogTitle,{children:j("projects.projectManagerDoneReasonTitle")}),(0,b.jsx)(U.DialogDescription,{children:j("projects.projectManagerDoneReasonBody")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(W.Label,{htmlFor:"project-manager-done-reason",children:j("projects.projectManagerDoneReasonLabel")}),(0,b.jsx)(X.Textarea,{id:"project-manager-done-reason",ref:h,value:g,"aria-invalid":!!a,disabled:c,onChange:a=>i(a.target.value)}),k&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:k}),a&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:a})]}),(0,b.jsxs)(U.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>e(!1),disabled:c,children:j("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{className:"bg-brand text-brand-foreground hover:bg-brand/90",onClick:d,disabled:c,children:j("projects.projectManagerConfirmStatusChange")})]})]})})}var cf=a.i(37060);function cg({error:a,events:c,filter:d,hasLoadedEvents:e,isFetching:f,onFilterChange:g,onLoadMore:h,onRefresh:i,refreshing:k,t:l,totalCount:m,workItems:n}){let[p,q]=(0,j.useState)(!1);return(0,b.jsxs)(I.Card,{"data-testid":"project-manager-ledger",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-center justify-between gap-3",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(w.History,{className:"size-4 text-brand"}),l("projects.projectManagerLedger"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:m})]}),(0,b.jsx)(G.Button,{size:"xs",variant:"ghost","aria-label":l("projects.projectManagerLedgerToggle"),"aria-expanded":p,onClick:()=>q(a=>!a),children:(0,b.jsx)(cf.ChevronDown,{className:(0,ab.cn)("size-4 transition-transform",p&&"rotate-180")})})]}),(0,b.jsx)("div",{className:"forgebadger-collapse-grid","data-open":p,children:(0,b.jsx)("div",{children:(0,b.jsxs)(I.CardContent,{className:"space-y-3 pt-0",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2 border-t border-border/70 pt-3",children:bF.LEDGER_FILTER_OPTIONS.map(a=>(0,b.jsx)(G.Button,{size:"sm",variant:d===a.value?"default":"outline",className:d===a.value?"bg-brand text-brand-foreground hover:bg-brand/90":void 0,onClick:()=>g(a.value),children:l(a.labelKey)},a.value))}),a?(0,b.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-3",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-4"}),l("projects.projectManagerLedgerLoadFailed")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:i,disabled:k,children:[(0,b.jsx)(_.RefreshCw,{className:(0,ab.cn)("mr-2 size-4",k&&"animate-spin")}),l("projects.projectManagerLedgerRefresh")]})]})}):f&&!e?(0,b.jsx)("div",{className:"py-4 text-center text-sm text-muted-foreground",children:l("projects.projectManagerLoading")}):e?0===c.length?(0,b.jsx)(bf,{title:l("projects.projectManagerLedgerFilteredEmptyTitle"),body:l("projects.projectManagerLedgerFilteredEmptyBody"),icon:w.History}):(0,b.jsx)("div",{className:"space-y-3",children:c.map(a=>(0,b.jsx)(ch,{event:a,t:l,workItemTitle:(0,a8.ledgerWorkItemTitle)(a,n)},a.id))}):(0,b.jsx)(bf,{title:l("projects.projectManagerNoLedgerTitle"),body:l("projects.projectManagerNoLedgerBody"),icon:w.History}),!a&&(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:h,disabled:f,children:l("projects.projectManagerLoadMoreLedger")})})]})})})]})}function ch({event:a,t:c,workItemTitle:d}){let e=(0,a8.ledgerEventNote)(a.eventType,c);return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 px-3 py-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,a8.ledgerEventBadgeVariant)(a.eventType),children:(0,a8.eventLabel)(a.eventType,c)}),a.status?(0,b.jsx)(H.Badge,{variant:(0,a8.statusBadgeVariant)(a.status),children:(0,a8.statusLabel)(a.status,c)}):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"-"})]}),(0,b.jsx)("p",{className:"break-words text-sm font-medium",children:d}),e&&(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:e})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:(0,a8.formatTimestamp)(a.createdAt)})]}),(0,b.jsx)("div",{className:"mt-3 grid gap-2 sm:grid-cols-2",children:(0,b.jsx)(be,{label:c("projects.projectManagerEvidenceRefs"),value:a.evidenceRefCount})}),a.trace&&(0,b.jsx)(ci,{trace:a.trace,t:c})]})}function ci({trace:a,t:c}){let d=(0,a8.ledgerTraceMarkers)(a);return 0===d.length?null:(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-border/70 bg-background/40 p-3",children:[(0,b.jsx)("div",{className:"text-xs font-medium uppercase text-muted-foreground",children:c("projects.projectManagerLedger")}),(0,b.jsx)("div",{className:"mt-2 grid gap-2 sm:grid-cols-2",children:d.map(a=>(0,b.jsx)(be,{label:c(a.labelKey),value:a.value},`${a.labelKey}-${a.value}`))})]})}function cj(a){return(0,b.jsx)(a4.Provider,{value:a.authority,children:(0,b.jsx)(ck,{...a})})}function ck({projectId:a,enabled:c,selectedWorkItemId:d=null}){let{t:f}=(0,g.useLanguage)(),{canEdit:h,canManage:i,legacySessions:k,actorId:n}=a5(),o=(0,m.useQueryClient)(),p=c&&a.length>0,[q,r]=(0,j.useState)(!1),[s,t]=(0,j.useState)(()=>(0,a8.createGoalDraft)(null)),[u,v]=(0,j.useState)(null),w=(0,a8.projectManagerViewStorageKey)(a),[x,y]=(0,j.useState)(()=>(0,a8.readProjectManagerViewPrefs)(w).statusFilter),[z,A]=(0,j.useState)(()=>(0,a8.readProjectManagerViewPrefs)(w).viewMode),[B,C]=(0,j.useState)([]),[D,E]=(0,j.useState)(""),[F,H]=(0,j.useState)(null),[J,K]=(0,j.useState)(null),[L,M]=(0,j.useState)(!1),[N,P]=(0,j.useState)(()=>(0,a8.createWorkItemDraft)()),[Q,R]=(0,j.useState)(null),[S,T]=(0,j.useState)(null),[U,V]=(0,j.useState)(()=>(0,a8.createEditWorkItemDraft)(null)),[W,X]=(0,j.useState)(null),[Y,Z]=(0,j.useState)(null),[$,aa]=(0,j.useState)(null),[ac,ad]=(0,j.useState)(()=>(0,a8.createEvidenceDraft)()),[ae,af]=(0,j.useState)(null),[ag,ah]=(0,j.useState)(""),[ai,aj]=(0,j.useState)(null),[ak,al]=(0,j.useState)(null),[am,an]=(0,j.useState)(null),[ao,ap]=(0,j.useState)(null),[aq,ar]=(0,j.useState)(null),[as,at]=(0,j.useState)("all"),[au,av]=(0,j.useState)(bF.LEDGER_PAGE_SIZE),[aw,ax]=(0,j.useState)(null),[ay,az]=(0,j.useState)(null),[aA,aB]=(0,j.useState)(!1),[aC,aD]=(0,j.useState)(""),[aE,aF]=(0,j.useState)(null),aG=(0,j.useRef)(null),aH=(0,j.useRef)(null),aI=(0,e.useQuery)({queryKey:["project-manager",a,"goal",n],queryFn:()=>(0,O.getProjectManagerGoal)(a),enabled:p,retry:!1}),aJ=aI.data?.goal??null,aK=(0,e.useQuery)({queryKey:["project-manager",a,"work-items",{limit:bF.WORK_ITEM_LIMIT},n],queryFn:()=>(0,O.listProjectManagerWorkItems)(a,{limit:bF.WORK_ITEM_LIMIT}),enabled:p,retry:!1}),aL=(0,e.useQuery)({queryKey:["project-manager",a,"task-packets",{limit:bF.WORK_ITEM_LIMIT},n],queryFn:()=>(0,O.listProjectManagerTaskPackets)(a,{limit:bF.WORK_ITEM_LIMIT}),enabled:p&&k,retry:!1}),aM=(0,e.useQuery)({queryKey:["project-manager",a,"stages",n],queryFn:()=>(0,O.listProjectManagerStages)(a),enabled:p,retry:!1}),aN=(0,e.useQuery)({queryKey:["project-manager",a,"work-item-links",n],queryFn:()=>(0,O.listProjectManagerWorkItemLinks)(a),enabled:p,retry:!1}),aO=(0,e.useQuery)({queryKey:["project-manager",a,"ledger",{limit:au},n],queryFn:()=>(0,O.listProjectManagerLedger)(a,{limit:au}),enabled:p,retry:!1}),aP=(0,e.useQuery)({queryKey:["project-manager",a,"work-item",J,"task-packet",n],queryFn:()=>(0,O.getProjectManagerTaskPacket)(a,J??""),enabled:p&&k&&!!J,retry:!1}),aQ=(0,e.useQuery)({queryKey:["sessions",{projectId:a},n],queryFn:()=>(0,O.listSessions)({projectId:a}),enabled:p&&k&&!!J,retry:!1});(0,j.useEffect)(()=>{q||t((0,a8.createGoalDraft)(aJ))},[aJ,q]),(0,j.useEffect)(()=>{(0,a8.writeProjectManagerViewPrefs)(w,{statusFilter:x,viewMode:z})},[w,x,z]);let aR=async()=>{await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"goal"]}),o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]}),o.invalidateQueries({queryKey:["project-manager",a,"stages"]}),o.invalidateQueries({queryKey:["project-manager",a,"work-item-links"]})])},aS=b=>{o.setQueriesData({queryKey:["project-manager",a,"work-items"],predicate:a=>a.queryKey.at(-1)===n},a=>a?{workItems:b(a.workItems)}:a)},aT=(0,l.useMutation)({mutationFn:b=>(0,O.updateProjectManagerGoal)(a,b),onSuccess:async({goal:a})=>{v(null),t((0,a8.createGoalDraft)(a)),r(!1),await aR()},onError:a=>{v((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerGoalMutationError")))}}),aU=(0,l.useMutation)({mutationFn:b=>(0,O.createProjectManagerWorkItem)(a,b),onSuccess:async({workItem:b})=>{R(null),P((0,a8.createWorkItemDraft)()),M(!1),aS(a=>[...a.filter(a=>a.id!==b.id),b]),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{R((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerCreateWorkItemError")))}}),aV=(0,l.useMutation)({mutationFn:({input:b,workItemId:c})=>(0,O.updateProjectManagerWorkItem)(a,c,b),onSuccess:async({workItem:b})=>{X(null),T(null),V((0,a8.createEditWorkItemDraft)(null)),aS(a=>a.map(a=>a.id===b.id?b:a)),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{X((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerUpdateWorkItemError")))}}),aW=(0,l.useMutation)({mutationFn:({workItemId:b})=>(0,O.deleteProjectManagerWorkItem)(a,b,{confirm:!0,expectedRevision:aK.data?.workItems.find(a=>a.id===b)?.revision}),onSuccess:async({workItem:b},c)=>{aa(null),Z(null),K(a=>a===c.workItemId?null:a),C(a=>a.filter(a=>a!==c.workItemId)),aS(a=>a.filter(a=>a.id!==b.id)),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{aa((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerDeleteWorkItemError")))}}),aX=(0,l.useMutation)({mutationFn:b=>(0,O.batchUpdateProjectManagerWorkItemStatuses)(a,b),onSuccess:async({workItems:b})=>{H(null),E(""),C([]),az(null),aD(""),aF(null);let c=new Map(b.map(a=>[a.id,a]));aS(a=>a.map(a=>c.get(a.id)??a)),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{let b=(0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerBatchStatusError"));H(b),ay&&aF(b)}}),aY=(0,l.useMutation)({mutationFn:({input:b,workItemId:c})=>(0,O.updateProjectManagerWorkItemStatus)(a,c,b),onSuccess:async()=>{ax(null),az(null),aD(""),aF(null),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{ax((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerStatusMutationError")))}}),aZ=(0,l.useMutation)({mutationFn:({reference:b,workItemId:c})=>(0,O.attachProjectManagerWorkItemEvidence)(a,c,{evidenceRefs:[b],expectedRevision:aK.data?.workItems.find(a=>a.id===c)?.revision}),onSuccess:async()=>{af(null),ad((0,a8.createEvidenceDraft)()),await Promise.all([o.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),o.invalidateQueries({queryKey:["collaboration",a]}),o.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{af((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerEvidenceAttachError")))}}),a$=(0,l.useMutation)({mutationFn:({sessionId:b,workItemId:c})=>(0,O.linkProjectManagerTaskPacketSession)(a,c,{sessionId:b}),onSuccess:({taskPacket:b})=>{aj(null),ah(b.sessionLink?.sessionId??""),o.setQueryData(["project-manager",a,"work-item",b.workItemId,"task-packet"],{taskPacket:b}),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]})},onError:a=>{aj((0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerTaskPacketLinkError")))}}),a_=(0,l.useMutation)({mutationFn:({workItemId:b,aiTool:c})=>(0,O.startProjectManagerTaskPacket)(a,b,{aiTool:c}),onSuccess:({taskPacket:b,session:c})=>{al(null),aj(null),an(null),ar(null),ah(b.sessionLink?.sessionId??""),o.setQueryData(["project-manager",a,"work-item",b.workItemId,"task-packet"],{taskPacket:b}),o.setQueryData(["sessions",{projectId:a}],a=>a?{sessions:a.sessions.some(a=>a.id===c.id)?a.sessions.map(a=>a.id===c.id?c:a):[...a.sessions,c]}:a),o.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),o.invalidateQueries({queryKey:["sessions",{projectId:a}]})},onError:a=>{let b=(0,a8.projectManagerMutationMessage)(a,f("projects.projectManagerTaskPacketStartError"));al(b),ap(b),an(null)}}),a0=aI.error??aK.error,a1=a0 instanceof O.GatewayApiError&&404===a0.status,a2=aI.isLoading||aK.isLoading,a3=aI.isFetching||aK.isFetching||aL.isFetching||aO.isFetching,a4=aK.data?.workItems??[],a6=k?aL.data?.taskPackets??[]:[],a7=aM.data?.stages??[],ba=aN.data?.links??[],bb=(0,a8.filterWorkItemsForTable)(a4,x),bc=aO.data?.events??[],bd=(0,a8.filterLedgerEvents)(bc,as),be=a4.find(a=>a.id===J)??null,bf=aP.data?.taskPacket??null,bg=(aQ.data?.sessions??[]).filter(a=>{var b;return a.projectId&&("running"===(b=a.status)||"detached"===b)}),bh=a4.find(a=>a.id===S)??null,bi=a4.find(a=>a.id===Y)??null,bj=B.map(a=>a4.find(b=>b.id===a)).filter(a=>!!a),bl=(0,a8.batchStatusTargets)(bj),bm=bl.includes(D)?D:"",bn=ay?.[0]??null;if((0,j.useEffect)(()=>{let a=d?.trim()??"";if(!a){aH.current=null;return}aH.current===a||a4.some(b=>b.id===a)&&(K(a),aH.current=a)},[d,a4]),(0,j.useEffect)(()=>{af(null),ad((0,a8.createEvidenceDraft)()),aj(null),al(null),ap(null),ah("")},[J]),(0,j.useEffect)(()=>{ah(bf?.sessionLink?.sessionId??"")},[bf?.sessionLink?.sessionId]),(0,j.useEffect)(()=>{ay&&aG.current?.focus()},[ay]),!c)return null;let bo=()=>{p&&(aI.refetch(),aK.refetch(),k&&aL.refetch(),aO.refetch(),aM.refetch(),aN.refetch())},bp=(a,b)=>{if(h){if(ax(null),"done"===b){az([{...a}]),aB(!1),aD(""),aF(null);return}aY.mutate({workItemId:a.id,input:{status:b,expectedRevision:a.revision}})}};return(0,b.jsxs)("div",{className:"space-y-5","data-testid":"project-manager-panel",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:f("projects.devTasks")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f("projects.devTasksDescription")})]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:bo,disabled:a3||!p,children:[(0,b.jsx)(_.RefreshCw,{className:(0,ab.cn)("mr-2 size-4",a3&&"animate-spin")}),f("projects.devTasksRefresh")]})]}),a0?(0,b.jsx)(cl,{message:a1?f("projects.projectManagerNotFound"):f("projects.projectManagerLoadFailed"),onRefresh:bo,refreshing:a3}):a2?(0,b.jsx)(I.Card,{children:(0,b.jsx)(I.CardContent,{className:"py-8 text-center text-sm text-muted-foreground",children:f("projects.projectManagerLoading")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a9,{goal:aJ,t:f,draft:s,error:u,isEditing:q,isSaving:aT.isPending,onCancel:()=>{v(null),t((0,a8.createGoalDraft)(aJ)),r(!1)},onDraftChange:t,onEdit:()=>{v(null),t((0,a8.createGoalDraft)(aJ)),r(!0)},onSave:()=>{if(!(i??h))return;let a=s.summary.trim();a?(v(null),aT.mutate({summary:a,constraints:(0,a8.parseProjectManagerTextList)(s.constraintsText),acceptanceCriteria:(0,a8.parseProjectManagerTextList)(s.acceptanceCriteriaText),status:s.status.trim()||"active"})):v(f("projects.projectManagerGoalSummaryRequired"))}}),(0,b.jsx)(bk,{isFetching:aM.isFetching||aK.isFetching,links:ba,onViewDetails:a=>K(a.id),projectId:a,stages:a7,t:f,taskPackets:a6,workItems:a4}),(0,b.jsx)(bJ,{batchStatusError:F,batchStatusPending:aX.isPending,batchTargetOptions:bl,batchTargetStatus:bm,isFetching:aK.isFetching,onBatchStatusSubmit:()=>{if(h){if(0===bj.length)return void H(f("projects.projectManagerBatchStatusSelectionRequired"));if(!bm)return void H(f("projects.projectManagerBatchStatusTargetRequired"));if(H(null),"done"===bm){az(bj.map(a=>({...a}))),aB(!0),aD(""),aF(null);return}aX.mutate({updates:bj.map(a=>({workItemId:a.id,expectedRevision:a.revision,status:bm}))})}},onBatchTargetStatusChange:E,onClearSelection:()=>{H(null),E(""),C([])},onCreate:()=>{R(null),P((0,a8.createWorkItemDraft)()),M(!0)},onDelete:a=>{aa(null),Z(a.id)},onEdit:a=>{X(null),V((0,a8.createEditWorkItemDraft)(a)),T(a.id)},onQuickStart:a=>{ap(null),ar(a)},onStatusFilterChange:y,onStatusChange:bp,onToggleSelection:(a,b)=>{H(null),C(c=>b?c.includes(a.id)?c:[...c,a.id]:c.filter(b=>b!==a.id))},onViewDetails:a=>K(a.id),quickStartError:ao,quickStartPendingWorkItemId:am,selectedWorkItemIds:B,statusError:aw,statusFilter:x,statusMutationPending:!h||aY.isPending,viewMode:z,onViewModeChange:A,highlightedWorkItemId:d,t:f,tableWorkItems:bb,taskPackets:a6,taskPacketsError:aL.error,taskPacketsFetching:aL.isFetching,workItems:a4}),(0,b.jsx)(cg,{error:aO.error,events:bd,filter:as,hasLoadedEvents:bc.length>0,isFetching:aO.isFetching,onFilterChange:at,onLoadMore:()=>{av(a=>a+bF.LEDGER_PAGE_SIZE)},onRefresh:()=>{p&&aO.refetch()},refreshing:aO.isFetching,t:f,totalCount:bc.length,workItems:a4})]}),(0,b.jsx)(b1,{evidenceDraft:ac,evidenceError:ae,isEvidenceSaving:aZ.isPending,isTaskPacketLinking:a$.isPending,isTaskPacketLoading:aP.isLoading||aQ.isLoading,isTaskPacketStarting:a_.isPending,item:be,ledgerEvents:bc,links:ba,onAttachEvidence:()=>{if(!h||!be)return;if(0===ac.kind.trim().length)return void af(f("projects.projectManagerEvidenceKindRequired"));if("file_path"===ac.referenceType&&0===ac.path.trim().length)return void af(f("projects.projectManagerEvidencePathRequired"));if(("terminal_snapshot"===ac.referenceType||"session"===ac.referenceType)&&0===ac.sessionId.trim().length)return void af(f("projects.projectManagerEvidenceSessionRequired"));let a=ac.sessionId.trim().length>0&&("terminal_snapshot"===ac.referenceType||"session"===ac.referenceType);if(0===ac.ref.trim().length&&0===ac.path.trim().length&&!a)return void af(f("projects.projectManagerEvidenceReferenceRequired"));if((0,a8.validateEvidenceReferenceInput)(ac))return void af(f("projects.projectManagerEvidenceUnsafeValue"));let b=(0,a8.createSingleEvidenceReference)(ac);b?(af(null),aZ.mutate({workItemId:be.id,reference:b})):af(f("projects.projectManagerEvidenceReferenceRequired"))},onEvidenceDraftChange:ad,onOpenChange:a=>{a||K(null)},onStatusChange:bp,onTaskPacketSessionChange:ah,onTaskPacketSessionLink:()=>{if(!k||!be)return;let a=ag.trim();a?(aj(null),a$.mutate({workItemId:be.id,sessionId:a})):aj(f("projects.projectManagerTaskPacketSessionRequired"))},onTaskPacketStart:()=>{!k||be&&(al(null),a_.mutate({workItemId:be.id}))},open:!!be,projectId:a,stages:a7,statusMutationPending:!h||aY.isPending,t:f,taskPacket:bf,taskPacketError:aP.error,taskPacketLinkError:ai,taskPacketStartError:ak,taskPacketSessionId:ag,taskPacketSessions:bg,workItems:a4}),(0,b.jsx)(b8,{error:ao,isStarting:a_.isPending,item:aq,onConfirm:a=>{aq&&!a_.isPending&&(ap(null),an(aq.id),a_.mutate({workItemId:aq.id,aiTool:a}))},onOpenChange:a=>{a||(ar(null),ap(null))},t:f,taskPacket:aq?a6.find(a=>a.workItemId===aq.id)??null:null}),(0,b.jsx)(cb,{draft:N,error:Q,isSaving:!h||aU.isPending,onDraftChange:P,onOpenChange:M,onSave:()=>{if(!h)return;let a=N.title.trim();a?(R(null),aU.mutate((0,a8.createWorkItemInput)(N,a))):R(f("projects.projectManagerWorkItemTitleRequired"))},open:L,t:f}),(0,b.jsx)(cc,{draft:U,error:W,isSaving:!h||aV.isPending,item:bh,onDraftChange:V,onOpenChange:a=>{a||(T(null),X(null),V((0,a8.createEditWorkItemDraft)(null)))},onSave:()=>{if(!h||!bh)return;let a=U.title.trim();a?(X(null),aV.mutate({workItemId:bh.id,input:(0,a8.createWorkItemUpdateInput)(U,a)})):X(f("projects.projectManagerWorkItemTitleRequired"))},t:f}),(0,b.jsx)(cd,{error:$,isDeleting:!h||aW.isPending,item:bi,onConfirm:()=>{!h||bi&&(aa(null),aW.mutate({workItemId:bi.id}))},onOpenChange:a=>{a||(Z(null),aa(null))},t:f}),(0,b.jsx)(ce,{error:aE,isSaving:aY.isPending||aX.isPending,onConfirm:()=>{if(!h||!bn||!ay||aY.isPending||aX.isPending)return;let a=aC.trim();a?(aF(null),aA)?aX.mutate({updates:ay.map(b=>({workItemId:b.id,status:"done",expectedRevision:b.revision,manualCompletionReason:a}))}):aY.mutate({workItemId:bn.id,input:{status:"done",manualCompletionReason:a,expectedRevision:bn.revision}}):aF(f("projects.projectManagerDoneReasonRequired"))},onOpenChange:a=>{a||(az(null),aD(""),aF(null))},open:!!bn,reason:aC,reasonRef:aG,setReason:aD,t:f,workItemTitle:ay?.map(a=>a.title).join(" · ")??""})]})}function cl({message:a,onRefresh:c,refreshing:d}){let{t:e}=(0,g.useLanguage)();return(0,b.jsx)(I.Card,{className:"border-destructive/50 bg-destructive/10",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-4"}),a]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:c,disabled:d,children:[(0,b.jsx)(_.RefreshCw,{className:(0,ab.cn)("mr-2 size-4",d&&"animate-spin")}),e("projects.devTasksRefresh")]})]})})}a.s(["default",0,function(){let{id:a}=(0,c.useParams)(),j=(0,c.useSearchParams)(),{user:k}=(0,f.useAuth)(),{t:l}=(0,g.useLanguage)(),m=(0,e.useQuery)({queryKey:["project-task-context",a,k?.id],queryFn:()=>(0,h.getProjectTaskContext)(a),enabled:!!k,retry:!1,refetchInterval:3e4}),n=(0,e.useQuery)({queryKey:["collaboration",a,"project",k?.id],queryFn:()=>i.collaborationApi.project(a),enabled:!!m.data,retry:!1,refetchInterval:3e4}),o=m.error??n.error;if(o)return(0,b.jsx)("main",{className:"p-6",children:(0,b.jsx)(bT.ErrorNotice,{error:o,retry:()=>{m.refetch(),n.refetch()}})});if(!m.data||!n.data||!k)return(0,b.jsx)("main",{role:"status",className:"p-6",children:l("common.loading")});let p={canEdit:m.data.access.capabilities.some(a=>"develop"===a||"manage"===a),canManage:m.data.access.capabilities.includes("manage"),legacySessions:m.data.privateDetailAllowed&&!m.data.revisionRequired,collaboration:n.data,actorId:k.id};return m.data.privateDetailAllowed?(0,b.jsx)(aW,{taskAuthority:p},`${k?.id}:${a}`):(0,b.jsxs)("main",{className:"mx-auto max-w-[1500px] space-y-5 p-4 pt-16 md:p-6",children:[(0,b.jsxs)(d.default,{href:"/projects",className:"text-sm text-muted-foreground",children:["← ",l("nav.projects")]}),(0,b.jsx)("h1",{className:"text-xl font-semibold",children:m.data.project.name}),(0,b.jsx)("h2",{className:"text-sm font-medium",children:l("projects.devTasks")}),(0,b.jsx)(cj,{projectId:a,enabled:!0,selectedWorkItemId:j.get("workItemId")??j.get("task"),authority:p},`${k?.id}:${a}`)]})}],46759)}];
|
|
1
|
+
module.exports=[46759,a=>{"use strict";var b=a.i(20486),c=a.i(13376),d=a.i(72637),e=a.i(39747),f=a.i(10339),g=a.i(79914),h=a.i(54588),i=a.i(29331),j=a.i(85198),k=a.i(58382),l=a.i(4837),m=a.i(26248),n=a.i(84889),o=a.i(44935),p=a.i(76770),q=a.i(6145),r=a.i(91167),s=a.i(62803),t=a.i(97531),u=a.i(60584),v=a.i(78234),w=a.i(94872),x=a.i(82977),y=a.i(35485);let z=(0,y.default)("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var A=a.i(38094),B=a.i(90259),C=a.i(67164),D=a.i(94327),E=a.i(37134),F=a.i(71700),G=a.i(97494),H=a.i(4730),I=a.i(70458),J=a.i(90991),K=a.i(94851),L=a.i(23834),M=a.i(35133),N=a.i(2337);let O=(0,y.default)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var P=a.i(39042);function Q(a){return a.slice(0,10)}function R({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-muted/30 p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 text-lg font-semibold",children:c})]})}let S=(0,j.forwardRef)(function({projectId:a,templateId:c,credentialMode:d,onPendingChange:e,pendingAction:f,onPendingActionConsumed:h},i){let k=(0,m.useQueryClient)(),{t:n}=(0,g.useLanguage)(),[o,p]=(0,j.useState)([]),[q,r]=(0,j.useState)({}),[t,u]=(0,j.useState)(!1),v=(0,j.useRef)(null),w=null===c,x=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,P.previewConfigSync)(a,c,d)},onSuccess:a=>{p(a.conflicts??[]),r((0,P.defaultConfigConflictDecisions)(a.conflicts??[]))}}),y=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,P.applyConfigSync)(a,q,c,d)},onSuccess:()=>{p([]),r({}),k.invalidateQueries({queryKey:["activities"]})}}),z=(0,l.useMutation)({mutationFn:()=>{if(null===c)throw Error("Project is not tracking a template");return(0,P.getConfigCompliance)(a,{templateId:c,credentialMode:d})}}),A=(0,l.useMutation)({mutationFn:()=>(0,P.updateProjectTemplate)(a,null),onSuccess:()=>{k.invalidateQueries({queryKey:["project",a]})}});(0,j.useImperativeHandle)(i,()=>({preview:()=>{w||x.mutate()},checkCompliance:()=>{w||z.mutate()}})),(0,j.useEffect)(()=>{p([]),r({})},[c,d]),(0,j.useEffect)(()=>{e?.({preview:x.isPending,compliance:z.isPending})},[e,x.isPending,z.isPending]);let B=x.mutate;if((0,j.useEffect)(()=>{if(!f){v.current=null;return}w||v.current===f||(v.current=f,"preview"===f&&B(),h?.())},[f,w,B,h]),w)return(0,b.jsxs)("p",{className:"rounded-md border border-border/70 bg-muted/30 px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:n("projects.untrackedConfigTitle")})," · ",n("projects.untrackedConfigDescription")," ",n("projects.untrackedConfigHint")]});let C=o.some(a=>0===a.allowedActions.length);return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-md border border-border/70 bg-muted/30 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)("span",{className:"shrink-0 text-sm font-medium",children:n("projects.configSyncTitle")}),(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs text-muted-foreground",children:c})]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>z.mutate(),disabled:z.isPending,children:[(0,b.jsx)(N.ShieldCheck,{className:"size-4"}),z.isPending?n("projects.checkingCompliance"):n("projects.checkCompliance")]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>x.mutate(),disabled:x.isPending,children:[(0,b.jsx)(s.FileCode2,{className:"size-4"}),x.isPending?n("projects.generating"):n("projects.previewConfig")]})]}),(x.data||o.length>0)&&(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsx)(I.CardTitle,{className:"text-base",children:n("projects.configPreview")})}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm text-muted-foreground",children:[(0,b.jsxs)("div",{children:[n("projects.previewFiles"),": ",x.data?.plan.files.length??0]}),(0,b.jsx)("p",{children:n("projects.configPreviewDescription")})]}),o.length>0?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.conflicts")}),(0,b.jsx)("ul",{className:"space-y-1 text-sm text-muted-foreground",children:o.map(a=>(0,b.jsxs)("li",{className:"flex flex-col gap-2 rounded-md border border-border bg-background p-3 md:flex-row md:items-center md:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-foreground",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:"modified"===a.conflictType?"destructive":"secondary",children:a.conflictType})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-xs",children:[a.existingSha256&&(0,b.jsxs)("span",{children:[n("projects.existingHash"),": ",Q(a.existingSha256)]}),a.incomingSha256&&(0,b.jsxs)("span",{children:[n("projects.incomingHash"),": ",Q(a.incomingSha256)]})]}),a.diffPreview&&a.diffPreview.length>0&&(0,b.jsx)("div",{className:"overflow-hidden rounded-md border border-border bg-muted/40",children:a.diffPreview.map(a=>(0,b.jsxs)("div",{className:"grid gap-0 border-b border-border/60 last:border-b-0 md:grid-cols-[72px_1fr_1fr]",children:[(0,b.jsxs)("div",{className:"bg-background/70 px-2 py-1 font-mono text-[11px] text-muted-foreground",children:["L",a.line]}),(0,b.jsxs)("div",{className:"min-w-0 border-border px-2 py-1 font-mono text-[11px] text-destructive md:border-l",children:[(0,b.jsx)("span",{className:"mr-1 select-none",children:"-"}),a.existing]}),(0,b.jsxs)("div",{className:"min-w-0 border-border px-2 py-1 font-mono text-[11px] text-emerald-600 md:border-l dark:text-emerald-400",children:[(0,b.jsx)("span",{className:"mr-1 select-none",children:"+"}),a.incoming]})]},a.line))})]}),a.allowedActions.length>0?(0,b.jsx)("select",{className:"h-8 rounded-md border border-input bg-background px-2 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",value:q[a.relativePath]??"skip",onChange:b=>r(c=>({...c,[a.relativePath]:b.target.value})),"aria-label":`${n("projects.conflictDecision")} ${a.relativePath}`,children:a.allowedActions.map(a=>(0,b.jsx)("option",{value:a,children:"overwrite"===a?n("projects.overwrite"):n("projects.skip")},a))}):(0,b.jsx)(H.Badge,{variant:"destructive",children:n("projects.blocked")})]},a.relativePath))})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:n("projects.noConflicts")}),(0,b.jsxs)(G.Button,{onClick:()=>y.mutate(),disabled:y.isPending||C,children:[(0,b.jsx)(s.FileCode2,{className:"mr-2 size-4"}),y.isPending?n("projects.generating"):n("projects.applyConfig")]})]})]}),z.data&&(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center justify-between gap-3 text-base",children:[(0,b.jsx)("span",{children:n("projects.configCompliance")}),(0,b.jsx)(H.Badge,{variant:"compliant"===z.data.compliance.status?"default":"secondary",children:"compliant"===z.data.compliance.status?n("projects.compliant"):n("projects.needsAttention")})]})}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-2 text-sm md:grid-cols-5",children:[(0,b.jsx)(R,{label:n("projects.totalFiles"),value:z.data.compliance.totalFiles}),(0,b.jsx)(R,{label:n("projects.missingFiles"),value:z.data.compliance.missingFiles.length}),(0,b.jsx)(R,{label:n("projects.identicalFiles"),value:z.data.compliance.identicalFiles.length}),(0,b.jsx)(R,{label:n("projects.staleFiles"),value:z.data.compliance.staleFiles.length}),(0,b.jsx)(R,{label:n("projects.unsafeFiles"),value:z.data.compliance.unsafeFiles.length})]}),z.data.compliance.requiresDecision.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.requiresDecision")}),(0,b.jsx)("ul",{className:"space-y-1 text-sm text-muted-foreground",children:z.data.compliance.requiresDecision.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>x.mutate(),disabled:x.isPending,children:[(0,b.jsx)(s.FileCode2,{className:"mr-2 size-4"}),n("projects.reviewConfig")]})]})]})]}),x.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:x.error instanceof Error?x.error.message:n("projects.failedGenerateConfig")}),z.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:z.error instanceof Error?z.error.message:n("projects.failedCompliance")}),y.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y.error instanceof Error?y.error.message:n("projects.failedGenerateConfig")}),A.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:A.error instanceof Error?A.error.message:n("projects.failedCompliance")}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{variant:"ghost",size:"sm",className:"text-destructive",onClick:()=>{u(!0)},disabled:A.isPending,children:[(0,b.jsx)(O,{className:"mr-2 size-4"}),A.isPending?n("projects.unbinding"):n("projects.stopTrackingTemplate")]})}),(0,b.jsx)(J.ConfirmDialog,{open:t,destructive:!0,pending:A.isPending,title:n("projects.stopTrackingTitle"),description:n("projects.stopTrackingConfirm"),confirmLabel:n("projects.stopTrackingTemplate"),onOpenChange:u,onConfirm:()=>A.mutate()})]})});var T=a.i(85564),U=a.i(16569),V=a.i(62384),W=a.i(55068),X=a.i(3030),Y=a.i(12599);let Z=P.runtimeAdapterIds;function $({projectId:a,open:c,onOpenChange:d,onExtracted:e}){let{t:f}=(0,g.useLanguage)(),[h,i]=(0,j.useState)(""),[k,m]=(0,j.useState)(""),[n,o]=(0,j.useState)("claude"),[p,q]=(0,j.useState)(!0),r=(0,l.useMutation)({mutationFn:()=>(0,P.extractProjectTemplate)(a,{name:h.trim(),...k.trim()?{description:k.trim()}:{},adapter:n,bind:p}),onSuccess:()=>{T.toast.success(f("templates.created")),e?.()}}),s=a=>{r.isPending||(a||(i(""),m(""),o("claude"),q(!0),r.reset()),d(a))},t=h.trim().length>0&&!r.isPending;return(0,b.jsx)(V.Dialog,{open:c,onOpenChange:s,children:(0,b.jsxs)(V.DialogContent,{className:"sm:max-w-lg",children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:f("templates.extractTitle")}),(0,b.jsx)(V.DialogDescription,{children:f("templates.extractDescription")})]}),(0,b.jsxs)("form",{className:"space-y-4",onSubmit:a=>{a.preventDefault(),t&&r.mutate()},children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"extract-template-name",children:f("common.name")}),(0,b.jsx)(W.Input,{id:"extract-template-name",value:h,onChange:a=>i(a.target.value),disabled:r.isPending})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"extract-template-description",children:f("common.description")}),(0,b.jsx)(Y.Textarea,{id:"extract-template-description",value:k,onChange:a=>m(a.target.value),rows:3,disabled:r.isPending})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"extract-template-adapter",children:f("templates.adapter")}),(0,b.jsx)("select",{id:"extract-template-adapter","aria-label":f("templates.adapter"),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",value:n,onChange:a=>o(a.target.value),disabled:r.isPending,children:Z.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 text-sm",children:[(0,b.jsx)(U.Checkbox,{checked:p,onCheckedChange:a=>q(!0===a),disabled:r.isPending}),f("templates.extractBind")]}),r.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:r.error instanceof Error?r.error.message:f("templates.extractFailed")}),r.data&&(0,b.jsxs)("div",{className:"space-y-3 rounded-md border border-border/70 bg-muted/20 p-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:f("templates.extractedFiles")}),(0,b.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:r.data.extracted.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-mono",children:a.filePath}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.sizeBytes," B"]})]},a.filePath))})]}),r.data.skipped.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:f("templates.skippedFiles")}),(0,b.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:r.data.skipped.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-mono",children:a.path}),(0,b.jsx)("span",{className:"shrink-0",children:a.reason})]},a.path))})]})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:r.isPending,onClick:()=>s(!1),children:f("common.cancel")}),(0,b.jsxs)(G.Button,{type:"submit",disabled:!t,children:[(0,b.jsx)(z,{className:"size-4"}),r.isPending?f("templates.extracting"):f("templates.extract")]})]})]})]})})}var _=a.i(6023),aa=a.i(14060),ab=a.i(76310),ac=a.i(39465),ad=a.i(22510),ae=a.i(92019),af=a.i(91638),ag=a.i(802),ah=a.i(38640);function ai({projectId:a,path:c,enabled:d=!0,variant:f="panel",onClose:h,focusLine:i,className:k}){let{t:n}=(0,g.useLanguage)(),p=(0,g.useUiLocale)(),q=(0,j.useRef)(null),[r,s]=(0,j.useState)(null),u=(0,e.useQuery)({queryKey:["workspace-context",a,"file",c],queryFn:()=>(0,P.getProjectWorkspaceFile)(a,c),enabled:d&&!!c,retry:!1}),v=u.data,w=(0,m.useQueryClient)(),[x,y]=(0,j.useState)(!1),[z,B]=(0,j.useState)(""),[C,D]=(0,j.useState)(!1);(0,j.useEffect)(()=>{y(!1),B(""),D(!1)},[c]),(0,j.useEffect)(()=>{if(!C)return;let a=setTimeout(()=>D(!1),2500);return()=>clearTimeout(a)},[C]);let E=!!(v&&!v.binary&&!v.truncated),F=x&&z!==(v?.content??""),H=(0,l.useMutation)({mutationFn:()=>(0,P.putProjectWorkspaceFile)(a,c??"",z),onSuccess:()=>{y(!1),D(!0),w.invalidateQueries({queryKey:["workspace-context",a,"file"]})}});(0,j.useEffect)(()=>{if(!i||!v)return void s(null);s(i);let a=setTimeout(()=>{q.current&&(q.current.scrollTop=Math.max(0,(i-5)*20))},60);return()=>clearTimeout(a)},[i,v]);let I=(0,j.useMemo)(()=>v?.content.split("\n")??[],[v?.content]),J=function(a,b){let[c,d]=(0,j.useState)(null);return(0,j.useEffect)(()=>{let c=!1;if(d(null),a&&b)return(0,ag.highlightWorkspaceCode)(b,a).then(a=>{c||d(a)}),()=>{c=!0}},[a,b]),c}(v&&!v.binary&&v.content.length>0?v.name:null,v?.content??null);return(0,b.jsxs)("div",{"data-testid":"workspace-file-viewer",className:(0,ac.cn)("flex min-h-0 flex-col overflow-hidden rounded-md border border-border/70 bg-background/70",k),children:[c?(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 border-b border-border/70 px-3 py-2",children:[(0,b.jsx)("nav",{"aria-label":n("projects.workspaceBreadcrumb"),className:"min-w-0",children:(0,b.jsx)("ol",{className:"flex min-w-0 flex-wrap items-center gap-1 font-mono text-xs",children:c.split("/").map((a,c,d)=>{let e=c===d.length-1;return(0,b.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[c>0?(0,b.jsx)("span",{className:"text-muted-foreground/50",children:"/"}):null,(0,b.jsx)("span",{className:(0,ac.cn)("truncate",e?"font-medium text-foreground":"text-muted-foreground"),children:a})]},`${c}-${a}`)})})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[v?(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[(0,ah.formatBytes)(v.sizeBytes)," · ",(0,ah.formatWorkspaceTime)(v.updatedAt,p)]}):null,C&&!x?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-500",children:[(0,b.jsx)(ad.Check,{className:"size-3.5"}),n("projects.workspaceFileSaved")]}):null,x?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(G.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>y(!1),disabled:H.isPending,children:n("projects.workspaceCancelEdit")}),(0,b.jsxs)(G.Button,{size:"sm",className:"h-7 px-2 text-xs",disabled:!F||H.isPending,onClick:()=>H.mutate(),children:[H.isPending?(0,b.jsx)(ae.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(ad.Check,{className:"size-3.5"}),n(H.isPending?"projects.workspaceSavingFile":"projects.workspaceSaveFile")]})]}):v?(0,b.jsxs)(G.Button,{variant:"ghost",size:"sm",className:"h-7 gap-1 px-2 text-xs",onClick:()=>{E&&v&&(B(v.content),y(!0))},disabled:!E,title:n(v.truncated?"projects.workspaceFileTooLargeToEdit":"projects.workspaceEditFile"),"aria-label":n("projects.workspaceEditFile"),children:[(0,b.jsx)(A.Pencil,{className:"size-3.5"}),n("projects.workspaceEditFile")]}):null,"sheet"===f&&h?(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:h,"aria-label":n("projects.workspaceCloseViewer"),title:n("projects.workspaceCloseViewer"),children:(0,b.jsx)(af.X,{className:"size-4"})}):null]})]}):null,v?.truncated&&!v.binary?(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-amber-500/30 bg-amber-500/10 px-3 py-1.5 text-[11px] text-amber-400",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),n("projects.workspaceFileTruncated")]}):null,x?(0,b.jsxs)("div",{className:"flex min-h-[240px] min-w-0 flex-1 flex-col overflow-hidden",children:[H.isError?(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-[11px] text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),H.error instanceof Error?H.error.message:n("projects.workspaceFileSaveFailed")]}):null,(0,b.jsx)("textarea",{"data-testid":"workspace-file-editor",className:"min-h-0 flex-1 resize-none overflow-auto bg-transparent px-3 py-3 font-mono text-xs leading-5 text-foreground outline-none [scrollbar-width:thin]",value:z,spellCheck:!1,wrap:"off","aria-label":n("projects.workspaceEditFile"),onChange:a=>B(a.target.value),onKeyDown:a=>{"Escape"===a.key?(a.preventDefault(),y(!1)):(a.metaKey||a.ctrlKey)&&"s"===a.key.toLowerCase()&&(a.preventDefault(),F&&!H.isPending&&H.mutate())}})]}):c?u.isLoading?(0,b.jsx)("div",{className:"min-h-[240px] flex-1 space-y-2 p-4","aria-hidden":"true",children:[100,88,94,70,82,60,90,48].map((a,c)=>(0,b.jsx)("div",{className:"h-3.5 animate-pulse rounded bg-muted/50",style:{width:`${a}%`}},c))}):u.isError?(0,b.jsx)(ak,{destructive:!0,message:u.error instanceof Error?u.error.message:n("projects.workspaceFileLoadFailed")}):v?.binary?(0,b.jsx)(ak,{message:n("projects.workspaceBinaryFile")}):v&&0!==v.content.length?(0,b.jsx)("div",{ref:q,className:"min-h-[240px] min-w-0 flex-1 overflow-auto [scrollbar-width:thin]",children:(0,b.jsxs)("div",{className:"flex min-w-max items-stretch",children:[(0,b.jsx)("div",{"aria-label":n("projects.workspaceLineNumbers"),className:"sticky left-0 shrink-0 select-none border-r border-border/70 bg-muted/40 px-2 py-3 text-right font-mono text-xs leading-5 text-muted-foreground/60",children:I.map((a,c)=>(0,b.jsx)("div",{className:(0,ac.cn)(c+1===r&&"bg-brand/15 text-brand"),children:c+1},c))}),(0,b.jsx)("div",{className:"flex-1 px-3 py-3 font-mono text-xs leading-5 text-foreground",children:I.map((a,c)=>{let d=J?.[c];return(0,b.jsx)("div",{className:(0,ac.cn)("whitespace-pre",c+1===r&&"-mx-3 rounded-sm bg-brand/10 px-3 ring-1 ring-brand/40"),children:d?(0,b.jsx)(aj,{tokens:d}):a.length>0?a:" "},c)})})]})}):(0,b.jsx)(ak,{message:n("projects.workspaceFileEmpty")}):(0,b.jsxs)("div",{className:"flex min-h-[240px] flex-1 flex-col items-center justify-center gap-3 px-6 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)(t.FileText,{className:"size-5"})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n("projects.workspaceSelectFile")})]})]})}function aj({tokens:a}){return(0,b.jsx)(b.Fragment,{children:a.map((a,c)=>{let d=(0,ag.tokenFontStyle)(a.fontStyle);return(0,b.jsx)("span",{style:{color:a.color,fontStyle:d.italic?"italic":void 0,fontWeight:d.bold?600:void 0,textDecoration:d.underline?"underline":void 0},children:a.content},c)})})}function ak({message:a,destructive:c=!1}){return(0,b.jsxs)("div",{className:(0,ac.cn)("flex min-h-[240px] flex-1 items-center justify-center gap-2 px-4 py-10 text-center text-xs text-muted-foreground",c&&"text-destructive"),children:[c?(0,b.jsx)(o.AlertTriangle,{className:"size-4"}):null,(0,b.jsx)("span",{children:a})]})}var al=a.i(14015);let am=(0,y.default)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var an=a.i(60420),ao=a.i(48459);function ap({projectId:a,enabled:c=!0,selectedPath:d=null,onSelectFile:f,compact:h=!1,className:i}){let{t:k}=(0,g.useLanguage)(),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)(()=>new Set),p=(0,e.useQuery)({queryKey:["workspace-context",a,"tree"],queryFn:()=>(0,P.getProjectWorkspaceTree)(a,{depth:1,limit:500}),enabled:c,retry:!1}),q=l.trim().length>0,r=(0,e.useQuery)({queryKey:["workspace-context",a,"search"],queryFn:()=>(0,P.getProjectWorkspaceTree)(a,{depth:3,limit:500}),enabled:c&&q,retry:!1}),s=(0,j.useMemo)(()=>q?(0,ah.filterWorkspaceFiles)(r.data?.entries??[],l):[],[q,r.data?.entries,l]);return(0,b.jsxs)("div",{className:(0,ac.cn)("flex min-h-0 flex-col gap-2",i),children:[(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(ao.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(W.Input,{value:l,onChange:a=>m(a.target.value),placeholder:k("projects.workspaceSearchPlaceholder"),"aria-label":k("projects.workspaceSearchPlaceholder"),className:"h-8 pl-8 text-xs"})]}),q?r.isLoading?(0,b.jsx)(aw,{compact:h}):r.isError?(0,b.jsx)(ax,{destructive:!0,message:r.error instanceof Error?r.error.message:k("projects.workspaceLoadFailed")}):0===s.length?(0,b.jsx)(ax,{message:k("projects.workspaceSearchNoResults")}):(0,b.jsxs)("div",{className:"min-w-max",children:[s.map((a,c)=>(0,b.jsx)(av,{entry:a,index:c,compact:h,selected:d===a.path,onSelect:()=>{var b;return b=a.path,void(o(a=>{let c=new Set(a);return(0,ah.ancestorPaths)(b).forEach(a=>c.add(a)),c}),m(""),f(b))}},a.path)),r.data?.truncated?(0,b.jsx)(ay,{}):null]}):p.isLoading?(0,b.jsx)(aw,{compact:h}):p.isError?(0,b.jsx)(ax,{destructive:!0,message:p.error instanceof Error?p.error.message:k("projects.workspaceLoadFailed")}):0===(p.data?.entries??[]).length?(0,b.jsx)(ax,{message:k("projects.workspaceEmpty")}):(0,b.jsxs)("div",{className:"min-w-max",children:[(0,b.jsx)(aq,{entries:p.data?.entries??[],depth:0,ctx:{projectId:a,enabled:c,compact:h,expandedPaths:n,selectedPath:d,onToggleDirectory:a=>{o(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},onSelectFile:f}}),p.data?.truncated?(0,b.jsx)(ay,{}):null]})]})}function aq({entries:a,depth:c,ctx:d}){return(0,b.jsx)(b.Fragment,{children:a.map((a,e)=>(0,b.jsx)(ar,{entry:a,depth:c,index:e,ctx:d},a.path))})}function ar({entry:a,depth:c,index:d,ctx:e}){return"directory"===a.kind?(0,b.jsx)(as,{entry:a,depth:c,index:d,ctx:e}):"file"===a.kind?(0,b.jsx)(at,{entry:a,depth:c,index:d,ctx:e}):(0,b.jsx)(au,{entry:a,depth:c,index:d,compact:e.compact})}function as({entry:a,depth:c,index:d,ctx:f}){let{t:h}=(0,g.useLanguage)(),i=f.expandedPaths.has(a.path),j=(0,e.useQuery)({queryKey:["workspace-context",f.projectId,"tree",a.path],queryFn:()=>(0,P.getProjectWorkspaceTree)(f.projectId,{path:a.path,depth:1}),enabled:f.enabled&&i,retry:!1}),k=j.data?.entries??[];return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f.onToggleDirectory(a.path),"aria-expanded":i,title:a.path,className:(0,ac.cn)("forgebadger-animate-in flex w-full items-center gap-1 rounded pr-2 text-left transition-colors hover:bg-muted/40",f.compact?"h-7 text-[11px]":"h-8 text-xs"),style:{paddingLeft:8+14*c,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(al.ChevronRight,{className:(0,ac.cn)("size-3.5 shrink-0 text-muted-foreground transition-transform duration-200",i&&"rotate-90")}),i?(0,b.jsx)(an.FolderOpen,{className:"size-3.5 shrink-0 text-brand/80"}):(0,b.jsx)(am,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name}),j.isFetching?(0,b.jsx)(ae.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground"}):null]}),(0,b.jsx)("div",{className:"forgebadger-collapse-grid","data-open":i,children:(0,b.jsx)("div",{children:(0,b.jsx)("div",{className:"border-l border-border/50",style:{marginLeft:8+14*c+6},children:i&&j.isLoading?(0,b.jsx)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground",children:h("projects.workspaceLoading")}):i&&j.isError?(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 text-xs text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5 shrink-0"}),h("projects.workspaceLoadFailed")]}):j.data?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aq,{entries:k,depth:c+1,ctx:f}),j.data.truncated?(0,b.jsx)(ay,{}):null]}):null})})})]})}function at({entry:a,depth:c,index:d,ctx:e}){let{t:f}=(0,g.useLanguage)(),h=e.selectedPath===a.path;return(0,b.jsxs)("button",{type:"button",onClick:()=>e.onSelectFile(a.path),"aria-current":h?"true":void 0,title:e.compact?f("projects.workspaceOpenViewer"):a.path,className:(0,ac.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded pr-2 text-left transition-colors hover:bg-muted/40",e.compact?"h-7 text-[11px]":"h-8 text-xs",h?"bg-brand/10 text-brand":"text-foreground/90"),style:{paddingLeft:8+14*c+18,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(t.FileText,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name}),void 0!==a.sizeBytes?(0,b.jsx)("span",{className:"shrink-0 pr-1 text-[10px] text-muted-foreground",children:(0,ah.formatBytes)(a.sizeBytes)}):null]})}function au({entry:a,depth:c,index:d,compact:e}){return(0,b.jsxs)("div",{title:a.path,className:(0,ac.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded pr-2 text-muted-foreground/70",e?"h-7 text-[11px]":"h-8 text-xs"),style:{paddingLeft:8+14*c+18,animationDelay:`${20*Math.min(d,10)}ms`},children:[(0,b.jsx)(t.FileText,{className:"size-3.5 shrink-0 opacity-50"}),(0,b.jsx)("span",{className:"flex-1 whitespace-nowrap font-mono",children:a.name})]})}function av({entry:a,index:c,compact:d,selected:e,onSelect:f}){let g=a.path.lastIndexOf("/"),h=g>=0?a.path.slice(0,g+1):"";return(0,b.jsxs)("button",{type:"button",onClick:f,title:a.path,className:(0,ac.cn)("forgebadger-animate-in flex w-full items-center gap-1.5 rounded px-2 text-left transition-colors hover:bg-muted/40",d?"h-7 text-[11px]":"h-8 text-xs",e&&"bg-brand/10 text-brand"),style:{animationDelay:`${20*Math.min(c,10)}ms`},children:[(0,b.jsx)(t.FileText,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,b.jsxs)("span",{className:"flex-1 whitespace-nowrap font-mono",children:[h?(0,b.jsx)("span",{className:"text-muted-foreground",children:h}):null,(0,b.jsx)("span",{className:"text-foreground",children:a.name})]}),void 0!==a.sizeBytes?(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(0,ah.formatBytes)(a.sizeBytes)}):null]})}function aw({compact:a}){return(0,b.jsx)("div",{className:"space-y-1 px-1 py-1","aria-hidden":"true",children:[92,76,84,64,80,56].map((c,d)=>(0,b.jsx)("div",{className:(0,ac.cn)("animate-pulse rounded bg-muted/50",a?"h-6":"h-7"),style:{width:`${c}%`}},d))})}function ax({message:a,destructive:c=!1}){return(0,b.jsxs)("div",{className:(0,ac.cn)("flex min-h-20 items-center justify-center gap-2 rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground",c&&"border-destructive/50 text-destructive"),children:[c?(0,b.jsx)(o.AlertTriangle,{className:"size-4"}):null,(0,b.jsx)("span",{children:a})]})}function ay(){let{t:a}=(0,g.useLanguage)();return(0,b.jsx)("p",{className:"px-2 py-1.5 text-[11px] text-muted-foreground",children:a("projects.workspaceTreeTruncated")})}function az({projectId:a,className:c,enabled:d=!0}){let{t:f}=(0,g.useLanguage)(),h=(0,m.useQueryClient)(),[i,k]=(0,j.useState)(null),[l,n]=(0,j.useState)(!1),o=!!a&&d;(0,j.useEffect)(()=>{k(null),n(!1)},[a]);let p=(0,e.useQuery)({queryKey:["workspace-context",a,"tree"],queryFn:()=>(0,P.getProjectWorkspaceTree)(a,{depth:1,limit:500}),enabled:o,retry:!1});return(0,b.jsxs)(I.Card,{"data-testid":"workspace-context-panel",className:(0,ac.cn)("forgebadger-animate-in gap-0 overflow-hidden py-0",c),children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-start justify-between gap-3 px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold leading-none",children:f("projects.workspace")}),(0,b.jsx)("p",{className:"break-all font-mono text-[11px] text-muted-foreground",children:p.data?.rootPath??f("projects.workspaceRootPending")})]}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7 shrink-0",onClick:()=>h.invalidateQueries({queryKey:["workspace-context",a]}),disabled:!o,"aria-label":f("projects.workspaceRefresh"),title:f("projects.workspaceRefresh"),children:(0,b.jsx)(aa.RefreshCw,{className:(0,ac.cn)("size-4",p.isFetching&&"animate-spin")})})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-2 px-3 pb-3",children:[p.data?.truncated?(0,b.jsx)(H.Badge,{variant:"secondary",className:"w-fit",children:f("projects.workspaceTruncated")}):null,a?(0,b.jsx)("div",{className:"max-h-72 overflow-auto rounded-md border border-border/70 bg-background/60 p-1 [scrollbar-width:thin]",children:(0,b.jsx)(ap,{projectId:a,enabled:o,compact:!0,selectedPath:i,onSelectFile:a=>{k(a),n(!0)}})}):(0,b.jsx)("p",{className:"rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground",children:f("projects.workspaceNoProject")})]}),(0,b.jsx)(ab.Sheet,{open:l,onOpenChange:n,children:(0,b.jsxs)(ab.SheetContent,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-2xl",children:[(0,b.jsx)(ab.SheetHeader,{className:"sr-only",children:(0,b.jsx)(ab.SheetTitle,{children:i??f("projects.workspace")})}),a?(0,b.jsx)(ai,{variant:"sheet",projectId:a,path:i,enabled:l,onClose:()=>n(!1),className:"h-full flex-1 rounded-none border-0"}):null]})})]})}let aA=(0,y.default)("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);function aB({projectId:a,enabled:c=!0,className:d}){let{t:e}=(0,g.useLanguage)(),f=(0,m.useQueryClient)(),[h,i]=(0,j.useState)(null);return((0,j.useEffect)(()=>{i(null)},[a]),a)?(0,b.jsxs)("div",{"data-testid":"workspace-explorer",className:(0,ac.cn)("grid gap-4 lg:grid-cols-[300px_minmax(0,1fr)]",d),children:[(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in gap-0 overflow-hidden py-0",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-center justify-between gap-2 px-4 py-3",children:[(0,b.jsxs)("h2",{className:"flex items-center gap-2 text-sm font-semibold leading-none",children:[(0,b.jsx)(aA,{className:"size-4 text-brand"}),e("projects.workspace")]}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>f.invalidateQueries({queryKey:["workspace-context",a]}),"aria-label":e("projects.workspaceRefresh"),title:e("projects.workspaceRefresh"),children:(0,b.jsx)(aa.RefreshCw,{className:"size-4"})})]}),(0,b.jsx)(I.CardContent,{className:"px-2 py-2",children:(0,b.jsx)("div",{className:"max-h-[320px] overflow-auto [scrollbar-width:thin] lg:max-h-[calc(100vh-15rem)]",children:(0,b.jsx)(ap,{projectId:a,enabled:c,selectedPath:h,onSelectFile:i})})})]}),(0,b.jsx)(I.Card,{className:"forgebadger-animate-in gap-0 overflow-hidden py-0",style:{animationDelay:"50ms"},children:(0,b.jsx)(I.CardContent,{className:"p-2",children:(0,b.jsx)(ai,{variant:"panel",projectId:a,path:h,enabled:c,className:"h-[420px] lg:h-[calc(100vh-15.5rem)]"})})})]}):(0,b.jsx)(I.Card,{className:(0,ac.cn)("forgebadger-animate-in",d),children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:e("projects.workspaceNoProject")})})}var aC=a.i(85874);let aD=(0,y.default)("GitBranchPlus",[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]);function aE({projectId:a,enabled:c}){let{t:d}=(0,g.useLanguage)(),f=(0,m.useQueryClient)(),[h,i]=(0,j.useState)(null),[k,n]=(0,j.useState)(!1),[o,p]=(0,j.useState)(""),{data:q,error:r,isFetching:s,refetch:t}=(0,e.useQuery)({queryKey:["project-git-branches",a],queryFn:()=>(0,P.getProjectGitBranches)(a),enabled:c,retry:!1}),u=()=>Promise.all([f.invalidateQueries({queryKey:["project-git-branches",a]}),f.invalidateQueries({queryKey:["project-git-changes",a]}),f.invalidateQueries({queryKey:["project",a]})]),v=(0,l.useMutation)({mutationFn:b=>(0,P.checkoutProjectGitBranch)(a,{branch:b}),onSuccess:async a=>{T.toast.success(d("projects.gitSwitchSuccess").replace("{branch}",a.current)),i(null),await u()},onError:a=>{T.toast.error(a instanceof Error?a.message:d("projects.gitSwitchFailed"))}}),w=(0,l.useMutation)({mutationFn:b=>(0,P.checkoutProjectGitBranch)(a,{branch:b,create:!0}),onSuccess:async a=>{T.toast.success(d("projects.gitCreateSuccess").replace("{branch}",a.current)),n(!1),p(""),await u()},onError:a=>{T.toast.error(a instanceof Error?a.message:d("projects.gitSwitchFailed"))}}),x=q?.workingTree,y=void 0!==x&&!x.clean;return(0,b.jsxs)("section",{className:"rounded-lg border border-border p-3","data-testid":"git-branches-panel",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium",children:[(0,b.jsx)(aC.GitBranch,{className:"size-4 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"shrink-0",children:d("projects.gitBranches")}),q?.current&&(0,b.jsx)("span",{className:"min-w-0 truncate rounded-full bg-muted/50 px-2 py-0.5 font-mono text-[10px] text-muted-foreground",title:q.current,children:q.current})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[q?.isGitRepo&&(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-6 text-muted-foreground",onClick:()=>n(!0),"aria-label":d("projects.gitNewBranch"),title:d("projects.gitNewBranch"),children:(0,b.jsx)(aD,{className:"size-3.5"})}),(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-6 text-muted-foreground",onClick:()=>void t(),"aria-label":d("sessions.gitRefresh"),title:d("sessions.gitRefresh"),children:(0,b.jsx)(aa.RefreshCw,{className:(0,ac.cn)("size-3",s&&"animate-spin")})})]})]}),r?(0,b.jsx)("p",{className:"mt-2 text-xs text-destructive",children:d("projects.gitLoadFailed")}):q?q.isGitRepo?0===q.branches.length?(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("projects.gitNoBranches")}):(0,b.jsx)("ul",{className:"mt-2 divide-y divide-border/70 overflow-hidden rounded-md border border-border/70",children:q.branches.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",className:(0,ac.cn)("flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",a.isCurrent?"bg-muted/40":"hover:bg-muted/30"),disabled:a.isCurrent,onClick:()=>i(a.name),children:[(0,b.jsx)(ad.Check,{className:(0,ac.cn)("size-3.5 shrink-0",a.isCurrent?"text-brand":"text-transparent")}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:a.name}),a.isCurrent&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:d("projects.gitBranchCurrent")})]})},a.name))}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("sessions.gitNotRepo")}):(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:d("common.loading")}),(0,b.jsx)(V.Dialog,{open:null!==h,onOpenChange:a=>{a||v.isPending||i(null)},children:(0,b.jsxs)(V.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsxs)(V.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(aC.GitBranch,{className:"size-5 shrink-0"}),d("projects.gitSwitchConfirmTitle")]}),(0,b.jsx)(V.DialogDescription,{children:d("projects.gitSwitchConfirmDesc").replace("{branch}",h??"")})]}),y&&x&&(0,b.jsxs)("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 p-3 text-xs text-destructive",children:[(0,b.jsx)("p",{children:d("projects.gitWorkingTreeDirty").replace("{count}",String(x.changedCount))}),x.sample.length>0&&(0,b.jsx)("ul",{className:"mt-1 list-inside list-disc font-mono text-[10px]",children:x.sample.map(a=>(0,b.jsx)("li",{className:"truncate",children:a},a))})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:v.isPending,onClick:()=>i(null),children:d("common.cancel")}),(0,b.jsx)(G.Button,{type:"button",disabled:y||v.isPending||null===h,onClick:()=>h&&v.mutate(h),children:d("projects.gitSwitchConfirmTitle")})]})]})}),(0,b.jsx)(V.Dialog,{open:k,onOpenChange:a=>{a||w.isPending||(n(!1),p(""))},children:(0,b.jsxs)(V.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsxs)(V.DialogTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(aD,{className:"size-5 shrink-0"}),d("projects.gitNewBranchTitle")]}),(0,b.jsx)(V.DialogDescription,{children:d("projects.gitNewBranchDesc")})]}),(0,b.jsx)(W.Input,{value:o,onChange:a=>p(a.target.value),placeholder:d("projects.gitBranchNamePlaceholder"),className:"font-mono text-sm",autoFocus:!0}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{type:"button",variant:"outline",disabled:w.isPending,onClick:()=>{n(!1),p("")},children:d("common.cancel")}),(0,b.jsx)(G.Button,{type:"button",disabled:w.isPending||0===o.trim().length,onClick:()=>w.mutate(o.trim()),children:d("projects.gitNewBranch")})]})]})})]})}var aF=a.i(6391),aG=a.i(10917),aH=a.i(25538),aI=a.i(26421),aJ=a.i(80658),aK=a.i(62162),aL=a.i(89738);let aM=new Set(["json","toml","yaml","markdown","javascript"]);function aN(a,b,c){let d=[],e=0;for(let f of a.matchAll(b)){let b=f.index??0;b>e&&d.push({text:a.slice(e,b)}),d.push({text:f[0],className:c(f)}),e=b+f[0].length}return e<a.length&&d.push({text:a.slice(e)}),d.length>0?d:[{text:a}]}var aO=a.i(90409),aP=a.i(14027);let aQ=/(`[^`\n]+`)|(\*\*[^*\n]+\*\*)|(\*[^*\n]+\*)|(\[[^\]]+\]\([^)\s]+\))/gu,aR=a=>{try{let b=new URL(a,"https://example.invalid").protocol;if("http:"===b||"https:"===b||"mailto:"===b)return a}catch{}};function aS(a,c){return(function(a){let b=[],c=0;for(let d of a.matchAll(aQ)){let e=d.index??0;e>c&&b.push({text:a.slice(c,e),kind:"text"});let[f,g,h,i,j]=d;if(g)b.push({text:g.slice(1,-1),kind:"code"});else if(h)b.push({text:h.slice(2,-2),kind:"bold"});else if(i)b.push({text:i.slice(1,-1),kind:"italic"});else if(j){let a=j.match(/\[([^\]]+)\]\(([^)\s]+)\)/u);a?b.push({text:a[1],kind:"link",href:aR(a[2])}):b.push({text:f,kind:"text"})}c=e+f.length}return c<a.length&&b.push({text:a.slice(c),kind:"text"}),b})(a).map((a,d)=>{let e=`${c}-${d}`;return"code"===a.kind?(0,b.jsx)("code",{className:"rounded bg-muted/80 px-1 py-0.5 font-mono text-[0.85em] text-foreground",children:a.text},e):"bold"===a.kind?(0,b.jsx)("strong",{className:"font-semibold text-foreground",children:a.text},e):"italic"===a.kind?(0,b.jsx)("em",{className:"italic",children:a.text},e):"link"===a.kind&&a.href?(0,b.jsx)("a",{href:a.href,target:"_blank",rel:"noreferrer noopener",className:"text-brand underline underline-offset-2 hover:text-brand/80",children:a.text},e):(0,b.jsx)(j.Fragment,{children:a.text},e)})}let aT=/^```([^\s`]*)\s*$/u;function aU({content:a,className:c}){let d=function(a){let b=[],c=a.replace(/\r\n/gu,"\n").split("\n");for(let a=0;a<c.length;a+=1){let d=c[a],e=d.match(aT);if(e){let d=(e[1]??"").trim(),f=[];for(a+=1;a<c.length&&!c[a].startsWith("```");)f.push(c[a]),a+=1;b.push({type:"codeblock",text:f.join("\n"),language:d});continue}let f=d.match(/^(#{1,6})\s+(.+)$/u);if(f){b.push({type:"heading",text:f[2],level:f[1].length});continue}if(/^\s*(?:-{3,}|\*{3,}|_{3,})\s*$/u.test(d)){b.push({type:"hr",text:""});continue}if(/^\s*>\s?/u.test(d)){b.push({type:"quote",text:d.replace(/^\s*>\s?/u,"")});continue}if(/^\s*(?:[-*]|\d+\.)\s+/u.test(d)){b.push({type:"list",text:d.replace(/^\s*(?:[-*]|\d+\.)\s+/u,"")});continue}""!==d.trim()&&b.push({type:"paragraph",text:d})}return b}(a),e=[],f=[],g=()=>{f.length>0&&(e.push({type:"paragraph",text:f.join(" ")}),f=[])};for(let a of d){if("paragraph"===a.type){f.push(a.text);continue}g(),e.push(a)}return g(),(0,b.jsx)("div",{className:c??"space-y-3 text-sm leading-relaxed text-foreground/90",children:e.map((a,c)=>{let d=`md-${c}`;switch(a.type){case"heading":{let c=Math.min(a.level??1,6),e=["font-semibold text-foreground",1===c?"text-xl":"",2===c?"text-lg":"",3===c?"text-base":"",c>=4?"text-sm":""].join(" ");return(0,b.jsx)("div",{className:e,role:"heading","aria-level":c,children:aS(a.text,d)},d)}case"codeblock":return(0,b.jsx)(aV,{text:a.text,language:a.language??""},d);case"list":return(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"•"}),(0,b.jsx)("span",{children:aS(a.text,d)})]},d);case"quote":return(0,b.jsx)("blockquote",{className:"border-l-2 border-border/70 pl-3 text-muted-foreground",children:aS(a.text,d)},d);case"hr":return(0,b.jsx)("hr",{className:"border-border/70"},d);default:return(0,b.jsx)("p",{className:"my-0",children:aS(a.text,d)},d)}})})}function aV({text:a,language:c}){let[d,e]=(0,j.useState)(!1),f=(0,j.useCallback)(async()=>{if("u">typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(a),e(!0),window.setTimeout(()=>e(!1),1500)}catch{}},[a]);return(0,b.jsxs)("div",{className:"overflow-hidden rounded-md border border-border/70 bg-muted/40",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border/60 bg-muted/60 px-3 py-1.5 text-[11px] uppercase tracking-wide text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-mono normal-case tracking-normal text-foreground/80",children:c||"code"}),(0,b.jsxs)("button",{type:"button",onClick:()=>void f(),"aria-label":d?"Copied":"Copy code",className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-background hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:[d?(0,b.jsx)(ad.Check,{className:"size-3"}):(0,b.jsx)(aP.Copy,{className:"size-3"}),(0,b.jsx)("span",{children:d?"Copied":"Copy"})]})]}),(0,b.jsx)("pre",{className:"overflow-x-auto p-3 font-mono text-xs leading-relaxed",children:(0,b.jsx)("code",{children:a})})]})}let aW=(0,k.default)(async()=>{},{loadableGenerated:{modules:[25825]},ssr:!1}),aX=(0,k.default)(async()=>{},{loadableGenerated:{modules:[90839]},ssr:!1}),aY=["sessions","git","files","graph","project-manager","skills","config","activity"];function aZ({taskAuthority:a}){let f=(0,c.useParams)(),h=(0,c.useRouter)(),i=(0,c.useSearchParams)(),k=(0,m.useQueryClient)(),{t:n,language:r}=(0,g.useLanguage)(),t=(0,aK.useProjectCopy)(),[u,w]=(0,j.useState)(null);(0,j.useEffect)(()=>{w(Date.now());let a=window.setInterval(()=>w(Date.now()),6e4);return()=>window.clearInterval(a)},[]);let y=f.id,[A,C]=(0,j.useState)(()=>a5("collaboration-settings"===i.get("tab")?"project-manager":i.get("tab"))??"project-manager"),[N,O]=(0,j.useState)(""),[Q,R]=(0,j.useState)(""),[U,V]=(0,j.useState)(""),[W,X]=(0,j.useState)(null),[Y,Z]=(0,j.useState)(!1),[aa,ab]=(0,j.useState)(!1),ad=(0,j.useRef)(null),{data:ae,isLoading:af}=(0,e.useQuery)({queryKey:["project",y],queryFn:()=>(0,P.getProject)(y),enabled:!!y}),{data:ag}=(0,e.useQuery)({queryKey:["sessions",{projectId:y}],queryFn:()=>(0,P.listSessions)({projectId:y}),enabled:!!y}),{data:ah}=(0,e.useQuery)({queryKey:["project-manager",y,"task-packets",{limit:50}],queryFn:()=>(0,P.listProjectManagerTaskPackets)(y,{limit:50}),enabled:!!y&&"sessions"===A,retry:!1}),{data:ai}=(0,e.useQuery)({queryKey:["activities",{projectId:y}],queryFn:()=>(0,P.listActivities)({projectId:y}),enabled:!!y&&"activity"===A}),{data:aj}=(0,e.useQuery)({queryKey:["skills"],queryFn:P.listSkills}),{data:ak}=(0,e.useQuery)({queryKey:["project-skills",y],queryFn:()=>(0,P.listProjectSkills)(y),enabled:!!y}),{data:al,isLoading:am}=(0,e.useQuery)({queryKey:L.ADAPTER_DISCOVERY_QUERY_KEY,queryFn:P.discoverAdapters}),{data:an,isLoading:ao}=(0,e.useQuery)({queryKey:["dependencies"],queryFn:P.getDependencies}),{data:ap,isLoading:aq}=(0,e.useQuery)({queryKey:["project-ai-config",y,N],queryFn:()=>(0,P.getProjectAiConfig)(y,N||void 0),enabled:!!y&&!!N}),{data:ar,isLoading:as}=(0,e.useQuery)({queryKey:["project-ai-config-global",y,N],queryFn:()=>(0,P.getGlobalAiConfig)(y,N||void 0),enabled:!!y&&!!N}),at=(0,l.useMutation)({mutationFn:()=>(0,P.deleteProject)(y),onSuccess:()=>{k.invalidateQueries({queryKey:["projects"]}),h.push("/projects")}}),au=(0,l.useMutation)({mutationFn:()=>(0,P.createSession)({projectId:y,aiTool:N}),onSuccess:({session:a})=>{k.invalidateQueries({queryKey:["sessions",{projectId:y}]}),h.push(`/sessions/${a.id}`)},onError:a=>{T.toast.error(a instanceof Error?a.message:n("projects.failedCreateSession"))}}),av=(0,l.useMutation)({mutationFn:({skillId:a,enabled:b})=>(0,P.setProjectSkill)(y,a,b),onSuccess:()=>{k.invalidateQueries({queryKey:["project-skills",y]})}}),aw=(0,l.useMutation)({mutationFn:()=>(0,P.updateProjectAiConfigFile)(y,Q,U,N||void 0),onSuccess:a=>{k.setQueryData(["project-ai-config",y,N],a),k.invalidateQueries({queryKey:["activities"]})}}),ax=ae?.project,ay=(0,j.useMemo)(()=>ag?.sessions??[],[ag?.sessions]),aA=(0,j.useMemo)(()=>ai?.activities??[],[ai?.activities]),aC=aj?.skills??[],aD=ak?.skills??[],aL=(0,j.useMemo)(()=>new Map(aD.map(a=>[a.skillId,a])),[aD]),aM=(0,j.useMemo)(()=>new Set(aD.filter(a=>a.isEnabled).map(a=>a.skillId)),[aD]),aN=ax?.templateId??null,aP=!!ax&&null===ax.templateId,aQ=al?.adapters??[],aR=an?.terminalRuntime,aS=(0,aO.getTerminalRuntimeSetupGuidance)(aR?.mode,aR?.supported),aT=(0,j.useMemo)(()=>aQ.filter(P.isAdapterLaunchable),[aQ]),aU=aQ.find(a=>a.id===N),aV=!!aU&&(0,P.isAdapterLaunchable)(aU),aY=ap?.files.find(a=>a.relativePath===Q),a2=am||!N||!aV,a3=["failed","needs_review"].includes(i.get("configStatus")??""),a7=a6(i.get("workItemId")),a8=ay.filter(a=>"running"===a.status).length,a9=aM.size;(0,j.useEffect)(()=>{let a=a5("collaboration-settings"===i.get("tab")?"project-manager":i.get("tab"));a&&a!==A&&C(a)},[A,i]);let ba=a=>{let b=a5(a);if(!b)return;C(b);let c=new URLSearchParams(i.toString());"sessions"===b?c.delete("tab"):c.set("tab",b),"project-manager"!==b&&c.delete("workItemId");let d=c.toString();h.replace(d?`/projects/${encodeURIComponent(y)}?${d}`:`/projects/${encodeURIComponent(y)}`,{scroll:!1})};return(0,j.useEffect)(()=>{if(!al?.adapters)return;let a=(0,P.chooseDefaultRuntimeAdapter)(al.adapters,N);O(b=>b===(a??"")?b:a??"")},[al?.adapters,N]),(0,j.useEffect)(()=>{let a=ap?.files??[];if(0===a.length)return;let b=a.find(a=>a.exists&&"instructions"===a.role)??a[0];if(!Q||!a.some(a=>a.relativePath===Q)){let a=b?.relativePath??"";R(b=>b===a?b:a)}},[ap?.files,Q]),(0,j.useEffect)(()=>{let a=aY?.content??"";V(b=>b===a?b:a)},[aY?.content,aY?.relativePath]),(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-4 p-6",children:[af?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:n("projects.loadingOne")})}):ax?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2 forgebadger-animate-in",children:[(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"-ml-2 size-8 shrink-0 text-muted-foreground hover:text-foreground","aria-label":n("projects.back"),onClick:()=>h.push("/projects"),children:(0,b.jsx)(p.ArrowLeft,{className:"size-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)("h1",{className:"truncate text-lg font-semibold tracking-tight",children:ax.name}),ax.status&&(0,b.jsx)(H.Badge,{variant:"outline",className:"shrink-0",children:(0,aK.projectStatusLabel)(t,ax.status)}),(0,b.jsx)("span",{className:"hidden min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground sm:inline",title:ax.path??ax.rootPath,children:ax.path??ax.rootPath})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(L.AdapterSelect,{id:"runtime-adapter",ariaLabel:n("projects.selectRuntimeCli"),value:N||"",onValueChange:O,disabled:am||0===aQ.length,size:"sm",className:"h-8 w-52",placeholder:am?n("projects.loadingRuntimeCli"):n("projects.selectRuntimeCli")}),(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",onClick:()=>au.mutate(),disabled:a2||au.isPending,children:[(0,b.jsx)(B.Plus,{className:"size-4"}),au.isPending?n("projects.creating"):n("projects.newSession")]}),(0,b.jsxs)(K.DropdownMenu,{children:[(0,b.jsx)(K.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(G.Button,{variant:"ghost",size:"icon",className:"size-8 text-muted-foreground hover:text-foreground","aria-label":n("projects.moreActions"),children:(0,b.jsx)(x.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(K.DropdownMenuContent,{align:"end",children:[(0,b.jsx)(K.DropdownMenuItem,{asChild:!0,children:(0,b.jsxs)(d.default,{href:`/history?projectId=${ax.id}`,children:[(0,b.jsx)(v.History,{className:"size-4"}),n("nav.history")]})}),(0,b.jsxs)(K.DropdownMenuItem,{variant:"destructive",disabled:at.isPending,onSelect:()=>ab(!0),children:[(0,b.jsx)(E.Trash2,{className:"size-4"}),at.isPending?n("projects.deleting"):n("projects.deleteRecord")]})]})]})]})]}),0===aT.length&&!am&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border border-destructive/40 bg-destructive/10 p-3 forgebadger-animate-in",children:[(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-xs font-medium text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-3.5"}),!ao&&aS.blocked?n(aS.titleKey):n("projects.noLaunchableRuntimeCli")]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:!ao&&aS.blocked?n(aS.descriptionKey):n("projects.runtimeCliRecoveryDescription")}),!ao&&aS.blocked&&(0,b.jsx)(_.RuntimeSetupCommands,{guidance:aS}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,b.jsx)(G.Button,{asChild:!0,variant:"outline",size:"sm",children:(0,b.jsx)(d.default,{href:"/settings",children:n("projects.openSettings")})})})]}),a3&&!aP&&(0,b.jsx)(I.Card,{className:"forgebadger-animate-in border-amber-500/40 bg-amber-500/10",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 md:flex-row md:items-center md:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-amber-500/15 text-amber-400",children:(0,b.jsx)(o.AlertTriangle,{className:"size-4"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.configNeedsReviewTitle")}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:n("projects.configNeedsReviewDescription")})]})]}),(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>{ba("config"),X("preview")},children:[(0,b.jsx)(s.FileCode2,{className:"size-4"}),n("projects.reviewConfig")]})]})}),at.isError&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:at.error instanceof Error?at.error.message:n("projects.deleteFailed")}),(0,b.jsx)(J.ConfirmDialog,{open:aa,destructive:!0,pending:at.isPending,title:n("projects.deleteConfirmTitle"),description:n("projects.deleteConfirmNamed").replace("{name}",ax.name),confirmLabel:n("common.delete"),onOpenChange:ab,onConfirm:()=>at.mutate()}),(0,b.jsxs)(aH.Tabs,{value:A,onValueChange:ba,children:[(0,b.jsx)("div",{className:"-mx-1 overflow-x-auto px-1 [scrollbar-width:thin]",children:(0,b.jsxs)(aH.TabsList,{className:"min-w-max",children:[(0,b.jsxs)(aH.TabsTrigger,{value:"sessions",children:[n("nav.sessions"),ay.length>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none text-muted-foreground tabular-nums",children:ay.length})]}),(0,b.jsx)(aH.TabsTrigger,{value:"git",children:n("projects.gitTab")}),(0,b.jsx)(aH.TabsTrigger,{value:"files",children:n("projects.filesTab")}),(0,b.jsx)(aH.TabsTrigger,{value:"graph",children:n("projects.graphTab")}),(0,b.jsx)(aH.TabsTrigger,{value:"project-manager",children:n("projects.devTasks")}),(0,b.jsxs)(aH.TabsTrigger,{value:"skills",children:[n("nav.skills"),a9>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none text-muted-foreground tabular-nums",children:a9})]}),(0,b.jsx)(aH.TabsTrigger,{value:"config",children:n("projects.aiConfig")}),(0,b.jsx)(aH.TabsTrigger,{value:"activity",children:n("sessions.activity")})]})}),(0,b.jsxs)(aH.TabsContent,{value:"sessions",className:"mt-4",children:[(0,b.jsx)("p",{className:"mb-3 text-xs text-muted-foreground",children:n("projects.sessionsSummary").replace("{total}",String(ay.length)).replace("{running}",String(a8))}),(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_360px]",children:[0===ay.length?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(D.TerminalSquare,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:n("projects.noSessions")}),(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",onClick:()=>au.mutate(),disabled:a2||au.isPending,children:[(0,b.jsx)(B.Plus,{className:"size-4"}),au.isPending?n("projects.creating"):n("projects.newSession")]})]})}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:ay.map((a,c)=>{let e=(0,aI.findSessionTaskPacket)(ah?.taskPackets??[],a.id),f=null===u?null:(0,aJ.formatSessionRelativeTime)(a,u,r);return(0,b.jsxs)(d.default,{href:`/sessions/${a.id}`,className:"group flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40",style:{animationDelay:`${40*c}ms`},children:[(0,b.jsx)(a_,{status:a.status}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:a.name||a.runtimeSessionName||a.id}),(0,b.jsx)("div",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:f??n("sessions.noActivity")})]}),e&&(0,b.jsx)(a$,{packet:e}),(0,b.jsx)(M.CliBrandChip,{aiTool:a.aiTool}),(0,b.jsx)(a0,{status:a.status}),(0,b.jsx)(q.ArrowUpRight,{className:"size-4 shrink-0 text-muted-foreground/30 transition-colors group-hover:text-brand"})]},a.id)})}),(0,b.jsx)(az,{projectId:y,enabled:"sessions"===A})]})]}),(0,b.jsx)(aH.TabsContent,{value:"git",className:"mt-4",children:(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-2",children:[(0,b.jsx)(aE,{projectId:y,enabled:"git"===A}),(0,b.jsx)(aF.GitChangesPanel,{projectId:y})]})}),(0,b.jsx)(aH.TabsContent,{value:"files",className:"mt-4",children:(0,b.jsx)(aB,{projectId:y,enabled:"files"===A})}),(0,b.jsx)(aH.TabsContent,{value:"graph",className:"mt-4",children:(0,b.jsx)(aW,{projectId:y,enabled:"graph"===A})}),(0,b.jsx)(aH.TabsContent,{value:"project-manager",className:"mt-4",children:(0,b.jsx)(aX,{projectId:y,authority:a,enabled:"project-manager"===A,selectedWorkItemId:a7,embedded:!0})}),(0,b.jsx)(aH.TabsContent,{value:"skills",className:"mt-4",children:0===aC.length?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(F.Wrench,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:n("skills.emptyTitle")})]})}):(0,b.jsx)("div",{className:"divide-y divide-border/70 overflow-hidden rounded-lg border border-border bg-card",children:aC.map((a,c)=>{var d;let e=aL.get(a.id),f=aM.has(a.id);return(0,b.jsxs)("div",{role:"group","aria-label":a.name,className:"flex items-center gap-3 px-4 py-3 transition-colors forgebadger-animate-in hover:bg-muted/40",style:{animationDelay:`${40*c}ms`},children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:a.name}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground",children:(d=e?.selectionState,n("project_enabled"===d?"projects.skillProjectEnabled":"project_disabled"===d?"projects.skillProjectDisabled":"inherited_disabled"===d?"projects.skillInheritedDisabled":"projects.skillInheritedEnabled"))})]}),(0,b.jsx)(H.Badge,{variant:"outline",className:"shrink-0",children:a.source}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(aG.Switch,{checked:f,onCheckedChange:b=>av.mutate({skillId:a.id,enabled:b}),disabled:av.isPending}),(0,b.jsx)("span",{className:(0,ac.cn)("w-10 shrink-0 text-xs",f?"text-emerald-400":"text-muted-foreground"),children:f?n("common.enabled"):n("common.disabled")})]})]},a.id)})})}),(0,b.jsxs)(aH.TabsContent,{value:"config",className:"mt-4 space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{variant:"outline",size:"sm",onClick:()=>Z(!0),children:[(0,b.jsx)(z,{className:"mr-2 size-4"}),n("templates.extract")]})}),(0,b.jsx)(S,{ref:ad,projectId:y,templateId:aN,credentialMode:"host_environment",pendingAction:W,onPendingActionConsumed:()=>X(null)}),(0,b.jsx)(a1,{projectConfig:ap,globalConfig:ar,selectedPath:Q,draft:U,projectLoading:aq,globalLoading:as,isSaving:aw.isPending,error:aw.error,onSelectedPathChange:R,onDraftChange:V,onSave:()=>aw.mutate()})]}),(0,b.jsx)(aH.TabsContent,{value:"activity",className:"mt-4",children:(0,b.jsx)(a4,{activities:aA})})]})]}):(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:n("projects.notFound")})}),(0,b.jsx)($,{projectId:y,open:Y,onOpenChange:Z,onExtracted:()=>{k.invalidateQueries({queryKey:["project",y]}),k.invalidateQueries({queryKey:["templates"]})}})]})}function a$({packet:a}){let d=(0,c.useRouter)(),{t:e}=(0,g.useLanguage)(),f=(0,aI.sessionTaskPacketProjectManagerHref)(a),h=a=>{a.preventDefault(),a.stopPropagation(),d.push(f)};return(0,b.jsxs)("span",{role:"button",tabIndex:0,"aria-label":e("projects.projectManagerLinkedSession"),title:a.title,className:"hidden max-w-44 items-center gap-1 rounded-md border border-border/70 px-1.5 py-0.5 text-xs text-brand hover:underline sm:inline-flex",onClick:h,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&h(a)},children:[(0,b.jsx)(w.Link2,{className:"size-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.title})]})}function a_({status:a}){let c=(0,aL.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,ac.cn)("size-2 shrink-0 rounded-full","running"===c?"animate-pulse bg-emerald-400":"error"===c?"bg-red-400":"lost"===c?"bg-amber-400":"bg-muted-foreground/40")})}function a0({status:a}){let{t:c}=(0,g.useLanguage)(),d=(0,aL.normalizeSessionStatus)(a);return(0,b.jsx)("span",{className:(0,ac.cn)("shrink-0 text-xs","running"===d?"text-emerald-400":"error"===d?"text-red-400":"lost"===d?"text-amber-400":"text-muted-foreground"),children:c("running"===d?"sessions.running":"error"===d?"sessions.error":"lost"===d?"sessions.lost":"sessions.stopped")})}function a1({projectConfig:a,globalConfig:c,selectedPath:d,draft:e,projectLoading:f,globalLoading:h,isSaving:i,error:k,onSelectedPathChange:l,onDraftChange:m,onSave:n}){let{t:o}=(0,g.useLanguage)(),p=a?.files??[],q=c?.files??[],s=p.find(a=>a.relativePath===d),v=s?.fileType==="markdown",[w,x]=(0,j.useState)(!1);return((0,j.useEffect)(()=>{x(!1)},[d,v]),f)?(0,b.jsx)(I.Card,{className:"forgebadger-animate-in",children:(0,b.jsx)(I.CardContent,{className:"py-10 text-center text-sm text-muted-foreground",children:o("common.loading")})}):(0,b.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[300px_minmax(0,1fr)]",children:[(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",children:[(0,b.jsx)(I.CardHeader,{className:"pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(t.FileText,{className:"size-4 text-brand"}),o("projects.projectConfigFiles")]})}),(0,b.jsx)(I.CardContent,{className:"space-y-2",children:0===p.length?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("projects.noConfigFiles")}):p.map(a=>(0,b.jsxs)("button",{type:"button",className:(0,ac.cn)("flex w-full items-center justify-between gap-3 rounded-md border px-3 py-2 text-left text-sm transition-colors",a.relativePath===d?"border-brand/50 bg-brand/10 text-foreground":"border-border/70 bg-background hover:bg-muted/40"),onClick:()=>l(a.relativePath),children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:a.exists?"secondary":"outline",children:a.exists?o("projects.configExists"):o("projects.configMissing")})]},a.relativePath))})]}),(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",style:{animationDelay:"50ms"},children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row flex-wrap items-center justify-between gap-3 pb-3",children:[(0,b.jsx)(I.CardTitle,{className:"min-w-0 truncate font-mono text-sm font-semibold",children:s?.relativePath??o("projects.selectConfigFile")}),s&&v&&!w?(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>x(!0),disabled:!s,children:[(0,b.jsx)(A.Pencil,{className:"size-4"}),o("projects.editFile")]}):(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[s&&v&&w&&(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>x(!1),disabled:!s,children:[(0,b.jsx)(r.Eye,{className:"size-4"}),o("projects.previewFile")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",onClick:n,disabled:!s||i,children:[(0,b.jsx)(C.Save,{className:"size-4"}),i?o("projects.savingConfig"):o("common.save")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[s&&v&&!w?(0,b.jsx)(aU,{content:e,className:"max-h-[560px] min-h-[200px] space-y-3 overflow-y-auto rounded-md border border-border/70 bg-background p-4 text-sm leading-relaxed text-foreground/90"}):(0,b.jsx)(a2,{content:e,fileType:s?.fileType??"text",disabled:!s,ariaLabel:s?.relativePath??o("projects.selectConfigFile"),onChange:m}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:s&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.Badge,{variant:"outline",children:s.fileType}),(0,b.jsx)(H.Badge,{variant:"outline",children:s.role}),(0,b.jsxs)("span",{children:[s.sizeBytes," bytes"]})]})}),!!k&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:k instanceof Error?k.message:o("projects.failedSaveConfig")})]})]}),(0,b.jsx)("div",{className:"grid gap-4 xl:col-span-2",children:(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in",style:{animationDelay:"100ms"},children:[(0,b.jsx)(I.CardHeader,{className:"pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(u.Globe2,{className:"size-4 text-brand"}),o("projects.globalConfigReadOnly")]})}),(0,b.jsx)(I.CardContent,{className:"space-y-2",children:h?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("common.loading")}):0===q.length?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("projects.noGlobalConfig")}):q.map(a=>(0,b.jsx)(a3,{file:a},a.relativePath))})]})})]})}function a2({content:a,fileType:c,disabled:d,ariaLabel:e,onChange:f,readOnly:g=!1,minHeightClassName:h="min-h-[560px]"}){let i=(0,j.useRef)(null),k=(0,j.useRef)(null),l=aM.has(c),m=(0,j.useMemo)(()=>l?"json"===c?aN(a,/("(?:\\.|[^"\\])*"(?=\s*:))|("(?:\\.|[^"\\])*")|(\btrue\b|\bfalse\b|\bnull\b)|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/gu,a=>a[1]?"text-sky-300":a[2]?"text-emerald-300":a[3]?"text-purple-300":"text-amber-300"):"toml"===c||"yaml"===c?aN(a,/(^\s*[A-Za-z0-9_.-]+(?=\s*[:=]))|("(?:\\.|[^"\\])*")|(\btrue\b|\bfalse\b)|(-?\d+(?:\.\d+)?)/gmu,a=>a[1]?"text-sky-300":a[2]?"text-emerald-300":a[3]?"text-purple-300":"text-amber-300"):"markdown"===c?aN(a,/(^#{1,6}\s.*$)|(`[^`]+`)|(\[[^\]]+\]\([^)]+\))/gmu,a=>a[1]?"text-sky-300":a[2]?"text-amber-300":"text-emerald-300"):"javascript"===c?aN(a,/\b(const|let|var|function|return|if|else|import|export|from|await|async)\b|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/gu,a=>a[1]?"text-purple-300":"text-emerald-300"):[{text:a}]:[{text:a}],[a,c,l]),n=(0,j.useMemo)(()=>Array.from({length:Math.max(a.split("\n").length,1)},(a,b)=>b+1),[a]);return(0,b.jsxs)("div",{className:"overflow-hidden rounded-lg border border-input bg-muted shadow-inner shadow-black/30",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-border bg-muted/60 px-3 py-2",children:[(0,b.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-[0.18em] text-muted-foreground",children:g?"Readonly config":"Live syntax editor"}),(0,b.jsx)(H.Badge,{variant:"outline",className:"border-border bg-background text-[10px] text-muted-foreground",children:l?c:"plain"})]}),(0,b.jsxs)("div",{className:(0,ac.cn)("grid grid-cols-[3.5rem_minmax(0,1fr)]",h),children:[(0,b.jsx)("div",{ref:k,"aria-hidden":"true",className:"overflow-hidden border-r border-border bg-muted/40 px-2 py-4 text-right font-mono text-[11px] leading-6 text-muted-foreground [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:n.map(a=>(0,b.jsx)("div",{children:a},a))}),(0,b.jsxs)("div",{className:"relative min-w-0",children:[(0,b.jsx)("pre",{ref:i,"aria-hidden":!g,onScroll:g?function(a){let b=k.current;b&&(b.scrollTop=a.currentTarget.scrollTop)}:void 0,className:(0,ac.cn)("inset-0 whitespace-pre p-4 font-mono text-[13px] leading-6 text-foreground/90",g?"h-full max-h-[420px] overflow-auto":"pointer-events-none absolute overflow-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden"),children:m.map((a,c)=>(0,b.jsx)("span",{className:a.className,children:a.text},`${c}-${a.text}`))}),!g&&(0,b.jsx)("textarea",{className:"absolute inset-0 h-full w-full resize-none overflow-auto border-0 bg-transparent p-4 font-mono text-[13px] leading-6 text-transparent caret-sky-300 outline-none selection:bg-sky-500/30 focus-visible:ring-[3px] focus-visible:ring-ring/40 disabled:cursor-not-allowed disabled:opacity-60",value:a,onChange:a=>f?.(a.target.value),onScroll:function(a){let b=i.current,c=k.current;b&&(b.scrollTop=a.currentTarget.scrollTop,b.scrollLeft=a.currentTarget.scrollLeft),c&&(c.scrollTop=a.currentTarget.scrollTop)},spellCheck:!1,disabled:d,"aria-label":e,wrap:"off"})]})]})]})}function a3({file:a}){let{t:c}=(0,g.useLanguage)();return(0,b.jsxs)("details",{className:"rounded-md border border-border/70 bg-background px-3 py-2 text-sm",children:[(0,b.jsxs)("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-xs",children:a.relativePath}),(0,b.jsx)(H.Badge,{variant:a.exists?"secondary":"outline",children:c(a.exists?"projects.configExists":"projects.configMissing")})]}),a.content?(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(a2,{content:a.content,fileType:a.fileType,disabled:!0,readOnly:!0,ariaLabel:a.relativePath,minHeightClassName:"min-h-[260px]"})}):(0,b.jsx)("pre",{className:"mt-2 max-h-96 overflow-auto whitespace-pre-wrap rounded bg-muted p-3 text-xs leading-5 text-muted-foreground",children:c("projects.noGlobalConfigContent")})]})}function a4({activities:a}){let{t:c}=(0,g.useLanguage)(),e=(0,g.useUiLocale)(),f=(0,aK.useProjectCopy)();return(0,b.jsxs)(I.Card,{className:"forgebadger-animate-in overflow-hidden",children:[(0,b.jsx)(I.CardHeader,{className:"flex flex-row flex-wrap items-center justify-between gap-3 pb-3",children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(n.Activity,{className:"size-4 text-brand"}),c("sessions.activity")]})}),0===a.length?(0,b.jsxs)(I.CardContent,{className:"flex flex-col items-center gap-3 py-10 text-center",children:[(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(n.Activity,{className:"size-5"})}),(0,b.jsx)("div",{className:"text-sm font-medium",children:c("sessions.noActivity")})]}):(0,b.jsx)("div",{className:"divide-y divide-border/70 border-t border-border/70",children:a.map(a=>{var c,g;let h;return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 transition-colors hover:bg-muted/40",children:[(0,b.jsx)("span",{className:(0,ac.cn)("mt-1.5 size-2 shrink-0 rounded-full","error"===a.status?"bg-red-400":"bg-emerald-400")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:"error"===a.status?"destructive":"outline",className:"w-fit",children:(0,aK.activityTypeLabel)(f,a.type)}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:(c=a.createdAt,g=e,Number.isNaN((h=new Date(c)).getTime())?c:h.toLocaleString(g))})]}),(0,b.jsx)("p",{className:"break-words text-sm text-foreground",children:a.message}),a.sessionId&&(0,b.jsx)(d.default,{href:`/sessions/${a.sessionId}`,className:"inline-block break-all font-mono text-xs text-muted-foreground transition-colors hover:text-brand",children:a.sessionId})]})]},a.id)})})]})}function a5(a){let b=a6(a);return b&&aY.includes(b)?b:null}function a6(a){return a?.trim()||null}let a7=(0,j.createContext)({canEdit:!1,canManage:!1,legacySessions:!1});function a8(){return(0,j.useContext)(a7)}let a9=["planned","running","waiting_for_review","blocked","completed","cancelled"];var ba=a.i(69168),bb=a.i(13662);function bc({goal:a,t:c,draft:d,error:e,isEditing:f,isSaving:g,onCancel:h,onDraftChange:i,onEdit:j,onSave:k}){let{canEdit:l,canManage:m,legacySessions:n}=a8(),o=m??l;return f&&o?(0,b.jsxs)(I.Card,{children:[(0,b.jsx)(I.CardHeader,{children:(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(ba.Target,{className:"size-4 text-brand"}),c("projects.projectManagerGoal")]})}),(0,b.jsxs)(I.CardContent,{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-goal-summary",children:c("projects.projectManagerGoalSummary")}),(0,b.jsx)(W.Input,{id:"project-manager-goal-summary",value:d.summary,"aria-invalid":!!e&&0===d.summary.trim().length,disabled:g,onChange:a=>i({...d,summary:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-goal-constraints",children:c("projects.projectManagerConstraints")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-goal-constraints",value:d.constraintsText,disabled:g,placeholder:c("projects.projectManagerTextListHint"),onChange:a=>i({...d,constraintsText:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerTextListHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-goal-acceptance",children:c("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-goal-acceptance",value:d.acceptanceCriteriaText,disabled:g,placeholder:c("projects.projectManagerTextListHint"),onChange:a=>i({...d,acceptanceCriteriaText:a.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerTextListHint")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-goal-status",children:c("projects.projectManagerGoalStatus")}),(0,b.jsx)(W.Input,{id:"project-manager-goal-status",value:d.status,disabled:g,onChange:a=>i({...d,status:a.target.value})})]}),e&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e}),(0,b.jsxs)("div",{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:h,disabled:g,children:c("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:k,disabled:g,children:c("projects.projectManagerSaveGoal")})]})]})]}):a?(0,b.jsx)(I.Card,{children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-3 lg:flex-row lg:items-center lg:gap-4",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",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)(ba.Target,{className:"size-4"})}),(0,b.jsx)("p",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:a.summary,children:a.summary})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:"secondary",children:(0,bb.statusLabel)(a.status,c)}),(0,b.jsxs)("span",{className:"rounded border border-border/70 bg-muted/20 px-2 py-0.5 text-xs text-muted-foreground",children:[c("projects.projectManagerConstraints")," · ",a.constraints.length]}),(0,b.jsxs)("span",{className:"rounded border border-border/70 bg-muted/20 px-2 py-0.5 text-xs text-muted-foreground",children:[c("projects.projectManagerAcceptanceCriteria")," · ",a.acceptanceCriteria.length]}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:[c("projects.projectManagerUpdated"),": ",(0,bb.formatTimestamp)(a.updatedAt)]}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!o,onClick:j,children:c("projects.projectManagerEditGoal")})]})]})}):(0,b.jsx)(I.Card,{children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",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)(ba.Target,{className:"size-4"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:c("projects.projectManagerNoGoalTitle")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("projects.projectManagerNoGoalBody")})]})]}),(0,b.jsx)(G.Button,{size:"sm",variant:"brand",className:"shrink-0",disabled:!o,onClick:j,children:c("projects.projectManagerEditGoal")})]})})}var bd=a.i(78725),be=a.i(31692);let bf=(0,y.default)("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var bg=a.i(73867);function bh({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-background/40 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs tabular-nums",children:c})]})}function bi({title:a,body:c,icon:d}){return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 py-10 text-center",children:[d?(0,b.jsx)("div",{className:"flex size-10 items-center justify-center rounded-md bg-brand/10 text-brand",children:(0,b.jsx)(d,{className:"size-5"})}):null,(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:c})]})]})}function bj({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1 font-mono text-sm tabular-nums",children:c})]})}let bk="backlog",bl="lane:";function bm(a){return"string"==typeof a&&a.startsWith(bl)?a.slice(bl.length):null}function bn({isFetching:a,links:c,onViewDetails:d,projectId:e,stages:f,t:g,taskPackets:h,workItems:i}){let{canEdit:k,canManage:n,legacySessions:o}=a8(),p=(0,m.useQueryClient)(),[q,r]=(0,j.useState)(!1),[s,t]=(0,j.useState)({name:"",description:""}),[u,v]=(0,j.useState)(null),[w,x]=(0,j.useState)(null),[y,z]=(0,j.useState)(""),[A,C]=(0,j.useState)(null),[D,E]=(0,j.useState)(null),[F,H]=(0,j.useState)(null),[J,K]=(0,j.useState)(null),[L,M]=(0,j.useState)(null),[N,O]=(0,j.useState)(null),[Q,R]=(0,j.useState)(null),S=(0,j.useRef)(null),T=(0,bd.useSensors)((0,bd.useSensor)(bd.PointerSensor,{activationConstraint:{distance:6}}),(0,bd.useSensor)(bd.KeyboardSensor));(0,j.useEffect)(()=>()=>{null!==S.current&&window.clearTimeout(S.current)},[]);let U=async()=>{await p.invalidateQueries({queryKey:["project-manager",e]})},W=a=>(0,bb.projectManagerMutationMessage)(a,g("projects.projectManagerStageMutationError")),X=(0,l.useMutation)({mutationFn:a=>(0,P.createProjectManagerStage)(e,a),onSuccess:async()=>{v(null),r(!1),t({name:"",description:""}),await U()},onError:a=>v(W(a))}),Y=(0,l.useMutation)({mutationFn:()=>(0,P.seedProjectManagerStageTemplate)(e),onSuccess:async()=>{K(null),await U()},onError:a=>K(W(a))}),Z=(0,l.useMutation)({mutationFn:({name:a,stageId:b})=>(0,P.updateProjectManagerStage)(e,b,{name:a}),onSuccess:async()=>{C(null),x(null),await U()},onError:a=>C(W(a))}),$=(0,l.useMutation)({mutationFn:a=>(0,P.deleteProjectManagerStage)(e,a),onSuccess:async()=>{H(null),E(null),await U()},onError:a=>H(W(a))}),_=(0,l.useMutation)({mutationFn:a=>(0,P.reorderProjectManagerStages)(e,a),onSuccess:async()=>{K(null),await U()},onError:a=>K(W(a))}),ab=(0,l.useMutation)({mutationFn:({stageId:a,workItemId:b})=>(0,P.updateProjectManagerWorkItem)(e,b,{stageId:a,expectedRevision:i.find(a=>a.id===b)?.revision}),onSuccess:async(a,b)=>{K(null),M(b.stageId??bk),null!==S.current&&window.clearTimeout(S.current),S.current=window.setTimeout(()=>M(null),1200),await U()},onError:a=>K(W(a))}),ac=(0,j.useMemo)(()=>{let a=new Map;for(let b of h)b.sessionLink&&a.set(b.workItemId,b.sessionLink);return a},[h]),ad=(0,j.useMemo)(()=>{let a=new Map,b=new Map;for(let d of c)a.set(d.blockedWorkItemId,(a.get(d.blockedWorkItemId)??0)+1),b.set(d.blockerWorkItemId,(b.get(d.blockerWorkItemId)??0)+1);return{blockedBy:a,blocking:b}},[c]),ae=!(n??k)||X.isPending||Y.isPending||_.isPending,af=(a,b)=>{if(!(n??k))return;let c=f.map(a=>a.id),d=c.indexOf(a.id),e=d+b;if(d<0||e<0||e>=c.length)return;let g=[...c],h=g[d],i=g[e];void 0!==h&&void 0!==i&&(g[d]=i,g[e]=h,K(null),_.mutate(g))},ag=(a,b)=>{k&&(K(null),ab.mutate({stageId:b,workItemId:a.id}))},ah=N?i.find(a=>a.id===N)??null:null,ai=()=>{O(null),R(null)};return(0,b.jsxs)(I.Card,{"data-testid":"project-manager-stages-card",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(bf,{className:"size-4 text-brand"}),g("projects.projectManagerPipelineTitle"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:f.length}),a&&(0,b.jsx)(aa.RefreshCw,{className:"size-3 animate-spin text-muted-foreground"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("projects.projectManagerPipelineDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[0===f.length&&(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",onClick:()=>{K(null),Y.mutate()},disabled:ae,children:[(0,b.jsx)(bg.Sparkles,{className:"mr-2 size-4"}),g("projects.projectManagerStageSeedTemplate")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>{v(null),t({name:"",description:""}),r(!0)},disabled:ae,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),g("projects.projectManagerStageCreate")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[J&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:J}),0===f.length?(0,b.jsx)(bi,{title:g("projects.projectManagerStageEmptyTitle"),body:g("projects.projectManagerStageEmptyBody"),icon:bf}):(0,b.jsxs)(bd.DndContext,{sensors:T,onDragStart:a=>{O(String(a.active.id)),R(null)},onDragOver:a=>{R(bm(a.over?.id))},onDragEnd:a=>{let b=bm(a.over?.id),c=i.find(b=>b.id===String(a.active.id))??null;if(ai(),!b||!c)return;let d=b===bk?null:b;d!==c.stageId&&ag(c,d)},onDragCancel:ai,children:[(0,b.jsxs)("div",{className:"flex items-stretch gap-2 overflow-x-auto pb-1",children:[(0,b.jsx)(bo,{dependencyCounts:ad,highlighted:L===bk||Q===bk,items:i.filter(a=>null===a.stageId),movePending:!k||ab.isPending,onMoveWorkItem:ag,onViewDetails:d,sessionByWorkItemId:ac,stages:f,t:g,title:g("projects.projectManagerStageBacklog")}),f.map((a,c)=>(0,b.jsxs)(j.Fragment,{children:[(0,b.jsx)(al.ChevronRight,{className:"mt-8 size-4 shrink-0 self-start text-muted-foreground/50","aria-hidden":!0}),(0,b.jsx)(bo,{dependencyCounts:ad,highlighted:L===a.id||Q===a.id,items:i.filter(b=>b.stageId===a.id),movePending:!k||ab.isPending,onDelete:()=>{(n??k)&&(H(null),E(a))},onMove:c>0?()=>af(a,-1):void 0,onMoveBack:c<f.length-1?()=>af(a,1):void 0,onMoveWorkItem:ag,onRename:()=>{(n??k)&&(C(null),z(a.name),x(a))},onViewDetails:d,sessionByWorkItemId:ac,stage:a,stages:f,t:g,title:a.name})]},a.id))]}),(0,b.jsx)(bd.DragOverlay,{dropAnimation:null,children:ah?(0,b.jsx)(bq,{item:ah,t:g}):null})]})]}),(0,b.jsx)(br,{description:s.description,error:u,isSaving:X.isPending,name:s.name,onDescriptionChange:a=>t(b=>({...b,description:a})),onNameChange:a=>t(b=>({...b,name:a})),onOpenChange:a=>{a||(r(!1),v(null))},onSave:()=>{let a=s.name.trim();if(!a)return void v(g("projects.projectManagerStageNameRequired"));v(null);let b=s.description.trim();X.mutate({name:a,...b?{description:b}:{}})},open:q,t:g,title:g("projects.projectManagerStageCreate")}),(0,b.jsx)(br,{description:"",error:A,isSaving:Z.isPending,name:y,onNameChange:z,onOpenChange:a=>{a||(x(null),C(null))},onSave:()=>{if(!w)return;let a=y.trim();a?(C(null),Z.mutate({name:a,stageId:w.id})):C(g("projects.projectManagerStageNameRequired"))},open:!!w,t:g,title:g("projects.projectManagerStageRename")}),(0,b.jsx)(V.Dialog,{open:!!D,onOpenChange:a=>{a||(E(null),H(null))},children:(0,b.jsxs)(V.DialogContent,{children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:g("projects.projectManagerStageDelete")}),(0,b.jsx)(V.DialogDescription,{children:g("projects.projectManagerStageDeleteConfirm")})]}),D&&(0,b.jsx)("p",{className:"text-sm font-medium",children:D.name}),F&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:F}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>E(null),disabled:$.isPending,children:g("common.cancel")}),(0,b.jsx)(G.Button,{variant:"destructive",onClick:()=>D&&$.mutate(D.id),disabled:$.isPending,children:g("common.delete")})]})]})})]})}function bo({dependencyCounts:a,highlighted:c,items:d,movePending:e,onDelete:f,onMove:g,onMoveBack:h,onMoveWorkItem:i,onRename:j,onViewDetails:k,sessionByWorkItemId:l,stage:m,stages:n,t:o,title:q}){var r;let{canManage:s,canEdit:t}=a8(),u=m?m.id:bk,{setNodeRef:v}=(0,bd.useDroppable)({id:`${bl}${u}`});return(0,b.jsxs)("section",{ref:v,className:(0,ac.cn)("flex w-72 shrink-0 flex-col rounded-md border border-border/70 bg-background/40",c&&"forgebadger-lane-drop-highlight"),"data-testid":m?`project-manager-stage-lane-${m.id}`:"project-manager-stage-lane-backlog",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border/70 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:(0,ac.cn)("size-2 shrink-0 rounded-full",(r=m?.status)?"active"===r?"bg-brand forgebadger-pulse-dot":"completed"===r?"bg-emerald-500":"bg-muted-foreground/40":"bg-muted-foreground/60"),"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:q}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d.length}),m&&"active"!==m.status&&(0,b.jsx)(H.Badge,{variant:"outline",children:(0,bb.stageStatusLabel)(m.status,o)})]}),m&&(j||f)&&(0,b.jsxs)(K.DropdownMenu,{children:[(0,b.jsx)(K.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(G.Button,{disabled:!(s??t),size:"xs",variant:"ghost","aria-label":q,children:(0,b.jsx)(x.MoreHorizontal,{className:"size-4"})})}),(0,b.jsxs)(K.DropdownMenuContent,{align:"end",children:[j&&(0,b.jsxs)(K.DropdownMenuItem,{onClick:j,children:[(0,b.jsx)(A.Pencil,{className:"mr-2 size-3"}),o("projects.projectManagerStageRename")]}),g&&(0,b.jsxs)(K.DropdownMenuItem,{onClick:g,children:[(0,b.jsx)(p.ArrowLeft,{className:"mr-2 size-3"}),o("projects.projectManagerStageMoveLeft")]}),h&&(0,b.jsxs)(K.DropdownMenuItem,{onClick:h,children:[(0,b.jsx)(be.ArrowRight,{className:"mr-2 size-3"}),o("projects.projectManagerStageMoveRight")]}),f&&(0,b.jsxs)(K.DropdownMenuItem,{onClick:f,className:"text-destructive",children:[(0,b.jsx)(E.Trash2,{className:"mr-2 size-3"}),o("projects.projectManagerStageDelete")]})]})]})]}),(0,b.jsx)("div",{className:"flex max-h-96 flex-col gap-2 overflow-y-auto p-2",children:0===d.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:o("projects.projectManagerStageLaneEmpty")}):d.map((c,d)=>(0,b.jsx)(bp,{dependencyCounts:a,index:d,item:c,movePending:e,onMoveWorkItem:i,onViewDetails:k,sessionLink:l.get(c.id)??null,stages:n,t:o},c.id))})]})}function bp({dependencyCounts:a,index:c,item:d,movePending:e,onMoveWorkItem:f,onViewDetails:g,sessionLink:h,stages:i,t:j}){let k=a.blockedBy.get(d.id)??0,l=a.blocking.get(d.id)??0,{attributes:m,isDragging:n,listeners:o,setNodeRef:p}=(0,bd.useDraggable)({id:d.id,disabled:e});return(0,b.jsxs)("article",{ref:p,className:(0,ac.cn)("forgebadger-animate-in rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",n&&"opacity-40"),style:{animationDelay:`${40*c}ms`},"data-testid":`project-manager-stage-item-${d.id}`,...m,...o,children:[(0,b.jsx)("button",{type:"button",className:"w-full break-words text-left text-sm font-medium leading-5 transition-colors hover:text-brand",onClick:()=>g(d),children:d.title}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(d.status),className:(0,bb.statusBadgeClassName)(d.status),children:(0,bb.statusLabel)(d.status,j)}),k>0&&(0,b.jsxs)(H.Badge,{variant:"destructive",children:[j("projects.projectManagerDependencyBlockedBy"),": ",k]}),l>0&&(0,b.jsxs)(H.Badge,{variant:"secondary",children:[j("projects.projectManagerDependencyBlocking"),": ",l]}),h&&(0,b.jsxs)("a",{className:"inline-flex items-center gap-1 rounded border border-border/70 px-1.5 py-0.5 text-xs text-brand transition-colors hover:border-brand/40 hover:underline",href:h.href,children:[(0,b.jsx)(w.Link2,{className:"size-3"}),j("projects.projectManagerLinkedSession")]})]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)("select",{"aria-label":j("projects.projectManagerStageAssign"),className:"h-8 w-full rounded-md border border-input bg-transparent px-2 text-xs shadow-xs outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30",value:d.stageId??"",disabled:e,onChange:a=>f(d,a.target.value||null),children:[(0,b.jsx)("option",{value:"",children:j("projects.projectManagerStageBacklog")}),i.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})})]})}function bq({item:a,t:c}){return(0,b.jsxs)("div",{className:"w-72 rotate-2 cursor-grabbing rounded-md border border-brand/50 bg-card p-3 opacity-90 shadow-lg","data-testid":`project-manager-stage-item-drag-preview-${a.id}`,children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:a.title}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(a.status),className:(0,bb.statusBadgeClassName)(a.status),children:(0,bb.statusLabel)(a.status,c)})})]})}function br({description:a,error:c,isSaving:d,name:e,onDescriptionChange:f,onNameChange:g,onOpenChange:h,onSave:i,open:j,t:k,title:l}){return(0,b.jsx)(V.Dialog,{open:j,onOpenChange:h,children:(0,b.jsxs)(V.DialogContent,{children:[(0,b.jsx)(V.DialogHeader,{children:(0,b.jsx)(V.DialogTitle,{children:l})}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-stage-name",children:k("projects.projectManagerStageName")}),(0,b.jsx)(W.Input,{id:"project-manager-stage-name",value:e,"aria-invalid":!!c&&0===e.trim().length,disabled:d,onChange:a=>g(a.target.value)})]}),f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-stage-description",children:k("projects.projectManagerStageDescription")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-stage-description",value:a??"",disabled:d,onChange:a=>f(a.target.value)})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>h(!1),disabled:d,children:k("common.cancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:i,disabled:d,children:k("common.save")})]})]})})}function bs({item:a,projectId:c,stages:d,t:e}){let{canEdit:f,legacySessions:g}=a8(),h=(0,m.useQueryClient)(),[i,k]=(0,j.useState)(null),n=(0,l.useMutation)({mutationFn:b=>(0,P.updateProjectManagerWorkItem)(c,a.id,{stageId:b,expectedRevision:a.revision}),onSuccess:async()=>{k(null),await h.invalidateQueries({queryKey:["project-manager",c]})},onError:a=>k((0,bb.projectManagerMutationMessage)(a,e("projects.projectManagerStageMutationError")))});return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("select",{"aria-label":e("projects.projectManagerStageAssign"),className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:a.stageId??"",disabled:!f||n.isPending,onChange:a=>n.mutate(a.target.value||null),children:[(0,b.jsx)("option",{value:"",children:e("projects.projectManagerStageBacklog")}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),i&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i})]})}let bt=(0,y.default)("CircleArrowRight",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]]);var bu=a.i(23205),bv=a.i(57462);let bw=(0,y.default)("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);var bx=a.i(99609);let by=(0,y.default)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);var bz=a.i(2355);let bA=(0,y.default)("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);var bB=a.i(75196);function bC({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,ac.cn)("w-full caption-bottom text-sm",a),...c})})}function bD({className:a,...c}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,ac.cn)("[&_tr]:border-b",a),...c})}function bE({className:a,...c}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,ac.cn)("[&_tr:last-child]:border-0",a),...c})}function bF({className:a,...c}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,ac.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",a),...c})}function bG({className:a,...c}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,ac.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}function bH({className:a,...c}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,ac.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c})}var bI=a.i(86422);function bJ(a,b){return!b||a.title.toLowerCase().includes(b)}let bK="board-column:";function bL(a){if("string"!=typeof a||!a.startsWith(bK))return null;let b=a.slice(bK.length);return bI.WORK_ITEM_STATUSES.includes(b)?b:null}function bM({batchStatusError:a,batchStatusPending:c,batchTargetOptions:d,batchTargetStatus:e,highlightedWorkItemId:f,isFetching:g,onBatchStatusSubmit:h,onBatchTargetStatusChange:i,onClearSelection:k,onCreate:l,onDelete:m,onEdit:n,onQuickStart:o,onStatusFilterChange:p,onStatusChange:q,onToggleSelection:r,onViewDetails:s,onViewModeChange:t,quickStartError:u,quickStartPendingWorkItemId:v,selectedWorkItemIds:w,statusError:x,statusFilter:y,statusMutationPending:z,tableWorkItems:A,taskPackets:C,taskPacketsError:D,taskPacketsFetching:E,viewMode:F,workItems:H,t:J}){let{canEdit:K,legacySessions:L}=a8(),[M,N]=(0,j.useState)(""),O=M.trim().toLowerCase(),P=(0,j.useMemo)(()=>H.filter(a=>bJ(a,O)),[H,O]),Q=(0,j.useMemo)(()=>A.filter(a=>bJ(a,O)),[A,O]),R=(0,j.useMemo)(()=>new Map(C.map(a=>[a.workItemId,a])),[C]),S=("all"!==y||O.length>0)&&0===Q.length,T=w.filter(a=>H.some(b=>b.id===a)).length;return(0,b.jsxs)(I.Card,{children:[(0,b.jsxs)(I.CardHeader,{className:"space-y-3",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(bu.ClipboardList,{className:"size-4 text-brand"}),J("projects.projectManagerWorkItems"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:H.length})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 lg:flex-row lg:items-center",children:[(0,b.jsxs)("div",{className:"inline-flex w-fit rounded-md border border-border/70 bg-muted/20 p-1",children:[(0,b.jsxs)(G.Button,{size:"sm",variant:"board"===F?"brand":"ghost","aria-pressed":"board"===F,onClick:()=>t("board"),children:[(0,b.jsx)(bx.LayoutDashboard,{className:"mr-2 size-4"}),J("projects.projectManagerBoard")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"table"===F?"brand":"ghost","aria-pressed":"table"===F,onClick:()=>t("table"),children:[(0,b.jsx)(bA,{className:"mr-2 size-4"}),J("projects.projectManagerTable")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"queue"===F?"brand":"ghost","aria-pressed":"queue"===F,onClick:()=>t("queue"),children:[(0,b.jsx)(by,{className:"mr-2 size-4"}),J("projects.projectManagerTaskQueue")]})]}),(0,b.jsxs)("div",{className:"relative lg:flex-1",children:[(0,b.jsx)(ao.Search,{className:"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(W.Input,{value:M,onChange:a=>N(a.target.value),placeholder:J("projects.projectManagerSearchPlaceholder"),"aria-label":J("projects.projectManagerSearchPlaceholder"),className:"h-9 pl-8"})]}),(0,b.jsxs)(bB.Select,{value:y,onValueChange:a=>p(a),disabled:g,children:[(0,b.jsx)(bB.SelectTrigger,{"aria-label":J("projects.projectManagerFilterByStatus"),className:"w-full lg:w-44",children:(0,b.jsx)(bB.SelectValue,{})}),(0,b.jsxs)(bB.SelectContent,{children:[(0,b.jsx)(bB.SelectItem,{value:"all",children:J("projects.projectManagerAllStatuses")}),bI.WORK_ITEM_STATUSES.map(a=>(0,b.jsx)(bB.SelectItem,{value:a,children:(0,bb.statusLabel)(a,J)},a))]})]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",disabled:!K,onClick:l,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),J("projects.projectManagerCreateWorkItem")]})]})]}),(0,b.jsxs)(I.CardContent,{className:"space-y-3",children:[x&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:x}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a}),u&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:u}),0===H.length?(0,b.jsx)(bi,{title:S?J("projects.projectManagerFilterEmptyTitle"):J("projects.projectManagerNoWorkItemsTitle"),body:S?J("projects.projectManagerFilterEmptyBody"):J("projects.projectManagerNoWorkItemsBody"),icon:bu.ClipboardList}):"board"===F?(0,b.jsx)(bN,{batchStatusPending:c,highlightedWorkItemId:f,onDelete:m,onEdit:n,onQuickStart:o,onStatusChange:q,onToggleSelection:r,onViewDetails:s,quickStartPendingWorkItemId:v,selectedWorkItemIds:w,statusMutationPending:z,t:J,taskPacketByWorkItemId:R,workItems:P}):"table"===F?0===Q.length?(0,b.jsx)(bi,{title:J("projects.projectManagerFilterEmptyTitle"),body:J("projects.projectManagerFilterEmptyBody"),icon:bu.ClipboardList}):(0,b.jsx)(bR,{highlightedWorkItemId:f,onQuickStart:o,onStatusChange:q,onViewDetails:s,quickStartPendingWorkItemId:v,statusMutationPending:z,t:J,taskPacketByWorkItemId:R,workItems:Q}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:J("projects.projectManagerTaskQueueDescription")}),(0,b.jsx)(bS,{error:D,highlightedWorkItemId:f,isFetching:E,onQuickStart:o,onViewDetails:s,quickStartPendingWorkItemId:v,t:J,taskPackets:C,workItems:H})]})]}),T>0&&(0,b.jsxs)("div",{className:"forgebadger-slide-up-toolbar fixed bottom-6 left-1/2 z-40 flex max-w-[calc(100vw-2rem)] flex-wrap items-center gap-3 rounded-lg border border-border bg-card px-4 py-3 shadow-lg","data-testid":"project-manager-batch-toolbar",children:[(0,b.jsxs)("span",{className:"text-sm font-medium",children:[J("projects.projectManagerSelected"),": ",T]}),(0,b.jsxs)(bB.Select,{value:e||void 0,onValueChange:a=>i(a),disabled:!K||c||0===d.length,children:[(0,b.jsx)(bB.SelectTrigger,{size:"sm","aria-label":J("projects.projectManagerBatchTargetStatus"),className:"min-w-44",children:(0,b.jsx)(bB.SelectValue,{placeholder:J("projects.projectManagerBatchTargetStatus")})}),(0,b.jsx)(bB.SelectContent,{children:d.map(a=>(0,b.jsx)(bB.SelectItem,{value:a,children:(0,bb.statusLabel)(a,J)},a))})]}),0===d.length&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:J("projects.projectManagerNoBatchTargets")}),(0,b.jsx)(G.Button,{size:"sm",variant:"brand",onClick:h,disabled:!K||c||!e,children:J("projects.projectManagerMoveSelected")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:k,disabled:c,children:J("projects.projectManagerClearSelection")})]})]})}function bN({batchStatusPending:a,highlightedWorkItemId:c,onDelete:d,onEdit:e,onQuickStart:f,onStatusChange:g,onToggleSelection:h,onViewDetails:i,quickStartPendingWorkItemId:k,selectedWorkItemIds:l,statusMutationPending:m,t:n,taskPacketByWorkItemId:o,workItems:p}){let[q,r]=(0,j.useState)(null),[s,t]=(0,j.useState)(null),u=(0,bd.useSensors)((0,bd.useSensor)(bd.PointerSensor,{activationConstraint:{distance:6}}),(0,bd.useSensor)(bd.KeyboardSensor)),v=q?p.find(a=>a.id===q)??null:null,w=(a,b)=>a&&b&&b!==a.status&&bI.PROJECT_MANAGER_STATUS_TRANSITIONS[a.status].includes(b)?b:null,x=()=>{r(null),t(null)};return(0,b.jsx)("div",{className:"space-y-3","data-testid":"project-manager-board",children:(0,b.jsxs)(bd.DndContext,{sensors:u,onDragStart:a=>{r(String(a.active.id)),t(null)},onDragOver:a=>{t(w(p.find(b=>b.id===String(a.active.id))??null,bL(a.over?.id)))},onDragEnd:a=>{let b=p.find(b=>b.id===String(a.active.id))??null,c=w(b,bL(a.over?.id));x(),b&&c&&g(b,c)},onDragCancel:x,children:[(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:bI.WORK_ITEM_STATUSES.map(j=>{let q=p.filter(a=>a.status===j);return(0,b.jsx)(bO,{highlighted:s===j,itemCount:q.length,status:j,t:n,children:0===q.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:n("projects.projectManagerBoardEmptyColumn")}):q.map((j,p)=>(0,b.jsx)(bP,{highlighted:j.id===c,index:p,isStarting:k===j.id,item:j,onDelete:d,onEdit:e,onQuickStart:f,onStatusChange:g,onToggleSelection:h,onViewDetails:i,selected:l.includes(j.id),statusMutationPending:m||a,t:n,taskPacket:o.get(j.id)??null},j.id))},j)})}),(0,b.jsx)(bd.DragOverlay,{dropAnimation:null,children:v?(0,b.jsx)(bQ,{item:v,t:n}):null})]})})}function bO({children:a,highlighted:c,itemCount:d,status:e,t:f}){let{setNodeRef:g}=(0,bd.useDroppable)({id:`${bK}${e}`});return(0,b.jsxs)("section",{ref:g,className:(0,ac.cn)("min-h-56 rounded-md border border-border/70 bg-background/40",c&&"forgebadger-lane-drop-highlight"),"data-testid":`project-manager-board-column-${e}`,children:[(0,b.jsx)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:(0,ac.cn)("size-2 rounded-full",(0,bb.statusDotClassName)(e)),"aria-hidden":!0}),(0,b.jsx)("span",{className:"text-xs font-medium",children:(0,bb.statusLabel)(e,f)}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d})]})}),(0,b.jsx)("div",{className:"flex flex-col gap-2 p-2",children:a})]})}function bP({highlighted:a,index:c,isStarting:d,item:e,onDelete:f,onEdit:g,onQuickStart:h,onStatusChange:i,onToggleSelection:j,onViewDetails:k,selected:l,statusMutationPending:m,t:n,taskPacket:o}){let{canEdit:p,legacySessions:q}=a8(),s=(0,bb.priorityLevel)(e.priority),{attributes:t,isDragging:u,listeners:v,setNodeRef:w}=(0,bd.useDraggable)({id:e.id,disabled:m||!p});return(0,b.jsxs)("article",{ref:w,className:(0,ac.cn)("forgebadger-animate-in rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",a&&"border-brand/50 bg-brand/5",l&&"ring-2 ring-brand/40",u&&"opacity-40"),style:{animationDelay:`${40*c}ms`},"data-testid":`project-manager-board-card-${e.id}`,...t,...v,children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)(U.Checkbox,{className:"mt-1",disabled:!p,checked:l,"aria-label":n("projects.projectManagerSelectWorkItem"),onCheckedChange:a=>j(e,!0===a)}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:e.title}),e.description&&(0,b.jsx)("p",{className:"mt-1 line-clamp-2 break-words text-xs leading-5 text-muted-foreground",children:e.description})]}),(0,b.jsxs)("span",{className:(0,ac.cn)("inline-flex shrink-0 items-center gap-1 text-xs",(0,bb.priorityClassName)(s)),title:`${n((0,bb.priorityLabelKey)(s))} \xb7 ${e.priority}`,children:[(0,b.jsx)(bw,{className:"size-3.5"}),(0,b.jsx)("span",{className:"font-mono tabular-nums",children:e.priority})]})]}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:(0,b.jsxs)(H.Badge,{variant:"outline",children:[n("projects.projectManagerEvidenceRefs"),": ",e.evidenceRefCount]})}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(bU,{isStarting:d,item:e,onQuickStart:h,size:"xs",t:n,taskPacket:o}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",onClick:()=>k(e),children:[(0,b.jsx)(r.Eye,{className:"mr-1 size-3"}),n("projects.projectManagerViewDetails")]}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",disabled:!p,onClick:()=>g(e),children:[(0,b.jsx)(A.Pencil,{className:"mr-1 size-3"}),n("projects.projectManagerEditWorkItem")]}),(0,b.jsxs)(G.Button,{size:"xs",variant:"destructive",disabled:!p,onClick:()=>f(e),children:[(0,b.jsx)(E.Trash2,{className:"mr-1 size-3"}),n("projects.projectManagerDeleteWorkItem")]}),(0,b.jsx)(bV,{disabled:m,item:e,onStatusChange:i,t:n,size:"xs"})]})]})}function bQ({item:a,t:c}){let d=(0,bb.priorityLevel)(a.priority);return(0,b.jsxs)("div",{className:"w-64 rotate-2 cursor-grabbing rounded-md border border-brand/50 bg-card p-3 opacity-90 shadow-lg","data-testid":`project-manager-board-card-drag-preview-${a.id}`,children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium leading-5",children:a.title}),(0,b.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[(0,b.jsxs)(H.Badge,{variant:"outline",children:[c("projects.projectManagerEvidenceRefs"),": ",a.evidenceRefCount]}),(0,b.jsxs)("span",{className:(0,ac.cn)("inline-flex items-center gap-1 text-xs",(0,bb.priorityClassName)(d)),children:[(0,b.jsx)(bw,{className:"size-3.5"}),(0,b.jsx)("span",{className:"font-mono tabular-nums",children:a.priority})]})]})]})}function bR({highlightedWorkItemId:a,onQuickStart:c,onStatusChange:d,onViewDetails:e,quickStartPendingWorkItemId:f,statusMutationPending:g,taskPacketByWorkItemId:h,workItems:i,t:j}){return(0,b.jsxs)(bC,{children:[(0,b.jsx)(bD,{children:(0,b.jsxs)(bF,{children:[(0,b.jsx)(bG,{children:j("common.name")}),(0,b.jsx)(bG,{children:j("common.status")}),(0,b.jsx)(bG,{children:j("projects.projectManagerPriority")}),(0,b.jsx)(bG,{children:j("projects.projectManagerEvidenceRefs")}),(0,b.jsx)(bG,{children:j("projects.projectManagerUpdated")}),(0,b.jsx)(bG,{className:"text-right",children:j("common.actions")})]})}),(0,b.jsx)(bE,{children:i.map(i=>(0,b.jsxs)(bF,{className:(0,ac.cn)(i.id===a&&"border-brand/50 bg-brand/5"),children:[(0,b.jsx)(bH,{className:"max-w-[240px] whitespace-normal break-words font-medium",children:i.title}),(0,b.jsx)(bH,{children:(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(i.status),className:(0,bb.statusBadgeClassName)(i.status),children:(0,bb.statusLabel)(i.status,j)})}),(0,b.jsx)(bH,{className:"font-mono text-xs",children:i.priority}),(0,b.jsx)(bH,{className:"font-mono text-xs tabular-nums",children:i.evidenceRefCount}),(0,b.jsx)(bH,{className:"text-xs text-muted-foreground",children:(0,bb.formatTimestamp)(i.updatedAt)}),(0,b.jsx)(bH,{className:"text-right",children:(0,b.jsxs)("div",{className:"flex flex-col justify-end gap-2 sm:flex-row sm:items-center",children:[(0,b.jsx)(bU,{isStarting:f===i.id,item:i,onQuickStart:c,t:j,taskPacket:h.get(i.id)??null}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:()=>e(i),children:[(0,b.jsx)(r.Eye,{className:"mr-2 size-4"}),j("projects.projectManagerViewDetails")]}),(0,b.jsx)(bV,{disabled:g,item:i,onStatusChange:d,t:j})]})})]},i.id))})]})}function bS({error:a,highlightedWorkItemId:c,isFetching:d,onQuickStart:e,onViewDetails:f,quickStartPendingWorkItemId:g,taskPackets:h,t:i,workItems:k}){let l=(0,j.useMemo)(()=>new Map(k.map(a=>[a.id,a])),[k]),m=(0,j.useMemo)(()=>(function(a){let b={planned:[],running:[],waiting_for_review:[],blocked:[],completed:[],cancelled:[]};for(let c of a)b[c.queueStatus].push(c);return b})(h),[h]);return a?(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i("projects.projectManagerTaskQueueLoadError")}):d&&0===h.length?(0,b.jsx)("div",{className:"rounded-md border border-border/70 px-3 py-6 text-center text-sm text-muted-foreground",children:i("projects.projectManagerTaskQueueLoading")}):0===h.length?(0,b.jsx)(bi,{title:i("projects.projectManagerTaskQueueEmptyTitle"),body:i("projects.projectManagerTaskQueueEmptyBody"),icon:by}):(0,b.jsxs)("div",{className:"space-y-3","data-testid":"project-manager-task-queue",children:[d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTaskQueueLoading")}),(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:a9.map(a=>{let d=m[a];return(0,b.jsxs)("section",{className:"min-h-56 rounded-md border border-border/70 bg-background/40","data-testid":`project-manager-task-queue-column-${a}`,children:[(0,b.jsx)("div",{className:"flex items-center justify-between border-b border-border/70 px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,bb.taskPacketQueueBadgeVariant)(a),children:(0,bb.taskPacketQueueStatusLabel)(a,i)}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground tabular-nums",children:d.length})]})}),(0,b.jsx)("div",{className:"flex flex-col gap-2 p-2",children:0===d.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed border-border/70 px-3 py-6 text-center text-xs text-muted-foreground",children:i("projects.projectManagerTaskQueueEmptyColumn")}):d.map(a=>(0,b.jsx)(bT,{highlighted:a.workItemId===c,isStarting:g===a.workItemId,onQuickStart:e,onViewDetails:f,t:i,taskPacket:a,workItem:l.get(a.workItemId)??null},a.id))})]},a)})})]})}function bT({highlighted:a,isStarting:c,onQuickStart:d,onViewDetails:e,taskPacket:f,t:g,workItem:h}){return(0,b.jsxs)("article",{className:(0,ac.cn)("rounded-md border border-border/70 bg-muted/10 p-3 shadow-xs transition-colors hover:border-border",a&&"border-brand/50 bg-brand/5"),"data-testid":`project-manager-task-queue-card-${f.workItemId}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(f.workItemStatus),children:(0,bb.statusLabel)(f.workItemStatus,g)}),(0,b.jsx)(H.Badge,{variant:"outline",children:f.runtime.adapter}),(0,b.jsx)(H.Badge,{variant:"outline",children:f.runtime.templateId})]}),(0,b.jsx)("h3",{className:"mt-2 break-words text-sm font-medium leading-5",children:f.title}),(0,b.jsxs)("div",{className:"mt-3 grid gap-2 text-xs sm:grid-cols-2",children:[(0,b.jsx)(bh,{label:g("projects.projectManagerAcceptanceCriteria"),value:f.acceptanceCriteria.length}),(0,b.jsx)(bh,{label:g("projects.projectManagerTaskPacketExpectedVerification"),value:f.expectedVerification.length})]}),(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-border/50 bg-background/40 px-2 py-2",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:g("projects.projectManagerTaskPacketLinkedSession")}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-xs",children:f.sessionLink?`${f.sessionLink.sessionId} / ${f.sessionLink.status}`:g("projects.projectManagerTaskPacketBlockedNoSession")})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,bb.formatTimestamp)(f.updatedAt)}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h&&(0,b.jsx)(bU,{isStarting:c,item:h,onQuickStart:d,size:"xs",t:g,taskPacket:f}),(0,b.jsxs)(G.Button,{size:"xs",variant:"outline",disabled:!h,onClick:()=>{h&&e(h)},children:[(0,b.jsx)(r.Eye,{className:"mr-1 size-3"}),g("projects.projectManagerViewDetails")]})]})]})]})}function bU({isStarting:a,item:c,onQuickStart:d,size:e="sm",taskPacket:f,t:g}){let{canEdit:h,legacySessions:i}=a8();return i?f?.sessionLink?(0,b.jsxs)("a",{className:"inline-flex items-center self-center text-xs font-medium text-brand hover:underline",href:f.sessionLink.href,children:[(0,b.jsx)(bv.ExternalLink,{className:"mr-1 size-3"}),g("projects.projectManagerTaskPacketOpenSession")]}):f?(0,b.jsxs)(G.Button,{size:e,variant:"outline",disabled:a,onClick:()=>d(c),children:[(0,b.jsx)(bz.Play,{className:"xs"===e?"mr-1 size-3":"mr-2 size-4"}),g(a?"projects.projectManagerTaskPacketStarting":"projects.projectManagerTaskPacketQuickStart")]}):null:null}function bV({disabled:a,item:c,onStatusChange:d,size:e="sm",t:f}){let{canEdit:g,legacySessions:h}=a8(),i=bI.PROJECT_MANAGER_STATUS_TRANSITIONS[c.status];return 0===i.length?(0,b.jsx)("span",{className:"inline-flex h-9 items-center text-xs text-muted-foreground",children:"-"}):(0,b.jsxs)(K.DropdownMenu,{children:[(0,b.jsx)(K.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)(G.Button,{size:e,variant:"outline",disabled:a||!g,children:[(0,b.jsx)(bt,{className:"xs"===e?"mr-1 size-3":"mr-2 size-4"}),f("projects.projectManagerChangeStatus")]})}),(0,b.jsx)(K.DropdownMenuContent,{align:"end",children:i.map(a=>(0,b.jsx)(K.DropdownMenuItem,{onSelect:()=>d(c,a),children:(0,bb.statusLabel)(a,f)},a))})]})}var bW=a.i(69133);function bX({projectId:a,taskId:c,revision:f,canLink:i,actorId:k}){let{t:n}=(0,g.useLanguage)(),o=(0,m.useQueryClient)(),[p,q]=(0,j.useState)(""),[r,s]=(0,j.useState)(!1),t=(0,e.useQuery)({queryKey:["task-artifacts",a,c,k],queryFn:()=>h.taskArtifactsApi.list(a,c)}),u=t.data?.candidates.find(a=>a.developmentTaskId===p),v=(0,l.useMutation)({mutationFn:async()=>{u&&r&&void 0!==f&&i&&await h.taskArtifactsApi.link(a,c,{developmentTaskId:u.developmentTaskId,artifactDigest:u.artifactDigest,expectedTaskRevision:f,shareSummary:!0})},onSuccess:async()=>{q(""),s(!1),await o.invalidateQueries({queryKey:["task-artifacts",a,c]})}});return(0,b.jsxs)(bW.Panel,{title:n("task.artifacts"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n("task.artifactHint")}),t.isPending?(0,b.jsx)("p",{role:"status",children:n("common.loading")}):t.isError?(0,b.jsx)(bW.ErrorNotice,{error:t.error,retry:()=>void t.refetch()}):(0,b.jsxs)(b.Fragment,{children:[t.data.artifacts.length?(0,b.jsx)("ul",{className:"space-y-3",children:t.data.artifacts.map(c=>(0,b.jsxs)("li",{className:"space-y-2 rounded-md border border-border/70 p-3 text-xs",children:[(0,b.jsxs)("p",{children:["Copilot · ",c.status]}),(0,b.jsx)("code",{className:"block break-all",children:c.artifactDigest}),(0,b.jsxs)("p",{children:[n("task.filesChecks"),": ",c.filesCount," / ",c.passedChecks," /"," ",c.checksCount]}),(0,b.jsx)("p",{children:n(c.current?"task.snapshotCurrent":"task.snapshotStale")}),c.canOpen&&(0,b.jsx)(d.default,{className:"text-brand underline",href:`/copilot/tasks?${new URLSearchParams({projectId:a,taskId:c.developmentTaskId})}`,children:n("task.openPrivate")})]},c.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:n("task.noArtifacts")}),i&&(t.data.candidates.length?(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault(),v.mutate()},children:[(0,b.jsx)(bW.Field,{label:n("task.artifactCandidate"),children:(0,b.jsxs)("select",{className:bW.inputClass,value:p,onChange:a=>{q(a.target.value),s(!1)},disabled:v.isPending,children:[(0,b.jsx)("option",{value:"",children:n("teams.select")}),t.data.candidates.map(a=>(0,b.jsxs)("option",{value:a.developmentTaskId,children:["Copilot · ",a.status," · ",a.developmentTaskId.slice(0,8)]},a.developmentTaskId))]})}),u&&(0,b.jsx)("code",{className:"block break-all text-xs",children:u.artifactDigest}),(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:r,onChange:a=>s(a.target.checked),disabled:v.isPending}),n("task.shareSummary")]}),(0,b.jsx)(G.Button,{size:"sm",disabled:!u||!r||void 0===f||v.isPending,children:n("task.linkArtifact")})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n("task.noCandidates")}))]}),(0,b.jsx)(bW.ErrorNotice,{error:v.error})]})}function bY({projectId:a,actorId:c,detail:d,editable:f}){let{t:h}=(0,g.useLanguage)(),k=(0,bW.useWorkspaceAction)(a),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)(d.run.previewUrl??""),[p,q]=(0,j.useState)(d.run.prUrl??""),r=(0,e.useQuery)({queryKey:["collaboration",a,"run",d.run.id,"diff",c,d.git.commit,l],queryFn:()=>i.collaborationApi.diff(a,d.run.id,l),enabled:!!l}),s=!!(n&&!(0,i.safeWorkspaceUrl)(n)||p&&!(0,i.safeWorkspaceUrl)(p));return(0,b.jsxs)("div",{className:"grid min-w-0 gap-4 xl:grid-cols-2",children:[(0,b.jsxs)(bW.Panel,{title:h("workspace.changes"),children:[0===d.git.files.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("workspace.noChanges")}):(0,b.jsx)("ul",{className:"max-h-48 overflow-auto",children:d.git.files.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{className:"flex w-full gap-2 rounded px-2 py-1 text-left font-mono text-xs hover:bg-muted",onClick:()=>m(a.path),"aria-pressed":l===a.path,children:[(0,b.jsx)("span",{children:a.status}),(0,b.jsx)("span",{className:"break-all",children:a.path})]})},a.path))}),r.isLoading&&(0,b.jsx)("p",{role:"status",children:h("common.loading")}),(0,b.jsx)(bW.ErrorNotice,{error:r.error,retry:()=>void r.refetch()}),r.data&&!r.isError&&(0,b.jsx)("pre",{className:"max-h-96 overflow-auto rounded-md border border-border/70 bg-background p-3 text-xs","aria-label":l,children:r.data.diff||h("workspace.noChanges")})]}),(0,b.jsxs)(bW.Panel,{title:h("workspace.preview"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.linksHint")}),(0,b.jsxs)("form",{className:"space-y-3",onSubmit:b=>{b.preventDefault(),s||k.mutate(()=>i.collaborationApi.links(a,d.run.id,n||null,p||null))},children:[(0,b.jsx)(bW.Field,{label:h("workspace.preview"),children:(0,b.jsx)("input",{className:bW.inputClass,type:"url",maxLength:2048,value:n,disabled:!f,onChange:a=>o(a.target.value)})}),(0,b.jsx)(bW.Field,{label:h("workspace.pr"),children:(0,b.jsx)("input",{className:bW.inputClass,type:"url",maxLength:2048,value:p,disabled:!f,onChange:a=>q(a.target.value)})}),s&&(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:h("workspace.invalidUrl")}),(0,b.jsx)(bW.ErrorNotice,{error:k.error}),f&&(0,b.jsx)(G.Button,{size:"sm",disabled:s||k.isPending,children:h("common.save")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-sm text-brand",children:[(0,i.safeWorkspaceUrl)(d.run.previewUrl)&&(0,b.jsxs)("a",{href:(0,i.safeWorkspaceUrl)(d.run.previewUrl),target:"_blank",rel:"noopener noreferrer",children:[h("workspace.preview")," ↗"]}),(0,i.safeWorkspaceUrl)(d.run.prUrl)&&(0,b.jsxs)("a",{href:(0,i.safeWorkspaceUrl)(d.run.prUrl),target:"_blank",rel:"noopener noreferrer",children:[h("workspace.pr")," ↗"]})]})]})]})}function bZ({project:a,detail:c,actorId:d,reviewerId:e,team:f}){let{t:h}=(0,g.useLanguage)(),k=(0,bW.useWorkspaceAction)(a.id),[l,m]=(0,j.useState)(""),n=c.verifications.find(a=>"passed"===a.status&&!0===a.current&&a.commit===c.git.commit),o=c.verifications.find(a=>a.commit===c.git.commit),p=(0,i.canReview)(a,d,c.run.actorId,f)&&(!e||e===d),q="ready"===c.run.state&&!c.git.dirty&&!c.git.conflicts?.length&&!c.git.error&&!c.run.operation;return(0,b.jsxs)(bW.Panel,{title:h("workspace.review"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.reviewHint")}),c.reviews.length?(0,b.jsx)("ul",{className:"space-y-2",children:c.reviews.map(a=>(0,b.jsxs)("li",{className:"rounded-md border border-border/70 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(bW.WorkspaceStatus,{value:a.decision}),(0,b.jsx)("span",{children:a.actorLabel}),(0,b.jsx)("code",{className:"text-xs",children:a.commit.slice(0,12)})]}),(0,b.jsx)("p",{className:"mt-2 whitespace-pre-wrap break-words",children:a.note})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("workspace.noReviews")}),e&&e!==d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("workspace.assignedReviewer")}),p&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(bW.Field,{label:h("workspace.reviewNote"),children:(0,b.jsx)("textarea",{maxLength:5e3,required:!0,className:bW.inputClass,value:l,onChange:a=>m(a.target.value)})}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(G.Button,{size:"sm",disabled:!q||!n||!l.trim()||k.isPending,onClick:()=>n&&k.mutate(()=>i.collaborationApi.review(a.id,c.run.id,{expectedCommit:c.git.commit,verificationId:n.id,decision:"accepted",note:l.trim()})),children:h("workspace.accept")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!q||!o||!l.trim()||k.isPending,onClick:()=>o&&k.mutate(()=>i.collaborationApi.review(a.id,c.run.id,{expectedCommit:c.git.commit,verificationId:o.id,decision:"changes_requested",note:l.trim()})),children:h("workspace.requestChanges")})]})]}),(0,b.jsx)(bW.ErrorNotice,{error:k.error})]})}function b$({detail:a}){let{t:c}=(0,g.useLanguage)(),{run:d}=a;return(0,b.jsxs)(bW.Panel,{title:c("workspace.verification"),children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:c("workspace.noVerification")}),a.verifications.length?(0,b.jsx)("ul",{className:"space-y-2",children:a.verifications.map(a=>(0,b.jsxs)("li",{className:"space-y-2 rounded-md border border-border/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(bW.WorkspaceStatus,{value:a.status}),"passed"===a.status&&!0!==a.current&&(0,b.jsx)("span",{className:"text-xs text-amber-500",children:c("ready"===d.state?"workspace.staleReceipt":"workspace.historicalReceipt")}),(0,b.jsx)("code",{className:"text-xs",children:a.commit.slice(0,12)})]}),(0,b.jsx)("pre",{className:"max-h-56 overflow-auto whitespace-pre-wrap break-words text-xs",children:a.summary}),"unknown"===a.status&&(0,b.jsx)("p",{className:"text-xs text-amber-500",children:c("workspace.unknownHint")})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("workspace.noReceipts")})]})}function b_({project:a,detail:c,executor:d,onReconciled:e}){let{t:f}=(0,g.useLanguage)(),h=(0,bW.useWorkspaceAction)(a.id),[k,l]=(0,j.useState)(!1),[m,n]=(0,j.useState)(()=>crypto.randomUUID()),{run:o,git:p}=c,q=d&&a.managedExecution?.supported!==!1&&!o.operation&&["ready","closed","revoking"].includes(o.state)&&!!p.commit&&!p.error;return(0,b.jsxs)(bW.Panel,{title:f("delivery.git"),children:[!!p.conflicts?.length&&(0,b.jsxs)("div",{role:"alert",className:"space-y-2 rounded-md border border-amber-500/40 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:f("delivery.conflicts")}),(0,b.jsx)("ul",{className:"text-xs",children:p.conflicts.map(a=>(0,b.jsx)("li",{className:"break-all",children:a},a))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f("delivery.reconcileHint")}),d&&(0,b.jsx)(G.Button,{variant:"outline",size:"sm",disabled:!q||h.isPending,onClick:()=>l(!0),children:f("delivery.reconcile")}),k&&(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:f("delivery.reconcileConfirm")}),(0,b.jsx)("code",{className:"block break-all text-xs",children:p.commit}),(0,b.jsx)(G.Button,{size:"sm",disabled:!q||h.isPending,onClick:()=>h.mutate(async()=>{let b=await i.collaborationApi.reconcile(a.id,o.id,p.commit,m);n(crypto.randomUUID()),l(!1),e(b.run.id)}),children:f("workspace.confirm")}),(0,b.jsx)(G.Button,{variant:"ghost",size:"sm",disabled:h.isPending,onClick:()=>l(!1),children:f("common.cancel")})]}),(0,b.jsx)(bW.ErrorNotice,{error:h.error}),d&&(0,b.jsx)(b0,{project:a,detail:c})]})}function b0({project:a,detail:c}){let{t:d}=(0,g.useLanguage)(),e=(0,bW.useWorkspaceAction)(a.id),[f,h]=(0,j.useState)(!1),[i,k]=(0,j.useState)(""),[l,m]=(0,j.useState)(c.run.branch),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(""),[r,s]=(0,j.useState)(""),[t,u]=(0,j.useState)(""),[v,w]=(0,j.useState)(!1),[x,y]=(0,j.useState)(""),z=!!c.verifications.find(a=>!0===a.current&&"passed"===a.status&&a.commit===c.git.commit)&&"ready"===c.run.state&&!c.run.operation&&!c.git.dirty&&!c.git.error&&!c.git.conflicts?.length;return(0,b.jsxs)("div",{className:"space-y-3 border-t border-border pt-3",children:[(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:!z,onClick:()=>h(!0),children:d("delivery.draftPr")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d("delivery.prHint")}),x&&(0,b.jsxs)("a",{className:"text-sm text-brand underline",target:"_blank",rel:"noopener noreferrer",href:x,children:[d("workspace.pr")," ↗"]}),f&&(0,b.jsxs)("form",{className:"space-y-3",onSubmit:a=>{a.preventDefault()},children:[(0,b.jsxs)("p",{className:"break-all text-xs",children:[d("workspace.commit"),": ",c.git.commit]}),(0,b.jsxs)("fieldset",{disabled:e.isPending,className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(bW.Field,{label:d("delivery.repository"),children:(0,b.jsx)("input",{className:bW.inputClass,required:!0,value:i,onChange:a=>{k(a.target.value),w(!1)},placeholder:"owner/repo"})}),(0,b.jsx)(bW.Field,{label:d("delivery.head"),children:(0,b.jsx)("input",{className:bW.inputClass,required:!0,value:l,onChange:a=>{m(a.target.value),w(!1)}})}),(0,b.jsx)(bW.Field,{label:d("delivery.base"),children:(0,b.jsx)("input",{className:bW.inputClass,required:!0,value:n,onChange:a=>{o(a.target.value),w(!1)}})}),(0,b.jsx)(bW.Field,{label:d("delivery.title"),children:(0,b.jsx)("input",{className:bW.inputClass,required:!0,value:p,onChange:a=>q(a.target.value)})})]}),(0,b.jsx)(bW.Field,{label:d("common.description"),children:(0,b.jsx)("textarea",{className:bW.inputClass,value:r,onChange:a=>s(a.target.value)})}),(0,b.jsx)(bW.Field,{label:d("delivery.token"),children:(0,b.jsx)("input",{className:bW.inputClass,type:"password",autoComplete:"off",required:!0,value:t,onChange:a=>u(a.target.value),disabled:!0})}),(0,b.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:d("delivery.secure")}),(0,b.jsxs)("label",{className:"flex items-start gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:v,onChange:a=>w(a.target.checked)}),d("delivery.confirmPr")]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(G.Button,{disabled:!0,children:d("delivery.draftPr")}),(0,b.jsx)(G.Button,{type:"button",variant:"ghost",onClick:()=>{h(!1),u(""),w(!1)},children:d("common.cancel")})]})]})]}),(0,b.jsx)(bW.ErrorNotice,{error:e.error})]})}function b1({project:a,detail:c,executor:d,onRecovered:e}){let{t:f}=(0,g.useLanguage)(),h=(0,bW.useWorkspaceAction)(a.id),[k,l]=(0,j.useState)(null),[m,n]=(0,j.useState)(()=>crypto.randomUUID()),[o,p]=(0,j.useState)(null),{run:q,git:r}=c,s="ready"===q.state,t=d&&(0,i.hasCapability)(a,"closeOwnRun")||(0,i.hasCapability)(a,"manage"),u=c.verifications.find(a=>"passed"===a.status&&!0===a.current&&a.commit===r.commit),v=c.reviews[0],w=!!(u&&v?.decision==="accepted"&&v.commit===r.commit&&v.verificationId===u.id);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(bW.Panel,{title:f("common.actions"),children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,i.hasCapability)(a,"manage")&&(0,b.jsx)(G.Button,{size:"sm",disabled:!!q.operation||!s||!w||r.dirty||!!r.conflicts?.length||!!r.error||h.isPending,onClick:()=>l("integrate"),children:f("workspace.integrate")}),d&&(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending||["provisioning","revoking"].includes(q.state)||!a.executionEnabled||a.managedExecution?.supported===!1,onClick:()=>l("recover"),children:f("workspace.recover")}),t&&(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending||"closed"===q.state,onClick:()=>l("close"),children:f("workspace.close")}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",disabled:h.isPending,onClick:()=>h.mutate(async()=>{let b=await i.collaborationApi.handoff(a.id,q.id);p(b.markdown);let c=new Blob([b.markdown],{type:"text/markdown;charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`handoff-${q.id}.md`,e.click(),setTimeout(()=>URL.revokeObjectURL(d),1e3)}),children:f("workspace.handoff")})]}),k&&(0,b.jsxs)("div",{role:"group","aria-label":f(`workspace.${k}`),className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-sm",children:f(`workspace.${k}Hint`)}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(G.Button,{size:"sm",disabled:h.isPending||"recover"===k&&a.managedExecution?.supported===!1,onClick:()=>{k&&h.mutate(async()=>{if("recover"===k){let b=await i.collaborationApi.recover(a.id,q.id,m);n(crypto.randomUUID()),e(b.run.id)}else"integrate"===k?await i.collaborationApi.integrate(a.id,q.id,r.commit):await i.collaborationApi.close(a.id,q.id);l(null)})},children:f("workspace.confirm")}),(0,b.jsx)(G.Button,{size:"sm",variant:"ghost",disabled:h.isPending,onClick:()=>l(null),children:f("workspace.cancel")})]})]}),o&&(0,b.jsx)("pre",{"aria-label":f("workspace.handoffText"),className:"max-h-96 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border/70 p-3 text-xs",children:o})]}),(0,b.jsx)(bW.ErrorNotice,{error:h.error})]})}function b2({project:a,runId:c,actorId:f,team:h,reviewerId:j,onRecovered:k}){let{t:l}=(0,g.useLanguage)(),m=(0,e.useQuery)({queryKey:["collaboration",a.id,"run",c,f],queryFn:()=>i.collaborationApi.run(a.id,c),refetchInterval:a=>a.state.data?.run.state==="provisioning"||a.state.data?.run.operation||a.state.data?.verifications.some(a=>"running"===a.status)?3e3:15e3});if(m.isLoading)return(0,b.jsx)("p",{role:"status",children:l("common.loading")});if(m.isError)return(0,b.jsx)(bW.ErrorNotice,{error:m.error,retry:()=>void m.refetch()});if(!m.data)return null;let n=m.data,{run:o,git:p}=n,q=f===o.actorId,r=(0,i.canDevelop)(a)&&q,s="ready"===o.state;return(0,b.jsxs)("div",{className:"min-w-0 space-y-4 border-t border-border pt-4",children:[(0,b.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,b.jsx)(bW.WorkspaceStatus,{value:o.state}),(0,b.jsx)("span",{className:"text-sm",children:o.actorLabel}),(0,b.jsx)("code",{className:"break-all text-xs text-muted-foreground",children:o.branch})]}),(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:()=>void m.refetch(),children:l("workspace.refresh")})]}),o.error&&(0,b.jsx)(bW.ErrorNotice,{error:o.error}),o.operation&&(0,b.jsxs)("p",{role:"status",className:"rounded-md border border-amber-500/40 p-3 text-sm",children:[l("interrupted"===o.operation.phase?"workspace.operationInterrupted":"workspace.operationActive")," ",l("workspace.operationRecoveryHint")]}),p.error&&(0,b.jsx)(bW.ErrorNotice,{error:l("workspace.unavailable")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:l("workspace.privateHint")}),o.sessionId&&r&&!o.operation&&(0,b.jsx)(G.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(d.default,{href:`/sessions/${o.sessionId}`,children:l("workspace.terminal")})}),(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("p",{children:[l("workspace.commit"),":"," ",(0,b.jsx)("code",{className:"break-all",children:p.commit||"—"})]}),!p.error&&(0,b.jsx)("p",{className:p.dirty?"text-amber-500":"text-muted-foreground",children:l(p.dirty?"workspace.dirty":"workspace.clean")})]}),(0,b.jsx)(bY,{projectId:a.id,actorId:f,detail:n,editable:r&&s},`${o.id}:${o.previewUrl}:${o.prUrl}`),(0,b.jsx)(b$,{detail:n}),(0,b.jsx)(bZ,{project:a,detail:n,actorId:f,reviewerId:j,team:h}),(0,b.jsx)(b_,{project:a,detail:n,executor:r,onReconciled:k}),(0,b.jsx)(b1,{project:a,detail:n,executor:r,onRecovered:k})]})}function b3({detail:a,taskId:c,actorId:d}){let{t:f}=(0,g.useLanguage)(),{project:h}=a,k=(0,bW.useWorkspaceAction)(h.id),[l,m]=(0,j.useState)(""),[n,o]=(0,j.useState)("claude"),[p,q]=(0,j.useState)(()=>crypto.randomUUID()),[r,s]=(0,j.useState)(null),t=(0,e.useQuery)({queryKey:["collaboration",h.id,"task",c,d],queryFn:()=>i.collaborationApi.task(h.id,c)});if(t.isLoading)return(0,b.jsx)("p",{role:"status",children:f("common.loading")});if(t.isError)return(0,b.jsx)(bW.ErrorNotice,{error:t.error,retry:()=>void t.refetch()});if(!t.data)return null;let{task:u,comments:v,runs:w}=t.data,x=(0,i.canDevelop)(h),y=r??w[0]?.id;return(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(h.executionEnabled||w.length>0)&&(0,b.jsxs)(bW.Panel,{title:f("workspace.runs"),children:[h.managedExecution?.supported===!1&&(0,b.jsx)("p",{role:"status",className:"rounded-md border border-amber-500/40 p-3 text-sm",children:f("workspace.runtimeUpgrade")}),x&&(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsx)(bW.Field,{label:f("common.aiTool"),children:(0,b.jsx)("select",{className:bW.inputClass,value:n,disabled:k.isPending,onChange:a=>{o(a.target.value),q(crypto.randomUUID())},children:P.runtimeAdapterIds.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})}),(0,b.jsx)(G.Button,{size:"sm",disabled:!h.executionEnabled||h.managedExecution?.supported===!1||!!(u.assigneeId&&u.assigneeId!==d)||k.isPending,onClick:()=>k.mutate(async()=>{s((await i.collaborationApi.prepare(h.id,u.id,n,p)).run.id),q(crypto.randomUUID())}),children:f("workspace.prepare")})]}),x&&u.assigneeId&&u.assigneeId!==d&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f("workspace.assignedElsewhere")}),w.length?(0,b.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":f("workspace.runs"),children:w.map(a=>(0,b.jsxs)("button",{"aria-pressed":y===a.id,onClick:()=>s(a.id),className:`flex items-center gap-2 rounded-md border p-2 text-xs ${y===a.id?"border-brand bg-brand/10":"border-border/70"}`,children:[(0,b.jsxs)("span",{children:[a.actorLabel," · ",a.id.slice(0,8)]}),(0,b.jsx)(bW.WorkspaceStatus,{value:a.state})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("workspace.noRuns")}),y&&(0,b.jsx)(b2,{project:h,runId:y,actorId:d,reviewerId:u.reviewerId,team:!!h.teamId||a.members.some(a=>"owner"!==a.role&&"active"===a.state),onRecovered:s},y)]}),(0,b.jsxs)(bW.Panel,{title:f("workspace.comments"),children:[v.length?(0,b.jsx)("ul",{className:"space-y-3",children:v.map(a=>(0,b.jsxs)("li",{className:"rounded-md border border-border/70 p-3",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.actorLabel}),(0,b.jsx)("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm",children:a.text})]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("workspace.noComments")}),(0,i.hasCapability)(h,"comment")&&(0,b.jsxs)("form",{className:"space-y-2",onSubmit:a=>{a.preventDefault(),k.mutate(async()=>{await i.collaborationApi.comment(h.id,u.id,l.trim()),m("")})},children:[(0,b.jsx)(bW.Field,{label:f("workspace.comment"),children:(0,b.jsx)("textarea",{required:!0,maxLength:5e3,className:bW.inputClass,value:l,onChange:a=>m(a.target.value)})}),(0,b.jsx)(G.Button,{size:"sm",disabled:!l.trim()||k.isPending,children:f("workspace.post")})]})]}),(0,b.jsx)(bW.ErrorNotice,{error:k.error,retry:()=>void t.refetch()})]})}function b4({evidenceDraft:a,evidenceError:c,isEvidenceSaving:d,isTaskPacketLinking:e,isTaskPacketLoading:f,isTaskPacketStarting:g,item:h,ledgerEvents:j,links:k,onAttachEvidence:l,onEvidenceDraftChange:m,onOpenChange:n,onStatusChange:o,onTaskPacketSessionChange:p,onTaskPacketSessionLink:q,onTaskPacketStart:r,open:s,projectId:t,stages:u,statusMutationPending:v,t:w,taskPacket:x,taskPacketError:y,taskPacketLinkError:z,taskPacketStartError:A,taskPacketSessionId:C,taskPacketSessions:D,workItems:E}){let{canEdit:F,legacySessions:I,collaboration:J,actorId:K}=a8(),L=h?(0,bb.workItemTraceMarkers)(h,j):[];return(0,b.jsx)(ab.Sheet,{open:s,onOpenChange:n,children:(0,b.jsxs)(ab.SheetContent,{className:"w-full overflow-y-auto sm:max-w-4xl",children:[(0,b.jsxs)(ab.SheetHeader,{children:[(0,b.jsx)(ab.SheetTitle,{children:h?.title??w("projects.projectManagerViewDetails")}),(0,b.jsx)(ab.SheetDescription,{children:w("projects.projectManagerWorkItemDetail")})]}),h&&(0,b.jsxs)("div",{className:"space-y-5 px-4 pb-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(h.status),children:(0,bb.statusLabel)(h.status,w)}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:[w("projects.projectManagerUpdated"),": ",(0,bb.formatTimestamp)(h.updatedAt)]})]}),(0,b.jsx)(bV,{disabled:v,item:h,onStatusChange:o,t:w})]}),(0,b.jsx)(b8,{label:w("projects.projectManagerWorkItemDescription"),children:h.description?(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:h.description}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(bj,{label:w("projects.projectManagerPriority"),value:h.priority}),(0,b.jsx)(bj,{label:w("projects.projectManagerEvidenceRefs"),value:h.evidenceRefCount})]}),J&&(0,b.jsxs)("div",{className:"grid gap-2 text-sm sm:grid-cols-2",children:[(0,b.jsxs)("p",{children:[w("workspace.assignee"),": ",J.members.find(a=>a.userId===h.assigneeId)?.email??w("workspace.unassigned")]}),(0,b.jsxs)("p",{children:[w("workspace.reviewAssignee"),": ",J.members.find(a=>a.userId===h.reviewerId)?.email??w("workspace.unassigned")]})]}),(0,b.jsx)(b8,{label:w("projects.projectManagerStageAssign"),children:(0,b.jsx)(bs,{item:h,projectId:t,stages:u,t:w})}),(0,b.jsx)(b5,{item:h,links:k,projectId:t,t:w,workItems:E}),(0,b.jsx)(b8,{label:w("projects.projectManagerAcceptanceCriteria"),children:h.acceptanceCriteria.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5",children:h.acceptanceCriteria.map(a=>(0,b.jsx)("li",{className:"break-words",children:a},a))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),h.manualCompletion&&(0,b.jsxs)("div",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,b.jsx)("p",{children:w("task.manualDone")}),(0,b.jsx)("p",{children:h.manualCompletion.reason}),(0,b.jsxs)("p",{children:[h.manualCompletion.actorId," · ",(0,bb.formatTimestamp)(h.manualCompletion.createdAt)]})]}),J&&(0,b.jsx)(bX,{actorId:K,projectId:t,taskId:h.id,revision:h.revision,canLink:(0,i.hasCapability)(J.project,"develop")},`artifact:${K}:${t}:${h.id}`),J&&(0,b.jsx)(b3,{detail:J,taskId:h.id,actorId:K},`execution:${K}:${t}:${h.id}`),I&&(0,b.jsx)(b6,{error:y,isLinking:e,isLoading:f,onSessionChange:p,onSessionLink:q,onStart:r,selectedSessionId:C,sessions:D,t:w,taskPacket:x,linkError:z,startError:A,isStarting:g}),(0,b.jsx)(b8,{label:w("projects.projectManagerEvidenceRefs"),children:h.evidenceRefs.length>0?(0,b.jsx)("ul",{className:"space-y-2",children:h.evidenceRefs.map((a,c)=>(0,b.jsx)("li",{className:"rounded-md border border-border/70 px-3 py-2 text-xs",children:(0,bb.formatEvidenceRef)(a)},`${a.ref??a.path??c}`))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"-"})}),L.length>0&&(0,b.jsx)(b8,{label:w("projects.projectManagerLedger"),children:(0,b.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:L.map(a=>(0,b.jsx)(bh,{label:w(a.labelKey),value:a.value},`${a.labelKey}-${a.value}`))})}),(0,b.jsxs)("fieldset",{disabled:!F,className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("legend",{className:"px-1 text-sm font-medium",children:w("projects.projectManagerAttachEvidence")}),(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:w("projects.projectManagerEvidenceReferenceHint")}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2 sm:col-span-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-type",children:w("projects.projectManagerEvidenceReferenceType")}),(0,b.jsx)("select",{id:"project-manager-evidence-type",className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:a.referenceType,disabled:d,onChange:b=>m((0,bb.applyEvidenceReferenceType)(a,(0,bb.readEvidenceReferenceType)(b.target.value),w)),children:bI.EVIDENCE_REFERENCE_TYPE_OPTIONS.map(a=>(0,b.jsx)("option",{value:a.value,children:w(a.labelKey)},a.value))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-kind",children:w("projects.projectManagerRefKind")}),(0,b.jsx)(W.Input,{id:"project-manager-evidence-kind",value:a.kind,"aria-invalid":!!c&&0===a.kind.trim().length,disabled:d,onChange:b=>m({...a,kind:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-label",children:w("projects.projectManagerRefLabel")}),(0,b.jsx)(W.Input,{id:"project-manager-evidence-label",value:a.label,disabled:d,onChange:b=>m({...a,label:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-ref",children:w("projects.projectManagerRefId")}),(0,b.jsx)(W.Input,{id:"project-manager-evidence-ref",value:a.ref,"aria-invalid":!!c&&0===a.ref.trim().length&&0===a.path.trim().length,disabled:d,onChange:b=>m({...a,ref:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-path",children:w("common.path")}),(0,b.jsx)(W.Input,{id:"project-manager-evidence-path",value:a.path,"aria-invalid":!!c&&0===a.ref.trim().length&&0===a.path.trim().length,disabled:d,onChange:b=>m({...a,path:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-evidence-session-id",children:w("projects.projectManagerEvidenceSessionId")}),(0,b.jsx)(W.Input,{id:"project-manager-evidence-session-id",value:a.sessionId,"aria-invalid":!!c&&("terminal_snapshot"===a.referenceType||"session"===a.referenceType)&&0===a.sessionId.trim().length,disabled:d,onChange:b=>m({...a,sessionId:b.target.value})})]})]}),"terminal_snapshot"===a.referenceType&&(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:w("projects.projectManagerTerminalSnapshotMarkerHint")}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(G.Button,{size:"sm",variant:"brand",onClick:l,disabled:d,children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),w("projects.projectManagerAttachEvidence")]})})]}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(b8,{label:w("projects.projectManagerCreated"),children:(0,bb.formatTimestamp)(h.createdAt)}),(0,b.jsx)(b8,{label:w("projects.projectManagerUpdated"),children:(0,bb.formatTimestamp)(h.updatedAt)})]})]})]})})}function b5({item:a,links:c,projectId:d,t:e,workItems:f}){let{canEdit:g,canManage:h,legacySessions:i}=a8(),k=(0,m.useQueryClient)(),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(null),r=c.filter(b=>b.blockedWorkItemId===a.id),s=c.filter(b=>b.blockerWorkItemId===a.id),t=f.filter(b=>b.id!==a.id&&!r.some(a=>a.blockerWorkItemId===b.id)),u=a=>f.find(b=>b.id===a)?.title??a,v=a=>(0,bb.projectManagerMutationMessage)(a,e("projects.projectManagerDependencyMutationError")),w=(0,l.useMutation)({mutationFn:b=>(0,P.addProjectManagerWorkItemDependency)(d,a.id,b,a.revision),onSuccess:async()=>{q(null),o(""),await k.invalidateQueries({queryKey:["project-manager",d]})},onError:a=>q(v(a))}),x=(0,l.useMutation)({mutationFn:b=>(0,P.removeProjectManagerWorkItemDependency)(d,a.id,b,a.revision),onSuccess:async()=>{q(null),await k.invalidateQueries({queryKey:["project-manager",d]})},onError:a=>q(v(a))}),y=w.isPending||x.isPending;return(0,b.jsxs)("fieldset",{disabled:!(h??g),className:"space-y-3 rounded-md border border-border/70 p-3",children:[(0,b.jsx)("legend",{className:"px-1 text-sm font-medium",children:e("projects.projectManagerDependencies")}),0===r.length&&0===s.length&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e("projects.projectManagerDependencyNone")}),r.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:e("projects.projectManagerDependencyBlockedBy")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:r.map(a=>(0,b.jsxs)(H.Badge,{variant:"destructive",className:"gap-1",children:[u(a.blockerWorkItemId),(0,b.jsx)("button",{type:"button","aria-label":e("common.delete"),className:"rounded-full hover:bg-destructive-foreground/20",disabled:y,onClick:()=>x.mutate(a.blockerWorkItemId),children:(0,b.jsx)(af.X,{className:"size-3"})})]},a.id))})]}),s.length>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:e("projects.projectManagerDependencyBlocking")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:s.map(a=>(0,b.jsx)(H.Badge,{variant:"secondary",children:u(a.blockedWorkItemId)},a.id))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,b.jsxs)("select",{"aria-label":e("projects.projectManagerDependencyAdd"),className:"h-9 min-w-0 flex-1 rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:n,disabled:y||0===t.length,onChange:a=>o(a.target.value),children:[(0,b.jsx)("option",{value:"",children:e("projects.projectManagerDependencyAddPlaceholder")}),t.map(a=>(0,b.jsx)("option",{value:a.id,children:a.title},a.id))]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",disabled:y||!n,onClick:()=>n&&w.mutate(n),children:[(0,b.jsx)(B.Plus,{className:"mr-2 size-4"}),e("projects.projectManagerDependencyAdd")]})]}),p&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:p})]})}function b6({error:a,isLinking:c,isLoading:d,isStarting:e,linkError:f,onSessionChange:g,onSessionLink:h,onStart:i,selectedSessionId:j,sessions:k,startError:l,t:m,taskPacket:n}){var o;let{canEdit:p}=a8(),q=k.some(a=>a.id===j),r=j.length>0&&q&&!c,s=!!(n&&!n.sessionLink&&!e);return(0,b.jsxs)("fieldset",{disabled:!p,className:"space-y-3 rounded-md border border-border/70 p-3","data-testid":"project-manager-task-packet",children:[(0,b.jsxs)("legend",{className:"flex items-center gap-2 px-1 text-sm font-medium",children:[(0,b.jsx)(bu.ClipboardList,{className:"size-4"}),m("projects.projectManagerTaskPacket")]}),d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:m("projects.projectManagerLoading")}):a?(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:(0,bb.projectManagerMutationMessage)(a,m("projects.projectManagerTaskPacketLoadError"))}):n?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,b.jsx)(bh,{label:m("projects.projectManagerTaskPacketRuntimeAdapter"),value:n.runtime.adapter}),(0,b.jsx)(bh,{label:m("projects.projectManagerTaskPacketRuntimeTemplate"),value:n.runtime.templateId}),(0,b.jsx)(bh,{label:m("projects.projectManagerTaskPacketStatus"),value:m("no_linked_session"===(o=n.blockedReason)?"projects.projectManagerTaskPacketBlockedNoSession":"linked_session_not_running"===o?"projects.projectManagerTaskPacketBlockedInactiveSession":"projects.projectManagerTaskPacketReady")}),(0,b.jsx)(bh,{label:m("projects.projectManagerTaskPacketLinkedSession"),value:n.sessionLink?.sessionId??"-"})]}),(0,b.jsx)(b8,{label:m("projects.projectManagerTaskPacketPrompt"),children:(0,b.jsx)("pre",{className:"max-h-64 overflow-auto whitespace-pre-wrap rounded-md border border-border/70 bg-muted/20 p-3 text-xs leading-5",children:n.prompt})}),(0,b.jsx)(b7,{emptyLabel:"-",label:m("projects.projectManagerAcceptanceCriteria"),values:n.acceptanceCriteria}),(0,b.jsx)(b7,{emptyLabel:"-",label:m("projects.projectManagerTaskPacketExpectedVerification"),values:n.expectedVerification}),(0,b.jsx)(b7,{emptyLabel:"-",label:m("projects.projectManagerTaskPacketEvidenceRequirements"),values:n.evidenceRequirements}),n.sessionLink&&(0,b.jsx)("a",{className:"inline-flex text-xs font-medium text-brand hover:underline",href:n.sessionLink.href,children:m("projects.projectManagerTaskPacketOpenSession")}),!n.sessionLink&&(0,b.jsx)(G.Button,{size:"sm",variant:"brand",className:"w-fit",onClick:i,disabled:!s,children:m(e?"projects.projectManagerTaskPacketStarting":"projects.projectManagerTaskPacketStart")}),l&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:l}),(0,b.jsxs)("div",{className:"grid gap-2 sm:grid-cols-[minmax(0,1fr)_auto]",children:[(0,b.jsxs)("select",{className:"h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-60",value:j,disabled:c||0===k.length,onChange:a=>g(a.target.value),children:[(0,b.jsx)("option",{value:"",children:m(k.length>0?"projects.projectManagerTaskPacketSelectSession":"projects.projectManagerTaskPacketNoSessions")}),k.map(a=>(0,b.jsx)("option",{value:a.id,children:[a.name?.trim()||a.id,a.aiTool?.trim()||"unknown",a.status].join(" / ")},a.id))]}),(0,b.jsx)(G.Button,{size:"sm",variant:"brand",onClick:h,disabled:!r,children:m("projects.projectManagerTaskPacketLinkSession")})]}),f&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:f})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:m("projects.projectManagerTaskPacketUnavailable")})]})}function b7({emptyLabel:a,label:c,values:d}){return(0,b.jsx)(b8,{label:c,children:d.length>0?(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-sm",children:d.map(a=>(0,b.jsx)("li",{className:"break-words",children:a},a))}):(0,b.jsx)("span",{className:"text-muted-foreground",children:a})})}function b8({children:a,label:c}){return(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("div",{className:"text-xs font-medium uppercase text-muted-foreground",children:c}),(0,b.jsx)("div",{className:"break-words",children:a})]})}a.i(45020);var b9=a.i(73008),ca=a.i(27291);function cb({error:a,isStarting:c,item:d,onConfirm:f,onOpenChange:g,t:h,taskPacket:i}){let k=(0,e.useQuery)({queryKey:["adapter-discovery"],queryFn:P.discoverAdapters,enabled:!!d,staleTime:3e4}),l=(0,j.useMemo)(()=>k.data?.adapters??[],[k.data?.adapters]),[m,n]=(0,j.useState)("");(0,j.useEffect)(()=>{if(!d)return;let a=i?.runtime.adapter??null;n((0,P.chooseDefaultRuntimeAdapter)(l,a)??"")},[l,d,i?.runtime.adapter]);let o=l.filter(a=>(0,P.isAdapterLaunchable)(a)),p=""!==m&&o.some(a=>a.id===m);return(0,b.jsx)(V.Dialog,{open:!!d,onOpenChange:g,children:(0,b.jsxs)(V.DialogContent,{children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:h("projects.projectManagerTaskPacketSelectCli")}),(0,b.jsx)(V.DialogDescription,{children:h("projects.projectManagerTaskPacketSelectCliDescription")})]}),d&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2 text-sm font-medium break-words",children:d.title}),k.isLoading?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("projects.loadingRuntimeCli")}):0===o.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:h("projects.projectManagerTaskPacketNoCliAvailable")}):(0,b.jsxs)("fieldset",{className:"space-y-2",disabled:c,children:[(0,b.jsx)("legend",{className:"sr-only",children:h("projects.selectRuntimeCli")}),o.map(a=>(0,b.jsx)(cc,{adapter:a,checked:m===a.id,disabled:c,label:(0,ca.runtimeAdapterLabel)(a,h),onSelect:()=>n(a.id)},a.id))]}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>g(!1),disabled:c,children:h("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:()=>m&&f(m),disabled:c||!p,children:c?h("projects.projectManagerTaskPacketStarting"):h("projects.projectManagerTaskPacketStart")})]})]})})}function cc({adapter:a,checked:c,disabled:d,label:e,onSelect:f}){return(0,b.jsxs)("label",{className:["flex cursor-pointer items-center gap-3 rounded-md border px-3 py-2 text-sm transition-colors",c?"border-brand/50 bg-brand/5":"border-border/70 bg-background hover:border-border","disabled:cursor-not-allowed disabled:opacity-60"].join(" "),"data-testid":`quick-start-cli-option-${a.id}`,children:[(0,b.jsx)("input",{type:"radio",name:"project-manager-quick-start-adapter",className:"size-4 shrink-0 accent-brand",checked:c,disabled:d,onChange:f}),(0,b.jsx)(b9.CliBrandIcon,{aiTool:a.id}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:a.version??""})]})}function cd({assigneeId:a,reviewerId:c,onChange:d,disabled:e}){let{collaboration:f}=a8(),{t:h}=(0,g.useLanguage)();if(!f)return null;let j=f.members.filter(a=>"active"===a.state);return(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(bW.Field,{label:h("workspace.assignee"),children:(0,b.jsxs)("select",{className:bW.inputClass,value:a??"",disabled:e,onChange:a=>d({assigneeId:a.target.value||null}),children:[(0,b.jsx)("option",{value:"",children:h("workspace.unassigned")}),j.filter(a=>(0,i.hasCapability)(a,"develop")).map(a=>(0,b.jsx)("option",{value:a.userId,children:a.email},a.userId))]})}),(0,b.jsx)(bW.Field,{label:h("workspace.reviewAssignee"),children:(0,b.jsxs)("select",{className:bW.inputClass,value:c??"",disabled:e,onChange:a=>d({reviewerId:a.target.value||null}),children:[(0,b.jsx)("option",{value:"",children:h("workspace.unassigned")}),j.filter(b=>(0,i.hasCapability)(b,"review")&&b.userId!==a).map(a=>(0,b.jsx)("option",{value:a.userId,children:a.email},a.userId))]})})]})}function ce({draft:a,error:c,isSaving:d,onDraftChange:e,onOpenChange:f,onSave:g,open:h,t:i}){return(0,b.jsx)(V.Dialog,{open:h,onOpenChange:f,children:(0,b.jsxs)(V.DialogContent,{className:"max-h-[min(900px,calc(100vh-2rem))] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:i("projects.projectManagerCreateWorkItem")}),(0,b.jsx)(V.DialogDescription,{children:i("projects.projectManagerCreateWorkItemBody")})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-[minmax(0,1fr)_120px]",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-work-item-title",children:i("projects.projectManagerWorkItemTitle")}),(0,b.jsx)(W.Input,{id:"project-manager-work-item-title",value:a.title,"aria-invalid":!!c&&0===a.title.trim().length,disabled:d,onChange:b=>e({...a,title:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-work-item-priority",children:i("projects.projectManagerPriority")}),(0,b.jsx)(W.Input,{id:"project-manager-work-item-priority",inputMode:"numeric",value:a.priority,disabled:d,onChange:b=>e({...a,priority:b.target.value})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-work-item-description",children:i("projects.projectManagerWorkItemDescription")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-work-item-description",value:a.description,disabled:d,onChange:b=>e({...a,description:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-work-item-acceptance",children:i("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-work-item-acceptance",value:a.acceptanceCriteriaText,disabled:d,placeholder:i("projects.projectManagerTextListHint"),onChange:b=>e({...a,acceptanceCriteriaText:b.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTextListHint")})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsx)(cd,{assigneeId:a.assigneeId,reviewerId:a.reviewerId,disabled:d,onChange:b=>e({...a,...b})}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>f(!1),disabled:d,children:i("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:g,disabled:d,children:i("projects.projectManagerCreateWorkItem")})]})]})})}function cf({draft:a,error:c,isSaving:d,item:e,onDraftChange:f,onOpenChange:g,onSave:h,t:i}){return(0,b.jsx)(V.Dialog,{open:!!e,onOpenChange:g,children:(0,b.jsxs)(V.DialogContent,{className:"max-h-[min(760px,calc(100vh-2rem))] overflow-y-auto sm:max-w-2xl",children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:i("projects.projectManagerEditWorkItem")}),(0,b.jsx)(V.DialogDescription,{children:i("projects.projectManagerEditWorkItemBody")})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-[minmax(0,1fr)_120px]",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-edit-work-item-title",children:i("projects.projectManagerWorkItemTitle")}),(0,b.jsx)(W.Input,{id:"project-manager-edit-work-item-title",value:a.title,"aria-invalid":!!c&&0===a.title.trim().length,disabled:d,onChange:b=>f({...a,title:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-edit-work-item-priority",children:i("projects.projectManagerPriority")}),(0,b.jsx)(W.Input,{id:"project-manager-edit-work-item-priority",inputMode:"numeric",value:a.priority,disabled:d,onChange:b=>f({...a,priority:b.target.value})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-edit-work-item-description",children:i("projects.projectManagerWorkItemDescription")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-edit-work-item-description",value:a.description,disabled:d,onChange:b=>f({...a,description:b.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-edit-work-item-acceptance",children:i("projects.projectManagerAcceptanceCriteria")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-edit-work-item-acceptance",value:a.acceptanceCriteriaText,disabled:d,placeholder:i("projects.projectManagerTextListHint"),onChange:b=>f({...a,acceptanceCriteriaText:b.target.value})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:i("projects.projectManagerTextListHint")})]}),c&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:c})]}),(0,b.jsx)(cd,{assigneeId:a.assigneeId,reviewerId:a.reviewerId,disabled:d,onChange:b=>f({...a,...b})}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>g(!1),disabled:d,children:i("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:h,disabled:d,children:i("projects.projectManagerSaveWorkItem")})]})]})})}function cg({error:a,isDeleting:c,item:d,onConfirm:e,onOpenChange:f,t:g}){return(0,b.jsx)(V.Dialog,{open:!!d,onOpenChange:f,children:(0,b.jsxs)(V.DialogContent,{children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:g("projects.projectManagerDeleteWorkItem")}),(0,b.jsx)(V.DialogDescription,{children:g("projects.projectManagerDeleteWorkItemBody")})]}),d&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/20 px-3 py-2",children:[(0,b.jsx)("div",{className:"break-words text-sm font-medium",children:d.title}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[(0,bb.statusLabel)(d.status,g)," · ",g("projects.projectManagerEvidenceRefs"),": ",d.evidenceRefCount]})]}),a&&(0,b.jsx)("p",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:a})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>f(!1),disabled:c,children:g("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"destructive",onClick:e,disabled:c,children:g("projects.projectManagerDeleteWorkItem")})]})]})})}function ch({error:a,isSaving:c,onConfirm:d,onOpenChange:e,open:f,reason:g,reasonRef:h,setReason:i,t:j,workItemTitle:k}){return(0,b.jsx)(V.Dialog,{open:f,onOpenChange:e,children:(0,b.jsxs)(V.DialogContent,{children:[(0,b.jsxs)(V.DialogHeader,{children:[(0,b.jsx)(V.DialogTitle,{children:j("projects.projectManagerDoneReasonTitle")}),(0,b.jsx)(V.DialogDescription,{children:j("projects.projectManagerDoneReasonBody")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(X.Label,{htmlFor:"project-manager-done-reason",children:j("projects.projectManagerDoneReasonLabel")}),(0,b.jsx)(Y.Textarea,{id:"project-manager-done-reason",ref:h,value:g,"aria-invalid":!!a,disabled:c,onChange:a=>i(a.target.value)}),k&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:k}),a&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:a})]}),(0,b.jsxs)(V.DialogFooter,{children:[(0,b.jsx)(G.Button,{variant:"outline",onClick:()=>e(!1),disabled:c,children:j("projects.projectManagerCancel")}),(0,b.jsx)(G.Button,{variant:"brand",onClick:d,disabled:c,children:j("projects.projectManagerConfirmStatusChange")})]})]})})}var ci=a.i(37060);function cj({error:a,events:c,filter:d,hasLoadedEvents:e,isFetching:f,onFilterChange:g,onLoadMore:h,onRefresh:i,refreshing:k,t:l,totalCount:m,workItems:n}){let[p,q]=(0,j.useState)(!1);return(0,b.jsxs)(I.Card,{"data-testid":"project-manager-ledger",children:[(0,b.jsxs)(I.CardHeader,{className:"flex flex-row items-center justify-between gap-3",children:[(0,b.jsxs)(I.CardTitle,{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,b.jsx)(v.History,{className:"size-4 text-brand"}),l("projects.projectManagerLedger"),(0,b.jsx)("span",{className:"rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-xs text-muted-foreground tabular-nums",children:m})]}),(0,b.jsx)(G.Button,{size:"xs",variant:"ghost","aria-label":l("projects.projectManagerLedgerToggle"),"aria-expanded":p,onClick:()=>q(a=>!a),children:(0,b.jsx)(ci.ChevronDown,{className:(0,ac.cn)("size-4 transition-transform",p&&"rotate-180")})})]}),(0,b.jsx)("div",{className:"forgebadger-collapse-grid","data-open":p,children:(0,b.jsx)("div",{children:(0,b.jsxs)(I.CardContent,{className:"space-y-3 pt-0",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2 border-t border-border/70 pt-3",children:bI.LEDGER_FILTER_OPTIONS.map(a=>(0,b.jsx)(G.Button,{size:"sm",variant:d===a.value?"brand":"outline",onClick:()=>g(a.value),children:l(a.labelKey)},a.value))}),a?(0,b.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-3",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-4"}),l("projects.projectManagerLedgerLoadFailed")]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:i,disabled:k,children:[(0,b.jsx)(aa.RefreshCw,{className:(0,ac.cn)("mr-2 size-4",k&&"animate-spin")}),l("projects.projectManagerLedgerRefresh")]})]})}):f&&!e?(0,b.jsx)("div",{className:"py-4 text-center text-sm text-muted-foreground",children:l("projects.projectManagerLoading")}):e?0===c.length?(0,b.jsx)(bi,{title:l("projects.projectManagerLedgerFilteredEmptyTitle"),body:l("projects.projectManagerLedgerFilteredEmptyBody"),icon:v.History}):(0,b.jsx)("div",{className:"space-y-3",children:c.map(a=>(0,b.jsx)(ck,{event:a,t:l,workItemTitle:(0,bb.ledgerWorkItemTitle)(a,n)},a.id))}):(0,b.jsx)(bi,{title:l("projects.projectManagerNoLedgerTitle"),body:l("projects.projectManagerNoLedgerBody"),icon:v.History}),!a&&(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(G.Button,{size:"sm",variant:"outline",onClick:h,disabled:f,children:l("projects.projectManagerLoadMoreLedger")})})]})})})]})}function ck({event:a,t:c,workItemTitle:d}){let e=(0,bb.ledgerEventNote)(a.eventType,c);return(0,b.jsxs)("div",{className:"rounded-md border border-border/70 bg-muted/10 px-3 py-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(H.Badge,{variant:(0,bb.ledgerEventBadgeVariant)(a.eventType),children:(0,bb.eventLabel)(a.eventType,c)}),a.status?(0,b.jsx)(H.Badge,{variant:(0,bb.statusBadgeVariant)(a.status),children:(0,bb.statusLabel)(a.status,c)}):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"-"})]}),(0,b.jsx)("p",{className:"break-words text-sm font-medium",children:d}),e&&(0,b.jsx)("p",{className:"text-xs leading-5 text-muted-foreground",children:e})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:(0,bb.formatTimestamp)(a.createdAt)})]}),(0,b.jsx)("div",{className:"mt-3 grid gap-2 sm:grid-cols-2",children:(0,b.jsx)(bh,{label:c("projects.projectManagerEvidenceRefs"),value:a.evidenceRefCount})}),a.trace&&(0,b.jsx)(cl,{trace:a.trace,t:c})]})}function cl({trace:a,t:c}){let d=(0,bb.ledgerTraceMarkers)(a);return 0===d.length?null:(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-border/70 bg-background/40 p-3",children:[(0,b.jsx)("div",{className:"text-xs font-medium uppercase text-muted-foreground",children:c("projects.projectManagerLedger")}),(0,b.jsx)("div",{className:"mt-2 grid gap-2 sm:grid-cols-2",children:d.map(a=>(0,b.jsx)(bh,{label:c(a.labelKey),value:a.value},`${a.labelKey}-${a.value}`))})]})}function cm(a){return(0,b.jsx)(a7.Provider,{value:a.authority,children:(0,b.jsx)(cn,{...a})})}function cn({projectId:a,enabled:c,selectedWorkItemId:d=null,embedded:f=!1}){let{t:h}=(0,g.useLanguage)(),{canEdit:i,canManage:k,legacySessions:n,actorId:o}=a8(),p=(0,m.useQueryClient)(),q=c&&a.length>0,[r,s]=(0,j.useState)(!1),[t,u]=(0,j.useState)(()=>(0,bb.createGoalDraft)(null)),[v,w]=(0,j.useState)(null),x=(0,bb.projectManagerViewStorageKey)(a),[y,z]=(0,j.useState)(()=>(0,bb.readProjectManagerViewPrefs)(x).statusFilter),[A,B]=(0,j.useState)(()=>(0,bb.readProjectManagerViewPrefs)(x).viewMode),[C,D]=(0,j.useState)([]),[E,F]=(0,j.useState)(""),[H,J]=(0,j.useState)(null),[K,L]=(0,j.useState)(null),[M,N]=(0,j.useState)(!1),[O,Q]=(0,j.useState)(()=>(0,bb.createWorkItemDraft)()),[R,S]=(0,j.useState)(null),[T,U]=(0,j.useState)(null),[V,W]=(0,j.useState)(()=>(0,bb.createEditWorkItemDraft)(null)),[X,Y]=(0,j.useState)(null),[Z,$]=(0,j.useState)(null),[_,ab]=(0,j.useState)(null),[ad,ae]=(0,j.useState)(()=>(0,bb.createEvidenceDraft)()),[af,ag]=(0,j.useState)(null),[ah,ai]=(0,j.useState)(""),[aj,ak]=(0,j.useState)(null),[al,am]=(0,j.useState)(null),[an,ao]=(0,j.useState)(null),[ap,aq]=(0,j.useState)(null),[ar,as]=(0,j.useState)(null),[at,au]=(0,j.useState)("all"),[av,aw]=(0,j.useState)(bI.LEDGER_PAGE_SIZE),[ax,ay]=(0,j.useState)(null),[az,aA]=(0,j.useState)(null),[aB,aC]=(0,j.useState)(!1),[aD,aE]=(0,j.useState)(""),[aF,aG]=(0,j.useState)(null),aH=(0,j.useRef)(null),aI=(0,j.useRef)(null),aJ=(0,e.useQuery)({queryKey:["project-manager",a,"goal",o],queryFn:()=>(0,P.getProjectManagerGoal)(a),enabled:q,retry:!1}),aK=aJ.data?.goal??null,aL=(0,e.useQuery)({queryKey:["project-manager",a,"work-items",{limit:bI.WORK_ITEM_LIMIT},o],queryFn:()=>(0,P.listProjectManagerWorkItems)(a,{limit:bI.WORK_ITEM_LIMIT}),enabled:q,retry:!1}),aM=(0,e.useQuery)({queryKey:["project-manager",a,"task-packets",{limit:bI.WORK_ITEM_LIMIT},o],queryFn:()=>(0,P.listProjectManagerTaskPackets)(a,{limit:bI.WORK_ITEM_LIMIT}),enabled:q&&n,retry:!1}),aN=(0,e.useQuery)({queryKey:["project-manager",a,"stages",o],queryFn:()=>(0,P.listProjectManagerStages)(a),enabled:q,retry:!1}),aO=(0,e.useQuery)({queryKey:["project-manager",a,"work-item-links",o],queryFn:()=>(0,P.listProjectManagerWorkItemLinks)(a),enabled:q,retry:!1}),aP=(0,e.useQuery)({queryKey:["project-manager",a,"ledger",{limit:av},o],queryFn:()=>(0,P.listProjectManagerLedger)(a,{limit:av}),enabled:q,retry:!1}),aQ=(0,e.useQuery)({queryKey:["project-manager",a,"work-item",K,"task-packet",o],queryFn:()=>(0,P.getProjectManagerTaskPacket)(a,K??""),enabled:q&&n&&!!K,retry:!1}),aR=(0,e.useQuery)({queryKey:["sessions",{projectId:a},o],queryFn:()=>(0,P.listSessions)({projectId:a}),enabled:q&&n&&!!K,retry:!1});(0,j.useEffect)(()=>{r||u((0,bb.createGoalDraft)(aK))},[aK,r]),(0,j.useEffect)(()=>{(0,bb.writeProjectManagerViewPrefs)(x,{statusFilter:y,viewMode:A})},[x,y,A]);let aS=async()=>{await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"goal"]}),p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]}),p.invalidateQueries({queryKey:["project-manager",a,"stages"]}),p.invalidateQueries({queryKey:["project-manager",a,"work-item-links"]})])},aT=b=>{p.setQueriesData({queryKey:["project-manager",a,"work-items"],predicate:a=>a.queryKey.at(-1)===o},a=>a?{workItems:b(a.workItems)}:a)},aU=(0,l.useMutation)({mutationFn:b=>(0,P.updateProjectManagerGoal)(a,b),onSuccess:async({goal:a})=>{w(null),u((0,bb.createGoalDraft)(a)),s(!1),await aS()},onError:a=>{w((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerGoalMutationError")))}}),aV=(0,l.useMutation)({mutationFn:b=>(0,P.createProjectManagerWorkItem)(a,b),onSuccess:async({workItem:b})=>{S(null),Q((0,bb.createWorkItemDraft)()),N(!1),aT(a=>[...a.filter(a=>a.id!==b.id),b]),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{S((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerCreateWorkItemError")))}}),aW=(0,l.useMutation)({mutationFn:({input:b,workItemId:c})=>(0,P.updateProjectManagerWorkItem)(a,c,b),onSuccess:async({workItem:b})=>{Y(null),U(null),W((0,bb.createEditWorkItemDraft)(null)),aT(a=>a.map(a=>a.id===b.id?b:a)),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{Y((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerUpdateWorkItemError")))}}),aX=(0,l.useMutation)({mutationFn:({workItemId:b})=>(0,P.deleteProjectManagerWorkItem)(a,b,{confirm:!0,expectedRevision:aL.data?.workItems.find(a=>a.id===b)?.revision}),onSuccess:async({workItem:b},c)=>{ab(null),$(null),L(a=>a===c.workItemId?null:a),D(a=>a.filter(a=>a!==c.workItemId)),aT(a=>a.filter(a=>a.id!==b.id)),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{ab((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerDeleteWorkItemError")))}}),aY=(0,l.useMutation)({mutationFn:b=>(0,P.batchUpdateProjectManagerWorkItemStatuses)(a,b),onSuccess:async({workItems:b})=>{J(null),F(""),D([]),aA(null),aE(""),aG(null);let c=new Map(b.map(a=>[a.id,a]));aT(a=>a.map(a=>c.get(a.id)??a)),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{let b=(0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerBatchStatusError"));J(b),az&&aG(b)}}),aZ=(0,l.useMutation)({mutationFn:({input:b,workItemId:c})=>(0,P.updateProjectManagerWorkItemStatus)(a,c,b),onSuccess:async()=>{ay(null),aA(null),aE(""),aG(null),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{ay((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerStatusMutationError")))}}),a$=(0,l.useMutation)({mutationFn:({reference:b,workItemId:c})=>(0,P.attachProjectManagerWorkItemEvidence)(a,c,{evidenceRefs:[b],expectedRevision:aL.data?.workItems.find(a=>a.id===c)?.revision}),onSuccess:async()=>{ag(null),ae((0,bb.createEvidenceDraft)()),await Promise.all([p.invalidateQueries({queryKey:["project-manager",a,"work-items"]}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["project-manager",a,"ledger"]}),p.invalidateQueries({queryKey:["collaboration",a]}),p.invalidateQueries({queryKey:["task-artifacts",a]})])},onError:a=>{ag((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerEvidenceAttachError")))}}),a_=(0,l.useMutation)({mutationFn:({sessionId:b,workItemId:c})=>(0,P.linkProjectManagerTaskPacketSession)(a,c,{sessionId:b}),onSuccess:({taskPacket:b})=>{ak(null),ai(b.sessionLink?.sessionId??""),p.setQueryData(["project-manager",a,"work-item",b.workItemId,"task-packet"],{taskPacket:b}),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]})},onError:a=>{ak((0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerTaskPacketLinkError")))}}),a0=(0,l.useMutation)({mutationFn:({workItemId:b,aiTool:c})=>(0,P.startProjectManagerTaskPacket)(a,b,{aiTool:c}),onSuccess:({taskPacket:b,session:c})=>{am(null),ak(null),ao(null),as(null),ai(b.sessionLink?.sessionId??""),p.setQueryData(["project-manager",a,"work-item",b.workItemId,"task-packet"],{taskPacket:b}),p.setQueryData(["sessions",{projectId:a}],a=>a?{sessions:a.sessions.some(a=>a.id===c.id)?a.sessions.map(a=>a.id===c.id?c:a):[...a.sessions,c]}:a),p.invalidateQueries({queryKey:["project-manager",a,"task-packets"]}),p.invalidateQueries({queryKey:["sessions",{projectId:a}]})},onError:a=>{let b=(0,bb.projectManagerMutationMessage)(a,h("projects.projectManagerTaskPacketStartError"));am(b),aq(b),ao(null)}}),a1=aJ.error??aL.error,a2=a1 instanceof P.GatewayApiError&&404===a1.status,a3=aJ.isLoading||aL.isLoading,a4=aJ.isFetching||aL.isFetching||aM.isFetching||aP.isFetching,a5=aL.data?.workItems??[],a6=n?aM.data?.taskPackets??[]:[],a7=aN.data?.stages??[],a9=aO.data?.links??[],ba=(0,bb.filterWorkItemsForTable)(a5,y),bd=aP.data?.events??[],be=(0,bb.filterLedgerEvents)(bd,at),bf=a5.find(a=>a.id===K)??null,bg=aQ.data?.taskPacket??null,bh=(aR.data?.sessions??[]).filter(a=>{var b;return a.projectId&&("running"===(b=a.status)||"detached"===b)}),bi=a5.find(a=>a.id===T)??null,bj=a5.find(a=>a.id===Z)??null,bk=C.map(a=>a5.find(b=>b.id===a)).filter(a=>!!a),bl=(0,bb.batchStatusTargets)(bk),bm=bl.includes(E)?E:"",bo=az?.[0]??null;if((0,j.useEffect)(()=>{let a=d?.trim()??"";if(!a){aI.current=null;return}aI.current===a||a5.some(b=>b.id===a)&&(L(a),aI.current=a)},[d,a5]),(0,j.useEffect)(()=>{ag(null),ae((0,bb.createEvidenceDraft)()),ak(null),am(null),aq(null),ai("")},[K]),(0,j.useEffect)(()=>{ai(bg?.sessionLink?.sessionId??"")},[bg?.sessionLink?.sessionId]),(0,j.useEffect)(()=>{az&&aH.current?.focus()},[az]),!c)return null;let bp=()=>{q&&(aJ.refetch(),aL.refetch(),n&&aM.refetch(),aP.refetch(),aN.refetch(),aO.refetch())},bq=(a,b)=>{if(i){if(ay(null),"done"===b){aA([{...a}]),aC(!1),aE(""),aG(null);return}aZ.mutate({workItemId:a.id,input:{status:b,expectedRevision:a.revision}})}};return(0,b.jsxs)("div",{className:"space-y-5","data-testid":"project-manager-panel",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h2",{className:f?"sr-only":"text-sm font-semibold",children:h("projects.devTasks")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h("projects.devTasksDescription")})]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:bp,disabled:a4||!q,children:[(0,b.jsx)(aa.RefreshCw,{className:(0,ac.cn)("mr-2 size-4",a4&&"animate-spin")}),h("projects.devTasksRefresh")]})]}),a1?(0,b.jsx)(co,{message:a2?h("projects.projectManagerNotFound"):h("projects.projectManagerLoadFailed"),onRefresh:bp,refreshing:a4}):a3?(0,b.jsx)(I.Card,{children:(0,b.jsx)(I.CardContent,{className:"py-8 text-center text-sm text-muted-foreground",children:h("projects.projectManagerLoading")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bc,{goal:aK,t:h,draft:t,error:v,isEditing:r,isSaving:aU.isPending,onCancel:()=>{w(null),u((0,bb.createGoalDraft)(aK)),s(!1)},onDraftChange:u,onEdit:()=>{w(null),u((0,bb.createGoalDraft)(aK)),s(!0)},onSave:()=>{if(!(k??i))return;let a=t.summary.trim();a?(w(null),aU.mutate({summary:a,constraints:(0,bb.parseProjectManagerTextList)(t.constraintsText),acceptanceCriteria:(0,bb.parseProjectManagerTextList)(t.acceptanceCriteriaText),status:t.status.trim()||"active"})):w(h("projects.projectManagerGoalSummaryRequired"))}}),(0,b.jsx)(bn,{isFetching:aN.isFetching||aL.isFetching,links:a9,onViewDetails:a=>L(a.id),projectId:a,stages:a7,t:h,taskPackets:a6,workItems:a5}),(0,b.jsx)(bM,{batchStatusError:H,batchStatusPending:aY.isPending,batchTargetOptions:bl,batchTargetStatus:bm,isFetching:aL.isFetching,onBatchStatusSubmit:()=>{if(i){if(0===bk.length)return void J(h("projects.projectManagerBatchStatusSelectionRequired"));if(!bm)return void J(h("projects.projectManagerBatchStatusTargetRequired"));if(J(null),"done"===bm){aA(bk.map(a=>({...a}))),aC(!0),aE(""),aG(null);return}aY.mutate({updates:bk.map(a=>({workItemId:a.id,expectedRevision:a.revision,status:bm}))})}},onBatchTargetStatusChange:F,onClearSelection:()=>{J(null),F(""),D([])},onCreate:()=>{S(null),Q((0,bb.createWorkItemDraft)()),N(!0)},onDelete:a=>{ab(null),$(a.id)},onEdit:a=>{Y(null),W((0,bb.createEditWorkItemDraft)(a)),U(a.id)},onQuickStart:a=>{aq(null),as(a)},onStatusFilterChange:z,onStatusChange:bq,onToggleSelection:(a,b)=>{J(null),D(c=>b?c.includes(a.id)?c:[...c,a.id]:c.filter(b=>b!==a.id))},onViewDetails:a=>L(a.id),quickStartError:ap,quickStartPendingWorkItemId:an,selectedWorkItemIds:C,statusError:ax,statusFilter:y,statusMutationPending:!i||aZ.isPending,viewMode:A,onViewModeChange:B,highlightedWorkItemId:d,t:h,tableWorkItems:ba,taskPackets:a6,taskPacketsError:aM.error,taskPacketsFetching:aM.isFetching,workItems:a5}),(0,b.jsx)(cj,{error:aP.error,events:be,filter:at,hasLoadedEvents:bd.length>0,isFetching:aP.isFetching,onFilterChange:au,onLoadMore:()=>{aw(a=>a+bI.LEDGER_PAGE_SIZE)},onRefresh:()=>{q&&aP.refetch()},refreshing:aP.isFetching,t:h,totalCount:bd.length,workItems:a5})]}),(0,b.jsx)(b4,{evidenceDraft:ad,evidenceError:af,isEvidenceSaving:a$.isPending,isTaskPacketLinking:a_.isPending,isTaskPacketLoading:aQ.isLoading||aR.isLoading,isTaskPacketStarting:a0.isPending,item:bf,ledgerEvents:bd,links:a9,onAttachEvidence:()=>{if(!i||!bf)return;if(0===ad.kind.trim().length)return void ag(h("projects.projectManagerEvidenceKindRequired"));if("file_path"===ad.referenceType&&0===ad.path.trim().length)return void ag(h("projects.projectManagerEvidencePathRequired"));if(("terminal_snapshot"===ad.referenceType||"session"===ad.referenceType)&&0===ad.sessionId.trim().length)return void ag(h("projects.projectManagerEvidenceSessionRequired"));let a=ad.sessionId.trim().length>0&&("terminal_snapshot"===ad.referenceType||"session"===ad.referenceType);if(0===ad.ref.trim().length&&0===ad.path.trim().length&&!a)return void ag(h("projects.projectManagerEvidenceReferenceRequired"));if((0,bb.validateEvidenceReferenceInput)(ad))return void ag(h("projects.projectManagerEvidenceUnsafeValue"));let b=(0,bb.createSingleEvidenceReference)(ad);b?(ag(null),a$.mutate({workItemId:bf.id,reference:b})):ag(h("projects.projectManagerEvidenceReferenceRequired"))},onEvidenceDraftChange:ae,onOpenChange:a=>{a||L(null)},onStatusChange:bq,onTaskPacketSessionChange:ai,onTaskPacketSessionLink:()=>{if(!n||!bf)return;let a=ah.trim();a?(ak(null),a_.mutate({workItemId:bf.id,sessionId:a})):ak(h("projects.projectManagerTaskPacketSessionRequired"))},onTaskPacketStart:()=>{!n||bf&&(am(null),a0.mutate({workItemId:bf.id}))},open:!!bf,projectId:a,stages:a7,statusMutationPending:!i||aZ.isPending,t:h,taskPacket:bg,taskPacketError:aQ.error,taskPacketLinkError:aj,taskPacketStartError:al,taskPacketSessionId:ah,taskPacketSessions:bh,workItems:a5}),(0,b.jsx)(cb,{error:ap,isStarting:a0.isPending,item:ar,onConfirm:a=>{ar&&!a0.isPending&&(aq(null),ao(ar.id),a0.mutate({workItemId:ar.id,aiTool:a}))},onOpenChange:a=>{a||(as(null),aq(null))},t:h,taskPacket:ar?a6.find(a=>a.workItemId===ar.id)??null:null}),(0,b.jsx)(ce,{draft:O,error:R,isSaving:!i||aV.isPending,onDraftChange:Q,onOpenChange:N,onSave:()=>{if(!i)return;let a=O.title.trim();a?(S(null),aV.mutate((0,bb.createWorkItemInput)(O,a))):S(h("projects.projectManagerWorkItemTitleRequired"))},open:M,t:h}),(0,b.jsx)(cf,{draft:V,error:X,isSaving:!i||aW.isPending,item:bi,onDraftChange:W,onOpenChange:a=>{a||(U(null),Y(null),W((0,bb.createEditWorkItemDraft)(null)))},onSave:()=>{if(!i||!bi)return;let a=V.title.trim();a?(Y(null),aW.mutate({workItemId:bi.id,input:(0,bb.createWorkItemUpdateInput)(V,a)})):Y(h("projects.projectManagerWorkItemTitleRequired"))},t:h}),(0,b.jsx)(cg,{error:_,isDeleting:!i||aX.isPending,item:bj,onConfirm:()=>{!i||bj&&(ab(null),aX.mutate({workItemId:bj.id}))},onOpenChange:a=>{a||($(null),ab(null))},t:h}),(0,b.jsx)(ch,{error:aF,isSaving:aZ.isPending||aY.isPending,onConfirm:()=>{if(!i||!bo||!az||aZ.isPending||aY.isPending)return;let a=aD.trim();a?(aG(null),aB)?aY.mutate({updates:az.map(b=>({workItemId:b.id,status:"done",expectedRevision:b.revision,manualCompletionReason:a}))}):aZ.mutate({workItemId:bo.id,input:{status:"done",manualCompletionReason:a,expectedRevision:bo.revision}}):aG(h("projects.projectManagerDoneReasonRequired"))},onOpenChange:a=>{a||(aA(null),aE(""),aG(null))},open:!!bo,reason:aD,reasonRef:aH,setReason:aE,t:h,workItemTitle:az?.map(a=>a.title).join(" · ")??""})]})}function co({message:a,onRefresh:c,refreshing:d}){let{t:e}=(0,g.useLanguage)();return(0,b.jsx)(I.Card,{className:"border-destructive/50 bg-destructive/10",children:(0,b.jsxs)(I.CardContent,{className:"flex flex-col gap-3 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,b.jsx)(o.AlertTriangle,{className:"size-4"}),a]}),(0,b.jsxs)(G.Button,{size:"sm",variant:"outline",onClick:c,disabled:d,children:[(0,b.jsx)(aa.RefreshCw,{className:(0,ac.cn)("mr-2 size-4",d&&"animate-spin")}),e("projects.devTasksRefresh")]})]})})}a.s(["default",0,function(){let{id:a}=(0,c.useParams)(),j=(0,c.useSearchParams)(),{user:k}=(0,f.useAuth)(),{t:l}=(0,g.useLanguage)(),m=(0,e.useQuery)({queryKey:["project-task-context",a,k?.id],queryFn:()=>(0,h.getProjectTaskContext)(a),enabled:!!k,retry:!1,refetchInterval:3e4}),n=(0,e.useQuery)({queryKey:["collaboration",a,"project",k?.id],queryFn:()=>i.collaborationApi.project(a),enabled:!!m.data,retry:!1,refetchInterval:3e4}),o=m.error??n.error;if(o)return(0,b.jsx)("main",{className:"p-6",children:(0,b.jsx)(bW.ErrorNotice,{error:o,retry:()=>{m.refetch(),n.refetch()}})});if(!m.data||!n.data||!k)return(0,b.jsx)("main",{role:"status",className:"p-6",children:l("common.loading")});let p={canEdit:m.data.access.capabilities.some(a=>"develop"===a||"manage"===a),canManage:m.data.access.capabilities.includes("manage"),legacySessions:m.data.privateDetailAllowed&&!m.data.revisionRequired,collaboration:n.data,actorId:k.id};return m.data.privateDetailAllowed?(0,b.jsx)(aZ,{taskAuthority:p},`${k?.id}:${a}`):(0,b.jsxs)("main",{className:"mx-auto max-w-[1500px] space-y-5 p-4 md:p-6",children:[(0,b.jsxs)(d.default,{href:"/projects",className:"text-sm text-muted-foreground hover:text-foreground",children:["← ",l("projects.back")]}),(0,b.jsx)("h1",{className:"text-xl font-semibold",children:m.data.project.name}),(0,b.jsx)(cm,{projectId:a,enabled:!0,selectedWorkItemId:j.get("workItemId")??j.get("task"),authority:p},`${k?.id}:${a}`)]})}],46759)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_web_src_app_%28dashboard%29_projects_%5Bid%5D_page_tsx_0pmq-e9._.js.map
|