@shepai/cli 1.35.3 → 1.37.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/agents/phase-timing-repository.interface.d.ts +7 -0
- package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/ide-launcher-service.interface.d.ts +64 -0
- package/dist/packages/core/src/application/ports/output/services/ide-launcher-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/ide-launcher-service.interface.js +7 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts +3 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +22 -2
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.d.ts +20 -0
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/ide/launch-ide.use-case.js +54 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +8 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +7 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +8 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js +28 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.d.ts +9 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.js +26 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/json-driven-ide-launcher.service.d.ts +23 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/json-driven-ide-launcher.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/json-driven-ide-launcher.service.js +114 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +20 -4
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.js +9 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/antigravity.json +5 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/claude-code.json +8 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor-cli.json +8 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor.json +2 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/vscode.json +2 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/windsurf.json +2 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zed.json +2 -2
- package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/show.command.js +46 -12
- package/dist/src/presentation/cli/commands/ide-open.command.d.ts +3 -1
- package/dist/src/presentation/cli/commands/ide-open.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ide-open.command.js +27 -28
- package/dist/src/presentation/cli/commands/install.command.js +3 -3
- package/dist/src/presentation/cli/commands/settings/ide.command.d.ts +1 -0
- package/dist/src/presentation/cli/commands/settings/ide.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/ide.command.js +10 -13
- package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts +9 -25
- package/dist/src/presentation/tui/prompts/ide-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/ide-select.prompt.js +9 -29
- package/dist/src/presentation/web/app/api/ide/open/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/ide/open/route.js +3 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- 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/_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/api/ide/open/route.js +1 -2
- package/web/.next/server/app/api/ide/open/route.js.nft.json +1 -1
- package/web/.next/server/app/api/shell/open/route.js +1 -1
- package/web/.next/server/app/api/shell/open/route.js.nft.json +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.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_ed0934e5._.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 +1 -1
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route.js +1 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/api/ide/open/route.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/api/shell/open/route.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__04ae3a77._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__f32c280c._.js +3 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/app/api/ide/open/route.ts +4 -2
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.js +0 -21
- package/dist/packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.js +0 -21
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts +0 -31
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.js +0 -8
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts +0 -9
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.js +0 -24
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.d.ts +0 -30
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.js +0 -43
- package/dist/packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.js +0 -21
- package/dist/packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.js +0 -21
- package/dist/packages/core/src/infrastructure/services/ide-launchers/zed.launcher.d.ts +0 -10
- package/dist/packages/core/src/infrastructure/services/ide-launchers/zed.launcher.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/zed.launcher.js +0 -21
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_12059e3e.js +0 -3
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_12059e3e.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__0af905fe._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__0af905fe._.js.map +0 -1
- package/web/.next/server/chunks/[root-of-the-server]__72567d8d._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__72567d8d._.js.map +0 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_12059e3e.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__0af905fe._.js +0 -3
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__72567d8d._.js +0 -3
- /package/web/.next/static/{aMt5PeCCyLYG-zTyUFrpm → zoaB52IxAh-lSl8Qreb0t}/_buildManifest.js +0 -0
- /package/web/.next/static/{aMt5PeCCyLYG-zTyUFrpm → zoaB52IxAh-lSl8Qreb0t}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{aMt5PeCCyLYG-zTyUFrpm → zoaB52IxAh-lSl8Qreb0t}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},91466,27192,e=>{"use strict";let t="__shepSettings";function r(){let e=function(){let e=globalThis[t];if(null!=e)return e;let r=process[t];return null!=r?r:null}();if(null===e)throw Error("Settings not initialized. Call initializeSettings() during CLI bootstrap.");return e}function n(e){let{repositoryPath:t,branch:r}=e;return"string"!=typeof t||0===t.length?{error:"repositoryPath is required and must be a non-empty string",status:400}:t.startsWith("/")?void 0===r?{repositoryPath:t,branch:void 0}:"string"!=typeof r||0===r.length?{error:"branch is required and must be a non-empty string",status:400}:r.includes("..")?{error:"branch must not contain path traversal sequences (..)",status:400}:r.includes("\0")?{error:"branch must not contain null bytes",status:400}:{repositoryPath:t,branch:r}:{error:"repositoryPath must be an absolute path (starting with /)",status:400}}e.s(["getSettings",()=>r],91466),e.s(["validateToolbarInput",()=>n],27192)},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},82144,e=>{"use strict";var t=e.i(22925),r=e.i(62995),n=e.i(14112),s=e.i(31716),a=e.i(16340),o=e.i(40522),i=e.i(21994),l=e.i(5802),u=e.i(17171),d=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),g=e.i(80556),f=e.i(93695);e.i(97230);var v=e.i(35162),R=e.i(27980),m=e.i(2157),y=e.i(74533),w=e.i(91466),E=e.i(66680),b=e.i(50227);e.i(12714);var C=e.i(60526),q=e.i(27192);async function A(e){let t;try{t=await e.json()}catch{return R.NextResponse.json({error:"Invalid or missing JSON body"},{status:400})}let r=(0,q.validateToolbarInput)(t);if("error"in r)return R.NextResponse.json({error:r.error},{status:r.status});let{repositoryPath:n,branch:s}=r;try{let e,t,r=(0,w.getSettings)().environment.shellPreference,a=s?(e=(0,E.createHash)("sha256").update(n).digest("hex").slice(0,16),t=s.replace(/\//g,"-"),(0,b.join)(process.env.SHEP_HOME??(0,b.join)((0,C.homedir)(),".shep"),"repos",e,"wt",t)):n;if(!(0,m.existsSync)(a))return R.NextResponse.json({error:`Path does not exist: ${a}`},{status:404});return process.platform,(0,y.spawn)("x-terminal-emulator",[`--working-directory=${a}`],{detached:!0,stdio:"ignore"}).unref(),R.NextResponse.json({success:!0,path:a,shell:r})}catch(t){let e=t instanceof Error?t.message:"Failed to open shell";return R.NextResponse.json({error:e},{status:500})}}e.s(["POST",()=>A],45710);var N=e.i(45710);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/shell/open/route",pathname:"/api/shell/open",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/shell/open/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:S,workUnitAsyncStorage:T,serverHooks:j}=P;function _(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:T})}async function O(e,t,n){P.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/shell/open/route";R=R.replace(/\/index$/,"")||"/";let m=await P.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:q,routerServerContext:A,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:T,clientReferenceManifest:j,serverActionsManifest:_}=m,O=(0,i.normalizeAppPath)(R),k=!!(q.dynamicRoutes[O]||q.routes[T]),H=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(k&&!C){let e=!!q.routes[T],t=q.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await H();throw new f.NoFallbackError}}let I=null;!k||P.isDev||C||(I="/index"===(I=T)?"/":I);let U=!0===P.isDev||!k,D=k&&!U;_&&j&&(0,o.setManifestsSingleton)({page:R,clientReferenceManifest:j,serverActionsManifest:_});let M=e.method||"GET",$=(0,a.getTracer)(),F=$.getActiveScopeSpan(),K={params:w,prerenderManifest:q,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>P.onRequestError(e,t,n,s,A)},sharedContext:{buildId:y}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let o=async e=>P.handle(z,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${R}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&N&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(L,B,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,A),t}},d=await P.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:q,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!k)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&k||f.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,B,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${R}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,A),k)throw t;return await (0,c.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>_,"routeModule",()=>P,"serverHooks",()=>j,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>T],82144)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__f32c280c._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},59975,a=>{a.n(a.i(72884))},63754,a=>{a.n(a.i(39838))},27075,a=>{a.n(a.i(26048))},37458,a=>{a.n(a.i(72330))},22672,a=>{a.n(a.i(41208))},32459,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>","default")},93933,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/components/features/version/version-page-client.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/version/version-page-client.tsx","default")},67651,a=>{"use strict";a.i(32459);var b=a.i(93933);a.n(b)},77048,a=>{"use strict";var b=a.i(92807),c=a.i(67651);function d(){let a={nodeVersion:process.version,platform:process.platform,arch:process.arch};return(0,b.jsx)(c.default,{versionInfo:{version:"1.
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},59975,a=>{a.n(a.i(72884))},63754,a=>{a.n(a.i(39838))},27075,a=>{a.n(a.i(26048))},37458,a=>{a.n(a.i(72330))},22672,a=>{a.n(a.i(41208))},32459,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>","default")},93933,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/components/features/version/version-page-client.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/features/version/version-page-client.tsx","default")},67651,a=>{"use strict";a.i(32459);var b=a.i(93933);a.n(b)},77048,a=>{"use strict";var b=a.i(92807),c=a.i(67651);function d(){let a={nodeVersion:process.version,platform:process.platform,arch:process.arch};return(0,b.jsx)(c.default,{versionInfo:{version:"1.36.0",name:"@shepai/cli",description:"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},systemInfo:a})}a.s(["default",()=>d],77048)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__f12b60be._.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/df7d29673e0ac11d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[40799,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n3:I[73006,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n4:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"ViewportBoundary\"]\n9:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"MetadataBoundary\"]\nb:I[42726,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"
|
|
1
|
+
<!DOCTYPE html><!--zoaB52IxAh_lSl8Qreb0t--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/df7d29673e0ac11d.js"/><script src="/_next/static/chunks/07f00e2e73d322d2.js" async=""></script><script src="/_next/static/chunks/f3b4460b1496ef52.js" async=""></script><script src="/_next/static/chunks/70993ebedee7eab0.js" async=""></script><script src="/_next/static/chunks/turbopack-a5a88a85e7ac8e8d.js" async=""></script><script src="/_next/static/chunks/ab02eec995295bef.js" async=""></script><script src="/_next/static/chunks/37bc3e283f734dca.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/df7d29673e0ac11d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[40799,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n3:I[73006,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n4:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"ViewportBoundary\"]\n9:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"MetadataBoundary\"]\nb:I[42726,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/37bc3e283f734dca.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"zoaB52IxAh-lSl8Qreb0t\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ab02eec995295bef.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/37bc3e283f734dca.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"BbJO2uAyHzhYChZQJl18tFkec2m4EFAo/O0IF4fUdtM=\"\n}"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import { getSettings } from '@shepai/core/infrastructure/services/settings.service';
|
|
3
|
-
import {
|
|
3
|
+
import type { LaunchIdeUseCase } from '@shepai/core/application/use-cases/ide/launch-ide.use-case';
|
|
4
|
+
import { resolve } from '@/lib/server-container';
|
|
4
5
|
import { validateToolbarInput } from '../../validate-toolbar-input';
|
|
5
6
|
|
|
6
7
|
export async function POST(request: Request) {
|
|
@@ -22,7 +23,8 @@ export async function POST(request: Request) {
|
|
|
22
23
|
const settings = getSettings();
|
|
23
24
|
const editor = settings.environment.defaultEditor;
|
|
24
25
|
|
|
25
|
-
const
|
|
26
|
+
const useCase = resolve<LaunchIdeUseCase>('LaunchIdeUseCase');
|
|
27
|
+
const result = await useCase.execute({
|
|
26
28
|
editorId: editor,
|
|
27
29
|
repositoryPath,
|
|
28
30
|
branch,
|
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.36.0","NEXT_PUBLIC_SHEP_PACKAGE_NAME":"@shepai/cli","NEXT_PUBLIC_SHEP_DESCRIPTION":"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":true,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/cli/cli","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","serverExternalPackages":["tsyringe","reflect-metadata","better-sqlite3"],"turbopack":{"root":"/home/runner/work/cli/cli"},"distDirRoot":".next"}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
package/web/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":226,"timestamp":68166303,"id":4,"parentId":1,"tags":{},"startTime":1771533917595,"traceId":"7946c691e51e9936"},{"name":"load-custom-routes","duration":312,"timestamp":68166632,"id":5,"parentId":1,"tags":{},"startTime":1771533917596,"traceId":"7946c691e51e9936"},{"name":"create-dist-dir","duration":269,"timestamp":68166968,"id":6,"parentId":1,"tags":{},"startTime":1771533917596,"traceId":"7946c691e51e9936"},{"name":"clean","duration":209,"timestamp":68167680,"id":7,"parentId":1,"tags":{},"startTime":1771533917597,"traceId":"7946c691e51e9936"},{"name":"create-pages-mapping","duration":211,"timestamp":68308471,"id":8,"parentId":1,"tags":{},"startTime":1771533917738,"traceId":"7946c691e51e9936"},{"name":"collect-app-files","duration":1995,"timestamp":68308726,"id":9,"parentId":1,"tags":{},"startTime":1771533917738,"traceId":"7946c691e51e9936"},{"name":"create-app-mapping","duration":1085,"timestamp":68310747,"id":10,"parentId":1,"tags":{},"startTime":1771533917740,"traceId":"7946c691e51e9936"},{"name":"create-app-layouts","duration":187,"timestamp":68311859,"id":11,"parentId":1,"tags":{},"startTime":1771533917741,"traceId":"7946c691e51e9936"},{"name":"collect-default-files","duration":763,"timestamp":68314994,"id":13,"parentId":1,"tags":{},"startTime":1771533917744,"traceId":"7946c691e51e9936"},{"name":"generate-route-types","duration":21456,"timestamp":68313679,"id":12,"parentId":1,"tags":{},"startTime":1771533917743,"traceId":"7946c691e51e9936"},{"name":"public-dir-conflict-check","duration":109,"timestamp":68335238,"id":14,"parentId":1,"tags":{},"startTime":1771533917764,"traceId":"7946c691e51e9936"},{"name":"generate-routes-manifest","duration":2360,"timestamp":68335433,"id":15,"parentId":1,"tags":{},"startTime":1771533917765,"traceId":"7946c691e51e9936"},{"name":"run-turbopack","duration":9056247,"timestamp":68341406,"id":17,"parentId":1,"tags":{},"startTime":1771533917771,"traceId":"7946c691e51e9936"},{"name":"run-typescript","duration":6200773,"timestamp":77420669,"id":19,"parentId":1,"tags":{},"startTime":1771533926850,"traceId":"7946c691e51e9936"},{"name":"generate-required-server-files","duration":1448,"timestamp":83621838,"id":21,"parentId":1,"tags":{},"startTime":1771533933051,"traceId":"7946c691e51e9936"},{"name":"check-static-error-page","duration":3397,"timestamp":83685983,"id":23,"parentId":22,"tags":{},"startTime":1771533933115,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":275342,"timestamp":83693848,"id":36,"parentId":25,"tags":{},"startTime":1771533933123,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":280962,"timestamp":83688328,"id":25,"parentId":22,"tags":{"page":"/_global-error"},"startTime":1771533933117,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":282977,"timestamp":83693575,"id":35,"parentId":24,"tags":{},"startTime":1771533933123,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":289632,"timestamp":83686974,"id":24,"parentId":22,"tags":{"page":"/_not-found"},"startTime":1771533933116,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":321664,"timestamp":83694308,"id":39,"parentId":28,"tags":{},"startTime":1771533933123,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":327331,"timestamp":83688744,"id":28,"parentId":22,"tags":{"page":"/api/dialog/pick-folder"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":326966,"timestamp":83694374,"id":40,"parentId":30,"tags":{},"startTime":1771533933124,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":332684,"timestamp":83688945,"id":30,"parentId":22,"tags":{"page":"/api/features/create"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":334799,"timestamp":83694493,"id":41,"parentId":29,"tags":{},"startTime":1771533933124,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":340498,"timestamp":83688867,"id":29,"parentId":22,"tags":{"page":"/api/features/[id]"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":344874,"timestamp":83694252,"id":38,"parentId":27,"tags":{},"startTime":1771533933123,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":350528,"timestamp":83688669,"id":27,"parentId":22,"tags":{"page":"/api/dialog/pick-files"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":344813,"timestamp":83694559,"id":42,"parentId":31,"tags":{},"startTime":1771533933124,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":350345,"timestamp":83689054,"id":31,"parentId":22,"tags":{"page":"/api/ide/open"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":343713,"timestamp":83701467,"id":44,"parentId":34,"tags":{},"startTime":1771533933131,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":355918,"timestamp":83689298,"id":34,"parentId":22,"tags":{"page":"/version"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":353192,"timestamp":83694049,"id":37,"parentId":26,"tags":{},"startTime":1771533933123,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":358700,"timestamp":83688579,"id":26,"parentId":22,"tags":{"page":"/api/agent-events"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":359426,"timestamp":83694710,"id":43,"parentId":32,"tags":{},"startTime":1771533933124,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":365043,"timestamp":83689128,"id":32,"parentId":22,"tags":{"page":"/api/shell/open"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"is-page-static","duration":358263,"timestamp":83701505,"id":45,"parentId":33,"tags":{},"startTime":1771533933131,"traceId":"7946c691e51e9936"},{"name":"check-page","duration":370567,"timestamp":83689223,"id":33,"parentId":22,"tags":{"page":"/"},"startTime":1771533933118,"traceId":"7946c691e51e9936"},{"name":"static-check","duration":374649,"timestamp":83685173,"id":22,"parentId":1,"tags":{},"startTime":1771533933114,"traceId":"7946c691e51e9936"},{"name":"write-routes-manifest","duration":331,"timestamp":84060517,"id":47,"parentId":1,"tags":{},"startTime":1771533933490,"traceId":"7946c691e51e9936"},{"name":"load-dotenv","duration":33,"timestamp":84073182,"id":50,"parentId":49,"tags":{},"startTime":1771533933502,"traceId":"7946c691e51e9936"},{"name":"run-export-path-map","duration":319,"timestamp":84075278,"id":51,"parentId":49,"tags":{},"startTime":1771533933504,"traceId":"7946c691e51e9936"},{"name":"next-export","duration":113448,"timestamp":84072255,"id":49,"parentId":1,"tags":{},"startTime":1771533933501,"traceId":"7946c691e51e9936"},{"name":"move-exported-app-global-error-","duration":1043,"timestamp":84187078,"id":52,"parentId":48,"tags":{},"startTime":1771533933616,"traceId":"7946c691e51e9936"},{"name":"static-generation","duration":123368,"timestamp":84066022,"id":48,"parentId":1,"tags":{},"startTime":1771533933495,"traceId":"7946c691e51e9936"},{"name":"write-routes-manifest","duration":232,"timestamp":84189519,"id":53,"parentId":1,"tags":{},"startTime":1771533933619,"traceId":"7946c691e51e9936"},{"name":"write-standalone-directory","duration":257579,"timestamp":84194151,"id":55,"parentId":1,"tags":{},"startTime":1771533933623,"traceId":"7946c691e51e9936"},{"name":"output-standalone","duration":257772,"timestamp":84193986,"id":54,"parentId":1,"tags":{},"startTime":1771533933623,"traceId":"7946c691e51e9936"},{"name":"print-tree-view","duration":2253,"timestamp":84451899,"id":56,"parentId":1,"tags":{},"startTime":1771533933881,"traceId":"7946c691e51e9936"},{"name":"telemetry-flush","duration":60,"timestamp":84454162,"id":57,"parentId":1,"tags":{},"startTime":1771533933883,"traceId":"7946c691e51e9936"},{"name":"next-build","duration":16511304,"timestamp":67942930,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1771533917372,"traceId":"7946c691e51e9936"}]
|
package/web/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":9056247,"timestamp":68341406,"id":17,"parentId":1,"tags":{},"startTime":1771533917771,"traceId":"7946c691e51e9936"},{"name":"run-typescript","duration":6200773,"timestamp":77420669,"id":19,"parentId":1,"tags":{},"startTime":1771533926850,"traceId":"7946c691e51e9936"},{"name":"static-check","duration":374649,"timestamp":83685173,"id":22,"parentId":1,"tags":{},"startTime":1771533933114,"traceId":"7946c691e51e9936"},{"name":"static-generation","duration":123368,"timestamp":84066022,"id":48,"parentId":1,"tags":{},"startTime":1771533933495,"traceId":"7946c691e51e9936"},{"name":"output-standalone","duration":257772,"timestamp":84193986,"id":54,"parentId":1,"tags":{},"startTime":1771533933623,"traceId":"7946c691e51e9936"},{"name":"telemetry-flush","duration":60,"timestamp":84454162,"id":57,"parentId":1,"tags":{},"startTime":1771533933883,"traceId":"7946c691e51e9936"},{"name":"next-build","duration":16511304,"timestamp":67942930,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1771533917372,"traceId":"7946c691e51e9936"}]
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
export declare class AntigravityLauncher implements IdeLauncher {
|
|
4
|
-
readonly name = "Antigravity";
|
|
5
|
-
readonly editorId = EditorType.Antigravity;
|
|
6
|
-
readonly binary = "antigravity";
|
|
7
|
-
launch(path: string): Promise<void>;
|
|
8
|
-
checkAvailable(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=antigravity.launcher.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.launcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,0BAA0B;IAC3C,QAAQ,CAAC,MAAM,iBAAiB;IAE1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { spawn, execFile } from 'node:child_process';
|
|
2
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
3
|
-
export class AntigravityLauncher {
|
|
4
|
-
name = 'Antigravity';
|
|
5
|
-
editorId = EditorType.Antigravity;
|
|
6
|
-
binary = 'antigravity';
|
|
7
|
-
async launch(path) {
|
|
8
|
-
const child = spawn(this.binary, [path], {
|
|
9
|
-
detached: true,
|
|
10
|
-
stdio: 'ignore',
|
|
11
|
-
});
|
|
12
|
-
child.unref();
|
|
13
|
-
}
|
|
14
|
-
checkAvailable() {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
execFile('which', [this.binary], (err) => {
|
|
17
|
-
resolve(!err);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
export declare class CursorLauncher implements IdeLauncher {
|
|
4
|
-
readonly name = "Cursor";
|
|
5
|
-
readonly editorId = EditorType.Cursor;
|
|
6
|
-
readonly binary = "cursor";
|
|
7
|
-
launch(path: string): Promise<void>;
|
|
8
|
-
checkAvailable(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=cursor.launcher.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.launcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,QAAQ,qBAAqB;IACtC,QAAQ,CAAC,MAAM,YAAY;IAErB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { spawn, execFile } from 'node:child_process';
|
|
2
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
3
|
-
export class CursorLauncher {
|
|
4
|
-
name = 'Cursor';
|
|
5
|
-
editorId = EditorType.Cursor;
|
|
6
|
-
binary = 'cursor';
|
|
7
|
-
async launch(path) {
|
|
8
|
-
const child = spawn(this.binary, [path], {
|
|
9
|
-
detached: true,
|
|
10
|
-
stdio: 'ignore',
|
|
11
|
-
});
|
|
12
|
-
child.unref();
|
|
13
|
-
}
|
|
14
|
-
checkAvailable() {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
execFile('which', [this.binary], (err) => {
|
|
17
|
-
resolve(!err);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interface for IDE launcher implementations.
|
|
3
|
-
*
|
|
4
|
-
* Each supported IDE (VS Code, Cursor, Windsurf, Zed, Antigravity) provides
|
|
5
|
-
* its own implementation of this interface. Launchers are responsible for
|
|
6
|
-
* spawning a detached editor process and checking binary availability.
|
|
7
|
-
*/
|
|
8
|
-
import type { EditorType } from '../../../domain/generated/output.js';
|
|
9
|
-
export interface IdeLauncher {
|
|
10
|
-
/** Display name shown to the user (e.g., "VS Code"). */
|
|
11
|
-
readonly name: string;
|
|
12
|
-
/** Editor identifier matching the EditorType enum value. */
|
|
13
|
-
readonly editorId: EditorType;
|
|
14
|
-
/** CLI binary used to launch the editor (e.g., "code"). */
|
|
15
|
-
readonly binary: string;
|
|
16
|
-
/**
|
|
17
|
-
* Open the IDE at the given filesystem path.
|
|
18
|
-
*
|
|
19
|
-
* Spawns a detached process so the CLI does not block.
|
|
20
|
-
*
|
|
21
|
-
* @param path - Absolute path to the file or directory to open.
|
|
22
|
-
*/
|
|
23
|
-
launch(path: string): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Check whether the IDE binary is available on the system PATH.
|
|
26
|
-
*
|
|
27
|
-
* @returns `true` if the binary can be found and executed, `false` otherwise.
|
|
28
|
-
*/
|
|
29
|
-
checkAvailable(): Promise<boolean>;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=ide-launcher.interface.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ide-launcher.interface.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE9B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC"}
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interface for IDE launcher implementations.
|
|
3
|
-
*
|
|
4
|
-
* Each supported IDE (VS Code, Cursor, Windsurf, Zed, Antigravity) provides
|
|
5
|
-
* its own implementation of this interface. Launchers are responsible for
|
|
6
|
-
* spawning a detached editor process and checking binary availability.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
/**
|
|
4
|
-
* Create a registry of all supported IDE launchers, keyed by EditorType.
|
|
5
|
-
*
|
|
6
|
-
* @returns A Map from EditorType to its IdeLauncher instance.
|
|
7
|
-
*/
|
|
8
|
-
export declare function createLauncherRegistry(): Map<EditorType, IdeLauncher>;
|
|
9
|
-
//# sourceMappingURL=ide-launcher.registry.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ide-launcher.registry.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAO5D;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAcrE"}
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { AntigravityLauncher } from './antigravity.launcher.js';
|
|
2
|
-
import { CursorLauncher } from './cursor.launcher.js';
|
|
3
|
-
import { VsCodeLauncher } from './vscode.launcher.js';
|
|
4
|
-
import { WindsurfLauncher } from './windsurf.launcher.js';
|
|
5
|
-
import { ZedLauncher } from './zed.launcher.js';
|
|
6
|
-
/**
|
|
7
|
-
* Create a registry of all supported IDE launchers, keyed by EditorType.
|
|
8
|
-
*
|
|
9
|
-
* @returns A Map from EditorType to its IdeLauncher instance.
|
|
10
|
-
*/
|
|
11
|
-
export function createLauncherRegistry() {
|
|
12
|
-
const launchers = [
|
|
13
|
-
new VsCodeLauncher(),
|
|
14
|
-
new CursorLauncher(),
|
|
15
|
-
new WindsurfLauncher(),
|
|
16
|
-
new ZedLauncher(),
|
|
17
|
-
new AntigravityLauncher(),
|
|
18
|
-
];
|
|
19
|
-
const registry = new Map();
|
|
20
|
-
for (const launcher of launchers) {
|
|
21
|
-
registry.set(launcher.editorId, launcher);
|
|
22
|
-
}
|
|
23
|
-
return registry;
|
|
24
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared IDE launch logic used by both CLI and Web presentation layers.
|
|
3
|
-
*
|
|
4
|
-
* Returns a discriminated union so callers can map errors to their own format
|
|
5
|
-
* (CLI messages vs HTTP status codes).
|
|
6
|
-
*/
|
|
7
|
-
import type { EditorType } from '../../../domain/generated/output.js';
|
|
8
|
-
export interface LaunchIdeInput {
|
|
9
|
-
/** Which editor to launch. */
|
|
10
|
-
editorId: EditorType;
|
|
11
|
-
/** Absolute path to the repository root. */
|
|
12
|
-
repositoryPath: string;
|
|
13
|
-
/** Git branch name. When omitted, repositoryPath is used directly. */
|
|
14
|
-
branch?: string;
|
|
15
|
-
/** Whether to verify binary availability before launching. Default: false. */
|
|
16
|
-
checkAvailability?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export interface LaunchIdeSuccess {
|
|
19
|
-
ok: true;
|
|
20
|
-
editorName: string;
|
|
21
|
-
worktreePath: string;
|
|
22
|
-
}
|
|
23
|
-
export interface LaunchIdeFailed {
|
|
24
|
-
ok: false;
|
|
25
|
-
code: 'unknown_editor' | 'editor_unavailable' | 'launch_failed';
|
|
26
|
-
message: string;
|
|
27
|
-
}
|
|
28
|
-
export type LaunchIdeResult = LaunchIdeSuccess | LaunchIdeFailed;
|
|
29
|
-
export declare function launchIde(input: LaunchIdeInput): Promise<LaunchIdeResult>;
|
|
30
|
-
//# sourceMappingURL=launch-ide.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"launch-ide.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/launch-ide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAInE,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,eAAe,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEjE,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAoC/E"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared IDE launch logic used by both CLI and Web presentation layers.
|
|
3
|
-
*
|
|
4
|
-
* Returns a discriminated union so callers can map errors to their own format
|
|
5
|
-
* (CLI messages vs HTTP status codes).
|
|
6
|
-
*/
|
|
7
|
-
import { createLauncherRegistry } from './ide-launcher.registry.js';
|
|
8
|
-
import { computeWorktreePath } from './compute-worktree-path.js';
|
|
9
|
-
export async function launchIde(input) {
|
|
10
|
-
const registry = createLauncherRegistry();
|
|
11
|
-
const launcher = registry.get(input.editorId);
|
|
12
|
-
if (!launcher) {
|
|
13
|
-
return {
|
|
14
|
-
ok: false,
|
|
15
|
-
code: 'unknown_editor',
|
|
16
|
-
message: `No launcher found for editor: ${input.editorId}. Supported: ${[...registry.keys()].join(', ')}`,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
if (input.checkAvailability) {
|
|
20
|
-
const available = await launcher.checkAvailable();
|
|
21
|
-
if (!available) {
|
|
22
|
-
return {
|
|
23
|
-
ok: false,
|
|
24
|
-
code: 'editor_unavailable',
|
|
25
|
-
message: `${launcher.name} is not available — ensure "${launcher.binary}" is installed and on your PATH`,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
const worktreePath = input.branch
|
|
31
|
-
? computeWorktreePath(input.repositoryPath, input.branch)
|
|
32
|
-
: input.repositoryPath;
|
|
33
|
-
await launcher.launch(worktreePath);
|
|
34
|
-
return { ok: true, editorName: launcher.name, worktreePath };
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
return {
|
|
38
|
-
ok: false,
|
|
39
|
-
code: 'launch_failed',
|
|
40
|
-
message: error instanceof Error ? error.message : 'Failed to launch IDE',
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
export declare class VsCodeLauncher implements IdeLauncher {
|
|
4
|
-
readonly name = "VS Code";
|
|
5
|
-
readonly editorId = EditorType.VsCode;
|
|
6
|
-
readonly binary = "code";
|
|
7
|
-
launch(path: string): Promise<void>;
|
|
8
|
-
checkAvailable(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=vscode.launcher.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.launcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,qBAAqB;IACtC,QAAQ,CAAC,MAAM,UAAU;IAEnB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { spawn, execFile } from 'node:child_process';
|
|
2
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
3
|
-
export class VsCodeLauncher {
|
|
4
|
-
name = 'VS Code';
|
|
5
|
-
editorId = EditorType.VsCode;
|
|
6
|
-
binary = 'code';
|
|
7
|
-
async launch(path) {
|
|
8
|
-
const child = spawn(this.binary, [path], {
|
|
9
|
-
detached: true,
|
|
10
|
-
stdio: 'ignore',
|
|
11
|
-
});
|
|
12
|
-
child.unref();
|
|
13
|
-
}
|
|
14
|
-
checkAvailable() {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
execFile('which', [this.binary], (err) => {
|
|
17
|
-
resolve(!err);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
export declare class WindsurfLauncher implements IdeLauncher {
|
|
4
|
-
readonly name = "Windsurf";
|
|
5
|
-
readonly editorId = EditorType.Windsurf;
|
|
6
|
-
readonly binary = "windsurf";
|
|
7
|
-
launch(path: string): Promise<void>;
|
|
8
|
-
checkAvailable(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=windsurf.launcher.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.launcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,QAAQ,uBAAuB;IACxC,QAAQ,CAAC,MAAM,cAAc;IAEvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { spawn, execFile } from 'node:child_process';
|
|
2
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
3
|
-
export class WindsurfLauncher {
|
|
4
|
-
name = 'Windsurf';
|
|
5
|
-
editorId = EditorType.Windsurf;
|
|
6
|
-
binary = 'windsurf';
|
|
7
|
-
async launch(path) {
|
|
8
|
-
const child = spawn(this.binary, [path], {
|
|
9
|
-
detached: true,
|
|
10
|
-
stdio: 'ignore',
|
|
11
|
-
});
|
|
12
|
-
child.unref();
|
|
13
|
-
}
|
|
14
|
-
checkAvailable() {
|
|
15
|
-
return new Promise((resolve) => {
|
|
16
|
-
execFile('which', [this.binary], (err) => {
|
|
17
|
-
resolve(!err);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EditorType } from '../../../domain/generated/output.js';
|
|
2
|
-
import type { IdeLauncher } from './ide-launcher.interface.js';
|
|
3
|
-
export declare class ZedLauncher implements IdeLauncher {
|
|
4
|
-
readonly name = "Zed";
|
|
5
|
-
readonly editorId = EditorType.Zed;
|
|
6
|
-
readonly binary = "zed";
|
|
7
|
-
launch(path: string): Promise<void>;
|
|
8
|
-
checkAvailable(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=zed.launcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zed.launcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/ide-launchers/zed.launcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,QAAQ,kBAAkB;IACnC,QAAQ,CAAC,MAAM,SAAS;IAElB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
|