@shepai/cli 1.135.1 → 1.135.2-pr438.e15badd
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.
- package/apis/json-schema/DoctorDiagnosticReport.yaml +24 -0
- package/apis/json-schema/FailedRunSummary.yaml +22 -0
- package/apis/json-schema/SystemInfo.yaml +22 -0
- package/apis/json-schema/WorkflowConfig.yaml +5 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +28 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts +57 -0
- package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.js +39 -0
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +37 -0
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +12 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +5 -3
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/index.js +2 -1
- package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts +53 -0
- package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/doctor/doctor-diagnose.use-case.js +266 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +67 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +4 -0
- package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.js +69 -0
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +37 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +21 -0
- package/dist/src/presentation/cli/commands/doctor.command.d.ts +20 -0
- package/dist/src/presentation/cli/commands/doctor.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/doctor.command.js +127 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +3 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__31bc28da._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__31bc28da._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__32ecbed9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__32ecbed9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__90ce4b6d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__90ce4b6d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__90f9ae71._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__90f9ae71._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__96670392._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9c45d070._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
- package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_b6960ca0._.js → _77083321._.js} +3 -3
- package/web/.next/server/chunks/ssr/_77083321._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_76c02473._.js → _77554d3d._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_76c02473._.js.map → _77554d3d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
- package/web/.next/server/chunks/ssr/_b5d75071._.js +3 -0
- package/web/.next/server/chunks/ssr/{_f4036c66._.js.map → _b5d75071._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{src_presentation_web_7f2bd8b5._.js → src_presentation_web_e1bde3d9._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_7f2bd8b5._.js.map → src_presentation_web_e1bde3d9._.js.map} +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +38 -38
- package/web/.next/static/chunks/{fc30f9f869b6d879.js → 2afbd8ea610fa167.js} +1 -1
- package/web/.next/static/chunks/{fbcce031d4f6a933.js → 2c9ac55a4fa44ac4.js} +2 -2
- package/web/.next/static/chunks/2f507a6530863471.js +2 -0
- package/web/.next/static/chunks/{2b2bcf845ca00af0.js → 34a56908d5760236.js} +1 -1
- package/web/.next/static/chunks/{4d4a06751c4a6dc5.js → 439da912fae0dfb5.js} +1 -1
- package/web/.next/static/chunks/{c4dc75f937edf746.js → 45b13708047590eb.js} +1 -1
- package/web/.next/static/chunks/{b6117e16e4642568.js → 5cc1898809217e44.js} +1 -1
- package/web/.next/static/chunks/{7c62d50a59d1296b.js → 844b1f46c44b62da.js} +1 -1
- package/web/.next/static/chunks/{7c858879658287c9.js → a7946b5a536614d8.js} +1 -1
- package/web/.next/static/chunks/{e804b8565e41d2d0.js → c1fe426c1186e317.js} +1 -1
- package/web/.next/static/chunks/{7ad0e3ee269e90ca.js → e3f1b9a2e8b3a0f8.js} +1 -1
- package/web/.next/static/chunks/ee3933e1eca61c86.js +1 -0
- package/web/.next/server/chunks/ssr/_b6960ca0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f4036c66._.js +0 -3
- package/web/.next/static/chunks/56ce7ec52973f61f.js +0 -2
- package/web/.next/static/chunks/5dbecf32f1f3b9aa.js +0 -1
- /package/web/.next/static/{eTSgKFGuzFHv4FcGxc30f → hD6XLMKjNGlLX4l-q7_q6}/_buildManifest.js +0 -0
- /package/web/.next/static/{eTSgKFGuzFHv4FcGxc30f → hD6XLMKjNGlLX4l-q7_q6}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{eTSgKFGuzFHv4FcGxc30f → hD6XLMKjNGlLX4l-q7_q6}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: DoctorDiagnosticReport.yaml
|
|
3
|
+
type: object
|
|
4
|
+
properties:
|
|
5
|
+
userDescription:
|
|
6
|
+
type: string
|
|
7
|
+
description: User-provided description of the problem
|
|
8
|
+
failedRunSummaries:
|
|
9
|
+
type: array
|
|
10
|
+
items:
|
|
11
|
+
$ref: FailedRunSummary.yaml
|
|
12
|
+
description: Summaries of recent failed agent runs
|
|
13
|
+
systemInfo:
|
|
14
|
+
$ref: SystemInfo.yaml
|
|
15
|
+
description: System environment information
|
|
16
|
+
cliVersion:
|
|
17
|
+
type: string
|
|
18
|
+
description: Current shep CLI version
|
|
19
|
+
required:
|
|
20
|
+
- userDescription
|
|
21
|
+
- failedRunSummaries
|
|
22
|
+
- systemInfo
|
|
23
|
+
- cliVersion
|
|
24
|
+
description: Structured diagnostic report collected by shep doctor for issue creation
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: FailedRunSummary.yaml
|
|
3
|
+
type: object
|
|
4
|
+
properties:
|
|
5
|
+
agentType:
|
|
6
|
+
type: string
|
|
7
|
+
description: Type of agent that failed (e.g. claude-code, gemini-cli)
|
|
8
|
+
agentName:
|
|
9
|
+
type: string
|
|
10
|
+
description: Name/identifier of the agent run
|
|
11
|
+
error:
|
|
12
|
+
type: string
|
|
13
|
+
description: Error message from the failed run
|
|
14
|
+
timestamp:
|
|
15
|
+
type: string
|
|
16
|
+
description: ISO 8601 timestamp when the failure occurred
|
|
17
|
+
required:
|
|
18
|
+
- agentType
|
|
19
|
+
- agentName
|
|
20
|
+
- error
|
|
21
|
+
- timestamp
|
|
22
|
+
description: Summary of a failed agent run for diagnostic reporting
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: SystemInfo.yaml
|
|
3
|
+
type: object
|
|
4
|
+
properties:
|
|
5
|
+
nodeVersion:
|
|
6
|
+
type: string
|
|
7
|
+
description: Node.js version (e.g. v20.11.0)
|
|
8
|
+
platform:
|
|
9
|
+
type: string
|
|
10
|
+
description: Operating system platform (e.g. darwin, linux, win32)
|
|
11
|
+
arch:
|
|
12
|
+
type: string
|
|
13
|
+
description: CPU architecture (e.g. x64, arm64)
|
|
14
|
+
ghVersion:
|
|
15
|
+
type: string
|
|
16
|
+
description: gh CLI version string
|
|
17
|
+
required:
|
|
18
|
+
- nodeVersion
|
|
19
|
+
- platform
|
|
20
|
+
- arch
|
|
21
|
+
- ghVersion
|
|
22
|
+
description: System environment information for diagnostic reporting
|
|
@@ -55,6 +55,11 @@ properties:
|
|
|
55
55
|
hideCiStatus:
|
|
56
56
|
type: boolean
|
|
57
57
|
description: "Hide CI status badges from UI (default: true)"
|
|
58
|
+
doctorMaxFixAttempts:
|
|
59
|
+
type: integer
|
|
60
|
+
minimum: -2147483648
|
|
61
|
+
maximum: 2147483647
|
|
62
|
+
description: "Maximum number of doctor fix attempts before giving up (default: 1)"
|
|
58
63
|
required:
|
|
59
64
|
- openPrOnImplementationComplete
|
|
60
65
|
- approvalGateDefaults
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts
CHANGED
|
@@ -118,6 +118,21 @@ export interface PrStatusInfo {
|
|
|
118
118
|
/** Whether the PR can be merged (undefined if unknown, false = merge conflicts) */
|
|
119
119
|
mergeable?: boolean;
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Arguments for creating a PR programmatically (without a pr.yaml file).
|
|
123
|
+
*/
|
|
124
|
+
export interface PrCreateArgs {
|
|
125
|
+
/** PR title */
|
|
126
|
+
title: string;
|
|
127
|
+
/** PR body (Markdown) */
|
|
128
|
+
body: string;
|
|
129
|
+
/** Labels to apply to the PR */
|
|
130
|
+
labels: string[];
|
|
131
|
+
/** Base branch to merge into (e.g. "main") */
|
|
132
|
+
base: string;
|
|
133
|
+
/** Target repository for cross-fork PRs (e.g. "shep-ai/cli"). Omit for same-repo PRs. */
|
|
134
|
+
repo?: string;
|
|
135
|
+
}
|
|
121
136
|
/**
|
|
122
137
|
* Merge strategy for pull requests.
|
|
123
138
|
*/
|
|
@@ -195,6 +210,19 @@ export interface IGitPrService {
|
|
|
195
210
|
* @throws GitPrError with GH_NOT_FOUND or AUTH_FAILURE code
|
|
196
211
|
*/
|
|
197
212
|
createPr(cwd: string, prYamlPath: string): Promise<PrCreateResult>;
|
|
213
|
+
/**
|
|
214
|
+
* Create a pull request from explicit arguments (no pr.yaml file needed).
|
|
215
|
+
*
|
|
216
|
+
* Useful for programmatic PR creation where the title, body, and labels
|
|
217
|
+
* are constructed in code rather than read from a YAML file. Supports
|
|
218
|
+
* cross-fork PRs via the optional `repo` field in args.
|
|
219
|
+
*
|
|
220
|
+
* @param cwd - Working directory path (must be inside the git repo)
|
|
221
|
+
* @param args - PR creation arguments (title, body, labels, base, optional repo)
|
|
222
|
+
* @returns URL and number of the created PR
|
|
223
|
+
* @throws GitPrError with GH_NOT_FOUND or AUTH_FAILURE code
|
|
224
|
+
*/
|
|
225
|
+
createPrFromArgs(cwd: string, args: PrCreateArgs): Promise<PrCreateResult>;
|
|
198
226
|
/**
|
|
199
227
|
* Merge a pull request immediately.
|
|
200
228
|
*
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
|
package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
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 codes for GitHub issue creation operations.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum GitHubIssueErrorCode {
|
|
13
|
+
/** The target repository was not found or the user lacks access */
|
|
14
|
+
GH_NOT_FOUND = "GH_NOT_FOUND",
|
|
15
|
+
/** GitHub CLI authentication failure */
|
|
16
|
+
AUTH_FAILURE = "AUTH_FAILURE",
|
|
17
|
+
/** Network connectivity error during API call */
|
|
18
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
19
|
+
/** Issue creation failed for an unspecified reason */
|
|
20
|
+
CREATE_FAILED = "CREATE_FAILED"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Typed error for GitHub issue creation operations.
|
|
24
|
+
*/
|
|
25
|
+
export declare class GitHubIssueError extends Error {
|
|
26
|
+
readonly code: GitHubIssueErrorCode;
|
|
27
|
+
readonly cause?: Error | undefined;
|
|
28
|
+
constructor(message: string, code: GitHubIssueErrorCode, cause?: Error | undefined);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Result of creating a GitHub issue.
|
|
32
|
+
*/
|
|
33
|
+
export interface GitHubIssueCreateResult {
|
|
34
|
+
/** URL of the created issue (e.g. "https://github.com/owner/repo/issues/42") */
|
|
35
|
+
url: string;
|
|
36
|
+
/** Issue number */
|
|
37
|
+
number: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Output port for GitHub issue creation.
|
|
41
|
+
*
|
|
42
|
+
* Implementations use the `gh` CLI for all GitHub interactions.
|
|
43
|
+
*/
|
|
44
|
+
export interface IGitHubIssueService {
|
|
45
|
+
/**
|
|
46
|
+
* Create a new issue on a GitHub repository.
|
|
47
|
+
*
|
|
48
|
+
* @param repo - Full owner/repo identifier (e.g. "shep-ai/cli")
|
|
49
|
+
* @param title - Issue title
|
|
50
|
+
* @param body - Issue body (Markdown)
|
|
51
|
+
* @param labels - Labels to apply to the issue (e.g. ["bug", "shep-doctor"])
|
|
52
|
+
* @returns The created issue's URL and number
|
|
53
|
+
* @throws {GitHubIssueError} with appropriate error code on failure
|
|
54
|
+
*/
|
|
55
|
+
createIssue(repo: string, title: string, body: string, labels: string[]): Promise<GitHubIssueCreateResult>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=github-issue-service.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-issue-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/github-issue-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,mEAAmE;IACnE,YAAY,iBAAiB;IAC7B,wCAAwC;IACxC,YAAY,iBAAiB;IAC7B,iDAAiD;IACjD,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,IAAI,EAAE,oBAAoB;aAC1B,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,oBAAoB,EAC1B,KAAK,CAAC,EAAE,KAAK,YAAA;CAMhC;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;OASG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACrC"}
|
package/dist/packages/core/src/application/ports/output/services/github-issue-service.interface.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
}
|
|
@@ -29,6 +29,12 @@ export declare class GitHubUrlParseError extends Error {
|
|
|
29
29
|
export declare class GitHubRepoListError extends Error {
|
|
30
30
|
constructor(message: string, cause?: Error);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Thrown when a `gh repo fork` operation fails.
|
|
34
|
+
*/
|
|
35
|
+
export declare class GitHubForkError extends Error {
|
|
36
|
+
constructor(message: string, cause?: Error);
|
|
37
|
+
}
|
|
32
38
|
/**
|
|
33
39
|
* A GitHub repository as returned by `gh repo list --json`.
|
|
34
40
|
*/
|
|
@@ -60,6 +66,15 @@ export interface CloneOptions {
|
|
|
60
66
|
/** Callback invoked with stderr chunks during clone for progress display */
|
|
61
67
|
onProgress?: (data: string) => void;
|
|
62
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Result of forking a GitHub repository.
|
|
71
|
+
*/
|
|
72
|
+
export interface ForkResult {
|
|
73
|
+
/** Full owner/repo identifier of the fork (e.g. "username/cli") */
|
|
74
|
+
nameWithOwner: string;
|
|
75
|
+
/** Clone URL for the fork (e.g. "https://github.com/username/cli.git") */
|
|
76
|
+
cloneUrl: string;
|
|
77
|
+
}
|
|
63
78
|
/**
|
|
64
79
|
* Result of parsing a GitHub URL.
|
|
65
80
|
*/
|
|
@@ -114,5 +129,27 @@ export interface IGitHubRepositoryService {
|
|
|
114
129
|
* @throws {GitHubUrlParseError} if the URL does not match any supported format
|
|
115
130
|
*/
|
|
116
131
|
parseGitHubUrl(url: string): ParsedGitHubUrl;
|
|
132
|
+
/**
|
|
133
|
+
* Check whether the authenticated user has push access to a repository.
|
|
134
|
+
*
|
|
135
|
+
* Uses `gh api repos/{owner}/{repo} --jq '.permissions.push'` to detect
|
|
136
|
+
* access level. Returns false as the safe fallback on any error (network,
|
|
137
|
+
* rate limit, API change) per NFR-9.
|
|
138
|
+
*
|
|
139
|
+
* @param repoNameWithOwner - Full owner/repo identifier (e.g. "shep-ai/cli")
|
|
140
|
+
* @returns True if the user has push access, false otherwise (including on errors)
|
|
141
|
+
*/
|
|
142
|
+
checkPushAccess(repoNameWithOwner: string): Promise<boolean>;
|
|
143
|
+
/**
|
|
144
|
+
* Fork a GitHub repository into the authenticated user's account.
|
|
145
|
+
*
|
|
146
|
+
* Uses `gh repo fork` which is idempotent — if the user already has a fork,
|
|
147
|
+
* it detects the existing fork and returns it rather than failing.
|
|
148
|
+
*
|
|
149
|
+
* @param repoNameWithOwner - Full owner/repo identifier (e.g. "shep-ai/cli")
|
|
150
|
+
* @returns The fork's nameWithOwner and clone URL
|
|
151
|
+
* @throws {GitHubForkError} if the fork operation fails
|
|
152
|
+
*/
|
|
153
|
+
forkRepository(repoNameWithOwner: string): Promise<ForkResult>;
|
|
117
154
|
}
|
|
118
155
|
//# sourceMappingURL=github-repository-service.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-repository-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/github-repository-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,eAAe,CACb,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnF;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"github-repository-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/github-repository-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,eAAe,CACb,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnF;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IAE7C;;;;;;;;;OASG;IACH,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D;;;;;;;;;OASG;IACH,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAChE"}
|
|
@@ -56,3 +56,15 @@ export class GitHubRepoListError extends Error {
|
|
|
56
56
|
this.cause = cause;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Thrown when a `gh repo fork` operation fails.
|
|
61
|
+
*/
|
|
62
|
+
export class GitHubForkError extends Error {
|
|
63
|
+
constructor(message, cause) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.name = 'GitHubForkError';
|
|
66
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
67
|
+
if (cause)
|
|
68
|
+
this.cause = cause;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -12,11 +12,13 @@ export type { IWorktreeService, WorktreeInfo } from './worktree-service.interfac
|
|
|
12
12
|
export { WorktreeError, WorktreeErrorCode } from './worktree-service.interface.js';
|
|
13
13
|
export type { IToolInstallerService, AvailableTerminalEntry } from './tool-installer.service.js';
|
|
14
14
|
export type { INotificationService } from './notification-service.interface.js';
|
|
15
|
-
export type { IGitPrService, CiStatus, CiStatusResult, DiffSummary, MergeStrategy, PrCreateResult, } from './git-pr-service.interface.js';
|
|
15
|
+
export type { IGitPrService, CiStatus, CiStatusResult, DiffSummary, MergeStrategy, PrCreateArgs, PrCreateResult, } from './git-pr-service.interface.js';
|
|
16
16
|
export { GitPrError, GitPrErrorCode } from './git-pr-service.interface.js';
|
|
17
17
|
export type { IIdeLauncherService, LaunchIdeInput, LaunchIdeResult, LaunchIdeSuccess, LaunchIdeFailed, } from './ide-launcher-service.interface.js';
|
|
18
18
|
export type { IDaemonService, DaemonState } from './daemon-service.interface.js';
|
|
19
19
|
export type { IDeploymentService, DeploymentStatus } from './deployment-service.interface.js';
|
|
20
|
-
export type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, } from './github-repository-service.interface.js';
|
|
21
|
-
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, } from './github-repository-service.interface.js';
|
|
20
|
+
export type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, ForkResult, } from './github-repository-service.interface.js';
|
|
21
|
+
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, GitHubForkError, } from './github-repository-service.interface.js';
|
|
22
|
+
export type { IGitHubIssueService, GitHubIssueCreateResult, } from './github-issue-service.interface.js';
|
|
23
|
+
export { GitHubIssueError, GitHubIssueErrorCode } from './github-issue-service.interface.js';
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,YAAY,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -6,4 +6,5 @@
|
|
|
6
6
|
export { IssueFetcherError, IssueNotFoundError, IssueAuthenticationError, IssueServiceUnavailableError, } from './external-issue-fetcher.interface.js';
|
|
7
7
|
export { WorktreeError, WorktreeErrorCode } from './worktree-service.interface.js';
|
|
8
8
|
export { GitPrError, GitPrErrorCode } from './git-pr-service.interface.js';
|
|
9
|
-
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, } from './github-repository-service.interface.js';
|
|
9
|
+
export { GitHubAuthError, GitHubCloneError, GitHubUrlParseError, GitHubRepoListError, GitHubForkError, } from './github-repository-service.interface.js';
|
|
10
|
+
export { GitHubIssueError, GitHubIssueErrorCode } from './github-issue-service.interface.js';
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|