@shepai/cli 1.155.0-pr485.4c45fca → 1.155.0-pr486.e53674d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/json-schema/UserProfile.yaml +0 -3
- package/dist/packages/core/src/domain/generated/output.d.ts +0 -14
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +0 -11
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -4
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +2 -3
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +1 -3
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/claude-code.json +4 -3
- package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/_serve.command.js +3 -5
- package/dist/src/presentation/cli/commands/agent/approve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/approve.command.js +4 -9
- package/dist/src/presentation/cli/commands/agent/delete.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/delete.command.js +5 -9
- package/dist/src/presentation/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/index.js +1 -3
- package/dist/src/presentation/cli/commands/agent/logs.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/logs.command.js +5 -7
- package/dist/src/presentation/cli/commands/agent/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/ls.command.js +10 -12
- package/dist/src/presentation/cli/commands/agent/reject.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/reject.command.js +5 -10
- package/dist/src/presentation/cli/commands/agent/resolve-run.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/resolve-run.js +2 -7
- package/dist/src/presentation/cli/commands/agent/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/show.command.js +6 -8
- package/dist/src/presentation/cli/commands/agent/stop.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/stop.command.js +4 -9
- package/dist/src/presentation/cli/commands/daemon/start-daemon.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/daemon/start-daemon.js +8 -10
- package/dist/src/presentation/cli/commands/daemon/stop-daemon.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/daemon/stop-daemon.js +3 -5
- package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/adopt.command.js +12 -14
- package/dist/src/presentation/cli/commands/feat/approve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/approve.command.js +6 -8
- package/dist/src/presentation/cli/commands/feat/archive.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/archive.command.js +8 -10
- package/dist/src/presentation/cli/commands/feat/del.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/del.command.js +15 -17
- package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/index.js +1 -2
- package/dist/src/presentation/cli/commands/feat/logs.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/logs.command.js +6 -8
- package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/ls.command.js +12 -14
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +37 -43
- package/dist/src/presentation/cli/commands/feat/reject.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/reject.command.js +9 -11
- package/dist/src/presentation/cli/commands/feat/resolve-waiting-feature.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/resolve-waiting-feature.js +5 -12
- package/dist/src/presentation/cli/commands/feat/resume.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/resume.command.js +6 -8
- package/dist/src/presentation/cli/commands/feat/review.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/review.command.js +15 -17
- package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/show.command.js +45 -89
- package/dist/src/presentation/cli/commands/feat/start.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/start.command.js +10 -12
- package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/unarchive.command.js +6 -8
- package/dist/src/presentation/cli/commands/ide-open.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ide-open.command.js +5 -10
- package/dist/src/presentation/cli/commands/install.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/install.command.js +21 -29
- package/dist/src/presentation/cli/commands/log-viewer.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/log-viewer.js +3 -6
- package/dist/src/presentation/cli/commands/repo/add.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/add.command.js +10 -12
- package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/index.js +1 -3
- package/dist/src/presentation/cli/commands/repo/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/ls.command.js +9 -11
- package/dist/src/presentation/cli/commands/repo/resolve-repository.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/resolve-repository.js +2 -7
- package/dist/src/presentation/cli/commands/repo/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/show.command.js +10 -21
- package/dist/src/presentation/cli/commands/restart.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/restart.command.js +4 -6
- package/dist/src/presentation/cli/commands/run.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/run.command.js +17 -21
- package/dist/src/presentation/cli/commands/session/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/index.js +1 -3
- package/dist/src/presentation/cli/commands/session/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/ls.command.js +9 -11
- package/dist/src/presentation/cli/commands/session/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/show.command.js +18 -26
- package/dist/src/presentation/cli/commands/settings/agent.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/agent.command.js +8 -12
- package/dist/src/presentation/cli/commands/settings/ide.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/ide.command.js +7 -13
- package/dist/src/presentation/cli/commands/settings/index.d.ts +0 -1
- package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/index.js +3 -7
- package/dist/src/presentation/cli/commands/settings/init.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/init.command.js +7 -8
- package/dist/src/presentation/cli/commands/settings/model.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/model.command.js +6 -7
- package/dist/src/presentation/cli/commands/settings/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/show.command.js +3 -4
- package/dist/src/presentation/cli/commands/settings/workflow.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/workflow.command.js +18 -20
- package/dist/src/presentation/cli/commands/start.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/start.command.js +3 -5
- package/dist/src/presentation/cli/commands/status.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/status.command.js +24 -32
- package/dist/src/presentation/cli/commands/stop.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/stop.command.js +2 -4
- package/dist/src/presentation/cli/commands/tools.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/tools.command.js +4 -8
- package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ui.command.js +10 -12
- package/dist/src/presentation/cli/commands/upgrade.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/upgrade.command.js +13 -18
- package/dist/src/presentation/cli/commands/version.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/version.command.js +3 -5
- package/dist/src/presentation/cli/index.js +1 -13
- package/dist/src/presentation/cli/ui/install-messages.d.ts.map +1 -1
- package/dist/src/presentation/cli/ui/install-messages.js +6 -16
- package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +31 -13
- package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/agent-select.prompt.js +15 -17
- package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts +11 -7
- package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/auth-method.prompt.js +5 -7
- package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/ide-select.prompt.js +1 -2
- package/dist/src/presentation/tui/prompts/prd-review-summary.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/prd-review-summary.prompt.js +6 -8
- package/dist/src/presentation/tui/wizards/agent-config.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/agent-config.wizard.js +1 -2
- package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/github-import.wizard.js +11 -15
- package/dist/src/presentation/tui/wizards/merge-review.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/merge-review.wizard.js +8 -10
- package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.js +7 -10
- package/dist/src/presentation/tui/wizards/onboarding/steps/workflow-defaults.step.d.ts +41 -0
- package/dist/src/presentation/tui/wizards/onboarding/steps/workflow-defaults.step.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/onboarding/steps/workflow-defaults.step.js +15 -15
- package/dist/src/presentation/tui/wizards/plan-review.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/plan-review.wizard.js +8 -10
- package/dist/src/presentation/tui/wizards/prd-review.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/prd-review.wizard.js +2 -3
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
- package/dist/src/presentation/web/app/layout.js +2 -5
- package/dist/src/presentation/web/components/assistant-ui/thread.js +5 -5
- package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
- package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.js +3 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +4 -4
- package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +1 -1
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/delete-feature-dialog/delete-feature-dialog.js +1 -3
- package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.js +2 -2
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +2 -2
- package/dist/src/presentation/web/components/common/empty-state/empty-state.stories.js +2 -2
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +2 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +4 -4
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.js +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -2
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +22 -22
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +4 -4
- package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.js +1 -1
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.js +1 -1
- package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.js +1 -1
- package/dist/src/presentation/web/components/common/merge-review/diff-view.js +2 -2
- package/dist/src/presentation/web/components/common/merge-review/merge-review.js +2 -2
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +3 -3
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/reject-feedback-dialog/reject-feedback-dialog.js +4 -6
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +3 -3
- package/dist/src/presentation/web/components/common/server-log-viewer/server-log-viewer.js +1 -1
- package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.js +2 -2
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +2 -2
- package/dist/src/presentation/web/components/common/version-badge/version-badge.js +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.js +4 -4
- package/dist/src/presentation/web/components/features/chat/ChatMessageList.js +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +11 -15
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +6 -8
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +1 -3
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -4
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +2 -2
- package/dist/src/presentation/web/components/features/settings/ModelPicker/index.js +2 -2
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +77 -89
- package/dist/src/presentation/web/components/features/settings/timeout-slider.js +1 -1
- package/dist/src/presentation/web/components/features/skills/category-filter.js +1 -1
- package/dist/src/presentation/web/components/features/skills/skills-page-client.js +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-card.js +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +2 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +4 -10
- package/dist/src/presentation/web/components/ui/alert-dialog.js +1 -1
- package/dist/src/presentation/web/components/ui/alert.js +1 -1
- package/dist/src/presentation/web/components/ui/checkbox-group.js +1 -1
- package/dist/src/presentation/web/components/ui/command.js +1 -1
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dialog.js +2 -2
- package/dist/src/presentation/web/components/ui/dialog.stories.js +1 -1
- package/dist/src/presentation/web/components/ui/drawer.js +1 -1
- package/dist/src/presentation/web/components/ui/dropdown-menu.js +6 -6
- package/dist/src/presentation/web/components/ui/scroll-area.js +1 -1
- package/dist/src/presentation/web/components/ui/select.js +1 -1
- package/dist/src/presentation/web/components/ui/sheet.js +1 -1
- package/dist/src/presentation/web/components/ui/sidebar.js +6 -6
- package/dist/src/presentation/web/hooks/use-sound-action.stories.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -4
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/chat/page.js +3 -3
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/create/page.js +3 -3
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/page.js +3 -3
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -3
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/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/settings/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/settings/page.js +2 -2
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/skills/page.js +4 -3
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/tools/page.js +4 -3
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/version/page.js +2 -2
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__beda892a._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__beda892a._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__27301e38._.js → [root-of-the-server]__17ed7ed1._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__27301e38._.js.map → [root-of-the-server]__17ed7ed1._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__8d27866c._.js → [root-of-the-server]__28d0d265._.js} +3 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6fecf886._.js → [root-of-the-server]__42bf1807._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__6fecf886._.js.map → [root-of-the-server]__42bf1807._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__209c9597._.js → [root-of-the-server]__88f7e8e6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__209c9597._.js.map → [root-of-the-server]__88f7e8e6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9f3504c7._.js → [root-of-the-server]__f80bfc75._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9f3504c7._.js.map → [root-of-the-server]__f80bfc75._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__25ee8d4c._.js → [root-of-the-server]__f8dd4422._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_3a0b989f._.js +2 -2
- package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_41633e32._.js +3 -0
- package/web/.next/server/chunks/ssr/{_28e7429c._.js.map → _41633e32._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_4b432739._.js +3 -0
- package/web/.next/server/chunks/ssr/_4b432739._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_b9ba2473._.js → _507a8382._.js} +2 -2
- package/web/.next/server/chunks/ssr/_507a8382._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_7773b2dc._.js → _59d0f988._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_7773b2dc._.js.map → _59d0f988._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5f69c13f._.js +1 -1
- package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3bcda5d7._.js → _67104d9e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3bcda5d7._.js.map → _67104d9e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_813095ef._.js +4 -0
- package/web/.next/server/chunks/ssr/_813095ef._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_8219712a._.js +3 -0
- package/web/.next/server/chunks/ssr/_8219712a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_82c57f10._.js +1 -1
- package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8b57edb8._.js +1 -1
- package/web/.next/server/chunks/ssr/_8b57edb8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_9495d50b._.js +1 -1
- package/web/.next/server/chunks/ssr/_9495d50b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ac4a3873._.js +1 -1
- package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +1 -1
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cb5a021e._.js +1 -1
- package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +1 -1
- package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d86175ae._.js +1 -1
- package/web/.next/server/chunks/ssr/_d86175ae._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d8bedf13._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_e9a73a63._.js +9 -0
- package/web/.next/server/chunks/ssr/_e9a73a63._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_fa7efce3._.js +2 -2
- package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +45 -45
- package/web/.next/static/chunks/{47477ed4c5871747.js → 11091b676d1b3bd4.js} +1 -1
- package/web/.next/static/chunks/125b250c28113507.js +1 -0
- package/web/.next/static/chunks/{74db65fa7bfb80bd.js → 22c459f1877b1e4f.js} +1 -1
- package/web/.next/static/chunks/2817c3b9d560aaeb.js +1 -0
- package/web/.next/static/chunks/{24d5e151f7de6b4c.js → 42e9d0c76e624005.js} +1 -1
- package/web/.next/static/chunks/{e4e358c4f67366fd.js → 4b2c4a5c35ebb70d.js} +1 -1
- package/web/.next/static/chunks/{d6e702c209c413ce.js → 5ae60a052ab5f437.js} +2 -2
- package/web/.next/static/chunks/{3deefc76ea55047c.js → 688971d5bad5dc7c.js} +1 -1
- package/web/.next/static/chunks/{1c07a9270515f2e3.js → 6e6cd6218f76e404.js} +2 -2
- package/web/.next/static/chunks/7a1a68bdc20f0428.js +1 -0
- package/web/.next/static/chunks/8590bd2e69b24b9e.css +1 -0
- package/web/.next/static/chunks/{536afd754a63da39.js → 902c670cb337840c.js} +1 -1
- package/web/.next/static/chunks/{4978be67c4e6498f.js → a676d236e8214de3.js} +3 -3
- package/web/.next/static/chunks/a7c1cddd7d406fb8.js +7 -0
- package/web/.next/static/chunks/b3be394b3cc24151.js +1 -0
- package/web/.next/static/chunks/b4080e40597d7f8e.js +1 -0
- package/web/.next/static/chunks/{bfdb66301af07da1.js → b4cde06eff374c59.js} +2 -2
- package/web/.next/static/chunks/cd54b758f58061d0.js +1 -0
- package/web/.next/static/chunks/da980f1c277bafcb.js +2 -0
- package/web/.next/static/chunks/{b674bc11b321a5ee.js → ea823175bb410162.js} +1 -1
- package/apis/json-schema/Language.yaml +0 -13
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.d.ts +0 -14
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.js +0 -19
- package/dist/src/presentation/cli/commands/settings/language.command.d.ts +0 -14
- package/dist/src/presentation/cli/commands/settings/language.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/settings/language.command.js +0 -79
- package/dist/src/presentation/cli/i18n.d.ts +0 -41
- package/dist/src/presentation/cli/i18n.d.ts.map +0 -1
- package/dist/src/presentation/cli/i18n.js +0 -100
- package/dist/src/presentation/tui/i18n.d.ts +0 -24
- package/dist/src/presentation/tui/i18n.d.ts.map +0 -1
- package/dist/src/presentation/tui/i18n.js +0 -48
- package/dist/src/presentation/web/components/features/settings/language-settings-section.d.ts +0 -5
- package/dist/src/presentation/web/components/features/settings/language-settings-section.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.js +0 -54
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts +0 -18
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.js +0 -36
- package/dist/src/presentation/web/components/providers/i18n-provider.d.ts +0 -17
- package/dist/src/presentation/web/components/providers/i18n-provider.d.ts.map +0 -1
- package/dist/src/presentation/web/components/providers/i18n-provider.js +0 -36
- package/dist/src/presentation/web/lib/i18n.d.ts +0 -15
- package/dist/src/presentation/web/lib/i18n.d.ts.map +0 -1
- package/dist/src/presentation/web/lib/i18n.js +0 -46
- package/dist/src/presentation/web/lib/language.d.ts +0 -23
- package/dist/src/presentation/web/lib/language.d.ts.map +0 -1
- package/dist/src/presentation/web/lib/language.js +0 -37
- package/dist/src/presentation/web/lib/rtl-fonts.d.ts +0 -19
- package/dist/src/presentation/web/lib/rtl-fonts.d.ts.map +0 -1
- package/dist/src/presentation/web/lib/rtl-fonts.js +0 -51
- package/dist/translations/ar/cli.json +0 -613
- package/dist/translations/ar/common.json +0 -55
- package/dist/translations/ar/tui.json +0 -130
- package/dist/translations/ar/web.json +0 -320
- package/dist/translations/de/cli.json +0 -613
- package/dist/translations/de/common.json +0 -55
- package/dist/translations/de/tui.json +0 -109
- package/dist/translations/de/web.json +0 -306
- package/dist/translations/en/cli.json +0 -613
- package/dist/translations/en/common.json +0 -55
- package/dist/translations/en/tui.json +0 -130
- package/dist/translations/en/web.json +0 -320
- package/dist/translations/es/cli.json +0 -613
- package/dist/translations/es/common.json +0 -55
- package/dist/translations/es/tui.json +0 -130
- package/dist/translations/es/web.json +0 -320
- package/dist/translations/fr/cli.json +0 -613
- package/dist/translations/fr/common.json +0 -55
- package/dist/translations/fr/tui.json +0 -130
- package/dist/translations/fr/web.json +0 -320
- package/dist/translations/he/cli.json +0 -613
- package/dist/translations/he/common.json +0 -55
- package/dist/translations/he/tui.json +0 -130
- package/dist/translations/he/web.json +0 -320
- package/dist/translations/pt/cli.json +0 -613
- package/dist/translations/pt/common.json +0 -55
- package/dist/translations/pt/tui.json +0 -130
- package/dist/translations/pt/web.json +0 -320
- package/dist/translations/ru/cli.json +0 -613
- package/dist/translations/ru/common.json +0 -55
- package/dist/translations/ru/tui.json +0 -130
- package/dist/translations/ru/web.json +0 -320
- package/web/.next/server/chunks/ssr/[root-of-the-server]__25ee8d4c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8d27866c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0cd9ca53._.js +0 -3
- package/web/.next/server/chunks/ssr/_0cd9ca53._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_28e7429c._.js +0 -3
- package/web/.next/server/chunks/ssr/_470e90f4._.js +0 -9
- package/web/.next/server/chunks/ssr/_470e90f4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5bfcc8de._.js +0 -4
- package/web/.next/server/chunks/ssr/_5bfcc8de._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b9ba2473._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d90b0a06._.js +0 -3
- package/web/.next/server/chunks/ssr/_d90b0a06._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_55cf6695._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_55cf6695._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +0 -1
- package/web/.next/static/chunks/05c9ed792a1d9056.js +0 -1
- package/web/.next/static/chunks/2aada437f51df3e6.js +0 -1
- package/web/.next/static/chunks/2eeee9bcbf660a4b.js +0 -1
- package/web/.next/static/chunks/4a399ee2a9942a1b.js +0 -1
- package/web/.next/static/chunks/70390bd89521bc19.js +0 -1
- package/web/.next/static/chunks/8fd082719935d5e6.js +0 -1
- package/web/.next/static/chunks/91927044df8e28bb.js +0 -7
- package/web/.next/static/chunks/b1b5b0bf84caabd4.js +0 -1
- package/web/.next/static/chunks/b68b16b4c3528979.js +0 -2
- package/web/.next/static/chunks/d58e68d03d055a9b.css +0 -1
- /package/web/.next/static/{Uqo91vsr2HsZrCKrZOYMZ → _5yY0q7bqEA7bwlEo729P}/_buildManifest.js +0 -0
- /package/web/.next/static/{Uqo91vsr2HsZrCKrZOYMZ → _5yY0q7bqEA7bwlEo729P}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{Uqo91vsr2HsZrCKrZOYMZ → _5yY0q7bqEA7bwlEo729P}/_ssgManifest.js +0 -0
|
@@ -13,7 +13,6 @@ import yaml from 'js-yaml';
|
|
|
13
13
|
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
14
14
|
import { ShowFeatureUseCase } from '../../../../../packages/core/src/application/use-cases/features/show-feature.use-case.js';
|
|
15
15
|
import { colors, symbols, messages, renderDetailView } from '../../ui/index.js';
|
|
16
|
-
import { getCliI18n } from '../../i18n.js';
|
|
17
16
|
import { computeWorktreePath } from '../../../../../packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js';
|
|
18
17
|
const AGENT_LABELS = {
|
|
19
18
|
'claude-code': 'Claude Code',
|
|
@@ -335,10 +334,9 @@ export function renderPhaseTimings(timings, currentRun, rejections = []) {
|
|
|
335
334
|
return lines;
|
|
336
335
|
}
|
|
337
336
|
export function createShowCommand() {
|
|
338
|
-
const t = getCliI18n().t;
|
|
339
337
|
return new Command('show')
|
|
340
|
-
.description(
|
|
341
|
-
.argument('<id>',
|
|
338
|
+
.description('Show feature details')
|
|
339
|
+
.argument('<id>', 'Feature ID')
|
|
342
340
|
.action(async (featureId) => {
|
|
343
341
|
try {
|
|
344
342
|
const useCase = container.resolve(ShowFeatureUseCase);
|
|
@@ -357,11 +355,8 @@ export function createShowCommand() {
|
|
|
357
355
|
const textBlocks = [];
|
|
358
356
|
if (feature.plan) {
|
|
359
357
|
textBlocks.push({
|
|
360
|
-
title:
|
|
361
|
-
content: [
|
|
362
|
-
t('cli:commands.feat.show.planState', { state: feature.plan.state }),
|
|
363
|
-
t('cli:commands.feat.show.planTasks', { count: feature.plan.tasks.length }),
|
|
364
|
-
].join('\n'),
|
|
358
|
+
title: 'Plan',
|
|
359
|
+
content: [`State ${feature.plan.state}`, `Tasks ${feature.plan.tasks.length}`].join('\n'),
|
|
365
360
|
});
|
|
366
361
|
}
|
|
367
362
|
if (feature.messages.length > 0) {
|
|
@@ -370,17 +365,14 @@ export function createShowCommand() {
|
|
|
370
365
|
.map((m) => `${colors.muted(`${m.role}:`)} ${m.content.slice(0, 80)}`)
|
|
371
366
|
.join('\n');
|
|
372
367
|
textBlocks.push({
|
|
373
|
-
title:
|
|
368
|
+
title: `Messages (${feature.messages.length})`,
|
|
374
369
|
content: last5,
|
|
375
370
|
});
|
|
376
371
|
}
|
|
377
372
|
if (timings.length > 0) {
|
|
378
373
|
const rejections = loadRejectionFeedback(feature.specPath);
|
|
379
374
|
const lines = renderPhaseTimings(timings, run, rejections);
|
|
380
|
-
textBlocks.push({
|
|
381
|
-
title: t('cli:commands.feat.show.phaseTimingTitle'),
|
|
382
|
-
content: lines.join('\n'),
|
|
383
|
-
});
|
|
375
|
+
textBlocks.push({ title: 'Phase Timing', content: lines.join('\n') });
|
|
384
376
|
}
|
|
385
377
|
if (feature.pr?.ciFixHistory && feature.pr.ciFixHistory.length > 0) {
|
|
386
378
|
const fixLines = feature.pr.ciFixHistory.map((r) => {
|
|
@@ -392,131 +384,97 @@ export function createShowCommand() {
|
|
|
392
384
|
return ` #${r.attempt} ${outcomeColor(r.outcome)} ${colors.muted(r.startedAt)} ${r.failureSummary.slice(0, 60)}`;
|
|
393
385
|
});
|
|
394
386
|
textBlocks.push({
|
|
395
|
-
title:
|
|
387
|
+
title: 'CI Fix History',
|
|
396
388
|
content: fixLines.join('\n'),
|
|
397
389
|
});
|
|
398
390
|
}
|
|
399
391
|
if (run?.status === 'waiting_approval') {
|
|
400
392
|
const phase = run.result?.startsWith('node:')
|
|
401
393
|
? (NODE_TO_PHASE[run.result.slice(5)] ?? run.result.slice(5))
|
|
402
|
-
:
|
|
394
|
+
: 'current phase';
|
|
403
395
|
textBlocks.push({
|
|
404
|
-
title:
|
|
396
|
+
title: 'Awaiting Approval',
|
|
405
397
|
content: [
|
|
406
|
-
|
|
398
|
+
`${phase} is waiting for your review.`,
|
|
407
399
|
'',
|
|
408
|
-
` ${colors.accent(`shep feat approve ${feature.id.slice(0, 8)}`)}
|
|
409
|
-
` ${colors.accent(`shep feat reject ${feature.id.slice(0, 8)}`)}
|
|
400
|
+
` ${colors.accent(`shep feat approve ${feature.id.slice(0, 8)}`)} Resume the agent`,
|
|
401
|
+
` ${colors.accent(`shep feat reject ${feature.id.slice(0, 8)}`)} Cancel with feedback`,
|
|
410
402
|
].join('\n'),
|
|
411
403
|
});
|
|
412
404
|
}
|
|
413
405
|
renderDetailView({
|
|
414
|
-
title:
|
|
406
|
+
title: `Feature: ${feature.name}`,
|
|
415
407
|
sections: [
|
|
416
408
|
{
|
|
417
409
|
fields: [
|
|
418
|
-
{ label:
|
|
419
|
-
{ label:
|
|
420
|
-
{ label:
|
|
421
|
-
{ label:
|
|
422
|
-
{
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
label: t('cli:commands.feat.show.branchLabel'),
|
|
428
|
-
value: colors.accent(feature.branch),
|
|
429
|
-
},
|
|
430
|
-
{
|
|
431
|
-
label: t('cli:commands.feat.show.statusLabel'),
|
|
432
|
-
value: formatStatus(feature, run),
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
label: t('cli:commands.feat.show.lifecycleLabel'),
|
|
436
|
-
value: formatLifecycle(feature.lifecycle),
|
|
437
|
-
},
|
|
410
|
+
{ label: 'ID', value: feature.id },
|
|
411
|
+
{ label: 'Slug', value: feature.slug },
|
|
412
|
+
{ label: 'Description', value: feature.description },
|
|
413
|
+
{ label: 'User Query', value: feature.userQuery },
|
|
414
|
+
{ label: 'Repository', value: feature.repositoryPath },
|
|
415
|
+
{ label: 'Branch', value: colors.accent(feature.branch) },
|
|
416
|
+
{ label: 'Status', value: formatStatus(feature, run) },
|
|
417
|
+
{ label: 'Lifecycle', value: formatLifecycle(feature.lifecycle) },
|
|
438
418
|
{
|
|
439
|
-
label:
|
|
419
|
+
label: 'Agent',
|
|
440
420
|
value: run
|
|
441
421
|
? (AGENT_LABELS[run.agentType] ?? run.agentType)
|
|
442
422
|
: null,
|
|
443
423
|
},
|
|
444
|
-
{ label:
|
|
445
|
-
{ label:
|
|
446
|
-
{
|
|
447
|
-
|
|
448
|
-
value: feature.specPath ?? null,
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
label: t('cli:commands.feat.show.agentRunLabel'),
|
|
452
|
-
value: feature.agentRunId ?? null,
|
|
453
|
-
},
|
|
424
|
+
{ label: 'Model', value: run?.modelId ?? null },
|
|
425
|
+
{ label: 'Worktree', value: worktreePath },
|
|
426
|
+
{ label: 'Spec Dir', value: feature.specPath ?? null },
|
|
427
|
+
{ label: 'Agent Run', value: feature.agentRunId ?? null },
|
|
454
428
|
],
|
|
455
429
|
},
|
|
456
430
|
{
|
|
457
|
-
title:
|
|
431
|
+
title: 'Timestamps',
|
|
458
432
|
fields: [
|
|
459
|
-
{
|
|
460
|
-
|
|
461
|
-
value: formatTs(feature.createdAt),
|
|
462
|
-
},
|
|
463
|
-
{
|
|
464
|
-
label: t('cli:commands.feat.show.updatedLabel'),
|
|
465
|
-
value: formatTs(feature.updatedAt),
|
|
466
|
-
},
|
|
433
|
+
{ label: 'Created', value: formatTs(feature.createdAt) },
|
|
434
|
+
{ label: 'Updated', value: formatTs(feature.updatedAt) },
|
|
467
435
|
],
|
|
468
436
|
},
|
|
469
437
|
{
|
|
470
|
-
title:
|
|
438
|
+
title: 'Workflow',
|
|
471
439
|
fields: [
|
|
472
440
|
{
|
|
473
|
-
label:
|
|
474
|
-
value: feature.push
|
|
475
|
-
? colors.success(t('cli:commands.feat.show.yesValue'))
|
|
476
|
-
: colors.muted(t('cli:commands.feat.show.noValue')),
|
|
441
|
+
label: 'Push',
|
|
442
|
+
value: feature.push ? colors.success('Yes') : colors.muted('No'),
|
|
477
443
|
},
|
|
478
444
|
{
|
|
479
|
-
label:
|
|
480
|
-
value: feature.openPr
|
|
481
|
-
? colors.success(t('cli:commands.feat.show.yesValue'))
|
|
482
|
-
: colors.muted(t('cli:commands.feat.show.noValue')),
|
|
445
|
+
label: 'Open PR',
|
|
446
|
+
value: feature.openPr ? colors.success('Yes') : colors.muted('No'),
|
|
483
447
|
},
|
|
484
448
|
{
|
|
485
|
-
label:
|
|
449
|
+
label: 'Gates',
|
|
486
450
|
value: feature.approvalGates
|
|
487
451
|
? [
|
|
488
452
|
`PRD ${feature.approvalGates.allowPrd ? colors.success('\u2713') : colors.error('\u2717')}`,
|
|
489
453
|
`Plan ${feature.approvalGates.allowPlan ? colors.success('\u2713') : colors.error('\u2717')}`,
|
|
490
454
|
`Merge ${feature.approvalGates.allowMerge ? colors.success('\u2713') : colors.error('\u2717')}`,
|
|
491
455
|
].join(' ')
|
|
492
|
-
: colors.muted(
|
|
456
|
+
: colors.muted('not set'),
|
|
493
457
|
},
|
|
494
458
|
],
|
|
495
459
|
},
|
|
496
460
|
...(feature.pr
|
|
497
461
|
? [
|
|
498
462
|
{
|
|
499
|
-
title:
|
|
463
|
+
title: 'Pull Request',
|
|
500
464
|
fields: [
|
|
501
|
-
{ label:
|
|
502
|
-
{
|
|
503
|
-
label: t('cli:commands.feat.show.numberLabel'),
|
|
504
|
-
value: `#${feature.pr.number}`,
|
|
505
|
-
},
|
|
465
|
+
{ label: 'URL', value: feature.pr.url },
|
|
466
|
+
{ label: 'Number', value: `#${feature.pr.number}` },
|
|
506
467
|
{
|
|
507
|
-
label:
|
|
468
|
+
label: 'Status',
|
|
508
469
|
value: feature.pr.status === 'Merged'
|
|
509
470
|
? colors.success(`${feature.pr.status} \u2713`)
|
|
510
471
|
: feature.pr.status === 'Closed'
|
|
511
472
|
? colors.error(feature.pr.status)
|
|
512
473
|
: colors.warning(feature.pr.status),
|
|
513
474
|
},
|
|
475
|
+
{ label: 'Commit', value: feature.pr.commitHash ?? null },
|
|
514
476
|
{
|
|
515
|
-
label:
|
|
516
|
-
value: feature.pr.commitHash ?? null,
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
label: t('cli:commands.feat.show.ciLabel'),
|
|
477
|
+
label: 'CI',
|
|
520
478
|
value: feature.pr.ciStatus
|
|
521
479
|
? feature.pr.ciStatus === 'Success'
|
|
522
480
|
? colors.success(`${feature.pr.ciStatus} \u2713`)
|
|
@@ -526,11 +484,9 @@ export function createShowCommand() {
|
|
|
526
484
|
: null,
|
|
527
485
|
},
|
|
528
486
|
{
|
|
529
|
-
label:
|
|
487
|
+
label: 'CI Fixes',
|
|
530
488
|
value: feature.pr.ciFixAttempts && feature.pr.ciFixAttempts > 0
|
|
531
|
-
?
|
|
532
|
-
count: feature.pr.ciFixAttempts,
|
|
533
|
-
})
|
|
489
|
+
? `${feature.pr.ciFixAttempts} attempt(s)`
|
|
534
490
|
: null,
|
|
535
491
|
},
|
|
536
492
|
],
|
|
@@ -543,7 +499,7 @@ export function createShowCommand() {
|
|
|
543
499
|
}
|
|
544
500
|
catch (error) {
|
|
545
501
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
546
|
-
messages.error(
|
|
502
|
+
messages.error('Failed to show feature', err);
|
|
547
503
|
process.exitCode = 1;
|
|
548
504
|
}
|
|
549
505
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/start.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/start.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,kBAAkB,IAAI,OAAO,CAgC5C"}
|
|
@@ -11,34 +11,32 @@ import { Command } from 'commander';
|
|
|
11
11
|
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
12
12
|
import { StartFeatureUseCase } from '../../../../../packages/core/src/application/use-cases/features/start-feature.use-case.js';
|
|
13
13
|
import { colors, messages, spinner } from '../../ui/index.js';
|
|
14
|
-
import { getCliI18n } from '../../i18n.js';
|
|
15
14
|
export function createStartCommand() {
|
|
16
|
-
const t = getCliI18n().t;
|
|
17
15
|
return new Command('start')
|
|
18
|
-
.description(
|
|
19
|
-
.argument('<id>',
|
|
16
|
+
.description('Start a pending feature (spawn the agent)')
|
|
17
|
+
.argument('<id>', 'Feature ID (or prefix)')
|
|
20
18
|
.action(async (id) => {
|
|
21
19
|
try {
|
|
22
20
|
const useCase = container.resolve(StartFeatureUseCase);
|
|
23
|
-
const { feature, agentRun } = await spinner(
|
|
21
|
+
const { feature, agentRun } = await spinner('Starting feature', () => useCase.execute(id));
|
|
24
22
|
messages.newline();
|
|
25
23
|
if (feature.lifecycle === 'Blocked') {
|
|
26
|
-
messages.warning(
|
|
24
|
+
messages.warning(`Feature transitioned to Blocked — parent has not reached Implementation`);
|
|
27
25
|
}
|
|
28
26
|
else {
|
|
29
|
-
messages.success(
|
|
27
|
+
messages.success('Feature started');
|
|
30
28
|
}
|
|
31
|
-
console.log(` ${colors.muted(
|
|
32
|
-
console.log(` ${colors.muted(
|
|
33
|
-
console.log(` ${colors.muted(
|
|
29
|
+
console.log(` ${colors.muted('Feature:')} ${feature.name}`);
|
|
30
|
+
console.log(` ${colors.muted('Branch:')} ${colors.accent(feature.branch)}`);
|
|
31
|
+
console.log(` ${colors.muted('Status:')} ${feature.lifecycle}`);
|
|
34
32
|
if (feature.lifecycle !== 'Blocked') {
|
|
35
|
-
console.log(` ${colors.muted(
|
|
33
|
+
console.log(` ${colors.muted('Agent:')} ${colors.success('spawned')} (run ${agentRun.id.slice(0, 8)})`);
|
|
36
34
|
}
|
|
37
35
|
messages.newline();
|
|
38
36
|
}
|
|
39
37
|
catch (error) {
|
|
40
38
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
41
|
-
messages.error(
|
|
39
|
+
messages.error('Failed to start feature', err);
|
|
42
40
|
process.exitCode = 1;
|
|
43
41
|
}
|
|
44
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unarchive.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/unarchive.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"unarchive.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/unarchive.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAuBhD"}
|
|
@@ -14,15 +14,13 @@ import { container } from '../../../../../packages/core/src/infrastructure/di/co
|
|
|
14
14
|
import { ShowFeatureUseCase } from '../../../../../packages/core/src/application/use-cases/features/show-feature.use-case.js';
|
|
15
15
|
import { UnarchiveFeatureUseCase } from '../../../../../packages/core/src/application/use-cases/features/unarchive-feature.use-case.js';
|
|
16
16
|
import { colors, messages } from '../../ui/index.js';
|
|
17
|
-
import { getCliI18n } from '../../i18n.js';
|
|
18
17
|
/**
|
|
19
18
|
* Create the feat unarchive command
|
|
20
19
|
*/
|
|
21
20
|
export function createUnarchiveCommand() {
|
|
22
|
-
const t = getCliI18n().t;
|
|
23
21
|
return new Command('unarchive')
|
|
24
|
-
.description(
|
|
25
|
-
.argument('<id>',
|
|
22
|
+
.description('Restore an archived feature to its previous state')
|
|
23
|
+
.argument('<id>', 'Feature ID or prefix')
|
|
26
24
|
.action(async (featureId) => {
|
|
27
25
|
try {
|
|
28
26
|
const showUseCase = container.resolve(ShowFeatureUseCase);
|
|
@@ -30,14 +28,14 @@ export function createUnarchiveCommand() {
|
|
|
30
28
|
const unarchiveUseCase = container.resolve(UnarchiveFeatureUseCase);
|
|
31
29
|
const restored = await unarchiveUseCase.execute(feature.id);
|
|
32
30
|
messages.newline();
|
|
33
|
-
messages.success(
|
|
34
|
-
console.log(` ${colors.muted(
|
|
35
|
-
console.log(` ${colors.muted(
|
|
31
|
+
messages.success('Feature unarchived');
|
|
32
|
+
console.log(` ${colors.muted('Name:')} ${feature.name}`);
|
|
33
|
+
console.log(` ${colors.muted('Restored:')} ${restored.lifecycle}`);
|
|
36
34
|
messages.newline();
|
|
37
35
|
}
|
|
38
36
|
catch (error) {
|
|
39
37
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
40
|
-
messages.error(
|
|
38
|
+
messages.error('Failed to unarchive feature', err);
|
|
41
39
|
process.exitCode = 1;
|
|
42
40
|
}
|
|
43
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-open.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/ide-open.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ide-open.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/ide-open.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,oBAAoB,IAAI,OAAO,CAwC9C"}
|
|
@@ -14,7 +14,6 @@ import { LaunchIdeUseCase } from '../../../../packages/core/src/application/use-
|
|
|
14
14
|
import { getSettings } from '../../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
15
15
|
import { getIdeEntries } from '../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.js';
|
|
16
16
|
import { messages } from '../ui/index.js';
|
|
17
|
-
import { getCliI18n } from '../i18n.js';
|
|
18
17
|
/** Commander converts --kebab-case flags to camelCase option keys. */
|
|
19
18
|
function toCamelCase(s) {
|
|
20
19
|
return s.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
@@ -31,14 +30,13 @@ function resolveEditorId(options, ideIds) {
|
|
|
31
30
|
return getSettings().environment.defaultEditor;
|
|
32
31
|
}
|
|
33
32
|
export function createIdeOpenCommand() {
|
|
34
|
-
const t = getCliI18n().t;
|
|
35
33
|
const cmd = new Command('ide')
|
|
36
|
-
.description(
|
|
37
|
-
.argument('<feat-id>',
|
|
34
|
+
.description('Open a feature worktree in your IDE')
|
|
35
|
+
.argument('<feat-id>', 'Feature ID or prefix');
|
|
38
36
|
const ideEntries = getIdeEntries();
|
|
39
37
|
const ideIds = ideEntries.map(([id]) => id);
|
|
40
38
|
for (const [id, meta] of ideEntries) {
|
|
41
|
-
cmd.option(`--${id}`,
|
|
39
|
+
cmd.option(`--${id}`, `Open in ${meta.name}`);
|
|
42
40
|
}
|
|
43
41
|
cmd.action(async (featId, options) => {
|
|
44
42
|
try {
|
|
@@ -56,14 +54,11 @@ export function createIdeOpenCommand() {
|
|
|
56
54
|
process.exitCode = 1;
|
|
57
55
|
return;
|
|
58
56
|
}
|
|
59
|
-
messages.success(
|
|
60
|
-
editor: result.editorName,
|
|
61
|
-
path: result.worktreePath,
|
|
62
|
-
}));
|
|
57
|
+
messages.success(`Opened ${result.editorName} at ${result.worktreePath}`);
|
|
63
58
|
}
|
|
64
59
|
catch (error) {
|
|
65
60
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
66
|
-
messages.error(
|
|
61
|
+
messages.error('Failed to open IDE', err);
|
|
67
62
|
process.exitCode = 1;
|
|
68
63
|
}
|
|
69
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/install.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/install.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAgB,oBAAoB,IAAI,OAAO,CAoE9C"}
|
|
@@ -15,7 +15,6 @@ import { ValidateToolAvailabilityUseCase } from '../../../../packages/core/src/a
|
|
|
15
15
|
import { InstallToolUseCase } from '../../../../packages/core/src/application/use-cases/tools/install-tool.use-case.js';
|
|
16
16
|
import { TOOL_METADATA } from '../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.js';
|
|
17
17
|
import { messages, fmt, colors } from '../ui/index.js';
|
|
18
|
-
import { getCliI18n } from '../i18n.js';
|
|
19
18
|
function printToolsList() {
|
|
20
19
|
const tools = Object.entries(TOOL_METADATA).sort(([a], [b]) => a.localeCompare(b));
|
|
21
20
|
for (const [key, meta] of tools) {
|
|
@@ -25,19 +24,16 @@ function printToolsList() {
|
|
|
25
24
|
console.log();
|
|
26
25
|
}
|
|
27
26
|
export function createInstallCommand() {
|
|
28
|
-
const t = getCliI18n().t;
|
|
29
27
|
return new Command('install')
|
|
30
|
-
.description(
|
|
31
|
-
.argument('[tool]',
|
|
32
|
-
|
|
33
|
-
}))
|
|
34
|
-
.option('--how', t('cli:commands.install.howOption'))
|
|
28
|
+
.description('Install a development tool')
|
|
29
|
+
.argument('[tool]', `Tool to install (${Object.keys(TOOL_METADATA).sort().join(', ')})`)
|
|
30
|
+
.option('--how', 'Show installation instructions without executing')
|
|
35
31
|
.action(async (tool, options) => {
|
|
36
32
|
try {
|
|
37
33
|
// No tool specified — show available tools
|
|
38
34
|
if (!tool) {
|
|
39
35
|
console.log();
|
|
40
|
-
console.log(
|
|
36
|
+
console.log(`Run ${fmt.code('shep install <tool>')} with one of these options:`);
|
|
41
37
|
console.log();
|
|
42
38
|
printToolsList();
|
|
43
39
|
return;
|
|
@@ -46,7 +42,7 @@ export function createInstallCommand() {
|
|
|
46
42
|
const metadata = TOOL_METADATA[tool];
|
|
47
43
|
if (!metadata) {
|
|
48
44
|
console.log();
|
|
49
|
-
console.log(t
|
|
45
|
+
console.log(`Hmm, I don't recognize '${tool}'. Did you mean one of these?`);
|
|
50
46
|
console.log();
|
|
51
47
|
printToolsList();
|
|
52
48
|
process.exitCode = 1;
|
|
@@ -61,12 +57,12 @@ export function createInstallCommand() {
|
|
|
61
57
|
const validateUseCase = container.resolve(ValidateToolAvailabilityUseCase);
|
|
62
58
|
const status = await validateUseCase.execute(tool);
|
|
63
59
|
if (status.status === 'available') {
|
|
64
|
-
messages.success(
|
|
60
|
+
messages.success(`${tool} is already installed`);
|
|
65
61
|
return;
|
|
66
62
|
}
|
|
67
63
|
// Tools that don't support auto-install — show instructions instead
|
|
68
64
|
if (metadata.autoInstall === false) {
|
|
69
|
-
messages.warning(
|
|
65
|
+
messages.warning(`${tool} does not support automated installation`);
|
|
70
66
|
printInstallInstructions(metadata);
|
|
71
67
|
return;
|
|
72
68
|
}
|
|
@@ -74,19 +70,16 @@ export function createInstallCommand() {
|
|
|
74
70
|
const installUseCase = container.resolve(InstallToolUseCase);
|
|
75
71
|
const result = await installUseCase.execute(tool, (data) => process.stdout.write(data));
|
|
76
72
|
if (result.status === 'available') {
|
|
77
|
-
messages.success(
|
|
73
|
+
messages.success(`${tool} installed successfully`);
|
|
78
74
|
}
|
|
79
75
|
else {
|
|
80
|
-
messages.error(
|
|
81
|
-
tool,
|
|
82
|
-
error: result.errorMessage ?? 'Unknown error',
|
|
83
|
-
}), new Error(result.errorMessage ?? 'Installation failed'));
|
|
76
|
+
messages.error(`Failed to install ${tool}: ${result.errorMessage ?? 'Unknown error'}`, new Error(result.errorMessage ?? 'Installation failed'));
|
|
84
77
|
process.exitCode = 1;
|
|
85
78
|
}
|
|
86
79
|
}
|
|
87
80
|
catch (error) {
|
|
88
81
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
89
|
-
messages.error(
|
|
82
|
+
messages.error(`Failed to install ${tool}`, err);
|
|
90
83
|
process.exitCode = 1;
|
|
91
84
|
}
|
|
92
85
|
});
|
|
@@ -95,41 +88,40 @@ export function createInstallCommand() {
|
|
|
95
88
|
* Print installation instructions for a tool
|
|
96
89
|
*/
|
|
97
90
|
function printInstallInstructions(metadata) {
|
|
98
|
-
const t = getCliI18n().t;
|
|
99
91
|
console.log();
|
|
100
|
-
console.log(fmt.heading(
|
|
92
|
+
console.log(fmt.heading(`Installation Instructions for ${metadata.name}`));
|
|
101
93
|
console.log();
|
|
102
|
-
console.log(`${fmt.label(
|
|
103
|
-
console.log(`${fmt.label(
|
|
104
|
-
console.log(`${fmt.label(
|
|
105
|
-
console.log(`${fmt.label(
|
|
94
|
+
console.log(`${fmt.label('Name:')} ${metadata.name}`);
|
|
95
|
+
console.log(`${fmt.label('Summary:')} ${metadata.summary}`);
|
|
96
|
+
console.log(`${fmt.label('Description:')} ${metadata.description}`);
|
|
97
|
+
console.log(`${fmt.label('Tags:')} ${metadata.tags.join(', ')}`);
|
|
106
98
|
console.log();
|
|
107
99
|
const binaryDisplay = typeof metadata.binary === 'string'
|
|
108
100
|
? metadata.binary
|
|
109
101
|
: Object.entries(metadata.binary)
|
|
110
102
|
.map(([platform, bin]) => `${bin} (${platform})`)
|
|
111
103
|
.join(', ');
|
|
112
|
-
console.log(`${fmt.label(
|
|
113
|
-
console.log(`${fmt.label(
|
|
104
|
+
console.log(`${fmt.label('Binary:')} ${binaryDisplay}`);
|
|
105
|
+
console.log(`${fmt.label('Package Manager:')} ${metadata.packageManager}`);
|
|
114
106
|
console.log();
|
|
115
107
|
// Print platform-specific commands
|
|
116
|
-
console.log(fmt.heading(
|
|
108
|
+
console.log(fmt.heading('Installation Commands'));
|
|
117
109
|
for (const [platform, command] of Object.entries(metadata.commands)) {
|
|
118
110
|
console.log(`${colors.muted(`[${platform}]`)} ${command}`);
|
|
119
111
|
}
|
|
120
112
|
console.log();
|
|
121
113
|
// Print verify command
|
|
122
|
-
console.log(fmt.heading(
|
|
114
|
+
console.log(fmt.heading('Verify Installation'));
|
|
123
115
|
console.log(`${colors.muted('$')} ${metadata.verifyCommand}`);
|
|
124
116
|
console.log();
|
|
125
117
|
// Print open directory command if available
|
|
126
118
|
if (metadata.openDirectory) {
|
|
127
|
-
console.log(fmt.heading(
|
|
119
|
+
console.log(fmt.heading('Open Directory'));
|
|
128
120
|
console.log(`${colors.muted('$')} ${metadata.openDirectory}`);
|
|
129
121
|
console.log();
|
|
130
122
|
}
|
|
131
123
|
// Print documentation link
|
|
132
|
-
console.log(fmt.heading(
|
|
124
|
+
console.log(fmt.heading('Documentation'));
|
|
133
125
|
console.log(`${colors.muted('→')} ${metadata.documentationUrl}`);
|
|
134
126
|
console.log();
|
|
135
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-viewer.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/log-viewer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"log-viewer.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/log-viewer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAiCD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6FtE"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
import { closeSync, createReadStream, existsSync, openSync, readFileSync, readSync, statSync, watch, } from 'node:fs';
|
|
8
8
|
import { open } from 'node:fs/promises';
|
|
9
9
|
import { messages } from '../ui/index.js';
|
|
10
|
-
import { getCliI18n } from '../i18n.js';
|
|
11
10
|
/** Read the last N lines from a file without loading it all into memory */
|
|
12
11
|
function readTailLines(filePath, n) {
|
|
13
12
|
const stat = statSync(filePath);
|
|
@@ -47,15 +46,13 @@ function readTailLines(filePath, n) {
|
|
|
47
46
|
export async function viewLog(opts) {
|
|
48
47
|
const { logPath, follow, lines: requestedLines, label } = opts;
|
|
49
48
|
if (!existsSync(logPath)) {
|
|
50
|
-
|
|
51
|
-
messages.
|
|
52
|
-
messages.info(t('cli:ui.logViewer.expectedAt', { path: logPath }));
|
|
49
|
+
messages.error(`No log file found for ${label}`);
|
|
50
|
+
messages.info(`Expected: ${logPath}`);
|
|
53
51
|
return false;
|
|
54
52
|
}
|
|
55
53
|
const stat = statSync(logPath);
|
|
56
54
|
if (stat.size === 0) {
|
|
57
|
-
|
|
58
|
-
messages.info(t('cli:ui.logViewer.logEmpty', { label }));
|
|
55
|
+
messages.info(`Log file is empty for ${label}`);
|
|
59
56
|
if (!follow)
|
|
60
57
|
return false;
|
|
61
58
|
// In follow mode, continue — the file will grow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/repo/add.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"add.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/repo/add.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,gBAAgB,IAAI,OAAO,CA0E1C"}
|
|
@@ -16,13 +16,11 @@ import { ListGitHubRepositoriesUseCase } from '../../../../../packages/core/src/
|
|
|
16
16
|
import { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, } from '../../../../../packages/core/src/application/ports/output/services/github-repository-service.interface.js';
|
|
17
17
|
import { messages } from '../../ui/index.js';
|
|
18
18
|
import { githubImportWizard } from '../../../tui/wizards/github-import.wizard.js';
|
|
19
|
-
import { getCliI18n } from '../../i18n.js';
|
|
20
19
|
export function createAddCommand() {
|
|
21
|
-
const t = getCliI18n().t;
|
|
22
20
|
return new Command('add')
|
|
23
|
-
.description(
|
|
24
|
-
.option('--url <url>',
|
|
25
|
-
.option('--dest <path>',
|
|
21
|
+
.description('Import a GitHub repository (clone and register)')
|
|
22
|
+
.option('--url <url>', 'GitHub repository URL or owner/repo shorthand')
|
|
23
|
+
.option('--dest <path>', 'Override clone destination directory')
|
|
26
24
|
.action(async (options) => {
|
|
27
25
|
try {
|
|
28
26
|
const importUseCase = container.resolve(ImportGitHubRepositoryUseCase);
|
|
@@ -49,23 +47,23 @@ export function createAddCommand() {
|
|
|
49
47
|
dest,
|
|
50
48
|
defaultCloneDir,
|
|
51
49
|
});
|
|
52
|
-
messages.success(
|
|
53
|
-
messages.info(
|
|
50
|
+
messages.success(`Repository imported: ${repository.name}`);
|
|
51
|
+
messages.info(`Path: ${repository.path}`);
|
|
54
52
|
}
|
|
55
53
|
catch (error) {
|
|
56
54
|
if (error instanceof GitHubAuthError) {
|
|
57
|
-
messages.error(
|
|
55
|
+
messages.error('GitHub CLI is not authenticated. Run `gh auth login` to sign in.');
|
|
58
56
|
process.exitCode = 1;
|
|
59
57
|
return;
|
|
60
58
|
}
|
|
61
59
|
if (error instanceof GitHubUrlParseError) {
|
|
62
|
-
messages.error(
|
|
63
|
-
messages.info(
|
|
60
|
+
messages.error(`Invalid GitHub URL: ${error.message}`);
|
|
61
|
+
messages.info('Supported formats: https://github.com/owner/repo, git@github.com:owner/repo.git, or owner/repo');
|
|
64
62
|
process.exitCode = 1;
|
|
65
63
|
return;
|
|
66
64
|
}
|
|
67
65
|
if (error instanceof GitHubCloneError) {
|
|
68
|
-
messages.error(
|
|
66
|
+
messages.error(`Clone failed: ${error.message}`);
|
|
69
67
|
process.exitCode = 1;
|
|
70
68
|
return;
|
|
71
69
|
}
|
|
@@ -77,7 +75,7 @@ export function createAddCommand() {
|
|
|
77
75
|
return;
|
|
78
76
|
}
|
|
79
77
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
80
|
-
messages.error(
|
|
78
|
+
messages.error('Failed to import repository', err);
|
|
81
79
|
process.exitCode = 1;
|
|
82
80
|
}
|
|
83
81
|
});
|