@shepai/cli 1.123.0-pr394.f86a739 → 1.123.0-pr396.072b95e

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 (302) 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 +68 -5
  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 +6 -4
  6. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts +0 -25
  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-on-main.use-case.d.ts +28 -0
  9. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +1 -0
  10. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +81 -0
  11. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts +16 -0
  12. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts.map +1 -0
  13. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.js +43 -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 +15 -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/agents/conflict-resolution/conflict-resolution.prompt.d.ts +35 -0
  20. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts.map +1 -0
  21. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.js +66 -0
  22. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +42 -0
  23. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +1 -0
  24. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +169 -0
  25. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +6 -0
  26. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  27. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +125 -0
  28. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts +0 -2
  29. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +0 -39
  31. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  32. package/dist/src/presentation/cli/commands/feat/index.js +1 -3
  33. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  34. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -4
  35. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  36. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +3 -12
  37. package/dist/tsconfig.build.tsbuildinfo +1 -1
  38. package/package.json +1 -1
  39. package/web/.next/BUILD_ID +1 -1
  40. package/web/.next/app-path-routes-manifest.json +0 -1
  41. package/web/.next/build-manifest.json +4 -4
  42. package/web/.next/fallback-build-manifest.json +2 -2
  43. package/web/.next/prerender-manifest.json +3 -3
  44. package/web/.next/required-server-files.js +1 -1
  45. package/web/.next/required-server-files.json +1 -1
  46. package/web/.next/routes-manifest.json +0 -6
  47. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
  48. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  49. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  52. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  53. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +2 -2
  56. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  57. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +2 -2
  60. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  61. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +2 -2
  64. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  65. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  68. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  69. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +2 -2
  72. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  73. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/page/build-manifest.json +2 -2
  76. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  77. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +2 -2
  80. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  81. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  82. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  84. package/web/.next/server/app/_global-error.html +2 -2
  85. package/web/.next/server/app/_global-error.rsc +1 -1
  86. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  87. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  88. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  89. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  90. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  92. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  93. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  94. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  95. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  96. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  97. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  98. package/web/.next/server/app/settings/page/build-manifest.json +2 -2
  99. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  100. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  101. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/skills/page/build-manifest.json +2 -2
  103. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  104. package/web/.next/server/app/skills/page.js +4 -4
  105. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  106. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  108. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  109. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  110. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  112. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  113. package/web/.next/server/app/version/page.js.nft.json +1 -1
  114. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app-paths-manifest.json +0 -1
  116. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  117. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  118. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  119. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  120. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  121. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js +3 -0
  122. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js.map +1 -0
  123. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
  124. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
  126. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js +2 -2
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js +3 -0
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js.map +1 -0
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +3 -0
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -0
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__6677a82c._.js +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__6677a82c._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js +1 -1
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
  156. package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -0
  157. package/web/.next/server/chunks/ssr/_636e9771._.js +3 -0
  158. package/web/.next/server/chunks/ssr/_636e9771._.js.map +1 -0
  159. package/web/.next/server/chunks/ssr/{_bd291dd4._.js → _67845f5e._.js} +2 -2
  160. package/web/.next/server/chunks/ssr/{_bd291dd4._.js.map → _67845f5e._.js.map} +1 -1
  161. package/web/.next/server/chunks/ssr/_6d26a08f._.js +3 -0
  162. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/_9ac70f88._.js +5 -0
  164. package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -0
  165. package/web/.next/server/chunks/ssr/_b56e7571._.js +3 -0
  166. package/web/.next/server/chunks/ssr/_b56e7571._.js.map +1 -0
  167. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_e9703421._.js +3 -0
  170. package/web/.next/server/chunks/ssr/_e9703421._.js.map +1 -0
  171. package/web/.next/server/chunks/ssr/_f1a649e3._.js +9 -0
  172. package/web/.next/server/chunks/ssr/_f1a649e3._.js.map +1 -0
  173. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  174. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js +3 -0
  176. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
  178. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
  180. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  182. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  183. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  184. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
  186. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +3 -0
  188. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -0
  189. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +3 -0
  190. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -0
  191. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  192. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  194. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web_dae4825f._.js +3 -0
  196. package/web/.next/server/chunks/ssr/src_presentation_web_dae4825f._.js.map +1 -0
  197. package/web/.next/server/middleware-build-manifest.js +2 -2
  198. package/web/.next/server/pages/500.html +2 -2
  199. package/web/.next/server/server-reference-manifest.js +1 -1
  200. package/web/.next/server/server-reference-manifest.json +34 -204
  201. package/web/.next/static/chunks/1203f53fba11a758.js +1 -0
  202. package/web/.next/static/chunks/{6ebcb8f40fde6b83.js → 2ac245ce8a08355d.js} +1 -1
  203. package/web/.next/static/chunks/303a1217006489b9.js +1 -0
  204. package/web/.next/static/chunks/3925626b99dcd57a.css +1 -0
  205. package/web/.next/static/chunks/4443ee9c7733399b.js +1 -0
  206. package/web/.next/static/chunks/5251888e599c4f97.js +1 -0
  207. package/web/.next/static/chunks/52b56677c842e45f.js +3 -0
  208. package/web/.next/static/chunks/{07973cb4a37c0c40.js → 5915ad429ee7c768.js} +1 -1
  209. package/web/.next/static/chunks/{b0e3592dff0215dc.js → 6386395c56e793a8.js} +1 -1
  210. package/web/.next/static/chunks/{ec348ad3d7e20677.js → 66fde5bc6b32d8b0.js} +2 -2
  211. package/web/.next/static/chunks/{71acbe51602d440d.js → 6bc38284b76689fb.js} +3 -3
  212. package/web/.next/static/chunks/8785635121ca5d01.js +1 -0
  213. package/web/.next/static/chunks/dbbb446493f21874.js +1 -0
  214. package/web/.next/static/chunks/{4e9bc4d7b844e342.js → de6a024df1832124.js} +1 -1
  215. package/web/.next/static/chunks/{89aac43287d73b02.js → ed3a602003bcb31b.js} +1 -1
  216. package/web/.next/static/chunks/efe5e53ee31d985b.js +1 -0
  217. package/web/.next/static/chunks/{turbopack-080e470ea902d0ba.js → turbopack-426d9bc2450816ba.js} +1 -1
  218. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +0 -49
  219. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +0 -1
  220. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +0 -188
  221. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts +0 -33
  222. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts.map +0 -1
  223. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.js +0 -77
  224. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts +0 -14
  225. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +0 -1
  226. package/dist/src/presentation/cli/commands/feat/adopt.command.js +0 -46
  227. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts +0 -10
  228. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts.map +0 -1
  229. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.js +0 -22
  230. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts +0 -11
  231. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts.map +0 -1
  232. package/dist/src/presentation/web/app/actions/adopt-branch.js +0 -20
  233. package/dist/src/presentation/web/app/actions/list-branches.d.ts +0 -6
  234. package/dist/src/presentation/web/app/actions/list-branches.d.ts.map +0 -1
  235. package/dist/src/presentation/web/app/actions/list-branches.js +0 -18
  236. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts +0 -13
  237. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts.map +0 -1
  238. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +0 -69
  239. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +0 -35
  240. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts.map +0 -1
  241. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +0 -135
  242. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts +0 -5
  243. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts.map +0 -1
  244. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.js +0 -69
  245. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/app-paths-manifest.json +0 -3
  246. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +0 -18
  247. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/next-font-manifest.json +0 -6
  248. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +0 -1
  249. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +0 -335
  250. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +0 -20
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.map +0 -5
  252. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +0 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +0 -2
  254. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js +0 -3
  255. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js.map +0 -1
  256. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js +0 -3
  257. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js.map +0 -1
  258. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js +0 -3
  259. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js.map +0 -1
  260. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js +0 -3
  261. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js.map +0 -1
  262. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js +0 -3
  263. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js.map +0 -1
  264. package/web/.next/server/chunks/ssr/_037585d1._.js +0 -3
  265. package/web/.next/server/chunks/ssr/_037585d1._.js.map +0 -1
  266. package/web/.next/server/chunks/ssr/_19a2fb35._.js +0 -3
  267. package/web/.next/server/chunks/ssr/_19a2fb35._.js.map +0 -1
  268. package/web/.next/server/chunks/ssr/_4093a637._.js +0 -5
  269. package/web/.next/server/chunks/ssr/_4093a637._.js.map +0 -1
  270. package/web/.next/server/chunks/ssr/_583a83fb._.js +0 -3
  271. package/web/.next/server/chunks/ssr/_583a83fb._.js.map +0 -1
  272. package/web/.next/server/chunks/ssr/_9f56cf8f._.js +0 -3
  273. package/web/.next/server/chunks/ssr/_9f56cf8f._.js.map +0 -1
  274. package/web/.next/server/chunks/ssr/_a187fd7e._.js +0 -3
  275. package/web/.next/server/chunks/ssr/_a187fd7e._.js.map +0 -1
  276. package/web/.next/server/chunks/ssr/_a5aa6371._.js +0 -9
  277. package/web/.next/server/chunks/ssr/_a5aa6371._.js.map +0 -1
  278. package/web/.next/server/chunks/ssr/_a9f57758._.js +0 -3
  279. package/web/.next/server/chunks/ssr/_a9f57758._.js.map +0 -1
  280. package/web/.next/server/chunks/ssr/_af7ec14e._.js +0 -3
  281. package/web/.next/server/chunks/ssr/_af7ec14e._.js.map +0 -1
  282. package/web/.next/server/chunks/ssr/_d5206f22._.js +0 -4
  283. package/web/.next/server/chunks/ssr/_d5206f22._.js.map +0 -1
  284. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +0 -3
  285. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +0 -1
  286. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js +0 -3
  287. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js.map +0 -1
  288. package/web/.next/server/chunks/ssr/src_presentation_web_d19182cb._.js +0 -3
  289. package/web/.next/server/chunks/ssr/src_presentation_web_d19182cb._.js.map +0 -1
  290. package/web/.next/static/chunks/15665b473febf97f.js +0 -1
  291. package/web/.next/static/chunks/3e3e9c6552a6574f.css +0 -1
  292. package/web/.next/static/chunks/5f4d4edcd476f2df.js +0 -1
  293. package/web/.next/static/chunks/6295f27fe47da052.js +0 -1
  294. package/web/.next/static/chunks/688689aa17b96e5d.js +0 -1
  295. package/web/.next/static/chunks/77be7fb4731d37a0.js +0 -1
  296. package/web/.next/static/chunks/8080c842b0358904.js +0 -1
  297. package/web/.next/static/chunks/a8ba3f3e2b0f87aa.js +0 -1
  298. package/web/.next/static/chunks/b014c7d70d2c71ed.js +0 -1
  299. package/web/.next/static/chunks/d04de4be30ab78ca.js +0 -3
  300. /package/web/.next/static/{oFYfLIWkGEGaI30kH8DXG → i2lq44hDYaSB92Rt1Tjnm}/_buildManifest.js +0 -0
  301. /package/web/.next/static/{oFYfLIWkGEGaI30kH8DXG → i2lq44hDYaSB92Rt1Tjnm}/_clientMiddlewareManifest.json +0 -0
  302. /package/web/.next/static/{oFYfLIWkGEGaI30kH8DXG → i2lq44hDYaSB92Rt1Tjnm}/_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"}
@@ -9,15 +9,17 @@ import type { PrStatus } from '../../../../domain/generated/output.js';
9
9
  * Error codes for git PR operations.
10
10
  */
11
11
  export declare enum GitPrErrorCode {
12
- MERGE_CONFLICT = "MERGE_CONFLICT",
13
12
  AUTH_FAILURE = "AUTH_FAILURE",
14
- GH_NOT_FOUND = "GH_NOT_FOUND",
15
- NETWORK_ERROR = "NETWORK_ERROR",
16
- CI_TIMEOUT = "CI_TIMEOUT",
17
13
  BRANCH_NOT_FOUND = "BRANCH_NOT_FOUND",
14
+ CI_TIMEOUT = "CI_TIMEOUT",
15
+ GH_NOT_FOUND = "GH_NOT_FOUND",
18
16
  GIT_ERROR = "GIT_ERROR",
17
+ MERGE_CONFLICT = "MERGE_CONFLICT",
19
18
  MERGE_FAILED = "MERGE_FAILED",
20
- PR_NOT_FOUND = "PR_NOT_FOUND"
19
+ NETWORK_ERROR = "NETWORK_ERROR",
20
+ PR_NOT_FOUND = "PR_NOT_FOUND",
21
+ REBASE_CONFLICT = "REBASE_CONFLICT",
22
+ SYNC_FAILED = "SYNC_FAILED"
21
23
  }
22
24
  /**
23
25
  * Typed error for git PR operations.
@@ -318,5 +320,66 @@ 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
+ * Fast-forward the local base branch to match its remote counterpart.
325
+ * If currently on the base branch, uses `git pull --ff-only`.
326
+ * If on a different branch, uses `git fetch origin <baseBranch>:<baseBranch>`.
327
+ *
328
+ * @param cwd - Working directory path
329
+ * @param baseBranch - The base branch to sync (e.g. "main")
330
+ * @throws GitPrError with SYNC_FAILED code if the branch has diverged and cannot fast-forward
331
+ * @throws GitPrError with GIT_ERROR code on other git failures
332
+ */
333
+ syncMain(cwd: string, baseBranch: string): Promise<void>;
334
+ /**
335
+ * Rebase the feature branch onto the latest base branch.
336
+ * Checks for dirty worktree before starting. Detects conflict state
337
+ * from git exit code and stderr — throws REBASE_CONFLICT if conflicts
338
+ * are encountered (caller is responsible for resolution or abort).
339
+ *
340
+ * @param cwd - Working directory path
341
+ * @param featureBranch - The feature branch to rebase
342
+ * @param baseBranch - The base branch to rebase onto
343
+ * @throws GitPrError with GIT_ERROR code if the worktree is dirty
344
+ * @throws GitPrError with REBASE_CONFLICT code if conflicts are detected
345
+ * @throws GitPrError with BRANCH_NOT_FOUND code if a branch does not exist
346
+ */
347
+ rebaseOnMain(cwd: string, featureBranch: string, baseBranch: string): Promise<void>;
348
+ /**
349
+ * Get the list of files with unresolved conflicts (unmerged paths).
350
+ * Uses `git diff --name-only --diff-filter=U` to identify conflicted files.
351
+ *
352
+ * @param cwd - Working directory path
353
+ * @returns Array of file paths with unresolved conflicts
354
+ * @throws GitPrError with GIT_ERROR code on failure
355
+ */
356
+ getConflictedFiles(cwd: string): Promise<string[]>;
357
+ /**
358
+ * Stage specific files in the working directory.
359
+ * Uses `git add` for the specified file paths.
360
+ *
361
+ * @param cwd - Working directory path
362
+ * @param files - Array of file paths to stage
363
+ * @throws GitPrError with GIT_ERROR code on failure
364
+ */
365
+ stageFiles(cwd: string, files: string[]): Promise<void>;
366
+ /**
367
+ * Continue an in-progress rebase after conflicts have been resolved.
368
+ * Runs `git rebase --continue`. May throw REBASE_CONFLICT if the next
369
+ * commit in the rebase also has conflicts.
370
+ *
371
+ * @param cwd - Working directory path
372
+ * @throws GitPrError with REBASE_CONFLICT code if new conflicts are detected
373
+ * @throws GitPrError with GIT_ERROR code on other git failures
374
+ */
375
+ rebaseContinue(cwd: string): Promise<void>;
376
+ /**
377
+ * Abort an in-progress rebase, restoring the branch to its pre-rebase state.
378
+ * Runs `git rebase --abort`.
379
+ *
380
+ * @param cwd - Working directory path
381
+ * @throws GitPrError with GIT_ERROR code on failure
382
+ */
383
+ rebaseAbort(cwd: string): Promise<void>;
321
384
  }
322
385
  //# 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":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;GAEG;AACH,oBAAY,cAAc;IACxB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;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;;;;;;;;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;;;;;;;OAOG;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;CACnG"}
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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"}
@@ -9,15 +9,17 @@
9
9
  */
10
10
  export var GitPrErrorCode;
11
11
  (function (GitPrErrorCode) {
12
- GitPrErrorCode["MERGE_CONFLICT"] = "MERGE_CONFLICT";
13
12
  GitPrErrorCode["AUTH_FAILURE"] = "AUTH_FAILURE";
14
- GitPrErrorCode["GH_NOT_FOUND"] = "GH_NOT_FOUND";
15
- GitPrErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
16
- GitPrErrorCode["CI_TIMEOUT"] = "CI_TIMEOUT";
17
13
  GitPrErrorCode["BRANCH_NOT_FOUND"] = "BRANCH_NOT_FOUND";
14
+ GitPrErrorCode["CI_TIMEOUT"] = "CI_TIMEOUT";
15
+ GitPrErrorCode["GH_NOT_FOUND"] = "GH_NOT_FOUND";
18
16
  GitPrErrorCode["GIT_ERROR"] = "GIT_ERROR";
17
+ GitPrErrorCode["MERGE_CONFLICT"] = "MERGE_CONFLICT";
19
18
  GitPrErrorCode["MERGE_FAILED"] = "MERGE_FAILED";
19
+ GitPrErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
20
20
  GitPrErrorCode["PR_NOT_FOUND"] = "PR_NOT_FOUND";
21
+ GitPrErrorCode["REBASE_CONFLICT"] = "REBASE_CONFLICT";
22
+ GitPrErrorCode["SYNC_FAILED"] = "SYNC_FAILED";
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
  *
@@ -113,16 +98,6 @@ export interface IWorktreeService {
113
98
  * @returns Computed worktree path (e.g., /repo/.worktrees/branch-name)
114
99
  */
115
100
  getWorktreePath(repoPath: string, branch: string): string;
116
- /**
117
- * List all local and remote branch names in a repository.
118
- *
119
- * Returns unique branch names (without remote prefixes like "origin/").
120
- * Excludes HEAD pointers and the current branch marker.
121
- *
122
- * @param repoPath - Path to the git repository
123
- * @returns Array of branch name strings
124
- */
125
- listBranches(repoPath: string): Promise<string[]>;
126
101
  /**
127
102
  * Prune stale worktree entries whose directories no longer exist.
128
103
  *
@@ -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;;;;;;;;OAQG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAElD;;;;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,28 @@
1
+ /**
2
+ * Rebase Feature on Main Use Case
3
+ *
4
+ * Rebases a feature branch onto the latest main branch with auto-sync
5
+ * and agent-powered conflict resolution.
6
+ *
7
+ * Flow: resolve feature → determine cwd (worktree or repo root) →
8
+ * sync main → rebase → on conflict, delegate to ConflictResolutionService.
9
+ */
10
+ import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
11
+ import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
12
+ import type { IWorktreeService } from '../../ports/output/services/worktree-service.interface.js';
13
+ import type { ConflictResolutionService } from '../../../infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js';
14
+ export declare class RebaseFeatureOnMainUseCase {
15
+ private readonly featureRepo;
16
+ private readonly gitPrService;
17
+ private readonly worktreeService;
18
+ private readonly conflictResolutionService;
19
+ constructor(featureRepo: IFeatureRepository, gitPrService: IGitPrService, worktreeService: IWorktreeService, conflictResolutionService: ConflictResolutionService);
20
+ execute(featureId: string): Promise<void>;
21
+ /**
22
+ * Resolve the correct working directory for the feature.
23
+ * Uses the worktree path if a worktree exists for this branch,
24
+ * otherwise falls back to the repository root.
25
+ */
26
+ private resolveCwd;
27
+ }
28
+ //# sourceMappingURL=rebase-feature-on-main.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase-feature-on-main.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,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;AAE5I,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;gBANzB,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB,EAEjC,yBAAyB,EAAE,yBAAyB;IAGjE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/C;;;;OAIG;YACW,UAAU;CAOzB"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Rebase Feature on Main Use Case
3
+ *
4
+ * Rebases a feature branch onto the latest main branch with auto-sync
5
+ * and agent-powered conflict resolution.
6
+ *
7
+ * Flow: resolve feature → determine cwd (worktree or repo root) →
8
+ * sync main → rebase → on conflict, delegate to ConflictResolutionService.
9
+ */
10
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
11
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13
+ 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;
14
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15
+ };
16
+ var __metadata = (this && this.__metadata) || function (k, v) {
17
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18
+ };
19
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
20
+ return function (target, key) { decorator(target, key, paramIndex); }
21
+ };
22
+ import { injectable, inject } from 'tsyringe';
23
+ import { GitPrError, GitPrErrorCode, } from '../../ports/output/services/git-pr-service.interface.js';
24
+ let RebaseFeatureOnMainUseCase = class RebaseFeatureOnMainUseCase {
25
+ featureRepo;
26
+ gitPrService;
27
+ worktreeService;
28
+ conflictResolutionService;
29
+ constructor(featureRepo, gitPrService, worktreeService, conflictResolutionService) {
30
+ this.featureRepo = featureRepo;
31
+ this.gitPrService = gitPrService;
32
+ this.worktreeService = worktreeService;
33
+ this.conflictResolutionService = conflictResolutionService;
34
+ }
35
+ async execute(featureId) {
36
+ // Resolve feature by exact ID or prefix
37
+ const feature = (await this.featureRepo.findById(featureId)) ??
38
+ (await this.featureRepo.findByIdPrefix(featureId));
39
+ if (!feature) {
40
+ throw new Error(`Feature not found: "${featureId}"`);
41
+ }
42
+ // Determine working directory — worktree path if it exists, else repo root
43
+ const cwd = await this.resolveCwd(feature.repositoryPath, feature.branch);
44
+ const defaultBranch = await this.gitPrService.getDefaultBranch(feature.repositoryPath);
45
+ // Auto-sync main before rebasing (per spec decision)
46
+ await this.gitPrService.syncMain(cwd, defaultBranch);
47
+ // Attempt rebase
48
+ try {
49
+ await this.gitPrService.rebaseOnMain(cwd, feature.branch, defaultBranch);
50
+ }
51
+ catch (error) {
52
+ if (error instanceof GitPrError && error.code === GitPrErrorCode.REBASE_CONFLICT) {
53
+ // Delegate to agent-powered conflict resolution
54
+ await this.conflictResolutionService.resolve(cwd, feature.branch, defaultBranch);
55
+ return;
56
+ }
57
+ throw error;
58
+ }
59
+ }
60
+ /**
61
+ * Resolve the correct working directory for the feature.
62
+ * Uses the worktree path if a worktree exists for this branch,
63
+ * otherwise falls back to the repository root.
64
+ */
65
+ async resolveCwd(repositoryPath, branch) {
66
+ const hasWorktree = await this.worktreeService.exists(repositoryPath, branch);
67
+ if (hasWorktree) {
68
+ return this.worktreeService.getWorktreePath(repositoryPath, branch);
69
+ }
70
+ return repositoryPath;
71
+ }
72
+ };
73
+ RebaseFeatureOnMainUseCase = __decorate([
74
+ injectable(),
75
+ __param(0, inject('IFeatureRepository')),
76
+ __param(1, inject('IGitPrService')),
77
+ __param(2, inject('IWorktreeService')),
78
+ __param(3, inject('ConflictResolutionService')),
79
+ __metadata("design:paramtypes", [Object, Object, Object, Function])
80
+ ], RebaseFeatureOnMainUseCase);
81
+ export { RebaseFeatureOnMainUseCase };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Sync Repository Main Use Case
3
+ *
4
+ * Syncs a repository's local main branch with the remote.
5
+ * Resolves the repository by ID, determines its path and default branch,
6
+ * then delegates to IGitPrService.syncMain().
7
+ */
8
+ import type { IRepositoryRepository } from '../../ports/output/repositories/repository-repository.interface.js';
9
+ import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
10
+ export declare class SyncRepositoryMainUseCase {
11
+ private readonly repositoryRepo;
12
+ private readonly gitPrService;
13
+ constructor(repositoryRepo: IRepositoryRepository, gitPrService: IGitPrService);
14
+ execute(repoId: string): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=sync-repository-main.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-repository-main.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa;IAGxC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7C"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Sync Repository Main Use Case
3
+ *
4
+ * Syncs a repository's local main branch with the remote.
5
+ * Resolves the repository by ID, determines its path and default branch,
6
+ * then delegates to IGitPrService.syncMain().
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 SyncRepositoryMainUseCase = class SyncRepositoryMainUseCase {
22
+ repositoryRepo;
23
+ gitPrService;
24
+ constructor(repositoryRepo, gitPrService) {
25
+ this.repositoryRepo = repositoryRepo;
26
+ this.gitPrService = gitPrService;
27
+ }
28
+ async execute(repoId) {
29
+ const repository = await this.repositoryRepo.findById(repoId);
30
+ if (!repository) {
31
+ throw new Error(`Repository not found: "${repoId}"`);
32
+ }
33
+ const defaultBranch = await this.gitPrService.getDefaultBranch(repository.path);
34
+ await this.gitPrService.syncMain(repository.path, defaultBranch);
35
+ }
36
+ };
37
+ SyncRepositoryMainUseCase = __decorate([
38
+ injectable(),
39
+ __param(0, inject('IRepositoryRepository')),
40
+ __param(1, inject('IGitPrService')),
41
+ __metadata("design:paramtypes", [Object, Object])
42
+ ], SyncRepositoryMainUseCase);
43
+ export { SyncRepositoryMainUseCase };
@@ -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;AAuHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CA6UrE;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,9 @@ 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 { SyncRepositoryMainUseCase } from '../../application/use-cases/repositories/sync-repository-main.use-case.js';
84
+ import { RebaseFeatureOnMainUseCase } from '../../application/use-cases/features/rebase-feature-on-main.use-case.js';
85
+ import { ConflictResolutionService } from '../services/agents/conflict-resolution/conflict-resolution.service.js';
84
86
  // Session listing
85
87
  import { ClaudeCodeSessionRepository } from '../services/agents/sessions/claude-code-session.repository.js';
86
88
  import { StubSessionRepository } from '../services/agents/sessions/stub-session.repository.js';
@@ -279,7 +281,6 @@ export async function initializeContainer() {
279
281
  container.registerSingleton(DeleteFeatureUseCase);
280
282
  container.registerSingleton(ResumeFeatureUseCase);
281
283
  container.registerSingleton(StartFeatureUseCase);
282
- container.registerSingleton(AdoptBranchUseCase);
283
284
  container.registerSingleton(GetFeatureArtifactUseCase);
284
285
  container.registerSingleton(GetResearchArtifactUseCase);
285
286
  container.registerSingleton(GetPlanArtifactUseCase);
@@ -297,6 +298,12 @@ export async function initializeContainer() {
297
298
  container.registerSingleton(UpdateFeatureLifecycleUseCase);
298
299
  container.registerSingleton(CleanupFeatureWorktreeUseCase);
299
300
  container.registerSingleton(UpgradeCliUseCase);
301
+ container.registerSingleton(ConflictResolutionService);
302
+ container.register('ConflictResolutionService', {
303
+ useFactory: (c) => c.resolve(ConflictResolutionService),
304
+ });
305
+ container.registerSingleton(SyncRepositoryMainUseCase);
306
+ container.registerSingleton(RebaseFeatureOnMainUseCase);
300
307
  // Session repositories (per-AgentType string tokens)
301
308
  container.register(`IAgentSessionRepository:${AgentType.ClaudeCode}`, {
302
309
  useFactory: () => new ClaudeCodeSessionRepository(),
@@ -330,9 +337,6 @@ export async function initializeContainer() {
330
337
  container.register('StartFeatureUseCase', {
331
338
  useFactory: (c) => c.resolve(StartFeatureUseCase),
332
339
  });
333
- container.register('AdoptBranchUseCase', {
334
- useFactory: (c) => c.resolve(AdoptBranchUseCase),
335
- });
336
340
  container.register('ApproveAgentRunUseCase', {
337
341
  useFactory: (c) => c.resolve(ApproveAgentRunUseCase),
338
342
  });
@@ -390,6 +394,12 @@ export async function initializeContainer() {
390
394
  container.register('UpgradeCliUseCase', {
391
395
  useFactory: (c) => c.resolve(UpgradeCliUseCase),
392
396
  });
397
+ container.register('SyncRepositoryMainUseCase', {
398
+ useFactory: (c) => c.resolve(SyncRepositoryMainUseCase),
399
+ });
400
+ container.register('RebaseFeatureOnMainUseCase', {
401
+ useFactory: (c) => c.resolve(RebaseFeatureOnMainUseCase),
402
+ });
393
403
  _initialized = true;
394
404
  return container;
395
405
  }
@@ -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 = [];
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Conflict Resolution Prompt Builder
3
+ *
4
+ * Builds prompts for the AI agent to resolve git rebase conflicts.
5
+ * Follows the merge-prompts.ts pattern of pure functions returning
6
+ * markdown strings.
7
+ */
8
+ export interface ConflictedFile {
9
+ /** Relative file path from repo root */
10
+ path: string;
11
+ /** Full file contents including conflict markers */
12
+ content: string;
13
+ }
14
+ export interface ConflictResolutionPromptParams {
15
+ /** Files with conflict markers */
16
+ conflictedFiles: ConflictedFile[];
17
+ /** The feature branch being rebased */
18
+ featureBranch: string;
19
+ /** The base branch being rebased onto */
20
+ baseBranch: string;
21
+ /** 1-based attempt number */
22
+ attemptNumber: number;
23
+ /** Maximum allowed attempts */
24
+ maxAttempts: number;
25
+ /** Feedback from previous failed attempt (remaining markers info) */
26
+ previousFeedback?: string;
27
+ }
28
+ /**
29
+ * Build a prompt for the conflict resolution agent.
30
+ *
31
+ * The agent receives conflicted file contents and instructions to resolve
32
+ * all conflict markers by editing files in the working directory.
33
+ */
34
+ export declare function buildConflictResolutionPrompt(params: ConflictResolutionPromptParams): string;
35
+ //# sourceMappingURL=conflict-resolution.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-resolution.prompt.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,kCAAkC;IAClC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,8BAA8B,GAAG,MAAM,CAgE5F"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Conflict Resolution Prompt Builder
3
+ *
4
+ * Builds prompts for the AI agent to resolve git rebase conflicts.
5
+ * Follows the merge-prompts.ts pattern of pure functions returning
6
+ * markdown strings.
7
+ */
8
+ /**
9
+ * Build a prompt for the conflict resolution agent.
10
+ *
11
+ * The agent receives conflicted file contents and instructions to resolve
12
+ * all conflict markers by editing files in the working directory.
13
+ */
14
+ export function buildConflictResolutionPrompt(params) {
15
+ const { conflictedFiles, featureBranch, baseBranch, attemptNumber, maxAttempts, previousFeedback, } = params;
16
+ const fileSection = conflictedFiles
17
+ .map((f) => `### \`${f.path}\`
18
+
19
+ \`\`\`
20
+ ${f.content}
21
+ \`\`\``)
22
+ .join('\n\n');
23
+ const feedbackSection = previousFeedback
24
+ ? `
25
+ ## Previous Attempt Feedback
26
+
27
+ Your previous resolution attempt (${attemptNumber - 1}/${maxAttempts}) was incomplete:
28
+
29
+ ${previousFeedback}
30
+
31
+ You MUST resolve all remaining conflict markers in this attempt.
32
+ `
33
+ : '';
34
+ return `You are resolving git rebase conflicts (attempt ${attemptNumber}/${maxAttempts}).
35
+
36
+ ## Branch Context
37
+
38
+ - Feature branch: \`${featureBranch}\`
39
+ - Base branch: \`${baseBranch}\`
40
+ - The feature branch is being rebased onto the latest \`${baseBranch}\`.
41
+ ${feedbackSection}
42
+ ## Conflicted Files
43
+
44
+ The following files contain conflict markers that must be resolved:
45
+
46
+ ${fileSection}
47
+
48
+ ## Instructions
49
+
50
+ 1. Read each conflicted file listed above
51
+ 2. Resolve ALL conflict markers (\`<<<<<<<\`, \`=======\`, \`>>>>>>>\`) by editing the files
52
+ 3. For each conflict, determine the correct resolution by understanding the intent of both sides:
53
+ - The \`<<<<<<< HEAD\` section contains changes from \`${baseBranch}\` (theirs during rebase)
54
+ - The \`>>>>>>> ...\` section contains changes from \`${featureBranch}\` (ours during rebase)
55
+ 4. Produce a merged result that preserves the intent of both sides where possible
56
+ 5. If the changes conflict logically (not just textually), prefer the feature branch changes but ensure compatibility with the base branch
57
+
58
+ ## Constraints
59
+
60
+ - Edit ONLY the conflicted files listed above — do NOT modify any other files
61
+ - Remove ALL conflict markers (\`<<<<<<<\`, \`=======\`, \`>>>>>>>\`) from every conflicted file
62
+ - Do NOT add new files or delete files
63
+ - Do NOT run git commands — only edit files to resolve conflicts
64
+ - Do NOT run tests, builds, or linters — only resolve the conflict markers
65
+ - Every conflicted file must have zero remaining conflict markers when you are done`;
66
+ }