@shepai/cli 1.129.2-pr396.29a046b → 1.129.2-pr409.8d19a07

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 (231) hide show
  1. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +34 -72
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +6 -6
  4. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts +28 -0
  5. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts.map +1 -0
  6. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.js +63 -0
  7. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/di/container.js +5 -15
  9. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +5 -6
  10. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +32 -134
  12. package/dist/src/presentation/cli/commands/repo/index.d.ts +4 -3
  13. package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
  14. package/dist/src/presentation/cli/commands/repo/index.js +7 -4
  15. package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts +12 -0
  16. package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts.map +1 -0
  17. package/dist/src/presentation/cli/commands/repo/init-remote.command.js +60 -0
  18. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +1 -2
  20. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  21. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +4 -4
  22. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts +0 -4
  23. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.js +1 -32
  25. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +1 -4
  26. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +2 -2
  28. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +1 -4
  29. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +3 -8
  31. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +0 -6
  32. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +0 -30
  34. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.stories.js +0 -3
  36. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +3 -3
  38. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +1 -1
  39. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts +0 -4
  40. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.d.ts.map +1 -1
  41. package/dist/src/presentation/web/components/common/repository-node/use-repository-actions.js +0 -11
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/web/.next/BUILD_ID +1 -1
  45. package/web/.next/build-manifest.json +2 -2
  46. package/web/.next/fallback-build-manifest.json +2 -2
  47. package/web/.next/prerender-manifest.json +3 -3
  48. package/web/.next/required-server-files.js +1 -1
  49. package/web/.next/required-server-files.json +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +48 -63
  51. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  52. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +48 -63
  55. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +60 -90
  59. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +60 -90
  63. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  64. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +44 -59
  67. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +48 -63
  71. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  72. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +60 -90
  75. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  76. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +60 -90
  79. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  80. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +44 -59
  83. package/web/.next/server/app/(dashboard)/page.js +1 -1
  84. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  85. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +44 -59
  87. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  88. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/_global-error.html +2 -2
  91. package/web/.next/server/app/_global-error.rsc +1 -1
  92. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  93. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  94. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  98. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  100. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  101. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  102. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  103. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  104. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  106. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  107. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  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/server-reference-manifest.json +3 -3
  112. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  114. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +3 -0
  115. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -0
  116. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  117. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +3 -0
  119. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -0
  120. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +3 -0
  121. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -0
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__2f886f77._.js +2 -2
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__60684242._.js +2 -2
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__755cfe02._.js +3 -0
  132. package/web/.next/server/chunks/ssr/{[root-of-the-server]__30f59daf._.js.map → [root-of-the-server]__755cfe02._.js.map} +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js +3 -0
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js.map +1 -0
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js +3 -0
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js.map +1 -0
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3ab8422._.js +3 -0
  140. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0005fa7f._.js.map → [root-of-the-server]__c3ab8422._.js.map} +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js +2 -2
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
  144. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/{_54973759._.js → _55644af9._.js} +2 -2
  146. package/web/.next/server/chunks/ssr/{_54973759._.js.map → _55644af9._.js.map} +1 -1
  147. package/web/.next/server/chunks/ssr/{_4d0f7251._.js → _6a5242a0._.js} +2 -2
  148. package/web/.next/server/chunks/ssr/_6a5242a0._.js.map +1 -0
  149. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  150. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  153. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  155. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  157. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  159. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/{src_presentation_web_ff4f5c85._.js → src_presentation_web_0cd3a74c._.js} +2 -2
  161. package/web/.next/server/chunks/ssr/{src_presentation_web_ff4f5c85._.js.map → src_presentation_web_0cd3a74c._.js.map} +1 -1
  162. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +5 -0
  163. package/web/.next/server/chunks/ssr/{src_presentation_web_16204651._.js.map → src_presentation_web_8e7fe0d1._.js.map} +1 -1
  164. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +3 -0
  165. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -0
  166. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  167. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  168. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  169. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +5 -0
  171. package/web/.next/server/chunks/ssr/{src_presentation_web_a1e81e83._.js.map → src_presentation_web_b9023017._.js.map} +1 -1
  172. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  173. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  175. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  176. package/web/.next/server/pages/500.html +2 -2
  177. package/web/.next/server/server-reference-manifest.js +1 -1
  178. package/web/.next/server/server-reference-manifest.json +296 -410
  179. package/web/.next/static/chunks/1723a9aeba25ddfc.js +1 -0
  180. package/web/.next/static/chunks/{45aed33c09f2fa49.js → 1ab3b92cd374a624.js} +1 -1
  181. package/web/.next/static/chunks/{41da6886a7e12ed0.js → 1add8a70b4b40ed8.js} +1 -1
  182. package/web/.next/static/chunks/{ebc8e49ca8e30930.js → 1ce11c79ca2e7585.js} +1 -1
  183. package/web/.next/static/chunks/{6824f70fd5a25f49.js → 2458356d72e6fa9c.js} +2 -2
  184. package/web/.next/static/chunks/{727c77542ce6b900.js → 245f409ea7548b7f.js} +1 -1
  185. package/web/.next/static/chunks/{570ce910d5621970.js → 38d77ab6a534ec87.js} +1 -1
  186. package/web/.next/static/chunks/{f0cc9c9ee8a03ec6.js → 5aece62660a857db.js} +1 -1
  187. package/web/.next/static/chunks/{419c19462c0cf858.js → 712d4b9e22d0ff38.js} +1 -1
  188. package/web/.next/static/chunks/{6865e7df610c998d.js → 8d9cc59c9c6bb985.js} +1 -1
  189. package/web/.next/static/chunks/{69a7f3e262affa5b.js → 96813f0a8d002ad2.js} +1 -1
  190. package/web/.next/static/chunks/{175ca7ea02d97f30.js → e04aa97306bb4fcc.js} +1 -1
  191. package/web/.next/static/chunks/eb9841ec4d80af01.js +1 -0
  192. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts +0 -28
  193. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +0 -1
  194. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +0 -81
  195. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts +0 -16
  196. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.d.ts.map +0 -1
  197. package/dist/packages/core/src/application/use-cases/repositories/sync-repository-main.use-case.js +0 -43
  198. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts +0 -35
  199. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts.map +0 -1
  200. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.js +0 -66
  201. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +0 -42
  202. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +0 -1
  203. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +0 -169
  204. package/dist/src/presentation/web/app/actions/rebase-feature.d.ts +0 -5
  205. package/dist/src/presentation/web/app/actions/rebase-feature.d.ts.map +0 -1
  206. package/dist/src/presentation/web/app/actions/rebase-feature.js +0 -16
  207. package/dist/src/presentation/web/app/actions/sync-repository.d.ts +0 -5
  208. package/dist/src/presentation/web/app/actions/sync-repository.d.ts.map +0 -1
  209. package/dist/src/presentation/web/app/actions/sync-repository.js +0 -16
  210. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_99e84975.js +0 -3
  211. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_99e84975.js.map +0 -1
  212. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_accb29f0.js +0 -3
  213. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_accb29f0.js.map +0 -1
  214. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6a57c3a1.js +0 -3
  215. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6a57c3a1.js.map +0 -1
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__0005fa7f._.js +0 -3
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__2e4a6b80._.js +0 -3
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__2e4a6b80._.js.map +0 -1
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__30f59daf._.js +0 -3
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__c001183f._.js +0 -3
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__c001183f._.js.map +0 -1
  222. package/web/.next/server/chunks/ssr/_4d0f7251._.js.map +0 -1
  223. package/web/.next/server/chunks/ssr/src_presentation_web_16204651._.js +0 -5
  224. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_02d24048.js +0 -3
  225. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_02d24048.js.map +0 -1
  226. package/web/.next/server/chunks/ssr/src_presentation_web_a1e81e83._.js +0 -5
  227. package/web/.next/static/chunks/4b51f8f4e49665b8.js +0 -1
  228. package/web/.next/static/chunks/9b8cfca143672135.js +0 -1
  229. /package/web/.next/static/{bAZScD4F_X6c2j5gmVUlR → yR1bDX4dtrRDAU5sWcjYr}/_buildManifest.js +0 -0
  230. /package/web/.next/static/{bAZScD4F_X6c2j5gmVUlR → yR1bDX4dtrRDAU5sWcjYr}/_clientMiddlewareManifest.json +0 -0
  231. /package/web/.next/static/{bAZScD4F_X6c2j5gmVUlR → yR1bDX4dtrRDAU5sWcjYr}/_ssgManifest.js +0 -0
@@ -1,42 +0,0 @@
1
- /**
2
- * Conflict Resolution Service
3
- *
4
- * Orchestrates agent-powered conflict resolution during git rebase.
5
- * Follows the CI watch/fix loop pattern: detect conflict → invoke agent →
6
- * validate resolution → stage files → continue rebase, with retry logic.
7
- */
8
- import type { IAgentExecutorProvider } from '../../../../application/ports/output/agents/agent-executor-provider.interface.js';
9
- import type { IGitPrService } from '../../../../application/ports/output/services/git-pr-service.interface.js';
10
- export declare class ConflictResolutionService {
11
- private readonly agentProvider;
12
- private readonly gitPrService;
13
- constructor(agentProvider: IAgentExecutorProvider, gitPrService: IGitPrService);
14
- /**
15
- * Resolve all conflicts during a rebase operation.
16
- *
17
- * Handles multi-commit rebases where each commit may introduce conflicts.
18
- * For each conflicted commit: reads conflicted files, invokes agent to
19
- * resolve, validates no remaining markers, stages resolved files, and
20
- * continues the rebase. Retries up to MAX_RETRIES_PER_COMMIT times.
21
- *
22
- * If retries are exhausted, aborts the rebase and throws REBASE_CONFLICT.
23
- *
24
- * @param cwd - Working directory (repo root or worktree path)
25
- * @param featureBranch - Feature branch being rebased
26
- * @param baseBranch - Base branch being rebased onto
27
- */
28
- resolve(cwd: string, featureBranch: string, baseBranch: string): Promise<void>;
29
- /**
30
- * Read the contents of conflicted files from the working directory.
31
- */
32
- private readConflictedFileContents;
33
- /**
34
- * Validate that no conflict markers remain in the previously-conflicted files.
35
- */
36
- private validateResolution;
37
- /**
38
- * Build feedback about remaining conflict markers for retry attempts.
39
- */
40
- private buildFeedbackFromRemainingMarkers;
41
- }
42
- //# sourceMappingURL=conflict-resolution.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conflict-resolution.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wEAAwE,CAAC;AACrH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iEAAiE,CAAC;AAerG,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,aAAa,EAAE,sBAAsB,EAErC,YAAY,EAAE,aAAa;IAG9C;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEpF;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,iCAAiC;CAyB1C"}
@@ -1,169 +0,0 @@
1
- /**
2
- * Conflict Resolution Service
3
- *
4
- * Orchestrates agent-powered conflict resolution during git rebase.
5
- * Follows the CI watch/fix loop pattern: detect conflict → invoke agent →
6
- * validate resolution → stage files → continue rebase, with retry logic.
7
- */
8
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
- return c > 3 && r && Object.defineProperty(target, key, r), r;
13
- };
14
- var __metadata = (this && this.__metadata) || function (k, v) {
15
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16
- };
17
- var __param = (this && this.__param) || function (paramIndex, decorator) {
18
- return function (target, key) { decorator(target, key, paramIndex); }
19
- };
20
- import { injectable, inject } from 'tsyringe';
21
- import { readFileSync } from 'node:fs';
22
- import { join } from 'node:path';
23
- import { GitPrError, GitPrErrorCode, } from '../../../../application/ports/output/services/git-pr-service.interface.js';
24
- import { buildConflictResolutionPrompt, } from './conflict-resolution.prompt.js';
25
- const MAX_RETRIES_PER_COMMIT = 3;
26
- /** Conflict markers that indicate unresolved conflicts */
27
- const CONFLICT_MARKERS = ['<<<<<<<', '=======', '>>>>>>>'];
28
- let ConflictResolutionService = class ConflictResolutionService {
29
- agentProvider;
30
- gitPrService;
31
- constructor(agentProvider, gitPrService) {
32
- this.agentProvider = agentProvider;
33
- this.gitPrService = gitPrService;
34
- }
35
- /**
36
- * Resolve all conflicts during a rebase operation.
37
- *
38
- * Handles multi-commit rebases where each commit may introduce conflicts.
39
- * For each conflicted commit: reads conflicted files, invokes agent to
40
- * resolve, validates no remaining markers, stages resolved files, and
41
- * continues the rebase. Retries up to MAX_RETRIES_PER_COMMIT times.
42
- *
43
- * If retries are exhausted, aborts the rebase and throws REBASE_CONFLICT.
44
- *
45
- * @param cwd - Working directory (repo root or worktree path)
46
- * @param featureBranch - Feature branch being rebased
47
- * @param baseBranch - Base branch being rebased onto
48
- */
49
- async resolve(cwd, featureBranch, baseBranch) {
50
- const executor = await this.agentProvider.getExecutor();
51
- // Outer loop: handle multi-commit rebases where rebaseContinue
52
- // may reveal conflicts on the next commit
53
- while (true) {
54
- const conflictedFiles = await this.gitPrService.getConflictedFiles(cwd);
55
- if (conflictedFiles.length === 0) {
56
- return; // No conflicts — rebase is complete
57
- }
58
- // Inner loop: retry agent resolution for the current commit's conflicts
59
- let resolved = false;
60
- for (let attempt = 1; attempt <= MAX_RETRIES_PER_COMMIT; attempt++) {
61
- const fileContents = this.readConflictedFileContents(cwd, conflictedFiles);
62
- const previousFeedback = attempt > 1 ? this.buildFeedbackFromRemainingMarkers(cwd, conflictedFiles) : undefined;
63
- const prompt = buildConflictResolutionPrompt({
64
- conflictedFiles: fileContents,
65
- featureBranch,
66
- baseBranch,
67
- attemptNumber: attempt,
68
- maxAttempts: MAX_RETRIES_PER_COMMIT,
69
- previousFeedback,
70
- });
71
- await executor.execute(prompt, { cwd });
72
- // Validate: check no conflict markers remain
73
- if (this.validateResolution(cwd, conflictedFiles)) {
74
- resolved = true;
75
- break;
76
- }
77
- }
78
- if (!resolved) {
79
- // Exhausted retries — abort and report
80
- await this.gitPrService.rebaseAbort(cwd);
81
- const remaining = conflictedFiles.join(', ');
82
- throw new GitPrError(`Failed to resolve conflicts after ${MAX_RETRIES_PER_COMMIT} attempts. ` +
83
- `Unresolved files: ${remaining}. The rebase has been aborted.`, GitPrErrorCode.REBASE_CONFLICT);
84
- }
85
- // Resolution succeeded — stage files and continue rebase
86
- await this.gitPrService.stageFiles(cwd, conflictedFiles);
87
- try {
88
- await this.gitPrService.rebaseContinue(cwd);
89
- // rebaseContinue succeeded — check if there are more conflicts
90
- // from subsequent commits (loop continues)
91
- return; // No more conflicts
92
- }
93
- catch (error) {
94
- if (error instanceof GitPrError && error.code === GitPrErrorCode.REBASE_CONFLICT) {
95
- // Next commit has conflicts — loop back to resolve them
96
- continue;
97
- }
98
- throw error; // Unexpected error
99
- }
100
- }
101
- }
102
- /**
103
- * Read the contents of conflicted files from the working directory.
104
- */
105
- readConflictedFileContents(cwd, filePaths) {
106
- return filePaths.map((filePath) => {
107
- try {
108
- const content = readFileSync(join(cwd, filePath), 'utf-8');
109
- return { path: filePath, content };
110
- }
111
- catch {
112
- return { path: filePath, content: '(unable to read file)' };
113
- }
114
- });
115
- }
116
- /**
117
- * Validate that no conflict markers remain in the previously-conflicted files.
118
- */
119
- validateResolution(cwd, filePaths) {
120
- for (const filePath of filePaths) {
121
- try {
122
- const content = readFileSync(join(cwd, filePath), 'utf-8');
123
- for (const marker of CONFLICT_MARKERS) {
124
- if (content.includes(marker)) {
125
- return false;
126
- }
127
- }
128
- }
129
- catch {
130
- return false;
131
- }
132
- }
133
- return true;
134
- }
135
- /**
136
- * Build feedback about remaining conflict markers for retry attempts.
137
- */
138
- buildFeedbackFromRemainingMarkers(cwd, filePaths) {
139
- const remaining = [];
140
- for (const filePath of filePaths) {
141
- try {
142
- const content = readFileSync(join(cwd, filePath), 'utf-8');
143
- const lines = content.split('\n');
144
- const markerLines = [];
145
- lines.forEach((line, index) => {
146
- if (CONFLICT_MARKERS.some((marker) => line.includes(marker))) {
147
- markerLines.push(index + 1);
148
- }
149
- });
150
- if (markerLines.length > 0) {
151
- remaining.push(`- \`${filePath}\`: conflict markers remain on lines ${markerLines.join(', ')}`);
152
- }
153
- }
154
- catch {
155
- remaining.push(`- \`${filePath}\`: unable to read file`);
156
- }
157
- }
158
- return remaining.length > 0
159
- ? remaining.join('\n')
160
- : 'No specific markers found, but validation failed.';
161
- }
162
- };
163
- ConflictResolutionService = __decorate([
164
- injectable(),
165
- __param(0, inject('IAgentExecutorProvider')),
166
- __param(1, inject('IGitPrService')),
167
- __metadata("design:paramtypes", [Object, Object])
168
- ], ConflictResolutionService);
169
- export { ConflictResolutionService };
@@ -1,5 +0,0 @@
1
- export declare function rebaseFeature(featureId: string): Promise<{
2
- success: boolean;
3
- error?: string;
4
- }>;
5
- //# sourceMappingURL=rebase-feature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rebase-feature.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/rebase-feature.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C"}
@@ -1,16 +0,0 @@
1
- 'use server';
2
- import { resolve } from '../../lib/server-container.js';
3
- export async function rebaseFeature(featureId) {
4
- if (!featureId?.trim()) {
5
- return { success: false, error: 'Feature id is required' };
6
- }
7
- try {
8
- const useCase = resolve('RebaseFeatureOnMainUseCase');
9
- await useCase.execute(featureId);
10
- return { success: true };
11
- }
12
- catch (error) {
13
- const message = error instanceof Error ? error.message : 'Failed to rebase feature';
14
- return { success: false, error: message };
15
- }
16
- }
@@ -1,5 +0,0 @@
1
- export declare function syncRepository(repositoryId: string): Promise<{
2
- success: boolean;
3
- error?: string;
4
- }>;
5
- //# sourceMappingURL=sync-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-repository.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/sync-repository.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C"}
@@ -1,16 +0,0 @@
1
- 'use server';
2
- import { resolve } from '../../lib/server-container.js';
3
- export async function syncRepository(repositoryId) {
4
- if (!repositoryId?.trim()) {
5
- return { success: false, error: 'Repository id is required' };
6
- }
7
- try {
8
- const useCase = resolve('SyncRepositoryMainUseCase');
9
- await useCase.execute(repositoryId);
10
- return { success: true };
11
- }
12
- catch (error) {
13
- const message = error instanceof Error ? error.message : 'Failed to sync repository';
14
- return { success: false, error: message };
15
- }
16
- }
@@ -1,3 +0,0 @@
1
- module.exports=[35812,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(92658),z=a.i(96380),A=a.i(12581);async function B(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,z.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function C(a){if(!a?.trim())return[];try{let b=(0,z.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,A.ensureServerEntryExports)([B]),(0,y.registerServerReference)(B,"40fbdb0298280e430cb6a11d060d963752731aee73",null),(0,A.ensureServerEntryExports)([C]),(0,y.registerServerReference)(C,"40589815a83be626a300f32b2070347da07af9b5ab",null),a.s([],1431),a.i(1431),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"40589815a83be626a300f32b2070347da07af9b5ab",()=>C,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"40fbdb0298280e430cb6a11d060d963752731aee73",()=>B,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],35812)}];
2
-
3
- //# sourceMappingURL=744ca_web__next-internal_server_app_%28dashboard%29_%40drawer_adopt_page_actions_99e84975.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"sourcesContent":["export {pickFolder as '00ab1caf5454e6e3c412cde2abe86fc70095c47e41'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40cb48b2d644ae707da6481886cf1d8104dab8280f'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '40bc5a8964927acae13eef463f05923ac30777fb73'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '40533e87a717e3292eb8c9855b273eeffe45eef324'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09'} from 'ACTIONS_MODULE6'\nexport {openIde as '400cdc96dfd99ff707d59e760cfd64d80500ffacf3'} from 'ACTIONS_MODULE7'\nexport {openShell as '40d30186e83ac02a2de8a75448110b4dbf1222cb60'} from 'ACTIONS_MODULE8'\nexport {openFolder as '403c62f1774307288813c961e50f627253e97fadac'} from 'ACTIONS_MODULE9'\nexport {syncRepository as '40736a7561e41a8e6b156be124131eaadf8b8f5c9f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentLogs as '40bbf31380bd0eddc6ef384b14069ca87c9a6540f5'} from 'ACTIONS_MODULE11'\nexport {isAgentSetupComplete as '00f7c99a3d2300b7d110353bf579c9b8b382cce462'} from 'ACTIONS_MODULE12'\nexport {checkAgentAuth as '0023f4fa9b51a932f90ad317c638a0ff5f8df20f33'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '009e985d734cca68e620d9586a3f1a681fa9d78351'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '602cf09c7e04fd9657fcd20f0a5bf90991f656570b'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '40db868d8b527b2c86aa9fabf21c072a0fc37f525c'} from 'ACTIONS_MODULE17'\nexport {startFeature as '405d2e3335d7e882d5858248f52f74849a3a16b0a9'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '408a4ac841767d5ae2cb594a0a323875a185489b55'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40b118db25f170dff6cba78b1e3287ce8508cd0619'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '40c325a71c9218ea66f3bf42339d711a5972a63af6'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '407e379213f60640c8a9798abcbb260dd96ad4020a'} from 'ACTIONS_MODULE22'\nexport {adoptBranch as '40fbdb0298280e430cb6a11d060d963752731aee73'} from 'ACTIONS_MODULE23'\nexport {listBranches as '40589815a83be626a300f32b2070347da07af9b5ab'} from 'ACTIONS_MODULE24'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBCpBA,EAAA,EAAA,CAAA,CAAA,oBASO,eAAe,EACpB,CAAuB,EAEvB,GAAM,YAAE,CAAU,gBAAE,CAAc,CAAE,CAAG,EAEvC,GAAI,CAAC,GAAY,OACf,CADuB,KAChB,CAAE,MAAO,yBAA0B,EAE5C,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,CAAE,MAAO,6BAA8B,EAGhD,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAE5C,MAAO,CAAE,QAAS,CADH,MAAM,EAAQ,OAAO,CAAC,YAAE,iBAAY,CAAe,EAAA,EACzC,OAAO,AAAC,CACnC,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,MADO,CACA,YADiB,MAAQ,EAAM,OAAO,CAAG,wBACjC,CAC1B,CACF,CCtBO,eAAe,EAAa,CAAsB,EACvD,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,EAAE,CAGX,GAAI,CACF,IAAM,EAAkB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAmB,oBAClD,OAAO,MAAM,EAAgB,YAAY,CAAC,EAC5C,CAAE,KAAM,CACN,MAAO,EAAE,AACX,CACF,iCDTsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCFA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[29091,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207);a.s([],51571),a.i(51571),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],29091)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_%40drawer_repository_%5BrepositoryId%5D_page_actions_accb29f0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00ab1caf5454e6e3c412cde2abe86fc70095c47e41'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40cb48b2d644ae707da6481886cf1d8104dab8280f'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '40bc5a8964927acae13eef463f05923ac30777fb73'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '40533e87a717e3292eb8c9855b273eeffe45eef324'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09'} from 'ACTIONS_MODULE6'\nexport {openIde as '400cdc96dfd99ff707d59e760cfd64d80500ffacf3'} from 'ACTIONS_MODULE7'\nexport {openShell as '40d30186e83ac02a2de8a75448110b4dbf1222cb60'} from 'ACTIONS_MODULE8'\nexport {openFolder as '403c62f1774307288813c961e50f627253e97fadac'} from 'ACTIONS_MODULE9'\nexport {syncRepository as '40736a7561e41a8e6b156be124131eaadf8b8f5c9f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentLogs as '40bbf31380bd0eddc6ef384b14069ca87c9a6540f5'} from 'ACTIONS_MODULE11'\nexport {isAgentSetupComplete as '00f7c99a3d2300b7d110353bf579c9b8b382cce462'} from 'ACTIONS_MODULE12'\nexport {checkAgentAuth as '0023f4fa9b51a932f90ad317c638a0ff5f8df20f33'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '009e985d734cca68e620d9586a3f1a681fa9d78351'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '602cf09c7e04fd9657fcd20f0a5bf90991f656570b'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '40db868d8b527b2c86aa9fabf21c072a0fc37f525c'} from 'ACTIONS_MODULE17'\nexport {startFeature as '405d2e3335d7e882d5858248f52f74849a3a16b0a9'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '408a4ac841767d5ae2cb594a0a323875a185489b55'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40b118db25f170dff6cba78b1e3287ce8508cd0619'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '40c325a71c9218ea66f3bf42339d711a5972a63af6'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '407e379213f60640c8a9798abcbb260dd96ad4020a'} from 'ACTIONS_MODULE22'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[64734,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207);a.s([],63202),a.i(63202),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],64734)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_repository_%5BrepositoryId%5D_page_actions_6a57c3a1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00ab1caf5454e6e3c412cde2abe86fc70095c47e41'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40cb48b2d644ae707da6481886cf1d8104dab8280f'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '40bc5a8964927acae13eef463f05923ac30777fb73'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '40533e87a717e3292eb8c9855b273eeffe45eef324'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09'} from 'ACTIONS_MODULE6'\nexport {openIde as '400cdc96dfd99ff707d59e760cfd64d80500ffacf3'} from 'ACTIONS_MODULE7'\nexport {openShell as '40d30186e83ac02a2de8a75448110b4dbf1222cb60'} from 'ACTIONS_MODULE8'\nexport {openFolder as '403c62f1774307288813c961e50f627253e97fadac'} from 'ACTIONS_MODULE9'\nexport {syncRepository as '40736a7561e41a8e6b156be124131eaadf8b8f5c9f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentLogs as '40bbf31380bd0eddc6ef384b14069ca87c9a6540f5'} from 'ACTIONS_MODULE11'\nexport {isAgentSetupComplete as '00f7c99a3d2300b7d110353bf579c9b8b382cce462'} from 'ACTIONS_MODULE12'\nexport {checkAgentAuth as '0023f4fa9b51a932f90ad317c638a0ff5f8df20f33'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '009e985d734cca68e620d9586a3f1a681fa9d78351'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '602cf09c7e04fd9657fcd20f0a5bf90991f656570b'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '40db868d8b527b2c86aa9fabf21c072a0fc37f525c'} from 'ACTIONS_MODULE17'\nexport {startFeature as '405d2e3335d7e882d5858248f52f74849a3a16b0a9'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '408a4ac841767d5ae2cb594a0a323875a185489b55'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40b118db25f170dff6cba78b1e3287ce8508cd0619'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '40c325a71c9218ea66f3bf42339d711a5972a63af6'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '407e379213f60640c8a9798abcbb260dd96ad4020a'} from 'ACTIONS_MODULE22'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.ciWatchEnabled!=null&&{ciWatchEnabled:f.ciWatchEnabled},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,70319,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60afa4844875bd61764bb307aaacae26dda92bf738",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40677ce16a71f0854eb8f029175331fa16017c220b",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"402c2cf15058f7145f51c917e0d57f857ce81104ff",null),a.s(["getResearchArtifact",()=>h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227),l=a.i(29918),m=a.i(32278);async function n(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let n=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,o=h.branch?{source:h.branch,target:"main"}:void 0,p=h.worktreePath??(h.repositoryPath&&h.branch?(0,l.computeWorktreePath)(h.repositoryPath,h.branch):null),q=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,m.getShepHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):p?(0,k.join)((0,k.dirname)((0,k.dirname)(p)),"evidence",a).replace(/\\/g,"/"):null;if(q)try{let a=(0,k.join)(q,"manifest.json");(0,j.existsSync)(a)&&(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),e=d.map(a=>{if(a.relativePath.startsWith("/")){if((0,j.existsSync)(a.relativePath))return a;let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return(0,j.existsSync)(b)?{...a,relativePath:b}:a}let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return{...a,relativePath:b}}))}catch{}if(!p)return{pr:n,branch:o,evidence:e,warning:n?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[b,d]=await Promise.all([a.getPrDiffSummary(p,"main"),a.getFileDiffs(p,"main").catch(()=>void 0)]);return{pr:n,branch:o,diffSummary:b,fileDiffs:d,evidence:e}}catch{return{pr:n,branch:o,evidence:e,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0})),e=await p(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function p(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function r(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",null),a.s(["getMergeReviewData",()=>n],6542),(0,d.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40824366c573992e7452a59104bda451356720e308",null),a.s(["getFeaturePhaseTimings",()=>o],740),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",null),a.s(["getFeaturePlan",()=>q],12104),(0,d.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"40f228cae9cf6efff2a9594488e10e861a156313f8",null),a.s(["rebaseFeature",()=>r],70319);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,d.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",null),a.s(["getFeatureDrawerData",()=>u],54433)},78289,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(61402),z=a.i(76052),A=a.i(13008),B=a.i(74607),C=a.i(6542),D=a.i(740),E=a.i(12104),F=a.i(70319),G=a.i(54433);a.s([],97469),a.i(97469),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",()=>C.getMergeReviewData,"402c2cf15058f7145f51c917e0d57f857ce81104ff",()=>B.getResearchArtifact,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40677ce16a71f0854eb8f029175331fa16017c220b",()=>A.getFeatureArtifact,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"40824366c573992e7452a59104bda451356720e308",()=>D.getFeaturePhaseTimings,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",()=>E.getFeaturePlan,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",()=>G.getFeatureDrawerData,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"40f228cae9cf6efff2a9594488e10e861a156313f8",()=>F.rebaseFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"60afa4844875bd61764bb307aaacae26dda92bf738",()=>y.approveFeature,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",()=>z.rejectFeature,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],78289)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0005fa7f._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.ciWatchEnabled!=null&&{ciWatchEnabled:f.ciWatchEnabled},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,70319,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60afa4844875bd61764bb307aaacae26dda92bf738",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40677ce16a71f0854eb8f029175331fa16017c220b",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"402c2cf15058f7145f51c917e0d57f857ce81104ff",null),a.s(["getResearchArtifact",()=>h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227),l=a.i(29918),m=a.i(32278);async function n(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let n=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,o=h.branch?{source:h.branch,target:"main"}:void 0,p=h.worktreePath??(h.repositoryPath&&h.branch?(0,l.computeWorktreePath)(h.repositoryPath,h.branch):null),q=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,m.getShepHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):p?(0,k.join)((0,k.dirname)((0,k.dirname)(p)),"evidence",a).replace(/\\/g,"/"):null;if(q)try{let a=(0,k.join)(q,"manifest.json");(0,j.existsSync)(a)&&(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),e=d.map(a=>{if(a.relativePath.startsWith("/")){if((0,j.existsSync)(a.relativePath))return a;let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return(0,j.existsSync)(b)?{...a,relativePath:b}:a}let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return{...a,relativePath:b}}))}catch{}if(!p)return{pr:n,branch:o,evidence:e,warning:n?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[b,d]=await Promise.all([a.getPrDiffSummary(p,"main"),a.getFileDiffs(p,"main").catch(()=>void 0)]);return{pr:n,branch:o,diffSummary:b,fileDiffs:d,evidence:e}}catch{return{pr:n,branch:o,evidence:e,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0})),e=await p(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function p(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function r(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",null),a.s(["getMergeReviewData",()=>n],6542),(0,d.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40824366c573992e7452a59104bda451356720e308",null),a.s(["getFeaturePhaseTimings",()=>o],740),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",null),a.s(["getFeaturePlan",()=>q],12104),(0,d.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"40f228cae9cf6efff2a9594488e10e861a156313f8",null),a.s(["rebaseFeature",()=>r],70319);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,d.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",null),a.s(["getFeatureDrawerData",()=>u],54433)},27052,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(61402),z=a.i(76052),A=a.i(13008),B=a.i(74607),C=a.i(6542),D=a.i(740),E=a.i(12104),F=a.i(70319),G=a.i(54433);a.s([],73079),a.i(73079),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",()=>C.getMergeReviewData,"402c2cf15058f7145f51c917e0d57f857ce81104ff",()=>B.getResearchArtifact,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40677ce16a71f0854eb8f029175331fa16017c220b",()=>A.getFeatureArtifact,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"40824366c573992e7452a59104bda451356720e308",()=>D.getFeaturePhaseTimings,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",()=>E.getFeaturePlan,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",()=>G.getFeatureDrawerData,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"40f228cae9cf6efff2a9594488e10e861a156313f8",()=>F.rebaseFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"60afa4844875bd61764bb307aaacae26dda92bf738",()=>y.approveFeature,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",()=>z.rejectFeature,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],27052)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__2e4a6b80._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/build-feature-node-data.ts","../../../../../../../src/presentation/web/app/actions/approve-feature.ts","../../../../../../../src/presentation/web/app/actions/reject-feature.ts","../../../../../../../src/presentation/web/app/actions/get-feature-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-research-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-merge-review-data.ts","../../../../../../../src/presentation/web/app/actions/get-feature-phase-timings.ts","../../../../../../../src/presentation/web/app/actions/get-feature-plan.ts","../../../../../../../src/presentation/web/app/actions/rebase-feature.ts","../../../../../../../src/presentation/web/app/actions/get-feature-drawer-data.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import type { Feature, AgentRun } from '@shepai/core/domain/generated/output';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\nimport {\n deriveNodeState,\n deriveProgress,\n deriveLifecycle,\n} from '@/components/common/feature-node/derive-feature-state';\nimport { isProcessAlive } from '@shepai/core/infrastructure/services/process/is-process-alive';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\nexport interface BuildFeatureNodeDataOptions {\n baseBranch?: string;\n repositoryName?: string;\n /** AI-generated one-liner from FeatureArtifact */\n oneLiner?: string;\n /** Remote URL for the repository (HTTPS) */\n remoteUrl?: string;\n /** Whether evidence collection is enabled (global workflow setting) */\n enableEvidence?: boolean;\n /** Whether evidence is committed to the PR body (global workflow setting) */\n commitEvidence?: boolean;\n /** Whether CI watch/fix loop is enabled (global workflow setting) */\n ciWatchEnabled?: boolean;\n}\n\n/**\n * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.\n * This is the single-feature version of the logic in `buildGraphNodes`.\n */\nexport function buildFeatureNodeData(\n feature: Feature,\n run: AgentRun | null,\n options?: BuildFeatureNodeDataOptions\n): FeatureNodeData {\n // Detect crashed agents: DB says running/pending but PID is dead\n const isActive = run?.status === AgentRunStatus.running || run?.status === AgentRunStatus.pending;\n const pidAlive = isActive && run?.pid ? isProcessAlive(run.pid) : undefined;\n\n return {\n name: feature.name,\n description: feature.description ?? feature.slug,\n featureId: feature.id,\n lifecycle: deriveLifecycle(feature, run),\n repositoryPath: feature.repositoryPath,\n branch: feature.branch,\n specPath: feature.specPath,\n state: deriveNodeState(\n feature,\n run,\n pidAlive !== undefined ? { isPidAlive: pidAlive } : undefined\n ),\n progress: deriveProgress(feature),\n summary: feature.description,\n userQuery: feature.userQuery,\n createdAt: feature.createdAt instanceof Date ? feature.createdAt.getTime() : feature.createdAt,\n ...(feature.fast && { fastMode: true }),\n approvalGates: feature.approvalGates,\n push: feature.push,\n openPr: feature.openPr,\n ...(options?.enableEvidence != null && { enableEvidence: options.enableEvidence }),\n ...(options?.commitEvidence != null && { commitEvidence: options.commitEvidence }),\n ...(options?.ciWatchEnabled != null && { ciWatchEnabled: options.ciWatchEnabled }),\n ...(options?.repositoryName && { repositoryName: options.repositoryName }),\n ...(options?.baseBranch && { baseBranch: options.baseBranch }),\n ...(options?.oneLiner && { oneLiner: options.oneLiner }),\n ...(options?.remoteUrl && { remoteUrl: options.remoteUrl }),\n ...(run?.agentType && { agentType: run.agentType as FeatureNodeData['agentType'] }),\n ...(run?.modelId && { modelId: run.modelId }),\n ...(run?.error && { errorMessage: run.error }),\n ...(feature.agentRunId != null && { hasAgentRun: true }),\n ...(feature.plan != null && { hasPlan: true }),\n ...(feature.pr && {\n pr: {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n ciStatus: feature.pr.ciStatus,\n commitHash: feature.pr.commitHash,\n mergeable: feature.pr.mergeable,\n },\n }),\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ApproveAgentRunUseCase } from '@shepai/core/application/use-cases/agents/approve-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { PrdApprovalPayload } from '@shepai/core/domain/generated/output';\n\nexport async function approveFeature(\n featureId: string,\n payload?: PrdApprovalPayload\n): Promise<{ approved: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { approved: false, error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { approved: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { approved: false, error: 'Feature has no agent run' };\n }\n\n // Always use ApproveAgentRunUseCase — it handles waitingApproval, failed,\n // and interrupted statuses. This ensures approval is propagated via\n // Command({update: {_approvalAction: 'approved'}}) so the graph node\n // receives it on resume.\n const approveUseCase = resolve<ApproveAgentRunUseCase>('ApproveAgentRunUseCase');\n const result = await approveUseCase.execute(feature.agentRunId, payload);\n\n if (!result.approved) {\n return { approved: false, error: result.reason };\n }\n\n return { approved: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to approve feature';\n return { approved: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { RejectAgentRunUseCase } from '@shepai/core/application/use-cases/agents/reject-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport async function rejectFeature(\n featureId: string,\n feedback: string,\n attachments?: string[]\n): Promise<{\n rejected: boolean;\n iteration?: number;\n iterationWarning?: boolean;\n error?: string;\n}> {\n if (!featureId.trim()) {\n return { rejected: false, error: 'Feature id is required' };\n }\n\n if (!feedback.trim()) {\n return { rejected: false, error: 'Feedback is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { rejected: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { rejected: false, error: 'Feature has no agent run' };\n }\n\n // Always use RejectAgentRunUseCase — it handles waitingApproval, failed,\n // and interrupted statuses. This ensures rejection feedback is propagated\n // via Command({update: {_approvalAction, _rejectionFeedback}}) so the\n // graph node receives the feedback on resume.\n const rejectUseCase = resolve<RejectAgentRunUseCase>('RejectAgentRunUseCase');\n const result = await rejectUseCase.execute(feature.agentRunId, feedback, attachments);\n\n if (!result.rejected) {\n return { rejected: false, error: result.reason };\n }\n\n return {\n rejected: true,\n iteration: result.iteration,\n iterationWarning: result.iterationWarning,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject feature';\n return { rejected: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport type { FeatureArtifact } from '@shepai/core/domain/generated/output';\nimport type { PrdQuestionnaireData } from '@shepai/core/domain/generated/output';\nimport type { ProductDecisionsSummaryData } from '@/components/common/product-decisions-summary';\n\ninterface GetFeatureArtifactResult {\n questionnaire?: PrdQuestionnaireData;\n productDecisions?: ProductDecisionsSummaryData;\n artifact?: FeatureArtifact;\n error?: string;\n}\n\n/**\n * Map FeatureArtifact openQuestions into the PrdQuestionnaireData shape\n * expected by the PrdQuestionnaireDrawer component.\n */\nfunction toQuestionnaireData(artifact: FeatureArtifact): PrdQuestionnaireData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions.map((oq, idx) => ({\n id: `q-${idx}`,\n question: oq.question,\n type: 'select' as const,\n options: (oq.options ?? []).map((opt, optIdx) => ({\n id: `q-${idx}-opt-${optIdx}`,\n label: opt.option,\n rationale: opt.description,\n ...(opt.selected ? { recommended: true } : {}),\n })),\n })),\n finalAction: {\n id: 'approve-reqs',\n label: 'Approve Requirements',\n description: 'Finalize and lock the requirements for implementation',\n },\n };\n}\n\n/**\n * Map FeatureArtifact openQuestions into a read-only summary for the\n * Product Decisions tab in the tech review drawer.\n */\nfunction toProductDecisionsData(artifact: FeatureArtifact): ProductDecisionsSummaryData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions\n .filter((oq) => oq.resolved)\n .map((oq) => {\n const selected = oq.options?.find((o) => o.selected);\n return {\n question: oq.question,\n selectedOption: selected?.option ?? oq.answer ?? 'N/A',\n rationale: oq.selectionRationale ?? selected?.description ?? '',\n wasRecommended: false,\n };\n }),\n };\n}\n\nexport async function getFeatureArtifact(featureId: string): Promise<GetFeatureArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const questionnaire = toQuestionnaireData(artifact);\n const productDecisions = toProductDecisionsData(artifact);\n return { questionnaire, productDecisions, artifact };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature artifact';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetResearchArtifactUseCase } from '@shepai/core/application/use-cases/features/get-research-artifact.use-case';\nimport type { ResearchArtifact, TechDecision } from '@shepai/core/domain/generated/output';\n\nexport interface TechDecisionsReviewData {\n name: string;\n summary: string;\n decisions: TechDecision[];\n technologies: string[];\n}\n\ninterface GetResearchArtifactResult {\n techDecisions?: TechDecisionsReviewData;\n error?: string;\n}\n\nfunction toTechDecisionsData(artifact: ResearchArtifact): TechDecisionsReviewData {\n return {\n name: artifact.name,\n summary: artifact.summary,\n decisions: artifact.decisions,\n technologies: artifact.technologies,\n };\n}\n\nexport async function getResearchArtifact(featureId: string): Promise<GetResearchArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetResearchArtifactUseCase>('GetResearchArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const techDecisions = toTechDecisionsData(artifact);\n return { techDecisions };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load research artifact';\n return { error: message };\n }\n}\n","'use server';\n\nimport { createHash } from 'node:crypto';\nimport { readFileSync, existsSync } from 'node:fs';\nimport { basename, join, dirname } from 'node:path';\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type {\n MergeReviewData,\n MergeReviewEvidence,\n} from '@/components/common/merge-review/merge-review-config';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\nimport { getShepHomeDir } from '@shepai/core/infrastructure/services/filesystem/shep-directory.service';\n\ntype GetMergeReviewDataResult = MergeReviewData | { error: string };\n\n/**\n * Compute the shep evidence directory for a given repository and feature.\n * Path: ~/.shep/repos/<sha256-hash-prefix>/evidence/<featureId>/\n */\nfunction computeEvidenceDir(repositoryPath: string, featureId: string): string {\n const repoHash = createHash('sha256').update(repositoryPath).digest('hex').slice(0, 16);\n return join(getShepHomeDir(), 'repos', repoHash, 'evidence', featureId).replace(/\\\\/g, '/');\n}\n\n/**\n * Normalize evidence paths so they all point to the shep evidence directory.\n * When commitEvidence was enabled, the manifest may contain relative paths\n * (e.g. \"specs/066-feature/evidence/file.png\"). After merge the worktree is\n * deleted so those paths no longer resolve. The evidence files were also saved\n * to the shep evidence dir with the same filename, so we map relative paths\n * to absolute paths there.\n */\nfunction normalizeEvidencePaths(\n evidence: MergeReviewEvidence[],\n evidenceDir: string\n): MergeReviewEvidence[] {\n return evidence.map((e) => {\n if (e.relativePath.startsWith('/')) {\n // Already absolute — check if the file exists; if not, try the evidence dir\n if (existsSync(e.relativePath)) return e;\n const fallback = join(evidenceDir, basename(e.relativePath)).replace(/\\\\/g, '/');\n if (existsSync(fallback)) return { ...e, relativePath: fallback };\n return e;\n }\n // Relative path — resolve to evidence dir using the filename\n const absolutePath = join(evidenceDir, basename(e.relativePath)).replace(/\\\\/g, '/');\n return { ...e, relativePath: absolutePath };\n });\n}\n\nexport async function getMergeReviewData(featureId: string): Promise<GetMergeReviewDataResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n const pr = feature.pr\n ? {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n commitHash: feature.pr.commitHash,\n ciStatus: feature.pr.ciStatus,\n mergeable: feature.pr.mergeable,\n }\n : undefined;\n\n const branch = feature.branch ? { source: feature.branch, target: 'main' } : undefined;\n\n const worktreePath =\n feature.worktreePath ??\n (feature.repositoryPath && feature.branch\n ? computeWorktreePath(feature.repositoryPath, feature.branch)\n : null);\n\n // Load evidence manifest (best-effort).\n // Evidence is stored independently of the worktree at:\n // ~/.shep/repos/<hash>/evidence/<featureId>/manifest.json\n // We compute this path from repositoryPath so evidence is accessible\n // even after the worktree has been deleted post-merge.\n let evidence: MergeReviewEvidence[] | undefined;\n const evidenceDir = feature.repositoryPath\n ? computeEvidenceDir(feature.repositoryPath, featureId)\n : worktreePath\n ? join(dirname(dirname(worktreePath)), 'evidence', featureId).replace(/\\\\/g, '/')\n : null;\n\n if (evidenceDir) {\n try {\n const manifestPath = join(evidenceDir, 'manifest.json');\n if (existsSync(manifestPath)) {\n const raw: MergeReviewEvidence[] = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n evidence = normalizeEvidencePaths(raw, evidenceDir);\n }\n } catch {\n // Evidence unavailable — not critical\n }\n }\n\n if (!worktreePath) {\n return {\n pr,\n branch,\n evidence,\n warning: pr ? undefined : 'No PR or diff data available',\n };\n }\n\n try {\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const [diffSummary, fileDiffs] = await Promise.all([\n gitPrService.getPrDiffSummary(worktreePath, 'main'),\n gitPrService.getFileDiffs(worktreePath, 'main').catch(() => undefined),\n ]);\n return { pr, branch, diffSummary, fileDiffs, evidence };\n } catch {\n return {\n pr,\n branch,\n evidence,\n warning: 'Diff statistics unavailable',\n };\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load merge review data';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IPhaseTimingRepository } from '@shepai/core/application/ports/output/agents/phase-timing-repository.interface';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface PhaseTimingData {\n agentRunId: string;\n phase: string;\n startedAt: string;\n completedAt?: string;\n durationMs?: number;\n waitingApprovalAt?: string;\n approvalWaitMs?: number;\n inputTokens?: number;\n outputTokens?: number;\n cacheCreationInputTokens?: number;\n cacheReadInputTokens?: number;\n costUsd?: number;\n numTurns?: number;\n durationApiMs?: number;\n exitCode?: string;\n errorMessage?: string;\n}\n\nexport interface RejectionFeedbackData {\n iteration: number;\n message: string;\n phase?: string;\n timestamp?: string;\n attachments?: string[];\n}\n\ntype GetPhaseTimingsResult =\n | { timings: PhaseTimingData[]; rejectionFeedback: RejectionFeedbackData[] }\n | { error: string };\n\nexport async function getFeaturePhaseTimings(featureId: string): Promise<GetPhaseTimingsResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IPhaseTimingRepository>('IPhaseTimingRepository');\n const phaseTimings = await repo.findByFeatureId(featureId);\n\n const timings: PhaseTimingData[] = phaseTimings.map((t) => ({\n agentRunId: t.agentRunId,\n phase: t.phase,\n startedAt: t.startedAt,\n completedAt: t.completedAt,\n durationMs: t.durationMs != null ? Number(t.durationMs) : undefined,\n waitingApprovalAt: t.waitingApprovalAt,\n approvalWaitMs: t.approvalWaitMs != null ? Number(t.approvalWaitMs) : undefined,\n inputTokens: t.inputTokens != null ? Number(t.inputTokens) : undefined,\n outputTokens: t.outputTokens != null ? Number(t.outputTokens) : undefined,\n cacheCreationInputTokens:\n t.cacheCreationInputTokens != null ? Number(t.cacheCreationInputTokens) : undefined,\n cacheReadInputTokens:\n t.cacheReadInputTokens != null ? Number(t.cacheReadInputTokens) : undefined,\n costUsd: t.costUsd != null ? Number(t.costUsd) : undefined,\n numTurns: t.numTurns ?? undefined,\n durationApiMs: t.durationApiMs != null ? Number(t.durationApiMs) : undefined,\n exitCode: t.exitCode ?? undefined,\n errorMessage: t.errorMessage ?? undefined,\n }));\n\n // Read rejection feedback from spec.yaml\n const rejectionFeedback = await readRejectionFeedback(featureId);\n\n return { timings, rejectionFeedback };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load phase timings';\n return { error: message };\n }\n}\n\nasync function readRejectionFeedback(featureId: string): Promise<RejectionFeedbackData[]> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature?.specPath) return [];\n\n const { readFileSync } = await import('node:fs');\n const { join } = await import('node:path');\n const yaml = (await import('js-yaml')).default;\n\n const specContent = readFileSync(join(feature.specPath, 'spec.yaml'), 'utf-8');\n const spec = yaml.load(specContent) as Record<string, unknown>;\n\n if (!Array.isArray(spec?.rejectionFeedback)) return [];\n\n return (spec.rejectionFeedback as Record<string, unknown>[]).map((entry) => ({\n iteration: Number(entry.iteration ?? 1),\n message: String(entry.message ?? ''),\n phase: entry.phase ? String(entry.phase) : undefined,\n timestamp: entry.timestamp ? String(entry.timestamp) : undefined,\n attachments: Array.isArray(entry.attachments)\n ? (entry.attachments as unknown[]).map(String)\n : undefined,\n }));\n } catch {\n return [];\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface AcceptanceCriterionData {\n description: string;\n verified: boolean;\n}\n\nexport interface ActionItemData {\n name: string;\n description: string;\n acceptanceCriteria: AcceptanceCriterionData[];\n}\n\nexport interface PlanTaskData {\n title: string;\n description: string;\n state: string;\n actionItems: ActionItemData[];\n}\n\nexport interface PlanData {\n state: string;\n overview: string;\n tasks: PlanTaskData[];\n}\n\ntype GetPlanResult = { plan: PlanData | undefined } | { error: string };\n\nexport async function getFeaturePlan(featureId: string): Promise<GetPlanResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await repo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n if (!feature.plan) {\n return { plan: undefined };\n }\n\n const plan: PlanData = {\n state: feature.plan.state,\n overview: feature.plan.overview,\n tasks: feature.plan.tasks.map((t) => ({\n title: t.title ?? '',\n description: t.description ?? '',\n state: t.state,\n actionItems: (t.actionItems ?? []).map((ai) => ({\n name: ai.name,\n description: ai.description,\n acceptanceCriteria: (ai.acceptanceCriteria ?? []).map((ac) => ({\n description: ac.description,\n verified: ac.verified,\n })),\n })),\n })),\n };\n\n return { plan };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature plan';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { RebaseFeatureOnMainUseCase } from '@shepai/core/application/use-cases/features/rebase-feature-on-main.use-case';\n\nexport async function rebaseFeature(\n featureId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!featureId?.trim()) {\n return { success: false, error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<RebaseFeatureOnMainUseCase>('RebaseFeatureOnMainUseCase');\n await useCase.execute(featureId);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to rebase feature';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { IRepositoryRepository } from '@shepai/core/application/ports/output/repositories/repository-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport { buildFeatureNodeData } from '@/app/build-feature-node-data';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\n/**\n * Fetches full FeatureNodeData for a given feature ID.\n * Used by the drawer for targeted data syncing without triggering\n * a full router.refresh() / server component re-render.\n *\n * CI status and mergeable status are read from the DB (already updated\n * by PrSyncWatcherService) instead of making duplicate GitHub API calls.\n */\nexport async function getFeatureDrawerData(featureId: string): Promise<FeatureNodeData | null> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const agentRunRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const repoRepo = resolve<IRepositoryRepository>('IRepositoryRepository');\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const getArtifact = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n\n const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;\n\n // CI status and mergeable status are read from the feature record (updated by\n // PrSyncWatcherService every 30s) — no duplicate GitHub API calls needed.\n // Only getDefaultBranch and getRemoteUrl are kept as they are local git operations.\n const [repo, baseBranch, artifact, remoteUrl] = await Promise.all([\n repoRepo.findByPath(feature.repositoryPath).catch(() => null),\n gitPrService.getDefaultBranch(feature.repositoryPath).catch(() => 'main'),\n getArtifact.execute(featureId).catch(() => null),\n gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),\n ]);\n\n const { workflow } = getSettings();\n\n return buildFeatureNodeData(feature, run, {\n repositoryName: repo?.name,\n baseBranch,\n oneLiner: artifact?.oneLiner,\n remoteUrl: remoteUrl ?? undefined,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n });\n } catch {\n return null;\n }\n}\n","export {pickFolder as '00ab1caf5454e6e3c412cde2abe86fc70095c47e41'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40cb48b2d644ae707da6481886cf1d8104dab8280f'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '40bc5a8964927acae13eef463f05923ac30777fb73'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '40533e87a717e3292eb8c9855b273eeffe45eef324'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09'} from 'ACTIONS_MODULE6'\nexport {openIde as '400cdc96dfd99ff707d59e760cfd64d80500ffacf3'} from 'ACTIONS_MODULE7'\nexport {openShell as '40d30186e83ac02a2de8a75448110b4dbf1222cb60'} from 'ACTIONS_MODULE8'\nexport {openFolder as '403c62f1774307288813c961e50f627253e97fadac'} from 'ACTIONS_MODULE9'\nexport {syncRepository as '40736a7561e41a8e6b156be124131eaadf8b8f5c9f'} from 'ACTIONS_MODULE10'\nexport {getDeploymentLogs as '40bbf31380bd0eddc6ef384b14069ca87c9a6540f5'} from 'ACTIONS_MODULE11'\nexport {isAgentSetupComplete as '00f7c99a3d2300b7d110353bf579c9b8b382cce462'} from 'ACTIONS_MODULE12'\nexport {checkAgentAuth as '0023f4fa9b51a932f90ad317c638a0ff5f8df20f33'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '009e985d734cca68e620d9586a3f1a681fa9d78351'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '602cf09c7e04fd9657fcd20f0a5bf90991f656570b'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '40db868d8b527b2c86aa9fabf21c072a0fc37f525c'} from 'ACTIONS_MODULE17'\nexport {startFeature as '405d2e3335d7e882d5858248f52f74849a3a16b0a9'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '408a4ac841767d5ae2cb594a0a323875a185489b55'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40b118db25f170dff6cba78b1e3287ce8508cd0619'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '40c325a71c9218ea66f3bf42339d711a5972a63af6'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '407e379213f60640c8a9798abcbb260dd96ad4020a'} from 'ACTIONS_MODULE22'\nexport {approveFeature as '60afa4844875bd61764bb307aaacae26dda92bf738'} from 'ACTIONS_MODULE23'\nexport {rejectFeature as '70c16c2a2272b85caa54d96bf48c424511b288d2c0'} from 'ACTIONS_MODULE24'\nexport {getFeatureArtifact as '40677ce16a71f0854eb8f029175331fa16017c220b'} from 'ACTIONS_MODULE25'\nexport {getResearchArtifact as '402c2cf15058f7145f51c917e0d57f857ce81104ff'} from 'ACTIONS_MODULE26'\nexport {getMergeReviewData as '401ac4dc5da5a0ff7c33b6fcade95567e5341005cd'} from 'ACTIONS_MODULE27'\nexport {getFeaturePhaseTimings as '40824366c573992e7452a59104bda451356720e308'} from 'ACTIONS_MODULE28'\nexport {getFeaturePlan as '40bc88f95521ec8a7884191fe033144cfcd29c8f60'} from 'ACTIONS_MODULE29'\nexport {rebaseFeature as '40f228cae9cf6efff2a9594488e10e861a156313f8'} from 'ACTIONS_MODULE30'\nexport {getFeatureDrawerData as '40d7eefb5a0f5e186c74cc149ece56805ec91e94f1'} from 'ACTIONS_MODULE31'\n"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.ciWatchEnabled!=null&&{ciWatchEnabled:f.ciWatchEnabled},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,70319,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60afa4844875bd61764bb307aaacae26dda92bf738",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40677ce16a71f0854eb8f029175331fa16017c220b",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"402c2cf15058f7145f51c917e0d57f857ce81104ff",null),a.s(["getResearchArtifact",()=>h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227),l=a.i(29918),m=a.i(32278);async function n(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let n=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,o=h.branch?{source:h.branch,target:"main"}:void 0,p=h.worktreePath??(h.repositoryPath&&h.branch?(0,l.computeWorktreePath)(h.repositoryPath,h.branch):null),q=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,m.getShepHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):p?(0,k.join)((0,k.dirname)((0,k.dirname)(p)),"evidence",a).replace(/\\/g,"/"):null;if(q)try{let a=(0,k.join)(q,"manifest.json");(0,j.existsSync)(a)&&(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),e=d.map(a=>{if(a.relativePath.startsWith("/")){if((0,j.existsSync)(a.relativePath))return a;let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return(0,j.existsSync)(b)?{...a,relativePath:b}:a}let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return{...a,relativePath:b}}))}catch{}if(!p)return{pr:n,branch:o,evidence:e,warning:n?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[b,d]=await Promise.all([a.getPrDiffSummary(p,"main"),a.getFileDiffs(p,"main").catch(()=>void 0)]);return{pr:n,branch:o,diffSummary:b,fileDiffs:d,evidence:e}}catch{return{pr:n,branch:o,evidence:e,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0})),e=await p(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function p(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function r(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",null),a.s(["getMergeReviewData",()=>n],6542),(0,d.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40824366c573992e7452a59104bda451356720e308",null),a.s(["getFeaturePhaseTimings",()=>o],740),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",null),a.s(["getFeaturePlan",()=>q],12104),(0,d.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"40f228cae9cf6efff2a9594488e10e861a156313f8",null),a.s(["rebaseFeature",()=>r],70319);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,d.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",null),a.s(["getFeatureDrawerData",()=>u],54433)},92206,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(61402),z=a.i(76052),A=a.i(13008),B=a.i(74607),C=a.i(6542),D=a.i(740),E=a.i(12104),F=a.i(70319),G=a.i(54433);a.s([],55893),a.i(55893),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",()=>C.getMergeReviewData,"402c2cf15058f7145f51c917e0d57f857ce81104ff",()=>B.getResearchArtifact,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40677ce16a71f0854eb8f029175331fa16017c220b",()=>A.getFeatureArtifact,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"40824366c573992e7452a59104bda451356720e308",()=>D.getFeaturePhaseTimings,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",()=>E.getFeaturePlan,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",()=>G.getFeatureDrawerData,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"40f228cae9cf6efff2a9594488e10e861a156313f8",()=>F.rebaseFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"60afa4844875bd61764bb307aaacae26dda92bf738",()=>y.approveFeature,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",()=>z.rejectFeature,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],92206)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__30f59daf._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.ciWatchEnabled!=null&&{ciWatchEnabled:f.ciWatchEnabled},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.agentRunId&&{hasAgentRun:!0},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,70319,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60afa4844875bd61764bb307aaacae26dda92bf738",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40677ce16a71f0854eb8f029175331fa16017c220b",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"402c2cf15058f7145f51c917e0d57f857ce81104ff",null),a.s(["getResearchArtifact",()=>h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227),l=a.i(29918),m=a.i(32278);async function n(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let n=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,o=h.branch?{source:h.branch,target:"main"}:void 0,p=h.worktreePath??(h.repositoryPath&&h.branch?(0,l.computeWorktreePath)(h.repositoryPath,h.branch):null),q=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,m.getShepHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):p?(0,k.join)((0,k.dirname)((0,k.dirname)(p)),"evidence",a).replace(/\\/g,"/"):null;if(q)try{let a=(0,k.join)(q,"manifest.json");(0,j.existsSync)(a)&&(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),e=d.map(a=>{if(a.relativePath.startsWith("/")){if((0,j.existsSync)(a.relativePath))return a;let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return(0,j.existsSync)(b)?{...a,relativePath:b}:a}let b=(0,k.join)(q,(0,k.basename)(a.relativePath)).replace(/\\/g,"/");return{...a,relativePath:b}}))}catch{}if(!p)return{pr:n,branch:o,evidence:e,warning:n?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[b,d]=await Promise.all([a.getPrDiffSummary(p,"main"),a.getFileDiffs(p,"main").catch(()=>void 0)]);return{pr:n,branch:o,diffSummary:b,fileDiffs:d,evidence:e}}catch{return{pr:n,branch:o,evidence:e,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0})),e=await p(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function p(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function r(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",null),a.s(["getMergeReviewData",()=>n],6542),(0,d.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40824366c573992e7452a59104bda451356720e308",null),a.s(["getFeaturePhaseTimings",()=>o],740),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",null),a.s(["getFeaturePlan",()=>q],12104),(0,d.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"40f228cae9cf6efff2a9594488e10e861a156313f8",null),a.s(["rebaseFeature",()=>r],70319);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,d.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",null),a.s(["getFeatureDrawerData",()=>u],54433)},76958,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(93225),m=a.i(94691),n=a.i(41872),o=a.i(9959),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(61402),z=a.i(76052),A=a.i(13008),B=a.i(74607),C=a.i(6542),D=a.i(740),E=a.i(12104),F=a.i(70319),G=a.i(54433);a.s([],40262),a.i(40262),a.s(["0023f4fa9b51a932f90ad317c638a0ff5f8df20f33",()=>o.checkAgentAuth,"009e985d734cca68e620d9586a3f1a681fa9d78351",()=>p.getAllAgentModels,"00ab1caf5454e6e3c412cde2abe86fc70095c47e41",()=>b.pickFolder,"00f7c99a3d2300b7d110353bf579c9b8b382cce462",()=>n.isAgentSetupComplete,"400cdc96dfd99ff707d59e760cfd64d80500ffacf3",()=>i.openIde,"401ac4dc5da5a0ff7c33b6fcade95567e5341005cd",()=>C.getMergeReviewData,"402c2cf15058f7145f51c917e0d57f857ce81104ff",()=>B.getResearchArtifact,"403bd2fb4cffa5715ba13f2ad001bdfb904c51ec09",()=>h.getDeploymentStatus,"403c62f1774307288813c961e50f627253e97fadac",()=>k.openFolder,"40533e87a717e3292eb8c9855b273eeffe45eef324",()=>g.stopDeployment,"40539c1de6724c7b0e0eac856792ca7fbbaf21bfdf",()=>e.deployFeature,"405d2e3335d7e882d5858248f52f74849a3a16b0a9",()=>t.startFeature,"40677ce16a71f0854eb8f029175331fa16017c220b",()=>A.getFeatureArtifact,"40736a7561e41a8e6b156be124131eaadf8b8f5c9f",()=>l.syncRepository,"407e379213f60640c8a9798abcbb260dd96ad4020a",()=>x.getFeatureMetadata,"40824366c573992e7452a59104bda451356720e308",()=>D.getFeaturePhaseTimings,"408a4ac841767d5ae2cb594a0a323875a185489b55",()=>u.stopFeature,"40b118db25f170dff6cba78b1e3287ce8508cd0619",()=>v.addRepository,"40bbf31380bd0eddc6ef384b14069ca87c9a6540f5",()=>m.getDeploymentLogs,"40bc5a8964927acae13eef463f05923ac30777fb73",()=>f.deployRepository,"40bc88f95521ec8a7884191fe033144cfcd29c8f60",()=>E.getFeaturePlan,"40c325a71c9218ea66f3bf42339d711a5972a63af6",()=>w.deleteRepository,"40cb48b2d644ae707da6481886cf1d8104dab8280f",()=>c.listGitHubRepositories,"40d1d89b6464c0dbfe07801279cf1dfdf8cb9cf4f7",()=>d.importGitHubRepository,"40d30186e83ac02a2de8a75448110b4dbf1222cb60",()=>j.openShell,"40d7eefb5a0f5e186c74cc149ece56805ec91e94f1",()=>G.getFeatureDrawerData,"40db868d8b527b2c86aa9fabf21c072a0fc37f525c",()=>s.resumeFeature,"40f228cae9cf6efff2a9594488e10e861a156313f8",()=>F.rebaseFeature,"602cf09c7e04fd9657fcd20f0a5bf90991f656570b",()=>q.updateAgentAndModel,"60afa4844875bd61764bb307aaacae26dda92bf738",()=>y.approveFeature,"70c16c2a2272b85caa54d96bf48c424511b288d2c0",()=>z.rejectFeature,"78ba91e3ea7cfe77da51d286f8df3ef7c5a5a07f5b",()=>r.deleteFeature],76958)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__c001183f._.js.map