@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
|
@@ -45,10 +45,10 @@ properties:
|
|
|
45
45
|
repositoryId:
|
|
46
46
|
$ref: UUID.yaml
|
|
47
47
|
description: ID of the Repository entity this feature belongs to
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
default:
|
|
51
|
-
description:
|
|
48
|
+
mode:
|
|
49
|
+
$ref: FeatureMode.yaml
|
|
50
|
+
default: Regular
|
|
51
|
+
description: "Execution mode determining the workflow: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping)"
|
|
52
52
|
push:
|
|
53
53
|
type: boolean
|
|
54
54
|
default: false
|
|
@@ -83,6 +83,17 @@ properties:
|
|
|
83
83
|
worktreePath:
|
|
84
84
|
type: string
|
|
85
85
|
description: Absolute path to the git worktree for this feature
|
|
86
|
+
iterationCount:
|
|
87
|
+
type: integer
|
|
88
|
+
minimum: -2147483648
|
|
89
|
+
maximum: 2147483647
|
|
90
|
+
default: 0
|
|
91
|
+
description: Current feedback iteration count in exploration mode (0 when not exploring)
|
|
92
|
+
maxIterations:
|
|
93
|
+
type: integer
|
|
94
|
+
minimum: -2147483648
|
|
95
|
+
maximum: 2147483647
|
|
96
|
+
description: Maximum allowed iterations for exploration mode (only set when mode is Exploration)
|
|
86
97
|
pr:
|
|
87
98
|
$ref: PullRequest.yaml
|
|
88
99
|
description: Pull request data (null until PR created)
|
|
@@ -107,7 +118,7 @@ required:
|
|
|
107
118
|
- lifecycle
|
|
108
119
|
- messages
|
|
109
120
|
- relatedArtifacts
|
|
110
|
-
-
|
|
121
|
+
- mode
|
|
111
122
|
- push
|
|
112
123
|
- openPr
|
|
113
124
|
- forkAndPr
|
|
@@ -116,6 +127,7 @@ required:
|
|
|
116
127
|
- enableEvidence
|
|
117
128
|
- commitEvidence
|
|
118
129
|
- approvalGates
|
|
130
|
+
- iterationCount
|
|
119
131
|
allOf:
|
|
120
132
|
- $ref: SoftDeletableEntity.yaml
|
|
121
133
|
description: Central entity tracking a piece of work through the SDLC lifecycle (Aggregate Root)
|
|
@@ -26,10 +26,15 @@ properties:
|
|
|
26
26
|
type: integer
|
|
27
27
|
minimum: -2147483648
|
|
28
28
|
maximum: 2147483647
|
|
29
|
-
description: "Timeout for the implement stage (default:
|
|
29
|
+
description: "Timeout for the implement stage (default: 1800000)"
|
|
30
|
+
fastImplementMs:
|
|
31
|
+
type: integer
|
|
32
|
+
minimum: -2147483648
|
|
33
|
+
maximum: 2147483647
|
|
34
|
+
description: "Timeout for the fast-implement stage (default: 1800000)"
|
|
30
35
|
mergeMs:
|
|
31
36
|
type: integer
|
|
32
37
|
minimum: -2147483648
|
|
33
38
|
maximum: 2147483647
|
|
34
|
-
description: "Timeout for the merge stage (default:
|
|
39
|
+
description: "Timeout for the merge stage (default: 1800000)"
|
|
35
40
|
description: Per-stage timeout overrides for the feature agent workflow (all values in milliseconds)
|
|
@@ -55,10 +55,15 @@ properties:
|
|
|
55
55
|
hideCiStatus:
|
|
56
56
|
type: boolean
|
|
57
57
|
description: "Hide CI status badges from UI (default: true)"
|
|
58
|
-
|
|
59
|
-
type:
|
|
60
|
-
default:
|
|
61
|
-
description: "Default new features
|
|
58
|
+
defaultMode:
|
|
59
|
+
type: string
|
|
60
|
+
default: Fast
|
|
61
|
+
description: "Default feature mode for new features: 'Regular', 'Fast', or 'Exploration' (default: 'Fast')"
|
|
62
|
+
explorationMaxIterations:
|
|
63
|
+
type: integer
|
|
64
|
+
minimum: -2147483648
|
|
65
|
+
maximum: 2147483647
|
|
66
|
+
description: "Maximum exploration feedback iterations (default: 10, 0 = unlimited)"
|
|
62
67
|
autoArchiveDelayMinutes:
|
|
63
68
|
type: integer
|
|
64
69
|
minimum: -2147483648
|
|
@@ -70,5 +75,5 @@ required:
|
|
|
70
75
|
- ciWatchEnabled
|
|
71
76
|
- enableEvidence
|
|
72
77
|
- commitEvidence
|
|
73
|
-
-
|
|
78
|
+
- defaultMode
|
|
74
79
|
description: Global workflow configuration defaults
|
package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - Application layer depends on this interface
|
|
10
10
|
* - Infrastructure layer provides concrete implementation
|
|
11
11
|
*/
|
|
12
|
-
import type { ApprovalGates, AgentType } from '../../../../domain/generated/output.js';
|
|
12
|
+
import type { ApprovalGates, AgentType, FeatureMode } from '../../../../domain/generated/output.js';
|
|
13
13
|
/**
|
|
14
14
|
* Service interface for feature agent background process management.
|
|
15
15
|
*/
|
|
@@ -37,7 +37,7 @@ export interface IFeatureAgentProcessService {
|
|
|
37
37
|
commitEvidence?: boolean;
|
|
38
38
|
resumePayload?: string;
|
|
39
39
|
agentType?: AgentType;
|
|
40
|
-
|
|
40
|
+
mode?: FeatureMode;
|
|
41
41
|
model?: string;
|
|
42
42
|
resumeReason?: string;
|
|
43
43
|
}): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-process.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/feature-agent-process.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,MAAM,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD"}
|
package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts
CHANGED
|
@@ -22,15 +22,16 @@ export interface ISpecInitializerService {
|
|
|
22
22
|
* - tasks.yaml
|
|
23
23
|
* - feature.yaml
|
|
24
24
|
*
|
|
25
|
-
* When mode is 'fast', only feature.yaml
|
|
25
|
+
* When mode is 'fast', only feature.yaml and spec.yaml are created.
|
|
26
|
+
* When mode is 'exploration', only feature.yaml is created.
|
|
26
27
|
*
|
|
27
28
|
* @param basePath - Directory to create specs/ in (typically the worktree path)
|
|
28
29
|
* @param slug - Feature slug (kebab-case, e.g., "user-authentication")
|
|
29
30
|
* @param featureNumber - Sequential feature number (will be zero-padded to 3 digits)
|
|
30
31
|
* @param description - Feature description for template substitution
|
|
31
|
-
* @param mode - Optional mode;
|
|
32
|
+
* @param mode - Optional mode; controls which template files are created
|
|
32
33
|
* @returns The spec directory path and feature number used
|
|
33
34
|
*/
|
|
34
|
-
initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast'): Promise<SpecInitializerResult>;
|
|
35
|
+
initialize(basePath: string, slug: string, featureNumber: number, description: string, mode?: 'fast' | 'exploration'): Promise<SpecInitializerResult>;
|
|
35
36
|
}
|
|
36
37
|
//# sourceMappingURL=spec-initializer.interface.d.ts.map
|
package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC
|
|
1
|
+
{"version":3,"file":"spec-initializer.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/spec-initializer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
|
|
@@ -22,7 +22,7 @@ import { injectable, inject } from 'tsyringe';
|
|
|
22
22
|
import yaml from 'js-yaml';
|
|
23
23
|
import { readFileSync } from 'node:fs';
|
|
24
24
|
import { join } from 'node:path';
|
|
25
|
-
import { AgentRunStatus } from '../../../domain/generated/output.js';
|
|
25
|
+
import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
|
|
26
26
|
import { writeSpecFileAtomic, safeYamlDump, } from '../../../infrastructure/services/agents/feature-agent/nodes/node-helpers.js';
|
|
27
27
|
import { computeWorktreePath } from '../../../infrastructure/services/ide-launchers/compute-worktree-path.js';
|
|
28
28
|
let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
|
|
@@ -119,7 +119,7 @@ let ApproveAgentRunUseCase = class ApproveAgentRunUseCase {
|
|
|
119
119
|
...(payload ? { resumePayload: JSON.stringify(payload) } : {}),
|
|
120
120
|
agentType: run.agentType,
|
|
121
121
|
...(run.modelId ? { model: run.modelId } : {}),
|
|
122
|
-
...(feature?.
|
|
122
|
+
...(feature?.mode && feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
|
|
123
123
|
});
|
|
124
124
|
return { approved: true, reason: 'Approved and resumed' };
|
|
125
125
|
}
|
|
@@ -21,7 +21,7 @@ import { injectable, inject } from 'tsyringe';
|
|
|
21
21
|
import yaml from 'js-yaml';
|
|
22
22
|
import { readFileSync } from 'node:fs';
|
|
23
23
|
import { join } from 'node:path';
|
|
24
|
-
import { AgentRunStatus } from '../../../domain/generated/output.js';
|
|
24
|
+
import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
|
|
25
25
|
import { writeSpecFileAtomic, safeYamlDump, } from '../../../infrastructure/services/agents/feature-agent/nodes/node-helpers.js';
|
|
26
26
|
import { recordLifecycleEvent } from '../../../infrastructure/services/agents/feature-agent/phase-timing-context.js';
|
|
27
27
|
import { computeWorktreePath } from '../../../infrastructure/services/ide-launchers/compute-worktree-path.js';
|
|
@@ -135,7 +135,7 @@ let RejectAgentRunUseCase = class RejectAgentRunUseCase {
|
|
|
135
135
|
resumePayload: JSON.stringify(rejectionPayload),
|
|
136
136
|
agentType: run.agentType,
|
|
137
137
|
...(run.modelId ? { model: run.modelId } : {}),
|
|
138
|
-
...(feature.
|
|
138
|
+
...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
|
|
139
139
|
});
|
|
140
140
|
return {
|
|
141
141
|
rejected: true,
|
package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"adopt-branch.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/adopt-branch.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAG7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAG3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBANZ,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,qBAAqB,EAErC,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
|
|
@@ -23,7 +23,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
23
23
|
};
|
|
24
24
|
import { injectable, inject } from 'tsyringe';
|
|
25
25
|
import { randomUUID } from 'node:crypto';
|
|
26
|
-
import { SdlcLifecycle, PrStatus } from '../../../domain/generated/output.js';
|
|
26
|
+
import { SdlcLifecycle, PrStatus, FeatureMode } from '../../../domain/generated/output.js';
|
|
27
27
|
import { deriveName, deriveSlug } from './branch-name-utils.js';
|
|
28
28
|
/** Branches that must not be adopted as features. */
|
|
29
29
|
const PROTECTED_BRANCHES = new Set(['main', 'master']);
|
|
@@ -89,7 +89,8 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
89
89
|
lifecycle,
|
|
90
90
|
messages: [],
|
|
91
91
|
relatedArtifacts: [],
|
|
92
|
-
|
|
92
|
+
mode: FeatureMode.Regular,
|
|
93
|
+
iterationCount: 0,
|
|
93
94
|
push: false,
|
|
94
95
|
openPr: hasOpenPr,
|
|
95
96
|
forkAndPr: false,
|
package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js
CHANGED
|
@@ -27,7 +27,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
27
27
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
28
|
};
|
|
29
29
|
import { injectable, inject } from 'tsyringe';
|
|
30
|
-
import { SdlcLifecycle } from '../../../domain/generated/output.js';
|
|
30
|
+
import { SdlcLifecycle, FeatureMode } from '../../../domain/generated/output.js';
|
|
31
31
|
import { POST_IMPLEMENTATION } from '../../../domain/lifecycle-gates.js';
|
|
32
32
|
let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
|
|
33
33
|
featureRepo;
|
|
@@ -69,7 +69,7 @@ let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
|
|
|
69
69
|
ciWatchEnabled: child.ciWatchEnabled,
|
|
70
70
|
enableEvidence: child.enableEvidence,
|
|
71
71
|
commitEvidence: child.commitEvidence,
|
|
72
|
-
...(child.
|
|
72
|
+
...(child.mode !== FeatureMode.Regular ? { mode: child.mode } : {}),
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAOtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAGjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBApBd,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa,EAE3B,iBAAiB,EAAE,wBAAwB,EAE3C,cAAc,EAAE,eAAe;IAGlD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgJ1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;CAuJ1D"}
|
package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js
CHANGED
|
@@ -29,7 +29,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
29
29
|
};
|
|
30
30
|
import { injectable, inject } from 'tsyringe';
|
|
31
31
|
import { randomUUID } from 'node:crypto';
|
|
32
|
-
import { SdlcLifecycle, AgentRunStatus, } from '../../../../domain/generated/output.js';
|
|
32
|
+
import { SdlcLifecycle, AgentRunStatus, FeatureMode, } from '../../../../domain/generated/output.js';
|
|
33
33
|
import { getSettings } from '../../../../infrastructure/services/settings.service.js';
|
|
34
34
|
import { POST_IMPLEMENTATION } from '../../../../domain/lifecycle-gates.js';
|
|
35
35
|
import { AttachmentStorageService } from '../../../../infrastructure/services/attachment-storage.service.js';
|
|
@@ -75,9 +75,12 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
75
75
|
* No AI calls, no git operations — just DB writes.
|
|
76
76
|
*/
|
|
77
77
|
async createRecord(input) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
const effectiveMode = input.mode ?? FeatureMode.Regular;
|
|
79
|
+
let initialLifecycle = effectiveMode === FeatureMode.Exploration
|
|
80
|
+
? SdlcLifecycle.Exploring
|
|
81
|
+
: effectiveMode === FeatureMode.Fast
|
|
82
|
+
? SdlcLifecycle.Implementation
|
|
83
|
+
: SdlcLifecycle.Requirements;
|
|
81
84
|
let shouldSpawn = true;
|
|
82
85
|
let effectiveRepoPath = input.repositoryPath.replace(/\\/g, '/');
|
|
83
86
|
// Pending flag takes precedence — user explicitly defers agent execution.
|
|
@@ -150,7 +153,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
150
153
|
lifecycle: initialLifecycle,
|
|
151
154
|
messages: [],
|
|
152
155
|
relatedArtifacts: [],
|
|
153
|
-
|
|
156
|
+
mode: effectiveMode,
|
|
154
157
|
push: input.push ?? false,
|
|
155
158
|
openPr: input.openPr ?? false,
|
|
156
159
|
forkAndPr: input.forkAndPr ?? false,
|
|
@@ -163,6 +166,10 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
163
166
|
allowPlan: false,
|
|
164
167
|
allowMerge: false,
|
|
165
168
|
},
|
|
169
|
+
iterationCount: 0,
|
|
170
|
+
...(effectiveMode === FeatureMode.Exploration && {
|
|
171
|
+
maxIterations: getSettings().workflow.explorationMaxIterations ?? 10,
|
|
172
|
+
}),
|
|
166
173
|
agentRunId: runId,
|
|
167
174
|
specPath: '',
|
|
168
175
|
repositoryId: repository.id,
|
|
@@ -227,7 +234,11 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
227
234
|
const worktreePath = this.worktreeService.getWorktreePath(effectiveRepoPath, branch);
|
|
228
235
|
await this.worktreeService.create(effectiveRepoPath, branch, worktreePath, defaultBranch);
|
|
229
236
|
// Initialize spec directory — full user input goes into spec.yaml as-is
|
|
230
|
-
const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput,
|
|
237
|
+
const { specDir } = await this.specInitializer.initialize(worktreePath, slug, featureNumber, input.userInput, feature.mode === FeatureMode.Fast
|
|
238
|
+
? 'fast'
|
|
239
|
+
: feature.mode === FeatureMode.Exploration
|
|
240
|
+
? 'exploration'
|
|
241
|
+
: undefined);
|
|
231
242
|
// Commit pending attachments if sessionId was provided (web UI flow)
|
|
232
243
|
let committedAttachments = input.attachments;
|
|
233
244
|
if (input.sessionId) {
|
|
@@ -305,7 +316,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
305
316
|
ciWatchEnabled: input.ciWatchEnabled ?? true,
|
|
306
317
|
enableEvidence: input.enableEvidence ?? false,
|
|
307
318
|
commitEvidence: input.commitEvidence ?? false,
|
|
308
|
-
...(
|
|
319
|
+
...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
|
|
309
320
|
...(input.agentType ? { agentType: input.agentType } : {}),
|
|
310
321
|
...(input.model ? { model: input.model } : {}),
|
|
311
322
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ApprovalGates, Attachment, Feature } from '../../../../domain/generated/output.js';
|
|
2
|
+
import { type FeatureMode } from '../../../../domain/generated/output.js';
|
|
2
3
|
export interface CreateFeatureInput {
|
|
3
4
|
userInput: string;
|
|
4
5
|
repositoryPath: string;
|
|
@@ -11,8 +12,8 @@ export interface CreateFeatureInput {
|
|
|
11
12
|
name?: string;
|
|
12
13
|
/** Pre-supplied description (skips AI metadata extraction for description). */
|
|
13
14
|
description?: string;
|
|
14
|
-
/**
|
|
15
|
-
|
|
15
|
+
/** Execution mode: Regular (full SDLC), Fast (direct implementation), or Exploration (iterative prototyping). */
|
|
16
|
+
mode?: FeatureMode;
|
|
16
17
|
/** Fork repo and create PR to upstream at merge time (default: false). */
|
|
17
18
|
forkAndPr?: boolean;
|
|
18
19
|
/** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iHAAiH;IACjH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/delete-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"delete-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/delete-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBACa,oBAAoB;IAEC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAE5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IACA,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALP,WAAW,EAAE,kBAAkB,EACjC,eAAe,EAAE,gBAAgB,EAE7D,cAAc,EAAE,2BAA2B,EACZ,OAAO,EAAE,mBAAmB,EAClC,YAAY,EAAE,aAAa;IAGjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BlF,oGAAoG;YACtF,gBAAgB;IAW9B,0DAA0D;YAC5C,iBAAiB;IAQ/B,6DAA6D;YAC/C,yBAAyB;IAevC,sDAAsD;YACxC,sBAAsB;IAYpC,6EAA6E;YAC/D,oBAAoB;CAyFnC"}
|
|
@@ -25,6 +25,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
25
25
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
26
26
|
};
|
|
27
27
|
import { injectable, inject } from 'tsyringe';
|
|
28
|
+
import { homedir } from 'node:os';
|
|
29
|
+
import { join } from 'node:path';
|
|
30
|
+
import { unlink } from 'node:fs/promises';
|
|
28
31
|
import { AgentRunStatus, PrStatus, SdlcLifecycle } from '../../../domain/generated/output.js';
|
|
29
32
|
let DeleteFeatureUseCase = class DeleteFeatureUseCase {
|
|
30
33
|
featureRepo;
|
|
@@ -123,6 +126,16 @@ let DeleteFeatureUseCase = class DeleteFeatureUseCase {
|
|
|
123
126
|
}
|
|
124
127
|
await this.runRepo.updateStatus(run.id, AgentRunStatus.cancelled);
|
|
125
128
|
}
|
|
129
|
+
// Clean up checkpoint database file (used by LangGraph for state persistence)
|
|
130
|
+
if (run?.threadId) {
|
|
131
|
+
const checkpointPath = join(homedir(), '.shep', 'checkpoints', `${run.threadId}.db`);
|
|
132
|
+
try {
|
|
133
|
+
await unlink(checkpointPath);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Checkpoint file may not exist or already be removed
|
|
137
|
+
}
|
|
138
|
+
}
|
|
126
139
|
}
|
|
127
140
|
// Cleanup worktree and branches directly using the feature data we already
|
|
128
141
|
// have (CleanupFeatureWorktreeUseCase.execute() would fail because
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promote Exploration Use Case
|
|
3
|
+
*
|
|
4
|
+
* Transitions an exploration feature to Regular or Fast mode via in-place
|
|
5
|
+
* mode transition. Changes the mode field, transitions lifecycle from
|
|
6
|
+
* Exploring to Requirements (regular) or Implementation (fast), optionally
|
|
7
|
+
* scaffolds missing spec YAMLs when promoting to regular, and spawns the
|
|
8
|
+
* appropriate agent graph.
|
|
9
|
+
*
|
|
10
|
+
* Business Rules:
|
|
11
|
+
* - Feature must be in Exploration mode and Exploring lifecycle
|
|
12
|
+
* - Promotion preserves existing worktree and branch (prototype code)
|
|
13
|
+
* - Promoting to Regular scaffolds missing spec YAMLs (spec, research, plan, tasks)
|
|
14
|
+
* - Promoting to Fast does not scaffold spec YAMLs
|
|
15
|
+
* - Spawns the appropriate agent graph after transition
|
|
16
|
+
*/
|
|
17
|
+
import type { Feature } from '../../../../domain/generated/output.js';
|
|
18
|
+
import { FeatureMode } from '../../../../domain/generated/output.js';
|
|
19
|
+
import type { IFeatureRepository } from '../../../ports/output/repositories/feature-repository.interface.js';
|
|
20
|
+
import type { IFeatureAgentProcessService } from '../../../ports/output/agents/feature-agent-process.interface.js';
|
|
21
|
+
import type { IAgentRunRepository } from '../../../ports/output/agents/agent-run-repository.interface.js';
|
|
22
|
+
import type { ISpecInitializerService } from '../../../ports/output/services/spec-initializer.interface.js';
|
|
23
|
+
import type { IWorktreeService } from '../../../ports/output/services/worktree-service.interface.js';
|
|
24
|
+
export interface PromoteExplorationInput {
|
|
25
|
+
featureId: string;
|
|
26
|
+
targetMode: FeatureMode.Regular | FeatureMode.Fast;
|
|
27
|
+
}
|
|
28
|
+
export interface PromoteExplorationResult {
|
|
29
|
+
feature: Feature;
|
|
30
|
+
}
|
|
31
|
+
export declare class PromoteExplorationUseCase {
|
|
32
|
+
private readonly featureRepo;
|
|
33
|
+
private readonly processService;
|
|
34
|
+
private readonly runRepo;
|
|
35
|
+
private readonly specInitializer;
|
|
36
|
+
private readonly worktreeService;
|
|
37
|
+
constructor(featureRepo: IFeatureRepository, processService: IFeatureAgentProcessService, runRepo: IAgentRunRepository, specInitializer: ISpecInitializerService, worktreeService: IWorktreeService);
|
|
38
|
+
execute(input: PromoteExplorationInput): Promise<PromoteExplorationResult>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=promote-exploration.use-case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote-exploration.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAiB,WAAW,EAAkB,MAAM,wCAAwC,CAAC;AAEpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAGrG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBARf,WAAW,EAAE,kBAAkB,EAE/B,cAAc,EAAE,2BAA2B,EAE3C,OAAO,EAAE,mBAAmB,EAE5B,eAAe,EAAE,uBAAuB,EAExC,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAiGjF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promote Exploration Use Case
|
|
3
|
+
*
|
|
4
|
+
* Transitions an exploration feature to Regular or Fast mode via in-place
|
|
5
|
+
* mode transition. Changes the mode field, transitions lifecycle from
|
|
6
|
+
* Exploring to Requirements (regular) or Implementation (fast), optionally
|
|
7
|
+
* scaffolds missing spec YAMLs when promoting to regular, and spawns the
|
|
8
|
+
* appropriate agent graph.
|
|
9
|
+
*
|
|
10
|
+
* Business Rules:
|
|
11
|
+
* - Feature must be in Exploration mode and Exploring lifecycle
|
|
12
|
+
* - Promotion preserves existing worktree and branch (prototype code)
|
|
13
|
+
* - Promoting to Regular scaffolds missing spec YAMLs (spec, research, plan, tasks)
|
|
14
|
+
* - Promoting to Fast does not scaffold spec YAMLs
|
|
15
|
+
* - Spawns the appropriate agent graph after transition
|
|
16
|
+
*/
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
27
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
|
+
};
|
|
29
|
+
import { injectable, inject } from 'tsyringe';
|
|
30
|
+
import { randomUUID } from 'node:crypto';
|
|
31
|
+
import { SdlcLifecycle, FeatureMode, AgentRunStatus } from '../../../../domain/generated/output.js';
|
|
32
|
+
import { EXPLORING_TRANSITIONS } from '../../../../domain/lifecycle-gates.js';
|
|
33
|
+
import { getSettings } from '../../../../infrastructure/services/settings.service.js';
|
|
34
|
+
let PromoteExplorationUseCase = class PromoteExplorationUseCase {
|
|
35
|
+
featureRepo;
|
|
36
|
+
processService;
|
|
37
|
+
runRepo;
|
|
38
|
+
specInitializer;
|
|
39
|
+
worktreeService;
|
|
40
|
+
constructor(featureRepo, processService, runRepo, specInitializer, worktreeService) {
|
|
41
|
+
this.featureRepo = featureRepo;
|
|
42
|
+
this.processService = processService;
|
|
43
|
+
this.runRepo = runRepo;
|
|
44
|
+
this.specInitializer = specInitializer;
|
|
45
|
+
this.worktreeService = worktreeService;
|
|
46
|
+
}
|
|
47
|
+
async execute(input) {
|
|
48
|
+
const feature = (await this.featureRepo.findById(input.featureId)) ??
|
|
49
|
+
(await this.featureRepo.findByIdPrefix(input.featureId));
|
|
50
|
+
if (!feature) {
|
|
51
|
+
throw new Error(`Feature not found: ${input.featureId}`);
|
|
52
|
+
}
|
|
53
|
+
if (feature.mode !== FeatureMode.Exploration) {
|
|
54
|
+
throw new Error(`Feature "${feature.name}" is not in Exploration mode (current: ${feature.mode}). Only exploration features can be promoted.`);
|
|
55
|
+
}
|
|
56
|
+
if (feature.lifecycle !== SdlcLifecycle.Exploring) {
|
|
57
|
+
throw new Error(`Feature "${feature.name}" is not in Exploring lifecycle (current: ${feature.lifecycle}). Only features in Exploring state can be promoted.`);
|
|
58
|
+
}
|
|
59
|
+
const targetLifecycle = input.targetMode === FeatureMode.Fast
|
|
60
|
+
? SdlcLifecycle.Implementation
|
|
61
|
+
: SdlcLifecycle.Requirements;
|
|
62
|
+
// Validate the transition is allowed
|
|
63
|
+
if (!EXPLORING_TRANSITIONS.has(targetLifecycle)) {
|
|
64
|
+
throw new Error(`Invalid promotion target lifecycle: ${targetLifecycle}`);
|
|
65
|
+
}
|
|
66
|
+
// Scaffold missing spec YAMLs when promoting to regular mode
|
|
67
|
+
if (input.targetMode === FeatureMode.Regular && feature.specPath) {
|
|
68
|
+
const worktreePath = feature.worktreePath ??
|
|
69
|
+
this.worktreeService.getWorktreePath(feature.repositoryPath, feature.branch);
|
|
70
|
+
await this.specInitializer.initialize(worktreePath, feature.slug, 0, // Feature number hint — resolveNextNumber will use existing dir
|
|
71
|
+
feature.userQuery);
|
|
72
|
+
}
|
|
73
|
+
// Create a new agent run for the promoted mode
|
|
74
|
+
const settings = getSettings();
|
|
75
|
+
const runId = randomUUID();
|
|
76
|
+
const agentRun = {
|
|
77
|
+
id: runId,
|
|
78
|
+
agentType: settings.agent.type,
|
|
79
|
+
agentName: 'feature-agent',
|
|
80
|
+
status: AgentRunStatus.pending,
|
|
81
|
+
prompt: feature.userQuery,
|
|
82
|
+
threadId: randomUUID(),
|
|
83
|
+
featureId: feature.id,
|
|
84
|
+
repositoryPath: feature.repositoryPath,
|
|
85
|
+
createdAt: new Date().toISOString(),
|
|
86
|
+
updatedAt: new Date().toISOString(),
|
|
87
|
+
};
|
|
88
|
+
await this.runRepo.create(agentRun);
|
|
89
|
+
// Update the feature: mode, lifecycle, and agent run reference
|
|
90
|
+
const updatedFeature = {
|
|
91
|
+
...feature,
|
|
92
|
+
mode: input.targetMode,
|
|
93
|
+
lifecycle: targetLifecycle,
|
|
94
|
+
agentRunId: runId,
|
|
95
|
+
updatedAt: new Date(),
|
|
96
|
+
};
|
|
97
|
+
await this.featureRepo.update(updatedFeature);
|
|
98
|
+
// Spawn the appropriate agent graph
|
|
99
|
+
const worktreePath = feature.worktreePath ??
|
|
100
|
+
this.worktreeService.getWorktreePath(feature.repositoryPath, feature.branch);
|
|
101
|
+
this.processService.spawn(feature.id, runId, feature.repositoryPath, feature.specPath ?? '', worktreePath, {
|
|
102
|
+
approvalGates: feature.approvalGates,
|
|
103
|
+
threadId: agentRun.threadId,
|
|
104
|
+
push: feature.push,
|
|
105
|
+
openPr: feature.openPr,
|
|
106
|
+
forkAndPr: feature.forkAndPr,
|
|
107
|
+
commitSpecs: feature.commitSpecs,
|
|
108
|
+
ciWatchEnabled: feature.ciWatchEnabled,
|
|
109
|
+
enableEvidence: feature.enableEvidence,
|
|
110
|
+
commitEvidence: feature.commitEvidence,
|
|
111
|
+
...(input.targetMode !== FeatureMode.Regular ? { mode: input.targetMode } : {}),
|
|
112
|
+
});
|
|
113
|
+
return { feature: updatedFeature };
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
PromoteExplorationUseCase = __decorate([
|
|
117
|
+
injectable(),
|
|
118
|
+
__param(0, inject('IFeatureRepository')),
|
|
119
|
+
__param(1, inject('IFeatureAgentProcessService')),
|
|
120
|
+
__param(2, inject('IAgentRunRepository')),
|
|
121
|
+
__param(3, inject('ISpecInitializerService')),
|
|
122
|
+
__param(4, inject('IWorktreeService')),
|
|
123
|
+
__metadata("design:paramtypes", [Object, Object, Object, Object, Object])
|
|
124
|
+
], PromoteExplorationUseCase);
|
|
125
|
+
export { PromoteExplorationUseCase };
|
|
@@ -18,7 +18,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
18
18
|
};
|
|
19
19
|
import { injectable, inject } from 'tsyringe';
|
|
20
20
|
import { randomUUID } from 'node:crypto';
|
|
21
|
-
import { AgentRunStatus } from '../../../domain/generated/output.js';
|
|
21
|
+
import { AgentRunStatus, FeatureMode } from '../../../domain/generated/output.js';
|
|
22
22
|
const RESUMABLE_STATUSES = new Set([
|
|
23
23
|
AgentRunStatus.interrupted,
|
|
24
24
|
AgentRunStatus.failed,
|
|
@@ -115,7 +115,7 @@ let ResumeFeatureUseCase = class ResumeFeatureUseCase {
|
|
|
115
115
|
enableEvidence: feature.enableEvidence,
|
|
116
116
|
commitEvidence: feature.commitEvidence,
|
|
117
117
|
agentType: lastRun.agentType,
|
|
118
|
-
...(feature.
|
|
118
|
+
...(feature.mode !== FeatureMode.Regular ? { mode: feature.mode } : {}),
|
|
119
119
|
...(lastRun.modelId ? { model: lastRun.modelId } : {}),
|
|
120
120
|
resumeReason: lastRun.status,
|
|
121
121
|
});
|
package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/start-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"start-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/start-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBANf,WAAW,EAAE,kBAAkB,EAE/B,OAAO,EAAE,mBAAmB,EAE5B,cAAc,EAAE,2BAA2B,EAE3C,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4G9D"}
|
|
@@ -18,7 +18,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
18
18
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
19
19
|
};
|
|
20
20
|
import { injectable, inject } from 'tsyringe';
|
|
21
|
-
import { SdlcLifecycle } from '../../../domain/generated/output.js';
|
|
21
|
+
import { SdlcLifecycle, FeatureMode } from '../../../domain/generated/output.js';
|
|
22
22
|
import { POST_IMPLEMENTATION } from '../../../domain/lifecycle-gates.js';
|
|
23
23
|
let StartFeatureUseCase = class StartFeatureUseCase {
|
|
24
24
|
featureRepo;
|
|
@@ -71,7 +71,9 @@ let StartFeatureUseCase = class StartFeatureUseCase {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
// Check parent gate if feature has a parent
|
|
74
|
-
let targetLifecycle = resolved.
|
|
74
|
+
let targetLifecycle = resolved.mode === FeatureMode.Fast
|
|
75
|
+
? SdlcLifecycle.Implementation
|
|
76
|
+
: SdlcLifecycle.Requirements;
|
|
75
77
|
let shouldSpawn = true;
|
|
76
78
|
if (resolved.parentId) {
|
|
77
79
|
const parent = await this.featureRepo.findById(resolved.parentId);
|
|
@@ -103,7 +105,7 @@ let StartFeatureUseCase = class StartFeatureUseCase {
|
|
|
103
105
|
enableEvidence: resolved.enableEvidence,
|
|
104
106
|
commitEvidence: resolved.commitEvidence,
|
|
105
107
|
agentType: agentRun.agentType,
|
|
106
|
-
...(resolved.
|
|
108
|
+
...(resolved.mode !== FeatureMode.Regular ? { mode: resolved.mode } : {}),
|
|
107
109
|
...(agentRun.modelId ? { model: agentRun.modelId } : {}),
|
|
108
110
|
});
|
|
109
111
|
}
|