@shipit-ai/cli 1.165.0 → 1.166.1
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/LICENSE +2 -1
- package/README.md +6 -0
- package/apis/json-schema/AgentSession.yaml +1 -1
- package/apis/json-schema/AgentType.yaml +2 -0
- package/dist/eslint.config.mjs +2 -0
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.js +1 -1
- package/dist/packages/core/src/application/use-cases/agents/delete-agent-run.use-case.js +1 -1
- package/dist/packages/core/src/domain/generated/output.d.ts +3 -1
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +2 -0
- package/dist/packages/core/src/infrastructure/di/modules/agents.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/agents.module.js +6 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +33 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts +34 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.js +149 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.js +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.js +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.d.ts +37 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.js +150 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -1
- package/dist/packages/core/src/infrastructure/services/git/merge-strategy.service.js +1 -1
- package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.js +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification-bus.js +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +3 -3
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/copilot-cli.json +31 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/rovo-dev.json +31 -0
- package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/check-agent-auth.js +35 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/check-agent-tool.js +4 -0
- package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/get-all-agent-models.js +8 -2
- package/dist/src/presentation/web/components/assistant-ui/thread.js +2 -2
- package/dist/src/presentation/web/components/common/action-button/action-button.js +2 -2
- package/dist/src/presentation/web/components/common/action-button/action-button.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/action-button/action-button.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.js +3 -2
- package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.stories.js +1 -1
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.js +2 -2
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.js +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +2 -2
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.js +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.js +4 -4
- package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +3 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +3 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +5 -5
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.js +2 -2
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.stories.js +1 -1
- package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.js +2 -2
- package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +2 -2
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.js +1 -1
- package/dist/src/presentation/web/components/common/drawer-revision-input/drawer-revision-input.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/drawer-revision-input/drawer-revision-input.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/drawer-revision-input/drawer-revision-input.stories.js +1 -1
- package/dist/src/presentation/web/components/common/editor-type-icons.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/editor-type-icons.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/elapsed-time/elapsed-time.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/elapsed-time/elapsed-time.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/empty-state/empty-state.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/empty-state/empty-state.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/parent-feature-combobox.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/parent-feature-combobox.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/prompt-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/prompt-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/prompt-section.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.js +2 -2
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +7 -7
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.js +2 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/event-log-viewer.js +4 -6
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/event-log-viewer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/event-log-viewer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +2 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +2 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +4 -4
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.js +4 -4
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +3 -3
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +5 -11
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-config.js +2 -2
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js +2 -2
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.js +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.js +3 -3
- package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.js +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.js +2 -2
- package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.js +1 -1
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/loading-skeleton/loading-skeleton.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/loading-skeleton/loading-skeleton.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/diff-view.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/merge-review/diff-view.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.js +3 -5
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +1 -1
- package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.js +2 -2
- package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.js +1 -1
- package/dist/src/presentation/web/components/common/page-header/page-header.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/page-header/page-header.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -1
- package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.js +2 -2
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.js +1 -1
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.js +2 -2
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.stories.js +1 -1
- package/dist/src/presentation/web/components/common/repo-group/repo-group.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/repo-group/repo-group.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +4 -7
- package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/sidebar-section-header/sidebar-section-header.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sound-toggle/sound-toggle.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/sound-toggle/sound-toggle.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.js +4 -4
- package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +1 -1
- package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.js +7 -7
- package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.stories.js +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatInput.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatInput.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageList.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/features/chat/ChatMessageList.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/features/chat/ChatSheet.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +9 -13
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -2
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +3 -3
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.js +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.stories.js +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +1 -4
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +1 -1
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/ModelPicker/ModelPicker.stories.js +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/ci-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/ci-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +1 -1
- package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/timeout-slider.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/timeout-slider.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/category-filter.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/skills/category-filter.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-card.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-card.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-card.stories.js +3 -3
- package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.js +3 -3
- package/dist/src/presentation/web/components/features/skills/skill-list.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-list.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-list.stories.js +4 -4
- package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +8 -8
- package/dist/src/presentation/web/components/features/tools/tool-card.js +3 -5
- package/dist/src/presentation/web/components/features/tools/tool-card.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-card.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +3 -7
- package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tools-page-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/tools/tools-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/version/version-page-client.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/version/version-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/dashboard-layout/dashboard-layout.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/layouts/dashboard-layout/dashboard-layout.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/header/header.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/layouts/header/header.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/sidebar/sidebar.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/layouts/sidebar/sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/accordion.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/alert.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert.stories.js +2 -2
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/badge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/button.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/button.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/card.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/card.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group-item.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group-item.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/checkbox.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/checkbox.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/comet-spinner.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/comet-spinner.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/command.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/ui/command.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/dialog.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dropdown-menu.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/dropdown-menu.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/github-icon.d.ts +13 -0
- package/dist/src/presentation/web/components/ui/github-icon.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/github-icon.js +15 -0
- package/dist/src/presentation/web/components/ui/github-icon.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/github-icon.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/github-icon.stories.js +22 -0
- package/dist/src/presentation/web/components/ui/input.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/input.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/label.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/label.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/popover.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/scroll-area.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/scroll-area.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/select.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/select.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/separator.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/separator.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/sheet.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/sheet.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/sidebar.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/skeleton.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/skeleton.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/slider.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/slider.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/sonner.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/spinner.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/spinner.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/switch.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/switch.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/tabs.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/textarea.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/textarea.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/tooltip.stories.d.ts +2 -2
- package/dist/src/presentation/web/components/ui/tooltip.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.stories.d.ts +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-sound-action.stories.d.ts +1 -1
- package/dist/src/presentation/web/hooks/use-sound-action.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-sound.stories.d.ts +1 -1
- package/dist/src/presentation/web/hooks/use-sound.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/session-scanner.js +2 -2
- package/dist/src/presentation/web/lib/skills.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +24 -25
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +5 -5
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/_global-error.html +1 -1
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- 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/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- package/web/.next/server/app/api/sessions/route.js +2 -2
- package/web/.next/server/app/settings/page/build-manifest.json +2 -2
- package/web/.next/server/app/settings/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/skills/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/tools/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- 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/build-manifest.json +2 -2
- package/web/.next/server/app/version/page/react-loadable-manifest.json +3 -3
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- 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/chunks/0n.o_server_app_api_interactive_chat_[featureId]_stop_route_actions_09da~zt.js +1 -1
- package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js +1 -1
- package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__07suer1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0_.w-eb._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0_.w-eb._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js +1 -1
- package/web/.next/server/chunks/ssr/{0lyk_lucide-react_dist_esm_icons_0shxsmr._.js → 08qz_lucide-react_dist_esm_icons_0_gqlce._.js} +2 -2
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0_gqlce._.js.map +1 -0
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js +3 -0
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +3 -3
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
- package/web/.next/server/chunks/ssr/11es_next_dist_0e36~wi._.js +2 -2
- package/web/.next/server/chunks/ssr/11es_next_dist_client_components_058~c_t._.js +1 -1
- package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0l-25e2.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uxn6-j._.js → [root-of-the-server]__045sv4b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uxn6-j._.js.map → [root-of-the-server]__045sv4b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0brje6_._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0np51e2._.js → [root-of-the-server]__0d_0_fp._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0np51e2._.js.map → [root-of-the-server]__0d_0_fp._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0~h382a._.js → [root-of-the-server]__0l4d7e.._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0~h382a._.js.map → [root-of-the-server]__0l4d7e.._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0_ag.8y._.js → [root-of-the-server]__0lslgap._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__01~y8wi._.js → [root-of-the-server]__0r32z03._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__01~y8wi._.js.map → [root-of-the-server]__0r32z03._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__122xqm6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0d-pkk0._.js → _0-09vq7._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_00k65h-._.js +3 -0
- package/web/.next/server/chunks/ssr/_00k65h-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_01mq~sm._.js +2 -2
- package/web/.next/server/chunks/ssr/_01mq~sm._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js +3 -0
- package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_04s_q5r._.js +1 -1
- package/web/.next/server/chunks/ssr/_04s_q5r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0xtds88._.js → _08i-c2n._.js} +2 -2
- package/web/.next/server/chunks/ssr/_08i-c2n._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0a-ddx-._.js +3 -0
- package/web/.next/server/chunks/ssr/_0a-ddx-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0jk5q_z._.js → _0e4npv~._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0e4npv~._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0gdghcr._.js +3 -0
- package/web/.next/server/chunks/ssr/_0gdghcr._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0hwjfpu._.js +3 -0
- package/web/.next/server/chunks/ssr/_0hwjfpu._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0hw~zvl._.js +3 -0
- package/web/.next/server/chunks/ssr/_0hw~zvl._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0jpbsh_._.js +1 -1
- package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_13bl-l1._.js → _0nvrqsj._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0nvrqsj._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0phryzt._.js +3 -0
- package/web/.next/server/chunks/ssr/_0phryzt._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js +3 -0
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0j9vx-1._.js → _0y8u4.e._.js} +3 -3
- package/web/.next/server/chunks/ssr/_0y8u4.e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js +3 -0
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0rvaoj4._.js → _109n-y4._.js} +2 -2
- package/web/.next/server/chunks/ssr/_109n-y4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_09g41d0._.js → _12un22l._.js} +3 -3
- package/web/.next/server/chunks/ssr/_12un22l._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_0l8_ov3._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_0l8_ov3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_05-w-~v._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_05-w-~v._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_0b.-59k._.js +1 -1
- package/web/.next/server/middleware-build-manifest.js +5 -5
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +49 -49
- package/web/.next/static/chunks/0-lu0b1ewsb0_.js +1 -0
- package/web/.next/static/chunks/00dg6gti40.3i.js +1 -0
- package/web/.next/static/chunks/01~dudieyb7wl.js +5 -0
- package/web/.next/static/chunks/{0riti1bs-erm~.js → 02kpdawdtqcxm.js} +1 -1
- package/web/.next/static/chunks/{0~er~22zwvx0i.js → 09_oo_kc.j.df.js} +1 -1
- package/web/.next/static/chunks/09dqgshddfxff.js +1 -0
- package/web/.next/static/chunks/0_--5mgqukm__.js +1 -0
- package/web/.next/static/chunks/0_c5~n__lz4ks.js +1 -0
- package/web/.next/static/chunks/0awttldb-.7m..js +1 -0
- package/web/.next/static/chunks/0d-2jp.f._l2e.js +1 -0
- package/web/.next/static/chunks/0fg~vc93spa9c.js +1 -0
- package/web/.next/static/chunks/{0t_48qc0x7bhs.js → 0ist7260j__0m.js} +3 -3
- package/web/.next/static/chunks/0j_0i2qsrwh-c.js +1 -0
- package/web/.next/static/chunks/{07yqyvabetyrh.js → 0l.kymg3jmf7n.js} +2 -2
- package/web/.next/static/chunks/0m5~9kij3s~81.js +1 -0
- package/web/.next/static/chunks/0njrgvmyafrod.js +1 -0
- package/web/.next/static/chunks/0nk2r-18.7g6r.js +1 -0
- package/web/.next/static/chunks/0ntgq3d_.m5el.js +5 -0
- package/web/.next/static/chunks/{0wmckrtphfa12.js → 0odlgm-ixqorl.js} +1 -1
- package/web/.next/static/chunks/0q~uf2s33.48w.js +1 -0
- package/web/.next/static/chunks/0t.pzrmeoq6th.js +7 -0
- package/web/.next/static/chunks/0t8zwgaz.d1s5.js +1 -0
- package/web/.next/static/chunks/11bi612fz8agh.js +1 -0
- package/web/.next/static/chunks/{071_2_.sfp-im.js → 14g1l3~6i5251.js} +2 -2
- package/web/.next/static/chunks/164dnpi666fv_.js +5 -0
- package/web/.next/static/chunks/{turbopack-0ve8f54_veg.u.js → turbopack-0wsav6to5abtk.js} +1 -1
- package/web/package.json +5 -5
- package/web/.next/server/chunks/ssr/0lyk_lucide-react_dist_esm_icons_06zrfq4._.js +0 -3
- package/web/.next/server/chunks/ssr/0lyk_lucide-react_dist_esm_icons_06zrfq4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/0lyk_lucide-react_dist_esm_icons_0shxsmr._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0_ag.8y._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0.gy.n8._.js +0 -3
- package/web/.next/server/chunks/ssr/_0.gy.n8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0.k7wl.._.js +0 -3
- package/web/.next/server/chunks/ssr/_0.k7wl.._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_09g41d0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0aa~oer._.js +0 -3
- package/web/.next/server/chunks/ssr/_0aa~oer._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0d-pkk0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0ez.1o4._.js +0 -3
- package/web/.next/server/chunks/ssr/_0ez.1o4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0j9vx-1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0jk5q_z._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0n.xy38._.js +0 -3
- package/web/.next/server/chunks/ssr/_0n.xy38._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0rvaoj4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0v.yfmg._.js +0 -3
- package/web/.next/server/chunks/ssr/_0v.yfmg._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0vl.03w._.js +0 -3
- package/web/.next/server/chunks/ssr/_0vl.03w._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0xtds88._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_11kuznh._.js +0 -3
- package/web/.next/server/chunks/ssr/_11kuznh._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_13bl-l1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_13euo-f._.js +0 -3
- package/web/.next/server/chunks/ssr/_13euo-f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_0xyo1be._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_0xyo1be._.js.map +0 -1
- package/web/.next/static/chunks/00racug7sobut.js +0 -1
- package/web/.next/static/chunks/06sdx5zm71_u5.js +0 -1
- package/web/.next/static/chunks/08iq.j3rbmhbm.js +0 -1
- package/web/.next/static/chunks/08iuksm8rvb09.js +0 -1
- package/web/.next/static/chunks/08se-_opmk~.7.js +0 -1
- package/web/.next/static/chunks/09b2usag59_bi.js +0 -5
- package/web/.next/static/chunks/0icjwdqytqa_8.js +0 -5
- package/web/.next/static/chunks/0qjoc4x5q-aeg.js +0 -1
- package/web/.next/static/chunks/0rhzqh.-6e6k7.js +0 -1
- package/web/.next/static/chunks/0s-e-ekdbgoqa.js +0 -1
- package/web/.next/static/chunks/0u5.s.lv2bae5.js +0 -1
- package/web/.next/static/chunks/0vgbvqu82ac1x.js +0 -1
- package/web/.next/static/chunks/0w~84g7r9307~.js +0 -1
- package/web/.next/static/chunks/0y1nwnouroh6k.js +0 -1
- package/web/.next/static/chunks/0zz.xgsd83.3n.js +0 -1
- package/web/.next/static/chunks/0~wymq55b2bn3.js +0 -1
- package/web/.next/static/chunks/10wo3waalauct.js +0 -5
- package/web/.next/static/chunks/15lcx-697j_3z.js +0 -7
- package/web/.next/static/chunks/176x256xw_viv.js +0 -1
- /package/web/.next/static/{xP_-L4TLYvd3i_sEmljLs → ZpPnD_b687G9xVr2nzrds}/_buildManifest.js +0 -0
- /package/web/.next/static/{xP_-L4TLYvd3i_sEmljLs → ZpPnD_b687G9xVr2nzrds}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{xP_-L4TLYvd3i_sEmljLs → ZpPnD_b687G9xVr2nzrds}/_ssgManifest.js +0 -0
|
@@ -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/chevrons-up-down.ts","../../../../../../../src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.tsx","../../../../../../../src/presentation/web/app/actions/data%3Af1349c%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A790313%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.tsx","../../../../../../../src/presentation/web/components/ui/command.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n];\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevrons-up-down\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 ChevronsUpDown = createLucideIcon('chevrons-up-down', __iconNode);\n\nexport default ChevronsUpDown;\n","'use client';\n\nimport { useState, useCallback, useEffect } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { toast } from 'sonner';\nimport { adoptBranch } from '@/app/actions/adopt-branch';\nimport { listBranches } from '@/app/actions/list-branches';\nimport { AdoptBranchDrawer } from './adopt-branch-drawer';\nimport type { RepositoryOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\n\nexport interface AdoptDrawerClientProps {\n repositoryPath: string;\n repositories: RepositoryOption[];\n}\n\nexport function AdoptDrawerClient({ repositoryPath, repositories }: AdoptDrawerClientProps) {\n const router = useRouter();\n const pathname = usePathname();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [error, setError] = useState<string>();\n const [branches, setBranches] = useState<string[]>([]);\n const [branchesLoading, setBranchesLoading] = useState(false);\n const [selectedRepoPath, setSelectedRepoPath] = useState(repositoryPath);\n\n const isOnAdoptRoute = pathname.startsWith('/adopt');\n const isOpen = !isSubmitting && isOnAdoptRoute;\n\n // Reset isSubmitting once the route has actually changed away from /adopt\n useEffect(() => {\n if (!isOnAdoptRoute && isSubmitting) {\n setIsSubmitting(false);\n }\n }, [isOnAdoptRoute, isSubmitting]);\n\n // Clear error when drawer reopens and reset selected repo to default\n useEffect(() => {\n if (isOnAdoptRoute) {\n setError(undefined);\n setSelectedRepoPath(repositoryPath);\n }\n }, [isOnAdoptRoute, repositoryPath]);\n\n // Fetch branches when drawer opens AND a repository is selected\n useEffect(() => {\n if (isOnAdoptRoute && selectedRepoPath) {\n setBranchesLoading(true);\n setBranches([]);\n listBranches(selectedRepoPath)\n .then(setBranches)\n .catch(() => setBranches([]))\n .finally(() => setBranchesLoading(false));\n } else {\n setBranches([]);\n }\n }, [isOnAdoptRoute, selectedRepoPath]);\n\n const onClose = useCallback(() => {\n router.push('/');\n }, [router]);\n\n const handleRepositoryChange = useCallback((path: string) => {\n setSelectedRepoPath(path);\n }, []);\n\n const onSubmit = useCallback(\n (branchName: string, repoPath: string) => {\n setError(undefined);\n setIsSubmitting(true);\n router.push('/');\n\n adoptBranch({ branchName, repositoryPath: repoPath })\n .then((result) => {\n if (result.error) {\n toast.error(result.error);\n return;\n }\n window.dispatchEvent(\n new CustomEvent('shipit-ai:feature-created', {\n detail: {\n featureId: result.feature!.id,\n name: result.feature!.name,\n description: result.feature!.description,\n repositoryPath: result.feature!.repositoryPath,\n },\n })\n );\n toast.success(`Branch adopted as \"${result.feature!.name}\"`);\n })\n .catch(() => {\n toast.error('Failed to adopt branch');\n setIsSubmitting(false);\n });\n },\n [router]\n );\n\n return (\n <AdoptBranchDrawer\n open={isOpen}\n onClose={onClose}\n onSubmit={onSubmit}\n isSubmitting={isSubmitting}\n error={error}\n repositories={repositories}\n selectedRepositoryPath={selectedRepoPath}\n onRepositoryChange={handleRepositoryChange}\n branches={branches}\n branchesLoading={branchesLoading}\n />\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40226778703f2bb283443e91ef01baca29965fea8a\":{\"name\":\"adoptBranch\"}},\"src/presentation/web/app/actions/adopt-branch.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40226778703f2bb283443e91ef01baca29965fea8a\",callServer,void 0,findSourceMapURL,\"adoptBranch\");export{$$RSC_SERVER_ACTION_0 as adoptBranch};","/* __next_internal_action_entry_do_not_use__ [{\"405489c292b9b347e269d4e5b79005e4dbebb73480\":{\"name\":\"listBranches\"}},\"src/presentation/web/app/actions/list-branches.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"405489c292b9b347e269d4e5b79005e4dbebb73480\",callServer,void 0,findSourceMapURL,\"listBranches\");export{$$RSC_SERVER_ACTION_0 as listBranches};","'use client';\n\nimport { useState, useCallback, useEffect, useRef } from 'react';\nimport { Check, CheckIcon, ChevronsUpDown, GitBranch, Loader2 } from 'lucide-react';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\nimport type { RepositoryOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\n\nexport interface AdoptBranchDrawerProps {\n open: boolean;\n onClose: () => void;\n onSubmit: (branchName: string, repositoryPath: string) => void;\n isSubmitting?: boolean;\n error?: string;\n /** Available repositories for the repository selector */\n repositories?: RepositoryOption[];\n /** Currently selected repository path */\n selectedRepositoryPath?: string;\n /** Callback when user selects a different repository */\n onRepositoryChange?: (repositoryPath: string) => void;\n /** Available branch names for the combobox dropdown */\n branches?: string[];\n /** Whether branches are still loading */\n branchesLoading?: boolean;\n}\n\nexport function AdoptBranchDrawer({\n open,\n onClose,\n onSubmit,\n isSubmitting = false,\n error,\n repositories = [],\n selectedRepositoryPath,\n onRepositoryChange,\n branches = [],\n branchesLoading = false,\n}: AdoptBranchDrawerProps) {\n const [branchName, setBranchName] = useState('');\n const [comboboxOpen, setComboboxOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const [repoOpen, setRepoOpen] = useState(false);\n const [repoQuery, setRepoQuery] = useState('');\n const repoInputRef = useRef<HTMLInputElement>(null);\n\n const selectedRepo = repositories.find((r) => r.path === selectedRepositoryPath);\n const hasRepo = !!selectedRepositoryPath;\n\n // Reset state when drawer closes\n useEffect(() => {\n if (!open) {\n setBranchName('');\n setInputValue('');\n setComboboxOpen(false);\n setRepoOpen(false);\n setRepoQuery('');\n }\n }, [open]);\n\n // Reset branch selection when repository changes\n useEffect(() => {\n setBranchName('');\n setInputValue('');\n }, [selectedRepositoryPath]);\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n const trimmed = branchName.trim();\n if (!trimmed || !selectedRepositoryPath || isSubmitting) return;\n onSubmit(trimmed, selectedRepositoryPath);\n },\n [branchName, selectedRepositoryPath, isSubmitting, onSubmit]\n );\n\n const handleClose = useCallback(() => {\n setBranchName('');\n setInputValue('');\n onClose();\n }, [onClose]);\n\n const handleSelect = useCallback((branch: string) => {\n setBranchName(branch);\n setInputValue(branch);\n setComboboxOpen(false);\n }, []);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n if (!comboboxOpen) setComboboxOpen(true);\n },\n [comboboxOpen]\n );\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n const trimmed = inputValue.trim();\n if (trimmed) {\n setBranchName(trimmed);\n setComboboxOpen(false);\n }\n }\n if (e.key === 'Escape') {\n setComboboxOpen(false);\n setInputValue(branchName);\n }\n },\n [inputValue, branchName]\n );\n\n const handleRepoSelect = useCallback(\n (path: string) => {\n onRepositoryChange?.(path);\n setRepoOpen(false);\n setRepoQuery('');\n },\n [onRepositoryChange]\n );\n\n const filteredBranches = branches.filter((b) =>\n b.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n const filteredRepos = repoQuery.trim()\n ? repositories.filter(\n (r) =>\n r.name.toLowerCase().includes(repoQuery.toLowerCase()) ||\n r.path.toLowerCase().includes(repoQuery.toLowerCase())\n )\n : repositories;\n\n useEffect(() => {\n if (repoOpen) {\n setTimeout(() => repoInputRef.current?.focus(), 0);\n } else {\n setRepoQuery('');\n }\n }, [repoOpen]);\n\n const isDisabled = !branchName.trim() || !selectedRepositoryPath || isSubmitting;\n\n const header = (\n <div>\n <DrawerTitle className=\"flex items-center gap-2\">\n <GitBranch className=\"h-4 w-4\" />\n Adopt Branch\n </DrawerTitle>\n <DrawerDescription className=\"text-muted-foreground text-sm\">\n Import an existing git branch into ShipIT's feature tracking\n </DrawerDescription>\n </div>\n );\n\n return (\n <BaseDrawer\n open={open}\n onClose={handleClose}\n size=\"sm\"\n modal={false}\n header={header}\n data-testid=\"adopt-branch-drawer\"\n >\n <form onSubmit={handleSubmit} className=\"flex flex-1 flex-col\">\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"flex flex-col gap-4\">\n {/* Repository selector */}\n <div className=\"flex flex-col gap-2\">\n <Label>Repository</Label>\n <Popover open={repoOpen} onOpenChange={setRepoOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={repoOpen}\n aria-label=\"Repository\"\n disabled={isSubmitting}\n data-testid=\"adopt-repo-combobox\"\n className={cn(\n 'border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n !selectedRepo && 'text-muted-foreground'\n )}\n >\n <span className=\"truncate\">\n {selectedRepo ? selectedRepo.name : 'Select repository...'}\n </span>\n <ChevronsUpDown className=\"ms-2 h-4 w-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-80 p-0\"\n align=\"start\"\n data-testid=\"adopt-repo-combobox-content\"\n >\n <div className=\"flex flex-col\">\n <div className=\"border-b p-2\">\n <Input\n ref={repoInputRef}\n placeholder=\"Search repositories...\"\n value={repoQuery}\n onChange={(e) => setRepoQuery(e.target.value)}\n className=\"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0\"\n data-testid=\"adopt-repo-search\"\n />\n </div>\n <div\n className=\"max-h-48 overflow-y-auto py-1\"\n role=\"listbox\"\n aria-label=\"Repositories\"\n >\n {filteredRepos.length === 0 ? (\n <p className=\"text-muted-foreground px-3 py-2 text-sm\">\n No repositories found.\n </p>\n ) : (\n filteredRepos.map((r) => (\n <button\n key={r.id}\n type=\"button\"\n role=\"option\"\n aria-selected={selectedRepositoryPath === r.path}\n onClick={() => handleRepoSelect(r.path)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n selectedRepositoryPath === r.path && 'bg-accent/50'\n )}\n data-testid={`adopt-repo-option-${r.id}`}\n >\n <CheckIcon\n className={cn(\n 'h-4 w-4 shrink-0',\n selectedRepositoryPath !== r.path && 'invisible'\n )}\n />\n <span className=\"flex flex-col items-start truncate\">\n <span className=\"truncate\">{r.name}</span>\n <span className=\"text-muted-foreground truncate text-xs\">\n {r.path}\n </span>\n </span>\n </button>\n ))\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n <p className=\"text-muted-foreground text-xs\">\n Select the repository that contains the branch you want to adopt.\n </p>\n </div>\n\n {/* Branch selector */}\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"branch-name\">Branch name</Label>\n <Popover open={comboboxOpen} onOpenChange={setComboboxOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={comboboxOpen}\n aria-invalid={!!error}\n aria-describedby={error ? 'adopt-branch-error-msg' : undefined}\n disabled={isSubmitting || !hasRepo}\n className=\"w-full justify-between font-normal\"\n data-testid=\"adopt-branch-input\"\n >\n <span className=\"truncate\">\n {!hasRepo\n ? 'Select a repository first...'\n : branchesLoading\n ? 'Loading branches...'\n : branchName || 'Select a branch...'}\n </span>\n <ChevronsUpDown className=\"ms-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n align=\"start\"\n >\n <Command>\n <CommandInput\n ref={inputRef}\n placeholder=\"Search branches...\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n data-testid=\"adopt-branch-search\"\n />\n <CommandList>\n {!branchesLoading && filteredBranches.length === 0 && (\n <CommandEmpty>\n {branches.length === 0\n ? 'No branches found.'\n : inputValue\n ? 'No match — press Enter to use this value.'\n : 'No branches available.'}\n </CommandEmpty>\n )}\n {branchesLoading ? (\n <CommandEmpty>\n <Loader2 className=\"mx-auto h-4 w-4 animate-spin\" />\n </CommandEmpty>\n ) : null}\n {filteredBranches.length > 0 && (\n <CommandGroup>\n {filteredBranches.map((branch) => (\n <CommandItem\n key={branch}\n selected={branch === branchName}\n onClick={() => handleSelect(branch)}\n >\n <Check\n className={cn(\n 'me-2 h-4 w-4',\n branch === branchName ? 'opacity-100' : 'opacity-0'\n )}\n />\n <GitBranch className=\"me-2 h-3 w-3 opacity-50\" />\n {branch}\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n <p className=\"text-muted-foreground text-xs\">\n {hasRepo\n ? 'Select a branch from the dropdown or type to search. Local and remote branches are shown.'\n : 'Please select a repository above to see available branches.'}\n </p>\n </div>\n\n {error ? (\n <p\n id=\"adopt-branch-error-msg\"\n className=\"text-destructive text-sm\"\n role=\"alert\"\n data-testid=\"adopt-branch-error\"\n >\n {error}\n </p>\n ) : null}\n </div>\n </div>\n\n <div className=\"border-t p-4\">\n <div className=\"flex gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleClose}\n disabled={isSubmitting}\n className=\"flex-1\"\n >\n Cancel\n </Button>\n <Button\n type=\"submit\"\n disabled={isDisabled}\n className=\"flex-1\"\n data-testid=\"adopt-branch-submit\"\n >\n {isSubmitting ? (\n <>\n <Loader2 className=\"me-2 h-4 w-4 animate-spin\" />\n Adopting...\n </>\n ) : (\n 'Adopt Branch'\n )}\n </Button>\n </div>\n </div>\n </form>\n </BaseDrawer>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/**\n * Command — minimal combobox primitives for model/item selection.\n *\n * Intentionally avoids the `cmdk` dependency and builds on native React +\n * Tailwind instead. Filtering logic lives in the consumer component.\n */\n\nconst Command = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n {...props}\n />\n )\n);\nCommand.displayName = 'Command';\n\nconst CommandInput = React.forwardRef<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <input\n ref={ref}\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = 'CommandInput';\n\nconst CommandList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('max-h-[300px] overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n )\n);\nCommandList.displayName = 'CommandList';\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-muted-foreground py-6 text-center text-sm', className)}\n {...props}\n />\n )\n);\nCommandEmpty.displayName = 'CommandEmpty';\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-foreground overflow-hidden p-1', className)} {...props} />\n )\n);\nCommandGroup.displayName = 'CommandGroup';\n\ninterface CommandItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n selected?: boolean;\n}\n\nconst CommandItem = React.forwardRef<HTMLButtonElement, CommandItemProps>(\n ({ className, selected, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n data-selected={selected}\n className={cn(\n 'relative flex w-full cursor-default items-center rounded-sm px-2 py-1.5 text-sm transition-colors outline-none select-none',\n 'hover:bg-accent hover:text-accent-foreground',\n 'data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n className\n )}\n {...props}\n />\n )\n);\nCommandItem.displayName = 'CommandItem';\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('bg-border -mx-1 h-px', className)} {...props} />\n )\n);\nCommandSeparator.displayName = 'CommandSeparator';\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n};\n"],"names":["$$RSC_SERVER_ACTION_0"],"mappings":"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","ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-previous%401.1.1_%40types%2Breact%4019.2.14_react%4019.2.4/node_modules/%40radix-ui/react-use-previous/src/use-previous.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/zap.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/clock.ts","../../../../../../../src/presentation/web/components/ui/alert-dialog.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40type_d492cfbed6c88f7a3980b921a627d48d/node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../../../../src/presentation/web/hooks/drawer-close-guard.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-check.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-x.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/ban.ts","../../../../../../../src/presentation/web/components/features/chat/ChatDotIndicator.tsx","../../../../../../../src/presentation/web/hooks/turn-statuses-provider.tsx","../../../../../../../src/presentation/web/hooks/use-turn-statuses.ts","../../../../../../../src/presentation/web/hooks/agent-events-provider.tsx","../../../../../../../src/presentation/web/hooks/use-agent-events.ts"],"sourcesContent":["import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z',\n key: '1xq2db',\n },\n ],\n];\n\n/**\n * @component @name Zap\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/zap\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 Zap = createLucideIcon('zap', __iconNode);\n\nexport default Zap;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\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 Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","'use client';\n\nimport * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn('fixed inset-0 z-50 bg-black/50', className)}\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 );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useRef,\n type ReactNode,\n} from 'react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\n\n/* ---------------------------------------------------------------------------\n * Context\n * ------------------------------------------------------------------------- */\n\ninterface DrawerCloseGuardContextValue {\n /** Register a drawer's dirty state and reset callback. Pass `null` to unregister. */\n setGuard: (guard: { isDirty: boolean; onReset: () => void } | null) => void;\n /** Navigate only if no dirty drawer is registered; otherwise show confirmation. */\n guardedNavigate: (navigate: () => void) => void;\n /** Returns true when any drawer has unsaved changes. Safe to call from effects/intervals. */\n getIsDirty: () => boolean;\n}\n\nconst DrawerCloseGuardContext = createContext<DrawerCloseGuardContextValue | null>(null);\n\n/* ---------------------------------------------------------------------------\n * Provider — renders the shared confirmation dialog\n * ------------------------------------------------------------------------- */\n\nexport function DrawerCloseGuardProvider({ children }: { children: ReactNode }) {\n // Use a ref so guard updates (on every keystroke) don't re-render the provider tree.\n const guardRef = useRef<{ isDirty: boolean; onReset: () => void } | null>(null);\n const pendingNavigateRef = useRef<(() => void) | null>(null);\n const [showConfirmation, setShowConfirmation] = useState(false);\n\n const setGuard = useCallback((guard: { isDirty: boolean; onReset: () => void } | null) => {\n guardRef.current = guard;\n }, []);\n\n const guardedNavigate = useCallback((navigate: () => void) => {\n if (guardRef.current?.isDirty) {\n pendingNavigateRef.current = navigate;\n setShowConfirmation(true);\n return;\n }\n navigate();\n }, []);\n\n const confirmDiscard = useCallback(() => {\n setShowConfirmation(false);\n guardRef.current?.onReset();\n guardRef.current = null;\n pendingNavigateRef.current?.();\n pendingNavigateRef.current = null;\n }, []);\n\n const cancelDiscard = useCallback(() => {\n setShowConfirmation(false);\n pendingNavigateRef.current = null;\n }, []);\n\n const getIsDirty = useCallback(() => guardRef.current?.isDirty ?? false, []);\n\n return (\n <DrawerCloseGuardContext value={{ setGuard, guardedNavigate, getIsDirty }}>\n {children}\n\n <AlertDialog open={showConfirmation}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Discard unsaved changes?</AlertDialogTitle>\n <AlertDialogDescription>\n You have unsaved changes. Are you sure you want to discard them?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogAction variant=\"destructive\" onClick={confirmDiscard}>\n Discard\n </AlertDialogAction>\n <AlertDialogCancel onClick={cancelDiscard}>Keep editing</AlertDialogCancel>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </DrawerCloseGuardContext>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * Hook — access the guard from any child component\n * ------------------------------------------------------------------------- */\n\nexport function useDrawerCloseGuard() {\n const ctx = useContext(DrawerCloseGuardContext);\n if (!ctx) throw new Error('useDrawerCloseGuard must be used within DrawerCloseGuardProvider');\n return ctx;\n}\n\n/* ---------------------------------------------------------------------------\n * Convenience hook for drawer components\n *\n * Registers dirty state + reset callback with the guard, and returns an\n * `attemptClose` function that goes through the guard before closing.\n * ------------------------------------------------------------------------- */\n\nexport function useGuardedDrawerClose({\n open,\n isDirty,\n onClose,\n onReset,\n}: {\n open: boolean;\n isDirty: boolean;\n onClose: () => void;\n onReset: () => void;\n}) {\n const { setGuard, guardedNavigate } = useDrawerCloseGuard();\n\n // Keep the guard in sync with dirty state. Because setGuard writes to a ref,\n // this doesn't trigger re-renders in the provider.\n useEffect(() => {\n if (open) {\n setGuard({ isDirty, onReset });\n } else {\n setGuard(null);\n }\n return () => setGuard(null);\n }, [open, isDirty, onReset, setGuard]);\n\n const attemptClose = useCallback(() => {\n guardedNavigate(() => {\n onReset();\n onClose();\n });\n }, [guardedNavigate, onClose, onReset]);\n\n return { attemptClose };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-check\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 CircleCheck = createLucideIcon('circle-check', __iconNode);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n];\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-x\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 CircleX = createLucideIcon('circle-x', __iconNode);\n\nexport default CircleX;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M4.929 4.929 19.07 19.071', key: '196cmz' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Ban\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/ban\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 Ban = createLucideIcon('ban', __iconNode);\n\nexport default Ban;\n","'use client';\n\nimport type { TurnStatus } from '@/hooks/use-turn-statuses';\n\ninterface ChatDotIndicatorProps {\n status: TurnStatus;\n className?: string;\n}\n\n/**\n * Dot indicator for chat buttons showing agent activity state:\n * - idle: no dot (hidden)\n * - processing: pulsing blue dot\n * - unread: static green dot\n */\nexport function ChatDotIndicator({ status, className = '' }: ChatDotIndicatorProps) {\n if (status === 'idle') return null;\n\n return (\n <span\n className={`absolute -top-0.5 -right-0.5 block rounded-full ${\n status === 'processing' ? 'h-2.5 w-2.5 animate-pulse bg-blue-500' : 'h-2 w-2 bg-green-500'\n } ${className}`}\n />\n );\n}\n","'use client';\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\nimport { useAllTurnStatuses, type TurnStatus } from './use-turn-statuses';\n\ninterface TurnStatusesContextValue {\n /** Get turn status for a scope key (featureId / \"repo-<id>\" / \"global\") */\n getStatus: (scopeId: string) => TurnStatus;\n}\n\nconst TurnStatusesContext = createContext<TurnStatusesContextValue>({\n getStatus: () => 'idle',\n});\n\n/**\n * Polls ALL active turn statuses in a single API call (no IDs needed).\n * Children use `useTurnStatus(scopeId)` to read individual statuses.\n */\nexport function TurnStatusesProvider({ children }: { children: ReactNode }) {\n const statuses = useAllTurnStatuses();\n\n const value = useMemo<TurnStatusesContextValue>(\n () => ({\n getStatus: (scopeId: string) => (statuses[scopeId] as TurnStatus) ?? 'idle',\n }),\n [statuses]\n );\n\n return <TurnStatusesContext.Provider value={value}>{children}</TurnStatusesContext.Provider>;\n}\n\n/**\n * Get the turn status for a specific scope ID.\n * Must be used within a TurnStatusesProvider.\n */\nexport function useTurnStatus(scopeId: string): TurnStatus {\n const ctx = useContext(TurnStatusesContext);\n return ctx.getStatus(scopeId);\n}\n","'use client';\n\nimport { useQuery } from '@tanstack/react-query';\n\nexport type TurnStatus = 'idle' | 'processing' | 'unread';\n\n/**\n * Polls ALL active turn statuses from the backend.\n * No IDs needed — the backend returns every non-idle session status.\n * Returns a map of scopeId → TurnStatus.\n */\nexport function useAllTurnStatuses(): Record<string, TurnStatus> {\n const { data } = useQuery<Record<string, TurnStatus>>({\n queryKey: ['turn-statuses'],\n queryFn: async () => {\n const res = await fetch('/api/interactive/chat/turn-statuses');\n if (!res.ok) return {};\n return res.json();\n },\n refetchInterval: 5_000,\n });\n\n return data ?? {};\n}\n\n/**\n * Marks a feature's chat as read (clears 'unread' → 'idle').\n */\nexport async function markChatRead(featureId: string): Promise<void> {\n await fetch(`/api/interactive/chat/${featureId}/mark-read`, { method: 'POST' });\n}\n","'use client';\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\nimport {\n useAgentEvents,\n type UseAgentEventsOptions,\n type UseAgentEventsResult,\n} from './use-agent-events';\n\nconst AgentEventsContext = createContext<UseAgentEventsResult | null>(null);\n\ninterface AgentEventsProviderProps extends UseAgentEventsOptions {\n children: ReactNode;\n}\n\n/**\n * Single SSE connection for agent events shared across all consumers.\n * Wrap the app once; use `useAgentEventsContext()` to read.\n */\nexport function AgentEventsProvider({ children, runId }: AgentEventsProviderProps) {\n const { events, lastEvent, connectionStatus } = useAgentEvents({ runId });\n\n const value = useMemo<UseAgentEventsResult>(\n () => ({ events, lastEvent, connectionStatus }),\n [events, lastEvent, connectionStatus]\n );\n\n return <AgentEventsContext.Provider value={value}>{children}</AgentEventsContext.Provider>;\n}\n\nexport function useAgentEventsContext(): UseAgentEventsResult {\n const ctx = useContext(AgentEventsContext);\n if (!ctx) {\n throw new Error('useAgentEventsContext must be used within an <AgentEventsProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport type { NotificationEvent } from '@shipit-ai/core/domain/generated/output';\nimport { createLogger } from '@/lib/logger';\n\nexport type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';\n\nexport interface UseAgentEventsOptions {\n runId?: string;\n}\n\nexport interface UseAgentEventsResult {\n events: NotificationEvent[];\n lastEvent: NotificationEvent | null;\n connectionStatus: ConnectionStatus;\n}\n\nconst log = createLogger('[SSE]');\nconst SW_PATH = '/agent-events-sw.js';\nconst MAX_EVENTS = 500;\nconst PRUNE_KEEP = 250;\n\n/**\n * Hook that receives real-time agent notification events via a Service Worker.\n *\n * The SW maintains a single SSE connection to /api/agent-events and\n * broadcasts events to all open tabs. Falls back to direct EventSource\n * when Service Workers are unavailable.\n */\nexport function useAgentEvents(options?: UseAgentEventsOptions): UseAgentEventsResult {\n const [events, setEvents] = useState<NotificationEvent[]>([]);\n const [lastEvent, setLastEvent] = useState<NotificationEvent | null>(null);\n const [connectionStatus, setConnectionStatus] = useState<ConnectionStatus>('disconnected');\n\n const runId = options?.runId;\n const swRef = useRef<ServiceWorker | null>(null);\n\n const onMessage = useCallback((event: MessageEvent) => {\n const msg = event.data;\n if (!msg || typeof msg !== 'object') return;\n\n if (msg.type === 'notification') {\n const parsed = msg.data as NotificationEvent;\n log.debug('event received:', parsed.eventType, parsed);\n setEvents((prev) => {\n const next = [...prev, parsed];\n return next.length > MAX_EVENTS ? next.slice(-PRUNE_KEEP) : next;\n });\n setLastEvent(parsed);\n } else if (msg.type === 'status') {\n setConnectionStatus(msg.status as ConnectionStatus);\n }\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n // ?sse=direct bypasses the Service Worker for debugging\n const bypassSW =\n typeof location !== 'undefined' && new URLSearchParams(location.search).has('sse');\n\n // Fallback: direct EventSource when SW not supported or bypassed\n if (!navigator.serviceWorker || bypassSW) {\n return connectDirectEventSource(runId, setEvents, setLastEvent, setConnectionStatus);\n }\n\n let cancelled = false;\n const fallbackCleanupRef = { current: undefined as (() => void) | undefined };\n\n function subscribeToWorker(worker: ServiceWorker) {\n if (cancelled) return;\n swRef.current = worker;\n worker.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n\n // Listen for messages from whatever SW controls this page\n navigator.serviceWorker.addEventListener('message', onMessage);\n\n // Re-subscribe when SW controller changes (e.g., after SW update via skipWaiting)\n function handleControllerChange() {\n if (cancelled) return;\n const newController = navigator.serviceWorker.controller;\n if (newController) {\n swRef.current = newController;\n newController.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n }\n navigator.serviceWorker.addEventListener('controllerchange', handleControllerChange);\n\n navigator.serviceWorker\n .register(SW_PATH, { scope: '/' })\n .then((registration) => {\n if (cancelled) return;\n\n // Use the active worker, or wait for it to activate\n const sw = registration.active ?? registration.installing ?? registration.waiting;\n if (!sw) {\n // No worker at all — fall back to direct EventSource\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n return;\n }\n\n if (sw.state === 'activated') {\n subscribeToWorker(sw);\n } else {\n const onStateChange = () => {\n if (sw.state === 'activated') {\n sw.removeEventListener('statechange', onStateChange);\n subscribeToWorker(sw);\n }\n };\n sw.addEventListener('statechange', onStateChange);\n }\n })\n .catch(() => {\n // SW registration failed — fall back to direct EventSource\n if (!cancelled) {\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n }\n });\n\n return () => {\n cancelled = true;\n navigator.serviceWorker.removeEventListener('message', onMessage);\n navigator.serviceWorker.removeEventListener('controllerchange', handleControllerChange);\n swRef.current?.postMessage({ type: 'unsubscribe' });\n swRef.current = null;\n fallbackCleanupRef.current?.();\n };\n }, [runId, onMessage]);\n\n return { events, lastEvent, connectionStatus };\n}\n\n// --- EventSource fallback (identical to the previous implementation) ---\n\nconst BASE_BACKOFF_MS = 1000;\nconst MAX_BACKOFF_MS = 30_000;\nconst STABLE_CONNECTION_MS = 5_000;\n\nfunction connectDirectEventSource(\n runId: string | undefined,\n setEvents: React.Dispatch<React.SetStateAction<NotificationEvent[]>>,\n setLastEvent: React.Dispatch<React.SetStateAction<NotificationEvent | null>>,\n setConnectionStatus: React.Dispatch<React.SetStateAction<ConnectionStatus>>\n): () => void {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (typeof EventSource === 'undefined') return () => {};\n\n let es: EventSource | null = null;\n let stopped = false;\n let backoff = BASE_BACKOFF_MS;\n let reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n let stableTimer: ReturnType<typeof setTimeout> | null = null;\n\n function connect() {\n if (stopped) return;\n\n const url = runId\n ? `/api/agent-events?runId=${encodeURIComponent(runId)}`\n : '/api/agent-events';\n\n es = new EventSource(url);\n setConnectionStatus('connecting');\n\n es.onopen = () => {\n setConnectionStatus('connected');\n stableTimer = setTimeout(() => {\n stableTimer = null;\n backoff = BASE_BACKOFF_MS;\n }, STABLE_CONNECTION_MS);\n };\n\n es.onerror = () => {\n es?.close();\n es = null;\n setConnectionStatus('disconnected');\n\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n\n const delay = backoff;\n backoff = Math.min(delay * 2, MAX_BACKOFF_MS);\n\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n connect();\n }, delay);\n };\n\n es.addEventListener('notification', ((event: MessageEvent) => {\n const raw = JSON.parse(event.data);\n const parsed: NotificationEvent = {\n ...raw,\n timestamp: new Date(raw.timestamp),\n };\n setEvents((prev) => {\n const next = [...prev, parsed];\n return next.length > MAX_EVENTS ? next.slice(-PRUNE_KEEP) : next;\n });\n setLastEvent(parsed);\n }) as EventListener);\n }\n\n connect();\n\n return () => {\n stopped = true;\n if (reconnectTimer !== null) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n if (es) {\n es.close();\n es = null;\n }\n };\n}\n"],"names":["ROOT_NAME","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog","props","__scopeAlertDialog","alertDialogProps","dialogScope","modal","displayName","TRIGGER_NAME","AlertDialogTrigger","forwardedRef","triggerProps","ref","PORTAL_NAME","AlertDialogPortal","portalProps","OVERLAY_NAME","AlertDialogOverlay","overlayProps","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","AlertDialogContent","children","contentProps","contentRef","composedRefs","cancelRef","contentName","titleName","TITLE_NAME","docsSlug","scope","role","onOpenAutoFocus","event","preventDefault","current","focus","preventScroll","onPointerDownOutside","onInteractOutside","DescriptionWarning","AlertDialogTitle","titleProps","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","ACTION_NAME","AlertDialogAction","actionProps","CANCEL_NAME","AlertDialogCancel","cancelProps","MESSAGE","hasDescription","document","getElementById","getAttribute","console","warn","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","DrawerCloseGuardContext","DrawerCloseGuardProvider","guardRef","pendingNavigateRef","showConfirmation","setShowConfirmation","setGuard","guard","guardedNavigate","navigate","isDirty","confirmDiscard","onReset","cancelDiscard","getIsDirty","value","open","variant","onClick","useDrawerCloseGuard","ctx","Error","useGuardedDrawerClose","onClose","attemptClose","ChatDotIndicator","status","className","log","SW_PATH","MAX_EVENTS","PRUNE_KEEP","useAgentEvents","options","events","setEvents","lastEvent","setLastEvent","connectionStatus","setConnectionStatus","runId","swRef","onMessage","msg","data","type","parsed","debug","eventType","prev","next","length","slice","bypassSW","cancelled","fallbackCleanupRef","subscribeToWorker","worker","postMessage","handleControllerChange","newController","navigator","serviceWorker","controller","BASE_BACKOFF_MS","MAX_BACKOFF_MS","STABLE_CONNECTION_MS","connectDirectEventSource","EventSource","es","stopped","backoff","reconnectTimer","stableTimer","connect","url","encodeURIComponent","onopen","setTimeout","onerror","close","clearTimeout","delay","Math","min","addEventListener","raw","JSON","parse","timestamp","Date"],"mappings":"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","ignoreList":[1,2,4,7,8]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-blur-svg.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-config.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/get-img-props.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/side-effect.tsx","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/head.tsx","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/image-config-context.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/router-context.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/find-closest-quality.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-loader.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/image-component.tsx","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-external.tsx","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/image.js","../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.tsx","../../../../../../../src/presentation/web/lib/model-metadata.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-left.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-right.ts","../../../../../../../src/presentation/web/app/actions/data%3Aa3c61a%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A06c78e%20%3Ctext/javascript%3E"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Disk Cache Size (in bytes)](https://nextjs.org/docs/api-reference/next/image#maximumdiskcachesize) */\n maximumDiskCacheSize: number | undefined\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Maximum Response Body](https://nextjs.org/docs/api-reference/next/image#maximumresponsebody) */\n maximumResponseBody: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n\n /**\n * When true, the `cacheHandler` configured in next.config.js will also be used\n * for caching optimized images. When false, images use the default filesystem cache.\n * @see [Image Optimization Caching](https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheHandler#image-optimization-caching)\n */\n customCacheHandler: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumDiskCacheSize: undefined, // auto-detect by default\n maximumRedirects: 3,\n maximumResponseBody: 50_000_000, // 50 MB\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n customCacheHandler: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getDeploymentId } from './deployment-id'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n if (src.startsWith('/') && !src.startsWith('//')) {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n // We unfortunately can't easily use `new URL()` here, because it normalizes the URL which causes\n // double-encoding with the `encodeURIComponent(src)` below\n const qIndex = src.indexOf('?')\n if (qIndex !== -1) {\n const params = new URLSearchParams(src.slice(qIndex + 1))\n const srcDpl = params.get('dpl')\n if (!srcDpl) {\n // src is missing the dpl parameter, but we have a deploymentId, so add it to the src URL\n params.append('dpl', deploymentId)\n src = src.slice(0, qIndex) + '?' + params.toString()\n }\n } else {\n // src is missing the dpl parameter, but we have a deploymentId, so add it to the src URL\n src = src + `?dpl=${deploymentId}`\n }\n }\n }\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n config.qualities[0]\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\nimport { getDeploymentId } from './deployment-id'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n }\n\n // Extract dpl parameter early so validation uses the clean URL.\n // If a immutable asset token should be used, it was already added as a query parameter and will\n // be extracted and reused here.\n let deploymentId = getDeploymentId()\n if (src.startsWith('/') && !src.startsWith('//')) {\n // We unfortunately can't easily use `new URL()` here, because it normalizes the URL which causes\n // double-encoding with the `encodeURIComponent(src)` below\n const qIndex = src.indexOf('?')\n if (qIndex !== -1) {\n const params = new URLSearchParams(src.slice(qIndex + 1))\n const srcDpl = params.get('dpl')\n if (srcDpl) {\n deploymentId = srcDpl\n params.delete('dpl')\n const remaining = params.toString()\n src = src.slice(0, qIndex) + (remaining ? '?' + remaining : '')\n }\n }\n }\n\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/') && deploymentId ? `&dpl=${deploymentId}` : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities,\n // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import type { ComponentType, SVGProps } from 'react';\nimport Image from 'next/image';\nimport { cn } from '@/lib/utils';\n\n/** Agent type values mirroring the TypeSpec AgentType enum. */\nexport type AgentTypeValue =\n | 'claude-code'\n | 'codex-cli'\n | 'cursor'\n | 'gemini-cli'\n | 'aider'\n | 'continue'\n | 'dev';\n\ntype IconProps = SVGProps<SVGSVGElement> & { className?: string };\n\n/** Create a stable image-based icon component for a brand. */\nfunction createBrandIcon(src: string, alt: string): ComponentType<IconProps> {\n function BrandIcon({ className }: IconProps) {\n return (\n <Image\n src={src}\n alt={alt}\n width={24}\n height={24}\n className={cn('rounded-sm object-contain', className)}\n />\n );\n }\n BrandIcon.displayName = `BrandIcon(${alt})`;\n return BrandIcon;\n}\n\n/** Fallback icon when agent type is unknown or undefined. */\nexport function DefaultAgentIcon(props: IconProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" fill=\"currentColor\" />\n </svg>\n );\n}\n\n/** Colorful flask icon for the Demo Executor agent. */\nfunction DevAgentIcon({ className, ...props }: IconProps) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn('h-6 w-6', className)}\n {...(props as object)}\n >\n <defs>\n <linearGradient\n id=\"dev-flask-grad\"\n x1=\"6\"\n y1=\"22\"\n x2=\"18\"\n y2=\"8\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0%\" stopColor=\"#8B5CF6\" />\n <stop offset=\"50%\" stopColor=\"#EC4899\" />\n <stop offset=\"100%\" stopColor=\"#F59E0B\" />\n </linearGradient>\n </defs>\n {/* Flask body */}\n <path\n d=\"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z\"\n fill=\"url(#dev-flask-grad)\"\n opacity=\"0.9\"\n />\n {/* Flask neck outline */}\n <path\n d=\"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z\"\n stroke=\"url(#dev-flask-grad)\"\n strokeWidth=\"1.5\"\n fill=\"none\"\n />\n {/* Bubbles */}\n <circle cx=\"10\" cy=\"14\" r=\"1.2\" fill=\"white\" opacity=\"0.7\" />\n <circle cx=\"13.5\" cy=\"16\" r=\"0.8\" fill=\"white\" opacity=\"0.5\" />\n <circle cx=\"11.5\" cy=\"17.5\" r=\"0.6\" fill=\"white\" opacity=\"0.4\" />\n {/* Spark */}\n <path d=\"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z\" fill=\"#F59E0B\" />\n </svg>\n );\n}\nDevAgentIcon.displayName = 'DevAgentIcon';\n\nconst agentTypeIconMap: Record<AgentTypeValue, ComponentType<IconProps>> = {\n 'claude-code': createBrandIcon('/icons/agents/claude-ai-icon.svg', 'Claude Code'),\n 'codex-cli': createBrandIcon('/icons/agents/openai.svg', 'Codex CLI'),\n cursor: createBrandIcon('/icons/agents/cursor.jpeg', 'Cursor'),\n 'gemini-cli': createBrandIcon('/icons/agents/gemini-cli.jpeg', 'Gemini CLI'),\n aider: createBrandIcon('/icons/agents/aider.png', 'Aider'),\n continue: createBrandIcon('/icons/agents/continue.jpeg', 'Continue'),\n dev: DevAgentIcon,\n};\n\n/** Human-readable labels for agent types. */\nexport const agentTypeLabels: Record<AgentTypeValue, string> = {\n 'claude-code': 'Claude Code',\n 'codex-cli': 'Codex CLI',\n cursor: 'Cursor',\n 'gemini-cli': 'Gemini CLI',\n aider: 'Aider',\n continue: 'Continue',\n dev: 'Demo',\n};\n\n/** Resolve an agent type string to its corresponding icon component. */\nexport function getAgentTypeIcon(agentType?: string): ComponentType<IconProps> {\n if (agentType && agentType in agentTypeIconMap) {\n return agentTypeIconMap[agentType as AgentTypeValue];\n }\n return DefaultAgentIcon;\n}\n","export interface ModelMeta {\n displayName: string;\n description: string;\n}\n\n/**\n * Presentation-layer metadata for known LLM model identifiers.\n * Maps raw model IDs to human-friendly display names and short descriptions.\n */\nconst MODEL_METADATA: Record<string, ModelMeta> = {\n // Claude models\n 'claude-opus-4-6': { displayName: 'Opus 4.6', description: 'Most capable, complex tasks' },\n 'claude-sonnet-4-6': { displayName: 'Sonnet 4.6', description: 'Fast & balanced' },\n 'claude-haiku-4-5': { displayName: 'Haiku 4.5', description: 'Lightweight & quick' },\n\n // Gemini models\n 'gemini-3.1-pro': { displayName: 'Gemini 3.1 Pro', description: 'Advanced reasoning' },\n 'gemini-3-flash': { displayName: 'Gemini 3 Flash', description: 'Ultra-fast responses' },\n 'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', description: 'Reliable workhorse' },\n 'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', description: 'Speed-optimized' },\n\n // OpenAI models\n 'gpt-5.4-high': { displayName: 'GPT-5.4', description: 'Latest reasoning model' },\n 'gpt-5.2': { displayName: 'GPT-5.2', description: 'Flagship model' },\n 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', description: 'Code specialist' },\n\n // Other\n 'composer-1.5': { displayName: 'Composer 1.5', description: 'Multi-file editing' },\n 'grok-code': { displayName: 'Grok Code', description: 'xAI code model' },\n\n // Demo / fun models\n 'gpt-8': { displayName: 'GPT-8', description: 'Writes code before you think it' },\n 'opus-7': { displayName: 'Opus 7', description: 'Achieved consciousness, ships on time' },\n};\n\nconst FALLBACK: ModelMeta = { displayName: '', description: '' };\n\nexport function getModelMeta(modelId: string): ModelMeta {\n const meta = MODEL_METADATA[modelId];\n if (meta) return meta;\n // Fallback: prettify the raw ID\n return {\n ...FALLBACK,\n displayName: modelId\n .replace(/^claude-/, '')\n .replace(/^gemini-/, 'Gemini ')\n .replace(/^gpt-/, 'GPT-')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase()),\n };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\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 ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\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 ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","/* __next_internal_action_entry_do_not_use__ [{\"00e1a1d465dc660029df657ee53baba207267ec9fe\":{\"name\":\"getAllAgentModels\"}},\"src/presentation/web/app/actions/get-all-agent-models.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00e1a1d465dc660029df657ee53baba207267ec9fe\",callServer,void 0,findSourceMapURL,\"getAllAgentModels\");export{$$RSC_SERVER_ACTION_0 as getAllAgentModels};","/* __next_internal_action_entry_do_not_use__ [{\"60c3375484b278ab8670077e353745373c7b66626c\":{\"name\":\"updateAgentAndModel\"}},\"src/presentation/web/app/actions/update-agent-and-model.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"60c3375484b278ab8670077e353745373c7b66626c\",callServer,void 0,findSourceMapURL,\"updateAgentAndModel\");export{$$RSC_SERVER_ACTION_0 as updateAgentAndModel};"],"names":["_interop_require_default","obj","__esModule","default","exports","_","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumDiskCacheSize","undefined","maximumRedirects","maximumResponseBody","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","remotePatterns","qualities","unoptimized","customCacheHandler","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","Set","map","w","find","p","generateImgAttrs","config","quality","startsWith","deploymentId","getDeploymentId","qIndex","indexOf","params","URLSearchParams","slice","srcDpl","get","append","toString","srcSet","last","i","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","split","endsWith","qualityInt","process","env","NODE_ENV","output","position","isNaN","includes","String","warnOnce","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","observe","type","buffered","console","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","props","meta","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","add","children","delete","_pendingUpdate","module","require","vendored","HeadManagerContext","defaultHead","head","charSet","name","content","onlyReactElement","list","child","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","has","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","useContext","Effect","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","remaining","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","__next_img_default","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","current","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","setShowAltText","onError","forwardedRef","ownRef","useCallback","complete","ref","useMergedRef","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useRef","useState","imgMeta","getImageProps","imgProps","createBrandIcon","alt","BrandIcon","displayName","DefaultAgentIcon","xmlns","cx","cy","r","stroke","strokeWidth","DevAgentIcon","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","d","opacity","agentTypeIconMap","cursor","aider","continue","dev","agentTypeLabels","getAgentTypeIcon","agentType","MODEL_METADATA","description","FALLBACK","getModelMeta","modelId","replace","toUpperCase","$$RSC_SERVER_ACTION_0"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,16,17]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[57769,(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"},14703,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},49369,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},76096,a=>{"use strict";let b=(0,a.i(25700).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",0,b])},5e4,a=>{"use strict";let b=(0,a.i(25700).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",0,b])},22366,73998,52751,a=>{"use strict";var b=a.i(7052);a.s(["Loader2Icon",()=>b.default],22366);var c=a.i(76096);a.s(["DownloadIcon",()=>c.default],73998);let d=(0,a.i(25700).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",0,d],52751)},79620,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["Textarea",0,function({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})}])},42360,50596,a=>{"use strict";var b=a.i(31078);a.s(["VisuallyHidden",0,b],42360);let c=(0,a.i(25700).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(["FileIcon",0,c],50596)},42642,a=>{"use strict";let b=(0,a.i(25700).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",0,b])},307,30931,a=>{"use strict";var b=a.i(53083),c=a.i(2807),d=a.i(22366),e=a.i(73998),f=a.i(52751),g=a.i(85536),h=a.i(45670),i=a.i(79620),j=a.i(82934),k=a.i(42360),l=a.i(50596),m=a.i(42642),m=m;let n=(0,a.i(25700).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(40617),o=o;a.i(18948);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()}`}a.s(["AttachmentChip",0,function({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:"bottom",className:"max-w-[220px] border border-amber-200 bg-amber-50 text-amber-950 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100",children:(0,b.jsx)("p",{className:"line-clamp-3 text-xs leading-snug",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.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?(0,b.jsx)("p",{className:"text-muted-foreground text-sm",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"})})]})}],30931),a.s([],307)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0n.xy38._.js.map
|