@shepai/cli 1.136.0-pr437.9f802f1 → 1.136.0-pr438.9e52ee5
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 +30 -0
- package/apis/json-schema/FailedRunSummary.yaml +22 -0
- package/apis/json-schema/FeatureFlags.yaml +0 -5
- 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 -4
- 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 +56 -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 +294 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +0 -1
- package/dist/packages/core/src/domain/generated/output.d.ts +75 -4
- 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 -10
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +0 -2
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +2 -3
- 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 +129 -0
- package/dist/src/presentation/cli/index.js +2 -2
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +2 -9
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +0 -3
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +0 -3
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +0 -5
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +0 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +0 -1
- package/dist/src/presentation/web/dev-server.js +1 -62
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +0 -1
- package/dist/src/presentation/web/lib/feature-flags.d.ts +0 -2
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +0 -5
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -2
- 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 +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +50 -80
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -2
- 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 +50 -80
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
- 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 +62 -92
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- 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 +62 -92
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- 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 +46 -76
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
- 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 +50 -80
- package/web/.next/server/app/(dashboard)/create/page.js +2 -2
- 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 +62 -92
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- 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 +62 -92
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- 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 +46 -76
- package/web/.next/server/app/(dashboard)/page.js +2 -2
- 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 +46 -76
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
- 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/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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/403f9_next_567de315._.js +2 -2
- 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_b49d9c97.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js.map +1 -0
- 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_28632197.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js.map +1 -0
- 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]__47ded061._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__47ded061._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js.map +1 -0
- 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]__a5f9c6e5._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.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/[root-of-the-server]__d48c5b11._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
- package/web/.next/server/chunks/ssr/_0020fddd._.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/{_12282083._.js → _4dfa8bc3._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_12282083._.js.map → _4dfa8bc3._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_501af15d._.js +3 -0
- package/web/.next/server/chunks/ssr/{_7bc4a733._.js.map → _501af15d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_75d1e2c9._.js +4 -0
- package/web/.next/server/chunks/ssr/_75d1e2c9._.js.map +1 -0
- 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/_a37f5f18._.js +1 -1
- package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
- package/web/.next/server/chunks/ssr/_a9f57758._.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_53666118._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_5c40524e._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_99db45e9._.js.map → src_presentation_web_5c40524e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js.map +1 -0
- 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_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_e4df6dd7._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js.map +1 -0
- 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 +307 -463
- package/web/.next/static/chunks/{18616dda443b7ed1.js → 0b7fe2ac4f078f54.js} +7 -7
- package/web/.next/static/chunks/{745234c95baaf6df.js → 10d405c1707bb323.js} +1 -1
- package/web/.next/static/chunks/{fe54542759c9fd27.js → 29cefe3a2fa5573c.js} +1 -1
- package/web/.next/static/chunks/{cfcc46c87d712da6.js → 3de3ea3b101bf406.js} +1 -1
- package/web/.next/static/chunks/{891d57985c5f3a0b.js → 499c19f1bac689cf.js} +1 -1
- package/web/.next/static/chunks/{ac7469534efcc3b0.js → 5074c99e4cbb0b4c.js} +1 -1
- package/web/.next/static/chunks/{47d110d7472840fd.js → 546a7dc733f92913.js} +1 -1
- package/web/.next/static/chunks/{1f321d18af8d8b30.js → 5a7a5794e1ece049.js} +1 -1
- package/web/.next/static/chunks/{0d4f2f0257e78c06.css → 92cd6f523639a6fa.css} +1 -1
- package/web/.next/static/chunks/{dc8683ddff12ef38.js → a18c3f33018082cb.js} +1 -1
- package/web/.next/static/chunks/{08d0fd276fa7ac89.js → bb15bf7fcedc3a8d.js} +1 -1
- package/web/.next/static/chunks/{dfe1ea2ffdc06c44.js → d03d87ed71050c43.js} +2 -2
- package/web/.next/static/chunks/{12511f976fedf4cb.js → f86e433dbea0ca20.js} +1 -1
- package/web/.next/static/chunks/{acd8d06ded15d1ed.js → fee7ef7b7b194025.js} +2 -2
- package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.d.ts +0 -132
- package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.d.ts.map +0 -1
- package/dist/packages/core/src/application/ports/output/services/coasts-service.interface.js +0 -12
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.d.ts +0 -11
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-feature-flag-coasts-dev-server.js +0 -17
- package/dist/packages/core/src/infrastructure/services/coasts.service.d.ts +0 -42
- package/dist/packages/core/src/infrastructure/services/coasts.service.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/coasts.service.js +0 -185
- package/dist/src/presentation/cli/commands/coasts/index.d.ts +0 -3
- package/dist/src/presentation/cli/commands/coasts/index.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/coasts/index.js +0 -7
- package/dist/src/presentation/cli/commands/coasts/init.command.d.ts +0 -3
- package/dist/src/presentation/cli/commands/coasts/init.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/coasts/init.command.js +0 -40
- package/dist/src/presentation/web/app/actions/check-coastfile.d.ts +0 -5
- package/dist/src/presentation/web/app/actions/check-coastfile.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/check-coastfile.js +0 -16
- package/dist/src/presentation/web/app/actions/generate-coastfile.d.ts +0 -7
- package/dist/src/presentation/web/app/actions/generate-coastfile.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/generate-coastfile.js +0 -22
- package/dist/src/presentation/web/coasts-dev-server.d.ts +0 -34
- package/dist/src/presentation/web/coasts-dev-server.d.ts.map +0 -1
- package/dist/src/presentation/web/coasts-dev-server.js +0 -69
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.d.ts +0 -12
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/repository-node/use-coasts-actions.js +0 -76
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cf9161b._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cf9161b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__71b5d4e8._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__71b5d4e8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__944b653f._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__944b653f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a9079247._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a9079247._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_01383b12._.js +0 -4
- package/web/.next/server/chunks/ssr/_01383b12._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_112b6fbf._.js +0 -6
- package/web/.next/server/chunks/ssr/_112b6fbf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_3b9ec2d7._.js +0 -4
- package/web/.next/server/chunks/ssr/_3b9ec2d7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7a4bfe44._.js +0 -6
- package/web/.next/server/chunks/ssr/_7a4bfe44._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7bc4a733._.js +0 -3
- package/web/.next/server/chunks/ssr/_7dd6c393._.js +0 -4
- package/web/.next/server/chunks/ssr/_7dd6c393._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_82cc1fcf._.js +0 -4
- package/web/.next/server/chunks/ssr/_82cc1fcf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_99db45e9._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
- /package/web/.next/static/{YPdE95T5GezMRcw-C6nfC → u2GE3dKD5GVgXCtUA64to}/_buildManifest.js +0 -0
- /package/web/.next/static/{YPdE95T5GezMRcw-C6nfC → u2GE3dKD5GVgXCtUA64to}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{YPdE95T5GezMRcw-C6nfC → u2GE3dKD5GVgXCtUA64to}/_ssgManifest.js +0 -0
package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/packages/core/src/infrastructure/services/external/github-issue-creator.service.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
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 };
|
package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* checks, repository listing, cloning (with progress streaming), and URL parsing.
|
|
6
6
|
*/
|
|
7
7
|
import type { ExecFunction } from '../git/worktree.service.js';
|
|
8
|
-
import type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl } from '../../../application/ports/output/services/github-repository-service.interface.js';
|
|
8
|
+
import type { IGitHubRepositoryService, GitHubRepo, ListUserRepositoriesOptions, CloneOptions, ParsedGitHubUrl, ForkResult } from '../../../application/ports/output/services/github-repository-service.interface.js';
|
|
9
9
|
export declare class GitHubRepositoryService implements IGitHubRepositoryService {
|
|
10
10
|
private readonly execFile;
|
|
11
11
|
constructor(execFile: ExecFunction);
|
|
@@ -13,6 +13,8 @@ export declare class GitHubRepositoryService implements IGitHubRepositoryService
|
|
|
13
13
|
listUserRepositories(options?: ListUserRepositoriesOptions): Promise<GitHubRepo[]>;
|
|
14
14
|
cloneRepository(nameWithOwner: string, destination: string, options?: CloneOptions): Promise<void>;
|
|
15
15
|
parseGitHubUrl(url: string): ParsedGitHubUrl;
|
|
16
|
+
checkPushAccess(repoNameWithOwner: string): Promise<boolean>;
|
|
17
|
+
forkRepository(repoNameWithOwner: string): Promise<ForkResult>;
|
|
16
18
|
private cleanupPartialClone;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=github-repository.service.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-repository.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/external/github-repository.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,
|
|
1
|
+
{"version":3,"file":"github-repository.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/external/github-repository.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EACV,2BAA2B,EAC3B,YAAY,EACZ,eAAe,EACf,UAAU,EACX,MAAM,mFAAmF,CAAC;AAyB3F,qBACa,uBAAwB,YAAW,wBAAwB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB1B,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAsClF,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAgDhB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe;IA2CtC,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe5D,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAwBtD,mBAAmB;CAOlC"}
|
package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js
CHANGED
|
@@ -20,7 +20,7 @@ import { injectable, inject } from 'tsyringe';
|
|
|
20
20
|
import { resolve, normalize } from 'node:path';
|
|
21
21
|
import { rm } from 'node:fs/promises';
|
|
22
22
|
import { spawn } from 'node:child_process';
|
|
23
|
-
import { GitHubAuthError, GitHubCloneError, GitHubRepoListError, GitHubUrlParseError, } from '../../../application/ports/output/services/github-repository-service.interface.js';
|
|
23
|
+
import { GitHubAuthError, GitHubCloneError, GitHubForkError, GitHubRepoListError, GitHubUrlParseError, } from '../../../application/ports/output/services/github-repository-service.interface.js';
|
|
24
24
|
// ---------------------------------------------------------------------------
|
|
25
25
|
// URL regex patterns
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
@@ -154,6 +154,42 @@ let GitHubRepositoryService = class GitHubRepositoryService {
|
|
|
154
154
|
'Supported formats: https://github.com/owner/repo, ' +
|
|
155
155
|
'git@github.com:owner/repo.git, or owner/repo shorthand.');
|
|
156
156
|
}
|
|
157
|
+
async checkPushAccess(repoNameWithOwner) {
|
|
158
|
+
try {
|
|
159
|
+
const { stdout } = await this.execFile('gh', [
|
|
160
|
+
'api',
|
|
161
|
+
`repos/${repoNameWithOwner}`,
|
|
162
|
+
'--jq',
|
|
163
|
+
'.permissions.push',
|
|
164
|
+
]);
|
|
165
|
+
return stdout.trim() === 'true';
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Safe fallback: assume no push access on any error (NFR-9)
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async forkRepository(repoNameWithOwner) {
|
|
173
|
+
try {
|
|
174
|
+
const { stdout } = await this.execFile('gh', [
|
|
175
|
+
'repo',
|
|
176
|
+
'fork',
|
|
177
|
+
repoNameWithOwner,
|
|
178
|
+
'--clone=false',
|
|
179
|
+
'--json',
|
|
180
|
+
'nameWithOwner,url',
|
|
181
|
+
]);
|
|
182
|
+
const parsed = JSON.parse(stdout);
|
|
183
|
+
return {
|
|
184
|
+
nameWithOwner: parsed.nameWithOwner,
|
|
185
|
+
cloneUrl: parsed.url.endsWith('.git') ? parsed.url : `${parsed.url}.git`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
const cause = error instanceof Error ? error : undefined;
|
|
190
|
+
throw new GitHubForkError(`Failed to fork ${repoNameWithOwner}: ${cause?.message ?? String(error)}`, cause);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
157
193
|
async cleanupPartialClone(destination) {
|
|
158
194
|
try {
|
|
159
195
|
await rm(destination, { recursive: true, force: true });
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses constructor dependency injection for the command executor.
|
|
6
6
|
*/
|
|
7
7
|
import type { IGitPrService } from '../../../application/ports/output/services/git-pr-service.interface.js';
|
|
8
|
-
import type { CiStatusResult, DiffSummary, FileDiff, MergeStrategy, PrCreateResult, PrStatusInfo } from '../../../application/ports/output/services/git-pr-service.interface.js';
|
|
8
|
+
import type { CiStatusResult, DiffSummary, FileDiff, MergeStrategy, PrCreateArgs, PrCreateResult, PrStatusInfo } from '../../../application/ports/output/services/git-pr-service.interface.js';
|
|
9
9
|
import type { ExecFunction } from './worktree.service.js';
|
|
10
10
|
export declare class GitPrService implements IGitPrService {
|
|
11
11
|
private readonly execFile;
|
|
@@ -18,6 +18,7 @@ export declare class GitPrService implements IGitPrService {
|
|
|
18
18
|
commitAll(cwd: string, message: string): Promise<string>;
|
|
19
19
|
push(cwd: string, branch: string, setUpstream?: boolean): Promise<void>;
|
|
20
20
|
createPr(cwd: string, prYamlPath: string): Promise<PrCreateResult>;
|
|
21
|
+
createPrFromArgs(cwd: string, args: PrCreateArgs): Promise<PrCreateResult>;
|
|
21
22
|
mergePr(cwd: string, prNumber: number, strategy?: MergeStrategy): Promise<void>;
|
|
22
23
|
private getPrHeadBranch;
|
|
23
24
|
localMergeSquash(cwd: string, featureBranch: string, baseBranch: string, commitMessage: string, hasRemote?: boolean): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -184,6 +184,27 @@ let GitPrService = class GitPrService {
|
|
|
184
184
|
throw this.parseGhError(error);
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
+
async createPrFromArgs(cwd, args) {
|
|
188
|
+
try {
|
|
189
|
+
const ghArgs = ['pr', 'create', '--title', args.title, '--body', args.body];
|
|
190
|
+
if (args.base) {
|
|
191
|
+
ghArgs.push('--base', args.base);
|
|
192
|
+
}
|
|
193
|
+
if (args.labels?.length) {
|
|
194
|
+
ghArgs.push('--label', args.labels.join(','));
|
|
195
|
+
}
|
|
196
|
+
if (args.repo) {
|
|
197
|
+
ghArgs.push('--repo', args.repo);
|
|
198
|
+
}
|
|
199
|
+
const { stdout } = await this.execFile('gh', ghArgs, { cwd });
|
|
200
|
+
const url = stdout.trim();
|
|
201
|
+
const number = this.parsePrNumberFromUrl(url);
|
|
202
|
+
return { url, number };
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
throw this.parseGhError(error);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
187
208
|
async mergePr(cwd, prNumber, strategy = 'squash') {
|
|
188
209
|
try {
|
|
189
210
|
await this.execFile('gh', ['pr', 'merge', String(prNumber), `--${strategy}`], {
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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;AAapC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgF7C"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
}
|
|
@@ -42,7 +42,7 @@ import { createIdeOpenCommand } from './commands/ide-open.command.js';
|
|
|
42
42
|
import { createInstallCommand } from './commands/install.command.js';
|
|
43
43
|
import { createUpgradeCommand } from './commands/upgrade.command.js';
|
|
44
44
|
import { createToolsCommand } from './commands/tools.command.js';
|
|
45
|
-
import {
|
|
45
|
+
import { createDoctorCommand } from './commands/doctor.command.js';
|
|
46
46
|
import { messages } from './ui/index.js';
|
|
47
47
|
// Daemon lifecycle commands
|
|
48
48
|
import { createStartCommand } from './commands/start.command.js';
|
|
@@ -111,7 +111,7 @@ async function bootstrap() {
|
|
|
111
111
|
program.addCommand(createInstallCommand());
|
|
112
112
|
program.addCommand(createToolsCommand());
|
|
113
113
|
program.addCommand(createUpgradeCommand());
|
|
114
|
-
program.addCommand(
|
|
114
|
+
program.addCommand(createDoctorCommand());
|
|
115
115
|
// Daemon lifecycle commands (task-9)
|
|
116
116
|
program.addCommand(createStartCommand());
|
|
117
117
|
program.addCommand(createStopCommand());
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,2CAqa5F"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useState, useCallback } from 'react';
|
|
4
4
|
import { Handle, Position } from '@xyflow/react';
|
|
5
5
|
import { useRouter } from 'next/navigation';
|
|
6
|
-
import { Github, Plus, Code2, Terminal, FolderOpen, Trash2, Play, Square, GitBranch, GitCommitHorizontal, ArrowDown, User, RotateCcw,
|
|
6
|
+
import { Github, Plus, Code2, Terminal, FolderOpen, Trash2, Play, Square, GitBranch, GitCommitHorizontal, ArrowDown, User, RotateCcw, } from 'lucide-react';
|
|
7
7
|
import { cn } from '../../../lib/utils.js';
|
|
8
8
|
import { ActionButton } from '../../common/action-button/index.js';
|
|
9
9
|
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '../../ui/dialog.js';
|
|
@@ -12,7 +12,6 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../
|
|
|
12
12
|
import { useDeployAction } from '../../../hooks/use-deploy-action.js';
|
|
13
13
|
import { useFeatureFlags } from '../../../hooks/feature-flags-context.js';
|
|
14
14
|
import { useRepositoryActions } from './use-repository-actions.js';
|
|
15
|
-
import { useCoastsActions } from './use-coasts-actions.js';
|
|
16
15
|
import { FeatureSessionsDropdown, } from '../../common/feature-node/feature-sessions-dropdown.js';
|
|
17
16
|
export function RepositoryNode({ data }) {
|
|
18
17
|
const router = useRouter();
|
|
@@ -26,7 +25,6 @@ export function RepositoryNode({ data }) {
|
|
|
26
25
|
repositoryPath: data.repositoryPath,
|
|
27
26
|
}
|
|
28
27
|
: null);
|
|
29
|
-
const coastsActions = useCoastsActions(data.repositoryPath ? { repositoryPath: data.repositoryPath } : null);
|
|
30
28
|
const isDeploymentActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';
|
|
31
29
|
const handleCreateFromSession = useCallback((session, sessionFilePath) => {
|
|
32
30
|
if (!data.repositoryPath)
|
|
@@ -87,10 +85,5 @@ export function RepositoryNode({ data }) {
|
|
|
87
85
|
? 'Retry'
|
|
88
86
|
: isDeploymentActive
|
|
89
87
|
? 'Stop Dev Server'
|
|
90
|
-
: 'Start Dev Server', onClick: isDeploymentActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: false, icon: deployAction.deployError ? RotateCcw : isDeploymentActive ? Square : Play, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) })] }) })) : null,
|
|
91
|
-
? 'Regenerate Coastfile'
|
|
92
|
-
: 'Generate Coastfile', onClick: coastsActions.generateCoastfile, loading: coastsActions.generating || coastsActions.checkLoading, error: !!coastsActions.error, icon: FileCode2, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: coastsActions.error ??
|
|
93
|
-
(coastsActions.coastfileExists
|
|
94
|
-
? 'Regenerate Coastfile'
|
|
95
|
-
: 'Generate Coastfile') })] }) })] }) })) : null] }), data.onAdd || data.showHandles ? (_jsx(Handle, { type: "source", position: Position.Right, isConnectable: !data.showHandles, className: "opacity-0!", style: { top: 70 } })) : null] }));
|
|
88
|
+
: 'Start Dev Server', onClick: isDeploymentActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: false, icon: deployAction.deployError ? RotateCcw : isDeploymentActive ? Square : Play, iconOnly: true, variant: "ghost", size: "icon-xs" }) }) }), _jsx(TooltipContent, { children: isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) })] }) })) : null] }), data.onAdd || data.showHandles ? (_jsx(Handle, { type: "source", position: Position.Right, isConnectable: !data.showHandles, className: "opacity-0!", style: { top: 70 } })) : null] }));
|
|
96
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/feature-flags-settings-section.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-flags-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/feature-flags-settings-section.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AA8BzE,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,2BAA2B,CAAC,EAAE,YAAY,EAAE,EAAE,gCAAgC,2CAgE7F"}
|
package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js
CHANGED
|
@@ -14,7 +14,6 @@ const FLAG_DESCRIPTIONS = {
|
|
|
14
14
|
githubImport: 'Enable GitHub repository import in the web UI',
|
|
15
15
|
adoptBranch: 'Enable the ability to adopt existing branches as tracked features',
|
|
16
16
|
reactFileManager: 'Use the built-in React file manager instead of the native OS folder picker. Also serves as automatic fallback when the native picker is unavailable.',
|
|
17
|
-
coastsDevServer: 'Enable Coasts containerized runtime isolation for the dev server, providing per-worktree isolation via Docker containers',
|
|
18
17
|
};
|
|
19
18
|
const FLAG_LABELS = {
|
|
20
19
|
skills: 'Skills',
|
|
@@ -23,7 +22,6 @@ const FLAG_LABELS = {
|
|
|
23
22
|
githubImport: 'GitHub Import',
|
|
24
23
|
adoptBranch: 'Adopt Branch',
|
|
25
24
|
reactFileManager: 'React File Manager',
|
|
26
|
-
coastsDevServer: 'Coasts Dev Server',
|
|
27
25
|
};
|
|
28
26
|
const FLAG_KEYS = [
|
|
29
27
|
'skills',
|
|
@@ -32,7 +30,6 @@ const FLAG_KEYS = [
|
|
|
32
30
|
'githubImport',
|
|
33
31
|
'adoptBranch',
|
|
34
32
|
'reactFileManager',
|
|
35
|
-
'coastsDevServer',
|
|
36
33
|
];
|
|
37
34
|
export function FeatureFlagsSettingsSection({ featureFlags }) {
|
|
38
35
|
const [flags, setFlags] = useState({ ...featureFlags });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/feature-flags-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,QAAA,MAAM,IAAI;;;;;;;CAO0C,CAAC;AAErD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"feature-flags-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/feature-flags-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,QAAA,MAAM,IAAI;;;;;;;CAO0C,CAAC;AAErD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAWzB,CAAC"}
|
|
@@ -17,7 +17,6 @@ export const Default = {
|
|
|
17
17
|
githubImport: false,
|
|
18
18
|
adoptBranch: false,
|
|
19
19
|
reactFileManager: false,
|
|
20
|
-
coastsDevServer: false,
|
|
21
20
|
},
|
|
22
21
|
},
|
|
23
22
|
};
|
|
@@ -30,7 +29,6 @@ export const AllEnabled = {
|
|
|
30
29
|
githubImport: true,
|
|
31
30
|
adoptBranch: true,
|
|
32
31
|
reactFileManager: true,
|
|
33
|
-
coastsDevServer: true,
|
|
34
32
|
},
|
|
35
33
|
},
|
|
36
34
|
};
|
|
@@ -43,7 +41,6 @@ export const AllDisabled = {
|
|
|
43
41
|
githubImport: false,
|
|
44
42
|
adoptBranch: false,
|
|
45
43
|
reactFileManager: false,
|
|
46
|
-
coastsDevServer: false,
|
|
47
44
|
},
|
|
48
45
|
},
|
|
49
46
|
};
|
package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA2B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA6QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"settings-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AA2B/E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AA6QD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,GACnB,EAAE,uBAAuB,2CAgpCzB"}
|
|
@@ -122,7 +122,6 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
122
122
|
githubImport: false,
|
|
123
123
|
adoptBranch: false,
|
|
124
124
|
reactFileManager: false,
|
|
125
|
-
coastsDevServer: false,
|
|
126
125
|
};
|
|
127
126
|
// Agent state
|
|
128
127
|
const [agentType, setAgentType] = useState(settings.agent.type);
|
|
@@ -502,10 +501,6 @@ export function SettingsPageClient({ settings, shepHome, dbFileSize, availableTe
|
|
|
502
501
|
const newFlags = { ...flags, reactFileManager: v };
|
|
503
502
|
setFlags(newFlags);
|
|
504
503
|
save({ featureFlags: newFlags });
|
|
505
|
-
} }), _jsx(SwitchRow, { label: "Coasts Dev Server", description: "Enable Coasts containerized runtime isolation for the dev server", id: "flag-coastsDevServer", testId: "switch-flag-coastsDevServer", checked: flags.coastsDevServer, onChange: (v) => {
|
|
506
|
-
const newFlags = { ...flags, coastsDevServer: v };
|
|
507
|
-
setFlags(newFlags);
|
|
508
|
-
save({ featureFlags: newFlags });
|
|
509
504
|
} })] }), _jsx(SectionHint, { children: "Experimental features that are still under development. Enable at your own risk \u2014 they may change or be removed in future versions. Debug mode adds verbose logging useful for troubleshooting." })] }), _jsxs("div", { id: "section-database", className: "grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]", children: [_jsxs(SettingsSection, { icon: Database, title: "Database", description: "Local storage information", testId: "database-settings-section", children: [_jsx(SettingsRow, { label: "Location", description: "Path to the local SQLite database", children: _jsx("span", { className: "text-muted-foreground max-w-50 truncate font-mono text-xs", "data-testid": "shep-home-path", children: shepHome }) }), _jsx(SettingsRow, { label: "Size", children: _jsx("span", { className: "text-muted-foreground text-xs", "data-testid": "db-file-size", children: dbFileSize }) })] }), _jsx(SectionHint, { links: [
|
|
510
505
|
{
|
|
511
506
|
label: 'Settings service',
|
package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoBzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsB5B,CAAC"}
|
package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app-sidebar.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAyBjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAmDnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAIlC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAiB3B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
|