@shepai/cli 1.122.2-pr394.daae4c9 → 1.122.2-pr395.d35739a

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.
Files changed (347) hide show
  1. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +0 -11
  2. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +55 -1
  4. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +2 -0
  6. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts +0 -15
  7. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/features/rebase-feature.use-case.d.ts +21 -0
  9. package/dist/packages/core/src/application/use-cases/features/rebase-feature.use-case.d.ts.map +1 -0
  10. package/dist/packages/core/src/application/use-cases/features/rebase-feature.use-case.js +58 -0
  11. package/dist/packages/core/src/application/use-cases/sync-fork-main.use-case.d.ts +18 -0
  12. package/dist/packages/core/src/application/use-cases/sync-fork-main.use-case.d.ts.map +1 -0
  13. package/dist/packages/core/src/application/use-cases/sync-fork-main.use-case.js +40 -0
  14. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/di/container.js +10 -5
  16. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +0 -1
  17. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  18. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +0 -8
  19. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +9 -0
  20. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +93 -0
  22. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts +0 -1
  23. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  24. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +0 -15
  25. package/dist/src/presentation/cli/commands/feat/index.js +2 -2
  26. package/dist/src/presentation/cli/commands/feat/rebase.command.d.ts +13 -0
  27. package/dist/src/presentation/cli/commands/feat/rebase.command.d.ts.map +1 -0
  28. package/dist/src/presentation/cli/commands/feat/rebase.command.js +45 -0
  29. package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
  30. package/dist/src/presentation/cli/commands/repo/index.js +3 -1
  31. package/dist/src/presentation/cli/commands/repo/sync.command.d.ts +12 -0
  32. package/dist/src/presentation/cli/commands/repo/sync.command.d.ts.map +1 -0
  33. package/dist/src/presentation/cli/commands/repo/sync.command.js +38 -0
  34. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts +6 -0
  35. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  36. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +60 -0
  37. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +2 -0
  38. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
  39. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +2 -0
  40. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +7 -0
  41. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  42. package/dist/src/presentation/web/app/build-graph-nodes.js +7 -0
  43. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +20 -9
  45. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +130 -31
  47. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +13 -0
  49. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.js +18 -9
  51. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts +8 -0
  52. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -6
  55. package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts +2 -0
  56. package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.d.ts.map +1 -1
  57. package/dist/src/presentation/web/components/common/repository-node/repository-node.stories.js +107 -17
  58. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  59. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +18 -18
  60. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  61. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +31 -17
  62. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +29 -22
  64. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
  65. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +5 -14
  67. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts +2 -0
  68. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  69. package/dist/src/presentation/web/hooks/sidebar-features-context.js +2 -1
  70. package/dist/src/presentation/web/lib/layout-with-dagre.js +1 -1
  71. package/dist/tsconfig.build.tsbuildinfo +1 -1
  72. package/package.json +1 -1
  73. package/web/.next/BUILD_ID +1 -1
  74. package/web/.next/app-path-routes-manifest.json +0 -1
  75. package/web/.next/build-manifest.json +4 -4
  76. package/web/.next/fallback-build-manifest.json +2 -2
  77. package/web/.next/prerender-manifest.json +3 -3
  78. package/web/.next/required-server-files.js +1 -1
  79. package/web/.next/required-server-files.json +1 -1
  80. package/web/.next/routes-manifest.json +0 -6
  81. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
  82. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  83. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  84. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  87. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  88. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -3
  89. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +2 -2
  92. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  93. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  94. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +2 -2
  97. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  98. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  99. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +2 -2
  102. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  103. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  104. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  107. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  108. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -3
  109. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  110. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +2 -2
  112. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  113. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  114. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  115. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/(dashboard)/page/build-manifest.json +2 -2
  117. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  118. package/web/.next/server/app/(dashboard)/page.js +2 -2
  119. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  120. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +2 -2
  122. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  123. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  124. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  125. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  127. package/web/.next/server/app/_global-error.html +2 -2
  128. package/web/.next/server/app/_global-error.rsc +1 -1
  129. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  130. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  131. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  132. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  133. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  134. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  135. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  136. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  137. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  139. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  140. package/web/.next/server/app/api/graph-data/route.js +1 -1
  141. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  142. package/web/.next/server/app/settings/page/build-manifest.json +2 -2
  143. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  144. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  145. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  146. package/web/.next/server/app/skills/page/build-manifest.json +2 -2
  147. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  148. package/web/.next/server/app/skills/page.js +4 -4
  149. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  150. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  152. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  153. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  154. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  155. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  156. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  157. package/web/.next/server/app/version/page.js.nft.json +1 -1
  158. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  159. package/web/.next/server/app-paths-manifest.json +0 -1
  160. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  161. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  162. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  163. package/web/.next/server/chunks/[root-of-the-server]__dcd4f847._.js +3 -0
  164. package/web/.next/server/chunks/{[root-of-the-server]__42b7ab55._.js.map → [root-of-the-server]__dcd4f847._.js.map} +1 -1
  165. package/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js +1 -1
  166. package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +1 -1
  167. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  168. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
  170. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
  172. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  174. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a022445f._.js → [root-of-the-server]__14664e9b._.js} +3 -3
  175. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a022445f._.js.map → [root-of-the-server]__14664e9b._.js.map} +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js +3 -0
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__4993a47c._.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js +3 -0
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +3 -0
  181. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__6677a82c._.js +3 -0
  183. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b724df9e._.js.map → [root-of-the-server]__6677a82c._.js.map} +1 -1
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  185. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  187. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8e3bf5d7._.js → [root-of-the-server]__7cbda1ea._.js} +2 -2
  189. package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js.map +1 -0
  190. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  193. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2698e9f4._.js → [root-of-the-server]__9e8b25ad._.js} +2 -2
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js.map +1 -0
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  196. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c07f9f79._.js → [root-of-the-server]__aed1d6f8._.js} +2 -2
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js.map +1 -0
  198. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c605a375._.js → [root-of-the-server]__ce6057f6._.js} +2 -2
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js.map +1 -0
  200. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  201. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  203. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
  205. package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/{_5317c57e._.js → _59905c6b._.js} +2 -2
  207. package/web/.next/server/chunks/ssr/_59905c6b._.js.map +1 -0
  208. package/web/.next/server/chunks/ssr/_8042b250._.js +3 -0
  209. package/web/.next/server/chunks/ssr/_8042b250._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/_9ac70f88._.js +5 -0
  211. package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -0
  212. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  213. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/_e9703421._.js +3 -0
  215. package/web/.next/server/chunks/ssr/_e9703421._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  217. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js +3 -0
  219. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js.map +1 -0
  220. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
  221. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/src_presentation_web_7df6451f._.js +3 -0
  223. package/web/.next/server/chunks/ssr/src_presentation_web_7df6451f._.js.map +1 -0
  224. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  227. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  228. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  229. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
  231. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
  232. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  233. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  239. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  240. package/web/.next/server/middleware-build-manifest.js +2 -2
  241. package/web/.next/server/pages/500.html +2 -2
  242. package/web/.next/server/server-reference-manifest.js +1 -1
  243. package/web/.next/server/server-reference-manifest.json +34 -189
  244. package/web/.next/static/chunks/0b7e384fe33dc5d4.js +1 -0
  245. package/web/.next/static/chunks/16c125d4054dae40.js +11 -0
  246. package/web/.next/static/chunks/28882fc716f51419.js +2 -0
  247. package/web/.next/static/chunks/2d718a04eb97fa9c.js +1 -0
  248. package/web/.next/static/chunks/3925626b99dcd57a.css +1 -0
  249. package/web/.next/static/chunks/{9f4eb9f1618c8bd9.js → 3c8f903477aacd29.js} +1 -1
  250. package/web/.next/static/chunks/4443ee9c7733399b.js +1 -0
  251. package/web/.next/static/chunks/{7f0206527c67e121.js → 44ec09b4f33c494d.js} +1 -1
  252. package/web/.next/static/chunks/{b14644925c7af7f5.js → 47030173ef438c4c.js} +2 -2
  253. package/web/.next/static/chunks/4aadcf496c0c45da.js +1 -0
  254. package/web/.next/static/chunks/52b56677c842e45f.js +3 -0
  255. package/web/.next/static/chunks/5738cc053b378225.js +1 -0
  256. package/web/.next/static/chunks/6bc9ac207dab5ad3.js +1 -0
  257. package/web/.next/static/chunks/ac7251026c1e2cdf.js +1 -0
  258. package/web/.next/static/chunks/dbbb446493f21874.js +1 -0
  259. package/web/.next/static/chunks/{89aac43287d73b02.js → ed3a602003bcb31b.js} +1 -1
  260. package/web/.next/static/chunks/{turbopack-080e470ea902d0ba.js → turbopack-426d9bc2450816ba.js} +1 -1
  261. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +0 -40
  262. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +0 -1
  263. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +0 -146
  264. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts +0 -33
  265. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts.map +0 -1
  266. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.js +0 -77
  267. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts +0 -14
  268. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +0 -1
  269. package/dist/src/presentation/cli/commands/feat/adopt.command.js +0 -43
  270. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts +0 -10
  271. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts.map +0 -1
  272. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.js +0 -22
  273. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts +0 -11
  274. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts.map +0 -1
  275. package/dist/src/presentation/web/app/actions/adopt-branch.js +0 -20
  276. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts +0 -9
  277. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts.map +0 -1
  278. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +0 -27
  279. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +0 -32
  280. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts.map +0 -1
  281. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +0 -115
  282. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts +0 -5
  283. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts.map +0 -1
  284. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.js +0 -56
  285. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/app-paths-manifest.json +0 -3
  286. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +0 -18
  287. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/next-font-manifest.json +0 -6
  288. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +0 -1
  289. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +0 -320
  290. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +0 -20
  291. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.map +0 -5
  292. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +0 -1
  293. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +0 -2
  294. package/web/.next/server/chunks/[root-of-the-server]__42b7ab55._.js +0 -3
  295. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js +0 -3
  296. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js.map +0 -1
  297. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_0b3f4f0d.js +0 -3
  298. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_0b3f4f0d.js.map +0 -1
  299. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_adopt-drawer-client_tsx_6c5e4bbb._.js +0 -3
  300. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_adopt-drawer-client_tsx_6c5e4bbb._.js.map +0 -1
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__2698e9f4._.js.map +0 -1
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__8e3bf5d7._.js.map +0 -1
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__b724df9e._.js +0 -3
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__c07f9f79._.js.map +0 -1
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__c605a375._.js.map +0 -1
  306. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js +0 -3
  307. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js.map +0 -1
  308. package/web/.next/server/chunks/ssr/[root-of-the-server]__e7258841._.js +0 -3
  309. package/web/.next/server/chunks/ssr/[root-of-the-server]__e7258841._.js.map +0 -1
  310. package/web/.next/server/chunks/ssr/[root-of-the-server]__ec26e818._.js +0 -3
  311. package/web/.next/server/chunks/ssr/[root-of-the-server]__ec26e818._.js.map +0 -1
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js +0 -3
  313. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js.map +0 -1
  314. package/web/.next/server/chunks/ssr/_19a2fb35._.js +0 -3
  315. package/web/.next/server/chunks/ssr/_19a2fb35._.js.map +0 -1
  316. package/web/.next/server/chunks/ssr/_1e1b2639._.js +0 -3
  317. package/web/.next/server/chunks/ssr/_1e1b2639._.js.map +0 -1
  318. package/web/.next/server/chunks/ssr/_4093a637._.js +0 -5
  319. package/web/.next/server/chunks/ssr/_4093a637._.js.map +0 -1
  320. package/web/.next/server/chunks/ssr/_5317c57e._.js.map +0 -1
  321. package/web/.next/server/chunks/ssr/_a4a44cc0._.js +0 -3
  322. package/web/.next/server/chunks/ssr/_a4a44cc0._.js.map +0 -1
  323. package/web/.next/server/chunks/ssr/_d5206f22._.js +0 -4
  324. package/web/.next/server/chunks/ssr/_d5206f22._.js.map +0 -1
  325. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +0 -3
  326. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +0 -1
  327. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js +0 -3
  328. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js.map +0 -1
  329. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js +0 -3
  330. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js.map +0 -1
  331. package/web/.next/static/chunks/0d2af96e64960ef5.css +0 -1
  332. package/web/.next/static/chunks/430ef376bd249b14.js +0 -1
  333. package/web/.next/static/chunks/4796c6e7d84294d7.js +0 -1
  334. package/web/.next/static/chunks/52c0456129cb8a10.js +0 -1
  335. package/web/.next/static/chunks/767cf20dbde41522.js +0 -1
  336. package/web/.next/static/chunks/78e2f79d08767e8d.js +0 -9
  337. package/web/.next/static/chunks/a8d65187623d628b.js +0 -5
  338. package/web/.next/static/chunks/b4a6061718adb25e.js +0 -2
  339. package/web/.next/static/chunks/bf108ed551e585e6.js +0 -1
  340. package/web/.next/static/chunks/c6356369a45d19d6.js +0 -1
  341. package/web/.next/static/chunks/ca946dcbfbb2df74.js +0 -1
  342. package/web/.next/static/chunks/cafcbd67d82d65db.js +0 -1
  343. package/web/.next/static/chunks/d6d6af31b7ef545b.js +0 -1
  344. package/web/.next/static/chunks/f83551c20dcda199.js +0 -1
  345. /package/web/.next/static/{eu15XGqVtBSCUjVy2GmoQ → 8e_LzmibF0x2F_XwXUjHz}/_buildManifest.js +0 -0
  346. /package/web/.next/static/{eu15XGqVtBSCUjVy2GmoQ → 8e_LzmibF0x2F_XwXUjHz}/_clientMiddlewareManifest.json +0 -0
  347. /package/web/.next/static/{eu15XGqVtBSCUjVy2GmoQ → 8e_LzmibF0x2F_XwXUjHz}/_ssgManifest.js +0 -0
@@ -57,17 +57,6 @@ export interface IFeatureRepository {
57
57
  * @returns The feature or null if not found
58
58
  */
59
59
  findBySlug(slug: string, repositoryPath: string): Promise<Feature | null>;
60
- /**
61
- * Find a feature by its branch name within a repository (excludes soft-deleted).
62
- *
63
- * Used for duplicate adoption detection — ensures a branch is not already
64
- * tracked as a feature before adopting it.
65
- *
66
- * @param branch - The exact git branch name
67
- * @param repositoryPath - The repository path to scope the search
68
- * @returns The feature or null if not found
69
- */
70
- findByBranch(branch: string, repositoryPath: string): Promise<Feature | null>;
71
60
  /**
72
61
  * List features with optional filters.
73
62
  * Excludes soft-deleted features unless includeDeleted is true.
@@ -1 +1 @@
1
- {"version":3,"file":"feature-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/feature-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE9C;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE1E;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE9E;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAErD;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"feature-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/feature-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE9C;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE1E;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAErD;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC"}
@@ -17,7 +17,9 @@ export declare enum GitPrErrorCode {
17
17
  BRANCH_NOT_FOUND = "BRANCH_NOT_FOUND",
18
18
  GIT_ERROR = "GIT_ERROR",
19
19
  MERGE_FAILED = "MERGE_FAILED",
20
- PR_NOT_FOUND = "PR_NOT_FOUND"
20
+ PR_NOT_FOUND = "PR_NOT_FOUND",
21
+ REBASE_CONFLICT = "REBASE_CONFLICT",
22
+ NOT_A_FORK = "NOT_A_FORK"
21
23
  }
22
24
  /**
23
25
  * Typed error for git PR operations.
@@ -318,5 +320,57 @@ export interface IGitPrService {
318
320
  * @throws GitPrError with GH_NOT_FOUND or GIT_ERROR code on failure
319
321
  */
320
322
  getFailureLogs(cwd: string, runId: string, branch: string, logMaxChars?: number): Promise<string>;
323
+ /**
324
+ * Detect whether the current repository is a GitHub fork.
325
+ * Calls `gh repo view --json parent` once and returns both the boolean result and the
326
+ * parent clone URL so callers can pass it to ensureUpstreamRemote() without a second
327
+ * gh invocation (NFR-9).
328
+ *
329
+ * @param cwd - Working directory path (inside the git repo)
330
+ * @returns Object with isFork boolean and optional upstreamUrl from parent
331
+ * @throws GitPrError with GIT_ERROR code on unexpected failures
332
+ */
333
+ isFork(cwd: string): Promise<{
334
+ isFork: boolean;
335
+ upstreamUrl?: string;
336
+ }>;
337
+ /**
338
+ * Ensure a remote named "upstream" exists in the repo.
339
+ * If it does not exist, adds it using the provided upstreamUrl.
340
+ * Idempotent: if the remote already exists, this is a no-op.
341
+ *
342
+ * @param cwd - Working directory path (inside the git repo)
343
+ * @param upstreamUrl - Clone URL of the upstream (parent) repository
344
+ * @throws GitPrError with GIT_ERROR code on failure
345
+ */
346
+ ensureUpstreamRemote(cwd: string, upstreamUrl: string): Promise<void>;
347
+ /**
348
+ * Fetch the latest refs from the upstream remote.
349
+ *
350
+ * @param cwd - Working directory path (inside the git repo)
351
+ * @throws GitPrError with GIT_ERROR or NETWORK_ERROR code on failure
352
+ */
353
+ fetchUpstream(cwd: string): Promise<void>;
354
+ /**
355
+ * Sync the local main branch to exactly match upstream/main using
356
+ * `git reset --hard upstream/main`. The upstream remote must already exist.
357
+ * Idempotent: if local main already matches upstream/main, this is a no-op.
358
+ *
359
+ * @param cwd - Working directory path (inside the git repo)
360
+ * @throws GitPrError with GIT_ERROR code on failure
361
+ */
362
+ syncForkMain(cwd: string): Promise<void>;
363
+ /**
364
+ * Rebase the specified branch onto the target branch (e.g., main).
365
+ * On conflict, automatically runs `git rebase --abort` to keep the worktree clean,
366
+ * then throws GitPrError with REBASE_CONFLICT listing the conflicting files.
367
+ *
368
+ * @param cwd - Working directory of the feature worktree
369
+ * @param branch - The branch to rebase (must be checked out in cwd)
370
+ * @param onto - The target branch to rebase onto (e.g., 'main')
371
+ * @throws GitPrError with REBASE_CONFLICT code (includes conflicting file list)
372
+ * @throws GitPrError with GIT_ERROR code on other failures
373
+ */
374
+ rebase(cwd: string, branch: string, onto: string): Promise<void>;
321
375
  }
322
376
  //# sourceMappingURL=git-pr-service.interface.d.ts.map
@@ -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":"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"}
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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"}
@@ -18,6 +18,8 @@ export var GitPrErrorCode;
18
18
  GitPrErrorCode["GIT_ERROR"] = "GIT_ERROR";
19
19
  GitPrErrorCode["MERGE_FAILED"] = "MERGE_FAILED";
20
20
  GitPrErrorCode["PR_NOT_FOUND"] = "PR_NOT_FOUND";
21
+ GitPrErrorCode["REBASE_CONFLICT"] = "REBASE_CONFLICT";
22
+ GitPrErrorCode["NOT_A_FORK"] = "NOT_A_FORK";
21
23
  })(GitPrErrorCode || (GitPrErrorCode = {}));
22
24
  /**
23
25
  * Typed error for git PR operations.
@@ -50,21 +50,6 @@ export interface IWorktreeService {
50
50
  * @throws WorktreeError with appropriate code
51
51
  */
52
52
  create(repoPath: string, branch: string, worktreePath: string, startPoint?: string): Promise<WorktreeInfo>;
53
- /**
54
- * Create a worktree for an already-existing branch (no -b flag).
55
- *
56
- * Unlike create(), this does not create a new branch. It attaches a worktree
57
- * to a branch that already exists locally or as a remote tracking ref.
58
- * For remote-only branches, pass "origin/<branch>" as the branch argument
59
- * so that git automatically sets up local tracking.
60
- *
61
- * @param repoPath - Path to the git repository
62
- * @param branch - Existing branch name or remote tracking ref (e.g., "origin/my-branch")
63
- * @param worktreePath - Path for the new worktree directory
64
- * @returns Information about the created worktree
65
- * @throws WorktreeError with appropriate code
66
- */
67
- addExisting(repoPath: string, branch: string, worktreePath: string): Promise<WorktreeInfo>;
68
53
  /**
69
54
  * Remove an existing worktree.
70
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/worktree-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3F;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhD;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1D;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
1
+ {"version":3,"file":"worktree-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/worktree-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,EAAE,iBAAiB;aACvB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhD;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;;;;;OAMG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1D;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Rebase Feature Use Case
3
+ *
4
+ * Rebases a feature branch on top of the current main branch.
5
+ * When the repository is a fork, syncs local main with upstream first.
6
+ * On conflict, aborts cleanly and surfaces a GitPrError with REBASE_CONFLICT.
7
+ */
8
+ import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
9
+ import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
10
+ export interface RebaseFeatureResult {
11
+ success: boolean;
12
+ branch: string;
13
+ rebased: boolean;
14
+ }
15
+ export declare class RebaseFeatureUseCase {
16
+ private readonly featureRepo;
17
+ private readonly gitPrService;
18
+ constructor(featureRepo: IFeatureRepository, gitPrService: IGitPrService);
19
+ execute(featureId: string): Promise<RebaseFeatureResult>;
20
+ }
21
+ //# sourceMappingURL=rebase-feature.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/rebase-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAiC/D"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Rebase Feature Use Case
3
+ *
4
+ * Rebases a feature branch on top of the current main branch.
5
+ * When the repository is a fork, syncs local main with upstream first.
6
+ * On conflict, aborts cleanly and surfaces a GitPrError with REBASE_CONFLICT.
7
+ */
8
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16
+ };
17
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
18
+ return function (target, key) { decorator(target, key, paramIndex); }
19
+ };
20
+ import { injectable, inject } from 'tsyringe';
21
+ let RebaseFeatureUseCase = class RebaseFeatureUseCase {
22
+ featureRepo;
23
+ gitPrService;
24
+ constructor(featureRepo, gitPrService) {
25
+ this.featureRepo = featureRepo;
26
+ this.gitPrService = gitPrService;
27
+ }
28
+ async execute(featureId) {
29
+ const feature = (await this.featureRepo.findById(featureId)) ??
30
+ (await this.featureRepo.findByIdPrefix(featureId));
31
+ if (!feature) {
32
+ throw new Error(`Feature not found: ${featureId}`);
33
+ }
34
+ if (!feature.worktreePath) {
35
+ throw new Error(`Feature "${feature.name}" has no worktreePath. The worktree must be initialized before rebasing.`);
36
+ }
37
+ const cwd = feature.worktreePath;
38
+ const repoRoot = feature.repositoryPath;
39
+ const { isFork, upstreamUrl } = await this.gitPrService.isFork(repoRoot);
40
+ if (isFork) {
41
+ await this.gitPrService.ensureUpstreamRemote(cwd, upstreamUrl);
42
+ await this.gitPrService.syncForkMain(cwd);
43
+ }
44
+ await this.gitPrService.rebase(cwd, feature.branch, 'main');
45
+ return {
46
+ success: true,
47
+ branch: feature.branch,
48
+ rebased: true,
49
+ };
50
+ }
51
+ };
52
+ RebaseFeatureUseCase = __decorate([
53
+ injectable(),
54
+ __param(0, inject('IFeatureRepository')),
55
+ __param(1, inject('IGitPrService')),
56
+ __metadata("design:paramtypes", [Object, Object])
57
+ ], RebaseFeatureUseCase);
58
+ export { RebaseFeatureUseCase };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Sync Fork Main Use Case
3
+ *
4
+ * Syncs the local main branch with upstream/main for fork repositories.
5
+ * For non-fork repos, returns a no-op result with an informational reason.
6
+ */
7
+ import type { IGitPrService } from '../ports/output/services/git-pr-service.interface.js';
8
+ export interface SyncForkMainResult {
9
+ synced: boolean;
10
+ reason?: string;
11
+ upstreamUrl?: string;
12
+ }
13
+ export declare class SyncForkMainUseCase {
14
+ private readonly gitPrService;
15
+ constructor(gitPrService: IGitPrService);
16
+ execute(cwd: string): Promise<SyncForkMainResult>;
17
+ }
18
+ //# sourceMappingURL=sync-fork-main.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-fork-main.use-case.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/application/use-cases/sync-fork-main.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAYxD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Sync Fork Main Use Case
3
+ *
4
+ * Syncs the local main branch with upstream/main for fork repositories.
5
+ * For non-fork repos, returns a no-op result with an informational reason.
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
17
+ return function (target, key) { decorator(target, key, paramIndex); }
18
+ };
19
+ import { injectable, inject } from 'tsyringe';
20
+ let SyncForkMainUseCase = class SyncForkMainUseCase {
21
+ gitPrService;
22
+ constructor(gitPrService) {
23
+ this.gitPrService = gitPrService;
24
+ }
25
+ async execute(cwd) {
26
+ const { isFork, upstreamUrl } = await this.gitPrService.isFork(cwd);
27
+ if (!isFork) {
28
+ return { synced: false, reason: 'not-a-fork' };
29
+ }
30
+ await this.gitPrService.ensureUpstreamRemote(cwd, upstreamUrl);
31
+ await this.gitPrService.syncForkMain(cwd);
32
+ return { synced: true, upstreamUrl };
33
+ }
34
+ };
35
+ SyncForkMainUseCase = __decorate([
36
+ injectable(),
37
+ __param(0, inject('IGitPrService')),
38
+ __metadata("design:paramtypes", [Object])
39
+ ], SyncForkMainUseCase);
40
+ export { SyncForkMainUseCase };
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAqHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAqUrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAsHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAyUrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -65,7 +65,6 @@ import { ShowFeatureUseCase } from '../../application/use-cases/features/show-fe
65
65
  import { DeleteFeatureUseCase } from '../../application/use-cases/features/delete-feature.use-case.js';
66
66
  import { ResumeFeatureUseCase } from '../../application/use-cases/features/resume-feature.use-case.js';
67
67
  import { StartFeatureUseCase } from '../../application/use-cases/features/start-feature.use-case.js';
68
- import { AdoptBranchUseCase } from '../../application/use-cases/features/adopt-branch.use-case.js';
69
68
  import { GetFeatureArtifactUseCase } from '../../application/use-cases/features/get-feature-artifact.use-case.js';
70
69
  import { GetResearchArtifactUseCase } from '../../application/use-cases/features/get-research-artifact.use-case.js';
71
70
  import { GetPlanArtifactUseCase } from '../../application/use-cases/features/get-plan-artifact.use-case.js';
@@ -81,6 +80,8 @@ import { CheckAndUnblockFeaturesUseCase } from '../../application/use-cases/feat
81
80
  import { UpdateFeatureLifecycleUseCase } from '../../application/use-cases/features/update/update-feature-lifecycle.use-case.js';
82
81
  import { CleanupFeatureWorktreeUseCase } from '../../application/use-cases/features/cleanup-feature-worktree.use-case.js';
83
82
  import { UpgradeCliUseCase } from '../../application/use-cases/upgrade/upgrade-cli.use-case.js';
83
+ import { SyncForkMainUseCase } from '../../application/use-cases/sync-fork-main.use-case.js';
84
+ import { RebaseFeatureUseCase } from '../../application/use-cases/features/rebase-feature.use-case.js';
84
85
  // Session listing
85
86
  import { ClaudeCodeSessionRepository } from '../services/agents/sessions/claude-code-session.repository.js';
86
87
  import { StubSessionRepository } from '../services/agents/sessions/stub-session.repository.js';
@@ -279,7 +280,6 @@ export async function initializeContainer() {
279
280
  container.registerSingleton(DeleteFeatureUseCase);
280
281
  container.registerSingleton(ResumeFeatureUseCase);
281
282
  container.registerSingleton(StartFeatureUseCase);
282
- container.registerSingleton(AdoptBranchUseCase);
283
283
  container.registerSingleton(GetFeatureArtifactUseCase);
284
284
  container.registerSingleton(GetResearchArtifactUseCase);
285
285
  container.registerSingleton(GetPlanArtifactUseCase);
@@ -297,6 +297,8 @@ export async function initializeContainer() {
297
297
  container.registerSingleton(UpdateFeatureLifecycleUseCase);
298
298
  container.registerSingleton(CleanupFeatureWorktreeUseCase);
299
299
  container.registerSingleton(UpgradeCliUseCase);
300
+ container.registerSingleton(SyncForkMainUseCase);
301
+ container.registerSingleton(RebaseFeatureUseCase);
300
302
  // Session repositories (per-AgentType string tokens)
301
303
  container.register(`IAgentSessionRepository:${AgentType.ClaudeCode}`, {
302
304
  useFactory: () => new ClaudeCodeSessionRepository(),
@@ -330,9 +332,6 @@ export async function initializeContainer() {
330
332
  container.register('StartFeatureUseCase', {
331
333
  useFactory: (c) => c.resolve(StartFeatureUseCase),
332
334
  });
333
- container.register('AdoptBranchUseCase', {
334
- useFactory: (c) => c.resolve(AdoptBranchUseCase),
335
- });
336
335
  container.register('ApproveAgentRunUseCase', {
337
336
  useFactory: (c) => c.resolve(ApproveAgentRunUseCase),
338
337
  });
@@ -390,6 +389,12 @@ export async function initializeContainer() {
390
389
  container.register('UpgradeCliUseCase', {
391
390
  useFactory: (c) => c.resolve(UpgradeCliUseCase),
392
391
  });
392
+ container.register('SyncForkMainUseCase', {
393
+ useFactory: (c) => c.resolve(SyncForkMainUseCase),
394
+ });
395
+ container.register('RebaseFeatureUseCase', {
396
+ useFactory: (c) => c.resolve(RebaseFeatureUseCase),
397
+ });
393
398
  _initialized = true;
394
399
  return container;
395
400
  }
@@ -19,7 +19,6 @@ export declare class SQLiteFeatureRepository implements IFeatureRepository {
19
19
  findById(id: string): Promise<Feature | null>;
20
20
  findByIdPrefix(prefix: string): Promise<Feature | null>;
21
21
  findBySlug(slug: string, repositoryPath: string): Promise<Feature | null>;
22
- findByBranch(branch: string, repositoryPath: string): Promise<Feature | null>;
23
22
  list(filters?: FeatureListFilters): Promise<Feature[]>;
24
23
  findByParentId(parentId: string): Promise<Feature[]>;
25
24
  update(feature: Feature): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyBtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C"}
1
+ {"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyBtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C"}
@@ -78,14 +78,6 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
78
78
  }
79
79
  return fromDatabase(row);
80
80
  }
81
- async findByBranch(branch, repositoryPath) {
82
- const stmt = this.db.prepare("SELECT * FROM features WHERE branch = ? AND REPLACE(repository_path, '\\', '/') = ? AND deleted_at IS NULL");
83
- const row = stmt.get(branch, repositoryPath.replace(/\\/g, '/'));
84
- if (!row) {
85
- return null;
86
- }
87
- return fromDatabase(row);
88
- }
89
81
  async list(filters) {
90
82
  const conditions = [];
91
83
  const params = [];
@@ -45,5 +45,14 @@ export declare class GitPrService implements IGitPrService {
45
45
  private parseGhError;
46
46
  private parsePrNumberFromUrl;
47
47
  private parseDiffStat;
48
+ isFork(cwd: string): Promise<{
49
+ isFork: boolean;
50
+ upstreamUrl?: string;
51
+ }>;
52
+ ensureUpstreamRemote(cwd: string, upstreamUrl: string): Promise<void>;
53
+ fetchUpstream(cwd: string): Promise<void>;
54
+ syncForkMain(cwd: string): Promise<void>;
55
+ rebase(cwd: string, branch: string, onto: string): Promise<void>;
56
+ private parseConflictFiles;
48
57
  }
49
58
  //# sourceMappingURL=git-pr.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
@@ -652,6 +652,99 @@ let GitPrService = class GitPrService {
652
652
  commitCount,
653
653
  };
654
654
  }
655
+ async isFork(cwd) {
656
+ try {
657
+ const { stdout } = await this.execFile('gh', ['repo', 'view', '--json', 'parent', '--jq', '.parent.url'], { cwd });
658
+ const url = stdout.trim();
659
+ if (!url || url === 'null') {
660
+ return { isFork: false };
661
+ }
662
+ return { isFork: true, upstreamUrl: url };
663
+ }
664
+ catch {
665
+ return { isFork: false };
666
+ }
667
+ }
668
+ async ensureUpstreamRemote(cwd, upstreamUrl) {
669
+ try {
670
+ await this.execFile('git', ['remote', 'get-url', 'upstream'], { cwd });
671
+ // Remote already exists — no-op
672
+ }
673
+ catch {
674
+ // Remote does not exist — add it
675
+ try {
676
+ await this.execFile('git', ['remote', 'add', 'upstream', upstreamUrl], { cwd });
677
+ }
678
+ catch (error) {
679
+ throw this.parseGitError(error);
680
+ }
681
+ }
682
+ }
683
+ async fetchUpstream(cwd) {
684
+ try {
685
+ await this.execFile('git', ['fetch', 'upstream'], { cwd });
686
+ }
687
+ catch (error) {
688
+ throw this.parseGitError(error);
689
+ }
690
+ }
691
+ async syncForkMain(cwd) {
692
+ // Save current branch to restore after sync
693
+ let currentBranch;
694
+ try {
695
+ const { stdout } = await this.execFile('git', ['symbolic-ref', '--short', 'HEAD'], { cwd });
696
+ currentBranch = stdout.trim();
697
+ }
698
+ catch {
699
+ // Detached HEAD — save commit hash instead
700
+ const { stdout } = await this.execFile('git', ['rev-parse', 'HEAD'], { cwd });
701
+ currentBranch = stdout.trim();
702
+ }
703
+ try {
704
+ await this.fetchUpstream(cwd);
705
+ await this.execFile('git', ['checkout', 'main'], { cwd });
706
+ await this.execFile('git', ['reset', '--hard', 'upstream/main'], { cwd });
707
+ }
708
+ finally {
709
+ // Restore previous branch even if sync partially fails
710
+ try {
711
+ await this.execFile('git', ['checkout', currentBranch], { cwd });
712
+ }
713
+ catch {
714
+ // best effort — ignore restore failure
715
+ }
716
+ }
717
+ }
718
+ async rebase(cwd, branch, onto) {
719
+ try {
720
+ await this.execFile('git', ['rebase', onto], { cwd });
721
+ }
722
+ catch (error) {
723
+ // Extract stdout/stderr from the exec error to find conflict file names
724
+ const stdout = error.stdout ?? '';
725
+ const stderr = error.stderr ?? '';
726
+ const combined = `${stdout}\n${stderr}`;
727
+ const conflictFiles = this.parseConflictFiles(combined);
728
+ // Abort to keep the worktree clean
729
+ try {
730
+ await this.execFile('git', ['rebase', '--abort'], { cwd });
731
+ }
732
+ catch {
733
+ // abort is best-effort — ignore failure
734
+ }
735
+ if (conflictFiles.length > 0) {
736
+ const fileList = conflictFiles.map((f) => ` - ${f}`).join('\n');
737
+ throw new GitPrError(`Rebase of '${branch}' onto '${onto}' failed due to conflicts.\n` +
738
+ `Conflicting files:\n${fileList}\n\n` +
739
+ `Resolve the conflicts manually then re-run the rebase command.`, GitPrErrorCode.REBASE_CONFLICT, error instanceof Error ? error : undefined);
740
+ }
741
+ throw this.parseGitError(error);
742
+ }
743
+ }
744
+ parseConflictFiles(output) {
745
+ const matches = output.matchAll(/CONFLICT \(content\): Merge conflict in (.+)/g);
746
+ return [...matches].map((m) => m[1].trim());
747
+ }
655
748
  };
656
749
  GitPrService = __decorate([
657
750
  injectable(),
@@ -18,7 +18,6 @@ export declare class WorktreeService implements IWorktreeService {
18
18
  private readonly execFile;
19
19
  constructor(execFile: ExecFunction);
20
20
  create(repoPath: string, branch: string, worktreePath: string, startPoint?: string): Promise<WorktreeInfo>;
21
- addExisting(repoPath: string, branch: string, worktreePath: string): Promise<WorktreeInfo>;
22
21
  remove(repoPath: string, worktreePath: string, force?: boolean): Promise<void>;
23
22
  prune(repoPath: string): Promise<void>;
24
23
  list(repoPath: string): Promise<WorktreeInfo[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/worktree.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,0EAA0E,CAAC;AAQlF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,MAAM,KACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjD,qBACa,eAAgB,YAAW,gBAAgB;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC;IAuBlB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB1F,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAO/C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAQzD,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;CAsB9B"}
1
+ {"version":3,"file":"worktree.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/worktree.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,0EAA0E,CAAC;AAQlF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,MAAM,KACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjD,qBACa,eAAgB,YAAW,gBAAgB;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC;IAuBlB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAO/C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAQzD,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;CAsB9B"}
@@ -50,21 +50,6 @@ let WorktreeService = class WorktreeService {
50
50
  }
51
51
  return created;
52
52
  }
53
- async addExisting(repoPath, branch, worktreePath) {
54
- try {
55
- await this.execFile('git', ['worktree', 'add', worktreePath, branch], { cwd: repoPath });
56
- }
57
- catch (error) {
58
- throw this.parseGitError(error);
59
- }
60
- const worktrees = await this.list(repoPath);
61
- const created = worktrees.find((w) => w.branch === branch) ??
62
- worktrees.find((w) => this.arePathsEquivalent(w.path, worktreePath));
63
- if (!created) {
64
- throw new WorktreeError('Worktree created but not found in list', WorktreeErrorCode.GIT_ERROR);
65
- }
66
- return created;
67
- }
68
53
  async remove(repoPath, worktreePath, force) {
69
54
  try {
70
55
  const args = ['worktree', 'remove'];
@@ -20,7 +20,7 @@ import { createReviewCommand } from './review.command.js';
20
20
  import { createApproveCommand } from './approve.command.js';
21
21
  import { createRejectCommand } from './reject.command.js';
22
22
  import { createLogsCommand } from './logs.command.js';
23
- import { createAdoptCommand } from './adopt.command.js';
23
+ import { createRebaseCommand } from './rebase.command.js';
24
24
  /**
25
25
  * Create the feat command group
26
26
  */
@@ -37,5 +37,5 @@ export function createFeatCommand() {
37
37
  .addCommand(createApproveCommand())
38
38
  .addCommand(createRejectCommand())
39
39
  .addCommand(createLogsCommand())
40
- .addCommand(createAdoptCommand());
40
+ .addCommand(createRebaseCommand());
41
41
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Feature Rebase Command
3
+ *
4
+ * Rebases a feature branch on top of the current main branch.
5
+ * For fork repositories, syncs local main with upstream first.
6
+ * Aborts and surfaces conflicting file names on rebase conflict.
7
+ *
8
+ * Usage:
9
+ * shep feat rebase <feature-id>
10
+ */
11
+ import { Command } from 'commander';
12
+ export declare function createRebaseCommand(): Command;
13
+ //# sourceMappingURL=rebase.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/feat/rebase.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,IAAI,OAAO,CA4B7C"}