@shepai/cli 1.135.2-pr438.f43bc1e → 1.135.2-pr440.e97f691

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 (283) hide show
  1. package/apis/json-schema/Feature.yaml +3 -0
  2. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  3. package/apis/json-schema/WorkflowConfig.yaml +0 -5
  4. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +2 -0
  5. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +0 -28
  7. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +0 -37
  9. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +0 -12
  11. package/dist/packages/core/src/application/ports/output/services/index.d.ts +3 -5
  12. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/ports/output/services/index.js +1 -2
  14. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts +20 -0
  15. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts.map +1 -0
  16. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.js +74 -0
  17. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts +20 -0
  18. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts.map +1 -0
  19. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.js +65 -0
  20. package/dist/packages/core/src/domain/generated/output.d.ts +6 -68
  21. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  22. package/dist/packages/core/src/domain/generated/output.js +1 -0
  23. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  24. package/dist/packages/core/src/infrastructure/di/container.js +10 -4
  25. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  26. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  27. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +6 -0
  28. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts +12 -0
  29. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts.map +1 -0
  30. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.js +16 -0
  31. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +7 -2
  33. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +1 -3
  34. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  35. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +1 -37
  36. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -2
  37. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  38. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +0 -21
  39. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts +18 -0
  40. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts.map +1 -0
  41. package/dist/src/presentation/cli/commands/feat/archive.command.js +54 -0
  42. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  43. package/dist/src/presentation/cli/commands/feat/index.js +5 -1
  44. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  45. package/dist/src/presentation/cli/commands/feat/ls.command.js +5 -0
  46. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts +17 -0
  47. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts.map +1 -0
  48. package/dist/src/presentation/cli/commands/feat/unarchive.command.js +42 -0
  49. package/dist/src/presentation/cli/index.js +0 -2
  50. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  51. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +6 -1
  52. package/dist/src/presentation/web/app/actions/archive-feature.d.ts +6 -0
  53. package/dist/src/presentation/web/app/actions/archive-feature.d.ts.map +1 -0
  54. package/dist/src/presentation/web/app/actions/archive-feature.js +16 -0
  55. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts +6 -0
  56. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts.map +1 -0
  57. package/dist/src/presentation/web/app/actions/unarchive-feature.js +16 -0
  58. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  59. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  60. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  61. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +6 -0
  62. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +3 -1
  63. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  64. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +11 -1
  65. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +22 -6
  67. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +5 -0
  68. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  69. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +75 -1
  70. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +13 -4
  72. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts +6 -0
  73. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
  74. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +70 -0
  75. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +6 -0
  76. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  77. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +43 -2
  78. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  79. package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -0
  80. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +1 -1
  81. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  82. package/dist/src/presentation/web/hooks/use-graph-state.js +17 -2
  83. package/dist/src/presentation/web/lib/derive-graph.d.ts +4 -0
  84. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  85. package/dist/src/presentation/web/lib/derive-graph.js +12 -0
  86. package/dist/tsconfig.build.tsbuildinfo +1 -1
  87. package/package.json +1 -1
  88. package/web/.next/BUILD_ID +1 -1
  89. package/web/.next/build-manifest.json +2 -2
  90. package/web/.next/fallback-build-manifest.json +2 -2
  91. package/web/.next/prerender-manifest.json +3 -3
  92. package/web/.next/required-server-files.js +1 -1
  93. package/web/.next/required-server-files.json +1 -1
  94. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +78 -48
  95. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -2
  96. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  97. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +78 -48
  99. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  100. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +90 -60
  103. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  104. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +90 -60
  107. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  108. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  109. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +74 -44
  111. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  112. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  113. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +78 -48
  115. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  116. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  117. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +90 -60
  119. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  120. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  121. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +90 -60
  123. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  124. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  125. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +74 -44
  127. package/web/.next/server/app/(dashboard)/page.js +2 -2
  128. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  129. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +74 -44
  131. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  132. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  133. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/_global-error.html +2 -2
  135. package/web/.next/server/app/_global-error.rsc +1 -1
  136. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  137. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  138. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  139. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  140. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  141. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  142. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  143. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  144. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  145. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  146. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  147. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  148. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  149. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  150. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  151. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  153. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  154. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  155. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  156. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  158. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  159. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  160. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  161. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  162. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  163. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  164. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  165. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b731076a.js +3 -0
  167. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b731076a.js.map +1 -0
  168. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  169. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_edb1ed93.js +3 -0
  171. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_edb1ed93.js.map +1 -0
  172. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9b4d65a0.js +3 -0
  173. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9b4d65a0.js.map +1 -0
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +1 -1
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/{[root-of-the-server]__31bc28da._.js → [root-of-the-server]__78a7fcc9._.js} +2 -2
  182. package/web/.next/server/chunks/ssr/{[root-of-the-server]__90ce4b6d._.js.map → [root-of-the-server]__78a7fcc9._.js.map} +1 -1
  183. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/{[root-of-the-server]__32ecbed9._.js → [root-of-the-server]__8fbe6424._.js} +2 -2
  186. package/web/.next/server/chunks/ssr/{[root-of-the-server]__31bc28da._.js.map → [root-of-the-server]__8fbe6424._.js.map} +1 -1
  187. package/web/.next/server/chunks/ssr/{[root-of-the-server]__90f9ae71._.js → [root-of-the-server]__960623da._.js} +2 -2
  188. package/web/.next/server/chunks/ssr/{[root-of-the-server]__90f9ae71._.js.map → [root-of-the-server]__960623da._.js.map} +1 -1
  189. package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js +2 -2
  190. package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__9c45d070._.js +1 -1
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__9c45d070._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/{[root-of-the-server]__90ce4b6d._.js → [root-of-the-server]__c3bd3892._.js} +2 -2
  196. package/web/.next/server/chunks/ssr/{[root-of-the-server]__32ecbed9._.js.map → [root-of-the-server]__c3bd3892._.js.map} +1 -1
  197. package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
  198. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/{_7e29a7bc._.js → _4fce23fd._.js} +2 -2
  200. package/web/.next/server/chunks/ssr/_4fce23fd._.js.map +1 -0
  201. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  204. package/web/.next/server/chunks/ssr/_b6960ca0._.js +4 -0
  205. package/web/.next/server/chunks/ssr/_b6960ca0._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  208. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/_f18353a1._.js +3 -0
  210. package/web/.next/server/chunks/ssr/{_8b0c1045._.js.map → _f18353a1._.js.map} +1 -1
  211. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  214. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/{src_presentation_web_cfea7939._.js → src_presentation_web_5a474643._.js} +2 -2
  216. package/web/.next/server/chunks/ssr/{src_presentation_web_cfea7939._.js.map → src_presentation_web_5a474643._.js.map} +1 -1
  217. package/web/.next/server/chunks/ssr/src_presentation_web_820d7c79._.js +5 -0
  218. package/web/.next/server/chunks/ssr/{src_presentation_web_8e7fe0d1._.js.map → src_presentation_web_820d7c79._.js.map} +1 -1
  219. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_005499f7.js +3 -0
  220. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_005499f7.js.map +1 -0
  221. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  222. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  223. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  224. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web_a1a382f3._.js +5 -0
  226. package/web/.next/server/chunks/ssr/{src_presentation_web_b9023017._.js.map → src_presentation_web_a1a382f3._.js.map} +1 -1
  227. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  228. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  230. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  232. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  233. package/web/.next/server/pages/500.html +2 -2
  234. package/web/.next/server/server-reference-manifest.js +1 -1
  235. package/web/.next/server/server-reference-manifest.json +452 -296
  236. package/web/.next/static/chunks/09db7c74857d727e.js +1 -0
  237. package/web/.next/static/chunks/0f1221daf6a27f15.css +1 -0
  238. package/web/.next/static/chunks/{fe4aab39650fe1da.js → 14c5d3477ab30cbd.js} +1 -1
  239. package/web/.next/static/chunks/{13daed9124d5db9d.js → 16557147753ecd97.js} +2 -2
  240. package/web/.next/static/chunks/{d45958925d9b5068.js → 381674b7016bfe2d.js} +1 -1
  241. package/web/.next/static/chunks/{475a8dfc028d8ade.js → 3dbb95c2df37cd69.js} +1 -1
  242. package/web/.next/static/chunks/{3cf03a4faffa22e9.js → 42d4cfca94db8f3a.js} +1 -1
  243. package/web/.next/static/chunks/{e87e22afc1ecf600.js → 458c2a7ea153c3f0.js} +2 -2
  244. package/web/.next/static/chunks/{30f300c565f39570.js → 5e2a1042deae63bc.js} +1 -1
  245. package/web/.next/static/chunks/{2b853c80d6032a5b.js → 83fe7a19db594510.js} +1 -1
  246. package/web/.next/static/chunks/{9b5e512c27b112a5.js → 8be41bcbf3d0a5b2.js} +1 -1
  247. package/web/.next/static/chunks/{daf11c5cc3adbcbc.js → bd2735ffbb5a405f.js} +1 -1
  248. package/web/.next/static/chunks/d7317df625d1f4bc.js +1 -0
  249. package/apis/json-schema/DoctorDiagnosticReport.yaml +0 -24
  250. package/apis/json-schema/FailedRunSummary.yaml +0 -22
  251. package/apis/json-schema/SystemInfo.yaml +0 -22
  252. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts +0 -57
  253. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts.map +0 -1
  254. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.js +0 -39
  255. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts +0 -53
  256. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts.map +0 -1
  257. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.js +0 -266
  258. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts +0 -17
  259. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts.map +0 -1
  260. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.js +0 -69
  261. package/dist/src/presentation/cli/commands/doctor.command.d.ts +0 -20
  262. package/dist/src/presentation/cli/commands/doctor.command.d.ts.map +0 -1
  263. package/dist/src/presentation/cli/commands/doctor.command.js +0 -127
  264. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +0 -3
  265. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +0 -1
  266. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +0 -3
  267. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +0 -1
  268. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +0 -3
  269. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +0 -1
  270. package/web/.next/server/chunks/ssr/_77083321._.js +0 -4
  271. package/web/.next/server/chunks/ssr/_77083321._.js.map +0 -1
  272. package/web/.next/server/chunks/ssr/_7e29a7bc._.js.map +0 -1
  273. package/web/.next/server/chunks/ssr/_8b0c1045._.js +0 -3
  274. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +0 -5
  275. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +0 -3
  276. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +0 -1
  277. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +0 -5
  278. package/web/.next/static/chunks/0d539860f56e6468.js +0 -1
  279. package/web/.next/static/chunks/3e2d7d07926b05bf.css +0 -1
  280. package/web/.next/static/chunks/67b290f5a29737c1.js +0 -1
  281. /package/web/.next/static/{rYnuAm9xTEAUIz5Pqp9fP → lRiUQJLpOuDbBG06Veg7i}/_buildManifest.js +0 -0
  282. /package/web/.next/static/{rYnuAm9xTEAUIz5Pqp9fP → lRiUQJLpOuDbBG06Veg7i}/_clientMiddlewareManifest.json +0 -0
  283. /package/web/.next/static/{rYnuAm9xTEAUIz5Pqp9fP → lRiUQJLpOuDbBG06Veg7i}/_ssgManifest.js +0 -0
@@ -1,39 +0,0 @@
1
- /**
2
- * GitHub Issue Service Interface
3
- *
4
- * Output port for creating GitHub issues via the gh CLI.
5
- * Implementations wrap `gh issue create` for issue creation on
6
- * any GitHub repository. Separate from IExternalIssueFetcher which
7
- * is a read-only fetcher — this service handles write operations.
8
- */
9
- // ---------------------------------------------------------------------------
10
- // Error types
11
- // ---------------------------------------------------------------------------
12
- /**
13
- * Error codes for GitHub issue creation operations.
14
- */
15
- export var GitHubIssueErrorCode;
16
- (function (GitHubIssueErrorCode) {
17
- /** The target repository was not found or the user lacks access */
18
- GitHubIssueErrorCode["GH_NOT_FOUND"] = "GH_NOT_FOUND";
19
- /** GitHub CLI authentication failure */
20
- GitHubIssueErrorCode["AUTH_FAILURE"] = "AUTH_FAILURE";
21
- /** Network connectivity error during API call */
22
- GitHubIssueErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
23
- /** Issue creation failed for an unspecified reason */
24
- GitHubIssueErrorCode["CREATE_FAILED"] = "CREATE_FAILED";
25
- })(GitHubIssueErrorCode || (GitHubIssueErrorCode = {}));
26
- /**
27
- * Typed error for GitHub issue creation operations.
28
- */
29
- export class GitHubIssueError extends Error {
30
- code;
31
- cause;
32
- constructor(message, code, cause) {
33
- super(message);
34
- this.code = code;
35
- this.cause = cause;
36
- this.name = 'GitHubIssueError';
37
- Object.setPrototypeOf(this, new.target.prototype);
38
- }
39
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * Doctor Diagnose Use Case
3
- *
4
- * Orchestrates the shep doctor workflow:
5
- * 1. Collect diagnostic context (failed agent runs, version, system info)
6
- * 2. Create a structured GitHub issue on shep-ai/cli
7
- * 3. Optionally attempt a fix via AI agent
8
- * 4. Open a PR with the fix (direct push for maintainers, fork for contributors)
9
- *
10
- * Following Clean Architecture: all external operations are injected via interfaces.
11
- */
12
- import type { IAgentRunRepository } from '../../ports/output/agents/agent-run-repository.interface.js';
13
- import type { IVersionService } from '../../ports/output/services/version-service.interface.js';
14
- import type { IGitHubIssueService } from '../../ports/output/services/github-issue-service.interface.js';
15
- import type { IGitHubRepositoryService } from '../../ports/output/services/github-repository-service.interface.js';
16
- import type { IGitPrService } from '../../ports/output/services/git-pr-service.interface.js';
17
- import type { IAgentExecutorProvider } from '../../ports/output/agents/agent-executor-provider.interface.js';
18
- import type { ExecFunction } from '../../../infrastructure/services/git/worktree.service.js';
19
- import type { DoctorDiagnosticReport } from '../../../domain/generated/output.js';
20
- export interface DoctorDiagnoseInput {
21
- description: string;
22
- fix: boolean;
23
- workdir?: string;
24
- }
25
- export interface DoctorDiagnoseResult {
26
- diagnosticReport: DoctorDiagnosticReport;
27
- issueUrl: string;
28
- issueNumber: number;
29
- prUrl?: string;
30
- flowType?: 'maintainer' | 'contributor';
31
- error?: string;
32
- cleanedUp: boolean;
33
- }
34
- export declare class DoctorDiagnoseUseCase {
35
- private readonly agentRunRepo;
36
- private readonly versionService;
37
- private readonly issueService;
38
- private readonly repoService;
39
- private readonly prService;
40
- private readonly agentExecutorProvider;
41
- private readonly execFile;
42
- constructor(agentRunRepo: IAgentRunRepository, versionService: IVersionService, issueService: IGitHubIssueService, repoService: IGitHubRepositoryService, prService: IGitPrService, agentExecutorProvider: IAgentExecutorProvider, execFile: ExecFunction);
43
- execute(input: DoctorDiagnoseInput): Promise<DoctorDiagnoseResult>;
44
- private collectDiagnostics;
45
- private collectFailedRuns;
46
- private sanitizeRunSummary;
47
- private collectSystemInfo;
48
- private formatIssueTitle;
49
- private formatIssueBody;
50
- private attemptFix;
51
- private buildFixPrompt;
52
- }
53
- //# sourceMappingURL=doctor-diagnose.use-case.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor-diagnose.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,qCAAqC,CAAC;AAO7C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAcD,qBACa,qBAAqB;IAG9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAZR,YAAY,EAAE,mBAAmB,EAEjC,cAAc,EAAE,eAAe,EAE/B,YAAY,EAAE,mBAAmB,EAEjC,WAAW,EAAE,wBAAwB,EAErC,SAAS,EAAE,aAAa,EAExB,qBAAqB,EAAE,sBAAsB,EAE7C,QAAQ,EAAE,YAAY;IAGnC,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAgC1D,kBAAkB;YAelB,iBAAiB;IAS/B,OAAO,CAAC,kBAAkB;YAUZ,iBAAiB;IAqB/B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;YAgCT,UAAU;IA8FxB,OAAO,CAAC,cAAc;CAyBvB"}
@@ -1,266 +0,0 @@
1
- /**
2
- * Doctor Diagnose Use Case
3
- *
4
- * Orchestrates the shep doctor workflow:
5
- * 1. Collect diagnostic context (failed agent runs, version, system info)
6
- * 2. Create a structured GitHub issue on shep-ai/cli
7
- * 3. Optionally attempt a fix via AI agent
8
- * 4. Open a PR with the fix (direct push for maintainers, fork for contributors)
9
- *
10
- * Following Clean Architecture: all external operations are injected via interfaces.
11
- */
12
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
- 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;
16
- return c > 3 && r && Object.defineProperty(target, key, r), r;
17
- };
18
- var __metadata = (this && this.__metadata) || function (k, v) {
19
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20
- };
21
- var __param = (this && this.__param) || function (paramIndex, decorator) {
22
- return function (target, key) { decorator(target, key, paramIndex); }
23
- };
24
- import { injectable, inject } from 'tsyringe';
25
- import { randomUUID } from 'node:crypto';
26
- import { tmpdir } from 'node:os';
27
- import { mkdir, rm } from 'node:fs/promises';
28
- import path from 'node:path';
29
- import { AgentRunStatus } from '../../../domain/generated/output.js';
30
- // ---------------------------------------------------------------------------
31
- // Constants
32
- // ---------------------------------------------------------------------------
33
- const SHEP_REPO = 'shep-ai/cli';
34
- const MAX_FAILED_RUNS = 10;
35
- const ISSUE_LABELS = ['bug', 'shep-doctor'];
36
- // ---------------------------------------------------------------------------
37
- // Use Case
38
- // ---------------------------------------------------------------------------
39
- let DoctorDiagnoseUseCase = class DoctorDiagnoseUseCase {
40
- agentRunRepo;
41
- versionService;
42
- issueService;
43
- repoService;
44
- prService;
45
- agentExecutorProvider;
46
- execFile;
47
- constructor(agentRunRepo, versionService, issueService, repoService, prService, agentExecutorProvider, execFile) {
48
- this.agentRunRepo = agentRunRepo;
49
- this.versionService = versionService;
50
- this.issueService = issueService;
51
- this.repoService = repoService;
52
- this.prService = prService;
53
- this.agentExecutorProvider = agentExecutorProvider;
54
- this.execFile = execFile;
55
- }
56
- async execute(input) {
57
- // Step 1: Collect diagnostics
58
- const diagnosticReport = await this.collectDiagnostics(input.description);
59
- // Step 2: Create GitHub issue
60
- const issueTitle = this.formatIssueTitle(input.description);
61
- const issueBody = this.formatIssueBody(diagnosticReport);
62
- const { url: issueUrl, number: issueNumber } = await this.issueService.createIssue(SHEP_REPO, issueTitle, issueBody, ISSUE_LABELS);
63
- // Step 3: If no fix requested, return early
64
- if (!input.fix) {
65
- return {
66
- diagnosticReport,
67
- issueUrl,
68
- issueNumber,
69
- cleanedUp: false,
70
- };
71
- }
72
- // Step 4: Attempt fix
73
- return this.attemptFix(input, diagnosticReport, issueUrl, issueNumber);
74
- }
75
- // -------------------------------------------------------------------------
76
- // Diagnostic Collection (Task 10)
77
- // -------------------------------------------------------------------------
78
- async collectDiagnostics(userDescription) {
79
- const [failedRunSummaries, systemInfo, cliVersion] = await Promise.all([
80
- this.collectFailedRuns(),
81
- this.collectSystemInfo(),
82
- Promise.resolve(this.versionService.getVersion().version),
83
- ]);
84
- return {
85
- userDescription,
86
- failedRunSummaries,
87
- systemInfo,
88
- cliVersion,
89
- };
90
- }
91
- async collectFailedRuns() {
92
- const allRuns = await this.agentRunRepo.list();
93
- return allRuns
94
- .filter((run) => run.status === AgentRunStatus.failed)
95
- .slice(0, MAX_FAILED_RUNS)
96
- .map((run) => this.sanitizeRunSummary(run));
97
- }
98
- sanitizeRunSummary(run) {
99
- return {
100
- agentType: run.agentType,
101
- agentName: run.agentName,
102
- error: run.error ?? 'Unknown error',
103
- timestamp: run.createdAt instanceof Date ? run.createdAt.toISOString() : String(run.createdAt),
104
- };
105
- }
106
- async collectSystemInfo() {
107
- let ghVersion = 'unknown';
108
- try {
109
- const { stdout } = await this.execFile('gh', ['--version']);
110
- ghVersion = stdout.trim();
111
- }
112
- catch {
113
- // gh not installed or not available — use fallback
114
- }
115
- return {
116
- nodeVersion: process.version,
117
- platform: process.platform,
118
- arch: process.arch,
119
- ghVersion,
120
- };
121
- }
122
- // -------------------------------------------------------------------------
123
- // Issue Formatting (Task 11)
124
- // -------------------------------------------------------------------------
125
- formatIssueTitle(description) {
126
- const firstLine = description.split('\n')[0].trim();
127
- const truncated = firstLine.length > 60 ? `${firstLine.slice(0, 60)}...` : firstLine;
128
- return `[shep doctor] ${truncated}`;
129
- }
130
- formatIssueBody(report) {
131
- const sections = [];
132
- sections.push('## Problem Description\n');
133
- sections.push(report.userDescription);
134
- sections.push('\n## Environment\n');
135
- sections.push(`- **shep CLI version:** ${report.cliVersion}`);
136
- sections.push(`- **Node.js:** ${report.systemInfo.nodeVersion}`);
137
- sections.push(`- **Platform:** ${report.systemInfo.platform} (${report.systemInfo.arch})`);
138
- sections.push(`- **gh CLI:** ${report.systemInfo.ghVersion}`);
139
- if (report.failedRunSummaries.length > 0) {
140
- sections.push('\n## Recent Failed Agent Runs\n');
141
- for (const run of report.failedRunSummaries) {
142
- sections.push(`### ${run.agentName} (${run.agentType})`);
143
- sections.push(`- **Error:** ${run.error}`);
144
- sections.push(`- **Timestamp:** ${run.timestamp}`);
145
- sections.push('');
146
- }
147
- }
148
- sections.push('\n---\n');
149
- sections.push('_Reported via `shep doctor`_');
150
- return sections.join('\n');
151
- }
152
- // -------------------------------------------------------------------------
153
- // Fix Workflow (Task 11)
154
- // -------------------------------------------------------------------------
155
- async attemptFix(input, diagnosticReport, issueUrl, issueNumber) {
156
- const isUserWorkdir = !!input.workdir;
157
- const workdir = input.workdir ?? path.join(tmpdir(), `shep-doctor-${randomUUID()}`);
158
- // Use a mutable result object so finally block can update cleanedUp
159
- const result = {
160
- diagnosticReport,
161
- issueUrl,
162
- issueNumber,
163
- cleanedUp: false,
164
- };
165
- try {
166
- // Ensure working directory exists
167
- await mkdir(workdir, { recursive: true });
168
- // Check push access (fall back to contributor flow on error)
169
- let hasPushAccess = false;
170
- try {
171
- hasPushAccess = await this.repoService.checkPushAccess(SHEP_REPO);
172
- }
173
- catch {
174
- // NFR-9: fall back to fork path on any detection failure
175
- }
176
- const flowType = hasPushAccess ? 'maintainer' : 'contributor';
177
- result.flowType = flowType;
178
- // Clone repository (direct or via fork)
179
- let repoToClone = SHEP_REPO;
180
- if (flowType === 'contributor') {
181
- const { nameWithOwner } = await this.repoService.forkRepository(SHEP_REPO);
182
- repoToClone = nameWithOwner;
183
- }
184
- await this.repoService.cloneRepository(repoToClone, workdir, undefined);
185
- // Create fix branch
186
- const branchName = `doctor/fix-${issueNumber}`;
187
- await this.execFile('git', ['checkout', '-b', branchName], {
188
- cwd: workdir,
189
- });
190
- // Invoke AI agent
191
- try {
192
- const executor = await this.agentExecutorProvider.getExecutor();
193
- const prompt = this.buildFixPrompt(diagnosticReport, issueNumber);
194
- await executor.execute(prompt, { cwd: workdir });
195
- }
196
- catch (agentError) {
197
- result.error = `Fix attempt failed: ${agentError.message}`;
198
- return result;
199
- }
200
- // Check if agent produced changes
201
- const hasChanges = await this.prService.hasUncommittedChanges(workdir);
202
- if (!hasChanges) {
203
- result.error = 'Fix attempt produced no changes';
204
- return result;
205
- }
206
- // Commit, push, and create PR
207
- await this.prService.commitAll(workdir, `fix: address issue #${issueNumber} reported via shep doctor`);
208
- await this.prService.push(workdir, branchName, true);
209
- const prResult = await this.prService.createPrFromArgs(workdir, {
210
- title: `fix: address shep doctor issue #${issueNumber}`,
211
- body: `## Summary\n\nAutomated fix attempt for #${issueNumber}.\n\nThis PR was created by \`shep doctor\` after diagnosing a reported issue.\n\nRelates to #${issueNumber}`,
212
- labels: ['shep-doctor'],
213
- base: 'main',
214
- repo: flowType === 'contributor' ? SHEP_REPO : undefined,
215
- });
216
- result.prUrl = prResult.url;
217
- return result;
218
- }
219
- finally {
220
- // Cleanup temp directory (unless user specified --workdir)
221
- if (!isUserWorkdir) {
222
- try {
223
- await rm(workdir, { recursive: true, force: true });
224
- result.cleanedUp = true;
225
- }
226
- catch {
227
- // Best-effort cleanup
228
- }
229
- }
230
- }
231
- }
232
- buildFixPrompt(report, issueNumber) {
233
- const lines = [];
234
- lines.push(`You are fixing issue #${issueNumber} in the shep-ai/cli codebase.`);
235
- lines.push('');
236
- lines.push('## Problem Description');
237
- lines.push(report.userDescription);
238
- lines.push('');
239
- if (report.failedRunSummaries.length > 0) {
240
- lines.push('## Error Context');
241
- for (const run of report.failedRunSummaries) {
242
- lines.push(`- Agent: ${run.agentName} (${run.agentType})`);
243
- lines.push(` Error: ${run.error}`);
244
- }
245
- lines.push('');
246
- }
247
- lines.push('## Instructions');
248
- lines.push('1. Analyze the codebase to identify the root cause');
249
- lines.push('2. Implement a fix for the identified issue');
250
- lines.push('3. Run tests to verify the fix works');
251
- lines.push('4. Keep changes minimal and focused');
252
- return lines.join('\n');
253
- }
254
- };
255
- DoctorDiagnoseUseCase = __decorate([
256
- injectable(),
257
- __param(0, inject('IAgentRunRepository')),
258
- __param(1, inject('IVersionService')),
259
- __param(2, inject('IGitHubIssueService')),
260
- __param(3, inject('IGitHubRepositoryService')),
261
- __param(4, inject('IGitPrService')),
262
- __param(5, inject('IAgentExecutorProvider')),
263
- __param(6, inject('ExecFunction')),
264
- __metadata("design:paramtypes", [Object, Object, Object, Object, Object, Object, Function])
265
- ], DoctorDiagnoseUseCase);
266
- export { DoctorDiagnoseUseCase };
@@ -1,17 +0,0 @@
1
- /**
2
- * GitHub Issue Creator Service Implementation
3
- *
4
- * Implements IGitHubIssueService using the gh CLI for creating issues
5
- * on GitHub repositories. Wraps `gh issue create` with structured
6
- * error handling and result parsing.
7
- */
8
- import type { ExecFunction } from '../git/worktree.service.js';
9
- import type { IGitHubIssueService, GitHubIssueCreateResult } from '../../../application/ports/output/services/github-issue-service.interface.js';
10
- export declare class GitHubIssueCreatorService implements IGitHubIssueService {
11
- private readonly execFile;
12
- constructor(execFile: ExecFunction);
13
- createIssue(repo: string, title: string, body: string, labels: string[]): Promise<GitHubIssueCreateResult>;
14
- private parseIssueNumberFromUrl;
15
- private mapError;
16
- }
17
- //# sourceMappingURL=github-issue-creator.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-issue-creator.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/external/github-issue-creator.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,8EAA8E,CAAC;AAMtF,qBACa,yBAA0B,YAAW,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,uBAAuB,CAAC;IAkBnC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,QAAQ;CAuCjB"}
@@ -1,69 +0,0 @@
1
- /**
2
- * GitHub Issue Creator Service Implementation
3
- *
4
- * Implements IGitHubIssueService using the gh CLI for creating issues
5
- * on GitHub repositories. Wraps `gh issue create` with structured
6
- * error handling and result parsing.
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 { GitHubIssueError, GitHubIssueErrorCode, } from '../../../application/ports/output/services/github-issue-service.interface.js';
22
- let GitHubIssueCreatorService = class GitHubIssueCreatorService {
23
- execFile;
24
- constructor(execFile) {
25
- this.execFile = execFile;
26
- }
27
- async createIssue(repo, title, body, labels) {
28
- const args = ['issue', 'create', '--repo', repo, '--title', title, '--body', body];
29
- for (const label of labels) {
30
- args.push('--label', label);
31
- }
32
- try {
33
- const { stdout } = await this.execFile('gh', args);
34
- const url = stdout.trim();
35
- const number = this.parseIssueNumberFromUrl(url);
36
- return { url, number };
37
- }
38
- catch (error) {
39
- throw this.mapError(error);
40
- }
41
- }
42
- parseIssueNumberFromUrl(url) {
43
- const match = url.match(/\/issues\/(\d+)/);
44
- return match ? parseInt(match[1], 10) : 0;
45
- }
46
- mapError(error) {
47
- const message = error instanceof Error ? error.message : String(error);
48
- const cause = error instanceof Error ? error : undefined;
49
- const errnoCode = error?.code;
50
- if (errnoCode === 'ENOENT' || message.includes('ENOENT')) {
51
- return new GitHubIssueError('GitHub CLI (gh) is not installed. Install it from https://cli.github.com/', GitHubIssueErrorCode.GH_NOT_FOUND, cause);
52
- }
53
- if (message.includes('auth') || message.includes('Authentication') || message.includes('403')) {
54
- return new GitHubIssueError('GitHub CLI is not authenticated. Run `gh auth login` to sign in.', GitHubIssueErrorCode.AUTH_FAILURE, cause);
55
- }
56
- if (message.includes('network') ||
57
- message.includes('ECONNREFUSED') ||
58
- message.includes('ETIMEDOUT')) {
59
- return new GitHubIssueError(`Network error creating issue: ${message}`, GitHubIssueErrorCode.NETWORK_ERROR, cause);
60
- }
61
- return new GitHubIssueError(`Failed to create issue on ${message}`, GitHubIssueErrorCode.CREATE_FAILED, cause);
62
- }
63
- };
64
- GitHubIssueCreatorService = __decorate([
65
- injectable(),
66
- __param(0, inject('ExecFunction')),
67
- __metadata("design:paramtypes", [Function])
68
- ], GitHubIssueCreatorService);
69
- export { GitHubIssueCreatorService };
@@ -1,20 +0,0 @@
1
- /**
2
- * Doctor Command
3
- *
4
- * Diagnoses shep operation failures, opens a GitHub issue on shep-ai/cli,
5
- * and optionally invokes an AI agent to attempt a fix and open a PR.
6
- *
7
- * Usage: shep doctor [description] [options]
8
- *
9
- * @example
10
- * $ shep doctor "agent crashed during planning"
11
- * $ shep doctor --fix
12
- * $ shep doctor --no-fix
13
- * $ shep doctor "broken workflow" --fix --workdir /tmp/my-fix
14
- */
15
- import { Command } from 'commander';
16
- /**
17
- * Create the doctor command
18
- */
19
- export declare function createDoctorCommand(): Command;
20
- //# sourceMappingURL=doctor.command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.command.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/commands/doctor.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CA8E7C"}
@@ -1,127 +0,0 @@
1
- /**
2
- * Doctor Command
3
- *
4
- * Diagnoses shep operation failures, opens a GitHub issue on shep-ai/cli,
5
- * and optionally invokes an AI agent to attempt a fix and open a PR.
6
- *
7
- * Usage: shep doctor [description] [options]
8
- *
9
- * @example
10
- * $ shep doctor "agent crashed during planning"
11
- * $ shep doctor --fix
12
- * $ shep doctor --no-fix
13
- * $ shep doctor "broken workflow" --fix --workdir /tmp/my-fix
14
- */
15
- import { Command } from 'commander';
16
- import { container } from '../../../../packages/core/src/infrastructure/di/container.js';
17
- import { DoctorDiagnoseUseCase } from '../../../../packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.js';
18
- import { colors, messages, spinner } from '../ui/index.js';
19
- /**
20
- * Create the doctor command
21
- */
22
- export function createDoctorCommand() {
23
- const cmd = new Command('doctor')
24
- .description('Diagnose shep failures, open a GitHub issue, and optionally attempt a fix')
25
- .argument('[description]', 'Problem description (prompted interactively if omitted)')
26
- .option('--fix', 'Skip confirmation and attempt a fix automatically')
27
- .option('--no-fix', 'Skip the fix attempt entirely (only create the issue)')
28
- .action(async (description, options) => {
29
- try {
30
- // Step 1: Validate prerequisites
31
- await validatePrerequisites();
32
- // Step 2: Collect description (argument or interactive prompt)
33
- const problemDescription = description ?? (await promptForDescription());
34
- if (!problemDescription) {
35
- messages.info('No description provided. Cancelled.');
36
- return;
37
- }
38
- // Step 3: Determine fix behavior
39
- const shouldFix = await resolveFix(options);
40
- // Step 4: Run the use case
41
- const useCase = container.resolve(DoctorDiagnoseUseCase);
42
- messages.newline();
43
- messages.info('Running shep doctor...');
44
- messages.newline();
45
- const result = await spinner('Collecting diagnostics and creating issue', () => useCase.execute({
46
- description: problemDescription,
47
- fix: shouldFix,
48
- workdir: options.workdir,
49
- }));
50
- // Step 5: Display results
51
- messages.newline();
52
- messages.success(`GitHub issue created: ${colors.accent(result.issueUrl)}`);
53
- if (result.prUrl) {
54
- messages.success(`Pull request created: ${colors.accent(result.prUrl)}`);
55
- if (result.flowType) {
56
- messages.info(`Flow: ${result.flowType === 'maintainer' ? 'direct push (maintainer)' : 'fork (contributor)'}`);
57
- }
58
- }
59
- else if (shouldFix && result.error) {
60
- messages.warning(`Fix attempt failed: ${result.error}`);
61
- messages.info('The issue has been created — a maintainer can review it.');
62
- }
63
- else if (!shouldFix) {
64
- messages.info('Issue created. Use --fix to attempt an automated fix.');
65
- }
66
- if (result.cleanedUp) {
67
- messages.info('Temporary working directory cleaned up.');
68
- }
69
- messages.newline();
70
- }
71
- catch (error) {
72
- const err = error instanceof Error ? error : new Error(String(error));
73
- // Handle Ctrl+C gracefully
74
- if (err.message.includes('force closed') || err.message.includes('User force closed')) {
75
- messages.info('Cancelled.');
76
- return;
77
- }
78
- messages.error('Doctor failed', err);
79
- process.exitCode = 1;
80
- }
81
- });
82
- // Commander handles --no-fix by negating the --fix option, but we need
83
- // explicit --workdir as a separate option
84
- cmd.option('--workdir <path>', 'Custom directory for the cloned repository');
85
- return cmd;
86
- }
87
- /**
88
- * Validate that gh CLI is installed and authenticated.
89
- */
90
- async function validatePrerequisites() {
91
- const toolInstaller = container.resolve('IToolInstallerService');
92
- const ghStatus = await toolInstaller.checkAvailability('gh');
93
- if (ghStatus.status !== 'available') {
94
- throw new Error('GitHub CLI (gh) is not installed. Install it from https://cli.github.com/ and run: gh auth login');
95
- }
96
- const repoService = container.resolve('IGitHubRepositoryService');
97
- await repoService.checkAuth();
98
- }
99
- /**
100
- * Prompt the user interactively for a problem description.
101
- */
102
- async function promptForDescription() {
103
- const { input } = await import('@inquirer/prompts');
104
- const description = await input({
105
- message: 'Describe the problem you encountered:',
106
- });
107
- return description.trim() || undefined;
108
- }
109
- /**
110
- * Determine whether to attempt a fix based on flags or interactive prompt.
111
- */
112
- async function resolveFix(options) {
113
- // --fix explicitly set: always fix
114
- if (options.fix === true) {
115
- return true;
116
- }
117
- // --no-fix explicitly set (Commander sets fix to false): skip fix
118
- if (options.fix === false) {
119
- return false;
120
- }
121
- // Interactive: ask the user
122
- const { confirm } = await import('@inquirer/prompts');
123
- return confirm({
124
- message: 'Would you like shep to attempt a fix?',
125
- default: false,
126
- });
127
- }
@@ -1,3 +0,0 @@
1
- module.exports=[70500,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(94691),m=a.i(41872),n=a.i(9959),o=a.i(23504),p=a.i(27900),q=a.i(50845),r=a.i(26604),s=a.i(54723),t=a.i(18942),u=a.i(49560),v=a.i(39353),w=a.i(29207),x=a.i(92658),y=a.i(96380),z=a.i(12581);async function A(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,y.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 B(a){if(!a?.trim())return[];try{let b=(0,y.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,z.ensureServerEntryExports)([A]),(0,x.registerServerReference)(A,"40f2ba041b466e74b26e2671bc9d07c60371aacd85",null),(0,z.ensureServerEntryExports)([B]),(0,x.registerServerReference)(B,"40b7901b50a4ef0b2259fb43c2eecde596cec2c8f6",null),a.s([],80106),a.i(80106),a.s(["0018bb5e22ad67924a56b21ec9890648fd8d5bd5a5",()=>o.getAllAgentModels,"002146a86ca42fe774609dab06c46bec0116f887ee",()=>m.isAgentSetupComplete,"00823dc1fa3848314181cbf1f92893a46f2c0c1520",()=>b.pickFolder,"00b6d193a3e82dd7be5b1e6831bc2147ab106a2f05",()=>n.checkAgentAuth,"402fbc963c9bbf5a237a2e3d0c774ac6b3f9862efe",()=>i.openIde,"40308d3b30b2065d3948ab8d97547c7e61457c5bd7",()=>u.addRepository,"403578eaded3ddae9a83866bc84f633d0bf0421f2e",()=>h.getDeploymentStatus,"403f823423486da4b807cfecb14cdd0e1110a7084a",()=>t.stopFeature,"4045dd179f494338c5f278abb85bf81b6cc8f0a524",()=>j.openShell,"406103d1859794c8cc46b853cb11deec5caac6fd6c",()=>e.deployFeature,"4063ab4555c23bc890ce1533aeafaf47f730542e83",()=>r.resumeFeature,"406589349452e8beb06c289496f014e3fbd36946b6",()=>d.importGitHubRepository,"407a5baeb5c7600a46cf9c8cec99f029221cdaf5ee",()=>g.stopDeployment,"407b2a764d27a1af549e4f7a075ddae80ff11827e3",()=>f.deployRepository,"4089907da4849d08bc1a4ec3b05c96c26ccac1b917",()=>c.listGitHubRepositories,"409b6032246629b6518d1dd45685d942ad4beffba6",()=>l.getDeploymentLogs,"40a1252f2c7e727ddb5e31ee54c6d73dcd8f235f1a",()=>s.startFeature,"40b7901b50a4ef0b2259fb43c2eecde596cec2c8f6",()=>B,"40ebed18fb9f88ffbaf3c78cdae619f9de7ab5a27d",()=>k.openFolder,"40ed0cdf50197c7a2bb89567e0ed2c6f243d6c77f4",()=>v.deleteRepository,"40efec5eb2207c3f2636fcf7613ab51ba382d00708",()=>w.getFeatureMetadata,"40f2ba041b466e74b26e2671bc9d07c60371aacd85",()=>A,"60bb647e4c1179aea8246c550654c8c70f8e958137",()=>p.updateAgentAndModel,"78364ce7bdd2b1e5901adaf2d4c55fd066c877d787",()=>q.deleteFeature],70500)}];
2
-
3
- //# sourceMappingURL=744ca_web__next-internal_server_app_%28dashboard%29_%40drawer_adopt_page_actions_4e741df2.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 '00823dc1fa3848314181cbf1f92893a46f2c0c1520'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '4089907da4849d08bc1a4ec3b05c96c26ccac1b917'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '406589349452e8beb06c289496f014e3fbd36946b6'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '406103d1859794c8cc46b853cb11deec5caac6fd6c'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '407b2a764d27a1af549e4f7a075ddae80ff11827e3'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '407a5baeb5c7600a46cf9c8cec99f029221cdaf5ee'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403578eaded3ddae9a83866bc84f633d0bf0421f2e'} from 'ACTIONS_MODULE6'\nexport {openIde as '402fbc963c9bbf5a237a2e3d0c774ac6b3f9862efe'} from 'ACTIONS_MODULE7'\nexport {openShell as '4045dd179f494338c5f278abb85bf81b6cc8f0a524'} from 'ACTIONS_MODULE8'\nexport {openFolder as '40ebed18fb9f88ffbaf3c78cdae619f9de7ab5a27d'} from 'ACTIONS_MODULE9'\nexport {getDeploymentLogs as '409b6032246629b6518d1dd45685d942ad4beffba6'} from 'ACTIONS_MODULE10'\nexport {isAgentSetupComplete as '002146a86ca42fe774609dab06c46bec0116f887ee'} from 'ACTIONS_MODULE11'\nexport {checkAgentAuth as '00b6d193a3e82dd7be5b1e6831bc2147ab106a2f05'} from 'ACTIONS_MODULE12'\nexport {getAllAgentModels as '0018bb5e22ad67924a56b21ec9890648fd8d5bd5a5'} from 'ACTIONS_MODULE13'\nexport {updateAgentAndModel as '60bb647e4c1179aea8246c550654c8c70f8e958137'} from 'ACTIONS_MODULE14'\nexport {deleteFeature as '78364ce7bdd2b1e5901adaf2d4c55fd066c877d787'} from 'ACTIONS_MODULE15'\nexport {resumeFeature as '4063ab4555c23bc890ce1533aeafaf47f730542e83'} from 'ACTIONS_MODULE16'\nexport {startFeature as '40a1252f2c7e727ddb5e31ee54c6d73dcd8f235f1a'} from 'ACTIONS_MODULE17'\nexport {stopFeature as '403f823423486da4b807cfecb14cdd0e1110a7084a'} from 'ACTIONS_MODULE18'\nexport {addRepository as '40308d3b30b2065d3948ab8d97547c7e61457c5bd7'} from 'ACTIONS_MODULE19'\nexport {deleteRepository as '40ed0cdf50197c7a2bb89567e0ed2c6f243d6c77f4'} from 'ACTIONS_MODULE20'\nexport {getFeatureMetadata as '40efec5eb2207c3f2636fcf7613ab51ba382d00708'} from 'ACTIONS_MODULE21'\nexport {adoptBranch as '40f2ba041b466e74b26e2671bc9d07c60371aacd85'} from 'ACTIONS_MODULE22'\nexport {listBranches as '40b7901b50a4ef0b2259fb43c2eecde596cec2c8f6'} from 'ACTIONS_MODULE23'\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,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,oBCnBA,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=[4585,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(94691),m=a.i(41872),n=a.i(9959),o=a.i(23504),p=a.i(27900),q=a.i(50845),r=a.i(26604),s=a.i(54723),t=a.i(18942),u=a.i(49560),v=a.i(39353),w=a.i(29207);a.s([],78424),a.i(78424),a.s(["0018bb5e22ad67924a56b21ec9890648fd8d5bd5a5",()=>o.getAllAgentModels,"002146a86ca42fe774609dab06c46bec0116f887ee",()=>m.isAgentSetupComplete,"00823dc1fa3848314181cbf1f92893a46f2c0c1520",()=>b.pickFolder,"00b6d193a3e82dd7be5b1e6831bc2147ab106a2f05",()=>n.checkAgentAuth,"402fbc963c9bbf5a237a2e3d0c774ac6b3f9862efe",()=>i.openIde,"40308d3b30b2065d3948ab8d97547c7e61457c5bd7",()=>u.addRepository,"403578eaded3ddae9a83866bc84f633d0bf0421f2e",()=>h.getDeploymentStatus,"403f823423486da4b807cfecb14cdd0e1110a7084a",()=>t.stopFeature,"4045dd179f494338c5f278abb85bf81b6cc8f0a524",()=>j.openShell,"406103d1859794c8cc46b853cb11deec5caac6fd6c",()=>e.deployFeature,"4063ab4555c23bc890ce1533aeafaf47f730542e83",()=>r.resumeFeature,"406589349452e8beb06c289496f014e3fbd36946b6",()=>d.importGitHubRepository,"407a5baeb5c7600a46cf9c8cec99f029221cdaf5ee",()=>g.stopDeployment,"407b2a764d27a1af549e4f7a075ddae80ff11827e3",()=>f.deployRepository,"4089907da4849d08bc1a4ec3b05c96c26ccac1b917",()=>c.listGitHubRepositories,"409b6032246629b6518d1dd45685d942ad4beffba6",()=>l.getDeploymentLogs,"40a1252f2c7e727ddb5e31ee54c6d73dcd8f235f1a",()=>s.startFeature,"40ebed18fb9f88ffbaf3c78cdae619f9de7ab5a27d",()=>k.openFolder,"40ed0cdf50197c7a2bb89567e0ed2c6f243d6c77f4",()=>v.deleteRepository,"40efec5eb2207c3f2636fcf7613ab51ba382d00708",()=>w.getFeatureMetadata,"60bb647e4c1179aea8246c550654c8c70f8e958137",()=>p.updateAgentAndModel,"78364ce7bdd2b1e5901adaf2d4c55fd066c877d787",()=>q.deleteFeature],4585)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_%40drawer_repository_%5BrepositoryId%5D_page_actions_026fdffa.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 '00823dc1fa3848314181cbf1f92893a46f2c0c1520'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '4089907da4849d08bc1a4ec3b05c96c26ccac1b917'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '406589349452e8beb06c289496f014e3fbd36946b6'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '406103d1859794c8cc46b853cb11deec5caac6fd6c'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '407b2a764d27a1af549e4f7a075ddae80ff11827e3'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '407a5baeb5c7600a46cf9c8cec99f029221cdaf5ee'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '403578eaded3ddae9a83866bc84f633d0bf0421f2e'} from 'ACTIONS_MODULE6'\nexport {openIde as '402fbc963c9bbf5a237a2e3d0c774ac6b3f9862efe'} from 'ACTIONS_MODULE7'\nexport {openShell as '4045dd179f494338c5f278abb85bf81b6cc8f0a524'} from 'ACTIONS_MODULE8'\nexport {openFolder as '40ebed18fb9f88ffbaf3c78cdae619f9de7ab5a27d'} from 'ACTIONS_MODULE9'\nexport {getDeploymentLogs as '409b6032246629b6518d1dd45685d942ad4beffba6'} from 'ACTIONS_MODULE10'\nexport {isAgentSetupComplete as '002146a86ca42fe774609dab06c46bec0116f887ee'} from 'ACTIONS_MODULE11'\nexport {checkAgentAuth as '00b6d193a3e82dd7be5b1e6831bc2147ab106a2f05'} from 'ACTIONS_MODULE12'\nexport {getAllAgentModels as '0018bb5e22ad67924a56b21ec9890648fd8d5bd5a5'} from 'ACTIONS_MODULE13'\nexport {updateAgentAndModel as '60bb647e4c1179aea8246c550654c8c70f8e958137'} from 'ACTIONS_MODULE14'\nexport {deleteFeature as '78364ce7bdd2b1e5901adaf2d4c55fd066c877d787'} from 'ACTIONS_MODULE15'\nexport {resumeFeature as '4063ab4555c23bc890ce1533aeafaf47f730542e83'} from 'ACTIONS_MODULE16'\nexport {startFeature as '40a1252f2c7e727ddb5e31ee54c6d73dcd8f235f1a'} from 'ACTIONS_MODULE17'\nexport {stopFeature as '403f823423486da4b807cfecb14cdd0e1110a7084a'} from 'ACTIONS_MODULE18'\nexport {addRepository as '40308d3b30b2065d3948ab8d97547c7e61457c5bd7'} from 'ACTIONS_MODULE19'\nexport {deleteRepository as '40ed0cdf50197c7a2bb89567e0ed2c6f243d6c77f4'} from 'ACTIONS_MODULE20'\nexport {getFeatureMetadata as '40efec5eb2207c3f2636fcf7613ab51ba382d00708'} from 'ACTIONS_MODULE21'\n"],"names":[],"mappings":"sCAAA,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,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"}