@shepai/cli 1.181.0-pr551.d179853 → 1.182.0
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/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +1 -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 +2 -9
- package/dist/src/presentation/cli/commands/app/del.command.d.ts +14 -0
- package/dist/src/presentation/cli/commands/app/del.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/del.command.js +58 -0
- package/dist/src/presentation/cli/commands/app/index.d.ts +20 -0
- package/dist/src/presentation/cli/commands/app/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/index.js +33 -0
- package/dist/src/presentation/cli/commands/app/ls.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/app/ls.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/ls.command.js +74 -0
- package/dist/src/presentation/cli/commands/app/new.command.d.ts +17 -0
- package/dist/src/presentation/cli/commands/app/new.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/new.command.js +58 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.d.ts +10 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.js +33 -0
- package/dist/src/presentation/cli/commands/app/show.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/app/show.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/show.command.js +95 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/translations/ar/cli.json +63 -0
- package/dist/translations/de/cli.json +63 -0
- package/dist/translations/en/cli.json +63 -0
- package/dist/translations/es/cli.json +63 -0
- package/dist/translations/fr/cli.json +63 -0
- package/dist/translations/he/cli.json +63 -0
- package/dist/translations/pt/cli.json +63 -0
- package/dist/translations/ru/cli.json +63 -0
- package/dist/translations/uk/cli.json +63 -0
- 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 +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
- 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/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
- 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 +41 -41
- 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 +41 -41
- 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]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- 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)/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
- 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 +41 -41
- 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 +41 -41
- 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 +30 -30
- 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]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- 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 +7 -7
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +7 -7
- 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/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/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e265da61._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0277d3b5._.js +1 -1
- package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_b5f27f0d._.js → _177d29c6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_b5f27f0d._.js.map → _177d29c6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_06824559._.js → _21cc662b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_06824559._.js.map → _21cc662b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_c18ba389._.js → _503102fc._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c18ba389._.js.map → _503102fc._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3b3df45b._.js → _575fe3ee._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3b3df45b._.js.map → _575fe3ee._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_946a7fc6._.js +1 -1
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_14213445._.js → _a7184dfa._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_14213445._.js.map → _a7184dfa._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_eff1b518._.js +1 -1
- package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f227429a._.js +1 -1
- package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.js +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/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.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_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.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 +54 -54
- package/web/.next/static/chunks/{f46b5d956fd22a3d.js → 2424ab50273fe1d9.js} +1 -1
- package/web/.next/static/chunks/{364188ebe8b99f20.js → 33dc7a1041f4ab64.js} +1 -1
- package/web/.next/static/chunks/{f10c081a9f2a3545.js → 6afd16b2fe544054.js} +2 -2
- package/web/.next/static/chunks/{ec4509e254183bb7.js → 7604027076448f2b.js} +1 -1
- package/web/.next/static/chunks/{c408e0585eb62a7a.js → 87a0df5389e06641.js} +1 -1
- package/web/.next/static/chunks/{3fe66accbbdab69e.js → 8c9016ab8c1f6204.js} +1 -1
- package/web/.next/static/chunks/94e8559ae19a16e1.js +1 -0
- package/web/.next/static/chunks/a0cfca1e5fd467e9.js +1 -0
- package/web/.next/static/chunks/{4f6d96bfbae7edf6.js → a2531137c7d36d54.js} +1 -1
- package/web/.next/static/chunks/{97f05a2f577750fd.js → ac22076c64634ac1.js} +1 -1
- package/web/.next/static/chunks/{c6617621632e27ec.js → b4aa3a83f2451e07.js} +1 -1
- package/web/.next/static/chunks/{f173859b70ca33bf.js → b87904ecdddde972.js} +1 -1
- package/web/.next/static/chunks/{6afcb4db84eafeb0.js → be2e80436bc15812.js} +3 -3
- package/web/.next/static/chunks/{df28094b33bfda97.js → ceff12f8a2e5bc08.js} +1 -1
- package/web/.next/static/chunks/de7de1db2a8788dd.js +1 -0
- package/web/.next/static/chunks/{c62e0c838240b95c.js → e4f0ca20b62bd66f.js} +1 -1
- package/web/.next/static/chunks/2dbe2a1b8bff3c18.js +0 -1
- package/web/.next/static/chunks/3a301cd8961fc19b.js +0 -1
- package/web/.next/static/chunks/b037aa4cb484dea0.js +0 -1
- /package/web/.next/static/{ZrIx5c5d4ph6rB25FzMEY → EVCmRtpgNX9ebXGb-bV1G}/_buildManifest.js +0 -0
- /package/web/.next/static/{ZrIx5c5d4ph6rB25FzMEY → EVCmRtpgNX9ebXGb-bV1G}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{ZrIx5c5d4ph6rB25FzMEY → EVCmRtpgNX9ebXGb-bV1G}/_ssgManifest.js +0 -0
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts
CHANGED
|
@@ -164,7 +164,7 @@ export interface IGitPrService {
|
|
|
164
164
|
org?: string;
|
|
165
165
|
}): Promise<string>;
|
|
166
166
|
/**
|
|
167
|
-
* Add a git remote to the local repository
|
|
167
|
+
* Add a git remote to the local repository.
|
|
168
168
|
*
|
|
169
169
|
* @param cwd - Working directory path
|
|
170
170
|
* @param remoteName - Name for the remote (e.g. "origin")
|
|
@@ -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":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wEAAwE,CAAC;AAC5G,OAAO,KAAK,EACV,cAAc,EAGd,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,wEAAwE,CAAC;AAUhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,qBACa,YAAa,YAAW,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBjD,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgF9C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YA6BjF,eAAe;IASvB,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IA+HV,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnF,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBjE,OAAO,CACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC;IAiEpB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhF,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAevE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAaxE,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,aAAa;IAmFf,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCpD,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAc/E,WAAW,CACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC;IA6CnB;;;OAGG;YACW,UAAU;IAmBlB,cAAc,CAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC;IAWlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,oBAAoB;IAKtB,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,MAAM,CAAC;IAqClB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;YACW,YAAY;IASpB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
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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"}
|
|
@@ -755,15 +755,8 @@ let GitPrService = class GitPrService {
|
|
|
755
755
|
try {
|
|
756
756
|
await this.execFile('git', ['remote', 'add', remoteName, remoteUrl], { cwd });
|
|
757
757
|
}
|
|
758
|
-
catch {
|
|
759
|
-
|
|
760
|
-
// — update its URL instead of failing.
|
|
761
|
-
try {
|
|
762
|
-
await this.execFile('git', ['remote', 'set-url', remoteName, remoteUrl], { cwd });
|
|
763
|
-
}
|
|
764
|
-
catch (setUrlError) {
|
|
765
|
-
throw this.parseGitError(setUrlError);
|
|
766
|
-
}
|
|
758
|
+
catch (error) {
|
|
759
|
+
throw this.parseGitError(error);
|
|
767
760
|
}
|
|
768
761
|
}
|
|
769
762
|
parseDiffStat(diffStat, logOutput) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Soft-deletes an application and stops any active session.
|
|
5
|
+
*
|
|
6
|
+
* Usage: shep app del <id> [--force]
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* $ shep app del a1b2c3d4
|
|
10
|
+
* $ shep app del a1b2c3d4 --force
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
export declare function createDelCommand(): Command;
|
|
14
|
+
//# sourceMappingURL=del.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"del.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/del.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,gBAAgB,IAAI,OAAO,CAyC1C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Soft-deletes an application and stops any active session.
|
|
5
|
+
*
|
|
6
|
+
* Usage: shep app del <id> [--force]
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* $ shep app del a1b2c3d4
|
|
10
|
+
* $ shep app del a1b2c3d4 --force
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
14
|
+
import { DeleteApplicationUseCase } from '../../../../../packages/core/src/application/use-cases/applications/delete-application.use-case.js';
|
|
15
|
+
import { colors, messages } from '../../ui/index.js';
|
|
16
|
+
import { confirm } from '@inquirer/prompts';
|
|
17
|
+
import { resolveApplication } from './resolve-application.js';
|
|
18
|
+
import { getCliI18n } from '../../i18n.js';
|
|
19
|
+
export function createDelCommand() {
|
|
20
|
+
const t = getCliI18n().t;
|
|
21
|
+
return new Command('del')
|
|
22
|
+
.description(t('cli:commands.app.del.description'))
|
|
23
|
+
.argument('<id>', t('cli:commands.app.del.idArgument'))
|
|
24
|
+
.option('-f, --force', t('cli:commands.app.del.forceOption'))
|
|
25
|
+
.action(async (id, options) => {
|
|
26
|
+
try {
|
|
27
|
+
const resolved = await resolveApplication(id);
|
|
28
|
+
if ('error' in resolved) {
|
|
29
|
+
messages.error(resolved.error);
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const app = resolved.application;
|
|
34
|
+
if (!options.force) {
|
|
35
|
+
const confirmed = await confirm({
|
|
36
|
+
message: t('cli:commands.app.del.confirmDelete', { name: app.name }),
|
|
37
|
+
default: false,
|
|
38
|
+
});
|
|
39
|
+
if (!confirmed) {
|
|
40
|
+
messages.info(t('cli:commands.app.del.cancelled'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const deleteUseCase = container.resolve(DeleteApplicationUseCase);
|
|
45
|
+
await deleteUseCase.execute(app.id);
|
|
46
|
+
messages.newline();
|
|
47
|
+
messages.success(t('cli:commands.app.del.appDeleted'));
|
|
48
|
+
console.log(` ${colors.muted(t('cli:commands.app.del.nameLabel'))} ${app.name}`);
|
|
49
|
+
console.log(` ${colors.muted(t('cli:commands.app.del.slugLabel'))} ${app.slug}`);
|
|
50
|
+
messages.newline();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
54
|
+
messages.error(t('cli:commands.app.del.failedToDelete'), err);
|
|
55
|
+
process.exitCode = 1;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App Command
|
|
3
|
+
*
|
|
4
|
+
* Top-level app command with subcommands for managing applications.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep app [subcommand]
|
|
8
|
+
*
|
|
9
|
+
* Subcommands:
|
|
10
|
+
* shep app ls List applications
|
|
11
|
+
* shep app show <id> Display details of an application
|
|
12
|
+
* shep app new <desc> Create a new application
|
|
13
|
+
* shep app del <id> Delete an application
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
/**
|
|
17
|
+
* Create the app command with all subcommands
|
|
18
|
+
*/
|
|
19
|
+
export declare function createAppCommand(): Command;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAU1C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App Command
|
|
3
|
+
*
|
|
4
|
+
* Top-level app command with subcommands for managing applications.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep app [subcommand]
|
|
8
|
+
*
|
|
9
|
+
* Subcommands:
|
|
10
|
+
* shep app ls List applications
|
|
11
|
+
* shep app show <id> Display details of an application
|
|
12
|
+
* shep app new <desc> Create a new application
|
|
13
|
+
* shep app del <id> Delete an application
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import { createLsCommand } from './ls.command.js';
|
|
17
|
+
import { createShowCommand } from './show.command.js';
|
|
18
|
+
import { createNewCommand } from './new.command.js';
|
|
19
|
+
import { createDelCommand } from './del.command.js';
|
|
20
|
+
import { getCliI18n } from '../../i18n.js';
|
|
21
|
+
/**
|
|
22
|
+
* Create the app command with all subcommands
|
|
23
|
+
*/
|
|
24
|
+
export function createAppCommand() {
|
|
25
|
+
const t = getCliI18n().t;
|
|
26
|
+
const app = new Command('app')
|
|
27
|
+
.description(t('cli:commands.app.description'))
|
|
28
|
+
.addCommand(createLsCommand())
|
|
29
|
+
.addCommand(createShowCommand())
|
|
30
|
+
.addCommand(createNewCommand())
|
|
31
|
+
.addCommand(createDelCommand());
|
|
32
|
+
return app;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ls.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/ls.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,eAAe,IAAI,OAAO,CAkCzC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application List Command
|
|
3
|
+
*
|
|
4
|
+
* List all applications in a formatted table.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep app ls
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
11
|
+
import { ListApplicationsUseCase } from '../../../../../packages/core/src/application/use-cases/applications/list-applications.use-case.js';
|
|
12
|
+
import { colors, messages, renderListView } from '../../ui/index.js';
|
|
13
|
+
import { getCliI18n } from '../../i18n.js';
|
|
14
|
+
/** Format a duration in ms to a compact human-readable string. */
|
|
15
|
+
function formatDuration(ms) {
|
|
16
|
+
const seconds = Math.floor(ms / 1000);
|
|
17
|
+
if (seconds < 60)
|
|
18
|
+
return `${seconds}s`;
|
|
19
|
+
const minutes = Math.floor(seconds / 60);
|
|
20
|
+
if (minutes < 60)
|
|
21
|
+
return `${minutes}m`;
|
|
22
|
+
const hours = Math.floor(minutes / 60);
|
|
23
|
+
const remMin = minutes % 60;
|
|
24
|
+
if (hours < 24)
|
|
25
|
+
return remMin > 0 ? `${hours}h ${remMin}m` : `${hours}h`;
|
|
26
|
+
const days = Math.floor(hours / 24);
|
|
27
|
+
return `${days}d`;
|
|
28
|
+
}
|
|
29
|
+
function colorStatus(status) {
|
|
30
|
+
switch (status) {
|
|
31
|
+
case 'Idle':
|
|
32
|
+
return colors.muted(status);
|
|
33
|
+
case 'Active':
|
|
34
|
+
return colors.success(status);
|
|
35
|
+
case 'Error':
|
|
36
|
+
return colors.warning(status);
|
|
37
|
+
default:
|
|
38
|
+
return colors.muted(status);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function createLsCommand() {
|
|
42
|
+
const t = getCliI18n().t;
|
|
43
|
+
return new Command('ls').description(t('cli:commands.app.ls.description')).action(async () => {
|
|
44
|
+
try {
|
|
45
|
+
const useCase = container.resolve(ListApplicationsUseCase);
|
|
46
|
+
const applications = await useCase.execute();
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
const rows = applications.map((app) => [
|
|
49
|
+
app.id.substring(0, 8),
|
|
50
|
+
app.name,
|
|
51
|
+
colorStatus(app.status),
|
|
52
|
+
app.repositoryPath,
|
|
53
|
+
colors.muted(`${formatDuration(now - new Date(app.createdAt).getTime())} ago`),
|
|
54
|
+
]);
|
|
55
|
+
renderListView({
|
|
56
|
+
title: t('cli:commands.app.ls.title'),
|
|
57
|
+
columns: [
|
|
58
|
+
{ label: t('cli:commands.app.ls.idColumn'), width: 10 },
|
|
59
|
+
{ label: t('cli:commands.app.ls.nameColumn'), width: 28 },
|
|
60
|
+
{ label: t('cli:commands.app.ls.statusColumn'), width: 10 },
|
|
61
|
+
{ label: t('cli:commands.app.ls.pathColumn'), width: 36 },
|
|
62
|
+
{ label: t('cli:commands.app.ls.createdColumn'), width: 12 },
|
|
63
|
+
],
|
|
64
|
+
rows,
|
|
65
|
+
emptyMessage: t('cli:commands.app.ls.noApps'),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
70
|
+
messages.error(t('cli:commands.app.ls.failedToList'), err);
|
|
71
|
+
process.exitCode = 1;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application New Command
|
|
3
|
+
*
|
|
4
|
+
* Creates a new application with optional initial prompt to kick off
|
|
5
|
+
* an interactive agent session.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* shep app new <description> [options]
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* $ shep app new "Build a todo list app with React"
|
|
12
|
+
* $ shep app new "REST API for inventory management" --agent claude-code
|
|
13
|
+
* $ shep app new "Portfolio website" --model claude-opus-4-6
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
export declare function createNewCommand(): Command;
|
|
17
|
+
//# sourceMappingURL=new.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/new.command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,gBAAgB,IAAI,OAAO,CAuD1C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application New Command
|
|
3
|
+
*
|
|
4
|
+
* Creates a new application with optional initial prompt to kick off
|
|
5
|
+
* an interactive agent session.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* shep app new <description> [options]
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* $ shep app new "Build a todo list app with React"
|
|
12
|
+
* $ shep app new "REST API for inventory management" --agent claude-code
|
|
13
|
+
* $ shep app new "Portfolio website" --model claude-opus-4-6
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
17
|
+
import { CreateApplicationUseCase } from '../../../../../packages/core/src/application/use-cases/applications/create-application.use-case.js';
|
|
18
|
+
import { colors, messages, spinner } from '../../ui/index.js';
|
|
19
|
+
import { getCliI18n } from '../../i18n.js';
|
|
20
|
+
export function createNewCommand() {
|
|
21
|
+
const t = getCliI18n().t;
|
|
22
|
+
return new Command('new')
|
|
23
|
+
.description(t('cli:commands.app.new.description'))
|
|
24
|
+
.argument('<description>', t('cli:commands.app.new.descriptionArgument'))
|
|
25
|
+
.option('--agent <type>', t('cli:commands.app.new.agentOption'))
|
|
26
|
+
.option('--model <model>', t('cli:commands.app.new.modelOption'))
|
|
27
|
+
.action(async (description, options) => {
|
|
28
|
+
try {
|
|
29
|
+
const useCase = container.resolve(CreateApplicationUseCase);
|
|
30
|
+
const result = await spinner(t('cli:commands.app.new.spinnerText'), () => useCase.execute({
|
|
31
|
+
description,
|
|
32
|
+
agentType: options.agent,
|
|
33
|
+
modelOverride: options.model,
|
|
34
|
+
initialPrompt: description,
|
|
35
|
+
}));
|
|
36
|
+
const { application } = result;
|
|
37
|
+
messages.newline();
|
|
38
|
+
messages.success(t('cli:commands.app.new.appCreated'));
|
|
39
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.idLabel'))} ${colors.accent(application.id)}`);
|
|
40
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.nameLabel'))} ${application.name}`);
|
|
41
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.slugLabel'))} ${application.slug}`);
|
|
42
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.pathLabel'))} ${result.repositoryPath}`);
|
|
43
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.statusLabel'))} ${application.status}`);
|
|
44
|
+
if (application.agentType) {
|
|
45
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.agentLabel'))} ${application.agentType}`);
|
|
46
|
+
}
|
|
47
|
+
if (application.modelOverride) {
|
|
48
|
+
console.log(` ${colors.muted(t('cli:commands.app.new.modelLabel'))} ${application.modelOverride}`);
|
|
49
|
+
}
|
|
50
|
+
messages.newline();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
54
|
+
messages.error(t('cli:commands.app.new.failedToCreate'), err);
|
|
55
|
+
process.exitCode = 1;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helper: resolve an application by exact ID, prefix, or slug.
|
|
3
|
+
*/
|
|
4
|
+
import type { Application } from '../../../../../packages/core/src/domain/generated/output.js';
|
|
5
|
+
export declare function resolveApplication(id: string): Promise<{
|
|
6
|
+
application: Application;
|
|
7
|
+
} | {
|
|
8
|
+
error: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=resolve-application.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-application.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/resolve-application.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGhE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B3D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helper: resolve an application by exact ID, prefix, or slug.
|
|
3
|
+
*/
|
|
4
|
+
import { container } from '../../../../../packages/core/src/infrastructure/di/container.js';
|
|
5
|
+
import { getCliI18n } from '../../i18n.js';
|
|
6
|
+
export async function resolveApplication(id) {
|
|
7
|
+
const t = getCliI18n().t;
|
|
8
|
+
const repo = container.resolve('IApplicationRepository');
|
|
9
|
+
// Try exact ID match first
|
|
10
|
+
const exact = await repo.findById(id);
|
|
11
|
+
if (exact)
|
|
12
|
+
return { application: exact };
|
|
13
|
+
// Try slug match
|
|
14
|
+
const bySlug = await repo.findBySlug(id);
|
|
15
|
+
if (bySlug)
|
|
16
|
+
return { application: bySlug };
|
|
17
|
+
// Try prefix match on ID
|
|
18
|
+
if (id.length < 36) {
|
|
19
|
+
const all = await repo.list();
|
|
20
|
+
const matches = all.filter((a) => a.id.startsWith(id));
|
|
21
|
+
if (matches.length === 1)
|
|
22
|
+
return { application: matches[0] };
|
|
23
|
+
if (matches.length > 1) {
|
|
24
|
+
return {
|
|
25
|
+
error: t('cli:commands.app.resolve.multipleMatch', {
|
|
26
|
+
id,
|
|
27
|
+
matches: matches.map((m) => m.id.substring(0, 8)).join(', '),
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return { error: t('cli:commands.app.resolve.notFound', { id }) };
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Show Command
|
|
3
|
+
*
|
|
4
|
+
* Display details of a specific application.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep app show <id>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createShowCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=show.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.command.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/app/show.command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwE3C"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Show Command
|
|
3
|
+
*
|
|
4
|
+
* Display details of a specific application.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* shep app show <id>
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { colors, messages, renderDetailView } from '../../ui/index.js';
|
|
11
|
+
import { resolveApplication } from './resolve-application.js';
|
|
12
|
+
import { getCliI18n } from '../../i18n.js';
|
|
13
|
+
function formatDate(date) {
|
|
14
|
+
if (!date)
|
|
15
|
+
return null;
|
|
16
|
+
try {
|
|
17
|
+
return new Date(date).toLocaleString();
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return String(date);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function createShowCommand() {
|
|
24
|
+
const t = getCliI18n().t;
|
|
25
|
+
return new Command('show')
|
|
26
|
+
.description(t('cli:commands.app.show.description'))
|
|
27
|
+
.argument('<id>', t('cli:commands.app.show.idArgument'))
|
|
28
|
+
.action(async (id) => {
|
|
29
|
+
try {
|
|
30
|
+
const resolved = await resolveApplication(id);
|
|
31
|
+
if ('error' in resolved) {
|
|
32
|
+
messages.error(resolved.error);
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const app = resolved.application;
|
|
37
|
+
renderDetailView({
|
|
38
|
+
title: t('cli:commands.app.show.title', { name: app.name }),
|
|
39
|
+
sections: [
|
|
40
|
+
{
|
|
41
|
+
fields: [
|
|
42
|
+
{ label: 'ID', value: app.id },
|
|
43
|
+
{ label: t('cli:commands.app.show.nameLabel'), value: app.name },
|
|
44
|
+
{ label: t('cli:commands.app.show.slugLabel'), value: app.slug },
|
|
45
|
+
{ label: t('cli:commands.app.show.statusLabel'), value: app.status },
|
|
46
|
+
{
|
|
47
|
+
label: t('cli:commands.app.show.descriptionLabel'),
|
|
48
|
+
value: app.description,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: t('cli:commands.app.show.pathLabel'),
|
|
52
|
+
value: app.repositoryPath,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
title: t('cli:commands.app.show.configTitle'),
|
|
58
|
+
fields: [
|
|
59
|
+
{
|
|
60
|
+
label: t('cli:commands.app.show.agentLabel'),
|
|
61
|
+
value: app.agentType ?? colors.muted('default'),
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
label: t('cli:commands.app.show.modelLabel'),
|
|
65
|
+
value: app.modelOverride ?? colors.muted('default'),
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
title: t('cli:commands.app.show.timestampsTitle'),
|
|
71
|
+
fields: [
|
|
72
|
+
{
|
|
73
|
+
label: t('cli:commands.app.show.createdLabel'),
|
|
74
|
+
value: formatDate(app.createdAt),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: t('cli:commands.app.show.updatedLabel'),
|
|
78
|
+
value: formatDate(app.updatedAt),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
label: t('cli:commands.app.show.deletedLabel'),
|
|
82
|
+
value: formatDate(app.deletedAt),
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
91
|
+
messages.error(t('cli:commands.app.show.failedToShow'), err);
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
@@ -37,6 +37,7 @@ import { createRunCommand } from './commands/run.command.js';
|
|
|
37
37
|
import { createAgentCommand } from './commands/agent/index.js';
|
|
38
38
|
import { createFeatCommand } from './commands/feat/index.js';
|
|
39
39
|
import { createRepoCommand } from './commands/repo/index.js';
|
|
40
|
+
import { createAppCommand } from './commands/app/index.js';
|
|
40
41
|
import { createSessionCommand } from './commands/session/index.js';
|
|
41
42
|
import { createIdeOpenCommand } from './commands/ide-open.command.js';
|
|
42
43
|
import { createInstallCommand } from './commands/install.command.js';
|
|
@@ -117,6 +118,7 @@ async function bootstrap() {
|
|
|
117
118
|
program.addCommand(createAgentCommand());
|
|
118
119
|
program.addCommand(createFeatCommand());
|
|
119
120
|
program.addCommand(createRepoCommand());
|
|
121
|
+
program.addCommand(createAppCommand());
|
|
120
122
|
program.addCommand(createSessionCommand());
|
|
121
123
|
program.addCommand(createIdeOpenCommand());
|
|
122
124
|
program.addCommand(createInstallCommand());
|
|
@@ -478,6 +478,69 @@
|
|
|
478
478
|
"notFound": "المستودع غير موجود: {{id}}"
|
|
479
479
|
}
|
|
480
480
|
},
|
|
481
|
+
"app": {
|
|
482
|
+
"description": "Manage applications",
|
|
483
|
+
"ls": {
|
|
484
|
+
"description": "List applications",
|
|
485
|
+
"title": "Applications",
|
|
486
|
+
"idColumn": "ID",
|
|
487
|
+
"nameColumn": "Name",
|
|
488
|
+
"statusColumn": "Status",
|
|
489
|
+
"pathColumn": "Path",
|
|
490
|
+
"createdColumn": "Created",
|
|
491
|
+
"noApps": "No applications found",
|
|
492
|
+
"failedToList": "Failed to list applications"
|
|
493
|
+
},
|
|
494
|
+
"show": {
|
|
495
|
+
"description": "Display details of an application",
|
|
496
|
+
"idArgument": "Application ID, slug, or prefix",
|
|
497
|
+
"title": "Application: {{name}}",
|
|
498
|
+
"nameLabel": "Name",
|
|
499
|
+
"slugLabel": "Slug",
|
|
500
|
+
"statusLabel": "Status",
|
|
501
|
+
"descriptionLabel": "Description",
|
|
502
|
+
"pathLabel": "Path",
|
|
503
|
+
"configTitle": "Configuration",
|
|
504
|
+
"agentLabel": "Agent",
|
|
505
|
+
"modelLabel": "Model",
|
|
506
|
+
"timestampsTitle": "Timestamps",
|
|
507
|
+
"createdLabel": "Created",
|
|
508
|
+
"updatedLabel": "Updated",
|
|
509
|
+
"deletedLabel": "Deleted",
|
|
510
|
+
"failedToShow": "Failed to show application"
|
|
511
|
+
},
|
|
512
|
+
"new": {
|
|
513
|
+
"description": "Create a new application",
|
|
514
|
+
"descriptionArgument": "Application description",
|
|
515
|
+
"agentOption": "Agent type override",
|
|
516
|
+
"modelOption": "LLM model override (e.g. claude-opus-4-6)",
|
|
517
|
+
"spinnerText": "Creating application",
|
|
518
|
+
"appCreated": "Application created",
|
|
519
|
+
"idLabel": "ID:",
|
|
520
|
+
"nameLabel": "Name:",
|
|
521
|
+
"slugLabel": "Slug:",
|
|
522
|
+
"pathLabel": "Path:",
|
|
523
|
+
"statusLabel": "Status:",
|
|
524
|
+
"agentLabel": "Agent:",
|
|
525
|
+
"modelLabel": "Model:",
|
|
526
|
+
"failedToCreate": "Failed to create application"
|
|
527
|
+
},
|
|
528
|
+
"del": {
|
|
529
|
+
"description": "Delete an application",
|
|
530
|
+
"idArgument": "Application ID, slug, or prefix",
|
|
531
|
+
"forceOption": "Skip confirmation prompt",
|
|
532
|
+
"confirmDelete": "Delete application \"{{name}}\"?",
|
|
533
|
+
"cancelled": "Cancelled",
|
|
534
|
+
"appDeleted": "Application deleted",
|
|
535
|
+
"nameLabel": "Name:",
|
|
536
|
+
"slugLabel": "Slug:",
|
|
537
|
+
"failedToDelete": "Failed to delete application"
|
|
538
|
+
},
|
|
539
|
+
"resolve": {
|
|
540
|
+
"multipleMatch": "Multiple applications match prefix \"{{id}}\": {{matches}}",
|
|
541
|
+
"notFound": "Application not found: {{id}}"
|
|
542
|
+
}
|
|
543
|
+
},
|
|
481
544
|
"agent": {
|
|
482
545
|
"description": "إدارة وعرض تشغيلات الوكيل",
|
|
483
546
|
"show": {
|