@shepai/cli 1.151.2-pr438.6135e39 → 1.151.2-pr468.4830e01

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 (219) hide show
  1. package/apis/json-schema/AgentType.yaml +1 -0
  2. package/apis/json-schema/WorkflowConfig.yaml +0 -5
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +0 -28
  4. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +0 -37
  6. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +0 -12
  8. package/dist/packages/core/src/application/ports/output/services/index.d.ts +3 -5
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/index.js +1 -2
  11. package/dist/packages/core/src/domain/generated/output.d.ts +1 -185
  12. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  13. package/dist/packages/core/src/domain/generated/output.js +1 -0
  14. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/di/container.js +4 -4
  16. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  17. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +22 -0
  18. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +1 -0
  20. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts +61 -0
  21. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +1 -0
  22. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +628 -0
  23. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.d.ts +62 -0
  24. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.d.ts.map +1 -0
  25. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.js +356 -0
  26. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +1 -3
  27. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +1 -37
  29. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -2
  30. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  31. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +0 -21
  32. package/dist/src/presentation/cli/index.js +0 -2
  33. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +6 -2
  34. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  35. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +7 -2
  36. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  37. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +4 -2
  38. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +1 -1
  39. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +2 -0
  41. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +1 -0
  43. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -0
  44. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +7 -0
  46. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +1 -0
  48. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -0
  49. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +8 -0
  51. package/dist/tsconfig.build.tsbuildinfo +1 -1
  52. package/package.json +1 -1
  53. package/web/.next/BUILD_ID +1 -1
  54. package/web/.next/build-manifest.json +2 -2
  55. package/web/.next/fallback-build-manifest.json +2 -2
  56. package/web/.next/prerender-manifest.json +3 -3
  57. package/web/.next/required-server-files.js +1 -1
  58. package/web/.next/required-server-files.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
  60. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
  63. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  64. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  66. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
  69. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
  72. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
  75. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  78. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
  81. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  82. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
  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 +26 -26
  87. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  88. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/_global-error.html +2 -2
  90. package/web/.next/server/app/_global-error.rsc +1 -1
  91. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  92. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  93. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  94. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  95. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  96. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  97. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  99. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  100. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  101. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  102. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  103. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  105. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  106. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  108. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  109. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  111. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  113. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  114. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  115. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  116. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  117. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  118. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js +2 -2
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +1 -1
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  142. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/_0c473fef._.js +2 -2
  144. package/web/.next/server/chunks/ssr/_0c473fef._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  146. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/_1b719e7f._.js +1 -1
  148. package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/_37e8548b._.js +1 -1
  150. package/web/.next/server/chunks/ssr/_37e8548b._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/_4093a637._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_4093a637._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_55d763e2._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_55d763e2._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/_6256a985._.js +1 -1
  156. package/web/.next/server/chunks/ssr/_6256a985._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_8fcc39d4._.js +1 -1
  158. package/web/.next/server/chunks/ssr/{_c2ca0f1b._.js → _b47f40e8._.js} +2 -2
  159. package/web/.next/server/chunks/ssr/{_c2ca0f1b._.js.map → _b47f40e8._.js.map} +1 -1
  160. package/web/.next/server/chunks/ssr/_b71645b4._.js +1 -1
  161. package/web/.next/server/chunks/ssr/_b71645b4._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  164. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/{_dc9a9d32._.js → _dd815000._.js} +2 -2
  166. package/web/.next/server/chunks/ssr/{_dc9a9d32._.js.map → _dd815000._.js.map} +1 -1
  167. package/web/.next/server/chunks/ssr/_e9e9ed20._.js +2 -2
  168. package/web/.next/server/chunks/ssr/_e9e9ed20._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  170. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/{src_presentation_web_aa941041._.js → src_presentation_web_4f99488d._.js} +2 -2
  172. package/web/.next/server/chunks/ssr/{src_presentation_web_aa941041._.js.map → src_presentation_web_4f99488d._.js.map} +1 -1
  173. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  174. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  176. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  178. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  179. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  182. package/web/.next/server/pages/500.html +2 -2
  183. package/web/.next/server/server-reference-manifest.js +1 -1
  184. package/web/.next/server/server-reference-manifest.json +45 -45
  185. package/web/.next/static/chunks/{87b72b8a10f8255b.js → 2ef0f4ca4e98c9a7.js} +2 -2
  186. package/web/.next/static/chunks/{359b2815c5ed39cc.js → 3a7945f19b79b23f.js} +1 -1
  187. package/web/.next/static/chunks/{4a28fd1bca225386.js → 4e0a2f0a76498c81.js} +1 -1
  188. package/web/.next/static/chunks/{80915095cec414bf.js → 5942cf630e48ca8d.js} +1 -1
  189. package/web/.next/static/chunks/{5e1877d1f1bcfd77.js → 6a5afc469cf09a04.js} +1 -1
  190. package/web/.next/static/chunks/{76a3f345f8cf2608.js → 866b1f54b7f49d15.js} +1 -1
  191. package/web/.next/static/chunks/89b3762438e133be.js +1 -0
  192. package/web/.next/static/chunks/{25889ca8401d1bc0.js → 956b17e72f758911.js} +1 -1
  193. package/web/.next/static/chunks/{79eae02d0342fb73.js → 98126d854a888c69.js} +1 -1
  194. package/web/.next/static/chunks/{c2388f8bc58b2a21.js → a7d8b0dda225c732.js} +1 -1
  195. package/web/.next/static/chunks/{08baac5434d9528e.js → ae411737fa84a470.js} +7 -7
  196. package/web/.next/static/chunks/{091de81012e2bc48.js → be299036f3de6864.js} +1 -1
  197. package/web/.next/static/chunks/{ed9408f100149c34.js → ca8a36bfe8400d5d.js} +1 -1
  198. package/web/public/icons/agents/openai.svg +3 -0
  199. package/apis/json-schema/AgentRunDetail.yaml +0 -28
  200. package/apis/json-schema/DoctorDiagnosticReport.yaml +0 -76
  201. package/apis/json-schema/FailedRunSummary.yaml +0 -22
  202. package/apis/json-schema/SystemInfo.yaml +0 -22
  203. package/apis/json-schema/WorkerLogEntry.yaml +0 -27
  204. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts +0 -57
  205. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts.map +0 -1
  206. package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.js +0 -39
  207. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts +0 -64
  208. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts.map +0 -1
  209. package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.js +0 -493
  210. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts +0 -17
  211. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts.map +0 -1
  212. package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.js +0 -69
  213. package/dist/src/presentation/cli/commands/doctor.command.d.ts +0 -20
  214. package/dist/src/presentation/cli/commands/doctor.command.d.ts.map +0 -1
  215. package/dist/src/presentation/cli/commands/doctor.command.js +0 -129
  216. package/web/.next/static/chunks/e760b952ba1a10d4.js +0 -1
  217. /package/web/.next/static/{-o7QIcv1p5C722dwF4EFd → MUDs2V0kbD3BsECyukWE4}/_buildManifest.js +0 -0
  218. /package/web/.next/static/{-o7QIcv1p5C722dwF4EFd → MUDs2V0kbD3BsECyukWE4}/_clientMiddlewareManifest.json +0 -0
  219. /package/web/.next/static/{-o7QIcv1p5C722dwF4EFd → MUDs2V0kbD3BsECyukWE4}/_ssgManifest.js +0 -0
@@ -1,129 +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
- featureId: options.featureId,
50
- }));
51
- // Step 5: Display results
52
- messages.newline();
53
- messages.success(`GitHub issue created: ${colors.accent(result.issueUrl)}`);
54
- if (result.prUrl) {
55
- messages.success(`Pull request created: ${colors.accent(result.prUrl)}`);
56
- if (result.flowType) {
57
- messages.info(`Flow: ${result.flowType === 'maintainer' ? 'direct push (maintainer)' : 'fork (contributor)'}`);
58
- }
59
- }
60
- else if (shouldFix && result.error) {
61
- messages.warning(`Fix attempt failed: ${result.error}`);
62
- messages.info('The issue has been created — a maintainer can review it.');
63
- }
64
- else if (!shouldFix) {
65
- messages.info('Issue created. Use --fix to attempt an automated fix.');
66
- }
67
- if (result.cleanedUp) {
68
- messages.info('Temporary working directory cleaned up.');
69
- }
70
- messages.newline();
71
- }
72
- catch (error) {
73
- const err = error instanceof Error ? error : new Error(String(error));
74
- // Handle Ctrl+C gracefully
75
- if (err.message.includes('force closed') || err.message.includes('User force closed')) {
76
- messages.info('Cancelled.');
77
- return;
78
- }
79
- messages.error('Doctor failed', err);
80
- process.exitCode = 1;
81
- }
82
- });
83
- // Commander handles --no-fix by negating the --fix option, but we need
84
- // explicit --workdir and --feature-id as separate options
85
- cmd.option('--workdir <path>', 'Custom directory for the cloned repository');
86
- cmd.option('--feature-id <id>', 'Scope diagnostics to a specific feature (by ID or prefix)');
87
- return cmd;
88
- }
89
- /**
90
- * Validate that gh CLI is installed and authenticated.
91
- */
92
- async function validatePrerequisites() {
93
- const toolInstaller = container.resolve('IToolInstallerService');
94
- const ghStatus = await toolInstaller.checkAvailability('gh');
95
- if (ghStatus.status !== 'available') {
96
- throw new Error('GitHub CLI (gh) is not installed. Install it from https://cli.github.com/ and run: gh auth login');
97
- }
98
- const repoService = container.resolve('IGitHubRepositoryService');
99
- await repoService.checkAuth();
100
- }
101
- /**
102
- * Prompt the user interactively for a problem description.
103
- */
104
- async function promptForDescription() {
105
- const { input } = await import('@inquirer/prompts');
106
- const description = await input({
107
- message: 'Describe the problem you encountered:',
108
- });
109
- return description.trim() || undefined;
110
- }
111
- /**
112
- * Determine whether to attempt a fix based on flags or interactive prompt.
113
- */
114
- async function resolveFix(options) {
115
- // --fix explicitly set: always fix
116
- if (options.fix === true) {
117
- return true;
118
- }
119
- // --no-fix explicitly set (Commander sets fix to false): skip fix
120
- if (options.fix === false) {
121
- return false;
122
- }
123
- // Interactive: ask the user
124
- const { confirm } = await import('@inquirer/prompts');
125
- return confirm({
126
- message: 'Would you like shep to attempt a fix?',
127
- default: false,
128
- });
129
- }
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10714,99105,e=>{"use strict";var t=e.i(3645);let r=(0,t.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>r],10714);let l=(0,t.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>l],99105)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},95812,35e3,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812);var r=e.i(80986);e.s(["CheckCircle2",()=>r.default],35e3)},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},8986,72653,43665,54438,e=>{"use strict";let t=(0,e.i(3645).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",()=>t],8986);var r=e.i(21023);let l=(0,r.createServerReference)("409e55273c71b48b411b0d98ca453099fdf01741b5",r.callServer,void 0,r.findSourceMapURL,"openIde");e.s(["openIde",()=>l],72653);let a=(0,r.createServerReference)("40f622d1738431868f87b48dc758215933c96ac234",r.callServer,void 0,r.findSourceMapURL,"openShell");e.s(["openShell",()=>a],43665);let c=(0,r.createServerReference)("40fd06485a22d154cff6b3af4d4ea2a19b623ffeea",r.callServer,void 0,r.findSourceMapURL,"openFolder");e.s(["openFolder",()=>c],54438)},53360,e=>{"use strict";let t=(0,e.i(3645).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],53360)},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],76016)},11345,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],11345)},97667,e=>{"use strict";var t=e.i(1012);e.s(["CheckIcon",()=>t.default])},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},54793,7729,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function l({icon:e,title:l,description:a,action:c,className:s,...u}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",s),...u,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:l}),a?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:a}):null,c?(0,t.jsx)("div",{className:"mt-2",children:c}):null]})}e.s(["EmptyState",()=>l],7729),e.s([],54793)},31987,27614,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("000b4cf5d08025fc20b6ef326899c5083c44d6200e",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],31987);let l=(0,t.createServerReference)("60c1e233607b6de6f3571bf9fdda35f44bed277b6d",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>l],27614)},38079,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("40f5eb01d9463e3758054dbb2725806be1dede4b86",t.callServer,void 0,t.findSourceMapURL,"addRepository");e.s(["addRepository",()=>r])},76852,e=>{"use strict";var t=e.i(79054),r=e.i(72653),l=e.i(43665),a=e.i(54438),c=e.i(21023);let s=(0,c.createServerReference)("40659e08581e83adc2099f839b88fea47d7cfd0cc4",c.callServer,void 0,c.findSourceMapURL,"syncRepository");function u(e){let[c,u]=(0,t.useState)(!1),[n,i]=(0,t.useState)(!1),[d,o]=(0,t.useState)(!1),[f,p]=(0,t.useState)(!1),[h,v]=(0,t.useState)(null),[y,m]=(0,t.useState)(null),[S,b]=(0,t.useState)(null),[k,x]=(0,t.useState)(null),R=(0,t.useRef)(null),g=(0,t.useRef)(null),M=(0,t.useRef)(null),C=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{R.current&&clearTimeout(R.current),g.current&&clearTimeout(g.current),M.current&&clearTimeout(M.current),C.current&&clearTimeout(C.current)},[]);let A=(0,t.useCallback)(async(t,r,l,a,c)=>{if(e&&!c){a.current&&clearTimeout(a.current),r(!0),l(null);try{let e=await t();if(!e.success){let t=e.error??"An unexpected error occurred";l(t),a.current=setTimeout(()=>l(null),5e3)}}catch(e){l(e instanceof Error?e.message:"An unexpected error occurred"),a.current=setTimeout(()=>l(null),5e3)}finally{r(!1)}}},[e]);return{openInIde:(0,t.useCallback)(()=>A(()=>(0,r.openIde)({repositoryPath:e.repositoryPath}),u,v,R,c),[A,c,e]),openInShell:(0,t.useCallback)(()=>A(()=>(0,l.openShell)({repositoryPath:e.repositoryPath}),i,m,g,n),[A,n,e]),openFolder:(0,t.useCallback)(()=>A(()=>(0,a.openFolder)(e.repositoryPath),o,b,M,d),[A,d,e]),syncMain:(0,t.useCallback)(()=>A(()=>s(e.repositoryId??""),p,x,C,f),[A,f,e]),ideLoading:c,shellLoading:n,folderLoading:d,syncLoading:f,ideError:h,shellError:y,folderError:S,syncError:k}}e.s(["useRepositoryActions",()=>u],76852)}]);