@shepai/cli 1.155.0 → 1.156.0-pr485.030e6b4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +276 -161
- package/apis/json-schema/Language.yaml +13 -0
- package/apis/json-schema/UserProfile.yaml +3 -0
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +5 -0
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +7 -0
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +11 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +3 -0
- package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +14 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
- 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 +4 -2
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.d.ts +14 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/049-add-language-preference.js +19 -0
- 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 +3 -2
- package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/_serve.command.js +5 -3
- package/dist/src/presentation/cli/commands/agent/approve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/approve.command.js +9 -4
- package/dist/src/presentation/cli/commands/agent/delete.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/delete.command.js +9 -5
- package/dist/src/presentation/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/index.js +3 -1
- package/dist/src/presentation/cli/commands/agent/logs.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/logs.command.js +7 -5
- package/dist/src/presentation/cli/commands/agent/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/ls.command.js +12 -10
- package/dist/src/presentation/cli/commands/agent/reject.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/reject.command.js +10 -5
- package/dist/src/presentation/cli/commands/agent/resolve-run.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/resolve-run.js +7 -2
- package/dist/src/presentation/cli/commands/agent/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/show.command.js +8 -6
- package/dist/src/presentation/cli/commands/agent/stop.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/stop.command.js +9 -4
- package/dist/src/presentation/cli/commands/daemon/start-daemon.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/daemon/start-daemon.js +10 -8
- package/dist/src/presentation/cli/commands/daemon/stop-daemon.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/daemon/stop-daemon.js +5 -3
- package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/adopt.command.js +14 -12
- package/dist/src/presentation/cli/commands/feat/approve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/approve.command.js +8 -6
- package/dist/src/presentation/cli/commands/feat/archive.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/archive.command.js +10 -8
- package/dist/src/presentation/cli/commands/feat/del.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/del.command.js +17 -15
- package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/index.js +2 -1
- package/dist/src/presentation/cli/commands/feat/logs.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/logs.command.js +8 -6
- package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/ls.command.js +14 -12
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +43 -37
- package/dist/src/presentation/cli/commands/feat/reject.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/reject.command.js +11 -9
- 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 +12 -5
- package/dist/src/presentation/cli/commands/feat/resume.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/resume.command.js +8 -6
- package/dist/src/presentation/cli/commands/feat/review.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/review.command.js +17 -15
- package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/show.command.js +89 -45
- package/dist/src/presentation/cli/commands/feat/start.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/start.command.js +12 -10
- package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/unarchive.command.js +8 -6
- package/dist/src/presentation/cli/commands/ide-open.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ide-open.command.js +10 -5
- package/dist/src/presentation/cli/commands/install.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/install.command.js +29 -21
- package/dist/src/presentation/cli/commands/log-viewer.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/log-viewer.js +6 -3
- package/dist/src/presentation/cli/commands/repo/add.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/add.command.js +12 -10
- package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/index.js +3 -1
- package/dist/src/presentation/cli/commands/repo/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/ls.command.js +11 -9
- package/dist/src/presentation/cli/commands/repo/resolve-repository.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/resolve-repository.js +7 -2
- package/dist/src/presentation/cli/commands/repo/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/show.command.js +21 -10
- package/dist/src/presentation/cli/commands/restart.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/restart.command.js +6 -4
- package/dist/src/presentation/cli/commands/run.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/run.command.js +21 -17
- package/dist/src/presentation/cli/commands/session/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/index.js +3 -1
- package/dist/src/presentation/cli/commands/session/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/ls.command.js +11 -9
- package/dist/src/presentation/cli/commands/session/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/session/show.command.js +26 -18
- package/dist/src/presentation/cli/commands/settings/agent.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/agent.command.js +12 -8
- package/dist/src/presentation/cli/commands/settings/ide.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/ide.command.js +13 -7
- package/dist/src/presentation/cli/commands/settings/index.d.ts +1 -0
- package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/index.js +7 -3
- package/dist/src/presentation/cli/commands/settings/init.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/init.command.js +8 -7
- package/dist/src/presentation/cli/commands/settings/language.command.d.ts +14 -0
- package/dist/src/presentation/cli/commands/settings/language.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/settings/language.command.js +79 -0
- package/dist/src/presentation/cli/commands/settings/model.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/model.command.js +7 -6
- package/dist/src/presentation/cli/commands/settings/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/show.command.js +4 -3
- package/dist/src/presentation/cli/commands/settings/workflow.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/workflow.command.js +20 -18
- package/dist/src/presentation/cli/commands/start.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/start.command.js +5 -3
- package/dist/src/presentation/cli/commands/status.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/status.command.js +32 -24
- package/dist/src/presentation/cli/commands/stop.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/stop.command.js +4 -2
- package/dist/src/presentation/cli/commands/tools.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/tools.command.js +8 -4
- package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ui.command.js +12 -10
- package/dist/src/presentation/cli/commands/upgrade.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/upgrade.command.js +18 -13
- package/dist/src/presentation/cli/commands/version.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/version.command.js +5 -3
- package/dist/src/presentation/cli/i18n.d.ts +41 -0
- package/dist/src/presentation/cli/i18n.d.ts.map +1 -0
- package/dist/src/presentation/cli/i18n.js +100 -0
- package/dist/src/presentation/cli/index.js +13 -1
- package/dist/src/presentation/cli/ui/install-messages.d.ts.map +1 -1
- package/dist/src/presentation/cli/ui/install-messages.js +16 -6
- package/dist/src/presentation/tui/i18n.d.ts +24 -0
- package/dist/src/presentation/tui/i18n.d.ts.map +1 -0
- package/dist/src/presentation/tui/i18n.js +48 -0
- package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +13 -31
- package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/agent-select.prompt.js +17 -15
- package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts +7 -11
- package/dist/src/presentation/tui/prompts/auth-method.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/auth-method.prompt.js +7 -5
- package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/ide-select.prompt.js +2 -1
- 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 +8 -6
- package/dist/src/presentation/tui/wizards/agent-config.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/agent-config.wizard.js +2 -1
- package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/github-import.wizard.js +15 -11
- package/dist/src/presentation/tui/wizards/merge-review.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/merge-review.wizard.js +10 -8
- package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.js +10 -7
- package/dist/src/presentation/tui/wizards/onboarding/steps/workflow-defaults.step.d.ts +0 -41
- 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 +10 -8
- package/dist/src/presentation/tui/wizards/prd-review.wizard.d.ts.map +1 -1
- package/dist/src/presentation/tui/wizards/prd-review.wizard.js +3 -2
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +4 -2
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +3 -0
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
- package/dist/src/presentation/web/app/layout.js +5 -2
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.js +13 -10
- 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 -1
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +5 -2
- 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/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +7 -1
- 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 +3 -1
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +6 -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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +34 -22
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +11 -7
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/branch-sync-status.js +3 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +4 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +5 -3
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +9 -5
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +49 -36
- package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.js +7 -3
- package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.js +4 -2
- package/dist/src/presentation/web/components/common/feature-status-config.d.ts +2 -1
- package/dist/src/presentation/web/components/common/feature-status-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-config.js +6 -6
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.js +1 -1
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js +4 -2
- 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 +6 -4
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +18 -11
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.js +7 -4
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/version-badge/version-badge.js +3 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatComposer.js +3 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.js +7 -5
- package/dist/src/presentation/web/components/features/chat/ChatMessageList.js +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +5 -3
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +5 -3
- 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 +15 -11
- 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 +14 -6
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +2 -2
- 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 +8 -6
- 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 +3 -1
- 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 +4 -2
- 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/language-settings-section.d.ts +5 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.js +54 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts +18 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.js +36 -0
- 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 +89 -77
- 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-shell/app-shell.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +5 -1
- 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 +13 -7
- package/dist/src/presentation/web/components/providers/i18n-provider.d.ts +17 -0
- package/dist/src/presentation/web/components/providers/i18n-provider.d.ts.map +1 -0
- package/dist/src/presentation/web/components/providers/i18n-provider.js +36 -0
- 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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/drawer.js +2 -8
- 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 +3 -3
- package/dist/src/presentation/web/components/ui/sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/sidebar.js +15 -15
- package/dist/src/presentation/web/components/ui/switch.js +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +7 -4
- package/dist/src/presentation/web/hooks/use-sound-action.stories.js +1 -1
- package/dist/src/presentation/web/lib/i18n.d.ts +15 -0
- package/dist/src/presentation/web/lib/i18n.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/i18n.js +64 -0
- package/dist/src/presentation/web/lib/language.d.ts +23 -0
- package/dist/src/presentation/web/lib/language.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/language.js +37 -0
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +2 -0
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.js +4 -0
- package/dist/src/presentation/web/lib/rtl-fonts.d.ts +19 -0
- package/dist/src/presentation/web/lib/rtl-fonts.d.ts.map +1 -0
- package/dist/src/presentation/web/lib/rtl-fonts.js +51 -0
- package/dist/translations/ar/cli.json +613 -0
- package/dist/translations/ar/common.json +55 -0
- package/dist/translations/ar/tui.json +130 -0
- package/dist/translations/ar/web.json +594 -0
- package/dist/translations/de/cli.json +613 -0
- package/dist/translations/de/common.json +55 -0
- package/dist/translations/de/tui.json +109 -0
- package/dist/translations/de/web.json +580 -0
- package/dist/translations/en/cli.json +613 -0
- package/dist/translations/en/common.json +55 -0
- package/dist/translations/en/tui.json +130 -0
- package/dist/translations/en/web.json +594 -0
- package/dist/translations/es/cli.json +613 -0
- package/dist/translations/es/common.json +55 -0
- package/dist/translations/es/tui.json +130 -0
- package/dist/translations/es/web.json +594 -0
- package/dist/translations/fr/cli.json +613 -0
- package/dist/translations/fr/common.json +55 -0
- package/dist/translations/fr/tui.json +130 -0
- package/dist/translations/fr/web.json +594 -0
- package/dist/translations/he/cli.json +613 -0
- package/dist/translations/he/common.json +55 -0
- package/dist/translations/he/tui.json +130 -0
- package/dist/translations/he/web.json +594 -0
- package/dist/translations/pt/cli.json +613 -0
- package/dist/translations/pt/common.json +55 -0
- package/dist/translations/pt/tui.json +130 -0
- package/dist/translations/pt/web.json +594 -0
- package/dist/translations/ru/cli.json +613 -0
- package/dist/translations/ru/common.json +55 -0
- package/dist/translations/ru/tui.json +130 -0
- package/dist/translations/ru/web.json +594 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -2
- 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 +7 -7
- package/web/.next/required-server-files.json +7 -7
- 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 +3 -4
- 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 +3 -4
- 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/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__b4102cc7._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__b4102cc7._.js.map +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 +3 -3
- 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]__209c9597._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__88f7e8e6._.js.map → [root-of-the-server]__209c9597._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__27301e38._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__17ed7ed1._.js.map → [root-of-the-server]__27301e38._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +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]__6fecf886._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__42bf1807._.js.map → [root-of-the-server]__6fecf886._.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]__8d27866c._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8d27866c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9f3504c7._.js +4 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__f80bfc75._.js.map → [root-of-the-server]__9f3504c7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js.map +1 -0
- 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]__dffa13c5._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js.map +1 -0
- 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]__f8dd4422._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js.map +1 -1
- 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/_0dc06d07._.js +3 -0
- package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +1 -0
- 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/_2b858df5._.js +3 -0
- package/web/.next/server/chunks/ssr/{_2c7d0c36._.js.map → _2b858df5._.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/{_67104d9e._.js → _3bcda5d7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_67104d9e._.js.map → _3bcda5d7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_71e47f04._.js → _4e19e8d2._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_71e47f04._.js.map → _4e19e8d2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.js +3 -0
- package/web/.next/server/chunks/ssr/_5119a3df._.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/_5f69c13f._.js +1 -1
- package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6645de45._.js +4 -0
- package/web/.next/server/chunks/ssr/_6645de45._.js.map +1 -0
- 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/_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/_8d733ce4._.js +1 -1
- package/web/.next/server/chunks/ssr/_8d733ce4._.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/{_507a8382._.js → _b9ba2473._.js} +2 -2
- package/web/.next/server/chunks/ssr/_b9ba2473._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_bcaea66b._.js +3 -0
- package/web/.next/server/chunks/ssr/_bcaea66b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_bcfa8457._.js +9 -0
- package/web/.next/server/chunks/ssr/_bcfa8457._.js.map +1 -0
- 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/_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/_d90b0a06._.js +3 -0
- package/web/.next/server/chunks/ssr/_d90b0a06._.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/node_modules__pnpm_8ec2c790._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js.map +1 -1
- 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_ca99d62d._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.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 +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +3 -0
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -0
- 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/{b4cde06eff374c59.js → 0a79dfbb8486b66e.js} +2 -2
- package/web/.next/static/chunks/{f50d8e1825fae0fe.js → 0c87b59a0fdd22dd.js} +1 -1
- package/web/.next/static/chunks/11e4b9d959a6efa7.js +2 -0
- package/web/.next/static/chunks/{f6085a3750b6d8f4.js → 16d35285b664c30c.js} +1 -1
- package/web/.next/static/chunks/2273b81cd7c7d2af.css +1 -0
- package/web/.next/static/chunks/{60bc4daf6904d5a0.js → 24d701de138b762d.js} +1 -1
- package/web/.next/static/chunks/2c5bf14361cf6728.js +1 -0
- package/web/.next/static/chunks/{688971d5bad5dc7c.js → 3deefc76ea55047c.js} +1 -1
- package/web/.next/static/chunks/42e6a21f1d63dc5c.js +1 -0
- package/web/.next/static/chunks/{11091b676d1b3bd4.js → 47477ed4c5871747.js} +1 -1
- package/web/.next/static/chunks/4864ff06a738d58b.js +1 -0
- package/web/.next/static/chunks/{22c459f1877b1e4f.js → 74db65fa7bfb80bd.js} +1 -1
- package/web/.next/static/chunks/9061f08ab7e537a8.js +1 -0
- package/web/.next/static/chunks/919509a19de3205b.js +7 -0
- package/web/.next/static/chunks/{b3109b268c02449c.js → 9aa752f55e6cfcc9.js} +1 -1
- package/web/.next/static/chunks/a72f1d456f0afa8a.js +5 -0
- package/web/.next/static/chunks/ad5b1373e5ba0789.js +1 -0
- package/web/.next/static/chunks/b447e13b2ac5bb65.js +1 -0
- package/web/.next/static/chunks/d2cbeefbc8967b16.js +1 -0
- package/web/.next/static/chunks/d5366257d6b9f855.js +1 -0
- package/web/.next/static/chunks/{5ae60a052ab5f437.js → d6e702c209c413ce.js} +2 -2
- package/web/.next/static/chunks/{97c18bb438f775cf.js → e63d0d79a334fa97.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +0 -4
- package/web/.next/server/chunks/ssr/_2c7d0c36._.js +0 -3
- package/web/.next/server/chunks/ssr/_4b432739._.js +0 -3
- package/web/.next/server/chunks/ssr/_4b432739._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_507a8382._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_8219712a._.js +0 -3
- package/web/.next/server/chunks/ssr/_8219712a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_dd0d2cda._.js +0 -4
- package/web/.next/server/chunks/ssr/_dd0d2cda._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e9a73a63._.js +0 -9
- package/web/.next/server/chunks/ssr/_e9a73a63._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +0 -1
- package/web/.next/static/chunks/08fe461cb16fced0.js +0 -1
- package/web/.next/static/chunks/1a1dc6a09c911b70.js +0 -1
- package/web/.next/static/chunks/21c8953d720bddcc.js +0 -7
- package/web/.next/static/chunks/450bfeed79bb1648.js +0 -1
- package/web/.next/static/chunks/4b2c4a5c35ebb70d.js +0 -1
- package/web/.next/static/chunks/711a2468a2ea3c85.js +0 -1
- package/web/.next/static/chunks/8590bd2e69b24b9e.css +0 -1
- package/web/.next/static/chunks/8ba1c07ef18b15a9.js +0 -1
- package/web/.next/static/chunks/cd54b758f58061d0.js +0 -1
- package/web/.next/static/chunks/d1fa9a48542437bd.js +0 -2
- package/web/.next/static/chunks/de8a83cc1a08a5f1.js +0 -5
- /package/web/.next/static/{gvtDuAeM3WKFc9kJihv1y → _3mdwhLrxBePUb5DWqy3q}/_buildManifest.js +0 -0
- /package/web/.next/static/{gvtDuAeM3WKFc9kJihv1y → _3mdwhLrxBePUb5DWqy3q}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{gvtDuAeM3WKFc9kJihv1y → _3mdwhLrxBePUb5DWqy3q}/_ssgManifest.js +0 -0
|
@@ -9,26 +9,30 @@
|
|
|
9
9
|
import { Command } from 'commander';
|
|
10
10
|
import { container } from '../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
11
|
import { ListToolsUseCase } from '../../../../packages/core/src/application/use-cases/tools/list-tools.use-case.js';
|
|
12
|
+
import { getCliI18n } from '../i18n.js';
|
|
12
13
|
/**
|
|
13
14
|
* Create the tools command group
|
|
14
15
|
*/
|
|
15
16
|
export function createToolsCommand() {
|
|
16
|
-
const
|
|
17
|
+
const t = getCliI18n().t;
|
|
18
|
+
const tools = new Command('tools').description(t('cli:commands.tools.description'));
|
|
17
19
|
tools
|
|
18
20
|
.command('list')
|
|
19
|
-
.description('
|
|
21
|
+
.description(t('cli:commands.tools.list.description'))
|
|
20
22
|
.action(async () => {
|
|
21
23
|
try {
|
|
22
24
|
const listToolsUseCase = container.resolve(ListToolsUseCase);
|
|
23
25
|
const result = await listToolsUseCase.execute();
|
|
24
26
|
for (const tool of result) {
|
|
25
|
-
const statusLabel = tool.status.status === 'available'
|
|
27
|
+
const statusLabel = tool.status.status === 'available'
|
|
28
|
+
? t('cli:commands.tools.list.installed')
|
|
29
|
+
: t('cli:commands.tools.list.missing');
|
|
26
30
|
console.log(`[${statusLabel}] ${tool.id} ${tool.name}`);
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
catch (error) {
|
|
30
34
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
31
|
-
console.error(
|
|
35
|
+
console.error(t('cli:commands.tools.list.failedToList', { error: err.message }));
|
|
32
36
|
process.exitCode = 1;
|
|
33
37
|
}
|
|
34
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/ui.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/ui.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAkC1D;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CA+FzC"}
|
|
@@ -24,10 +24,11 @@ import { initializePrSyncWatcher, getPrSyncWatcher, } from '../../../../packages
|
|
|
24
24
|
import { getExistingConnection } from '../../../../packages/core/src/infrastructure/persistence/sqlite/connection.js';
|
|
25
25
|
import { BrowserOpenerService } from '../../../../packages/core/src/infrastructure/services/browser-opener.service.js';
|
|
26
26
|
import { colors, fmt, messages } from '../ui/index.js';
|
|
27
|
+
import { getCliI18n } from '../i18n.js';
|
|
27
28
|
function parsePort(value) {
|
|
28
29
|
const port = parseInt(value, 10);
|
|
29
30
|
if (isNaN(port) || port < 1024 || port > 65535) {
|
|
30
|
-
throw new InvalidArgumentError('
|
|
31
|
+
throw new InvalidArgumentError(getCliI18n().t('cli:commands.ui.portValidation'));
|
|
31
32
|
}
|
|
32
33
|
return port;
|
|
33
34
|
}
|
|
@@ -35,10 +36,11 @@ function parsePort(value) {
|
|
|
35
36
|
* Create the ui command
|
|
36
37
|
*/
|
|
37
38
|
export function createUiCommand() {
|
|
39
|
+
const t = getCliI18n().t;
|
|
38
40
|
return new Command('ui')
|
|
39
|
-
.description('
|
|
40
|
-
.option('-p, --port <number>', '
|
|
41
|
-
.option('--no-open', '
|
|
41
|
+
.description(t('cli:commands.ui.description'))
|
|
42
|
+
.option('-p, --port <number>', t('cli:commands.ui.portOption'), parsePort)
|
|
43
|
+
.option('--no-open', t('cli:commands.ui.noOpenOption'))
|
|
42
44
|
.addHelpText('after', `
|
|
43
45
|
Examples:
|
|
44
46
|
$ shep ui Start on default port (4050)
|
|
@@ -53,8 +55,8 @@ Examples:
|
|
|
53
55
|
const versionService = container.resolve('IVersionService');
|
|
54
56
|
setVersionEnvVars(versionService.getVersion());
|
|
55
57
|
messages.newline();
|
|
56
|
-
console.log(fmt.heading('
|
|
57
|
-
console.log(colors.muted(
|
|
58
|
+
console.log(fmt.heading(t('cli:commands.ui.heading')));
|
|
59
|
+
console.log(colors.muted(dev ? t('cli:commands.ui.startingDev') : t('cli:commands.ui.starting')));
|
|
58
60
|
messages.newline();
|
|
59
61
|
const service = container.resolve('IWebServerService');
|
|
60
62
|
await service.start(port, dir, dev);
|
|
@@ -72,8 +74,8 @@ Examples:
|
|
|
72
74
|
initializePrSyncWatcher(featureRepo, runRepo, gitPrService, notificationService, undefined, db, gitForkService);
|
|
73
75
|
getPrSyncWatcher().start();
|
|
74
76
|
const url = `http://localhost:${port}`;
|
|
75
|
-
messages.success(
|
|
76
|
-
messages.info('
|
|
77
|
+
messages.success(t('cli:commands.ui.serverReady', { url: fmt.code(url) }));
|
|
78
|
+
messages.info(t('cli:commands.ui.pressCtrlC'));
|
|
77
79
|
messages.newline();
|
|
78
80
|
// Auto-open browser (unless --no-open)
|
|
79
81
|
if (options.open !== false) {
|
|
@@ -88,7 +90,7 @@ Examples:
|
|
|
88
90
|
return;
|
|
89
91
|
isShuttingDown = true;
|
|
90
92
|
messages.newline();
|
|
91
|
-
messages.info('
|
|
93
|
+
messages.info(t('cli:commands.ui.shuttingDown'));
|
|
92
94
|
// Force exit after 5s if graceful shutdown stalls
|
|
93
95
|
const forceExit = setTimeout(() => process.exit(0), 5000);
|
|
94
96
|
forceExit.unref();
|
|
@@ -102,7 +104,7 @@ Examples:
|
|
|
102
104
|
}
|
|
103
105
|
catch (error) {
|
|
104
106
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
105
|
-
messages.error('
|
|
107
|
+
messages.error(t('cli:commands.ui.failedToStart'), err);
|
|
106
108
|
process.exitCode = 1;
|
|
107
109
|
}
|
|
108
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/upgrade.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,YAAY,EAAqB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/upgrade.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAS9E,KAAK,OAAO,GAAG,OAAO,YAAY,CAAC;AA8EnC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,OAAsB,GAAG,OAAO,CAqE7E"}
|
|
@@ -10,6 +10,7 @@ import { Command } from 'commander';
|
|
|
10
10
|
import { spawn as defaultSpawn } from 'node:child_process';
|
|
11
11
|
import { container } from '../../../../packages/core/src/infrastructure/di/container.js';
|
|
12
12
|
import { messages } from '../ui/index.js';
|
|
13
|
+
import { getCliI18n } from '../i18n.js';
|
|
13
14
|
import { stopDaemon } from './daemon/stop-daemon.js';
|
|
14
15
|
import { startDaemon } from './daemon/start-daemon.js';
|
|
15
16
|
const VERSION_CHECK_TIMEOUT_MS = 10_000;
|
|
@@ -31,7 +32,7 @@ function getLatestVersion(spawnFn) {
|
|
|
31
32
|
if (!settled) {
|
|
32
33
|
settled = true;
|
|
33
34
|
child.kill();
|
|
34
|
-
messages.warning(
|
|
35
|
+
messages.warning(getCliI18n().t('cli:commands.upgrade.versionCheckTimeout'));
|
|
35
36
|
resolve(null);
|
|
36
37
|
}
|
|
37
38
|
}, VERSION_CHECK_TIMEOUT_MS);
|
|
@@ -54,7 +55,7 @@ function getLatestVersion(spawnFn) {
|
|
|
54
55
|
if (!settled) {
|
|
55
56
|
settled = true;
|
|
56
57
|
clearTimeout(timeout);
|
|
57
|
-
messages.warning('
|
|
58
|
+
messages.warning(getCliI18n().t('cli:commands.upgrade.versionCheckFailed'));
|
|
58
59
|
resolve(null);
|
|
59
60
|
}
|
|
60
61
|
});
|
|
@@ -82,8 +83,9 @@ function runNpmInstall(spawnFn) {
|
|
|
82
83
|
* Create the upgrade command
|
|
83
84
|
*/
|
|
84
85
|
export function createUpgradeCommand(spawnFn = defaultSpawn) {
|
|
86
|
+
const t = getCliI18n().t;
|
|
85
87
|
return new Command('upgrade')
|
|
86
|
-
.description('
|
|
88
|
+
.description(t('cli:commands.upgrade.description'))
|
|
87
89
|
.action(async () => {
|
|
88
90
|
try {
|
|
89
91
|
const versionService = container.resolve('IVersionService');
|
|
@@ -92,15 +94,18 @@ export function createUpgradeCommand(spawnFn = defaultSpawn) {
|
|
|
92
94
|
const latestVersion = await getLatestVersion(spawnFn);
|
|
93
95
|
// 2. Compare — exit early if up to date
|
|
94
96
|
if (latestVersion && latestVersion === currentVersion) {
|
|
95
|
-
messages.success(
|
|
97
|
+
messages.success(t('cli:commands.upgrade.alreadyUpToDate', { version: currentVersion }));
|
|
96
98
|
return;
|
|
97
99
|
}
|
|
98
100
|
// 3. Show what we're doing
|
|
99
101
|
if (latestVersion) {
|
|
100
|
-
messages.info(
|
|
102
|
+
messages.info(t('cli:commands.upgrade.upgradingFromTo', {
|
|
103
|
+
current: currentVersion,
|
|
104
|
+
latest: latestVersion,
|
|
105
|
+
}));
|
|
101
106
|
}
|
|
102
107
|
else {
|
|
103
|
-
messages.info(
|
|
108
|
+
messages.info(t('cli:commands.upgrade.upgradingToLatest', { current: currentVersion }));
|
|
104
109
|
}
|
|
105
110
|
// 4. Check daemon state before install (FR-1)
|
|
106
111
|
const daemonService = container.resolve('IDaemonService');
|
|
@@ -108,7 +113,7 @@ export function createUpgradeCommand(spawnFn = defaultSpawn) {
|
|
|
108
113
|
const daemonWasRunning = daemonState !== null && daemonService.isAlive(daemonState.pid);
|
|
109
114
|
const previousPort = daemonWasRunning ? daemonState.port : undefined;
|
|
110
115
|
if (daemonWasRunning) {
|
|
111
|
-
messages.info('
|
|
116
|
+
messages.info(t('cli:commands.upgrade.stoppingDaemon'));
|
|
112
117
|
await stopDaemon(daemonService);
|
|
113
118
|
}
|
|
114
119
|
// 5. Run npm i -g @shepai/cli@latest; always restore daemon in finally (FR-2, FR-3)
|
|
@@ -118,27 +123,27 @@ export function createUpgradeCommand(spawnFn = defaultSpawn) {
|
|
|
118
123
|
}
|
|
119
124
|
finally {
|
|
120
125
|
if (daemonWasRunning) {
|
|
121
|
-
messages.info('
|
|
126
|
+
messages.info(t('cli:commands.upgrade.restartingDaemon'));
|
|
122
127
|
await startDaemon({ port: previousPort });
|
|
123
|
-
messages.success('
|
|
128
|
+
messages.success(t('cli:commands.upgrade.daemonRestarted'));
|
|
124
129
|
}
|
|
125
130
|
}
|
|
126
131
|
if (installExitCode === 0) {
|
|
127
|
-
messages.success('
|
|
132
|
+
messages.success(t('cli:commands.upgrade.upgradeSuccess'));
|
|
128
133
|
}
|
|
129
134
|
else {
|
|
130
135
|
if (daemonWasRunning) {
|
|
131
|
-
messages.error('
|
|
136
|
+
messages.error(t('cli:commands.upgrade.upgradeFailedDaemonRestored'));
|
|
132
137
|
}
|
|
133
138
|
else {
|
|
134
|
-
messages.error('
|
|
139
|
+
messages.error(t('cli:commands.upgrade.upgradeFailed'));
|
|
135
140
|
}
|
|
136
141
|
process.exitCode = 1;
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
144
|
catch (error) {
|
|
140
145
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
141
|
-
messages.error('
|
|
146
|
+
messages.error(t('cli:commands.upgrade.upgradeFailed'), err);
|
|
142
147
|
process.exitCode = 1;
|
|
143
148
|
}
|
|
144
149
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/version.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"version.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/version.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAgB9C"}
|
|
@@ -17,19 +17,21 @@
|
|
|
17
17
|
import { Command } from 'commander';
|
|
18
18
|
import { container } from '../../../../packages/core/src/infrastructure/di/container.js';
|
|
19
19
|
import { colors, fmt, messages } from '../ui/index.js';
|
|
20
|
+
import { getCliI18n } from '../i18n.js';
|
|
20
21
|
/**
|
|
21
22
|
* Create the version command
|
|
22
23
|
*/
|
|
23
24
|
export function createVersionCommand() {
|
|
24
|
-
|
|
25
|
+
const t = getCliI18n().t;
|
|
26
|
+
return new Command('version').description(t('cli:commands.version.description')).action(() => {
|
|
25
27
|
const versionService = container.resolve('IVersionService');
|
|
26
28
|
const info = versionService.getVersion();
|
|
27
29
|
messages.newline();
|
|
28
30
|
console.log(`${fmt.heading(info.name)} ${fmt.version(info.version)}`);
|
|
29
31
|
console.log(colors.muted(info.description));
|
|
30
32
|
messages.newline();
|
|
31
|
-
console.log(`${fmt.label('
|
|
32
|
-
console.log(`${fmt.label('
|
|
33
|
+
console.log(`${fmt.label(t('cli:commands.version.nodeLabel'))} ${process.version}`);
|
|
34
|
+
console.log(`${fmt.label(t('cli:commands.version.platformLabel'))} ${process.platform} ${process.arch}`);
|
|
33
35
|
messages.newline();
|
|
34
36
|
});
|
|
35
37
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI i18n initialization module.
|
|
3
|
+
*
|
|
4
|
+
* Configures i18next for the CLI presentation layer using the
|
|
5
|
+
* common and cli namespaces. Translation files are loaded from
|
|
6
|
+
* the shared translations/ directory at the project root.
|
|
7
|
+
*/
|
|
8
|
+
import { type i18n } from 'i18next';
|
|
9
|
+
declare const FALLBACK_LANGUAGE = "en";
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the translations directory. In development this is at the
|
|
12
|
+
* project root; in production (dist/) it is resolved relative to this
|
|
13
|
+
* file's location.
|
|
14
|
+
*/
|
|
15
|
+
declare function getTranslationsDir(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Load a single namespace JSON file for a given locale.
|
|
18
|
+
* Returns an empty object if the file does not exist or cannot be parsed.
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadNamespace(translationsDir: string, locale: string, ns: string): Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Build i18next resources object by loading namespace files from disk.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildResources(translationsDir: string, language: string, namespaces: readonly string[]): Record<string, Record<string, Record<string, unknown>>>;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize i18next for the CLI layer.
|
|
27
|
+
*
|
|
28
|
+
* Creates a dedicated i18next instance (via createInstance) to avoid
|
|
29
|
+
* conflicts with other presentation layers sharing the same process.
|
|
30
|
+
*
|
|
31
|
+
* @param language - BCP-47 language code (e.g. 'en', 'ru', 'ar')
|
|
32
|
+
* @returns The initialized i18next instance
|
|
33
|
+
*/
|
|
34
|
+
export declare function initI18n(language: string): Promise<i18n>;
|
|
35
|
+
/**
|
|
36
|
+
* Get the initialized CLI i18next instance.
|
|
37
|
+
* Throws if initI18n() has not been called.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getCliI18n(): i18n;
|
|
40
|
+
export { FALLBACK_LANGUAGE, getTranslationsDir };
|
|
41
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAgB,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAM7C,QAAA,MAAM,iBAAiB,OAAO,CAAC;AAE/B;;;;GAIG;AACH,iBAAS,kBAAkB,IAAI,MAAM,CAcpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAazD;AAKD;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAKjC;AAED,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI i18n initialization module.
|
|
3
|
+
*
|
|
4
|
+
* Configures i18next for the CLI presentation layer using the
|
|
5
|
+
* common and cli namespaces. Translation files are loaded from
|
|
6
|
+
* the shared translations/ directory at the project root.
|
|
7
|
+
*/
|
|
8
|
+
import i18next from 'i18next';
|
|
9
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
10
|
+
import { resolve, dirname } from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
const NAMESPACES = ['common', 'cli'];
|
|
13
|
+
const FALLBACK_LANGUAGE = 'en';
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the translations directory. In development this is at the
|
|
16
|
+
* project root; in production (dist/) it is resolved relative to this
|
|
17
|
+
* file's location.
|
|
18
|
+
*/
|
|
19
|
+
function getTranslationsDir() {
|
|
20
|
+
const thisDir = dirname(fileURLToPath(import.meta.url));
|
|
21
|
+
// Walk up from src/presentation/cli/ (or dist/src/presentation/cli/)
|
|
22
|
+
// to reach the project root where translations/ lives.
|
|
23
|
+
const candidates = [
|
|
24
|
+
resolve(thisDir, '../../../translations'),
|
|
25
|
+
resolve(thisDir, '../../../../translations'),
|
|
26
|
+
];
|
|
27
|
+
for (const candidate of candidates) {
|
|
28
|
+
if (existsSync(candidate)) {
|
|
29
|
+
return candidate;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return candidates[0];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Load a single namespace JSON file for a given locale.
|
|
36
|
+
* Returns an empty object if the file does not exist or cannot be parsed.
|
|
37
|
+
*/
|
|
38
|
+
export function loadNamespace(translationsDir, locale, ns) {
|
|
39
|
+
const filePath = resolve(translationsDir, locale, `${ns}.json`);
|
|
40
|
+
try {
|
|
41
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
42
|
+
return JSON.parse(content);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build i18next resources object by loading namespace files from disk.
|
|
50
|
+
*/
|
|
51
|
+
export function buildResources(translationsDir, language, namespaces) {
|
|
52
|
+
const resources = {};
|
|
53
|
+
const locales = language === FALLBACK_LANGUAGE ? [FALLBACK_LANGUAGE] : [language, FALLBACK_LANGUAGE];
|
|
54
|
+
for (const locale of locales) {
|
|
55
|
+
resources[locale] = {};
|
|
56
|
+
for (const ns of namespaces) {
|
|
57
|
+
resources[locale][ns] = loadNamespace(translationsDir, locale, ns);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return resources;
|
|
61
|
+
}
|
|
62
|
+
/** Module-level CLI i18next instance. */
|
|
63
|
+
let cliI18n;
|
|
64
|
+
/**
|
|
65
|
+
* Initialize i18next for the CLI layer.
|
|
66
|
+
*
|
|
67
|
+
* Creates a dedicated i18next instance (via createInstance) to avoid
|
|
68
|
+
* conflicts with other presentation layers sharing the same process.
|
|
69
|
+
*
|
|
70
|
+
* @param language - BCP-47 language code (e.g. 'en', 'ru', 'ar')
|
|
71
|
+
* @returns The initialized i18next instance
|
|
72
|
+
*/
|
|
73
|
+
export async function initI18n(language) {
|
|
74
|
+
const translationsDir = getTranslationsDir();
|
|
75
|
+
const resources = buildResources(translationsDir, language, NAMESPACES);
|
|
76
|
+
const instance = i18next.createInstance();
|
|
77
|
+
await instance.init({
|
|
78
|
+
lng: language,
|
|
79
|
+
fallbackLng: FALLBACK_LANGUAGE,
|
|
80
|
+
defaultNS: 'common',
|
|
81
|
+
ns: [...NAMESPACES],
|
|
82
|
+
resources,
|
|
83
|
+
interpolation: {
|
|
84
|
+
escapeValue: false, // CLI output is not HTML
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
cliI18n = instance;
|
|
88
|
+
return instance;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get the initialized CLI i18next instance.
|
|
92
|
+
* Throws if initI18n() has not been called.
|
|
93
|
+
*/
|
|
94
|
+
export function getCliI18n() {
|
|
95
|
+
if (!cliI18n) {
|
|
96
|
+
throw new Error('CLI i18n not initialized. Call initI18n() first.');
|
|
97
|
+
}
|
|
98
|
+
return cliI18n;
|
|
99
|
+
}
|
|
100
|
+
export { FALLBACK_LANGUAGE, getTranslationsDir };
|
|
@@ -54,6 +54,8 @@ import { startDaemon } from './commands/daemon/start-daemon.js';
|
|
|
54
54
|
import { initializeContainer, container } from '../../../packages/core/src/infrastructure/di/container.js';
|
|
55
55
|
import { InitializeSettingsUseCase } from '../../../packages/core/src/application/use-cases/settings/initialize-settings.use-case.js';
|
|
56
56
|
import { initializeSettings } from '../../../packages/core/src/infrastructure/services/settings.service.js';
|
|
57
|
+
import { initI18n as initCliI18n } from './i18n.js';
|
|
58
|
+
import { initI18n as initTuiI18n } from '../tui/i18n.js';
|
|
57
59
|
/**
|
|
58
60
|
* Bootstrap function - initializes all dependencies before CLI starts.
|
|
59
61
|
* Performs async initialization (database, settings) before parsing commands.
|
|
@@ -82,7 +84,17 @@ async function bootstrap() {
|
|
|
82
84
|
messages.error('Failed to initialize settings', err);
|
|
83
85
|
throw error;
|
|
84
86
|
}
|
|
85
|
-
// Step 3:
|
|
87
|
+
// Step 3: Initialize i18n for CLI and TUI layers
|
|
88
|
+
try {
|
|
89
|
+
const { getSettings } = await import('../../../packages/core/src/infrastructure/services/settings.service.js');
|
|
90
|
+
const currentSettings = getSettings();
|
|
91
|
+
const language = currentSettings.user?.preferredLanguage ?? 'en';
|
|
92
|
+
await Promise.all([initCliI18n(language), initTuiI18n(language)]);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// i18n init failure is non-fatal — fall back to English
|
|
96
|
+
}
|
|
97
|
+
// Step 4: Set up Commander CLI
|
|
86
98
|
const versionService = container.resolve('IVersionService');
|
|
87
99
|
const { version, description } = versionService.getVersion();
|
|
88
100
|
const program = new Command()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-messages.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/ui/install-messages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"install-messages.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/ui/install-messages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,uCAAuC;AACvC,eAAO,MAAM,eAAe;IAC1B,6CAA6C;+BAClB,MAAM,GAAG,IAAI;IAKxC,mCAAmC;6BACV,MAAM,GAAG,IAAI;IAKtC,mCAAmC;4BACX,MAAM,gBAAgB,MAAM,GAAG,IAAI;IAQ3D,iCAAiC;0BACX,MAAM,kBAAkB,MAAM,EAAE,GAAG,IAAI;IAW7D,4CAA4C;mCACb,MAAM,GAAG,IAAI;IAK5C,4CAA4C;8BAClB,MAAM,GAAG,IAAI;CAKxC,CAAC"}
|
|
@@ -6,31 +6,41 @@
|
|
|
6
6
|
* progress indicators, and result messages.
|
|
7
7
|
*/
|
|
8
8
|
import { colors, fmt, messages } from './index.js';
|
|
9
|
+
import { getCliI18n } from '../i18n.js';
|
|
9
10
|
/** Messages for the install command */
|
|
10
11
|
export const installMessages = {
|
|
11
12
|
/** Display tool already available message */
|
|
12
13
|
alreadyInstalled(toolName) {
|
|
13
|
-
|
|
14
|
+
const t = getCliI18n().t;
|
|
15
|
+
messages.success(t('cli:ui.installMessages.alreadyInstalled', { tool: toolName }));
|
|
14
16
|
},
|
|
15
17
|
/** Display installation success */
|
|
16
18
|
installSuccess(toolName) {
|
|
17
|
-
|
|
19
|
+
const t = getCliI18n().t;
|
|
20
|
+
messages.success(t('cli:ui.installMessages.installSuccess', { tool: toolName }));
|
|
18
21
|
},
|
|
19
22
|
/** Display installation failure */
|
|
20
23
|
installFailed(toolName, errorMessage) {
|
|
21
|
-
|
|
24
|
+
const t = getCliI18n().t;
|
|
25
|
+
messages.error(t('cli:ui.installMessages.installFailed', { tool: toolName, error: errorMessage }), new Error(errorMessage));
|
|
22
26
|
},
|
|
23
27
|
/** Display unknown tool error */
|
|
24
28
|
unknownTool(toolName, availableTools) {
|
|
25
|
-
|
|
29
|
+
const t = getCliI18n().t;
|
|
30
|
+
messages.error(t('cli:ui.installMessages.unknownTool', {
|
|
31
|
+
tool: toolName,
|
|
32
|
+
available: availableTools.join(', '),
|
|
33
|
+
}), new Error(`Unknown tool: ${toolName}`));
|
|
26
34
|
},
|
|
27
35
|
/** Display checking availability message */
|
|
28
36
|
checkingAvailability(toolName) {
|
|
29
|
-
|
|
37
|
+
const t = getCliI18n().t;
|
|
38
|
+
console.log(colors.muted(t('cli:ui.installMessages.checkingAvailability', { tool: toolName })));
|
|
30
39
|
},
|
|
31
40
|
/** Display starting installation message */
|
|
32
41
|
startingInstall(toolName) {
|
|
33
|
-
|
|
42
|
+
const t = getCliI18n().t;
|
|
43
|
+
console.log(fmt.heading(t('cli:ui.installMessages.installingHeading', { tool: toolName })));
|
|
34
44
|
console.log();
|
|
35
45
|
},
|
|
36
46
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI i18n initialization module.
|
|
3
|
+
*
|
|
4
|
+
* Configures i18next for the TUI presentation layer using the
|
|
5
|
+
* common and tui namespaces. Shares the same translation file
|
|
6
|
+
* loading infrastructure as the CLI module.
|
|
7
|
+
*/
|
|
8
|
+
import { type i18n } from 'i18next';
|
|
9
|
+
/**
|
|
10
|
+
* Initialize i18next for the TUI layer.
|
|
11
|
+
*
|
|
12
|
+
* Creates a dedicated i18next instance (via createInstance) to avoid
|
|
13
|
+
* conflicts with the CLI instance in the same process.
|
|
14
|
+
*
|
|
15
|
+
* @param language - BCP-47 language code (e.g. 'en', 'ru', 'ar')
|
|
16
|
+
* @returns The initialized i18next instance
|
|
17
|
+
*/
|
|
18
|
+
export declare function initI18n(language: string): Promise<i18n>;
|
|
19
|
+
/**
|
|
20
|
+
* Get the initialized TUI i18next instance.
|
|
21
|
+
* Throws if initI18n() has not been called.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getTuiI18n(): i18n;
|
|
24
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/presentation/tui/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAgB,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAQ7C;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAKjC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI i18n initialization module.
|
|
3
|
+
*
|
|
4
|
+
* Configures i18next for the TUI presentation layer using the
|
|
5
|
+
* common and tui namespaces. Shares the same translation file
|
|
6
|
+
* loading infrastructure as the CLI module.
|
|
7
|
+
*/
|
|
8
|
+
import i18next from 'i18next';
|
|
9
|
+
import { FALLBACK_LANGUAGE, getTranslationsDir, buildResources } from '../../presentation/cli/i18n.js';
|
|
10
|
+
const NAMESPACES = ['common', 'tui'];
|
|
11
|
+
/** Module-level TUI i18next instance. */
|
|
12
|
+
let tuiI18n;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize i18next for the TUI layer.
|
|
15
|
+
*
|
|
16
|
+
* Creates a dedicated i18next instance (via createInstance) to avoid
|
|
17
|
+
* conflicts with the CLI instance in the same process.
|
|
18
|
+
*
|
|
19
|
+
* @param language - BCP-47 language code (e.g. 'en', 'ru', 'ar')
|
|
20
|
+
* @returns The initialized i18next instance
|
|
21
|
+
*/
|
|
22
|
+
export async function initI18n(language) {
|
|
23
|
+
const translationsDir = getTranslationsDir();
|
|
24
|
+
const resources = buildResources(translationsDir, language, NAMESPACES);
|
|
25
|
+
const instance = i18next.createInstance();
|
|
26
|
+
await instance.init({
|
|
27
|
+
lng: language,
|
|
28
|
+
fallbackLng: FALLBACK_LANGUAGE,
|
|
29
|
+
defaultNS: 'common',
|
|
30
|
+
ns: [...NAMESPACES],
|
|
31
|
+
resources,
|
|
32
|
+
interpolation: {
|
|
33
|
+
escapeValue: false,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
tuiI18n = instance;
|
|
37
|
+
return instance;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get the initialized TUI i18next instance.
|
|
41
|
+
* Throws if initI18n() has not been called.
|
|
42
|
+
*/
|
|
43
|
+
export function getTuiI18n() {
|
|
44
|
+
if (!tuiI18n) {
|
|
45
|
+
throw new Error('TUI i18n not initialized. Call initI18n() first.');
|
|
46
|
+
}
|
|
47
|
+
return tuiI18n;
|
|
48
|
+
}
|
|
@@ -12,37 +12,19 @@ import { AgentType } from '../../../../packages/core/src/domain/generated/output
|
|
|
12
12
|
* as disabled with a "Coming Soon" badge.
|
|
13
13
|
*/
|
|
14
14
|
export declare function createAgentSelectConfig(): {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}, {
|
|
29
|
-
readonly name: "Cursor";
|
|
30
|
-
readonly value: AgentType.Cursor;
|
|
31
|
-
readonly description: "Cursor AI coding agent";
|
|
32
|
-
}, {
|
|
33
|
-
readonly name: "Dev (Mock)";
|
|
34
|
-
readonly value: AgentType.Dev;
|
|
35
|
-
readonly description: "Local development mock — no agent binary required";
|
|
36
|
-
}, {
|
|
37
|
-
readonly name: "Aider";
|
|
38
|
-
readonly value: AgentType.Aider;
|
|
39
|
-
readonly disabled: "(Coming Soon)";
|
|
40
|
-
}, {
|
|
41
|
-
readonly name: "Continue";
|
|
42
|
-
readonly value: AgentType.Continue;
|
|
43
|
-
readonly disabled: "(Coming Soon)";
|
|
44
|
-
}];
|
|
45
|
-
readonly theme: {
|
|
15
|
+
message: string;
|
|
16
|
+
choices: ({
|
|
17
|
+
name: string;
|
|
18
|
+
value: AgentType;
|
|
19
|
+
description: string;
|
|
20
|
+
disabled?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
name: string;
|
|
23
|
+
value: AgentType;
|
|
24
|
+
disabled: string;
|
|
25
|
+
description?: undefined;
|
|
26
|
+
})[];
|
|
27
|
+
theme: {
|
|
46
28
|
readonly prefix: {
|
|
47
29
|
readonly idle: string;
|
|
48
30
|
readonly done: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-select.prompt.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/tui/prompts/agent-select.prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-select.prompt.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/tui/prompts/agent-select.prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD;;;;;GAKG;AACH,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;EA2CtC"}
|