@shepai/cli 1.145.0 → 1.146.0-pr437.aa23c1e
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 +25 -0
- package/apis/json-schema/FeatureFlags.yaml +5 -0
- package/apis/json-schema/PullRequest.yaml +11 -0
- package/apis/json-schema/SdlcLifecycle.yaml +1 -0
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +5 -0
- 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/coasts-service.interface.d.ts +132 -0
- package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.js +12 -0
- package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.d.ts +79 -0
- package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.js +31 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- 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 +5 -0
- 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 +10 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +10 -0
- 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/poll-upstream-pr.use-case.d.ts +23 -0
- package/dist/packages/core/src/application/use-cases/features/poll-upstream-pr.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/features/poll-upstream-pr.use-case.js +84 -0
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -0
- 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 +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +37 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +1 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +8 -0
- 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 +18 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.js +17 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-add-fork-and-pr-columns.d.ts +13 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-add-fork-and-pr-columns.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-add-fork-and-pr-columns.js +30 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-per-feature-workflow-columns.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-per-feature-workflow-columns.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-per-feature-workflow-columns.js +23 -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 +23 -4
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +25 -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 +85 -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 +5 -0
- 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 +15 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +5 -0
- 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 +23 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +50 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +8 -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 +40 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/analyze.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/analyze.prompt.js +11 -9
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +5 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/plan.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/plan.prompt.js +8 -6
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/requirements.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/requirements.prompt.js +11 -9
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/research.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/research.prompt.js +8 -6
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/schemas/spec.schema.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/schemas/spec.schema.js +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/schemas/validation.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/schemas/validation.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/schemas/validation.js +9 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +5 -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 +20 -0
- package/dist/packages/core/src/infrastructure/services/coasts.service.d.ts +42 -0
- package/dist/packages/core/src/infrastructure/services/coasts.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/coasts.service.js +185 -0
- package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts +25 -0
- package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/git/git-fork.service.js +145 -0
- package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.d.ts +17 -3
- package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.js +98 -15
- package/dist/src/presentation/cli/commands/coasts/index.d.ts +3 -0
- package/dist/src/presentation/cli/commands/coasts/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/coasts/index.js +7 -0
- package/dist/src/presentation/cli/commands/coasts/init.command.d.ts +3 -0
- package/dist/src/presentation/cli/commands/coasts/init.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/coasts/init.command.js +40 -0
- package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ui.command.js +2 -1
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/actions/check-coastfile.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/check-coastfile.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-coastfile.js +16 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +10 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +8 -1
- package/dist/src/presentation/web/app/actions/generate-coastfile.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/generate-coastfile.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/generate-coastfile.js +22 -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 +5 -3
- package/dist/src/presentation/web/app/build-graph-nodes.js +5 -3
- package/dist/src/presentation/web/coasts-dev-server.d.ts +34 -0
- package/dist/src/presentation/web/coasts-dev-server.d.ts.map +1 -0
- package/dist/src/presentation/web/coasts-dev-server.js +69 -0
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +4 -0
- 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 +24 -7
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +12 -0
- 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 +35 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +7 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +5 -1
- 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.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +1 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +9 -2
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.d.ts +12 -0
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.js +76 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +5 -0
- 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/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
- package/dist/src/presentation/web/dev-server.js +64 -2
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +5 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -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 +86 -56
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
- 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/create/page/server-reference-manifest.json +86 -56
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- 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 +102 -72
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +102 -72
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +82 -52
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- 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)/create/page/server-reference-manifest.json +86 -56
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- 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 +102 -72
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +102 -72
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +82 -52
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- 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]/page/server-reference-manifest.json +82 -52
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- 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 +3 -3
- 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/sessions/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/settings/page.js.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 +8 -8
- 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 +8 -8
- 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 +3 -3
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/403f9_next_567de315._.js +2 -2
- 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 +2 -2
- 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]__c6e32a23._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.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/[root-of-the-server]__0b150ddf._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.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]__3ef34e4c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__581769f7._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__581769f7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6df523d1._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6df523d1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8004c676._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8004c676._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815f85e7._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815f85e7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df7c1cd3._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df7c1cd3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
- package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0c5f56e3._.js → _45117016._.js} +3 -3
- package/web/.next/server/chunks/ssr/{_0c5f56e3._.js.map → _45117016._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_4b432739._.js +1 -1
- package/web/.next/server/chunks/ssr/_4b432739._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6256a985._.js +1 -1
- package/web/.next/server/chunks/ssr/_6256a985._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1fa6f5f0._.js → _7b12d338._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_1fa6f5f0._.js.map → _7b12d338._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8fcc39d4._.js +3 -0
- package/web/.next/server/chunks/ssr/_8fcc39d4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_b71645b4._.js → _9133ca98._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_b71645b4._.js.map → _9133ca98._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_1b719e7f._.js → _913a6589._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_1b719e7f._.js.map → _913a6589._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_a93b44aa._.js +3 -0
- package/web/.next/server/chunks/ssr/{_2a415784._.js.map → _a93b44aa._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_64bdfc6f._.js → _c7d0d381._.js} +3 -3
- package/web/.next/server/chunks/ssr/{_64bdfc6f._.js.map → _c7d0d381._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_55d763e2._.js → _e816b997._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_37e8548b._.js.map → _e816b997._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_37e8548b._.js → _f483d14b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_55d763e2._.js.map → _f483d14b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0c3330d7._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_721fb773._.js.map → src_presentation_web_0c3330d7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +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_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.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/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +506 -350
- package/web/.next/static/chunks/{74ee98538b63a4b2.css → 080d853d319c5cc5.css} +1 -1
- package/web/.next/static/chunks/{41667f7f505952e6.js → 179c3052fd19c46d.js} +1 -1
- package/web/.next/static/chunks/{18c49ba954b15750.js → 1f4814c4adb31418.js} +1 -1
- package/web/.next/static/chunks/{149c88eadafaf835.js → 47d12705199052e7.js} +1 -1
- package/web/.next/static/chunks/{7559d0ac9e155de8.js → 524add4103e8a3b9.js} +2 -2
- package/web/.next/static/chunks/{c0fd9ae3d7b3ebe3.js → 6b7a1e5e9f1b014a.js} +1 -1
- package/web/.next/static/chunks/{08baac5434d9528e.js → 7d5e500fab64cfb5.js} +7 -7
- package/web/.next/static/chunks/816b98cd7e8330b5.js +1 -0
- package/web/.next/static/chunks/{f2a6406394a41d3c.js → 8e26be828072d7f6.js} +1 -1
- package/web/.next/static/chunks/9d6689f6cc4f825f.js +1 -0
- package/web/.next/static/chunks/{e2e3d8a7d339c110.js → a511514839eda467.js} +1 -1
- package/web/.next/static/chunks/{266fe61224d14058.js → d540d45e05b43599.js} +1 -1
- package/web/.next/static/chunks/{ed43f5ec24322234.js → ee3fb116e420b158.js} +1 -1
- package/web/.next/static/chunks/{37b065777853153c.js → f5a7f4c2313fad01.js} +2 -2
- package/web/.next/static/chunks/fa556c575c788679.js +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cb850066._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__cb850066._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_2a415784._.js +0 -3
- package/web/.next/server/chunks/ssr/_a9f57758._.js +0 -3
- package/web/.next/server/chunks/ssr/_a9f57758._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_721fb773._.js +0 -3
- package/web/.next/static/chunks/6a370f2709c81d83.js +0 -1
- package/web/.next/static/chunks/a6f8230f1756f318.js +0 -1
- package/web/.next/static/chunks/d1c52a649f1c7704.js +0 -1
- /package/web/.next/static/{CrBDjRQwzIQuEXTobFPfK → MsLpLuZsb_IZtZfJuzG81}/_buildManifest.js +0 -0
- /package/web/.next/static/{CrBDjRQwzIQuEXTobFPfK → MsLpLuZsb_IZtZfJuzG81}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{CrBDjRQwzIQuEXTobFPfK → MsLpLuZsb_IZtZfJuzG81}/_ssgManifest.js +0 -0
|
@@ -57,6 +57,26 @@ properties:
|
|
|
57
57
|
type: boolean
|
|
58
58
|
default: false
|
|
59
59
|
description: "Create PR after implementation (default: false)"
|
|
60
|
+
forkAndPr:
|
|
61
|
+
type: boolean
|
|
62
|
+
default: false
|
|
63
|
+
description: "Fork repo and create PR to upstream at merge time (default: false)"
|
|
64
|
+
commitSpecs:
|
|
65
|
+
type: boolean
|
|
66
|
+
default: true
|
|
67
|
+
description: Commit specs/evidences into the repo (defaults false when forkAndPr is enabled)
|
|
68
|
+
ciWatchEnabled:
|
|
69
|
+
type: boolean
|
|
70
|
+
default: true
|
|
71
|
+
description: "Enable CI watch/fix loop after push (default: true)"
|
|
72
|
+
enableEvidence:
|
|
73
|
+
type: boolean
|
|
74
|
+
default: false
|
|
75
|
+
description: "Enable evidence collection after implementation (default: false)"
|
|
76
|
+
commitEvidence:
|
|
77
|
+
type: boolean
|
|
78
|
+
default: false
|
|
79
|
+
description: "Commit evidence to PR (default: false, requires enableEvidence)"
|
|
60
80
|
approvalGates:
|
|
61
81
|
$ref: ApprovalGates.yaml
|
|
62
82
|
description: Approval gates configuration (embedded value object)
|
|
@@ -90,6 +110,11 @@ required:
|
|
|
90
110
|
- fast
|
|
91
111
|
- push
|
|
92
112
|
- openPr
|
|
113
|
+
- forkAndPr
|
|
114
|
+
- commitSpecs
|
|
115
|
+
- ciWatchEnabled
|
|
116
|
+
- enableEvidence
|
|
117
|
+
- commitEvidence
|
|
93
118
|
- approvalGates
|
|
94
119
|
allOf:
|
|
95
120
|
- $ref: SoftDeletableEntity.yaml
|
|
@@ -30,6 +30,10 @@ properties:
|
|
|
30
30
|
type: boolean
|
|
31
31
|
default: false
|
|
32
32
|
description: Use the built-in React file manager instead of the native OS folder picker
|
|
33
|
+
coastsDevServer:
|
|
34
|
+
type: boolean
|
|
35
|
+
default: false
|
|
36
|
+
description: Enable Coasts containerized runtime isolation for the dev server
|
|
33
37
|
required:
|
|
34
38
|
- skills
|
|
35
39
|
- envDeploy
|
|
@@ -38,4 +42,5 @@ required:
|
|
|
38
42
|
- adoptBranch
|
|
39
43
|
- gitRebaseSync
|
|
40
44
|
- reactFileManager
|
|
45
|
+
- coastsDevServer
|
|
41
46
|
description: Feature flag toggles for runtime feature control
|
|
@@ -32,6 +32,17 @@ properties:
|
|
|
32
32
|
mergeable:
|
|
33
33
|
type: boolean
|
|
34
34
|
description: Whether the PR can be merged (false = merge conflicts)
|
|
35
|
+
upstreamPrUrl:
|
|
36
|
+
type: string
|
|
37
|
+
description: URL of the PR created on the upstream repo (fork-and-PR flow only)
|
|
38
|
+
upstreamPrNumber:
|
|
39
|
+
type: integer
|
|
40
|
+
minimum: -2147483648
|
|
41
|
+
maximum: 2147483647
|
|
42
|
+
description: PR number on the upstream repo
|
|
43
|
+
upstreamPrStatus:
|
|
44
|
+
$ref: PrStatus.yaml
|
|
45
|
+
description: Status of the upstream PR
|
|
35
46
|
required:
|
|
36
47
|
- url
|
|
37
48
|
- number
|
package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts
CHANGED
|
@@ -30,6 +30,11 @@ export interface IFeatureAgentProcessService {
|
|
|
30
30
|
resumeFromInterrupt?: boolean;
|
|
31
31
|
push?: boolean;
|
|
32
32
|
openPr?: boolean;
|
|
33
|
+
forkAndPr?: boolean;
|
|
34
|
+
commitSpecs?: boolean;
|
|
35
|
+
ciWatchEnabled?: boolean;
|
|
36
|
+
enableEvidence?: boolean;
|
|
37
|
+
commitEvidence?: boolean;
|
|
33
38
|
resumePayload?: string;
|
|
34
39
|
agentType?: AgentType;
|
|
35
40
|
fast?: boolean;
|
|
@@ -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;AAEvF;;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,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,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"}
|
|
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;AAEvF;;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,OAAO,CAAC;QACf,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/coasts-service.interface.d.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coasts Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for managing Coasts containerized runtime isolation.
|
|
5
|
+
* Implementations wrap the coast CLI binary via subprocess invocation
|
|
6
|
+
* and integrate with the AI agent system for Coastfile generation.
|
|
7
|
+
*
|
|
8
|
+
* Following Clean Architecture:
|
|
9
|
+
* - Application layer depends on this interface
|
|
10
|
+
* - Infrastructure layer provides concrete implementations
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Result of checking Coasts prerequisites.
|
|
14
|
+
* Each boolean indicates whether a specific prerequisite is met.
|
|
15
|
+
*/
|
|
16
|
+
export interface PrerequisiteCheckResult {
|
|
17
|
+
/** Whether the `coast` binary is available on PATH. */
|
|
18
|
+
coastBinary: boolean;
|
|
19
|
+
/** Whether the Docker daemon is reachable. */
|
|
20
|
+
docker: boolean;
|
|
21
|
+
/** Whether the coastd daemon is running and responding. */
|
|
22
|
+
coastdRunning: boolean;
|
|
23
|
+
/** Convenience AND of all prerequisite checks. */
|
|
24
|
+
allMet: boolean;
|
|
25
|
+
/** Human-readable messages for each missing prerequisite with fix instructions. */
|
|
26
|
+
missingMessages: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Information about a running Coasts instance.
|
|
30
|
+
*/
|
|
31
|
+
export interface CoastInstance {
|
|
32
|
+
/** Port the coast instance is listening on. */
|
|
33
|
+
port: number;
|
|
34
|
+
/** URL to access the coast instance. */
|
|
35
|
+
url: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Port interface for managing Coasts containerized runtime isolation.
|
|
39
|
+
*
|
|
40
|
+
* Implementations must:
|
|
41
|
+
* - Invoke the coast CLI binary via subprocess (not the coastd HTTP API)
|
|
42
|
+
* - Support concurrent operations across different worktrees via workDir scoping
|
|
43
|
+
* - Cache the installation prompt for the process lifetime
|
|
44
|
+
* - Delegate Coastfile generation to the AI agent system
|
|
45
|
+
*/
|
|
46
|
+
export interface ICoastsService {
|
|
47
|
+
/**
|
|
48
|
+
* Check whether all Coasts prerequisites are met.
|
|
49
|
+
* Validates coast binary on PATH, Docker daemon reachable, and coastd running.
|
|
50
|
+
* On Windows, fails immediately with a platform-not-supported message.
|
|
51
|
+
*
|
|
52
|
+
* @param workDir - Working directory for the check (used as cwd for subprocess calls)
|
|
53
|
+
* @returns Result with individual check statuses and actionable messages for failures
|
|
54
|
+
*/
|
|
55
|
+
checkPrerequisites(workDir: string): Promise<PrerequisiteCheckResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Build the Coasts container image for the given directory.
|
|
58
|
+
* Invokes `coast build` in the specified working directory.
|
|
59
|
+
* Safe to call when the image is already built (idempotent).
|
|
60
|
+
*
|
|
61
|
+
* @param workDir - Directory containing the Coastfile
|
|
62
|
+
* @throws Error if coast build fails (exit code non-zero)
|
|
63
|
+
*/
|
|
64
|
+
build(workDir: string): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Start a Coasts instance for the given directory.
|
|
67
|
+
* Invokes `coast run` and returns instance info (port, URL).
|
|
68
|
+
* Safe to call when the instance is already running (idempotent).
|
|
69
|
+
*
|
|
70
|
+
* @param workDir - Directory containing the Coastfile
|
|
71
|
+
* @returns Information about the running coast instance
|
|
72
|
+
* @throws Error if coast run fails
|
|
73
|
+
*/
|
|
74
|
+
run(workDir: string): Promise<CoastInstance>;
|
|
75
|
+
/**
|
|
76
|
+
* Stop the Coasts instance for the given directory.
|
|
77
|
+
* Invokes `coast stop` for the specified working directory.
|
|
78
|
+
* No-op if no instance is running.
|
|
79
|
+
*
|
|
80
|
+
* @param workDir - Directory whose coast instance should be stopped
|
|
81
|
+
*/
|
|
82
|
+
stop(workDir: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Look up a running Coasts instance for the given directory.
|
|
85
|
+
*
|
|
86
|
+
* @param workDir - Directory to look up
|
|
87
|
+
* @returns Instance info if running, null if not found
|
|
88
|
+
*/
|
|
89
|
+
lookup(workDir: string): Promise<CoastInstance | null>;
|
|
90
|
+
/**
|
|
91
|
+
* Check if a Coasts instance is currently running for the given directory.
|
|
92
|
+
*
|
|
93
|
+
* @param workDir - Directory to check
|
|
94
|
+
* @returns True if an instance is running
|
|
95
|
+
*/
|
|
96
|
+
isRunning(workDir: string): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Assign canonical ports to this worktree's coast instance.
|
|
99
|
+
* Invokes `coast checkout` in the specified working directory.
|
|
100
|
+
*
|
|
101
|
+
* @param workDir - Directory whose coast instance should be checked out
|
|
102
|
+
*/
|
|
103
|
+
checkout(workDir: string): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Get the Coasts installation prompt for Coastfile generation.
|
|
106
|
+
* Invokes `coast installation-prompt` and returns the full prompt text.
|
|
107
|
+
* The result is cached for the process lifetime (FR-13).
|
|
108
|
+
*
|
|
109
|
+
* @returns The full installation prompt text from the coast CLI
|
|
110
|
+
* @throws Error if the coast binary is not available
|
|
111
|
+
*/
|
|
112
|
+
getInstallationPrompt(): Promise<string>;
|
|
113
|
+
/**
|
|
114
|
+
* Generate a Coastfile for the given directory using the AI agent system.
|
|
115
|
+
* Runs `coast installation-prompt` to obtain the generation prompt,
|
|
116
|
+
* passes it to the AI agent system with repo context, and writes the
|
|
117
|
+
* generated Coastfile to the directory.
|
|
118
|
+
*
|
|
119
|
+
* @param workDir - Directory where the Coastfile should be generated
|
|
120
|
+
* @returns Absolute path to the generated Coastfile
|
|
121
|
+
* @throws Error if prompt retrieval or agent execution fails
|
|
122
|
+
*/
|
|
123
|
+
generateCoastfile(workDir: string): Promise<string>;
|
|
124
|
+
/**
|
|
125
|
+
* Check if a Coastfile exists in the given directory.
|
|
126
|
+
*
|
|
127
|
+
* @param workDir - Directory to check for a Coastfile
|
|
128
|
+
* @returns True if a Coastfile exists
|
|
129
|
+
*/
|
|
130
|
+
hasCoastfile(workDir: string): Promise<boolean>;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=coasts-service.interface.d.ts.map
|
package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coasts-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/coasts-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,WAAW,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,aAAa,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coasts Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for managing Coasts containerized runtime isolation.
|
|
5
|
+
* Implementations wrap the coast CLI binary via subprocess invocation
|
|
6
|
+
* and integrate with the AI agent system for Coastfile generation.
|
|
7
|
+
*
|
|
8
|
+
* Following Clean Architecture:
|
|
9
|
+
* - Application layer depends on this interface
|
|
10
|
+
* - Infrastructure layer provides concrete implementations
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.d.ts
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Fork Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for GitHub fork and upstream PR operations.
|
|
5
|
+
* Used when forkAndPr=true to fork a repo, push to the fork,
|
|
6
|
+
* and create a PR to the upstream repository.
|
|
7
|
+
*/
|
|
8
|
+
import type { PrStatus } from '../../../../domain/generated/output.js';
|
|
9
|
+
/**
|
|
10
|
+
* Error codes for git fork operations.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum GitForkErrorCode {
|
|
13
|
+
AUTH_FAILURE = "AUTH_FAILURE",
|
|
14
|
+
FORK_FAILED = "FORK_FAILED",
|
|
15
|
+
PUSH_FAILED = "PUSH_FAILED",
|
|
16
|
+
PR_CREATE_FAILED = "PR_CREATE_FAILED",
|
|
17
|
+
PR_STATUS_FAILED = "PR_STATUS_FAILED"
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Typed error for git fork operations.
|
|
21
|
+
*/
|
|
22
|
+
export declare class GitForkError extends Error {
|
|
23
|
+
readonly code: GitForkErrorCode;
|
|
24
|
+
readonly cause?: Error | undefined;
|
|
25
|
+
constructor(message: string, code: GitForkErrorCode, cause?: Error | undefined);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of creating an upstream PR.
|
|
29
|
+
*/
|
|
30
|
+
export interface UpstreamPrResult {
|
|
31
|
+
/** URL of the upstream PR */
|
|
32
|
+
url: string;
|
|
33
|
+
/** PR number on the upstream repo */
|
|
34
|
+
number: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Service interface for GitHub fork and upstream PR operations.
|
|
38
|
+
*/
|
|
39
|
+
export interface IGitForkService {
|
|
40
|
+
/**
|
|
41
|
+
* Fork the repository to the authenticated user's GitHub account.
|
|
42
|
+
* Remaps remotes: fork becomes `origin`, original becomes `upstream`.
|
|
43
|
+
* Idempotent — if already forked, returns the existing fork.
|
|
44
|
+
*
|
|
45
|
+
* @param cwd - Working directory path (the worktree)
|
|
46
|
+
* @throws GitForkError with AUTH_FAILURE or FORK_FAILED code
|
|
47
|
+
*/
|
|
48
|
+
forkRepository(cwd: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Push the feature branch to the fork (origin after remapping).
|
|
51
|
+
*
|
|
52
|
+
* @param cwd - Working directory path
|
|
53
|
+
* @param branch - Branch name to push
|
|
54
|
+
* @throws GitForkError with PUSH_FAILED code
|
|
55
|
+
*/
|
|
56
|
+
pushToFork(cwd: string, branch: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Create a PR from the fork to the upstream repository.
|
|
59
|
+
*
|
|
60
|
+
* @param cwd - Working directory path
|
|
61
|
+
* @param title - PR title
|
|
62
|
+
* @param body - PR body/description
|
|
63
|
+
* @param head - Head branch (on the fork)
|
|
64
|
+
* @param base - Base branch on the upstream repo
|
|
65
|
+
* @returns URL and number of the created upstream PR
|
|
66
|
+
* @throws GitForkError with PR_CREATE_FAILED code
|
|
67
|
+
*/
|
|
68
|
+
createUpstreamPr(cwd: string, title: string, body: string, head: string, base: string): Promise<UpstreamPrResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Get the status of an upstream PR.
|
|
71
|
+
*
|
|
72
|
+
* @param upstreamRepo - Upstream repo in owner/name format
|
|
73
|
+
* @param prNumber - PR number on the upstream repo
|
|
74
|
+
* @returns The PR status (Open, Merged, or Closed)
|
|
75
|
+
* @throws GitForkError with PR_STATUS_FAILED code
|
|
76
|
+
*/
|
|
77
|
+
getUpstreamPrStatus(upstreamRepo: string, prNumber: number): Promise<PrStatus>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=git-fork-service.interface.d.ts.map
|
package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-fork-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-fork-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAGnB,IAAI,EAAE,gBAAgB;aACtB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,gBAAgB,EACtB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;;;;;;OAUG;IACH,gBAAgB,CACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChF"}
|
package/dist/packages/core/src/application/ports/output/services/git-fork-service.interface.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Fork Service Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for GitHub fork and upstream PR operations.
|
|
5
|
+
* Used when forkAndPr=true to fork a repo, push to the fork,
|
|
6
|
+
* and create a PR to the upstream repository.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Error codes for git fork operations.
|
|
10
|
+
*/
|
|
11
|
+
export var GitForkErrorCode;
|
|
12
|
+
(function (GitForkErrorCode) {
|
|
13
|
+
GitForkErrorCode["AUTH_FAILURE"] = "AUTH_FAILURE";
|
|
14
|
+
GitForkErrorCode["FORK_FAILED"] = "FORK_FAILED";
|
|
15
|
+
GitForkErrorCode["PUSH_FAILED"] = "PUSH_FAILED";
|
|
16
|
+
GitForkErrorCode["PR_CREATE_FAILED"] = "PR_CREATE_FAILED";
|
|
17
|
+
GitForkErrorCode["PR_STATUS_FAILED"] = "PR_STATUS_FAILED";
|
|
18
|
+
})(GitForkErrorCode || (GitForkErrorCode = {}));
|
|
19
|
+
/**
|
|
20
|
+
* Typed error for git fork operations.
|
|
21
|
+
*/
|
|
22
|
+
export class GitForkError extends Error {
|
|
23
|
+
code;
|
|
24
|
+
cause;
|
|
25
|
+
constructor(message, code, cause) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.code = code;
|
|
28
|
+
this.cause = cause;
|
|
29
|
+
this.name = 'GitForkError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -19,4 +19,5 @@ export type { IDaemonService, DaemonState } from './daemon-service.interface.js'
|
|
|
19
19
|
export type { IDeploymentService, DeploymentStatus } from './deployment-service.interface.js';
|
|
20
20
|
export type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, } from './github-repository-service.interface.js';
|
|
21
21
|
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, } from './github-repository-service.interface.js';
|
|
22
|
+
export type { ICoastsService, PrerequisiteCheckResult, CoastInstance, } from './coasts-service.interface.js';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,aAAa,GACd,MAAM,+BAA+B,CAAC"}
|
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;IA8FlE;;;;OAIG;YACW,gBAAgB;IAiB9B;;;;OAIG;YACW,iBAAiB;IA4B/B;;;OAGG;YACW,iBAAiB;CAuBhC"}
|
|
@@ -92,6 +92,11 @@ let AdoptBranchUseCase = class AdoptBranchUseCase {
|
|
|
92
92
|
fast: false,
|
|
93
93
|
push: false,
|
|
94
94
|
openPr: hasOpenPr,
|
|
95
|
+
forkAndPr: false,
|
|
96
|
+
commitSpecs: true,
|
|
97
|
+
ciWatchEnabled: true,
|
|
98
|
+
enableEvidence: false,
|
|
99
|
+
commitEvidence: false,
|
|
95
100
|
approvalGates: {
|
|
96
101
|
allowPrd: false,
|
|
97
102
|
allowPlan: false,
|
|
@@ -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;AAMtE,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;
|
|
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;AAMtE,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;IAwI1E;;;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;CAsI1D"}
|
package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js
CHANGED
|
@@ -153,6 +153,11 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
153
153
|
fast: input.fast ?? false,
|
|
154
154
|
push: input.push ?? false,
|
|
155
155
|
openPr: input.openPr ?? false,
|
|
156
|
+
forkAndPr: input.forkAndPr ?? false,
|
|
157
|
+
commitSpecs: input.commitSpecs ?? true,
|
|
158
|
+
ciWatchEnabled: input.ciWatchEnabled ?? true,
|
|
159
|
+
enableEvidence: input.enableEvidence ?? false,
|
|
160
|
+
commitEvidence: input.commitEvidence ?? false,
|
|
156
161
|
approvalGates: input.approvalGates ?? {
|
|
157
162
|
allowPrd: false,
|
|
158
163
|
allowPlan: false,
|
|
@@ -283,6 +288,11 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
283
288
|
threadId: agentRun?.threadId ?? randomUUID(),
|
|
284
289
|
push: input.push ?? false,
|
|
285
290
|
openPr: input.openPr ?? false,
|
|
291
|
+
forkAndPr: input.forkAndPr ?? false,
|
|
292
|
+
commitSpecs: input.commitSpecs ?? true,
|
|
293
|
+
ciWatchEnabled: input.ciWatchEnabled ?? true,
|
|
294
|
+
enableEvidence: input.enableEvidence ?? false,
|
|
295
|
+
commitEvidence: input.commitEvidence ?? false,
|
|
286
296
|
...(input.fast ? { fast: true } : {}),
|
|
287
297
|
...(input.agentType ? { agentType: input.agentType } : {}),
|
|
288
298
|
...(input.model ? { model: input.model } : {}),
|
|
@@ -13,6 +13,16 @@ export interface CreateFeatureInput {
|
|
|
13
13
|
description?: string;
|
|
14
14
|
/** When true, skip SDLC phases and implement directly from the user prompt. */
|
|
15
15
|
fast?: boolean;
|
|
16
|
+
/** Fork repo and create PR to upstream at merge time (default: false). */
|
|
17
|
+
forkAndPr?: boolean;
|
|
18
|
+
/** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */
|
|
19
|
+
commitSpecs?: boolean;
|
|
20
|
+
/** Enable CI watch/fix loop after push (default: true). */
|
|
21
|
+
ciWatchEnabled?: boolean;
|
|
22
|
+
/** Enable evidence collection after implementation (default: false). */
|
|
23
|
+
enableEvidence?: boolean;
|
|
24
|
+
/** Commit evidence to PR (default: false, requires enableEvidence). */
|
|
25
|
+
commitEvidence?: boolean;
|
|
16
26
|
/** When true, create feature in Pending state — fully initialized but agent not spawned. */
|
|
17
27
|
pending?: boolean;
|
|
18
28
|
/** Optional agent type override (overrides settings.agent.type). */
|
|
@@ -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;AAEjG,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,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,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;CAC5B;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"}
|
|
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;AAEjG,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,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,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;CAC5B;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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poll Upstream PR Use Case
|
|
3
|
+
*
|
|
4
|
+
* Checks the status of an upstream PR for features in AwaitingUpstream state.
|
|
5
|
+
* When the upstream PR is merged, transitions the feature to Maintain.
|
|
6
|
+
* When closed without merge, updates the PR status but keeps AwaitingUpstream.
|
|
7
|
+
*/
|
|
8
|
+
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
|
|
9
|
+
import type { IGitForkService } from '../../ports/output/services/git-fork-service.interface.js';
|
|
10
|
+
export interface PollUpstreamPrInput {
|
|
11
|
+
featureId: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PollUpstreamPrOutput {
|
|
14
|
+
status: 'open' | 'merged' | 'closed';
|
|
15
|
+
transitioned: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare class PollUpstreamPrUseCase {
|
|
18
|
+
private readonly featureRepo;
|
|
19
|
+
private readonly forkService;
|
|
20
|
+
constructor(featureRepo: IFeatureRepository, forkService: IGitForkService);
|
|
21
|
+
execute(input: PollUpstreamPrInput): Promise<PollUpstreamPrOutput>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=poll-upstream-pr.use-case.d.ts.map
|
package/dist/packages/core/src/application/use-cases/features/poll-upstream-pr.use-case.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll-upstream-pr.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/poll-upstream-pr.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAEjG,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,WAAW,EAAE,kBAAkB,EAE/B,WAAW,EAAE,eAAe;IAGzC,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAuDzE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poll Upstream PR Use Case
|
|
3
|
+
*
|
|
4
|
+
* Checks the status of an upstream PR for features in AwaitingUpstream state.
|
|
5
|
+
* When the upstream PR is merged, transitions the feature to Maintain.
|
|
6
|
+
* When closed without merge, updates the PR status but keeps AwaitingUpstream.
|
|
7
|
+
*/
|
|
8
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
9
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
|
+
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;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
16
|
+
};
|
|
17
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
18
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
19
|
+
};
|
|
20
|
+
import { injectable, inject } from 'tsyringe';
|
|
21
|
+
import { SdlcLifecycle, PrStatus } from '../../../domain/generated/output.js';
|
|
22
|
+
let PollUpstreamPrUseCase = class PollUpstreamPrUseCase {
|
|
23
|
+
featureRepo;
|
|
24
|
+
forkService;
|
|
25
|
+
constructor(featureRepo, forkService) {
|
|
26
|
+
this.featureRepo = featureRepo;
|
|
27
|
+
this.forkService = forkService;
|
|
28
|
+
}
|
|
29
|
+
async execute(input) {
|
|
30
|
+
const feature = await this.featureRepo.findById(input.featureId);
|
|
31
|
+
if (!feature) {
|
|
32
|
+
return { status: 'open', transitioned: false };
|
|
33
|
+
}
|
|
34
|
+
if (feature.lifecycle !== SdlcLifecycle.AwaitingUpstream) {
|
|
35
|
+
return { status: 'open', transitioned: false };
|
|
36
|
+
}
|
|
37
|
+
const pr = feature.pr;
|
|
38
|
+
if (!pr?.upstreamPrUrl || !pr?.upstreamPrNumber) {
|
|
39
|
+
return { status: 'open', transitioned: false };
|
|
40
|
+
}
|
|
41
|
+
// Extract upstream repo from the PR URL
|
|
42
|
+
// Format: https://github.com/owner/repo/pull/123
|
|
43
|
+
const urlMatch = pr.upstreamPrUrl.match(/github\.com\/([^/]+\/[^/]+)\/pull/);
|
|
44
|
+
if (!urlMatch) {
|
|
45
|
+
return { status: 'open', transitioned: false };
|
|
46
|
+
}
|
|
47
|
+
const upstreamRepo = urlMatch[1];
|
|
48
|
+
const prStatus = await this.forkService.getUpstreamPrStatus(upstreamRepo, pr.upstreamPrNumber);
|
|
49
|
+
if (prStatus === PrStatus.Merged) {
|
|
50
|
+
// Transition to Maintain
|
|
51
|
+
await this.featureRepo.update({
|
|
52
|
+
...feature,
|
|
53
|
+
lifecycle: SdlcLifecycle.Maintain,
|
|
54
|
+
pr: {
|
|
55
|
+
...pr,
|
|
56
|
+
upstreamPrStatus: PrStatus.Merged,
|
|
57
|
+
},
|
|
58
|
+
updatedAt: new Date(),
|
|
59
|
+
});
|
|
60
|
+
return { status: 'merged', transitioned: true };
|
|
61
|
+
}
|
|
62
|
+
if (prStatus === PrStatus.Closed) {
|
|
63
|
+
// Keep AwaitingUpstream but update status
|
|
64
|
+
await this.featureRepo.update({
|
|
65
|
+
...feature,
|
|
66
|
+
pr: {
|
|
67
|
+
...pr,
|
|
68
|
+
upstreamPrStatus: PrStatus.Closed,
|
|
69
|
+
},
|
|
70
|
+
updatedAt: new Date(),
|
|
71
|
+
});
|
|
72
|
+
return { status: 'closed', transitioned: false };
|
|
73
|
+
}
|
|
74
|
+
// Still open — no-op
|
|
75
|
+
return { status: 'open', transitioned: false };
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
PollUpstreamPrUseCase = __decorate([
|
|
79
|
+
injectable(),
|
|
80
|
+
__param(0, inject('IFeatureRepository')),
|
|
81
|
+
__param(1, inject('IGitForkService')),
|
|
82
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
83
|
+
], PollUpstreamPrUseCase);
|
|
84
|
+
export { PollUpstreamPrUseCase };
|
package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/resume-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,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;AAQlG,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,qBACa,oBAAoB;IAG7B,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,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"resume-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/resume-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,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;AAQlG,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,qBACa,oBAAoB;IAG7B,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,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,mBAAmB,CAAC;CAyGhC"}
|
|
@@ -109,6 +109,8 @@ let ResumeFeatureUseCase = class ResumeFeatureUseCase {
|
|
|
109
109
|
resumeFromInterrupt: lastRun.status === AgentRunStatus.waitingApproval,
|
|
110
110
|
push: feature.push,
|
|
111
111
|
openPr: feature.openPr,
|
|
112
|
+
forkAndPr: feature.forkAndPr,
|
|
113
|
+
commitSpecs: feature.commitSpecs,
|
|
112
114
|
agentType: lastRun.agentType,
|
|
113
115
|
...(feature.fast ? { fast: true } : {}),
|
|
114
116
|
...(lastRun.modelId ? { model: lastRun.modelId } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,qBAAqB,CAAC;AA6C7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"settings-defaults.factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/domain/factories/settings-defaults.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,qBAAqB,CAAC;AA6C7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAqFhD"}
|