@shepai/cli 1.183.0-pr554.2632d62 → 1.183.0-pr555.e53ab0e
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/apis/json-schema/Application.yaml +0 -22
- package/apis/json-schema/Feature.yaml +3 -0
- package/apis/json-schema/NotificationEventConfig.yaml +0 -4
- package/apis/json-schema/NotificationEventType.yaml +0 -1
- package/apis/json-schema/Plugin.yaml +86 -0
- package/apis/json-schema/PluginHealthStatus.yaml +9 -0
- package/apis/json-schema/PluginTransport.yaml +7 -0
- package/apis/json-schema/PluginType.yaml +8 -0
- package/apis/json-schema/RecordBoolean.yaml +6 -0
- package/apis/json-schema/ToolGroup.yaml +18 -0
- package/dist/eslint.config.mjs +0 -19
- package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +7 -0
- package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/agents/index.d.ts +0 -1
- package/dist/packages/core/src/application/ports/output/agents/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/plugin-repository.interface.d.ts +60 -0
- package/dist/packages/core/src/application/ports/output/repositories/plugin-repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/plugin-repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -5
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/mcp-server-manager.interface.d.ts +66 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-manager.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-manager.interface.js +12 -0
- package/dist/packages/core/src/application/ports/output/services/plugin-health-checker.interface.d.ts +49 -0
- package/dist/packages/core/src/application/ports/output/services/plugin-health-checker.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/plugin-health-checker.interface.js +12 -0
- package/dist/packages/core/src/application/services/agents/agent-session-repository.registry.d.ts +24 -0
- package/dist/packages/core/src/application/services/agents/agent-session-repository.registry.d.ts.map +1 -0
- package/dist/packages/core/src/{infrastructure → application}/services/agents/agent-session-repository.registry.js +5 -10
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts +1 -5
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +6 -10
- package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.js +4 -10
- package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.d.ts +2 -4
- package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.js +8 -15
- package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.d.ts +2 -4
- package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.js +8 -15
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts +1 -7
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +8 -15
- package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.js +5 -7
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +7 -12
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.js +1 -2
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +1 -2
- package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.js +2 -3
- package/dist/packages/core/src/application/use-cases/deployments/start-feature-deployment.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/deployments/start-feature-deployment.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/deployments/start-feature-deployment.use-case.js +4 -7
- package/dist/packages/core/src/application/use-cases/features/cleanup-feature-worktree.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/features/cleanup-feature-worktree.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/cleanup-feature-worktree.use-case.js +10 -17
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +2 -10
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +10 -20
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/get-feature-artifact.use-case.js +4 -6
- package/dist/packages/core/src/application/use-cases/features/get-plan-artifact.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/features/get-plan-artifact.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/get-plan-artifact.use-case.js +4 -6
- package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/get-research-artifact.use-case.js +4 -6
- package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts +2 -2
- package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +2 -2
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.js +4 -8
- package/dist/packages/core/src/application/use-cases/plugins/add-plugin.use-case.d.ts +35 -0
- package/dist/packages/core/src/application/use-cases/plugins/add-plugin.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/add-plugin.use-case.js +106 -0
- package/dist/packages/core/src/application/use-cases/plugins/check-plugin-health.use-case.d.ts +20 -0
- package/dist/packages/core/src/application/use-cases/plugins/check-plugin-health.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/check-plugin-health.use-case.js +72 -0
- package/dist/packages/core/src/application/use-cases/plugins/configure-plugin.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/plugins/configure-plugin.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/configure-plugin.use-case.js +59 -0
- package/dist/packages/core/src/application/use-cases/plugins/disable-plugin.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/plugins/disable-plugin.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/{cloud-deploy/ensure-gh-authenticated.use-case.js → plugins/disable-plugin.use-case.js} +31 -12
- package/dist/packages/core/src/application/use-cases/plugins/enable-plugin.use-case.d.ts +18 -0
- package/dist/packages/core/src/application/use-cases/plugins/enable-plugin.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/{cloud-deploy/select-cloud-provider.use-case.js → plugins/enable-plugin.use-case.js} +31 -17
- package/dist/packages/core/src/application/use-cases/plugins/get-plugin-catalog.use-case.d.ts +21 -0
- package/dist/packages/core/src/application/use-cases/plugins/get-plugin-catalog.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/get-plugin-catalog.use-case.js +45 -0
- package/dist/packages/core/src/application/use-cases/plugins/list-plugins.use-case.d.ts +22 -0
- package/dist/packages/core/src/application/use-cases/plugins/list-plugins.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/list-plugins.use-case.js +50 -0
- package/dist/packages/core/src/application/use-cases/plugins/remove-plugin.use-case.d.ts +21 -0
- package/dist/packages/core/src/application/use-cases/plugins/remove-plugin.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/plugins/remove-plugin.use-case.js +50 -0
- package/dist/packages/core/src/application/use-cases/repositories/add-repository.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/add-repository.use-case.js +11 -1
- package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.js +9 -1
- package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.d.ts +2 -6
- package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.js +7 -30
- package/dist/packages/core/src/application/use-cases/tools/launch-tool.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/tools/launch-tool.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/tools/launch-tool.use-case.js +4 -6
- package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +1 -3
- package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.js +4 -6
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +2 -4
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +4 -8
- package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts.map +1 -0
- package/dist/packages/core/src/domain/factories/index.d.ts +1 -0
- package/dist/packages/core/src/domain/factories/index.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/index.js +1 -0
- package/dist/packages/core/src/domain/factories/spec-yaml-parser.d.ts +29 -0
- package/dist/packages/core/src/domain/factories/spec-yaml-parser.d.ts.map +1 -0
- package/dist/packages/core/src/domain/factories/spec-yaml-parser.js +134 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +113 -41
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +18 -25
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +679 -32
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +6 -23
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +8 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/plugin.mapper.d.ts +61 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/plugin.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/plugin.mapper.js +91 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-create-plugins-table.d.ts +13 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-create-plugins-table.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-create-plugins-table.js +51 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-add-active-plugins-to-features.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-add-active-plugins-to-features.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-add-active-plugins-to-features.js +17 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +2 -40
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +3 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-plugin.repository.d.ts +24 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-plugin.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-plugin.repository.js +114 -0
- package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +1 -2
- package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +6 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +18 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +12 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/plugin-startup.d.ts +23 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/plugin-startup.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/plugin-startup.js +53 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +5 -0
- package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts +5 -3
- package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +0 -1
- package/dist/packages/core/src/infrastructure/services/plugin/mcp-server-manager.service.d.ts +51 -0
- package/dist/packages/core/src/infrastructure/services/plugin/mcp-server-manager.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/plugin/mcp-server-manager.service.js +206 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-catalog.d.ts +52 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-catalog.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-catalog.js +86 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-health-checker.service.d.ts +28 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-health-checker.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/plugin/plugin-health-checker.service.js +95 -0
- package/dist/src/presentation/cli/commands/app/index.d.ts +4 -10
- package/dist/src/presentation/cli/commands/app/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/app/index.js +5 -17
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +1 -2
- package/dist/src/presentation/cli/commands/plugin/add.command.d.ts +12 -0
- package/dist/src/presentation/cli/commands/plugin/add.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/add.command.js +75 -0
- package/dist/src/presentation/cli/commands/plugin/catalog.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/catalog.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/catalog.command.js +46 -0
- package/dist/src/presentation/cli/commands/plugin/configure.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/configure.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/configure.command.js +37 -0
- package/dist/src/presentation/cli/commands/plugin/disable.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/disable.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/disable.command.js +31 -0
- package/dist/src/presentation/cli/commands/plugin/enable.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/enable.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/enable.command.js +31 -0
- package/dist/src/presentation/cli/commands/plugin/index.d.ts +22 -0
- package/dist/src/presentation/cli/commands/plugin/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/index.js +41 -0
- package/dist/src/presentation/cli/commands/plugin/list.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/list.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/list.command.js +63 -0
- package/dist/src/presentation/cli/commands/plugin/remove.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/plugin/remove.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/remove.command.js +31 -0
- package/dist/src/presentation/cli/commands/plugin/status.command.d.ts +12 -0
- package/dist/src/presentation/cli/commands/plugin/status.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/plugin/status.command.js +126 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.js +9 -2
- package/dist/src/presentation/web/app/actions/add-plugin.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/add-plugin.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/add-plugin.js +15 -0
- package/dist/src/presentation/web/app/actions/check-plugin-health.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/check-plugin-health.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-plugin-health.js +15 -0
- package/dist/src/presentation/web/app/actions/configure-plugin.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/configure-plugin.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/configure-plugin.js +15 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts +9 -8
- package/dist/src/presentation/web/app/actions/deploy-application.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/deploy-application.js +38 -22
- package/dist/src/presentation/web/app/actions/get-plugin-catalog.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/get-plugin-catalog.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/get-plugin-catalog.js +13 -0
- package/dist/src/presentation/web/app/actions/list-plugins.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/list-plugins.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/list-plugins.js +13 -0
- package/dist/src/presentation/web/app/actions/remove-plugin.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/remove-plugin.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/remove-plugin.js +15 -0
- package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/toggle-plugin.js +23 -0
- package/dist/src/presentation/web/app/api/agent-events/route.d.ts +12 -17
- package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/agent-events/route.js +331 -58
- package/dist/src/presentation/web/app/api/applications/[id]/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/applications/[id]/route.js +1 -4
- package/dist/src/presentation/web/app/api/deployment-logs/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/deployment-logs/route.js +2 -4
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +1 -2
- package/dist/src/presentation/web/app/plugins/page.d.ts +4 -0
- package/dist/src/presentation/web/app/plugins/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/plugins/page.js +24 -0
- package/dist/src/presentation/web/app/plugins/plugins-page-client.d.ts +8 -0
- package/dist/src/presentation/web/app/plugins/plugins-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/app/plugins/plugins-page-client.js +61 -0
- package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/application-node/application-node.js +1 -2
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts +6 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +2 -2
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +9 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +15 -3
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -4
- package/dist/src/presentation/web/components/common/plugin-catalog/index.d.ts +2 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/index.js +1 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.d.ts +7 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.js +32 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-catalog/plugin-catalog.stories.js +87 -0
- package/dist/src/presentation/web/components/common/plugin-list/index.d.ts +2 -0
- package/dist/src/presentation/web/components/common/plugin-list/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-list/index.js +1 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.d.ts +9 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.js +77 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.stories.d.ts +17 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/plugin-list/plugin-list.stories.js +114 -0
- package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/application-page/application-page.js +306 -17
- package/dist/src/presentation/web/components/features/applications/application-card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/applications/application-card.js +1 -2
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/workflow-placeholder.js +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +1 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/src/presentation/web/hooks/deployment-status-provider.js +3 -4
- package/dist/translations/ar/cli.json +82 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/cli.json +82 -0
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/cli.json +82 -0
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/cli.json +82 -0
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/cli.json +82 -0
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/cli.json +82 -0
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/cli.json +82 -0
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/cli.json +82 -0
- package/dist/translations/ru/web.json +2 -1
- package/dist/translations/uk/cli.json +82 -0
- package/dist/translations/uk/web.json +2 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -8
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +6 -58
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/chat/page.js +3 -3
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
- package/web/.next/server/app/(dashboard)/create/page.js +3 -3
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +41 -41
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/page.js +3 -3
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/agent-events/route.js +2 -1
- package/web/.next/server/app/api/agent-events/route.js.nft.json +1 -1
- package/web/.next/server/app/api/applications/[id]/route.js +1 -1
- package/web/.next/server/app/api/applications/[id]/route.js.nft.json +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
- package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/feature-logs/route.js +1 -1
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js +2 -2
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +40 -70
- package/web/.next/server/app/application/[id]/page.js +3 -3
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/applications/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/applications/page.js +3 -3
- package/web/.next/server/app/applications/page.js.nft.json +1 -1
- package/web/.next/server/app/applications/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/features/page.js +2 -2
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/plugins/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/plugins/page/build-manifest.json +18 -0
- package/web/.next/server/app/plugins/page/next-font-manifest.json +6 -0
- package/web/.next/server/app/plugins/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/plugins/page/server-reference-manifest.json +170 -0
- package/web/.next/server/app/plugins/page.js +19 -0
- package/web/.next/server/app/plugins/page.js.nft.json +1 -0
- package/web/.next/server/app/plugins/page_client-reference-manifest.js +2 -0
- package/web/.next/server/app/settings/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/settings/page.js +3 -3
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/skills/page.js +3 -3
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/tools/page.js +3 -3
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/version/page.js +2 -2
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +1 -8
- package/web/.next/server/chunks/{[root-of-the-server]__582ebd78._.js → [root-of-the-server]__0702fed9._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__10e976f3._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__3f7e7be1._.js +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__3f7e7be1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__7a2ddaea._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__7a2ddaea._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__84fede21._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__84fede21._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__76a92098._.js → [root-of-the-server]__88c71186._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__7de24eaf._.js → [root-of-the-server]__8b6abaa3._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__aabea727._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__aabea727._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__6af3863d._.js → [root-of-the-server]__cfba7146._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__6af3863d._.js.map → [root-of-the-server]__cfba7146._.js.map} +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__1133b25d._.js → [root-of-the-server]__dbb420e4._.js} +2 -2
- package/web/.next/server/chunks/d9f3b_next_dist_esm_build_templates_app-route_4faf694b.js +12 -0
- package/web/.next/server/chunks/d9f3b_next_dist_esm_build_templates_app-route_4faf694b.js.map +1 -0
- package/web/.next/server/chunks/d9f3b_next_dist_esm_build_templates_app-route_fc401c5d.js +1 -1
- package/web/.next/server/chunks/d9f3b_next_dist_esm_build_templates_app-route_fc401c5d.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__269765de._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__269765de._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__ec85e47f._.js → [root-of-the-server]__288ffaa6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__ec85e47f._.js.map → [root-of-the-server]__288ffaa6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4101a4a8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4101a4a8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ea16f3a._.js → [root-of-the-server]__46dd2baf._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ea16f3a._.js.map → [root-of-the-server]__46dd2baf._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__538580df._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__538580df._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__58043de2._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__58043de2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5193e3ce._.js → [root-of-the-server]__5c5de261._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5193e3ce._.js.map → [root-of-the-server]__5c5de261._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__638955bc._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__87d5ff6e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__87d5ff6e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9b0e14ee._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9b0e14ee._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__93be3301._.js → [root-of-the-server]__ac9ab3c5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__93be3301._.js.map → [root-of-the-server]__ac9ab3c5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3d233f3._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3d233f3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c6dba2b8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c6dba2b8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__de3991d8._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__de3991d8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e4fac430._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e4fac430._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__eacd32e9._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__eacd32e9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__494cf0fb._.js → [root-of-the-server]__ef0b8905._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ef0b8905._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7198dce9._.js → [root-of-the-server]__f94e4165._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__7198dce9._.js.map → [root-of-the-server]__f94e4165._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__149d89d9._.js → [root-of-the-server]__ff5a5243._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__149d89d9._.js.map → [root-of-the-server]__ff5a5243._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0f41c049._.js +3 -0
- package/web/.next/server/chunks/ssr/_0f41c049._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_33a243dd._.js +1 -1
- package/web/.next/server/chunks/ssr/_33a243dd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_5bf2415e._.js → _34113cf8._.js} +2 -2
- package/web/.next/server/chunks/ssr/_34113cf8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_519d77a9._.js +3 -0
- package/web/.next/server/chunks/ssr/_519d77a9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_563be831._.js +3 -0
- package/web/.next/server/chunks/ssr/_563be831._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_57643324._.js +3 -0
- package/web/.next/server/chunks/ssr/_57643324._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6a252f90._.js +3 -0
- package/web/.next/server/chunks/ssr/_6a252f90._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6b254164._.js +1 -1
- package/web/.next/server/chunks/ssr/_6b254164._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6cc2c4f7._.js +3 -0
- package/web/.next/server/chunks/ssr/_6cc2c4f7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6cc4c05b._.js +3 -0
- package/web/.next/server/chunks/ssr/_6cc4c05b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6fd324a3._.js +3 -0
- package/web/.next/server/chunks/ssr/_6fd324a3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_82baa7c1._.js → _828a0b9c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_82baa7c1._.js.map → _828a0b9c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_8757ce67._.js +4 -0
- package/web/.next/server/chunks/ssr/_8757ce67._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_8e101e0b._.js +12 -12
- package/web/.next/server/chunks/ssr/_8e101e0b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_93002ccf._.js +3 -0
- package/web/.next/server/chunks/ssr/_93002ccf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_9f191a54._.js +3 -0
- package/web/.next/server/chunks/ssr/_9f191a54._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_d6ba4d64._.js +3 -0
- package/web/.next/server/chunks/ssr/_d6ba4d64._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e225a49c._.js +3 -0
- package/web/.next/server/chunks/ssr/_e225a49c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e28c6144._.js +3 -0
- package/web/.next/server/chunks/ssr/_e28c6144._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_e65abbd1._.js +3 -0
- package/web/.next/server/chunks/ssr/_e65abbd1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ebd74417._.js +9 -0
- package/web/.next/server/chunks/ssr/_ebd74417._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_750b8cfe._.js → _f39276bf._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_750b8cfe._.js.map → _f39276bf._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_72cc0c05._.js → node_modules__pnpm_632deb2b._.js} +2 -2
- package/web/.next/server/chunks/ssr/node_modules__pnpm_632deb2b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_bb8735f7._.js → src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js} +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/translations_1562ae1a._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_1562ae1a._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +165 -86
- package/web/.next/static/chunks/{113f38481fc14902.js → 08fd591b02975483.js} +12 -12
- package/web/.next/static/chunks/{74d3f880029b266f.js → 0b974caf7e3c6fea.js} +1 -1
- package/web/.next/static/chunks/116e8d2a69619e48.js +1 -0
- package/web/.next/static/chunks/1b72915af68bd327.js +1 -0
- package/web/.next/static/chunks/{e0f33f0d6cb8cf21.js → 1f2f77dd2f63f257.js} +1 -1
- package/web/.next/static/chunks/3031618bf02ecd26.js +1 -0
- package/web/.next/static/chunks/{d770f7a879b2f43a.js → 3caa2489e09df522.js} +1 -1
- package/web/.next/static/chunks/463c8dd86ed296c9.js +1 -0
- package/web/.next/static/chunks/{6bac882ad18c881c.js → 534c414bd5e096af.js} +2 -2
- package/web/.next/static/chunks/59e96a965c1cc25b.js +7 -0
- package/web/.next/static/chunks/5a2f5a3c29c6c3dd.js +1 -0
- package/web/.next/static/chunks/616760ae36cf397f.js +1 -0
- package/web/.next/static/chunks/{6512133101a3eb85.js → 6aa8cfb9a0673778.js} +3 -3
- package/web/.next/static/chunks/772f87225f881091.css +1 -0
- package/web/.next/static/chunks/854d1bb6e05cadeb.js +1 -0
- package/web/.next/static/chunks/86ce4c6dcb228907.js +1 -0
- package/web/.next/static/chunks/86e9d633379e74e8.js +5 -0
- package/web/.next/static/chunks/88aa4f96ec9e8349.js +1 -0
- package/web/.next/static/chunks/{7f25b508e717b00c.js → a3ea2afcbac5ac67.js} +1 -1
- package/web/.next/static/chunks/{270528435203323f.js → b58faaa9802033ff.js} +1 -1
- package/web/.next/static/chunks/b9102b4bbe2f64f9.js +1 -0
- package/web/.next/static/chunks/b944b65ad181b84d.js +1 -0
- package/web/.next/static/chunks/c77489661f071f47.js +1 -0
- package/web/.next/static/chunks/cadb8f07b3c1e864.js +1 -0
- package/web/.next/static/chunks/d3224741c62e8767.js +1 -0
- package/web/.next/static/chunks/d51b987a73d58809.js +1 -0
- package/web/.next/static/chunks/e99459f76df95a70.js +1 -0
- package/web/.next/static/chunks/{9c4c03206c46abd2.js → f318341087d1415a.js} +1 -1
- package/web/.next/static/chunks/f76f1155e5d0d296.js +1 -0
- package/web/.next/static/chunks/fc5dbf92b25edf22.js +1 -0
- package/apis/json-schema/CloudDeploymentProvider.yaml +0 -10
- package/apis/json-schema/CloudDeploymentStatus.yaml +0 -11
- package/apis/json-schema/InteractiveSessionEventType.yaml +0 -9
- package/dist/packages/core/src/application/ports/output/agents/agent-session-repository-registry.interface.d.ts +0 -23
- package/dist/packages/core/src/application/ports/output/agents/agent-session-repository-registry.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/agents/agent-session-repository-registry.interface.js +0 -12
- package/dist/packages/core/src/application/ports/output/repositories/cloud-provider-tokens.repository.interface.d.ts +0 -29
- package/dist/packages/core/src/application/ports/output/repositories/cloud-provider-tokens.repository.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/repositories/cloud-provider-tokens.repository.interface.js +0 -9
- package/dist/packages/core/src/application/ports/output/services/attachment-storage.interface.d.ts +0 -31
- package/dist/packages/core/src/application/ports/output/services/attachment-storage.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/attachment-storage.interface.js +0 -9
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-event-bus.interface.d.ts +0 -23
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-event-bus.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-event-bus.interface.js +0 -8
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider-registry.interface.d.ts +0 -30
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider-registry.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider-registry.interface.js +0 -9
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider.interface.d.ts +0 -54
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/cloud-deployment-provider.interface.js +0 -10
- package/dist/packages/core/src/application/ports/output/services/conflict-resolution.interface.d.ts +0 -36
- package/dist/packages/core/src/application/ports/output/services/conflict-resolution.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/conflict-resolution.interface.js +0 -8
- package/dist/packages/core/src/application/ports/output/services/git-commit.service.interface.d.ts +0 -47
- package/dist/packages/core/src/application/ports/output/services/git-commit.service.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/git-commit.service.interface.js +0 -19
- package/dist/packages/core/src/application/ports/output/services/git-remote.service.interface.d.ts +0 -41
- package/dist/packages/core/src/application/ports/output/services/git-remote.service.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/git-remote.service.interface.js +0 -18
- package/dist/packages/core/src/application/ports/output/services/logger.interface.d.ts +0 -14
- package/dist/packages/core/src/application/ports/output/services/logger.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/logger.interface.js +0 -8
- package/dist/packages/core/src/application/ports/output/services/node-helpers.interface.d.ts +0 -28
- package/dist/packages/core/src/application/ports/output/services/node-helpers.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/node-helpers.interface.js +0 -8
- package/dist/packages/core/src/application/ports/output/services/phase-timing-context.interface.d.ts +0 -25
- package/dist/packages/core/src/application/ports/output/services/phase-timing-context.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/phase-timing-context.interface.js +0 -9
- package/dist/packages/core/src/application/ports/output/services/process-liveness.interface.d.ts +0 -20
- package/dist/packages/core/src/application/ports/output/services/process-liveness.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/process-liveness.interface.js +0 -12
- package/dist/packages/core/src/application/ports/output/services/spec-artifact-parser.interface.d.ts +0 -37
- package/dist/packages/core/src/application/ports/output/services/spec-artifact-parser.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/spec-artifact-parser.interface.js +0 -14
- package/dist/packages/core/src/application/ports/output/services/tool-metadata-provider.interface.d.ts +0 -85
- package/dist/packages/core/src/application/ports/output/services/tool-metadata-provider.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/tool-metadata-provider.interface.js +0 -9
- package/dist/packages/core/src/application/ports/output/services/worktree-path-provider.interface.d.ts +0 -22
- package/dist/packages/core/src/application/ports/output/services/worktree-path-provider.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/worktree-path-provider.interface.js +0 -9
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-feature-deltas.d.ts +0 -19
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-feature-deltas.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-feature-deltas.js +0 -74
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-phase-completion-deltas.d.ts +0 -17
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-phase-completion-deltas.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-phase-completion-deltas.js +0 -31
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-pr-deltas.d.ts +0 -18
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-pr-deltas.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-pr-deltas.js +0 -43
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-session-deltas.d.ts +0 -20
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-session-deltas.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-session-deltas.js +0 -51
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-status-deltas.d.ts +0 -22
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-status-deltas.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/compute-status-deltas.js +0 -59
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/stream-agent-events.types.d.ts +0 -73
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/stream-agent-events.types.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events/stream-agent-events.types.js +0 -63
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events.use-case.d.ts +0 -79
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/agents/stream-agent-events.use-case.js +0 -291
- package/dist/packages/core/src/application/use-cases/applications/application-creation.workflow.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/applications/commit-and-push-application-changes.use-case.d.ts +0 -22
- package/dist/packages/core/src/application/use-cases/applications/commit-and-push-application-changes.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/applications/commit-and-push-application-changes.use-case.js +0 -63
- package/dist/packages/core/src/application/use-cases/applications/commit-application-changes.use-case.d.ts +0 -21
- package/dist/packages/core/src/application/use-cases/applications/commit-application-changes.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/applications/commit-application-changes.use-case.js +0 -61
- package/dist/packages/core/src/application/use-cases/cloud-deploy/connect-cloud-provider.use-case.d.ts +0 -14
- package/dist/packages/core/src/application/use-cases/cloud-deploy/connect-cloud-provider.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/connect-cloud-provider.use-case.js +0 -38
- package/dist/packages/core/src/application/use-cases/cloud-deploy/create-git-remote.use-case.d.ts +0 -12
- package/dist/packages/core/src/application/use-cases/cloud-deploy/create-git-remote.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/create-git-remote.use-case.js +0 -41
- package/dist/packages/core/src/application/use-cases/cloud-deploy/ensure-gh-authenticated.use-case.d.ts +0 -9
- package/dist/packages/core/src/application/use-cases/cloud-deploy/ensure-gh-authenticated.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/get-cloud-deployment-status.use-case.d.ts +0 -17
- package/dist/packages/core/src/application/use-cases/cloud-deploy/get-cloud-deployment-status.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/get-cloud-deployment-status.use-case.js +0 -44
- package/dist/packages/core/src/application/use-cases/cloud-deploy/initiate-cloud-deployment.use-case.d.ts +0 -27
- package/dist/packages/core/src/application/use-cases/cloud-deploy/initiate-cloud-deployment.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/initiate-cloud-deployment.use-case.js +0 -120
- package/dist/packages/core/src/application/use-cases/cloud-deploy/list-cloud-providers.use-case.d.ts +0 -16
- package/dist/packages/core/src/application/use-cases/cloud-deploy/list-cloud-providers.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/cloud-deploy/list-cloud-providers.use-case.js +0 -38
- package/dist/packages/core/src/application/use-cases/cloud-deploy/select-cloud-provider.use-case.d.ts +0 -12
- package/dist/packages/core/src/application/use-cases/cloud-deploy/select-cloud-provider.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/deployments/start-application-deployment.use-case.d.ts +0 -48
- package/dist/packages/core/src/application/use-cases/deployments/start-application-deployment.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/deployments/start-application-deployment.use-case.js +0 -99
- package/dist/packages/core/src/domain/errors/application-not-found.error.d.ts +0 -12
- package/dist/packages/core/src/domain/errors/application-not-found.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/application-not-found.error.js +0 -16
- package/dist/packages/core/src/domain/errors/application-not-ready.error.d.ts +0 -12
- package/dist/packages/core/src/domain/errors/application-not-ready.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/application-not-ready.error.js +0 -16
- package/dist/packages/core/src/domain/errors/application-repository-not-on-disk.error.d.ts +0 -15
- package/dist/packages/core/src/domain/errors/application-repository-not-on-disk.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/application-repository-not-on-disk.error.js +0 -20
- package/dist/packages/core/src/domain/errors/build-output-not-found.error.d.ts +0 -13
- package/dist/packages/core/src/domain/errors/build-output-not-found.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/build-output-not-found.error.js +0 -17
- package/dist/packages/core/src/domain/errors/cannot-deploy-self.error.d.ts +0 -14
- package/dist/packages/core/src/domain/errors/cannot-deploy-self.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/cannot-deploy-self.error.js +0 -18
- package/dist/packages/core/src/domain/errors/cloud-provider-not-connected.error.d.ts +0 -12
- package/dist/packages/core/src/domain/errors/cloud-provider-not-connected.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/cloud-provider-not-connected.error.js +0 -16
- package/dist/packages/core/src/domain/errors/no-provider-selected.error.d.ts +0 -13
- package/dist/packages/core/src/domain/errors/no-provider-selected.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/no-provider-selected.error.js +0 -17
- package/dist/packages/core/src/domain/errors/provider-not-implemented.error.d.ts +0 -12
- package/dist/packages/core/src/domain/errors/provider-not-implemented.error.d.ts.map +0 -1
- package/dist/packages/core/src/domain/errors/provider-not-implemented.error.js +0 -16
- package/dist/packages/core/src/domain/shared/feature-id.d.ts +0 -25
- package/dist/packages/core/src/domain/shared/feature-id.d.ts.map +0 -1
- package/dist/packages/core/src/domain/shared/feature-id.js +0 -33
- package/dist/packages/core/src/domain/shared/normalize-path.d.ts +0 -21
- package/dist/packages/core/src/domain/shared/normalize-path.d.ts.map +0 -1
- package/dist/packages/core/src/domain/shared/normalize-path.js +0 -29
- package/dist/packages/core/src/domain/shared/sdlc-lifecycle-mapping.d.ts +0 -25
- package/dist/packages/core/src/domain/shared/sdlc-lifecycle-mapping.d.ts.map +0 -1
- package/dist/packages/core/src/domain/shared/sdlc-lifecycle-mapping.js +0 -40
- package/dist/packages/core/src/infrastructure/di/modules/register-agents.d.ts +0 -8
- package/dist/packages/core/src/infrastructure/di/modules/register-agents.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-agents.js +0 -100
- package/dist/packages/core/src/infrastructure/di/modules/register-cloud-deploy.d.ts +0 -9
- package/dist/packages/core/src/infrastructure/di/modules/register-cloud-deploy.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-cloud-deploy.js +0 -82
- package/dist/packages/core/src/infrastructure/di/modules/register-deployment.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/di/modules/register-deployment.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-deployment.js +0 -38
- package/dist/packages/core/src/infrastructure/di/modules/register-interactive.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/di/modules/register-interactive.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-interactive.js +0 -41
- package/dist/packages/core/src/infrastructure/di/modules/register-repositories.d.ts +0 -8
- package/dist/packages/core/src/infrastructure/di/modules/register-repositories.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-repositories.js +0 -70
- package/dist/packages/core/src/infrastructure/di/modules/register-services.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/di/modules/register-services.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-services.js +0 -113
- package/dist/packages/core/src/infrastructure/di/modules/register-tools.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/di/modules/register-tools.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-tools.js +0 -16
- package/dist/packages/core/src/infrastructure/di/modules/register-use-cases.d.ts +0 -12
- package/dist/packages/core/src/infrastructure/di/modules/register-use-cases.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/di/modules/register-use-cases.js +0 -327
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-add-cloud-deploy-columns-to-applications.d.ts +0 -5
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-add-cloud-deploy-columns-to-applications.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/060-add-cloud-deploy-columns-to-applications.js +0 -36
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-create-cloud-provider-tokens-table.d.ts +0 -5
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-create-cloud-provider-tokens-table.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/061-create-cloud-provider-tokens-table.js +0 -20
- package/dist/packages/core/src/infrastructure/repositories/sqlite-cloud-provider-tokens.repository.d.ts +0 -20
- package/dist/packages/core/src/infrastructure/repositories/sqlite-cloud-provider-tokens.repository.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-cloud-provider-tokens.repository.js +0 -75
- package/dist/packages/core/src/infrastructure/services/agents/agent-session-repository.registry.d.ts +0 -30
- package/dist/packages/core/src/infrastructure/services/agents/agent-session-repository.registry.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.adapter.d.ts +0 -14
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.adapter.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.adapter.js +0 -28
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.adapter.d.ts +0 -14
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.adapter.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.adapter.js +0 -25
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/aws-amplify.provider.stub.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/aws-amplify.provider.stub.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/aws-amplify.provider.stub.js +0 -17
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/base-provider-stub.d.ts +0 -21
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/base-provider-stub.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/base-provider-stub.js +0 -22
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-errors.d.ts +0 -24
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-errors.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-errors.js +0 -25
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-provider.registry.d.ts +0 -19
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-provider.registry.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloud-deployment-provider.registry.js +0 -48
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloudflare-pages.provider.d.ts +0 -52
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloudflare-pages.provider.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/cloudflare-pages.provider.js +0 -208
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/gcp-cloud-run.provider.stub.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/gcp-cloud-run.provider.stub.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/gcp-cloud-run.provider.stub.js +0 -17
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/netlify.provider.stub.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/netlify.provider.stub.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/netlify.provider.stub.js +0 -17
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/vercel.provider.stub.d.ts +0 -7
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/vercel.provider.stub.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/cloud-deploy/vercel.provider.stub.js +0 -17
- package/dist/packages/core/src/infrastructure/services/crypto/local-secret-box.d.ts +0 -29
- package/dist/packages/core/src/infrastructure/services/crypto/local-secret-box.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/crypto/local-secret-box.js +0 -48
- package/dist/packages/core/src/infrastructure/services/crypto/secret-key-file.d.ts +0 -23
- package/dist/packages/core/src/infrastructure/services/crypto/secret-key-file.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/crypto/secret-key-file.js +0 -46
- package/dist/packages/core/src/infrastructure/services/events/in-memory-cloud-deployment-event-bus.d.ts +0 -14
- package/dist/packages/core/src/infrastructure/services/events/in-memory-cloud-deployment-event-bus.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/events/in-memory-cloud-deployment-event-bus.js +0 -37
- package/dist/packages/core/src/infrastructure/services/git/git-commit.service.d.ts +0 -20
- package/dist/packages/core/src/infrastructure/services/git/git-commit.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/git/git-commit.service.js +0 -99
- package/dist/packages/core/src/infrastructure/services/git/git-remote.service.d.ts +0 -23
- package/dist/packages/core/src/infrastructure/services/git/git-remote.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/git/git-remote.service.js +0 -131
- package/dist/packages/core/src/infrastructure/services/ide-launchers/worktree-path.provider.d.ts +0 -12
- package/dist/packages/core/src/infrastructure/services/ide-launchers/worktree-path.provider.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/worktree-path.provider.js +0 -24
- package/dist/packages/core/src/infrastructure/services/logging/console-logger.d.ts +0 -14
- package/dist/packages/core/src/infrastructure/services/logging/console-logger.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/logging/console-logger.js +0 -53
- package/dist/packages/core/src/infrastructure/services/process/process-liveness.adapter.d.ts +0 -11
- package/dist/packages/core/src/infrastructure/services/process/process-liveness.adapter.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/process/process-liveness.adapter.js +0 -23
- package/dist/packages/core/src/infrastructure/services/spec/spec-yaml-parser.service.d.ts +0 -24
- package/dist/packages/core/src/infrastructure/services/spec/spec-yaml-parser.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-yaml-parser.service.js +0 -124
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.provider.d.ts +0 -17
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.provider.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.provider.js +0 -31
- package/dist/src/presentation/cli/commands/app/cloud-providers/connect.command.d.ts +0 -10
- package/dist/src/presentation/cli/commands/app/cloud-providers/connect.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/cloud-providers/connect.command.js +0 -62
- package/dist/src/presentation/cli/commands/app/cloud-providers/github-login.command.d.ts +0 -10
- package/dist/src/presentation/cli/commands/app/cloud-providers/github-login.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/cloud-providers/github-login.command.js +0 -52
- package/dist/src/presentation/cli/commands/app/cloud-providers/index.d.ts +0 -10
- package/dist/src/presentation/cli/commands/app/cloud-providers/index.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/cloud-providers/index.js +0 -18
- package/dist/src/presentation/cli/commands/app/cloud-providers/ls.command.d.ts +0 -8
- package/dist/src/presentation/cli/commands/app/cloud-providers/ls.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/cloud-providers/ls.command.js +0 -40
- package/dist/src/presentation/cli/commands/app/deploy/index.d.ts +0 -8
- package/dist/src/presentation/cli/commands/app/deploy/index.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/deploy/index.js +0 -14
- package/dist/src/presentation/cli/commands/app/deploy/initiate.command.d.ts +0 -10
- package/dist/src/presentation/cli/commands/app/deploy/initiate.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/deploy/initiate.command.js +0 -86
- package/dist/src/presentation/cli/commands/app/deploy/status.command.d.ts +0 -8
- package/dist/src/presentation/cli/commands/app/deploy/status.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/deploy/status.command.js +0 -49
- package/dist/src/presentation/cli/commands/app/git/create-remote.command.d.ts +0 -10
- package/dist/src/presentation/cli/commands/app/git/create-remote.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/git/create-remote.command.js +0 -49
- package/dist/src/presentation/cli/commands/app/git/index.d.ts +0 -9
- package/dist/src/presentation/cli/commands/app/git/index.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/app/git/index.js +0 -13
- package/dist/src/presentation/web/app/actions/applications/commit-and-push-application-changes.d.ts +0 -11
- package/dist/src/presentation/web/app/actions/applications/commit-and-push-application-changes.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/applications/commit-and-push-application-changes.js +0 -22
- package/dist/src/presentation/web/app/actions/applications/commit-application-changes.d.ts +0 -10
- package/dist/src/presentation/web/app/actions/applications/commit-application-changes.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/applications/commit-application-changes.js +0 -22
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/initiate/route.d.ts +0 -19
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/initiate/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/initiate/route.js +0 -43
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/select-provider/route.d.ts +0 -16
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/select-provider/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/select-provider/route.js +0 -35
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/status/route.d.ts +0 -16
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/status/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/applications/[id]/cloud-deploy/status/route.js +0 -23
- package/dist/src/presentation/web/app/api/applications/[id]/git/create-remote/route.d.ts +0 -20
- package/dist/src/presentation/web/app/api/applications/[id]/git/create-remote/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/applications/[id]/git/create-remote/route.js +0 -31
- package/dist/src/presentation/web/app/api/cloud-providers/[provider]/connect/route.d.ts +0 -18
- package/dist/src/presentation/web/app/api/cloud-providers/[provider]/connect/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/cloud-providers/[provider]/connect/route.js +0 -38
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-login/route.d.ts +0 -11
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-login/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-login/route.js +0 -24
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-status/route.d.ts +0 -9
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-status/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/cloud-providers/github/auth-status/route.js +0 -18
- package/dist/src/presentation/web/app/api/cloud-providers/route.d.ts +0 -10
- package/dist/src/presentation/web/app/api/cloud-providers/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/cloud-providers/route.js +0 -19
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.d.ts +0 -27
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.js +0 -24
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.stories.d.ts +0 -9
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/app-top-bar.stories.js +0 -79
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/application-page-loader.stories.js +0 -63
- package/dist/src/presentation/web/components/features/application-page/cloud-provider-icons.d.ts +0 -22
- package/dist/src/presentation/web/components/features/application-page/cloud-provider-icons.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/cloud-provider-icons.js +0 -28
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.js +0 -61
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.stories.d.ts +0 -10
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/connect-provider-modal.stories.js +0 -40
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.d.ts +0 -5
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.js +0 -37
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/copy-prompt-button.stories.js +0 -13
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.d.ts +0 -9
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.js +0 -85
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.stories.d.ts +0 -9
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/create-github-repo-button.stories.js +0 -19
- package/dist/src/presentation/web/components/features/application-page/delete-button.d.ts +0 -6
- package/dist/src/presentation/web/components/features/application-page/delete-button.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/delete-button.js +0 -24
- package/dist/src/presentation/web/components/features/application-page/delete-button.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/delete-button.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/delete-button.stories.js +0 -16
- package/dist/src/presentation/web/components/features/application-page/deploy-button.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/deploy-button.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/deploy-button.js +0 -94
- package/dist/src/presentation/web/components/features/application-page/deploy-button.stories.d.ts +0 -11
- package/dist/src/presentation/web/components/features/application-page/deploy-button.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/deploy-button.stories.js +0 -53
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.d.ts +0 -13
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.js +0 -113
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/git-status-cluster.stories.js +0 -19
- package/dist/src/presentation/web/components/features/application-page/path-cluster.d.ts +0 -6
- package/dist/src/presentation/web/components/features/application-page/path-cluster.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/path-cluster.js +0 -32
- package/dist/src/presentation/web/components/features/application-page/path-cluster.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/path-cluster.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/path-cluster.stories.js +0 -19
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.d.ts +0 -26
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.js +0 -30
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.stories.d.ts +0 -10
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/provider-dropdown.stories.js +0 -80
- package/dist/src/presentation/web/components/features/application-page/resizable-split.d.ts +0 -7
- package/dist/src/presentation/web/components/features/application-page/resizable-split.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/resizable-split.js +0 -30
- package/dist/src/presentation/web/components/features/application-page/resizable-split.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/resizable-split.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/resizable-split.stories.js +0 -23
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.stories.d.ts +0 -12
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/run-dev-button.stories.js +0 -53
- package/dist/src/presentation/web/components/features/application-page/session-chip.d.ts +0 -9
- package/dist/src/presentation/web/components/features/application-page/session-chip.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/session-chip.js +0 -38
- package/dist/src/presentation/web/components/features/application-page/session-chip.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/session-chip.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/session-chip.stories.js +0 -16
- package/dist/src/presentation/web/components/features/application-page/status-pill.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/status-pill.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/status-pill.js +0 -16
- package/dist/src/presentation/web/components/features/application-page/status-pill.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/status-pill.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/status-pill.stories.js +0 -22
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.stories.d.ts +0 -15
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/terminal-tab.stories.js +0 -31
- package/dist/src/presentation/web/components/features/application-page/use-dev-server-coordinator.d.ts +0 -14
- package/dist/src/presentation/web/components/features/application-page/use-dev-server-coordinator.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/use-dev-server-coordinator.js +0 -82
- package/dist/src/presentation/web/components/features/application-page/view-body.d.ts +0 -17
- package/dist/src/presentation/web/components/features/application-page/view-body.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/view-body.js +0 -25
- package/dist/src/presentation/web/components/features/application-page/view-body.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/view-body.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/view-body.stories.js +0 -42
- package/dist/src/presentation/web/components/features/application-page/view-switcher.d.ts +0 -10
- package/dist/src/presentation/web/components/features/application-page/view-switcher.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/view-switcher.js +0 -18
- package/dist/src/presentation/web/components/features/application-page/view-switcher.stories.d.ts +0 -8
- package/dist/src/presentation/web/components/features/application-page/view-switcher.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/view-switcher.stories.js +0 -13
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.stories.d.ts +0 -10
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/application-page/web-preview-tab.stories.js +0 -49
- package/dist/src/presentation/web/hooks/use-cloud-deploy-action.d.ts +0 -20
- package/dist/src/presentation/web/hooks/use-cloud-deploy-action.d.ts.map +0 -1
- package/dist/src/presentation/web/hooks/use-cloud-deploy-action.js +0 -120
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route.js +0 -7
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route.js.nft.json +0 -1
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/initiate/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route.js +0 -7
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route.js.map +0 -5
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route.js.nft.json +0 -1
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/select-provider/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route.js +0 -7
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route.js.map +0 -5
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route.js.nft.json +0 -1
- package/web/.next/server/app/api/applications/[id]/cloud-deploy/status/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route.js +0 -7
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route.js.map +0 -5
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route.js.nft.json +0 -1
- package/web/.next/server/app/api/applications/[id]/git/create-remote/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route.js +0 -7
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route.js.map +0 -5
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route.js.nft.json +0 -1
- package/web/.next/server/app/api/cloud-providers/[provider]/connect/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route.js +0 -7
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route.js.map +0 -5
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route.js.nft.json +0 -1
- package/web/.next/server/app/api/cloud-providers/github/auth-login/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route.js +0 -7
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route.js.map +0 -5
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route.js.nft.json +0 -1
- package/web/.next/server/app/api/cloud-providers/github/auth-status/route_client-reference-manifest.js +0 -2
- package/web/.next/server/app/api/cloud-providers/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/cloud-providers/route/build-manifest.json +0 -11
- package/web/.next/server/app/api/cloud-providers/route/server-reference-manifest.json +0 -4
- package/web/.next/server/app/api/cloud-providers/route.js +0 -7
- package/web/.next/server/app/api/cloud-providers/route.js.map +0 -5
- package/web/.next/server/app/api/cloud-providers/route.js.nft.json +0 -1
- package/web/.next/server/app/api/cloud-providers/route_client-reference-manifest.js +0 -2
- package/web/.next/server/chunks/20c8b_app_api_applications_[id]_cloud-deploy_select-provider_route_actions_0b41b3f7.js +0 -3
- package/web/.next/server/chunks/20c8b_app_api_applications_[id]_cloud-deploy_select-provider_route_actions_0b41b3f7.js.map +0 -1
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_cloud-providers_route_actions_b29d775a.js +0 -3
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_cloud-providers_route_actions_b29d775a.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_cloud-deploy_initiate_route_actions_b4867bc6.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_cloud-deploy_initiate_route_actions_b4867bc6.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_cloud-deploy_status_route_actions_9a3b876b.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_cloud-deploy_status_route_actions_9a3b876b.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_git_create-remote_route_actions_41c42379.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_git_create-remote_route_actions_41c42379.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_[provider]_connect_route_actions_a0ca54c4.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_[provider]_connect_route_actions_a0ca54c4.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_github_auth-login_route_actions_7bef847d.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_github_auth-login_route_actions_7bef847d.js.map +0 -1
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_github_auth-status_route_actions_8cdaeffc.js +0 -3
- package/web/.next/server/chunks/8ba4b_server_app_api_cloud-providers_github_auth-status_route_actions_8cdaeffc.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__2c15d675._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__2c15d675._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__3b3b8980._.js +0 -9
- package/web/.next/server/chunks/[root-of-the-server]__3b3b8980._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__631f5bbe._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__631f5bbe._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__770c0c09._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__770c0c09._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__83e9501d._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__83e9501d._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__9017bfe4._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__9017bfe4._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__90eb0e51._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__90eb0e51._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__9bf8eb9d._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__9bf8eb9d._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__b78eeb4f._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__b78eeb4f._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__cac531cb._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__cac531cb._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__e7e98696._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__e7e98696._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__01559f4c._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__01559f4c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0f0865b6._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0f0865b6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__494cf0fb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__78e103c3._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__78e103c3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_15173081._.js +0 -3
- package/web/.next/server/chunks/ssr/_15173081._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1da7af78._.js +0 -3
- package/web/.next/server/chunks/ssr/_1da7af78._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_22d60ea8._.js +0 -3
- package/web/.next/server/chunks/ssr/_22d60ea8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_28d8fc85._.js +0 -3
- package/web/.next/server/chunks/ssr/_28d8fc85._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_35b56ded._.js +0 -3
- package/web/.next/server/chunks/ssr/_35b56ded._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_4b57bcc3._.js +0 -9
- package/web/.next/server/chunks/ssr/_4b57bcc3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5b868d9b._.js +0 -3
- package/web/.next/server/chunks/ssr/_5b868d9b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5bf2415e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_6401fcb4._.js +0 -3
- package/web/.next/server/chunks/ssr/_6401fcb4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_66d02826._.js +0 -3
- package/web/.next/server/chunks/ssr/_66d02826._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_68befcc0._.js +0 -3
- package/web/.next/server/chunks/ssr/_68befcc0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_72cc0c05._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_82c47cc2._.js +0 -3
- package/web/.next/server/chunks/ssr/_82c47cc2._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_bb8735f7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e9a4c41e._.js +0 -3
- package/web/.next/server/chunks/ssr/_e9a4c41e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_ef697bcb._.js +0 -3
- package/web/.next/server/chunks/ssr/_ef697bcb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_03825509._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_03825509._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_b4a5d907._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_b4a5d907._.js.map +0 -1
- package/web/.next/static/chunks/0412f29f896ee09c.js +0 -1
- package/web/.next/static/chunks/0b7fc927918d27b7.js +0 -1
- package/web/.next/static/chunks/0de93c756f719ec3.js +0 -1
- package/web/.next/static/chunks/19327577e3a31a12.js +0 -1
- package/web/.next/static/chunks/21122562afc22707.js +0 -1
- package/web/.next/static/chunks/4f09cbb36f0ee7bc.js +0 -1
- package/web/.next/static/chunks/4fdc8e750df8ca80.js +0 -1
- package/web/.next/static/chunks/544aff2bfab6627d.js +0 -1
- package/web/.next/static/chunks/5a686ebc9fc2add1.js +0 -1
- package/web/.next/static/chunks/63b0b9bd3d9e77c1.js +0 -1
- package/web/.next/static/chunks/693bac34da5f5767.js +0 -1
- package/web/.next/static/chunks/6a7d6f15d3366b65.js +0 -1
- package/web/.next/static/chunks/6d56af6ae0a033a6.js +0 -5
- package/web/.next/static/chunks/8a44ba83aaeb4b83.js +0 -1
- package/web/.next/static/chunks/9b34d8c773ee0165.js +0 -1
- package/web/.next/static/chunks/abe2a450d1e2f77d.js +0 -1
- package/web/.next/static/chunks/b7c8bf8006038a6c.js +0 -1
- package/web/.next/static/chunks/c6011887cf4bc18e.js +0 -1
- package/web/.next/static/chunks/c7659438d8afcb6b.js +0 -1
- package/web/.next/static/chunks/d9ca1010cff1e77d.css +0 -1
- package/web/.next/static/chunks/f7677be24e542028.js +0 -7
- package/web/.next/static/chunks/fb0dc8b38808eaae.js +0 -1
- /package/dist/packages/core/src/application/{use-cases/applications → workflows}/application-creation.workflow.d.ts +0 -0
- /package/dist/packages/core/src/application/{use-cases/applications → workflows}/application-creation.workflow.js +0 -0
- /package/web/.next/server/app/{api/applications/[id]/cloud-deploy/initiate/route.js.map → plugins/page.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__582ebd78._.js.map → [root-of-the-server]__0702fed9._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__76a92098._.js.map → [root-of-the-server]__88c71186._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__7de24eaf._.js.map → [root-of-the-server]__8b6abaa3._.js.map} +0 -0
- /package/web/.next/server/chunks/{[root-of-the-server]__1133b25d._.js.map → [root-of-the-server]__dbb420e4._.js.map} +0 -0
- /package/web/.next/static/{FRWpPK0Bg6IM4rVnqge0Z → H1ozIesERGbwQQ6nOO8UC}/_buildManifest.js +0 -0
- /package/web/.next/static/{FRWpPK0Bg6IM4rVnqge0Z → H1ozIesERGbwQQ6nOO8UC}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{FRWpPK0Bg6IM4rVnqge0Z → H1ozIesERGbwQQ6nOO8UC}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breac_243e5081bca3fbc73564cdfd99ffccf4/node_modules/%40radix-ui/react-dialog/src/dialog.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-tooltip%401.2.8_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breac_6c936392a1aa34d496e116dc55299197/node_modules/%40radix-ui/react-tooltip/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/tooltip.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../../../../src/presentation/web/components/ui/dialog.tsx","../../../../../../../src/presentation/web/lib/logger.ts"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\n/** Default tooltip hover delay (ms) for canvas nodes and UI controls. */\nexport const TOOLTIP_DELAY_MS = 400;\n\nfunction TooltipProvider({\n delayDuration = TOOLTIP_DELAY_MS,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","'use client';\n\nimport * as React from 'react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, onClick, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150',\n className\n )}\n onClick={(e) => {\n // Prevent overlay clicks from propagating to document-level handlers\n // (e.g. BaseDrawer outside-click) — only the dialog should dismiss.\n e.stopPropagation();\n onClick?.(e);\n }}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 text-center sm:text-start', className)}\n {...props}\n />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","/* eslint-disable no-console */\nconst isDebug = !!process.env.NEXT_PUBLIC_DEBUG;\nconst noop = () => undefined;\n\nexport function createLogger(prefix: string) {\n return {\n info: isDebug ? (...args: unknown[]) => console.info(prefix, ...args) : noop,\n debug: isDebug ? (...args: unknown[]) => console.debug(prefix, ...args) : noop,\n warn: (...args: unknown[]) => console.warn(prefix, ...args),\n error: (...args: unknown[]) => console.error(prefix, ...args),\n };\n}\n"],"names":[],"mappings":"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","ignoreList":[1,3]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[771238,a=>{"use strict";let b=(0,a.i(225700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],771238)},966691,624434,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(746847),e=a.i(289111);let f=(0,e.createServerReference)("40026de899f93ce7cd1fdf1a0ee013dad77cdc4f03",e.callServer,void 0,e.findSourceMapURL,"deployFeature"),g=(0,e.createServerReference)("40108be7384990f668028a97284b5ae9db570b1965",e.callServer,void 0,e.findSourceMapURL,"deployRepository"),h=(0,e.createServerReference)("406e6f424ebf1e3b734864e08e09226a559105f605",e.callServer,void 0,e.findSourceMapURL,"deployApplication"),i=(0,e.createServerReference)("40425dc4804963cdc2f5af0bdc1e7594e877baaf11",e.callServer,void 0,e.findSourceMapURL,"stopDeployment"),j=(0,e.createServerReference)("40eb5c7ddaa143cbe9dc2c73f7bb19a5d89b533a7d",e.callServer,void 0,e.findSourceMapURL,"getDeploymentStatus");var k=a.i(987139);let l={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class m{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(a){let b=new Set;for(let c of a)b.add(c.targetId),this.update(c.targetId,{status:c.state,url:c.url,targetType:c.targetType,hydrated:!0});for(let[a,c]of this.entries)!b.has(a)&&c.hydrated&&null!==c.status?this.update(a,{status:null,url:null}):b.has(a)||c.hydrated||this.update(a,{hydrated:!0})}getEntry(a){return this.entries.get(a)??l}update(a,b){let c={...this.entries.get(a)??l,...b};this.entries.set(a,c),this.notify(a)}setStatus(a,b){null===b?this.update(a,{status:null,url:null,hydrated:!0}):this.update(a,{status:b.state,url:b.url,hydrated:!0})}subscribe(a,b){let c=this.listeners.get(a);return c||(c=new Set,this.listeners.set(a,c)),c.add(b),()=>{c?.delete(b),c?.size===0&&this.listeners.delete(a)}}subscribeAll(a){return this.globalListeners.add(a),()=>{this.globalListeners.delete(a)}}notify(a){let b=this.listeners.get(a);if(b)for(let a of b)a();for(let a of this.globalListeners)a()}}a.s(["DeploymentStatusStore",()=>m,"EMPTY_ENTRY",0,l],624434);let n=(0,k.createLogger)("[DeploymentStatusProvider]"),o=new Set([d.DeploymentState.Booting,d.DeploymentState.Ready]),p=(0,c.createContext)(null);function q({initialDeployments:a,children:e}){let k=(0,c.useRef)(null);k.current||(k.current=new m,k.current.hydrate(a));let l=k.current;(0,c.useEffect)(()=>{l.hydrate(a)},[a,l]);let q=(0,c.useRef)(new Map),r=(0,c.useCallback)(a=>{let b=q.current.get(a);b&&(clearInterval(b),q.current.delete(a))},[]),s=(0,c.useCallback)(a=>{if(q.current.has(a))return;let b=setInterval(async()=>{let b;try{b=await j(a)}catch(b){n.warn(`poll failed for "${a}"`,b),l.setStatus(a,null),r(a);return}if(!b||b.state===d.DeploymentState.Stopped){l.setStatus(a,null),r(a);return}l.setStatus(a,b)},3e3);q.current.set(a,b)},[l,r]);(0,c.useEffect)(()=>{let a=q.current,b=l.subscribeAll(()=>{for(let[b]of a){let a=l.getEntry(b);a.status&&o.has(a.status)||r(b)}});return()=>{for(let[,c]of(b(),a))clearInterval(c);a.clear()}},[l,r]);let t=(0,c.useCallback)(a=>{!a||l.getEntry(a).hydrated||(l.update(a,{hydrated:!0}),(async()=>{try{let b=await j(a);l.setStatus(a,b),b&&o.has(b.state)&&s(a)}catch(b){n.warn(`ensureHydrated failed for "${a}"`,b)}})())},[l,s]),u=(0,c.useCallback)(async a=>{l.update(a.targetId,{deployLoading:!0,deployError:null});try{let b="feature"===a.targetType?await f(a.targetId):"application"===a.targetType?await h(a.targetId):await g(a.repositoryPath);if(!b.success)return void l.update(a.targetId,{deployLoading:!1,deployError:b.error??"An unexpected error occurred"});l.update(a.targetId,{deployLoading:!1,status:b.state??null,url:null,hydrated:!0,targetType:a.targetType}),s(a.targetId)}catch(c){let b=c instanceof Error?c.message:"An unexpected error occurred";l.update(a.targetId,{deployLoading:!1,deployError:b})}},[l,s]),v=(0,c.useCallback)(async a=>{if(a){l.update(a,{stopLoading:!0});try{(await i(a)).success?(r(a),l.update(a,{stopLoading:!1,status:null,url:null})):l.update(a,{stopLoading:!1})}catch(b){n.warn("stop error (non-critical)",b),l.update(a,{stopLoading:!1})}}},[l,r]),w=(0,c.useMemo)(()=>({store:l,deploy:u,stop:v,ensureHydrated:t}),[l,u,v,t]);return(0,b.jsx)(p.Provider,{value:w,children:e})}function r(){let a=(0,c.useContext)(p);if(!a)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return a}function s(){let a=(0,c.useContext)(p);return a||t}let t={store:new m,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};a.s(["DeploymentStatusProvider",()=>q,"useDeploymentStatusContext",()=>r,"useDeploymentStatusContextOptional",()=>s],966691)},450490,5698,a=>{"use strict";var b=a.i(225700);let c=(0,b.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>c],450490);let d=(0,b.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>d],5698)},118662,a=>{"use strict";var b=a.i(944592),c=a.i(966691);function d(){}function e(a){let{store:e,deploy:f,stop:g,ensureHydrated:h}=(0,c.useDeploymentStatusContextOptional)(),i=a?.targetId??"",j=(0,b.useCallback)(a=>i?e.subscribe(i,a):d,[e,i]),k=(0,b.useCallback)(()=>i?e.getEntry(i):e.getEntry(""),[e,i]),l=(0,b.useSyncExternalStore)(j,k,k);return(0,b.useEffect)(()=>{i&&h(i)},[i,h]),{deploy:(0,b.useCallback)(async()=>{a&&await f(a)},[f,a]),stop:(0,b.useCallback)(async()=>{i&&await g(i)},[g,i]),deployLoading:l.deployLoading,stopLoading:l.stopLoading,deployError:l.deployError,status:l.status,url:l.url}}a.s(["useDeployAction",()=>e])},505488,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("4022e99fd1109ed481cdbf922bc4f6eca754e5c8cc",b.callServer,void 0,b.findSourceMapURL,"deleteApplication");a.s(["deleteApplication",()=>c])},793193,261189,a=>{"use strict";var b=a.i(991857);function c(a,b,c,d){return"processing"===b?{label:"In Progress",dotClass:"bg-violet-500",borderClass:"",pulse:!0,previewDisabled:!0}:"awaiting_input"===b?{label:"Action Required",dotClass:"bg-amber-500",borderClass:"border-amber-500/60",pulse:!0,previewDisabled:!0}:"interrupted"===d?{label:"Interrupted",dotClass:"bg-amber-500",borderClass:"border-amber-500/60",pulse:!1,previewDisabled:!0}:"failed"===d?{label:"Failed",dotClass:"bg-red-500",borderClass:"border-red-500/60",pulse:!1,previewDisabled:!0}:"building"===d?{label:"In Progress",dotClass:"bg-violet-500",borderClass:"",pulse:!0,previewDisabled:!0}:c?{label:"Live",dotClass:"bg-emerald-500",borderClass:"",pulse:!0,previewDisabled:!1}:"Error"===a?{label:"Error",dotClass:"bg-red-500",borderClass:"border-red-500/60",pulse:!1,previewDisabled:!0}:{label:"Ready",dotClass:"bg-sky-500",borderClass:"",pulse:!1,previewDisabled:!1}}a.s(["TriangleAlert",()=>b.default],793193),a.s(["deriveAppLiveStatus",()=>c],261189)},887973,a=>{"use strict";function b(a){return`app-${a}`}a.s(["featureIdForApplication",()=>b])},857411,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(193967),e=a.i(232791),f=a.i(488064),g=a.i(882014),h=a.i(103942),i=a.i(69428),j=a.i(771716),k=a.i(872016),l=a.i(302807);a.i(490370);var m=a.i(224640),n=a.i(385536),o=a.i(289111);let p=(0,o.createServerReference)("40309517ef69e6981b73668a01296bf84986387c4b",o.callServer,void 0,o.findSourceMapURL,"createProjectAndFeature"),q=(0,o.createServerReference)("4040af9db3d92788388c71955f66fe089bc00af285",o.callServer,void 0,o.findSourceMapURL,"createApplication");var r=a.i(961781);a.i(200307);var s=a.i(730931);a.i(548822);var t=a.i(85655),u=a.i(182934),v=a.i(675192),w=a.i(409260);let x=["application","fast","spec"],y={application:{icon:g.LayoutGrid,label:"Application",placeholder:"Build a modern e-commerce storefront with product catalog...",suggestions:["A landing page with hero, features, and pricing sections","Full-stack SaaS app with auth, billing, and dashboard","Mobile-first social media app with real-time chat","Personal portfolio with blog and project showcase"]},fast:{icon:h.Zap,label:"Fast",placeholder:"Add a dark mode toggle to the settings page...",suggestions:["Add pagination to the users list endpoint","Fix the broken logout redirect","Add input validation to the signup form","Refactor the API error handling middleware"]},spec:{icon:i.ClipboardList,label:"Spec Driven",placeholder:"Implement a role-based access control system with audit logging...",suggestions:["OAuth2 authentication with SSO and MFA support","Event-driven notification system with email and push","REST API with versioning, rate limiting, and OpenAPI docs","Data pipeline with ETL, validation, and monitoring"]}};function z({onRepositorySelect:a,onApplicationCreated:g,onClose:h,className:i}){let{t:o}=(0,m.useTranslation)("web"),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(void 0),[D,E]=(0,c.useState)(void 0),[F,G]=(0,c.useState)("application"),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),[L,M]=(0,c.useState)(!1),N=(0,c.useRef)(null),O=(0,w.useAttachments)(),P=(0,c.useCallback)(()=>{G(a=>{let b=x.indexOf(a);return x[(b+1)%x.length]})},[]);(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&h&&h(),"Tab"===a.key&&a.shiftKey&&(a.preventDefault(),P())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[h,P]);let Q=(0,c.useCallback)(async()=>{if(z.trim()&&!H){I(!0),K(null);try{if("application"===F){let a=await q({description:z.trim(),agentType:B,modelOverride:D,initialPrompt:z.trim()});if(a.error){K(a.error),I(!1);return}a.application&&g?.(a.application.id)}else{let b=await p({description:z.trim(),attachments:O.completedAttachments.map(a=>({path:a.path,name:a.name,notes:a.notes})),agentType:B,model:D,fast:"fast"===F});if(b.error){K(b.error),I(!1);return}b.repositoryPath&&a?.(b.repositoryPath),b.feature&&b.repositoryPath&&window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.repositoryPath}}))}}catch{K("Something went wrong. Please try again."),I(!1)}}},[z,H,F,O.completedAttachments,B,D,a,g]),R=(0,c.useCallback)(a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),Q())},[Q]),S=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/dialog/pick-files");if(!a.ok)return;let b=await a.json();if(!b.paths?.length)return;for(let a of b.paths){let b=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a,sessionId:"onboarding"})});if(!b.ok)continue;let c=await b.json();O.addAttachment(c)}}catch{}},[O.addAttachment]),T=(0,c.useCallback)(a=>{A(a),N.current?.focus()},[]),U=y[F],V=U.icon;return(0,b.jsxs)("div",{"data-testid":"control-center-empty-state",className:(0,n.cn)("relative flex h-full w-full flex-col items-center justify-center overflow-hidden px-8",i),children:[(0,b.jsx)("div",{className:"onboard-bg pointer-events-none absolute inset-0 animate-[onboard-fade-in_1.2s_ease-out_both]"}),h?(0,b.jsx)("button",{type:"button",onClick:h,"aria-label":"Close",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 absolute top-4 right-4 z-10 cursor-pointer rounded p-1.5 transition-colors",children:(0,b.jsx)(l.X,{className:"h-5 w-5"})}):null,(0,b.jsxs)("div",{className:"relative flex w-full max-w-2xl flex-col items-center",children:[(0,b.jsx)("div",{className:"mb-6 animate-[onboard-logo_0.8s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"0ms"},children:(0,b.jsx)(t.ShepLogo,{size:72,className:"text-foreground"})}),(0,b.jsx)("h1",{className:"text-foreground animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-5xl font-extralight tracking-tight",style:{animationDelay:"120ms"},children:"What do you want to build?"}),(0,b.jsx)("p",{className:"text-muted-foreground mt-3 animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-lg leading-relaxed font-light",style:{animationDelay:"220ms"},children:"Describe your idea and Shep creates the project for you."}),(0,b.jsxs)("div",{className:"mt-10 w-full animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both]",style:{animationDelay:"350ms"},children:[(0,b.jsxs)("div",{onFocus:()=>M(!0),onBlur:()=>M(!1),onDragEnter:O.handleDragEnter,onDragLeave:O.handleDragLeave,onDragOver:O.handleDragOver,onDrop:O.handleDrop,className:(0,n.cn)("flex flex-col rounded-xl border transition-all duration-200","border-border/60 bg-background shadow-sm dark:border-white/10 dark:bg-white/[0.04]",L&&"ring-ring/50 border-ring shadow-md ring-[3px] dark:border-orange-500/40 dark:ring-orange-500/25",O.isDragOver&&"border-primary/50 bg-primary/5",H&&"opacity-70"),children:[(0,b.jsx)("textarea",{ref:N,rows:2,autoFocus:!0,value:z,onChange:a=>A(a.target.value),onKeyDown:R,onPaste:O.handlePaste,placeholder:U.placeholder,disabled:H,className:"text-foreground placeholder:text-muted-foreground/60 max-h-[10rem] min-h-[4.5rem] w-full resize-none border-0 bg-transparent px-4 py-3.5 text-sm leading-relaxed focus:outline-none disabled:cursor-not-allowed"}),O.attachments.length>0?(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2.5 overflow-x-auto overflow-y-visible px-5 pt-2 pb-2",children:O.attachments.map(a=>(0,b.jsx)(s.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>O.removeAttachment(a.id),loading:a.loading,notes:a.notes,onNotesChange:b=>O.updateNotes(a.id,b)},a.id))}):null,O.uploadError?(0,b.jsx)("p",{className:"text-destructive px-4 pb-2 text-xs",children:O.uploadError}):null,(0,b.jsxs)("div",{className:"border-border/60 flex shrink-0 items-center gap-3 border-t px-3 py-2 dark:border-white/10",children:[(0,b.jsx)(r.AgentModelPicker,{initialAgentType:B??"claude-code",initialModel:D??"claude-sonnet-4-6",mode:"override",showInstallStatus:!0,onAgentModelChange:(a,b)=>{C(a),E(b)},className:"w-55"}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)(v.DropdownMenu,{children:[(0,b.jsx)(v.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button","data-testid":"build-mode-selector",className:"text-muted-foreground hover:text-foreground hover:bg-accent/50 flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors",children:[(0,b.jsxs)("span",{className:"flex animate-[onboard-fade-up_0.25s_ease-out_both] items-center gap-1.5",children:[(0,b.jsx)(V,{className:"h-3.5 w-3.5"}),U.label]},F),(0,b.jsx)(j.ChevronDown,{className:"h-3 w-3 opacity-50"})]})}),(0,b.jsx)(v.DropdownMenuContent,{align:"end",className:"min-w-[160px]",children:x.map(a=>{let c=y[a],d=c.icon,e=F===a;return(0,b.jsxs)(v.DropdownMenuItem,{onClick:()=>G(a),"data-testid":`build-mode-${a}`,className:"flex items-center gap-2",children:[(0,b.jsx)(d,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{className:"flex-1",children:c.label}),e?(0,b.jsx)(k.Check,{className:"text-foreground h-3.5 w-3.5"}):null]},a)})})]}),(0,b.jsxs)(u.Tooltip,{children:[(0,b.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:S,disabled:H,"aria-label":o("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors disabled:opacity-50",children:(0,b.jsx)(e.Paperclip,{className:"h-4 w-4"})})}),(0,b.jsx)(u.TooltipContent,{side:"top",children:o("chat.attachFiles")})]}),(0,b.jsx)("button",{type:"button",onClick:Q,disabled:!z.trim()||H,className:(0,n.cn)("bg-foreground text-background inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg","hover:bg-foreground/90 disabled:pointer-events-none disabled:opacity-30","transition-all duration-150"),children:H?(0,b.jsx)(f.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(d.SendHorizontal,{className:"h-3.5 w-3.5"})})]})]}),J?(0,b.jsx)("p",{className:"text-destructive mt-2 text-center text-sm",children:J}):null]}),(0,b.jsx)("div",{className:"mt-6 flex animate-[onboard-fade-up_0.4s_ease-out_both] flex-wrap justify-center gap-2",children:U.suggestions.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>T(a),disabled:H,className:"text-muted-foreground hover:text-foreground border-border/60 hover:border-border hover:bg-accent/50 cursor-pointer rounded-full border px-3.5 py-1.5 text-xs transition-all duration-150 disabled:opacity-50 dark:border-white/10 dark:hover:border-white/20 dark:hover:bg-white/[0.06]",children:a},a))},F)]})]})}a.s(["ControlCenterEmptyState",()=>z],857411)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_6401fcb4._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../src/presentation/web/hooks/deployment-status-provider.tsx","../../../../../../../src/presentation/web/app/actions/data%3A812b07%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A0e8016%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A31a09d%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Aad3f34%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A5392ec%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/deployment-status-store.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/square.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/play.ts","../../../../../../../src/presentation/web/hooks/use-deploy-action.ts","../../../../../../../src/presentation/web/app/actions/data%3Abbfa0b%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/lib/derive-app-status.ts","../../../../../../../packages/core/src/domain/shared/feature-id.ts","../../../../../../../src/presentation/web/components/features/control-center/control-center-empty-state.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aa01c5b%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A0467f4%20%3Ctext/javascript%3E"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","'use client';\n\n/**\n * DeploymentStatusProvider\n *\n * Wraps the dashboard with a shared deployment-status store seeded from\n * SSR data (ListDeploymentsUseCase via get-graph-data). All components\n * that call `useDeployAction(targetId)` subscribe to the same store, so\n * the \"click Run on node → tab shows URL instantly\" bug and the\n * \"URL lost after refresh\" bug are both resolved by construction.\n *\n * All business logic lives in use cases on the backend. This provider\n * owns only UI state transitions: which entries are hydrated, which are\n * loading, which have errors, and which need polling.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n} from 'react';\nimport type { DeploymentStatusEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { deployFeature } from '@/app/actions/deploy-feature';\nimport { deployRepository } from '@/app/actions/deploy-repository';\nimport { deployApplication } from '@/app/actions/deploy-application';\nimport { stopDeployment } from '@/app/actions/stop-deployment';\nimport { getDeploymentStatus } from '@/app/actions/get-deployment-status';\nimport { createLogger } from '@/lib/logger';\nimport {\n DeploymentStatusStore,\n type DeploymentEntryState,\n EMPTY_ENTRY,\n} from './deployment-status-store';\n\nconst log = createLogger('[DeploymentStatusProvider]');\n\nconst POLL_INTERVAL_MS = 3000;\nconst ACTIVE_STATES: ReadonlySet<DeploymentState> = new Set([\n DeploymentState.Booting,\n DeploymentState.Ready,\n]);\n\nexport interface DeployActionInput {\n targetId: string;\n targetType: 'feature' | 'repository' | 'application';\n repositoryPath: string;\n branch?: string;\n}\n\ninterface DeploymentContextValue {\n store: DeploymentStatusStore;\n deploy: (input: DeployActionInput) => Promise<void>;\n stop: (targetId: string) => Promise<void>;\n ensureHydrated: (targetId: string) => void;\n}\n\nconst DeploymentStatusContext = createContext<DeploymentContextValue | null>(null);\n\nexport function DeploymentStatusProvider({\n initialDeployments,\n children,\n}: {\n initialDeployments: DeploymentStatusEntry[];\n children: ReactNode;\n}) {\n // One store per provider instance. Stable across renders.\n const storeRef = useRef<DeploymentStatusStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new DeploymentStatusStore();\n storeRef.current.hydrate(initialDeployments);\n }\n const store = storeRef.current;\n\n // Re-hydrate when SSR data changes (e.g. after graph-data poll).\n useEffect(() => {\n store.hydrate(initialDeployments);\n }, [initialDeployments, store]);\n\n // ── Polling ──────────────────────────────────────────────────────────\n // One interval per targetId. Started when an entry becomes active\n // (Booting/Ready) and stopped when it is no longer active.\n const pollIntervalsRef = useRef<Map<string, ReturnType<typeof setInterval>>>(new Map());\n\n const stopPolling = useCallback((targetId: string) => {\n const existing = pollIntervalsRef.current.get(targetId);\n if (existing) {\n clearInterval(existing);\n pollIntervalsRef.current.delete(targetId);\n }\n }, []);\n\n const startPolling = useCallback(\n (targetId: string) => {\n if (pollIntervalsRef.current.has(targetId)) return;\n const interval = setInterval(async () => {\n let result;\n try {\n result = await getDeploymentStatus(targetId);\n } catch (err) {\n log.warn(`poll failed for \"${targetId}\"`, err);\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n if (!result || result.state === DeploymentState.Stopped) {\n store.setStatus(targetId, null);\n stopPolling(targetId);\n return;\n }\n store.setStatus(targetId, result);\n }, POLL_INTERVAL_MS);\n pollIntervalsRef.current.set(targetId, interval);\n },\n [store, stopPolling]\n );\n\n // Reconcile polling with store state on every change.\n useEffect(() => {\n const intervals = pollIntervalsRef.current;\n const reconcile = () => {\n // Stop polls for entries that are no longer active.\n for (const [targetId] of intervals) {\n const entry = store.getEntry(targetId);\n if (!entry.status || !ACTIVE_STATES.has(entry.status)) {\n stopPolling(targetId);\n }\n }\n };\n const unsubscribe = store.subscribeAll(reconcile);\n return () => {\n unsubscribe();\n for (const [, interval] of intervals) clearInterval(interval);\n intervals.clear();\n };\n }, [store, stopPolling]);\n\n // ── Mount hydration per targetId ─────────────────────────────────────\n // When a hook subscribes to a targetId that was not in the SSR hydration\n // (e.g. a stale page with deployments started in another tab), fetch its\n // status once from the backend via getDeploymentStatus → use case.\n const ensureHydrated = useCallback(\n (targetId: string) => {\n if (!targetId) return;\n const entry = store.getEntry(targetId);\n if (entry.hydrated) return;\n // Mark hydrated immediately to dedupe concurrent callers.\n store.update(targetId, { hydrated: true });\n void (async () => {\n try {\n const result = await getDeploymentStatus(targetId);\n store.setStatus(targetId, result);\n if (result && ACTIVE_STATES.has(result.state)) startPolling(targetId);\n } catch (err) {\n log.warn(`ensureHydrated failed for \"${targetId}\"`, err);\n }\n })();\n },\n [store, startPolling]\n );\n\n // ── Actions ──────────────────────────────────────────────────────────\n const deploy = useCallback(\n async (input: DeployActionInput) => {\n store.update(input.targetId, { deployLoading: true, deployError: null });\n try {\n const result =\n input.targetType === 'feature'\n ? await deployFeature(input.targetId)\n : input.targetType === 'application'\n ? await deployApplication(input.targetId)\n : await deployRepository(input.repositoryPath);\n if (!result.success) {\n store.update(input.targetId, {\n deployLoading: false,\n deployError: result.error ?? 'An unexpected error occurred',\n });\n return;\n }\n store.update(input.targetId, {\n deployLoading: false,\n status: result.state ?? null,\n url: null,\n hydrated: true,\n targetType: input.targetType,\n });\n startPolling(input.targetId);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'An unexpected error occurred';\n store.update(input.targetId, { deployLoading: false, deployError: message });\n }\n },\n [store, startPolling]\n );\n\n const stop = useCallback(\n async (targetId: string) => {\n if (!targetId) return;\n store.update(targetId, { stopLoading: true });\n try {\n const result = await stopDeployment(targetId);\n if (result.success) {\n stopPolling(targetId);\n store.update(targetId, {\n stopLoading: false,\n status: null,\n url: null,\n });\n } else {\n store.update(targetId, { stopLoading: false });\n }\n } catch (err) {\n log.warn('stop error (non-critical)', err);\n store.update(targetId, { stopLoading: false });\n }\n },\n [store, stopPolling]\n );\n\n const value = useMemo<DeploymentContextValue>(\n () => ({ store, deploy, stop, ensureHydrated }),\n [store, deploy, stop, ensureHydrated]\n );\n\n return (\n <DeploymentStatusContext.Provider value={value}>{children}</DeploymentStatusContext.Provider>\n );\n}\n\nexport function useDeploymentStatusContext(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (!ctx) {\n throw new Error('useDeploymentStatusContext must be used within a <DeploymentStatusProvider>');\n }\n return ctx;\n}\n\n/**\n * Non-throwing variant used by presentational hooks (e.g. useDeployAction)\n * that may render inside Storybook or other isolated contexts without\n * a provider. Returns a stub store/actions that do nothing.\n */\nexport function useDeploymentStatusContextOptional(): DeploymentContextValue {\n const ctx = useContext(DeploymentStatusContext);\n if (ctx) return ctx;\n return FALLBACK_CONTEXT;\n}\n\nconst FALLBACK_STORE = new DeploymentStatusStore();\nconst FALLBACK_CONTEXT: DeploymentContextValue = {\n store: FALLBACK_STORE,\n deploy: async () => {\n /* no-op */\n },\n stop: async () => {\n /* no-op */\n },\n ensureHydrated: () => {\n /* no-op */\n },\n};\n\nexport { EMPTY_ENTRY, type DeploymentEntryState };\n","/* __next_internal_action_entry_do_not_use__ [{\"40026de899f93ce7cd1fdf1a0ee013dad77cdc4f03\":\"deployFeature\"},\"src/presentation/web/app/actions/deploy-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40026de899f93ce7cd1fdf1a0ee013dad77cdc4f03\",callServer,void 0,findSourceMapURL,\"deployFeature\");export{$$RSC_SERVER_ACTION_0 as deployFeature};","/* __next_internal_action_entry_do_not_use__ [{\"40108be7384990f668028a97284b5ae9db570b1965\":\"deployRepository\"},\"src/presentation/web/app/actions/deploy-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40108be7384990f668028a97284b5ae9db570b1965\",callServer,void 0,findSourceMapURL,\"deployRepository\");export{$$RSC_SERVER_ACTION_0 as deployRepository};","/* __next_internal_action_entry_do_not_use__ [{\"406e6f424ebf1e3b734864e08e09226a559105f605\":\"deployApplication\"},\"src/presentation/web/app/actions/deploy-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406e6f424ebf1e3b734864e08e09226a559105f605\",callServer,void 0,findSourceMapURL,\"deployApplication\");export{$$RSC_SERVER_ACTION_0 as deployApplication};","/* __next_internal_action_entry_do_not_use__ [{\"40425dc4804963cdc2f5af0bdc1e7594e877baaf11\":\"stopDeployment\"},\"src/presentation/web/app/actions/stop-deployment.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40425dc4804963cdc2f5af0bdc1e7594e877baaf11\",callServer,void 0,findSourceMapURL,\"stopDeployment\");export{$$RSC_SERVER_ACTION_0 as stopDeployment};","/* __next_internal_action_entry_do_not_use__ [{\"40eb5c7ddaa143cbe9dc2c73f7bb19a5d89b533a7d\":\"getDeploymentStatus\"},\"src/presentation/web/app/actions/get-deployment-status.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40eb5c7ddaa143cbe9dc2c73f7bb19a5d89b533a7d\",callServer,void 0,findSourceMapURL,\"getDeploymentStatus\");export{$$RSC_SERVER_ACTION_0 as getDeploymentStatus};","/**\n * Deployment Status Store\n *\n * External store (useSyncExternalStore-compatible) that holds the shared\n * deployment state keyed by targetId. Multiple components subscribed to\n * the same targetId see the same state — fixes the node/drawer-out-of-sync\n * bug and makes page-refresh hydration trivial.\n *\n * Mutation paths (deploy/stop/poll) go through server actions that wrap\n * use cases — this module stores state only and never contains business\n * logic.\n */\n\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport type {\n DeploymentStatus,\n DeploymentStatusEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport interface DeploymentEntryState {\n status: DeploymentState | null;\n url: string | null;\n targetType: string | null;\n /** Whether mount-hydration (listDeployments / getDeploymentStatus) has completed for this targetId. */\n hydrated: boolean;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n}\n\nexport const EMPTY_ENTRY: DeploymentEntryState = {\n status: null,\n url: null,\n targetType: null,\n hydrated: false,\n deployLoading: false,\n stopLoading: false,\n deployError: null,\n};\n\ntype Listener = () => void;\n\nexport class DeploymentStatusStore {\n private entries = new Map<string, DeploymentEntryState>();\n private listeners = new Map<string, Set<Listener>>();\n private globalListeners = new Set<Listener>();\n\n /** Seed the store from SSR data (ListDeploymentsUseCase output). */\n hydrate(entries: DeploymentStatusEntry[]): void {\n // Mark every SSR entry as hydrated and merge into the map.\n const seen = new Set<string>();\n for (const entry of entries) {\n seen.add(entry.targetId);\n this.update(entry.targetId, {\n status: entry.state,\n url: entry.url,\n targetType: entry.targetType,\n hydrated: true,\n });\n }\n // Any previously tracked entries missing from the SSR list are stale —\n // mark them hydrated with null state so subscribers learn their\n // deployment is gone.\n for (const [targetId, existing] of this.entries) {\n if (!seen.has(targetId) && existing.hydrated && existing.status !== null) {\n this.update(targetId, { status: null, url: null });\n } else if (!seen.has(targetId) && !existing.hydrated) {\n this.update(targetId, { hydrated: true });\n }\n }\n }\n\n getEntry(targetId: string): DeploymentEntryState {\n return this.entries.get(targetId) ?? EMPTY_ENTRY;\n }\n\n update(targetId: string, patch: Partial<DeploymentEntryState>): void {\n const current = this.entries.get(targetId) ?? EMPTY_ENTRY;\n const next: DeploymentEntryState = { ...current, ...patch };\n this.entries.set(targetId, next);\n this.notify(targetId);\n }\n\n /** Apply a status snapshot (from a server action result) to a targetId. */\n setStatus(targetId: string, status: DeploymentStatus | null): void {\n if (status === null) {\n this.update(targetId, { status: null, url: null, hydrated: true });\n return;\n }\n this.update(targetId, {\n status: status.state,\n url: status.url,\n hydrated: true,\n });\n }\n\n subscribe(targetId: string, listener: Listener): () => void {\n let set = this.listeners.get(targetId);\n if (!set) {\n set = new Set();\n this.listeners.set(targetId, set);\n }\n set.add(listener);\n return () => {\n set?.delete(listener);\n if (set?.size === 0) this.listeners.delete(targetId);\n };\n }\n\n subscribeAll(listener: Listener): () => void {\n this.globalListeners.add(listener);\n return () => {\n this.globalListeners.delete(listener);\n };\n }\n\n private notify(targetId: string): void {\n const set = this.listeners.get(targetId);\n if (set) for (const l of set) l();\n for (const l of this.globalListeners) l();\n }\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n];\n\n/**\n * @component @name Square\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Square = createLucideIcon('square', __iconNode);\n\nexport default Square;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n","'use client';\n\n/**\n * useDeployAction\n *\n * Thin subscriber to the shared DeploymentStatusProvider, scoped to one\n * targetId. All components that call this hook with the same targetId\n * see the same state — a click on a node updates the drawer instantly,\n * and state survives page refresh via SSR hydration.\n *\n * Business logic (start/stop/status) lives in backend use cases — this\n * hook contains zero decision-making code.\n */\n\nimport { useEffect, useSyncExternalStore, useCallback } from 'react';\nimport type { DeploymentState } from '@shepai/core/domain/generated/output';\nimport {\n useDeploymentStatusContextOptional,\n type DeployActionInput,\n} from './deployment-status-provider';\n\nexport type { DeployActionInput };\n\n/** Stable no-op unsubscribe for hooks called with a null input. */\nfunction noop(): void {\n /* no-op */\n}\n\nexport interface DeployActionState {\n deploy: () => Promise<void>;\n stop: () => Promise<void>;\n deployLoading: boolean;\n stopLoading: boolean;\n deployError: string | null;\n status: DeploymentState | null;\n url: string | null;\n}\n\nexport function useDeployAction(input: DeployActionInput | null): DeployActionState {\n const { store, deploy, stop, ensureHydrated } = useDeploymentStatusContextOptional();\n const targetId = input?.targetId ?? '';\n\n // Subscribe to the store entry for this targetId.\n const subscribe = useCallback(\n (listener: () => void) => {\n if (!targetId) return noop;\n return store.subscribe(targetId, listener);\n },\n [store, targetId]\n );\n const getSnapshot = useCallback(\n () => (targetId ? store.getEntry(targetId) : store.getEntry('')),\n [store, targetId]\n );\n const entry = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n // On mount (or when targetId changes), ensure the entry is hydrated.\n useEffect(() => {\n if (targetId) ensureHydrated(targetId);\n }, [targetId, ensureHydrated]);\n\n const handleDeploy = useCallback(async () => {\n if (!input) return;\n await deploy(input);\n }, [deploy, input]);\n\n const handleStop = useCallback(async () => {\n if (!targetId) return;\n await stop(targetId);\n }, [stop, targetId]);\n\n return {\n deploy: handleDeploy,\n stop: handleStop,\n deployLoading: entry.deployLoading,\n stopLoading: entry.stopLoading,\n deployError: entry.deployError,\n status: entry.status,\n url: entry.url,\n };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"4022e99fd1109ed481cdbf922bc4f6eca754e5c8cc\":\"deleteApplication\"},\"src/presentation/web/app/actions/delete-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4022e99fd1109ed481cdbf922bc4f6eca754e5c8cc\",callServer,void 0,findSourceMapURL,\"deleteApplication\");export{$$RSC_SERVER_ACTION_0 as deleteApplication};","/**\n * Shared status derivation for application cards, canvas nodes, and\n * the application page status pill.\n *\n * Priority (highest wins):\n *\n * - `processing` → \"In Progress\" (agent actively running a turn)\n * - `awaiting_input` → \"Action Required\" (agent blocked on user input)\n * - effectiveStatus → from use case (interrupted/failed/running)\n * - deployment live → \"Live\" (dev server running)\n * - persisted Error → \"Error\"\n * - otherwise → \"Ready\" (idle, no issues)\n */\n\nexport interface AppLiveStatus {\n label: string;\n dotClass: string;\n borderClass: string;\n pulse: boolean;\n /** Whether the preview/deploy action should be disabled in this state. */\n previewDisabled: boolean;\n}\n\nexport function deriveAppLiveStatus(\n persistedStatus: string,\n turnStatus: string,\n hasDeployment: boolean,\n effectiveStatus?: string\n): AppLiveStatus {\n // Live turn status takes highest priority (real-time SSE)\n if (turnStatus === 'processing') {\n return {\n label: 'In Progress',\n dotClass: 'bg-violet-500',\n borderClass: '',\n pulse: true,\n previewDisabled: true,\n };\n }\n if (turnStatus === 'awaiting_input') {\n return {\n label: 'Action Required',\n dotClass: 'bg-amber-500',\n borderClass: 'border-amber-500/60',\n pulse: true,\n previewDisabled: true,\n };\n }\n\n // Use case-computed effective status (from workflow steps)\n if (effectiveStatus === 'interrupted') {\n return {\n label: 'Interrupted',\n dotClass: 'bg-amber-500',\n borderClass: 'border-amber-500/60',\n pulse: false,\n previewDisabled: true,\n };\n }\n if (effectiveStatus === 'failed') {\n return {\n label: 'Failed',\n dotClass: 'bg-red-500',\n borderClass: 'border-red-500/60',\n pulse: false,\n previewDisabled: true,\n };\n }\n if (effectiveStatus === 'building') {\n return {\n label: 'In Progress',\n dotClass: 'bg-violet-500',\n borderClass: '',\n pulse: true,\n previewDisabled: true,\n };\n }\n\n // Deployment state\n if (hasDeployment) {\n return {\n label: 'Live',\n dotClass: 'bg-emerald-500',\n borderClass: '',\n pulse: true,\n previewDisabled: false,\n };\n }\n\n // Persisted entity status\n if (persistedStatus === 'Error') {\n return {\n label: 'Error',\n dotClass: 'bg-red-500',\n borderClass: 'border-red-500/60',\n pulse: false,\n previewDisabled: true,\n };\n }\n\n return {\n label: 'Ready',\n dotClass: 'bg-sky-500',\n borderClass: '',\n pulse: false,\n previewDisabled: false,\n };\n}\n","/**\n * Feature-id namespace helpers.\n *\n * The project uses string feature-ids to key interactive agent sessions and\n * workflow steps. Applications reuse this system by prefixing their id with\n * `app-`. Historically this was spread as raw string literals and regexes\n * across core and presentation (clean-arch violation #11 in spec 089).\n *\n * These helpers centralise the convention so callers never need to know the\n * prefix literal.\n */\n\nconst APPLICATION_FEATURE_ID_PREFIX = 'app-';\n\n/**\n * Build the feature-id used for an Application with the given domain id.\n */\nexport function featureIdForApplication(applicationId: string): string {\n return `${APPLICATION_FEATURE_ID_PREFIX}${applicationId}`;\n}\n\n/**\n * Extract the Application id from a feature-id if it belongs to the\n * application namespace. Returns `null` otherwise.\n */\nexport function applicationIdFromFeatureId(featureId: string): string | null {\n if (!isApplicationFeatureId(featureId)) return null;\n return featureId.slice(APPLICATION_FEATURE_ID_PREFIX.length);\n}\n\n/**\n * Return true when the given feature-id belongs to the application namespace.\n */\nexport function isApplicationFeatureId(featureId: string): boolean {\n return featureId.startsWith(APPLICATION_FEATURE_ID_PREFIX);\n}\n","'use client';\n\nimport { useState, useCallback, useRef, useEffect } from 'react';\nimport {\n SendHorizontal,\n Paperclip,\n Loader2,\n LayoutGrid,\n Zap,\n ClipboardList,\n ChevronDown,\n Check,\n X,\n} from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { cn } from '@/lib/utils';\nimport { createProjectAndFeature } from '@/app/actions/create-project-and-feature';\nimport { createApplication } from '@/app/actions/create-application';\nimport { AgentModelPicker } from '@/components/features/settings/AgentModelPicker';\nimport { AttachmentChip } from '@/components/common/attachment-chip';\nimport { ShepLogo } from '@/components/common/shep-logo';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { useAttachments } from '@/hooks/use-attachments';\n\ntype BuildMode = 'application' | 'fast' | 'spec';\n\nconst BUILD_MODES: BuildMode[] = ['application', 'fast', 'spec'];\n\nconst BUILD_MODE_CONFIG: Record<\n BuildMode,\n {\n icon: React.ElementType;\n label: string;\n placeholder: string;\n suggestions: string[];\n }\n> = {\n application: {\n icon: LayoutGrid,\n label: 'Application',\n placeholder: 'Build a modern e-commerce storefront with product catalog...',\n suggestions: [\n 'A landing page with hero, features, and pricing sections',\n 'Full-stack SaaS app with auth, billing, and dashboard',\n 'Mobile-first social media app with real-time chat',\n 'Personal portfolio with blog and project showcase',\n ],\n },\n fast: {\n icon: Zap,\n label: 'Fast',\n placeholder: 'Add a dark mode toggle to the settings page...',\n suggestions: [\n 'Add pagination to the users list endpoint',\n 'Fix the broken logout redirect',\n 'Add input validation to the signup form',\n 'Refactor the API error handling middleware',\n ],\n },\n spec: {\n icon: ClipboardList,\n label: 'Spec Driven',\n placeholder: 'Implement a role-based access control system with audit logging...',\n suggestions: [\n 'OAuth2 authentication with SSO and MFA support',\n 'Event-driven notification system with email and push',\n 'REST API with versioning, rate limiting, and OpenAPI docs',\n 'Data pipeline with ETL, validation, and monitoring',\n ],\n },\n};\n\nexport interface ControlCenterEmptyStateProps {\n onRepositorySelect?: (path: string) => void;\n onApplicationCreated?: (applicationId: string) => void;\n onClose?: () => void;\n className?: string;\n}\n\nexport function ControlCenterEmptyState({\n onRepositorySelect,\n onApplicationCreated,\n onClose,\n className,\n}: ControlCenterEmptyStateProps) {\n const { t } = useTranslation('web');\n const [description, setDescription] = useState('');\n const [overrideAgent, setOverrideAgent] = useState<string | undefined>(undefined);\n const [overrideModel, setOverrideModel] = useState<string | undefined>(undefined);\n const [buildMode, setBuildMode] = useState<BuildMode>('application');\n const [submitting, setSubmitting] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [isFocused, setIsFocused] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const att = useAttachments();\n\n // Circular mode switching with Shift+Tab, close overlay with Escape\n const cycleBuildMode = useCallback(() => {\n setBuildMode((prev) => {\n const idx = BUILD_MODES.indexOf(prev);\n return BUILD_MODES[(idx + 1) % BUILD_MODES.length];\n });\n }, []);\n\n useEffect(() => {\n const handleGlobalKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && onClose) onClose();\n if (e.key === 'Tab' && e.shiftKey) {\n e.preventDefault();\n cycleBuildMode();\n }\n };\n window.addEventListener('keydown', handleGlobalKeyDown);\n return () => window.removeEventListener('keydown', handleGlobalKeyDown);\n }, [onClose, cycleBuildMode]);\n\n const handleSubmit = useCallback(async () => {\n if (!description.trim() || submitting) return;\n\n setSubmitting(true);\n setError(null);\n\n try {\n if (buildMode === 'application') {\n // The server action creates the app AND synchronously posts the\n // user's prompt as the first interactive chat message, so when we\n // navigate, /application/[id] SSR-loads chat state and the message\n // is visible on first paint. No prompt in the URL, no extra\n // round trip on the client.\n const result = await createApplication({\n description: description.trim(),\n agentType: overrideAgent,\n modelOverride: overrideModel,\n initialPrompt: description.trim(),\n });\n\n if (result.error) {\n setError(result.error);\n setSubmitting(false);\n return;\n }\n\n if (result.application) {\n onApplicationCreated?.(result.application.id);\n }\n } else {\n const result = await createProjectAndFeature({\n description: description.trim(),\n attachments: att.completedAttachments.map((a) => ({\n path: a.path,\n name: a.name,\n notes: a.notes,\n })),\n agentType: overrideAgent,\n model: overrideModel,\n fast: buildMode === 'fast',\n });\n\n if (result.error) {\n setError(result.error);\n setSubmitting(false);\n return;\n }\n\n if (result.repositoryPath) {\n onRepositorySelect?.(result.repositoryPath);\n }\n\n if (result.feature && result.repositoryPath) {\n window.dispatchEvent(\n new CustomEvent('shep:feature-created', {\n detail: {\n featureId: result.feature.id,\n name: result.feature.name,\n description: result.feature.description,\n repositoryPath: result.repositoryPath,\n },\n })\n );\n }\n }\n } catch {\n setError('Something went wrong. Please try again.');\n setSubmitting(false);\n }\n }, [\n description,\n submitting,\n buildMode,\n att.completedAttachments,\n overrideAgent,\n overrideModel,\n onRepositorySelect,\n onApplicationCreated,\n ]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n handleSubmit();\n }\n },\n [handleSubmit]\n );\n\n const handlePickFiles = useCallback(async () => {\n try {\n const res = await fetch('/api/dialog/pick-files');\n if (!res.ok) return;\n const data = (await res.json()) as { paths?: string[] };\n if (!data.paths?.length) return;\n for (const filePath of data.paths) {\n const uploadRes = await fetch('/api/attachments/upload-from-path', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ path: filePath, sessionId: 'onboarding' }),\n });\n if (!uploadRes.ok) continue;\n const uploaded = (await uploadRes.json()) as {\n id: string;\n name: string;\n size: number;\n mimeType: string;\n path: string;\n };\n att.addAttachment(uploaded);\n }\n } catch {\n // Native picker not available — ignore\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- att.addAttachment is stable\n }, [att.addAttachment]);\n\n const handleSuggestionClick = useCallback((suggestion: string) => {\n setDescription(suggestion);\n textareaRef.current?.focus();\n }, []);\n\n const modeConfig = BUILD_MODE_CONFIG[buildMode];\n const ModeIcon = modeConfig.icon;\n\n return (\n <div\n data-testid=\"control-center-empty-state\"\n className={cn(\n 'relative flex h-full w-full flex-col items-center justify-center overflow-hidden px-8',\n className\n )}\n >\n {/* Gradient background — covers canvas dots */}\n <div className=\"onboard-bg pointer-events-none absolute inset-0 animate-[onboard-fade-in_1.2s_ease-out_both]\" />\n\n {/* Close button — only shown when used as overlay */}\n {onClose ? (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"text-muted-foreground hover:text-foreground hover:bg-accent/50 absolute top-4 right-4 z-10 cursor-pointer rounded p-1.5 transition-colors\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n ) : null}\n\n <div className=\"relative flex w-full max-w-2xl flex-col items-center\">\n {/* Shep Logo */}\n <div\n className=\"mb-6 animate-[onboard-logo_0.8s_cubic-bezier(0.16,1,0.3,1)_both]\"\n style={{ animationDelay: '0ms' }}\n >\n <ShepLogo size={72} className=\"text-foreground\" />\n </div>\n\n {/* Hero text */}\n <h1\n className=\"text-foreground animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-5xl font-extralight tracking-tight\"\n style={{ animationDelay: '120ms' }}\n >\n What do you want to build?\n </h1>\n <p\n className=\"text-muted-foreground mt-3 animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both] text-center text-lg leading-relaxed font-light\"\n style={{ animationDelay: '220ms' }}\n >\n Describe your idea and Shep creates the project for you.\n </p>\n\n {/* Prompt box */}\n <div\n className=\"mt-10 w-full animate-[onboard-fade-up_0.7s_cubic-bezier(0.16,1,0.3,1)_both]\"\n style={{ animationDelay: '350ms' }}\n >\n <div\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onDragEnter={att.handleDragEnter}\n onDragLeave={att.handleDragLeave}\n onDragOver={att.handleDragOver}\n onDrop={att.handleDrop}\n className={cn(\n 'flex flex-col rounded-xl border transition-all duration-200',\n 'border-border/60 bg-background shadow-sm dark:border-white/10 dark:bg-white/[0.04]',\n isFocused &&\n 'ring-ring/50 border-ring shadow-md ring-[3px] dark:border-orange-500/40 dark:ring-orange-500/25',\n att.isDragOver && 'border-primary/50 bg-primary/5',\n submitting && 'opacity-70'\n )}\n >\n {/* Textarea — supports paste for images */}\n <textarea\n ref={textareaRef}\n rows={2}\n autoFocus\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n onKeyDown={handleKeyDown}\n onPaste={att.handlePaste}\n placeholder={modeConfig.placeholder}\n disabled={submitting}\n className=\"text-foreground placeholder:text-muted-foreground/60 max-h-[10rem] min-h-[4.5rem] w-full resize-none border-0 bg-transparent px-4 py-3.5 text-sm leading-relaxed focus:outline-none disabled:cursor-not-allowed\"\n />\n\n {/* Attachment chips */}\n {att.attachments.length > 0 ? (\n <div className=\"flex shrink-0 items-center gap-2.5 overflow-x-auto overflow-y-visible px-5 pt-2 pb-2\">\n {att.attachments.map((file) => (\n <AttachmentChip\n key={file.id}\n name={file.name}\n size={file.size}\n mimeType={file.mimeType}\n path={file.path}\n onRemove={() => att.removeAttachment(file.id)}\n loading={file.loading}\n notes={file.notes}\n onNotesChange={(notes) => att.updateNotes(file.id, notes)}\n />\n ))}\n </div>\n ) : null}\n\n {/* Upload error */}\n {att.uploadError ? (\n <p className=\"text-destructive px-4 pb-2 text-xs\">{att.uploadError}</p>\n ) : null}\n\n {/* Controls bar */}\n <div className=\"border-border/60 flex shrink-0 items-center gap-3 border-t px-3 py-2 dark:border-white/10\">\n <AgentModelPicker\n initialAgentType={overrideAgent ?? 'claude-code'}\n initialModel={overrideModel ?? 'claude-sonnet-4-6'}\n mode=\"override\"\n showInstallStatus\n onAgentModelChange={(agent, model) => {\n setOverrideAgent(agent);\n setOverrideModel(model);\n }}\n className=\"w-55\"\n />\n <div className=\"flex-1\" />\n\n {/* Build mode dropdown — Shift+Tab to cycle */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n data-testid=\"build-mode-selector\"\n className=\"text-muted-foreground hover:text-foreground hover:bg-accent/50 flex cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors\"\n >\n <span\n key={buildMode}\n className=\"flex animate-[onboard-fade-up_0.25s_ease-out_both] items-center gap-1.5\"\n >\n <ModeIcon className=\"h-3.5 w-3.5\" />\n {modeConfig.label}\n </span>\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"min-w-[160px]\">\n {BUILD_MODES.map((mode) => {\n const cfg = BUILD_MODE_CONFIG[mode];\n const Icon = cfg.icon;\n const isActive = buildMode === mode;\n return (\n <DropdownMenuItem\n key={mode}\n onClick={() => setBuildMode(mode)}\n data-testid={`build-mode-${mode}`}\n className=\"flex items-center gap-2\"\n >\n <Icon className=\"h-3.5 w-3.5\" />\n <span className=\"flex-1\">{cfg.label}</span>\n {isActive ? <Check className=\"text-foreground h-3.5 w-3.5\" /> : null}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={handlePickFiles}\n disabled={submitting}\n aria-label={t('chat.attachFiles')}\n className=\"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors disabled:opacity-50\"\n >\n <Paperclip className=\"h-4 w-4\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{t('chat.attachFiles')}</TooltipContent>\n </Tooltip>\n\n <button\n type=\"button\"\n onClick={handleSubmit}\n disabled={!description.trim() || submitting}\n className={cn(\n 'bg-foreground text-background inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg',\n 'hover:bg-foreground/90 disabled:pointer-events-none disabled:opacity-30',\n 'transition-all duration-150'\n )}\n >\n {submitting ? (\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n ) : (\n <SendHorizontal className=\"h-3.5 w-3.5\" />\n )}\n </button>\n </div>\n </div>\n\n {error ? <p className=\"text-destructive mt-2 text-center text-sm\">{error}</p> : null}\n </div>\n\n {/* Suggestion chips — re-animate on mode change */}\n <div\n key={buildMode}\n className=\"mt-6 flex animate-[onboard-fade-up_0.4s_ease-out_both] flex-wrap justify-center gap-2\"\n >\n {modeConfig.suggestions.map((suggestion) => (\n <button\n key={suggestion}\n type=\"button\"\n onClick={() => handleSuggestionClick(suggestion)}\n disabled={submitting}\n className=\"text-muted-foreground hover:text-foreground border-border/60 hover:border-border hover:bg-accent/50 cursor-pointer rounded-full border px-3.5 py-1.5 text-xs transition-all duration-150 disabled:opacity-50 dark:border-white/10 dark:hover:border-white/20 dark:hover:bg-white/[0.06]\"\n >\n {suggestion}\n </button>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40309517ef69e6981b73668a01296bf84986387c4b\":\"createProjectAndFeature\"},\"src/presentation/web/app/actions/create-project-and-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40309517ef69e6981b73668a01296bf84986387c4b\",callServer,void 0,findSourceMapURL,\"createProjectAndFeature\");export{$$RSC_SERVER_ACTION_0 as createProjectAndFeature};","/* __next_internal_action_entry_do_not_use__ [{\"4040af9db3d92788388c71955f66fe089bc00af285\":\"createApplication\"},\"src/presentation/web/app/actions/create-application.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4040af9db3d92788388c71955f66fe089bc00af285\",callServer,void 0,findSourceMapURL,\"createApplication\");export{$$RSC_SERVER_ACTION_0 as createApplication};"],"names":[],"mappings":"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","ignoreList":[0,8,9]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[642642,a=>{"use strict";let b=(0,a.i(225700).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["default",()=>b])},85e4,a=>{"use strict";let b=(0,a.i(225700).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["default",()=>b])},122366,273998,352751,a=>{"use strict";var b=a.i(707052);a.s(["Loader2Icon",()=>b.default],122366);var c=a.i(976096);a.s(["DownloadIcon",()=>c.default],273998);let d=(0,a.i(225700).default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);a.s(["StickyNoteIcon",()=>d],352751)},679620,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}a.s(["Textarea",()=>d])},26633,245902,350596,a=>{"use strict";var b=a.i(650049);a.s(["VisuallyHidden",0,b],26633);let c=(0,a.i(225700).default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);a.s(["default",()=>c],245902),a.s(["FileIcon",()=>c],350596)},200307,730931,a=>{"use strict";var b=a.i(556365),c=a.i(302807),d=a.i(122366),e=a.i(273998),f=a.i(352751),g=a.i(385536),h=a.i(645670),i=a.i(679620),j=a.i(182934),k=a.i(26633),l=a.i(350596),m=a.i(642642),m=m;let n=(0,a.i(225700).default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var o=a.i(840617),o=o;a.i(118948);let p=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),q=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function r(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024));return`${(a/Math.pow(1024,b)).toFixed(+(0!==b))} ${["B","KB","MB","GB"][b]}`}let s=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function t(a,b){let c=new URLSearchParams({path:a,mimeType:b});return`/api/attachments/preview?${c.toString()}`}function u({name:a,size:u,mimeType:v,path:w,onRemove:x,loading:y=!1,disabled:z=!1,notes:A,onNotesChange:B}){let C,D,E=(C=a.lastIndexOf("."))>=0?a.slice(C).toLowerCase():"",F=p.has(E)?n:".pdf"===E?m.default:q.has(E)?o.default:l.FileIcon,G=".pdf"===E?"bg-red-50 text-red-600":p.has(E)?"bg-blue-50 text-blue-600":q.has(E)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",H=(D=a.lastIndexOf("."))>=0&&s.has(a.slice(D).toLowerCase());if(y)return(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,b.jsx)(d.Loader2Icon,{className:"text-muted-foreground h-5 w-5 animate-spin"})});if(H){let d=(0,b.jsxs)("button",{type:"button",className:"relative block cursor-pointer rounded-md",children:[(0,b.jsx)("img",{src:t(w,v),alt:a,title:a,className:"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80"}),A?(0,b.jsx)("span",{className:"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2",children:(0,b.jsx)(f.StickyNoteIcon,{className:"h-2.5 w-2.5"})}):null]});return(0,b.jsx)(j.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(h.Dialog,{children:[(0,b.jsxs)(j.Tooltip,{children:[(0,b.jsxs)("div",{className:"group relative",children:[(0,b.jsx)(j.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(h.DialogTrigger,{asChild:!0,children:d})}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]}),A?(0,b.jsx)(j.TooltipContent,{side:"top",sideOffset:10,className:"z-[80] max-w-[220px]",children:(0,b.jsx)("p",{className:"line-clamp-5 text-xs leading-snug whitespace-pre-wrap",children:A})}):null]}),(0,b.jsxs)(h.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,b.jsx)(k.VisuallyHidden.Root,{children:(0,b.jsxs)(h.DialogTitle,{children:["Preview: ",a]})}),(0,b.jsx)("div",{className:"relative bg-black/90",children:(0,b.jsx)("img",{src:t(w,v),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,b.jsxs)("div",{className:"bg-background flex flex-col gap-2 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:r(u)})]}),(0,b.jsx)("a",{href:t(w,v),download:a,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${a}`,children:(0,b.jsx)(e.DownloadIcon,{className:"h-4 w-4"})})]}),B?(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)(i.Textarea,{placeholder:"Add notes about this image…",value:A??"",onChange:a=>B(a.target.value),rows:2,className:"resize-none text-sm","aria-label":"Image notes"}),A?.trim()?(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"Auto-saved"}):null]}):A?(0,b.jsx)("p",{className:"text-muted-foreground text-sm whitespace-pre-wrap",children:A}):null]})]})]})})}return(0,b.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3",children:[(0,b.jsx)("div",{className:(0,g.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",G),children:(0,b.jsx)(F,{className:"h-3 w-3"})}),(0,b.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:r(u)}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]})}a.s(["AttachmentChip",()=>u],730931),a.s([],200307)},976096,a=>{"use strict";let b=(0,a.i(225700).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.s(["default",()=>b])},302807,889868,a=>{"use strict";let b=(0,a.i(225700).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["default",()=>b],889868),a.s(["X",()=>b],302807)},872016,151969,a=>{"use strict";let b=(0,a.i(225700).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",()=>b],151969),a.s(["Check",()=>b],872016)},531378,a=>{"use strict";let b=(0,a.i(225700).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",()=>b],531378)},399517,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},680646,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(559653),e=a.i(406175),f=a.i(307420),g=a.i(658761),h=a.i(51473),i=a.i(759675),j=a.i(5472),k=a.i(575988),l=a.i(280930),m=a.i(914272),n=a.i(666873),o=a.i(590986),p=a.i(417329),q=a.i(516164),r=a.i(445291),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",()=>A,"Arrow",()=>P,"Close",()=>O,"Content",()=>I,"Popover",()=>y,"PopoverAnchor",()=>A,"PopoverArrow",()=>P,"PopoverClose",()=>O,"PopoverContent",()=>I,"PopoverPortal",()=>G,"PopoverTrigger",()=>C,"Portal",()=>G,"Root",()=>y,"Trigger",()=>C,"createPopoverScope",()=>u],961452);var R=a.i(961452),R=R,S=a.i(385536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",()=>T,"PopoverContent",()=>V,"PopoverTrigger",()=>U],680646)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_66d02826._.js.map
|