@shepai/cli 1.176.0-pr539.02342cf → 1.177.0-pr538.aa9ace4
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/PhaseTiming.yaml +0 -30
- package/apis/json-schema/WorkflowConfig.yaml +0 -3
- package/dist/eslint.config.mjs +2 -0
- package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts +1 -8
- package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +15 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/i-browser-opener.d.ts +28 -0
- package/dist/packages/core/src/application/ports/output/services/i-browser-opener.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/i-browser-opener.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/i-desktop-notifier.d.ts +29 -0
- package/dist/packages/core/src/application/ports/output/services/i-desktop-notifier.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/i-desktop-notifier.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -7
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts +46 -3
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +153 -5
- package/dist/packages/core/src/application/use-cases/features/reparent-feature.use-case.d.ts +31 -0
- package/dist/packages/core/src/application/use-cases/features/reparent-feature.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/features/reparent-feature.use-case.js +127 -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 +0 -9
- package/dist/packages/core/src/domain/generated/output.d.ts +0 -65
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +10 -27
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -6
- 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 +0 -41
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts +1 -2
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js +0 -72
- 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 -19
- package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +1 -6
- 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 +1 -18
- 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-graph.js +20 -6
- 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 +27 -10
- 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 +1 -17
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +0 -1
- 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 +0 -5
- package/dist/packages/core/src/infrastructure/services/browser-opener.service.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/services/browser-opener.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +53 -0
- package/dist/packages/core/src/infrastructure/services/notifications/desktop-notifier.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/services/notifications/desktop-notifier.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/daemon/start-daemon.d.ts +1 -1
- package/dist/src/presentation/cli/commands/daemon/start-daemon.js +2 -3
- package/dist/src/presentation/cli/commands/ui.command.js +1 -2
- package/dist/src/presentation/web/app/actions/reparent-feature.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/reparent-feature.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/reparent-feature.js +16 -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 +2 -2
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +2 -2
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +1 -0
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +47 -4
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.d.ts +1 -0
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.js +18 -6
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.stories.d.ts +3 -0
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/dependency-edge.stories.js +27 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +14 -3
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +7 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +74 -0
- package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/derive-graph.js +5 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -2
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +73 -58
- 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/chat/page/server-reference-manifest.json +69 -54
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +75 -60
- 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 +91 -76
- 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 +91 -76
- 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]/[tab]/page/server-reference-manifest.json +71 -56
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
- 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)/chat/page/server-reference-manifest.json +69 -54
- package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +75 -60
- 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 +91 -76
- 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 +91 -76
- 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 +69 -54
- 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]/[tab]/page/server-reference-manifest.json +71 -56
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
- 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 +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__332c8d91._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__332c8d91._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4869a7bb.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4869a7bb.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_d92cb436.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_d92cb436.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_16dd74be.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_16dd74be.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__a932cd3a._.js → [root-of-the-server]__000567d1._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__51ec77a8._.js.map → [root-of-the-server]__000567d1._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +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]__aa72e794._.js → [root-of-the-server]__466d5d10._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__a932cd3a._.js.map → [root-of-the-server]__466d5d10._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__51ec77a8._.js → [root-of-the-server]__60b640ad._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__aa72e794._.js.map → [root-of-the-server]__60b640ad._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__66047a1b._.js → [root-of-the-server]__e68e2b52._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__66047a1b._.js.map → [root-of-the-server]__e68e2b52._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_66291662._.js → _09bef7ab._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_66291662._.js.map → _09bef7ab._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2b6293f3._.js +4 -0
- package/web/.next/server/chunks/ssr/{_39053f87._.js.map → _2b6293f3._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_34b0a7ad._.js → _ebb12cc5._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_34b0a7ad._.js.map → _ebb12cc5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_17d39233._.js → src_presentation_web_06387c54._.js} +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_06387c54._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_807cba76._.js → src_presentation_web_1ccf607e._.js} +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_1ccf607e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_54b02639._.js → src_presentation_web_2c992e9f._.js} +3 -3
- package/web/.next/server/chunks/ssr/{src_presentation_web_7b7b9e3b._.js.map → src_presentation_web_2c992e9f._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_7b7b9e3b._.js → src_presentation_web_476ed91c._.js} +3 -3
- package/web/.next/server/chunks/ssr/{src_presentation_web_54b02639._.js.map → src_presentation_web_476ed91c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_e3a30e30._.js → src_presentation_web_5b78146e._.js} +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_5b78146e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_e1cd1869._.js → src_presentation_web_796d2fd5._.js} +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_796d2fd5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_3a934437.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_3a934437.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.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_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +590 -484
- package/web/.next/static/chunks/{a20f2d6f76f469b7.css → 0cf210e5b787a08b.css} +1 -1
- package/web/.next/static/chunks/{97b1402b60fab8a2.js → 129ec6d253f86319.js} +1 -1
- package/web/.next/static/chunks/{e5d2d6d17ea0472e.js → 2fe9740f9397711d.js} +1 -1
- package/web/.next/static/chunks/{4df18296f976f225.js → 37035f72d4f041f4.js} +1 -1
- package/web/.next/static/chunks/{85ea0b80c5996155.js → 4a5e1ebbe4a3fd87.js} +1 -1
- package/web/.next/static/chunks/{73e0fa361f218bb0.js → 7a0b03e168a882e6.js} +1 -1
- package/web/.next/static/chunks/8692d79a48d07b5c.js +3 -0
- package/web/.next/static/chunks/8c60a1781664e9f3.js +2 -0
- package/web/.next/static/chunks/96b30c2bf69bb538.js +1 -0
- package/web/.next/static/chunks/{6d33333b9382783a.js → a3c5ab40fc61b2c2.js} +3 -3
- package/web/.next/static/chunks/{6a3d4b6774ebcbff.js → abdbfb54cbb73702.js} +1 -1
- package/web/.next/static/chunks/{5cddc4bace2ce528.js → bbb9fcc0697d77b8.js} +1 -1
- package/web/.next/static/chunks/{420c3bd9d5a22881.js → eb612d2c2229399e.js} +1 -1
- package/web/.next/static/chunks/{1bbf1ec4b25d4de8.js → eccf3cd99bc580a4.js} +1 -1
- package/web/.next/static/chunks/{fb6b8fc0dac0dea9.js → fa3bbfc6b0934358.js} +1 -1
- package/apis/json-schema/TokenOptimizationConfig.yaml +0 -36
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.d.ts +0 -45
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.d.ts +0 -50
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.d.ts +0 -57
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/optimization-metrics.interface.d.ts +0 -45
- package/dist/packages/core/src/application/ports/output/services/optimization-metrics.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/optimization-metrics.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.d.ts +0 -86
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.d.ts +0 -43
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.js +0 -13
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.d.ts +0 -41
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.js +0 -12
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.d.ts +0 -29
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.js +0 -77
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.d.ts +0 -42
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.js +0 -92
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.d.ts +0 -41
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.js +0 -111
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.d.ts +0 -22
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.js +0 -245
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.d.ts +0 -22
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.js +0 -50
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.d.ts +0 -36
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.js +0 -123
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.d.ts +0 -57
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.js +0 -211
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.d.ts +0 -34
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.js +0 -190
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.d.ts +0 -26
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.js +0 -51
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +0 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +0 -3
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +0 -1
- package/web/.next/server/chunks/ssr/_39053f87._.js +0 -4
- package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +0 -1
- package/web/.next/static/chunks/1fd5980d468143b3.js +0 -3
- package/web/.next/static/chunks/2403588dafacbd4e.js +0 -1
- package/web/.next/static/chunks/287fea380d8cc373.js +0 -2
- /package/web/.next/static/{EYQFTbDa6VxVniUQK-bHc → pZ9nz6LLItDQ4YUlAE7tc}/_buildManifest.js +0 -0
- /package/web/.next/static/{EYQFTbDa6VxVniUQK-bHc → pZ9nz6LLItDQ4YUlAE7tc}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{EYQFTbDa6VxVniUQK-bHc → pZ9nz6LLItDQ4YUlAE7tc}/_ssgManifest.js +0 -0
|
@@ -64,36 +64,6 @@ properties:
|
|
|
64
64
|
errorMessage:
|
|
65
65
|
type: string
|
|
66
66
|
description: Error details when exitCode is not success
|
|
67
|
-
originalTokenEstimate:
|
|
68
|
-
type: string
|
|
69
|
-
description: Estimated token count before optimization (chars / 4 heuristic)
|
|
70
|
-
optimizedTokenEstimate:
|
|
71
|
-
type: string
|
|
72
|
-
description: Estimated token count after optimization (chars / 4 heuristic)
|
|
73
|
-
savingsPercent:
|
|
74
|
-
type: number
|
|
75
|
-
description: Percentage of tokens saved by optimization ((original - optimized) / original * 100)
|
|
76
|
-
capabilitiesApplied:
|
|
77
|
-
type: string
|
|
78
|
-
description: JSON array of optimization capability names that were applied
|
|
79
|
-
outputFilterLinesRemoved:
|
|
80
|
-
type: integer
|
|
81
|
-
minimum: -2147483648
|
|
82
|
-
maximum: 2147483647
|
|
83
|
-
description: Number of lines removed by the command output filter
|
|
84
|
-
deltaContextFilesSkipped:
|
|
85
|
-
type: integer
|
|
86
|
-
minimum: -2147483648
|
|
87
|
-
maximum: 2147483647
|
|
88
|
-
description: Number of spec files replaced with compact summaries by delta-context
|
|
89
|
-
compressionRatio:
|
|
90
|
-
type: number
|
|
91
|
-
description: Compression ratio achieved by semantic text compression (compressed / original)
|
|
92
|
-
aliasesCreated:
|
|
93
|
-
type: integer
|
|
94
|
-
minimum: -2147483648
|
|
95
|
-
maximum: 2147483647
|
|
96
|
-
description: Number of alias substitutions created by the alias compression engine
|
|
97
67
|
required:
|
|
98
68
|
- agentRunId
|
|
99
69
|
- phase
|
|
@@ -67,9 +67,6 @@ properties:
|
|
|
67
67
|
skillInjection:
|
|
68
68
|
$ref: SkillInjectionConfig.yaml
|
|
69
69
|
description: Skill injection configuration (optional, disabled by default)
|
|
70
|
-
tokenOptimization:
|
|
71
|
-
$ref: TokenOptimizationConfig.yaml
|
|
72
|
-
description: Token optimization configuration (optional, enabled by default)
|
|
73
70
|
required:
|
|
74
71
|
- openPrOnImplementationComplete
|
|
75
72
|
- approvalGateDefaults
|
package/dist/eslint.config.mjs
CHANGED
|
@@ -25,7 +25,7 @@ export interface IPhaseTimingRepository {
|
|
|
25
25
|
* @param id - The phase timing ID
|
|
26
26
|
* @param updates - Fields to update (timing + optional token usage, exit code, error)
|
|
27
27
|
*/
|
|
28
|
-
update(id: string, updates: Partial<Pick<PhaseTiming, 'completedAt' | 'durationMs' | 'inputTokens' | 'outputTokens' | 'cacheCreationInputTokens' | 'cacheReadInputTokens' | 'costUsd' | 'numTurns' | 'durationApiMs' | 'exitCode' | 'errorMessage' | 'prompt'
|
|
28
|
+
update(id: string, updates: Partial<Pick<PhaseTiming, 'completedAt' | 'durationMs' | 'inputTokens' | 'outputTokens' | 'cacheCreationInputTokens' | 'cacheReadInputTokens' | 'costUsd' | 'numTurns' | 'durationApiMs' | 'exitCode' | 'errorMessage' | 'prompt'>>): Promise<void>;
|
|
29
29
|
/**
|
|
30
30
|
* Update approval wait timing fields on a phase timing record.
|
|
31
31
|
*
|
|
@@ -33,13 +33,6 @@ export interface IPhaseTimingRepository {
|
|
|
33
33
|
* @param updates - Approval wait fields to update
|
|
34
34
|
*/
|
|
35
35
|
updateApprovalWait(id: string, updates: Partial<Pick<PhaseTiming, 'waitingApprovalAt' | 'approvalWaitMs'>>): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Find a single phase timing record by its ID.
|
|
38
|
-
*
|
|
39
|
-
* @param id - The phase timing ID
|
|
40
|
-
* @returns The phase timing record, or null if not found
|
|
41
|
-
*/
|
|
42
|
-
findById(id: string): Promise<PhaseTiming | null>;
|
|
43
36
|
/**
|
|
44
37
|
* Find all phase timings for an agent run.
|
|
45
38
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-timing-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/phase-timing-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CACd,IAAI,CACF,WAAW,EACT,aAAa,GACb,YAAY,GACZ,aAAa,GACb,cAAc,GACd,0BAA0B,GAC1B,sBAAsB,GACtB,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,cAAc,GACd,QAAQ,
|
|
1
|
+
{"version":3,"file":"phase-timing-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/phase-timing-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CACd,IAAI,CACF,WAAW,EACT,aAAa,GACb,YAAY,GACZ,aAAa,GACb,cAAc,GACd,0BAA0B,GAC1B,sBAAsB,GACtB,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,cAAc,GACd,QAAQ,CACX,CACF,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,kBAAkB,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,GAC1E,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAExD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5D"}
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export type { IAgentExecutor, AgentExecutionResult, AgentExecutionStreamEvent, AgentExecutionOptions, IAgentExecutorFactory, IAgentExecutorProvider, IAgentRegistry, AgentDefinitionWithFactory, IAgentRunner, AgentRunOptions, IAgentRunRepository, IAgentValidator, AgentValidationResult, IFeatureAgentProcessService, } from './agents/index.js';
|
|
10
10
|
export type { IFeatureRepository, FeatureListFilters, ISettingsRepository, } from './repositories/index.js';
|
|
11
|
-
export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo,
|
|
11
|
+
export type { IExternalIssueFetcher, ExternalIssue, INotificationService, ISpecInitializerService, SpecInitializerResult, IVersionService, IWebServerService, IWorktreeService, WorktreeInfo, } from './services/index.js';
|
|
12
12
|
export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, WorktreeError, WorktreeErrorCode, } from './services/index.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/ports/output/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts
CHANGED
|
@@ -381,6 +381,21 @@ export interface IGitPrService {
|
|
|
381
381
|
* @throws GitPrError with BRANCH_NOT_FOUND code if a branch does not exist
|
|
382
382
|
*/
|
|
383
383
|
rebaseOnMain(cwd: string, featureBranch: string, baseBranch: string): Promise<void>;
|
|
384
|
+
/**
|
|
385
|
+
* Rebase the feature branch onto `origin/<targetBranch>`.
|
|
386
|
+
* Fetches the target branch from the remote first to ensure the
|
|
387
|
+
* remote-tracking ref is up-to-date, then rebases the feature branch
|
|
388
|
+
* onto it. Similar to {@link rebaseOnMain} but targets an arbitrary
|
|
389
|
+
* branch instead of the repository's default branch.
|
|
390
|
+
*
|
|
391
|
+
* @param cwd - Working directory path
|
|
392
|
+
* @param featureBranch - The feature branch to rebase
|
|
393
|
+
* @param targetBranch - The target branch name (rebase target will be origin/<targetBranch>)
|
|
394
|
+
* @throws GitPrError with GIT_ERROR code if the worktree is dirty
|
|
395
|
+
* @throws GitPrError with REBASE_CONFLICT code if conflicts are detected
|
|
396
|
+
* @throws GitPrError with BRANCH_NOT_FOUND code if a branch does not exist
|
|
397
|
+
*/
|
|
398
|
+
rebaseOnBranch(cwd: string, featureBranch: string, targetBranch: string): Promise<void>;
|
|
384
399
|
/**
|
|
385
400
|
* Get the list of files with unresolved conflicts (unmerged paths).
|
|
386
401
|
* Uses `git diff --name-only --diff-filter=U` to identify conflicted files.
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;GAEG;AACH,oBAAY,cAAc;IACxB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,IAAI,EAAE,cAAc;aACpB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,cAAc,EACpB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,0CAA0C;IAC1C,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,KAAK,EAAE,QAAQ,CAAC;IAChB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAElD;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;;;;;;OAQG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD;;;;;;;OAOG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;;;;;;OAOG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAElE;;;;;;;;;OASG;IACH,OAAO,CACL,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF;;;;;;;OAOG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE;;;;;;OAMG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAErD;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAEhF;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAIlG;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;;;;;;OAOG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;OAQG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C"}
|
|
1
|
+
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Opener Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for opening URLs in the user's default browser.
|
|
5
|
+
* Infrastructure layer provides concrete implementations:
|
|
6
|
+
* - BrowserOpenerService — default, uses platform-specific commands (open, xdg-open, cmd start)
|
|
7
|
+
* - ElectronBrowserOpener — used when running inside Electron (focuses BrowserWindow or shell.openExternal)
|
|
8
|
+
*
|
|
9
|
+
* Following Clean Architecture:
|
|
10
|
+
* - Application layer depends on this interface
|
|
11
|
+
* - Infrastructure layer provides concrete implementations
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Port interface for opening URLs in the user's browser or app window.
|
|
15
|
+
*
|
|
16
|
+
* Implementations must:
|
|
17
|
+
* - Handle errors gracefully (log, never throw)
|
|
18
|
+
* - Degrade gracefully in non-interactive environments (CI, piped I/O)
|
|
19
|
+
*/
|
|
20
|
+
export interface IBrowserOpener {
|
|
21
|
+
/**
|
|
22
|
+
* Open a URL in the user's default browser or application window.
|
|
23
|
+
*
|
|
24
|
+
* @param url - The URL to open
|
|
25
|
+
*/
|
|
26
|
+
open(url: string): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=i-browser-opener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-browser-opener.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/i-browser-opener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Opener Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for opening URLs in the user's default browser.
|
|
5
|
+
* Infrastructure layer provides concrete implementations:
|
|
6
|
+
* - BrowserOpenerService — default, uses platform-specific commands (open, xdg-open, cmd start)
|
|
7
|
+
* - ElectronBrowserOpener — used when running inside Electron (focuses BrowserWindow or shell.openExternal)
|
|
8
|
+
*
|
|
9
|
+
* Following Clean Architecture:
|
|
10
|
+
* - Application layer depends on this interface
|
|
11
|
+
* - Infrastructure layer provides concrete implementations
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desktop Notifier Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for sending native OS desktop notifications.
|
|
5
|
+
* Infrastructure layer provides concrete implementations:
|
|
6
|
+
* - DesktopNotifier (node-notifier) — default for CLI/web contexts
|
|
7
|
+
* - ElectronDesktopNotifier — used when running inside Electron
|
|
8
|
+
*
|
|
9
|
+
* Following Clean Architecture:
|
|
10
|
+
* - Application layer depends on this interface
|
|
11
|
+
* - Infrastructure layer provides concrete implementations
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Port interface for sending native OS desktop notifications.
|
|
15
|
+
*
|
|
16
|
+
* Implementations must:
|
|
17
|
+
* - Sanitize input to prevent injection (shell metacharacters, length limits)
|
|
18
|
+
* - Handle errors gracefully (log, never throw)
|
|
19
|
+
*/
|
|
20
|
+
export interface IDesktopNotifier {
|
|
21
|
+
/**
|
|
22
|
+
* Send a native OS desktop notification.
|
|
23
|
+
*
|
|
24
|
+
* @param title - Notification title
|
|
25
|
+
* @param body - Notification body text
|
|
26
|
+
*/
|
|
27
|
+
send(title: string, body: string): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=i-desktop-notifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-desktop-notifier.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/i-desktop-notifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desktop Notifier Interface
|
|
3
|
+
*
|
|
4
|
+
* Output port for sending native OS desktop notifications.
|
|
5
|
+
* Infrastructure layer provides concrete implementations:
|
|
6
|
+
* - DesktopNotifier (node-notifier) — default for CLI/web contexts
|
|
7
|
+
* - ElectronDesktopNotifier — used when running inside Electron
|
|
8
|
+
*
|
|
9
|
+
* Following Clean Architecture:
|
|
10
|
+
* - Application layer depends on this interface
|
|
11
|
+
* - Infrastructure layer provides concrete implementations
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
@@ -21,11 +21,6 @@ export type { IGitHubRepositoryService, GitHubRepo, GitHubOrganization, ListUser
|
|
|
21
21
|
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, } from './github-repository-service.interface.js';
|
|
22
22
|
export type { IInteractiveSessionService, StreamChunk, UnsubscribeFn, ChatState, } from './interactive-session-service.interface.js';
|
|
23
23
|
export type { ISkillInjectorService, SkillInjectionResult } from './skill-injector.interface.js';
|
|
24
|
-
export type {
|
|
25
|
-
export type {
|
|
26
|
-
export type { ISkillRoutingService, SkillRoutingResult } from './skill-routing.interface.js';
|
|
27
|
-
export type { IDeltaContextService, DeltaContextResult, SpecFileEntry, } from './delta-context.interface.js';
|
|
28
|
-
export type { ISemanticCompressorService, SemanticCompressionResult, } from './semantic-compressor.interface.js';
|
|
29
|
-
export type { IAliasCompressionService, AliasCompressionResult, } from './alias-compression.interface.js';
|
|
30
|
-
export type { IOptimizationMetricsService } from './optimization-metrics.interface.js';
|
|
24
|
+
export type { IDesktopNotifier } from './i-desktop-notifier.js';
|
|
25
|
+
export type { IBrowserOpener } from './i-browser-opener.js';
|
|
31
26
|
//# 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,kBAAkB,EAClB,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,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACjG,YAAY,
|
|
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,kBAAkB,EAClB,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,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACjG,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CheckAndUnblockFeaturesUseCase
|
|
3
3
|
*
|
|
4
4
|
* Evaluates whether blocked direct children of a parent feature are now
|
|
5
|
-
* eligible to start, and if so transitions them to Started
|
|
6
|
-
* agents.
|
|
5
|
+
* eligible to start, and if so transitions them to Started, rebases their
|
|
6
|
+
* branches onto the parent branch, and spawns their agents.
|
|
7
7
|
*
|
|
8
8
|
* Business Rules:
|
|
9
9
|
* - Only direct children of parentFeatureId are evaluated (no recursive traversal).
|
|
@@ -11,20 +11,63 @@
|
|
|
11
11
|
* - Gate: parent lifecycle must be in POST_IMPLEMENTATION (Implementation, Review, Maintain).
|
|
12
12
|
* - Idempotent: already-Started children are not touched; calling execute() twice is safe.
|
|
13
13
|
* - spawn() is skipped for children missing agentRunId or specPath (defensive guard).
|
|
14
|
+
* - Auto-rebase: each blocked child's branch is rebased onto the parent branch
|
|
15
|
+
* before spawning the agent. Rebase failures are isolated per-child and recorded
|
|
16
|
+
* in the activity timeline. Agent spawns regardless of rebase outcome.
|
|
17
|
+
* - NFR-3: rebase is skipped if the child has an active (running) agent run.
|
|
14
18
|
*
|
|
15
19
|
* Called from: UpdateFeatureLifecycleUseCase after every lifecycle transition.
|
|
16
20
|
*/
|
|
17
21
|
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
|
|
18
22
|
import type { IFeatureAgentProcessService } from '../../ports/output/agents/feature-agent-process.interface.js';
|
|
23
|
+
import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
|
|
24
|
+
import type { IWorktreeService } from '../../ports/output/services/worktree-service.interface.js';
|
|
25
|
+
import type { ConflictResolutionService } from '../../../infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js';
|
|
26
|
+
import type { IAgentRunRepository } from '../../ports/output/agents/agent-run-repository.interface.js';
|
|
27
|
+
import type { IPhaseTimingRepository } from '../../ports/output/agents/phase-timing-repository.interface.js';
|
|
19
28
|
export declare class CheckAndUnblockFeaturesUseCase {
|
|
20
29
|
private readonly featureRepo;
|
|
21
30
|
private readonly agentProcess;
|
|
22
|
-
|
|
31
|
+
private readonly gitPrService;
|
|
32
|
+
private readonly worktreeService;
|
|
33
|
+
private readonly conflictResolutionService;
|
|
34
|
+
private readonly agentRunRepo;
|
|
35
|
+
private readonly phaseTimingRepo;
|
|
36
|
+
constructor(featureRepo: IFeatureRepository, agentProcess: IFeatureAgentProcessService, gitPrService: IGitPrService, worktreeService: IWorktreeService, conflictResolutionService: ConflictResolutionService, agentRunRepo: IAgentRunRepository, phaseTimingRepo: IPhaseTimingRepository);
|
|
23
37
|
/**
|
|
24
38
|
* Check and unblock direct children of the given parent feature.
|
|
25
39
|
*
|
|
26
40
|
* @param parentFeatureId - ID of the feature whose children should be evaluated.
|
|
27
41
|
*/
|
|
28
42
|
execute(parentFeatureId: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Rebase a child feature branch onto the parent feature branch.
|
|
45
|
+
*
|
|
46
|
+
* Creates an agent run + phase timing for activity timeline tracking.
|
|
47
|
+
* Stashes uncommitted changes before rebase and restores in finally block.
|
|
48
|
+
* Delegates to ConflictResolutionService on conflicts.
|
|
49
|
+
* Failures are recorded but do not prevent agent spawn.
|
|
50
|
+
*
|
|
51
|
+
* Skips rebase if the child has an active (running) agent run (NFR-3).
|
|
52
|
+
*/
|
|
53
|
+
private rebaseChildOntoParent;
|
|
54
|
+
/**
|
|
55
|
+
* Perform the rebase with conflict resolution.
|
|
56
|
+
*/
|
|
57
|
+
private performRebase;
|
|
58
|
+
/**
|
|
59
|
+
* Create a timeout promise that rejects after the specified duration.
|
|
60
|
+
*/
|
|
61
|
+
private createTimeout;
|
|
62
|
+
/**
|
|
63
|
+
* Complete the phase timing and update agent run status.
|
|
64
|
+
*/
|
|
65
|
+
private completeTiming;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the correct working directory for the child feature.
|
|
68
|
+
* Uses the worktree path if a worktree exists for this branch,
|
|
69
|
+
* otherwise falls back to the repository root.
|
|
70
|
+
*/
|
|
71
|
+
private resolveCwd;
|
|
29
72
|
}
|
|
30
73
|
//# sourceMappingURL=check-and-unblock-features.use-case.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-and-unblock-features.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"check-and-unblock-features.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAChH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAK7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4FAA4F,CAAC;AAC5I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAM7G,qBACa,8BAA8B;IAET,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE1D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAZe,WAAW,EAAE,kBAAkB,EAE7D,YAAY,EAAE,2BAA2B,EAEzC,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB,EAEjC,yBAAyB,EAAE,yBAAyB,EAEpD,YAAY,EAAE,mBAAmB,EAEjC,eAAe,EAAE,sBAAsB;IAG1D;;;;OAIG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDrD;;;;;;;;;OASG;YACW,qBAAqB;IAwEnC;;OAEG;YACW,aAAa;IAiB3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;YACW,cAAc;IAwB5B;;;;OAIG;YACW,UAAU;CAOzB"}
|
package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* CheckAndUnblockFeaturesUseCase
|
|
3
3
|
*
|
|
4
4
|
* Evaluates whether blocked direct children of a parent feature are now
|
|
5
|
-
* eligible to start, and if so transitions them to Started
|
|
6
|
-
* agents.
|
|
5
|
+
* eligible to start, and if so transitions them to Started, rebases their
|
|
6
|
+
* branches onto the parent branch, and spawns their agents.
|
|
7
7
|
*
|
|
8
8
|
* Business Rules:
|
|
9
9
|
* - Only direct children of parentFeatureId are evaluated (no recursive traversal).
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
* - Gate: parent lifecycle must be in POST_IMPLEMENTATION (Implementation, Review, Maintain).
|
|
12
12
|
* - Idempotent: already-Started children are not touched; calling execute() twice is safe.
|
|
13
13
|
* - spawn() is skipped for children missing agentRunId or specPath (defensive guard).
|
|
14
|
+
* - Auto-rebase: each blocked child's branch is rebased onto the parent branch
|
|
15
|
+
* before spawning the agent. Rebase failures are isolated per-child and recorded
|
|
16
|
+
* in the activity timeline. Agent spawns regardless of rebase outcome.
|
|
17
|
+
* - NFR-3: rebase is skipped if the child has an active (running) agent run.
|
|
14
18
|
*
|
|
15
19
|
* Called from: UpdateFeatureLifecycleUseCase after every lifecycle transition.
|
|
16
20
|
*/
|
|
@@ -27,14 +31,28 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
27
31
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
32
|
};
|
|
29
33
|
import { injectable, inject } from 'tsyringe';
|
|
30
|
-
import {
|
|
34
|
+
import { randomUUID } from 'node:crypto';
|
|
35
|
+
import { SdlcLifecycle, AgentRunStatus, AgentType } from '../../../domain/generated/output.js';
|
|
36
|
+
import { GitPrError, GitPrErrorCode, } from '../../ports/output/services/git-pr-service.interface.js';
|
|
31
37
|
import { POST_IMPLEMENTATION } from '../../../domain/lifecycle-gates.js';
|
|
38
|
+
/** Maximum time (ms) to wait for a single child rebase before aborting. */
|
|
39
|
+
const REBASE_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
32
40
|
let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
|
|
33
41
|
featureRepo;
|
|
34
42
|
agentProcess;
|
|
35
|
-
|
|
43
|
+
gitPrService;
|
|
44
|
+
worktreeService;
|
|
45
|
+
conflictResolutionService;
|
|
46
|
+
agentRunRepo;
|
|
47
|
+
phaseTimingRepo;
|
|
48
|
+
constructor(featureRepo, agentProcess, gitPrService, worktreeService, conflictResolutionService, agentRunRepo, phaseTimingRepo) {
|
|
36
49
|
this.featureRepo = featureRepo;
|
|
37
50
|
this.agentProcess = agentProcess;
|
|
51
|
+
this.gitPrService = gitPrService;
|
|
52
|
+
this.worktreeService = worktreeService;
|
|
53
|
+
this.conflictResolutionService = conflictResolutionService;
|
|
54
|
+
this.agentRunRepo = agentRunRepo;
|
|
55
|
+
this.phaseTimingRepo = phaseTimingRepo;
|
|
38
56
|
}
|
|
39
57
|
/**
|
|
40
58
|
* Check and unblock direct children of the given parent feature.
|
|
@@ -58,6 +76,8 @@ let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
|
|
|
58
76
|
child.lifecycle = SdlcLifecycle.Started;
|
|
59
77
|
child.updatedAt = new Date();
|
|
60
78
|
await this.featureRepo.update(child);
|
|
79
|
+
// Rebase child branch onto parent branch (isolated per-child)
|
|
80
|
+
await this.rebaseChildOntoParent(child, parent);
|
|
61
81
|
// Spawn agent using fields set at feature creation time
|
|
62
82
|
if (child.agentRunId && child.specPath) {
|
|
63
83
|
this.agentProcess.spawn(child.id, child.agentRunId, child.repositoryPath, child.specPath, child.worktreePath, {
|
|
@@ -74,11 +94,139 @@ let CheckAndUnblockFeaturesUseCase = class CheckAndUnblockFeaturesUseCase {
|
|
|
74
94
|
}
|
|
75
95
|
}
|
|
76
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Rebase a child feature branch onto the parent feature branch.
|
|
99
|
+
*
|
|
100
|
+
* Creates an agent run + phase timing for activity timeline tracking.
|
|
101
|
+
* Stashes uncommitted changes before rebase and restores in finally block.
|
|
102
|
+
* Delegates to ConflictResolutionService on conflicts.
|
|
103
|
+
* Failures are recorded but do not prevent agent spawn.
|
|
104
|
+
*
|
|
105
|
+
* Skips rebase if the child has an active (running) agent run (NFR-3).
|
|
106
|
+
*/
|
|
107
|
+
async rebaseChildOntoParent(child, parent) {
|
|
108
|
+
// NFR-3: skip rebase if child has an active agent run
|
|
109
|
+
if (child.agentRunId) {
|
|
110
|
+
const existingRun = await this.agentRunRepo.findById(child.agentRunId);
|
|
111
|
+
if (existingRun && existingRun.status === AgentRunStatus.running) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Create standalone agent run + phase timing for activity timeline
|
|
116
|
+
const now = new Date().toISOString();
|
|
117
|
+
const agentRunId = randomUUID();
|
|
118
|
+
const phaseTimingId = randomUUID();
|
|
119
|
+
await this.agentRunRepo.create({
|
|
120
|
+
id: agentRunId,
|
|
121
|
+
agentType: AgentType.ClaudeCode,
|
|
122
|
+
agentName: 'rebase',
|
|
123
|
+
status: AgentRunStatus.running,
|
|
124
|
+
prompt: `Rebase ${child.branch} onto parent ${parent.branch}`,
|
|
125
|
+
threadId: agentRunId,
|
|
126
|
+
startedAt: now,
|
|
127
|
+
featureId: child.id,
|
|
128
|
+
repositoryPath: child.repositoryPath,
|
|
129
|
+
createdAt: now,
|
|
130
|
+
updatedAt: now,
|
|
131
|
+
});
|
|
132
|
+
await this.phaseTimingRepo.save({
|
|
133
|
+
id: phaseTimingId,
|
|
134
|
+
agentRunId,
|
|
135
|
+
phase: 'rebase-on-parent',
|
|
136
|
+
startedAt: now,
|
|
137
|
+
createdAt: now,
|
|
138
|
+
updatedAt: now,
|
|
139
|
+
});
|
|
140
|
+
const startMs = Date.now();
|
|
141
|
+
try {
|
|
142
|
+
// Resolve CWD — worktree path if it exists, else repo root
|
|
143
|
+
const cwd = await this.resolveCwd(child.repositoryPath, child.branch);
|
|
144
|
+
// Stash uncommitted changes (smart rebase)
|
|
145
|
+
const didStash = await this.gitPrService.stash(cwd, 'shep-rebase: auto-stash before parent rebase');
|
|
146
|
+
try {
|
|
147
|
+
// Rebase child branch onto parent branch (with timeout)
|
|
148
|
+
await Promise.race([
|
|
149
|
+
this.performRebase(cwd, child.branch, parent.branch),
|
|
150
|
+
this.createTimeout(REBASE_TIMEOUT_MS, child.branch),
|
|
151
|
+
]);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
// Restore stashed changes (regardless of rebase outcome)
|
|
155
|
+
if (didStash) {
|
|
156
|
+
await this.gitPrService.stashPop(cwd);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Rebase succeeded
|
|
160
|
+
await this.completeTiming(agentRunId, phaseTimingId, startMs, 'success');
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
// Record failure in activity timeline but do not throw —
|
|
164
|
+
// agent spawn proceeds regardless of rebase outcome
|
|
165
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
166
|
+
await this.completeTiming(agentRunId, phaseTimingId, startMs, 'error', message);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Perform the rebase with conflict resolution.
|
|
171
|
+
*/
|
|
172
|
+
async performRebase(cwd, childBranch, parentBranch) {
|
|
173
|
+
try {
|
|
174
|
+
await this.gitPrService.rebaseOnBranch(cwd, childBranch, parentBranch);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
if (error instanceof GitPrError && error.code === GitPrErrorCode.REBASE_CONFLICT) {
|
|
178
|
+
// Delegate to agent-powered conflict resolution
|
|
179
|
+
await this.conflictResolutionService.resolve(cwd, childBranch, parentBranch);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Create a timeout promise that rejects after the specified duration.
|
|
188
|
+
*/
|
|
189
|
+
createTimeout(ms, childBranch) {
|
|
190
|
+
return new Promise((_, reject) => {
|
|
191
|
+
setTimeout(() => reject(new Error(`Rebase timeout: ${childBranch} exceeded ${ms}ms`)), ms);
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Complete the phase timing and update agent run status.
|
|
196
|
+
*/
|
|
197
|
+
async completeTiming(agentRunId, phaseTimingId, startMs, exitCode, errorMessage) {
|
|
198
|
+
const completedAt = new Date().toISOString();
|
|
199
|
+
const durationMs = Date.now() - startMs;
|
|
200
|
+
await this.phaseTimingRepo.update(phaseTimingId, {
|
|
201
|
+
completedAt,
|
|
202
|
+
durationMs: BigInt(durationMs),
|
|
203
|
+
exitCode,
|
|
204
|
+
...(errorMessage && { errorMessage }),
|
|
205
|
+
});
|
|
206
|
+
await this.agentRunRepo.updateStatus(agentRunId, exitCode === 'success' ? AgentRunStatus.completed : AgentRunStatus.failed, { completedAt, ...(errorMessage && { error: errorMessage }) });
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Resolve the correct working directory for the child feature.
|
|
210
|
+
* Uses the worktree path if a worktree exists for this branch,
|
|
211
|
+
* otherwise falls back to the repository root.
|
|
212
|
+
*/
|
|
213
|
+
async resolveCwd(repositoryPath, branch) {
|
|
214
|
+
const hasWorktree = await this.worktreeService.exists(repositoryPath, branch);
|
|
215
|
+
if (hasWorktree) {
|
|
216
|
+
return this.worktreeService.getWorktreePath(repositoryPath, branch);
|
|
217
|
+
}
|
|
218
|
+
return repositoryPath;
|
|
219
|
+
}
|
|
77
220
|
};
|
|
78
221
|
CheckAndUnblockFeaturesUseCase = __decorate([
|
|
79
222
|
injectable(),
|
|
80
223
|
__param(0, inject('IFeatureRepository')),
|
|
81
224
|
__param(1, inject('IFeatureAgentProcessService')),
|
|
82
|
-
|
|
225
|
+
__param(2, inject('IGitPrService')),
|
|
226
|
+
__param(3, inject('IWorktreeService')),
|
|
227
|
+
__param(4, inject('ConflictResolutionService')),
|
|
228
|
+
__param(5, inject('IAgentRunRepository')),
|
|
229
|
+
__param(6, inject('IPhaseTimingRepository')),
|
|
230
|
+
__metadata("design:paramtypes", [Object, Object, Object, Object, Function, Object, Object])
|
|
83
231
|
], CheckAndUnblockFeaturesUseCase);
|
|
84
232
|
export { CheckAndUnblockFeaturesUseCase };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReparentFeatureUseCase
|
|
3
|
+
*
|
|
4
|
+
* Updates a feature's parent dependency (or clears it). Performs validation:
|
|
5
|
+
* - Same-repository constraint (child and parent must share repositoryPath)
|
|
6
|
+
* - Cycle detection via upward ancestor walk
|
|
7
|
+
* - Lifecycle guards (cannot reparent completed/archived/deleting features)
|
|
8
|
+
* - Lifecycle state adjustment based on new parent's lifecycle
|
|
9
|
+
*
|
|
10
|
+
* After reparenting, if the new parent is post-implementation, calls
|
|
11
|
+
* CheckAndUnblockFeaturesUseCase to trigger the unblock+rebase flow
|
|
12
|
+
* for any Blocked children of the reparented feature.
|
|
13
|
+
*/
|
|
14
|
+
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
|
|
15
|
+
import { CheckAndUnblockFeaturesUseCase } from './check-and-unblock-features.use-case.js';
|
|
16
|
+
export interface ReparentFeatureInput {
|
|
17
|
+
featureId: string;
|
|
18
|
+
parentId: string | null;
|
|
19
|
+
}
|
|
20
|
+
export declare class ReparentFeatureUseCase {
|
|
21
|
+
private readonly featureRepo;
|
|
22
|
+
private readonly checkAndUnblock;
|
|
23
|
+
constructor(featureRepo: IFeatureRepository, checkAndUnblock: CheckAndUnblockFeaturesUseCase);
|
|
24
|
+
execute(input: ReparentFeatureInput): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Walk the ancestor chain from the proposed parent upward.
|
|
27
|
+
* If the child feature ID is found in the chain, a cycle exists.
|
|
28
|
+
*/
|
|
29
|
+
private detectCycle;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=reparent-feature.use-case.d.ts.map
|
package/dist/packages/core/src/application/use-cases/features/reparent-feature.use-case.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reparent-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/reparent-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAE1G,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAS1F,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,8BAA8B;IAG5D,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0EzD;;;OAGG;YACW,WAAW;CAgB1B"}
|