@shepai/cli 1.165.0 → 1.166.0-pr513.7e8c227
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/Feature.yaml +17 -5
- package/apis/json-schema/FeatureMode.yaml +8 -0
- package/apis/json-schema/SdlcLifecycle.yaml +1 -0
- package/apis/json-schema/StageTimeouts.yaml +7 -2
- package/apis/json-schema/WorkflowConfig.yaml +10 -5
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -2
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -3
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +3 -2
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +18 -7
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +3 -2
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +13 -0
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +40 -0
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +125 -0
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
- 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 -3
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +2 -1
- package/dist/packages/core/src/domain/generated/output.d.ts +28 -6
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +7 -0
- package/dist/packages/core/src/domain/lifecycle-gates.d.ts +21 -6
- package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
- package/dist/packages/core/src/domain/lifecycle-gates.js +25 -6
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +10 -4
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -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 +10 -2
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +19 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +46 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.d.ts +15 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.js +22 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +37 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +17 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +5 -3
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +362 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +72 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +20 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +68 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +19 -8
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +18 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +52 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +24 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +38 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +31 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +240 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +21 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +134 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +17 -0
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +7 -4
- package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +12 -0
- package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/feat/feedback.command.js +64 -0
- package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/index.js +5 -1
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +18 -5
- package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +13 -0
- package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/feat/promote.command.js +41 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +3 -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 -3
- package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +9 -0
- package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/discard-exploration.js +29 -0
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +2 -1
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +2 -1
- package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +11 -0
- package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/promote-exploration.js +21 -0
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +12 -0
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +40 -0
- package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-feature-node-data.js +4 -2
- package/dist/src/presentation/web/app/build-graph-nodes.js +4 -2
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +3 -0
- 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 +65 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +3 -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 +15 -11
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +2 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +8 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +33 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +33 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +6 -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 +16 -4
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +11 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +34 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +70 -0
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +6 -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 +12 -0
- 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 +7 -2
- 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 +14 -6
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +11 -0
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +5 -3
- package/dist/src/presentation/web/components/ui/toggle-group.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/toggle-group.js +22 -0
- package/dist/src/presentation/web/components/ui/toggle.d.ts +10 -0
- package/dist/src/presentation/web/components/ui/toggle.d.ts.map +1 -0
- package/dist/src/presentation/web/components/ui/toggle.js +26 -0
- package/dist/translations/ar/cli.json +24 -0
- package/dist/translations/ar/web.json +8 -2
- package/dist/translations/de/cli.json +24 -0
- package/dist/translations/de/web.json +8 -2
- package/dist/translations/en/cli.json +24 -0
- package/dist/translations/en/web.json +8 -2
- package/dist/translations/es/cli.json +24 -0
- package/dist/translations/es/web.json +8 -2
- package/dist/translations/fr/cli.json +24 -0
- package/dist/translations/fr/web.json +8 -2
- package/dist/translations/he/cli.json +24 -0
- package/dist/translations/he/web.json +8 -2
- package/dist/translations/pt/cli.json +24 -0
- package/dist/translations/pt/web.json +8 -2
- package/dist/translations/ru/cli.json +24 -0
- package/dist/translations/ru/web.json +8 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- 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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +119 -74
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +119 -74
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +119 -74
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +119 -74
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.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 +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/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 +9 -9
- 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 +11 -11
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/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/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.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]__c78383b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.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]__1abe77bb._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.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]__4ed9b909._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__58a5b819._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__58a5b819._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__67a193c8._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__67a193c8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__754fb18e._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__754fb18e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.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]__96ba046b._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__96ba046b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dffa13c5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.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/_0727935d._.js +1 -1
- package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0dc06d07._.js +1 -1
- package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_12c98a3d._.js +3 -0
- package/web/.next/server/chunks/ssr/_12c98a3d._.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/_18886033._.js +1 -1
- package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
- 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/{_44591fa7._.js → _5e0c43c0._.js} +2 -2
- package/web/.next/server/chunks/ssr/_5e0c43c0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_5eb460b1._.js +3 -0
- package/web/.next/server/chunks/ssr/_5eb460b1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_997b560b._.js +3 -0
- package/web/.next/server/chunks/ssr/_997b560b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_616a8ac1._.js → _a8f53ee2._.js} +2 -2
- package/web/.next/server/chunks/ssr/_a8f53ee2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_acc5e43e._.js +9 -0
- package/web/.next/server/chunks/ssr/_acc5e43e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d582e961._.js → _cc456d44._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_d582e961._.js.map → _cc456d44._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
- package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.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_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 +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_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_db9fa0c2._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.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 +303 -195
- package/web/.next/static/chunks/{90fbdf461b7ec652.js → 03d92643ee2190a4.js} +1 -1
- package/web/.next/static/chunks/{cad3cca5183ead26.js → 0811164ad80e0ca5.js} +1 -1
- package/web/.next/static/chunks/{2b3740e29ed9b3de.js → 0f6208eca3d7d895.js} +2 -2
- package/web/.next/static/chunks/{9461ce4baa99276f.js → 14838064627a5dcb.js} +1 -1
- package/web/.next/static/chunks/150c00c30ece763b.js +1 -0
- package/web/.next/static/chunks/246321074153cf07.js +5 -0
- package/web/.next/static/chunks/{ccdd1bc568f11f61.js → 2a641dc89a852e0c.js} +1 -1
- package/web/.next/static/chunks/{d5366257d6b9f855.js → 2a9af061f4fbe7f5.js} +1 -1
- package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
- package/web/.next/static/chunks/3425ca88c85dddb9.js +1 -0
- package/web/.next/static/chunks/{5c6428d4679cd574.js → 453a86648b40099a.js} +1 -1
- package/web/.next/static/chunks/84ecdec18d323210.css +1 -0
- package/web/.next/static/chunks/85c9f8d4601354cd.js +1 -0
- package/web/.next/static/chunks/{65440524d7ee7d13.js → 884fceb3e6a67215.js} +1 -1
- package/web/.next/static/chunks/{61e13c3bd0f3cd25.js → 95ecd55bfbbc87aa.js} +3 -3
- package/web/.next/static/chunks/{bec9239427893a91.js → c1103035e0d56769.js} +1 -1
- package/web/.next/static/chunks/{21f9eacf5581b713.js → d5656afdef3b2ee5.js} +1 -1
- package/web/.next/static/chunks/e83613a2d0198a6a.js +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_44591fa7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_4d49a312._.js +0 -3
- package/web/.next/server/chunks/ssr/_4d49a312._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_506a3bc3._.js +0 -9
- package/web/.next/server/chunks/ssr/_506a3bc3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_616a8ac1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_9215e9ec._.js +0 -3
- package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +0 -1
- package/web/.next/static/chunks/1a3b885d3f886bcb.js +0 -1
- package/web/.next/static/chunks/1e6609edc3367244.css +0 -1
- package/web/.next/static/chunks/28ae5046faef6cec.js +0 -1
- package/web/.next/static/chunks/558d87d09cd1cc45.js +0 -1
- package/web/.next/static/chunks/c96dff98886884ee.js +0 -5
- package/web/.next/static/chunks/e4be686cb3bd28f0.js +0 -1
- /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → i5nbrQ-16hfoxXQF80u89}/_buildManifest.js +0 -0
- /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → i5nbrQ-16hfoxXQF80u89}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → i5nbrQ-16hfoxXQF80u89}/_ssgManifest.js +0 -0
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js
CHANGED
|
@@ -9,6 +9,7 @@ export const lifecycleDisplayLabels = {
|
|
|
9
9
|
awaitingUpstream: 'AWAITING UPSTREAM',
|
|
10
10
|
deploy: 'DEPLOY & QA',
|
|
11
11
|
maintain: 'COMPLETED',
|
|
12
|
+
exploring: 'EXPLORING',
|
|
12
13
|
};
|
|
13
14
|
/** Inline-start border color for each lifecycle phase. */
|
|
14
15
|
export const lifecycleBorderColors = {
|
|
@@ -20,6 +21,7 @@ export const lifecycleBorderColors = {
|
|
|
20
21
|
awaitingUpstream: 'border-s-amber-500',
|
|
21
22
|
deploy: 'border-s-emerald-500',
|
|
22
23
|
maintain: 'border-s-gray-400',
|
|
24
|
+
exploring: 'border-s-amber-400',
|
|
23
25
|
};
|
|
24
26
|
/** Accent bar background color for each lifecycle phase. */
|
|
25
27
|
export const lifecycleAccentColors = {
|
|
@@ -31,6 +33,7 @@ export const lifecycleAccentColors = {
|
|
|
31
33
|
awaitingUpstream: 'bg-amber-500',
|
|
32
34
|
deploy: 'bg-emerald-500',
|
|
33
35
|
maintain: 'bg-gray-400',
|
|
36
|
+
exploring: 'bg-amber-400',
|
|
34
37
|
};
|
|
35
38
|
/** Phase badge: short letter, color classes, and user-friendly tooltip. */
|
|
36
39
|
export const lifecyclePhaseBadge = {
|
|
@@ -98,6 +101,14 @@ export const lifecyclePhaseBadge = {
|
|
|
98
101
|
tooltip: 'Completed',
|
|
99
102
|
description: 'All done — the feature has been merged and delivered successfully.',
|
|
100
103
|
},
|
|
104
|
+
exploring: {
|
|
105
|
+
letter: 'E',
|
|
106
|
+
bg: 'bg-amber-100 dark:bg-amber-900/40',
|
|
107
|
+
text: 'text-amber-600 dark:text-amber-300',
|
|
108
|
+
dot: 'bg-amber-400',
|
|
109
|
+
tooltip: 'Exploring',
|
|
110
|
+
description: 'Prototyping — the AI is generating a quick prototype. Review it and provide feedback to iterate.',
|
|
111
|
+
},
|
|
101
112
|
};
|
|
102
113
|
/** State-based inline-start border overrides (takes precedence over lifecycle). */
|
|
103
114
|
export const stateBorderColors = {
|
|
@@ -121,6 +132,7 @@ export const lifecycleRunningVerbs = {
|
|
|
121
132
|
awaitingUpstream: 'Awaiting upstream',
|
|
122
133
|
deploy: 'Deploying',
|
|
123
134
|
maintain: 'Maintaining',
|
|
135
|
+
exploring: 'Prototyping',
|
|
124
136
|
};
|
|
125
137
|
export const featureNodeStateConfig = {
|
|
126
138
|
creating: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feature-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node.tsx"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAmDnE,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CA8nBA"}
|
|
@@ -4,7 +4,7 @@ import { useState } from 'react';
|
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import { useRouter } from 'next/navigation';
|
|
6
6
|
import { Handle, Position } from '@xyflow/react';
|
|
7
|
-
import { Plus, Trash2, Zap, ClipboardList, Loader2, Globe, RotateCcw, Play, Square, Eye, Archive, ArchiveRestore, MessageSquare, } from 'lucide-react';
|
|
7
|
+
import { Plus, Trash2, Zap, ClipboardList, FlaskConical, Loader2, Globe, RotateCcw, Play, Square, Eye, Archive, ArchiveRestore, MessageSquare, } from 'lucide-react';
|
|
8
8
|
import { cn } from '../../../lib/utils.js';
|
|
9
9
|
import { ActionButton } from '../../common/action-button/action-button.js';
|
|
10
10
|
import { Button } from '../../ui/button.js';
|
|
@@ -16,6 +16,7 @@ import { useFeatureFlags } from '../../../hooks/feature-flags-context.js';
|
|
|
16
16
|
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../../ui/alert-dialog.js';
|
|
17
17
|
import { DeleteFeatureDialog } from '../../common/delete-feature-dialog/index.js';
|
|
18
18
|
import { featureNodeStateConfig, lifecycleRunningVerbs, lifecyclePhaseBadge, } from './feature-node-state-config.js';
|
|
19
|
+
import { FeatureMode } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
19
20
|
import { getAgentTypeIcon } from './agent-type-icons.js';
|
|
20
21
|
import { FeatureSessionsDropdown } from './feature-sessions-dropdown.js';
|
|
21
22
|
function AgentIcon({ agentType, className }) {
|
|
@@ -111,7 +112,11 @@ export function FeatureNode({ data, selected, }) {
|
|
|
111
112
|
selected &&
|
|
112
113
|
'border-e-rose-400 border-t-rose-400 border-b-rose-400 dark:border-e-amber-500 dark:border-t-amber-500 dark:border-b-amber-500', selected &&
|
|
113
114
|
data.state !== 'action-required' &&
|
|
114
|
-
'border-blue-400 dark:border-amber-500/60', data.state === 'deleting' && 'opacity-60', data.state === 'archived' && 'opacity-50'), children: [data.state !== 'creating' ? (_jsx("div", { className: "absolute end-4 top-3", children: _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { "data-testid": "feature-node-phase-badge", className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-muted-foreground text-[10px]", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("span", { className: cn('h-1.5 w-1.5 -translate-y-px rounded-full', lifecyclePhaseBadge[data.lifecycle].dot) })] }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-56", children: [_jsx("p", { className: "font-semibold", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("p", { className: "mt-1 text-xs leading-relaxed text-neutral-500", children: lifecyclePhaseBadge[data.lifecycle].description })] })] }) }) })) : null, _jsxs("div", { className: "flex items-center gap-1.5 pe-24", children: [data.agentType ? (_jsx(AgentIcon, { agentType: data.agentType, className: "h-4 w-4 shrink-0" })) : null, _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { "data-testid": "feature-node-
|
|
115
|
+
'border-blue-400 dark:border-amber-500/60', data.state === 'deleting' && 'opacity-60', data.state === 'archived' && 'opacity-50'), children: [data.state !== 'creating' ? (_jsx("div", { className: "absolute end-4 top-3", children: _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { "data-testid": "feature-node-phase-badge", className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-muted-foreground text-[10px]", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("span", { className: cn('h-1.5 w-1.5 -translate-y-px rounded-full', lifecyclePhaseBadge[data.lifecycle].dot) })] }) }), _jsxs(TooltipContent, { side: "right", className: "max-w-56", children: [_jsx("p", { className: "font-semibold", children: lifecyclePhaseBadge[data.lifecycle].tooltip }), _jsx("p", { className: "mt-1 text-xs leading-relaxed text-neutral-500", children: lifecyclePhaseBadge[data.lifecycle].description })] })] }) }) })) : null, _jsxs("div", { className: "flex items-center gap-1.5 pe-24", children: [data.agentType ? (_jsx(AgentIcon, { agentType: data.agentType, className: "h-4 w-4 shrink-0" })) : null, _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { "data-testid": "feature-node-mode-badge", className: "shrink-0", children: data.mode === FeatureMode.Exploration ? (_jsx(FlaskConical, { className: "h-3.5 w-3.5 text-amber-500" })) : data.mode === FeatureMode.Fast || data.fastMode ? (_jsx(Zap, { className: "h-3.5 w-3.5 text-amber-500" })) : (_jsx(ClipboardList, { className: "h-3.5 w-3.5 text-indigo-500" })) }) }), _jsx(TooltipContent, { side: "top", children: data.mode === FeatureMode.Exploration
|
|
116
|
+
? t('featureNode.explorationMode')
|
|
117
|
+
: data.mode === FeatureMode.Fast || data.fastMode
|
|
118
|
+
? t('featureNode.fastMode')
|
|
119
|
+
: t('featureNode.specDriven') })] }) }), _jsx("h3", { className: "min-w-0 truncate text-sm font-bold", children: data.name })] }), data.description ? (_jsx("p", { "data-testid": "feature-node-description", className: "text-muted-foreground mt-1 line-clamp-2 text-xs", children: data.description })) : null, _jsxs("div", { className: "mt-auto pt-2", children: [config.showProgressBar ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-muted-foreground flex items-center justify-end text-[10px]", children: _jsxs("span", { children: [data.progress, "%"] }) }), _jsx("div", { "data-testid": "feature-node-progress-bar", className: "bg-muted mt-1.5 h-1 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', config.progressClass), style: { width: `${data.progress}%` } }) })] })) : null, !config.showProgressBar &&
|
|
115
120
|
![
|
|
116
121
|
'deleting',
|
|
117
122
|
'creating',
|
package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA8B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA+QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA8B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA+QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,2CAy5CzB"}
|
|
@@ -158,7 +158,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
158
158
|
const [commitEvidence, setCommitEvidence] = useState(settings.workflow.commitEvidence);
|
|
159
159
|
const [ciWatchEnabled, setCiWatchEnabled] = useState(settings.workflow.ciWatchEnabled !== false);
|
|
160
160
|
const [hideCiStatus, setHideCiStatus] = useState(settings.workflow.hideCiStatus !== false);
|
|
161
|
-
const [
|
|
161
|
+
const [defaultMode, setDefaultMode] = useState(settings.workflow.defaultMode ?? 'Fast');
|
|
162
162
|
// Auto-archive state
|
|
163
163
|
const [autoArchiveEnabled, setAutoArchiveEnabled] = useState((settings.workflow.autoArchiveDelayMinutes ?? 10) > 0);
|
|
164
164
|
const [autoArchiveDelay, setAutoArchiveDelay] = useState(String(settings.workflow.autoArchiveDelayMinutes ?? 10));
|
|
@@ -178,6 +178,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
178
178
|
const [researchTimeout, setResearchTimeout] = useState(String(Math.round((stageTimeoutsConfig?.researchMs ?? 1_800_000) / 1000)));
|
|
179
179
|
const [planTimeout, setPlanTimeout] = useState(String(Math.round((stageTimeoutsConfig?.planMs ?? 1_800_000) / 1000)));
|
|
180
180
|
const [implementTimeout, setImplementTimeout] = useState(String(Math.round((stageTimeoutsConfig?.implementMs ?? 1_800_000) / 1000)));
|
|
181
|
+
const [fastImplementTimeout, setFastImplementTimeout] = useState(String(Math.round((stageTimeoutsConfig?.fastImplementMs ?? 1_800_000) / 1000)));
|
|
181
182
|
const [mergeTimeout, setMergeTimeout] = useState(String(Math.round((stageTimeoutsConfig?.mergeMs ?? 1_800_000) / 1000)));
|
|
182
183
|
// Analyze-repo agent timeout state
|
|
183
184
|
const analyzeRepoConfig = settings.workflow.analyzeRepoTimeouts;
|
|
@@ -223,6 +224,9 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
223
224
|
const originalImplementTimeout = stageTimeoutsConfig?.implementMs != null
|
|
224
225
|
? String(Math.round(stageTimeoutsConfig.implementMs / 1000))
|
|
225
226
|
: '';
|
|
227
|
+
const originalFastImplementTimeout = stageTimeoutsConfig?.fastImplementMs != null
|
|
228
|
+
? String(Math.round(stageTimeoutsConfig.fastImplementMs / 1000))
|
|
229
|
+
: '';
|
|
226
230
|
const originalMergeTimeout = stageTimeoutsConfig?.mergeMs != null
|
|
227
231
|
? String(Math.round(stageTimeoutsConfig.mergeMs / 1000))
|
|
228
232
|
: '';
|
|
@@ -259,7 +263,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
259
263
|
commitEvidence: overrides.commitEvidence ?? commitEvidence,
|
|
260
264
|
ciWatchEnabled: overrides.ciWatchEnabled ?? ciWatchEnabled,
|
|
261
265
|
hideCiStatus: overrides.hideCiStatus ?? hideCiStatus,
|
|
262
|
-
|
|
266
|
+
defaultMode: overrides.defaultMode ?? defaultMode,
|
|
263
267
|
autoArchiveDelayMinutes: archiveEnabled
|
|
264
268
|
? Number.isNaN(archiveDelay) || archiveDelay < 1
|
|
265
269
|
? 10
|
|
@@ -275,6 +279,7 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
275
279
|
researchMs: secondsToMs(overrides.researchTimeout ?? researchTimeout),
|
|
276
280
|
planMs: secondsToMs(overrides.planTimeout ?? planTimeout),
|
|
277
281
|
implementMs: secondsToMs(overrides.implementTimeout ?? implementTimeout),
|
|
282
|
+
fastImplementMs: secondsToMs(overrides.fastImplementTimeout ?? fastImplementTimeout),
|
|
278
283
|
mergeMs: secondsToMs(overrides.mergeTimeout ?? mergeTimeout),
|
|
279
284
|
},
|
|
280
285
|
analyzeRepoTimeouts: {
|
|
@@ -374,10 +379,10 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
374
379
|
label: t('settings.environment.links.configurationGuide'),
|
|
375
380
|
href: 'https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md',
|
|
376
381
|
},
|
|
377
|
-
], children: t('settings.environment.hint') })] }), _jsxs("div", { id: "section-workflow", className: "grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]", children: [_jsxs(SettingsSection, { icon: GitBranch, title: t('settings.workflow.title'), description: t('settings.workflow.sectionDescription'), testId: "workflow-settings-section", children: [_jsx(
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
382
|
+
], children: t('settings.environment.hint') })] }), _jsxs("div", { id: "section-workflow", className: "grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]", children: [_jsxs(SettingsSection, { icon: GitBranch, title: t('settings.workflow.title'), description: t('settings.workflow.sectionDescription'), testId: "workflow-settings-section", children: [_jsx(SettingsRow, { label: t('settings.workflow.defaultMode'), description: t('settings.workflow.defaultModeDescription'), children: _jsxs(Select, { value: defaultMode, onValueChange: (v) => {
|
|
383
|
+
setDefaultMode(v);
|
|
384
|
+
save(buildWorkflowPayload({ defaultMode: v }));
|
|
385
|
+
}, children: [_jsx(SelectTrigger, { id: "default-mode", "data-testid": "default-mode-select", className: "w-55 cursor-pointer text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "Regular", children: t('settings.workflow.modeRegular') }), _jsx(SelectItem, { value: "Fast", children: t('settings.workflow.modeFast') }), _jsx(SelectItem, { value: "Exploration", children: t('settings.workflow.modeExploration') })] })] }) }), _jsx(SubsectionLabel, { children: t('settings.workflow.subsections.approve') }), _jsx(SwitchRow, { label: t('settings.workflow.autoApprovePrd'), description: t('settings.workflow.autoApprovePrdDescription'), id: "allow-prd", testId: "switch-allow-prd", checked: allowPrd, onChange: (v) => {
|
|
381
386
|
setAllowPrd(v);
|
|
382
387
|
save(buildWorkflowPayload({ allowPrd: v }));
|
|
383
388
|
} }), _jsx(SwitchRow, { label: t('settings.workflow.autoApprovePlan'), description: t('settings.workflow.autoApprovePlanDescription'), id: "allow-plan", testId: "switch-allow-plan", checked: allowPlan, onChange: (v) => {
|
|
@@ -473,6 +478,9 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
473
478
|
}, defaultSeconds: 1800 }) }), _jsx(SettingsRow, { label: t('settings.stageTimeouts.implement'), description: t('settings.stageTimeouts.implementDescription'), htmlFor: "timeout-implement", children: _jsx(TimeoutSlider, { id: "timeout-implement", testId: "timeout-implement-input", value: implementTimeout, onChange: setImplementTimeout, onBlur: () => {
|
|
474
479
|
if (implementTimeout !== originalImplementTimeout)
|
|
475
480
|
save(buildWorkflowPayload({ implementTimeout }));
|
|
481
|
+
}, defaultSeconds: 1800 }) }), _jsx(SettingsRow, { label: t('settings.stageTimeouts.fastImplement'), description: t('settings.stageTimeouts.fastImplementDescription'), htmlFor: "timeout-fast-implement", children: _jsx(TimeoutSlider, { id: "timeout-fast-implement", testId: "timeout-fast-implement-input", value: fastImplementTimeout, onChange: setFastImplementTimeout, onBlur: () => {
|
|
482
|
+
if (fastImplementTimeout !== originalFastImplementTimeout)
|
|
483
|
+
save(buildWorkflowPayload({ fastImplementTimeout }));
|
|
476
484
|
}, defaultSeconds: 1800 }) }), _jsx(SettingsRow, { label: t('settings.stageTimeouts.merge'), description: t('settings.stageTimeouts.mergeDescription'), htmlFor: "timeout-merge", children: _jsx(TimeoutSlider, { id: "timeout-merge", testId: "timeout-merge-input", value: mergeTimeout, onChange: setMergeTimeout, onBlur: () => {
|
|
477
485
|
if (mergeTimeout !== originalMergeTimeout)
|
|
478
486
|
save(buildWorkflowPayload({ mergeTimeout }));
|
package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAqBzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAqBzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAuB5B,CAAC"}
|
package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/workflow-settings-section.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,4BAA4B,2CA+
|
|
1
|
+
{"version":3,"file":"workflow-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/workflow-settings-section.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,4BAA4B,2CA+fjF"}
|
|
@@ -30,6 +30,7 @@ export function WorkflowSettingsSection({ workflow }) {
|
|
|
30
30
|
const [researchTimeout, setResearchTimeout] = useState(String(Math.round((st?.researchMs ?? 1_800_000) / 1000)));
|
|
31
31
|
const [planTimeout, setPlanTimeout] = useState(String(Math.round((st?.planMs ?? 1_800_000) / 1000)));
|
|
32
32
|
const [implementTimeout, setImplementTimeout] = useState(String(Math.round((st?.implementMs ?? 1_800_000) / 1000)));
|
|
33
|
+
const [fastImplementTimeout, setFastImplementTimeout] = useState(String(Math.round((st?.fastImplementMs ?? 1_800_000) / 1000)));
|
|
33
34
|
const [mergeTimeout, setMergeTimeout] = useState(String(Math.round((st?.mergeMs ?? 1_800_000) / 1000)));
|
|
34
35
|
// Analyze-repo agent timeout state
|
|
35
36
|
const art = workflow.analyzeRepoTimeouts;
|
|
@@ -78,6 +79,7 @@ export function WorkflowSettingsSection({ workflow }) {
|
|
|
78
79
|
researchMs: secondsToMs(overrides.researchTimeout ?? researchTimeout),
|
|
79
80
|
planMs: secondsToMs(overrides.planTimeout ?? planTimeout),
|
|
80
81
|
implementMs: secondsToMs(overrides.implementTimeout ?? implementTimeout),
|
|
82
|
+
fastImplementMs: secondsToMs(overrides.fastImplementTimeout ?? fastImplementTimeout),
|
|
81
83
|
mergeMs: secondsToMs(overrides.mergeTimeout ?? mergeTimeout),
|
|
82
84
|
},
|
|
83
85
|
analyzeRepoTimeouts: {
|
|
@@ -112,6 +114,7 @@ export function WorkflowSettingsSection({ workflow }) {
|
|
|
112
114
|
const originalResearchTimeout = st?.researchMs != null ? String(Math.round(st.researchMs / 1000)) : '';
|
|
113
115
|
const originalPlanTimeout = st?.planMs != null ? String(Math.round(st.planMs / 1000)) : '';
|
|
114
116
|
const originalImplementTimeout = st?.implementMs != null ? String(Math.round(st.implementMs / 1000)) : '';
|
|
117
|
+
const originalFastImplementTimeout = st?.fastImplementMs != null ? String(Math.round(st.fastImplementMs / 1000)) : '';
|
|
115
118
|
const originalMergeTimeout = st?.mergeMs != null ? String(Math.round(st.mergeMs / 1000)) : '';
|
|
116
119
|
const originalAnalyzeRepoTimeout = art?.analyzeMs != null ? String(Math.round(art.analyzeMs / 1000)) : '';
|
|
117
120
|
const FEATURE_AGENT_FIELDS = [
|
|
@@ -155,6 +158,14 @@ export function WorkflowSettingsSection({ workflow }) {
|
|
|
155
158
|
setter: setImplementTimeout,
|
|
156
159
|
original: originalImplementTimeout,
|
|
157
160
|
},
|
|
161
|
+
{
|
|
162
|
+
key: 'fastImplementTimeout',
|
|
163
|
+
label: 'Fast Implement',
|
|
164
|
+
defaultSeconds: 1800,
|
|
165
|
+
state: fastImplementTimeout,
|
|
166
|
+
setter: setFastImplementTimeout,
|
|
167
|
+
original: originalFastImplementTimeout,
|
|
168
|
+
},
|
|
158
169
|
{
|
|
159
170
|
key: 'mergeTimeout',
|
|
160
171
|
label: 'Merge',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/workflow-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,QAAA,MAAM,IAAI;;;;;;;CAOsC,CAAC;AAEjD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"workflow-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/workflow-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,QAAA,MAAM,IAAI;;;;;;;CAOsC,CAAC;AAEjD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA+BxB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA+B5B,CAAC"}
|
package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js
CHANGED
|
@@ -21,7 +21,7 @@ export const Default = {
|
|
|
21
21
|
ciWatchEnabled: true,
|
|
22
22
|
enableEvidence: false,
|
|
23
23
|
commitEvidence: false,
|
|
24
|
-
|
|
24
|
+
defaultMode: 'Fast',
|
|
25
25
|
},
|
|
26
26
|
},
|
|
27
27
|
};
|
|
@@ -44,6 +44,7 @@ export const AllEnabled = {
|
|
|
44
44
|
researchMs: 600000,
|
|
45
45
|
planMs: 600000,
|
|
46
46
|
implementMs: 600000,
|
|
47
|
+
fastImplementMs: 600000,
|
|
47
48
|
mergeMs: 600000,
|
|
48
49
|
},
|
|
49
50
|
analyzeRepoTimeouts: {
|
|
@@ -52,7 +53,7 @@ export const AllEnabled = {
|
|
|
52
53
|
ciWatchEnabled: true,
|
|
53
54
|
enableEvidence: true,
|
|
54
55
|
commitEvidence: true,
|
|
55
|
-
|
|
56
|
+
defaultMode: 'Fast',
|
|
56
57
|
},
|
|
57
58
|
},
|
|
58
59
|
};
|
|
@@ -75,6 +76,7 @@ export const WithCiSettings = {
|
|
|
75
76
|
researchMs: 1200000,
|
|
76
77
|
planMs: 1200000,
|
|
77
78
|
implementMs: 1200000,
|
|
79
|
+
fastImplementMs: 1200000,
|
|
78
80
|
mergeMs: 1200000,
|
|
79
81
|
},
|
|
80
82
|
analyzeRepoTimeouts: {
|
|
@@ -83,7 +85,7 @@ export const WithCiSettings = {
|
|
|
83
85
|
ciWatchEnabled: true,
|
|
84
86
|
enableEvidence: false,
|
|
85
87
|
commitEvidence: false,
|
|
86
|
-
|
|
88
|
+
defaultMode: 'Fast',
|
|
87
89
|
},
|
|
88
90
|
},
|
|
89
91
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
import { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';
|
|
4
|
+
import { toggleVariants } from '../ui/toggle.js';
|
|
5
|
+
declare function ToggleGroup({ className, variant, size, spacing, children, ...props }: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants> & {
|
|
6
|
+
spacing?: number;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
10
|
+
//# sourceMappingURL=toggle-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/ui/toggle-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAYxD,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GACvD,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,2CAmBF;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAuB9F;AAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
import { toggleVariants } from '../ui/toggle.js';
|
|
7
|
+
const ToggleGroupContext = React.createContext({
|
|
8
|
+
size: 'default',
|
|
9
|
+
variant: 'default',
|
|
10
|
+
spacing: 0,
|
|
11
|
+
});
|
|
12
|
+
function ToggleGroup({ className, variant, size, spacing = 0, children, ...props }) {
|
|
13
|
+
return (_jsx(ToggleGroupPrimitive.Root, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, style: { '--gap': spacing }, className: cn('group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children: children }) }));
|
|
14
|
+
}
|
|
15
|
+
function ToggleGroupItem({ className, children, variant, size, ...props }) {
|
|
16
|
+
const context = React.useContext(ToggleGroupContext);
|
|
17
|
+
return (_jsx(ToggleGroupPrimitive.Item, { "data-slot": "toggle-group-item", "data-variant": context.variant ?? variant, "data-size": context.size ?? size, "data-spacing": context.spacing, className: cn(toggleVariants({
|
|
18
|
+
variant: context.variant ?? variant,
|
|
19
|
+
size: context.size ?? size,
|
|
20
|
+
}), 'w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10', 'data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l', className), ...props, children: children }));
|
|
21
|
+
}
|
|
22
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
import { Toggle as TogglePrimitive } from 'radix-ui';
|
|
4
|
+
declare const toggleVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "outline" | null | undefined;
|
|
6
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare function Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { Toggle, toggleVariants };
|
|
10
|
+
//# sourceMappingURL=toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/ui/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AAIrD,QAAA,MAAM,cAAc;;;8EAoBnB,CAAC;AAEF,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQzF;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { Toggle as TogglePrimitive } from 'radix-ui';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
const toggleVariants = cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: 'bg-transparent',
|
|
10
|
+
outline: 'border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground',
|
|
11
|
+
},
|
|
12
|
+
size: {
|
|
13
|
+
default: 'h-9 min-w-9 px-2',
|
|
14
|
+
sm: 'h-8 min-w-8 px-1.5',
|
|
15
|
+
lg: 'h-10 min-w-10 px-2.5',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
variant: 'default',
|
|
20
|
+
size: 'default',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
function Toggle({ className, variant, size, ...props }) {
|
|
24
|
+
return (_jsx(TogglePrimitive.Root, { "data-slot": "toggle", className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
25
|
+
}
|
|
26
|
+
export { Toggle, toggleVariants };
|
|
@@ -204,6 +204,8 @@
|
|
|
204
204
|
"pendingOption": "إنشاء الميزة بدون بدء الوكيل",
|
|
205
205
|
"fastOption": "تخطي مراحل SDLC والتنفيذ مباشرة من الأمر (الافتراضي: مفعّل)",
|
|
206
206
|
"noFastOption": "تشغيل جميع مراحل SDLC (تحليل → متطلبات → خطة → تنفيذ)",
|
|
207
|
+
"exploreOption": "Start an exploration/prototyping session for iterative design",
|
|
208
|
+
"exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
|
|
207
209
|
"modelOption": "معرّف نموذج LLM لهذا التشغيل (مثال: claude-opus-4-6)",
|
|
208
210
|
"noRebaseOption": "Skip syncing main from remote before creating the feature branch",
|
|
209
211
|
"attachOption": "إرفاق ملف (قابل للتكرار)",
|
|
@@ -414,6 +416,28 @@
|
|
|
414
416
|
"restoredLabel": "تمت الاستعادة:",
|
|
415
417
|
"failedToUnarchive": "فشل إلغاء أرشفة الميزة"
|
|
416
418
|
},
|
|
419
|
+
"feedback": {
|
|
420
|
+
"description": "Send feedback on an exploration prototype to iterate",
|
|
421
|
+
"idArgument": "Feature ID or prefix",
|
|
422
|
+
"feedbackArgument": "Feedback text for the next iteration",
|
|
423
|
+
"feedbackSubmitted": "Feedback submitted for: {{name}}",
|
|
424
|
+
"iterationLabel": "Iteration:",
|
|
425
|
+
"agentLabel": "Agent:",
|
|
426
|
+
"agentIterating": "iterating on feedback",
|
|
427
|
+
"notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
|
|
428
|
+
"failedToSubmit": "Failed to submit feedback"
|
|
429
|
+
},
|
|
430
|
+
"promote": {
|
|
431
|
+
"description": "Promote an exploration feature to Regular or Fast mode",
|
|
432
|
+
"idArgument": "Feature ID or prefix",
|
|
433
|
+
"fastOption": "Promote to Fast mode (skip SDLC phases)",
|
|
434
|
+
"promoted": "Exploration promoted: {{name}}",
|
|
435
|
+
"modeLabel": "Mode:",
|
|
436
|
+
"statusLabel": "Status:",
|
|
437
|
+
"agentLabel": "Agent:",
|
|
438
|
+
"agentSpawned": "spawned for {{mode}} mode",
|
|
439
|
+
"failedToPromote": "Failed to promote exploration"
|
|
440
|
+
},
|
|
417
441
|
"resolveWaiting": {
|
|
418
442
|
"featureNotFound": "الميزة غير موجودة: \"{{id}}\"",
|
|
419
443
|
"noAgentRun": "الميزة \"{{name}}\" ليس لديها تشغيل وكيل",
|
|
@@ -68,8 +68,11 @@
|
|
|
68
68
|
"title": "سير العمل",
|
|
69
69
|
"description": "تكوين سلوك PR وبوابات الموافقة وإعدادات CI",
|
|
70
70
|
"sectionDescription": "سلوك الأتمتة بعد التنفيذ",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
71
|
+
"defaultMode": "وضع الميزة الافتراضي",
|
|
72
|
+
"defaultModeDescription": "الوضع الافتراضي للميزات الجديدة المنشأة عبر CLI أو واجهة الويب",
|
|
73
|
+
"modeRegular": "عادي",
|
|
74
|
+
"modeFast": "سريع",
|
|
75
|
+
"modeExploration": "استكشاف",
|
|
73
76
|
"subsections": {
|
|
74
77
|
"approve": "الموافقة",
|
|
75
78
|
"evidence": "الأدلة",
|
|
@@ -146,6 +149,8 @@
|
|
|
146
149
|
"planDescription": "مهلة تخطيط التنفيذ",
|
|
147
150
|
"implement": "التنفيذ",
|
|
148
151
|
"implementDescription": "مهلة تنفيذ الكود",
|
|
152
|
+
"fastImplement": "التنفيذ السريع",
|
|
153
|
+
"fastImplementDescription": "مهلة التنفيذ في الوضع السريع",
|
|
149
154
|
"merge": "الدمج",
|
|
150
155
|
"mergeDescription": "مهلة إنشاء PR والدمج",
|
|
151
156
|
"hint": "لكل وكيل مهل زمنية مستقلة وقابلة للتكوين لكل مرحلة. عند تجاوز مرحلة لمهلتها الزمنية، يتم إنهاء الوكيل. المهل الأطول مفيدة للتنفيذات المعقدة. المهلة الافتراضية لوكيل الميزات 30 دقيقة لكل مرحلة. المهلة الافتراضية لوكيل تحليل المستودع 10 دقائق."
|
|
@@ -342,6 +347,7 @@
|
|
|
342
347
|
"cancel": "إلغاء",
|
|
343
348
|
"archive": "أرشفة",
|
|
344
349
|
"fastMode": "الوضع السريع",
|
|
350
|
+
"explorationMode": "Exploration Mode",
|
|
345
351
|
"specDriven": "مبني على المواصفات",
|
|
346
352
|
"copied": "تم النسخ!",
|
|
347
353
|
"chatWithAgent": "محادثة مع الوكيل",
|
|
@@ -204,6 +204,8 @@
|
|
|
204
204
|
"pendingOption": "Feature erstellen, ohne den Agenten zu starten",
|
|
205
205
|
"fastOption": "SDLC-Phasen überspringen und direkt nach Ihrem Prompt implementieren (Standard: ein)",
|
|
206
206
|
"noFastOption": "Alle SDLC-Phasen durchlaufen (Analyse → Anforderungen → Plan → Implementierung)",
|
|
207
|
+
"exploreOption": "Start an exploration/prototyping session for iterative design",
|
|
208
|
+
"exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
|
|
207
209
|
"modelOption": "LLM-Modellbezeichnung für diesen Lauf (z.B. claude-opus-4-6)",
|
|
208
210
|
"noRebaseOption": "Skip syncing main from remote before creating the feature branch",
|
|
209
211
|
"attachOption": "Eine Datei anhängen (wiederholbar)",
|
|
@@ -414,6 +416,28 @@
|
|
|
414
416
|
"restoredLabel": "Wiederhergestellt:",
|
|
415
417
|
"failedToUnarchive": "Feature konnte nicht wiederhergestellt werden"
|
|
416
418
|
},
|
|
419
|
+
"feedback": {
|
|
420
|
+
"description": "Send feedback on an exploration prototype to iterate",
|
|
421
|
+
"idArgument": "Feature ID or prefix",
|
|
422
|
+
"feedbackArgument": "Feedback text for the next iteration",
|
|
423
|
+
"feedbackSubmitted": "Feedback submitted for: {{name}}",
|
|
424
|
+
"iterationLabel": "Iteration:",
|
|
425
|
+
"agentLabel": "Agent:",
|
|
426
|
+
"agentIterating": "iterating on feedback",
|
|
427
|
+
"notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
|
|
428
|
+
"failedToSubmit": "Failed to submit feedback"
|
|
429
|
+
},
|
|
430
|
+
"promote": {
|
|
431
|
+
"description": "Promote an exploration feature to Regular or Fast mode",
|
|
432
|
+
"idArgument": "Feature ID or prefix",
|
|
433
|
+
"fastOption": "Promote to Fast mode (skip SDLC phases)",
|
|
434
|
+
"promoted": "Exploration promoted: {{name}}",
|
|
435
|
+
"modeLabel": "Mode:",
|
|
436
|
+
"statusLabel": "Status:",
|
|
437
|
+
"agentLabel": "Agent:",
|
|
438
|
+
"agentSpawned": "spawned for {{mode}} mode",
|
|
439
|
+
"failedToPromote": "Failed to promote exploration"
|
|
440
|
+
},
|
|
417
441
|
"resolveWaiting": {
|
|
418
442
|
"featureNotFound": "Feature nicht gefunden: \"{{id}}\"",
|
|
419
443
|
"noAgentRun": "Feature \"{{name}}\" hat keinen Agentlauf",
|
|
@@ -66,8 +66,11 @@
|
|
|
66
66
|
"title": "Workflow",
|
|
67
67
|
"description": "Konfigurieren Sie PR-Verhalten, Genehmigungsstufen und CI-Einstellungen",
|
|
68
68
|
"sectionDescription": "Automatisierungsverhalten nach der Implementierung",
|
|
69
|
-
"
|
|
70
|
-
"
|
|
69
|
+
"defaultMode": "Standard-Feature-Modus",
|
|
70
|
+
"defaultModeDescription": "Standardmodus für neue Features, die über CLI oder Web-UI erstellt werden",
|
|
71
|
+
"modeRegular": "Standard",
|
|
72
|
+
"modeFast": "Schnell",
|
|
73
|
+
"modeExploration": "Erkundung",
|
|
71
74
|
"subsections": { "approve": "Genehmigen", "evidence": "Nachweise", "git": "Git" },
|
|
72
75
|
"autoApprovePrd": "PRD automatisch genehmigen",
|
|
73
76
|
"autoApprovePrdDescription": "Manuelle Überprüfung der Anforderungen überspringen",
|
|
@@ -134,6 +137,8 @@
|
|
|
134
137
|
"planDescription": "Zeitlimit für Implementierungsplanung",
|
|
135
138
|
"implement": "Implementierung",
|
|
136
139
|
"implementDescription": "Zeitlimit für Code-Implementierung",
|
|
140
|
+
"fastImplement": "Schnelle Implementierung",
|
|
141
|
+
"fastImplementDescription": "Zeitlimit für Schnellmodus-Implementierung",
|
|
137
142
|
"merge": "Merge",
|
|
138
143
|
"mergeDescription": "Zeitlimit für PR-Erstellung und Merge",
|
|
139
144
|
"hint": "Jeder Agent hat unabhängig konfigurierbare Phasen-Zeitlimits. Wenn eine Phase ihr Zeitlimit überschreitet, wird der Agent beendet. Längere Zeitlimits sind nützlich für komplexe Implementierungen. Feature-Agent hat standardmäßig 30 Minuten pro Phase. Repository-Analyse-Agent hat standardmäßig 10 Minuten."
|
|
@@ -328,6 +333,7 @@
|
|
|
328
333
|
"cancel": "Abbrechen",
|
|
329
334
|
"archive": "Archivieren",
|
|
330
335
|
"fastMode": "Schnellmodus",
|
|
336
|
+
"explorationMode": "Exploration Mode",
|
|
331
337
|
"specDriven": "Spezifikationsbasiert",
|
|
332
338
|
"copied": "Kopiert!",
|
|
333
339
|
"chatWithAgent": "Chat mit Agent",
|
|
@@ -204,6 +204,8 @@
|
|
|
204
204
|
"pendingOption": "Create feature without starting the agent",
|
|
205
205
|
"fastOption": "Skip SDLC phases and implement directly from your prompt (default: on)",
|
|
206
206
|
"noFastOption": "Run full SDLC phases (analyze → requirements → plan → implement)",
|
|
207
|
+
"exploreOption": "Start an exploration/prototyping session for iterative design",
|
|
208
|
+
"exploreAndFastConflict": "Cannot use --explore and --fast together. Choose one mode.",
|
|
207
209
|
"modelOption": "LLM model identifier for this run (e.g. claude-opus-4-6)",
|
|
208
210
|
"noRebaseOption": "Skip syncing main from remote before creating the feature branch",
|
|
209
211
|
"attachOption": "Attach a file (repeatable)",
|
|
@@ -414,6 +416,28 @@
|
|
|
414
416
|
"restoredLabel": "Restored:",
|
|
415
417
|
"failedToUnarchive": "Failed to unarchive feature"
|
|
416
418
|
},
|
|
419
|
+
"feedback": {
|
|
420
|
+
"description": "Send feedback on an exploration prototype to iterate",
|
|
421
|
+
"idArgument": "Feature ID or prefix",
|
|
422
|
+
"feedbackArgument": "Feedback text for the next iteration",
|
|
423
|
+
"feedbackSubmitted": "Feedback submitted for: {{name}}",
|
|
424
|
+
"iterationLabel": "Iteration:",
|
|
425
|
+
"agentLabel": "Agent:",
|
|
426
|
+
"agentIterating": "iterating on feedback",
|
|
427
|
+
"notExploration": "Feature \"{{name}}\" is not in exploration mode (mode: {{mode}}, lifecycle: {{lifecycle}})",
|
|
428
|
+
"failedToSubmit": "Failed to submit feedback"
|
|
429
|
+
},
|
|
430
|
+
"promote": {
|
|
431
|
+
"description": "Promote an exploration feature to Regular or Fast mode",
|
|
432
|
+
"idArgument": "Feature ID or prefix",
|
|
433
|
+
"fastOption": "Promote to Fast mode (skip SDLC phases)",
|
|
434
|
+
"promoted": "Exploration promoted: {{name}}",
|
|
435
|
+
"modeLabel": "Mode:",
|
|
436
|
+
"statusLabel": "Status:",
|
|
437
|
+
"agentLabel": "Agent:",
|
|
438
|
+
"agentSpawned": "spawned for {{mode}} mode",
|
|
439
|
+
"failedToPromote": "Failed to promote exploration"
|
|
440
|
+
},
|
|
417
441
|
"resolveWaiting": {
|
|
418
442
|
"featureNotFound": "Feature not found: \"{{id}}\"",
|
|
419
443
|
"noAgentRun": "Feature \"{{name}}\" has no agent run",
|
|
@@ -68,8 +68,11 @@
|
|
|
68
68
|
"title": "Workflow",
|
|
69
69
|
"description": "Configure PR behavior, approval gates, and CI settings",
|
|
70
70
|
"sectionDescription": "Automation behavior after implementation",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
71
|
+
"defaultMode": "Default feature mode",
|
|
72
|
+
"defaultModeDescription": "Default mode for new features created via CLI or Web UI",
|
|
73
|
+
"modeRegular": "Regular",
|
|
74
|
+
"modeFast": "Fast",
|
|
75
|
+
"modeExploration": "Exploration",
|
|
73
76
|
"subsections": {
|
|
74
77
|
"approve": "Approve",
|
|
75
78
|
"evidence": "Evidence",
|
|
@@ -146,6 +149,8 @@
|
|
|
146
149
|
"planDescription": "Implementation planning timeout",
|
|
147
150
|
"implement": "Implement",
|
|
148
151
|
"implementDescription": "Code implementation timeout",
|
|
152
|
+
"fastImplement": "Fast Implement",
|
|
153
|
+
"fastImplementDescription": "Fast mode implementation timeout",
|
|
149
154
|
"merge": "Merge",
|
|
150
155
|
"mergeDescription": "PR creation and merge timeout",
|
|
151
156
|
"hint": "Each agent has independently configurable stage timeouts. When a stage exceeds its timeout, the agent is terminated. Longer timeouts are useful for complex implementations. Feature agent defaults to 30 minutes per stage. Analyze repository agent defaults to 10 minutes."
|
|
@@ -342,6 +347,7 @@
|
|
|
342
347
|
"cancel": "Cancel",
|
|
343
348
|
"archive": "Archive",
|
|
344
349
|
"fastMode": "Fast Mode",
|
|
350
|
+
"explorationMode": "Exploration Mode",
|
|
345
351
|
"specDriven": "Spec Driven",
|
|
346
352
|
"copied": "Copied!",
|
|
347
353
|
"chatWithAgent": "Chat with agent",
|