@shepai/cli 1.140.0 → 1.141.0-pr452.1d8e904
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 +10 -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 +2 -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/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/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 +2 -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 +4 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +4 -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/generated/output.d.ts +21 -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 +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +5 -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 +12 -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/services/agents/feature-agent/fast-feature-agent-graph.d.ts +10 -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 +34 -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 -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 +6 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -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 +11 -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/state.d.ts +2 -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 +8 -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/ui.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ui.command.js +2 -1
- 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/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 +23 -6
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +11 -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 +34 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -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.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +1 -1
- 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/dev-server.js +2 -1
- 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 +28 -28
- 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 +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.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 +26 -26
- 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 +28 -28
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
- package/web/.next/server/app/(dashboard)/page.js.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 +26 -26
- 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/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_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_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_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]__2bdf88a0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2bdf88a0._.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]__42faf5ae._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42faf5ae._.js.map +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]__685ee565._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__685ee565._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__74756aae._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__74756aae._.js.map +1 -1
- 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]__a5f9c6e5._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.js.map +1 -1
- 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/_02ec1aea._.js +1 -1
- package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0c5f56e3._.js +2 -2
- package/web/.next/server/chunks/ssr/_0c5f56e3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1b719e7f._.js +1 -1
- package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_37e8548b._.js +1 -1
- package/web/.next/server/chunks/ssr/_37e8548b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_55d763e2._.js +1 -1
- package/web/.next/server/chunks/ssr/_55d763e2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_64bdfc6f._.js +2 -2
- package/web/.next/server/chunks/ssr/_64bdfc6f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6a83b821._.js +3 -0
- package/web/.next/server/chunks/ssr/{_bbb3a0fc._.js.map → _6a83b821._.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 +1 -1
- package/web/.next/server/chunks/ssr/_b71645b4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0a69ebd5._.js → _c5657bb7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0a69ebd5._.js.map → _c5657bb7._.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/_f39a1adb._.js +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.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__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_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/chunks/ssr/{src_presentation_web_340a9d64._.js → src_presentation_web_e05921f6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_340a9d64._.js.map → src_presentation_web_e05921f6._.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 +44 -44
- package/web/.next/static/chunks/{8ae10749f2e8db60.js → 026580606b8b7231.js} +1 -1
- package/web/.next/static/chunks/09131550e55102d1.css +1 -0
- package/web/.next/static/chunks/{2349b8618faac5df.js → 3a2cf0e09f1a0159.js} +1 -1
- package/web/.next/static/chunks/{3c5c3a51c24cf5c8.js → 3a3726fb6c94f651.js} +1 -1
- package/web/.next/static/chunks/{e65c4ae61b6f8045.js → 3a61077325daf0c3.js} +1 -1
- package/web/.next/static/chunks/{41e43675a8864a3f.js → 65268efa9fd1584d.js} +1 -1
- package/web/.next/static/chunks/{ec05de0bd9d358e4.js → 74675bf4df9bc445.js} +1 -1
- package/web/.next/static/chunks/{9eff18338e76d253.js → 8a65fc8ff0c02d79.js} +2 -2
- package/web/.next/static/chunks/a63b3e9232d9429c.js +1 -0
- package/web/.next/static/chunks/c56bedce824cd983.js +1 -0
- package/web/.next/static/chunks/{7b850f14e5ef6865.js → e005665fcc9cf8d5.js} +1 -1
- package/web/.next/static/chunks/{5bea21d249dc35f8.js → e013cc94f105db24.js} +2 -2
- package/web/.next/static/chunks/{523ad15a08ac9fe7.js → f08792db31cb4046.js} +1 -1
- package/web/.next/static/chunks/fa556c575c788679.js +1 -0
- 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/_a9f57758._.js +0 -3
- package/web/.next/server/chunks/ssr/_a9f57758._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_bbb3a0fc._.js +0 -3
- package/web/.next/static/chunks/1df0c0594135d736.css +0 -1
- package/web/.next/static/chunks/6a370f2709c81d83.js +0 -1
- package/web/.next/static/chunks/7ac8f98c0d991dda.js +0 -1
- package/web/.next/static/chunks/b705d6e7529f010b.js +0 -1
- /package/web/.next/static/{VLtWZeBgMjP_Lk91OEpmY → C5RqIopAMg1O7JgTQ3P_o}/_buildManifest.js +0 -0
- /package/web/.next/static/{VLtWZeBgMjP_Lk91OEpmY → C5RqIopAMg1O7JgTQ3P_o}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{VLtWZeBgMjP_Lk91OEpmY → C5RqIopAMg1O7JgTQ3P_o}/_ssgManifest.js +0 -0
|
@@ -40,6 +40,8 @@ export function toDatabase(feature) {
|
|
|
40
40
|
// Flatten workflow flags to individual columns
|
|
41
41
|
push: feature.push ? 1 : 0,
|
|
42
42
|
open_pr: feature.openPr ? 1 : 0,
|
|
43
|
+
fork_and_pr: feature.forkAndPr ? 1 : 0,
|
|
44
|
+
commit_specs: feature.commitSpecs ? 1 : 0,
|
|
43
45
|
auto_merge: feature.approvalGates?.allowMerge ? 1 : 0,
|
|
44
46
|
allow_prd: feature.approvalGates?.allowPrd ? 1 : 0,
|
|
45
47
|
allow_plan: feature.approvalGates?.allowPlan ? 1 : 0,
|
|
@@ -56,6 +58,9 @@ export function toDatabase(feature) {
|
|
|
56
58
|
ci_fix_attempts: feature.pr?.ciFixAttempts ?? null,
|
|
57
59
|
ci_fix_history: feature.pr?.ciFixHistory ? JSON.stringify(feature.pr.ciFixHistory) : null,
|
|
58
60
|
pr_mergeable: feature.pr?.mergeable !== undefined ? (feature.pr.mergeable ? 1 : 0) : null,
|
|
61
|
+
upstream_pr_url: feature.pr?.upstreamPrUrl ?? null,
|
|
62
|
+
upstream_pr_number: feature.pr?.upstreamPrNumber ?? null,
|
|
63
|
+
upstream_pr_status: feature.pr?.upstreamPrStatus ?? null,
|
|
59
64
|
// Feature dependency
|
|
60
65
|
parent_id: feature.parentId ?? null,
|
|
61
66
|
// Archive state
|
|
@@ -97,6 +102,8 @@ export function fromDatabase(row) {
|
|
|
97
102
|
// Assemble workflow flags from flat columns
|
|
98
103
|
push: row.push === 1,
|
|
99
104
|
openPr: row.open_pr === 1,
|
|
105
|
+
forkAndPr: row.fork_and_pr === 1,
|
|
106
|
+
commitSpecs: row.commit_specs === 1,
|
|
100
107
|
approvalGates: {
|
|
101
108
|
allowPrd: row.allow_prd === 1,
|
|
102
109
|
allowPlan: row.allow_plan === 1,
|
|
@@ -116,6 +123,11 @@ export function fromDatabase(row) {
|
|
|
116
123
|
...(row.ci_fix_attempts != null && { ciFixAttempts: row.ci_fix_attempts }),
|
|
117
124
|
...(row.ci_fix_history != null && { ciFixHistory: JSON.parse(row.ci_fix_history) }),
|
|
118
125
|
...(row.pr_mergeable != null && { mergeable: row.pr_mergeable === 1 }),
|
|
126
|
+
...(row.upstream_pr_url != null && { upstreamPrUrl: row.upstream_pr_url }),
|
|
127
|
+
...(row.upstream_pr_number != null && { upstreamPrNumber: row.upstream_pr_number }),
|
|
128
|
+
...(row.upstream_pr_status != null && {
|
|
129
|
+
upstreamPrStatus: row.upstream_pr_status,
|
|
130
|
+
}),
|
|
119
131
|
},
|
|
120
132
|
}),
|
|
121
133
|
// Feature dependency
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 045: Add fork-and-PR columns to features table.
|
|
3
|
+
*
|
|
4
|
+
* Adds fork_and_pr (boolean, default 0) and commit_specs (boolean, default 1)
|
|
5
|
+
* for per-feature fork workflow configuration. Also adds upstream PR tracking
|
|
6
|
+
* columns (upstream_pr_url, upstream_pr_number, upstream_pr_status) aligned
|
|
7
|
+
* with the PullRequest value object.
|
|
8
|
+
*/
|
|
9
|
+
import type { MigrationParams } from 'umzug';
|
|
10
|
+
import type Database from 'better-sqlite3';
|
|
11
|
+
export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
12
|
+
export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=045-add-fork-and-pr-columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"045-add-fork-and-pr-columns.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/045-add-fork-and-pr-columns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 045: Add fork-and-PR columns to features table.
|
|
3
|
+
*
|
|
4
|
+
* Adds fork_and_pr (boolean, default 0) and commit_specs (boolean, default 1)
|
|
5
|
+
* for per-feature fork workflow configuration. Also adds upstream PR tracking
|
|
6
|
+
* columns (upstream_pr_url, upstream_pr_number, upstream_pr_status) aligned
|
|
7
|
+
* with the PullRequest value object.
|
|
8
|
+
*/
|
|
9
|
+
export async function up({ context: db }) {
|
|
10
|
+
const columns = db.pragma('table_info(features)');
|
|
11
|
+
const names = new Set(columns.map((c) => c.name));
|
|
12
|
+
if (!names.has('fork_and_pr')) {
|
|
13
|
+
db.exec('ALTER TABLE features ADD COLUMN fork_and_pr INTEGER DEFAULT 0');
|
|
14
|
+
}
|
|
15
|
+
if (!names.has('commit_specs')) {
|
|
16
|
+
db.exec('ALTER TABLE features ADD COLUMN commit_specs INTEGER DEFAULT 1');
|
|
17
|
+
}
|
|
18
|
+
if (!names.has('upstream_pr_url')) {
|
|
19
|
+
db.exec('ALTER TABLE features ADD COLUMN upstream_pr_url TEXT');
|
|
20
|
+
}
|
|
21
|
+
if (!names.has('upstream_pr_number')) {
|
|
22
|
+
db.exec('ALTER TABLE features ADD COLUMN upstream_pr_number INTEGER');
|
|
23
|
+
}
|
|
24
|
+
if (!names.has('upstream_pr_status')) {
|
|
25
|
+
db.exec('ALTER TABLE features ADD COLUMN upstream_pr_status TEXT');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export async function down({ context: db }) {
|
|
29
|
+
void db;
|
|
30
|
+
}
|
|
@@ -58,6 +58,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
58
58
|
ciStatus: string | null;
|
|
59
59
|
push: boolean;
|
|
60
60
|
openPr: boolean;
|
|
61
|
+
forkAndPr: boolean;
|
|
62
|
+
commitSpecs: boolean;
|
|
61
63
|
evidence: import("../../../../domain/index.js").Evidence[];
|
|
62
64
|
evidenceRetries: number;
|
|
63
65
|
resumeReason: string | undefined;
|
|
@@ -86,6 +88,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
86
88
|
ciStatus?: string | null | undefined;
|
|
87
89
|
push?: boolean | undefined;
|
|
88
90
|
openPr?: boolean | undefined;
|
|
91
|
+
forkAndPr?: boolean | undefined;
|
|
92
|
+
commitSpecs?: boolean | undefined;
|
|
89
93
|
evidence?: import("../../../../domain/index.js").Evidence[] | undefined;
|
|
90
94
|
evidenceRetries?: number | undefined;
|
|
91
95
|
resumeReason?: string | undefined;
|
|
@@ -134,6 +138,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
134
138
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
135
139
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
136
140
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
141
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
142
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
137
143
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
138
144
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
139
145
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -182,6 +188,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
182
188
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
183
189
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
184
190
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
191
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
192
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
185
193
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
186
194
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
187
195
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -231,6 +239,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
231
239
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
232
240
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
233
241
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
242
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
243
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
234
244
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
235
245
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
236
246
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast-feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAGpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,yBAAyB,GAAG,cAAc,EAC1D,YAAY,CAAC,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"fast-feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAGpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,yBAAyB,GAAG,cAAc,EAC1D,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6BnC"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
45
45
|
ciStatus: string | null;
|
|
46
46
|
push: boolean;
|
|
47
47
|
openPr: boolean;
|
|
48
|
+
forkAndPr: boolean;
|
|
49
|
+
commitSpecs: boolean;
|
|
48
50
|
evidence: import("../../../../domain/index.js").Evidence[];
|
|
49
51
|
evidenceRetries: number;
|
|
50
52
|
resumeReason: string | undefined;
|
|
@@ -73,6 +75,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
73
75
|
ciStatus?: string | null | undefined;
|
|
74
76
|
push?: boolean | undefined;
|
|
75
77
|
openPr?: boolean | undefined;
|
|
78
|
+
forkAndPr?: boolean | undefined;
|
|
79
|
+
commitSpecs?: boolean | undefined;
|
|
76
80
|
evidence?: import("../../../../domain/index.js").Evidence[] | undefined;
|
|
77
81
|
evidenceRetries?: number | undefined;
|
|
78
82
|
resumeReason?: string | undefined;
|
|
@@ -121,6 +125,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
121
125
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
122
126
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
123
127
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
128
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
129
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
124
130
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
125
131
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
126
132
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -169,6 +175,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
169
175
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
170
176
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
171
177
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
178
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
179
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
172
180
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
173
181
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
174
182
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -218,6 +226,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
218
226
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
219
227
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
220
228
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
229
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
230
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
221
231
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
222
232
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
223
233
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -267,6 +277,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
267
277
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
268
278
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
269
279
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
280
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
281
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
270
282
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
271
283
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
272
284
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -316,6 +328,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
316
328
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
317
329
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
318
330
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
331
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
332
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
319
333
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
320
334
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
321
335
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -365,6 +379,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
365
379
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
366
380
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
367
381
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
382
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
383
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
368
384
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
369
385
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
370
386
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -414,6 +430,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
414
430
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
415
431
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
416
432
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
433
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
434
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
417
435
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
418
436
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
419
437
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -463,6 +481,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
463
481
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
464
482
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
465
483
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
484
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
485
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
466
486
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
467
487
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
468
488
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -512,6 +532,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
512
532
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
513
533
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
514
534
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
535
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
536
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
515
537
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
516
538
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
517
539
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -561,6 +583,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
561
583
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
562
584
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
563
585
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
586
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
587
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
564
588
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
565
589
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
566
590
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -610,6 +634,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
610
634
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
611
635
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
612
636
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
637
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
638
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
613
639
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
614
640
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
615
641
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -659,6 +685,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
659
685
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
660
686
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
661
687
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
688
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
689
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
662
690
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
663
691
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
664
692
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -708,6 +736,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
708
736
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
709
737
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
710
738
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
739
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
740
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
711
741
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
712
742
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
713
743
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -757,6 +787,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
757
787
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
758
788
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
759
789
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
790
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
791
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
760
792
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
761
793
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
762
794
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -806,6 +838,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
806
838
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
807
839
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
808
840
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
841
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
842
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
809
843
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").Evidence[], import("../../../../domain/index.js").Evidence[]>;
|
|
810
844
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
811
845
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAgFnC"}
|
|
@@ -18,6 +18,8 @@ export declare class FeatureAgentProcessService implements IFeatureAgentProcessS
|
|
|
18
18
|
resumeFromInterrupt?: boolean;
|
|
19
19
|
push?: boolean;
|
|
20
20
|
openPr?: boolean;
|
|
21
|
+
forkAndPr?: boolean;
|
|
22
|
+
commitSpecs?: boolean;
|
|
21
23
|
resumePayload?: string;
|
|
22
24
|
agentType?: AgentType;
|
|
23
25
|
fast?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAalG,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,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;
|
|
1
|
+
{"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAalG,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,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,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;IA6ET,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
|
|
@@ -60,6 +60,12 @@ export class FeatureAgentProcessService {
|
|
|
60
60
|
if (options?.openPr) {
|
|
61
61
|
args.push('--open-pr');
|
|
62
62
|
}
|
|
63
|
+
if (options?.forkAndPr) {
|
|
64
|
+
args.push('--fork-and-pr');
|
|
65
|
+
}
|
|
66
|
+
if (options?.commitSpecs === false) {
|
|
67
|
+
args.push('--no-commit-specs');
|
|
68
|
+
}
|
|
63
69
|
if (options?.resumePayload) {
|
|
64
70
|
args.push('--resume-payload', options.resumePayload);
|
|
65
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAgB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA4E1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiS/D"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js
CHANGED
|
@@ -54,6 +54,8 @@ export function parseWorkerArgs(args) {
|
|
|
54
54
|
const resumeFromInterrupt = args.includes('--resume-from-interrupt');
|
|
55
55
|
const push = args.includes('--push');
|
|
56
56
|
const openPr = args.includes('--open-pr');
|
|
57
|
+
const forkAndPr = args.includes('--fork-and-pr');
|
|
58
|
+
const commitSpecs = !args.includes('--no-commit-specs');
|
|
57
59
|
const fast = args.includes('--fast');
|
|
58
60
|
const threadIdx = args.indexOf('--thread-id');
|
|
59
61
|
const threadId = threadIdx !== -1 && threadIdx + 1 < args.length ? args[threadIdx + 1] : undefined;
|
|
@@ -83,6 +85,8 @@ export function parseWorkerArgs(args) {
|
|
|
83
85
|
resumeFromInterrupt,
|
|
84
86
|
push,
|
|
85
87
|
openPr,
|
|
88
|
+
forkAndPr,
|
|
89
|
+
commitSpecs,
|
|
86
90
|
resumePayload,
|
|
87
91
|
agentType,
|
|
88
92
|
fast,
|
|
@@ -143,6 +147,8 @@ export async function runWorker(args) {
|
|
|
143
147
|
...(args.resumeFromInterrupt ? ['--resume-from-interrupt'] : []),
|
|
144
148
|
...(args.push ? ['--push'] : []),
|
|
145
149
|
...(args.openPr ? ['--open-pr'] : []),
|
|
150
|
+
...(args.forkAndPr ? ['--fork-and-pr'] : []),
|
|
151
|
+
...(args.commitSpecs === false ? ['--no-commit-specs'] : []),
|
|
146
152
|
...(args.resumePayload ? ['--resume-payload', args.resumePayload] : []),
|
|
147
153
|
...(args.agentType ? ['--agent-type', args.agentType] : []),
|
|
148
154
|
...(args.fast ? ['--fast'] : []),
|
|
@@ -185,6 +191,7 @@ export async function runWorker(args) {
|
|
|
185
191
|
localMergeSquash: (cwd, featureBranch, baseBranch, commitMessage, hasRemote) => gitPrService.localMergeSquash(cwd, featureBranch, baseBranch, commitMessage, hasRemote),
|
|
186
192
|
featureRepository,
|
|
187
193
|
gitPrService,
|
|
194
|
+
gitForkService: container.resolve('IGitForkService'),
|
|
188
195
|
cleanupFeatureWorktreeUseCase,
|
|
189
196
|
},
|
|
190
197
|
};
|
|
@@ -274,6 +281,8 @@ export async function runWorker(args) {
|
|
|
274
281
|
...(args.resumeReason ? { resumeReason: args.resumeReason } : {}),
|
|
275
282
|
push: args.push ?? false,
|
|
276
283
|
openPr: args.openPr ?? false,
|
|
284
|
+
forkAndPr: args.forkAndPr ?? false,
|
|
285
|
+
commitSpecs: args.commitSpecs ?? true,
|
|
277
286
|
}, graphConfig);
|
|
278
287
|
}
|
|
279
288
|
else {
|
|
@@ -287,6 +296,8 @@ export async function runWorker(args) {
|
|
|
287
296
|
...(args.model ? { model: args.model } : {}),
|
|
288
297
|
push: args.push ?? false,
|
|
289
298
|
openPr: args.openPr ?? false,
|
|
299
|
+
forkAndPr: args.forkAndPr ?? false,
|
|
300
|
+
commitSpecs: args.commitSpecs ?? true,
|
|
290
301
|
}, graphConfig);
|
|
291
302
|
}
|
|
292
303
|
log(`Graph invocation completed. Error: ${result.error ?? 'none'}`);
|
|
@@ -17,6 +17,7 @@ import type { FeatureAgentState } from '../../state.js';
|
|
|
17
17
|
import type { IFeatureRepository } from '../../../../../../application/ports/output/repositories/feature-repository.interface.js';
|
|
18
18
|
import type { DiffSummary, IGitPrService } from '../../../../../../application/ports/output/services/git-pr-service.interface.js';
|
|
19
19
|
import type { CleanupFeatureWorktreeUseCase } from '../../../../../../application/use-cases/features/cleanup-feature-worktree.use-case.js';
|
|
20
|
+
import type { IGitForkService } from '../../../../../../application/ports/output/services/git-fork-service.interface.js';
|
|
20
21
|
export interface MergeNodeDeps {
|
|
21
22
|
executor: IAgentExecutor;
|
|
22
23
|
getDiffSummary: (cwd: string, baseBranch: string) => Promise<DiffSummary>;
|
|
@@ -37,6 +38,7 @@ export interface MergeNodeDeps {
|
|
|
37
38
|
*/
|
|
38
39
|
revParse: (cwd: string, ref: string) => Promise<string>;
|
|
39
40
|
gitPrService: IGitPrService;
|
|
41
|
+
gitForkService?: IGitForkService;
|
|
40
42
|
cleanupFeatureWorktreeUseCase: Pick<CleanupFeatureWorktreeUseCase, 'execute'>;
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAoBzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAoBzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AAC3H,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mEAAmE,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;OAEG;IACH,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgY7E"}
|
|
@@ -220,6 +220,56 @@ export function createMergeNode(deps) {
|
|
|
220
220
|
ciStatus = feature.pr.ciStatus ?? ciStatus;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
+
// --- Fork-and-PR flow ---
|
|
224
|
+
// When forkAndPr=true, fork the repo, push to the fork, create upstream PR,
|
|
225
|
+
// then transition to AwaitingUpstream instead of merging.
|
|
226
|
+
if (state.forkAndPr && deps.gitForkService) {
|
|
227
|
+
log.info('Fork-and-PR flow: forking repo and creating upstream PR');
|
|
228
|
+
await deps.gitForkService.forkRepository(cwd);
|
|
229
|
+
log.info('Repository forked, remotes remapped');
|
|
230
|
+
await deps.gitForkService.pushToFork(cwd, branch);
|
|
231
|
+
log.info(`Branch ${branch} pushed to fork`);
|
|
232
|
+
const upstreamPr = await deps.gitForkService.createUpstreamPr(cwd, feature?.name ?? branch, feature?.description ?? '', branch, baseBranch);
|
|
233
|
+
log.info(`Upstream PR created: ${upstreamPr.url}`);
|
|
234
|
+
messages.push(`[merge] Upstream PR created: ${upstreamPr.url}`);
|
|
235
|
+
if (feature) {
|
|
236
|
+
await deps.featureRepository.update({
|
|
237
|
+
...feature,
|
|
238
|
+
lifecycle: SdlcLifecycle.AwaitingUpstream,
|
|
239
|
+
pr: {
|
|
240
|
+
...(feature.pr ?? { url: '', number: 0, status: PrStatus.Open }),
|
|
241
|
+
...(commitHash ? { commitHash } : {}),
|
|
242
|
+
upstreamPrUrl: upstreamPr.url,
|
|
243
|
+
upstreamPrNumber: upstreamPr.number,
|
|
244
|
+
upstreamPrStatus: PrStatus.Open,
|
|
245
|
+
},
|
|
246
|
+
updatedAt: new Date(),
|
|
247
|
+
});
|
|
248
|
+
messages.push(`[merge] Feature lifecycle → AwaitingUpstream`);
|
|
249
|
+
}
|
|
250
|
+
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
251
|
+
await recordPhaseEnd(mergeTimingId, Date.now() - startTime, {
|
|
252
|
+
inputTokens: totalInputTokens || undefined,
|
|
253
|
+
outputTokens: totalOutputTokens || undefined,
|
|
254
|
+
exitCode: 'success',
|
|
255
|
+
});
|
|
256
|
+
messages.push(`[merge] Complete (${elapsed}s)`);
|
|
257
|
+
log.info(`Fork-and-PR merge flow complete (${elapsed}s)`);
|
|
258
|
+
return {
|
|
259
|
+
currentNode: 'merge',
|
|
260
|
+
messages,
|
|
261
|
+
commitHash,
|
|
262
|
+
prUrl,
|
|
263
|
+
prNumber,
|
|
264
|
+
ciStatus,
|
|
265
|
+
ciFixAttempts,
|
|
266
|
+
ciFixHistory,
|
|
267
|
+
ciFixStatus,
|
|
268
|
+
_approvalAction: null,
|
|
269
|
+
_rejectionFeedback: null,
|
|
270
|
+
_needsReexecution: false,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
223
273
|
// --- Merge ---
|
|
224
274
|
// Merge when: allowMerge is true (auto-merge), OR user explicitly
|
|
225
275
|
// approved at the merge gate (isResumeAfterInterrupt means they
|
|
@@ -48,6 +48,8 @@ export declare const FeatureAgentAnnotation: import("@langchain/langgraph").Anno
|
|
|
48
48
|
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
49
49
|
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
50
50
|
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
51
|
+
forkAndPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
52
|
+
commitSpecs: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
51
53
|
evidence: import("@langchain/langgraph").BinaryOperatorAggregate<Evidence[], Evidence[]>;
|
|
52
54
|
evidenceRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
53
55
|
resumeReason: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GjC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,sBAAsB,CAAC,KAAK,CAAC"}
|
|
@@ -79,6 +79,14 @@ export const FeatureAgentAnnotation = Annotation.Root({
|
|
|
79
79
|
reducer: (_prev, next) => next,
|
|
80
80
|
default: () => false,
|
|
81
81
|
}),
|
|
82
|
+
forkAndPr: Annotation({
|
|
83
|
+
reducer: (_prev, next) => next,
|
|
84
|
+
default: () => false,
|
|
85
|
+
}),
|
|
86
|
+
commitSpecs: Annotation({
|
|
87
|
+
reducer: (_prev, next) => next,
|
|
88
|
+
default: () => true,
|
|
89
|
+
}),
|
|
82
90
|
// --- Evidence state ---
|
|
83
91
|
evidence: Annotation({
|
|
84
92
|
reducer: (prev, next) => [...prev, ...next],
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Fork Service Implementation
|
|
3
|
+
*
|
|
4
|
+
* Manages GitHub fork operations: forking repos, pushing to forks,
|
|
5
|
+
* creating upstream PRs, and polling upstream PR status.
|
|
6
|
+
* Uses `gh` CLI for all GitHub API interactions.
|
|
7
|
+
*/
|
|
8
|
+
import type { IGitForkService } from '../../../application/ports/output/services/git-fork-service.interface.js';
|
|
9
|
+
import type { UpstreamPrResult } from '../../../application/ports/output/services/git-fork-service.interface.js';
|
|
10
|
+
import { PrStatus } from '../../../domain/generated/output.js';
|
|
11
|
+
import type { ExecFunction } from './worktree.service.js';
|
|
12
|
+
export declare class GitForkService implements IGitForkService {
|
|
13
|
+
private readonly execFile;
|
|
14
|
+
constructor(execFile: ExecFunction);
|
|
15
|
+
forkRepository(cwd: string): Promise<void>;
|
|
16
|
+
pushToFork(cwd: string, branch: string): Promise<void>;
|
|
17
|
+
createUpstreamPr(cwd: string, title: string, body: string, head: string, base: string): Promise<UpstreamPrResult>;
|
|
18
|
+
getUpstreamPrStatus(upstreamRepo: string, prNumber: number): Promise<PrStatus>;
|
|
19
|
+
/**
|
|
20
|
+
* Extract owner/repo from a git remote URL.
|
|
21
|
+
* Handles both HTTPS and SSH formats.
|
|
22
|
+
*/
|
|
23
|
+
private extractRepoFromUrl;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=git-fork.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-fork.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-fork.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0EAA0E,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0EAA0E,CAAC;AAKjH,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBACa,cAAe,YAAW,eAAe;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C1C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC;IAiDtB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBpF;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAU3B"}
|