@shepai/cli 1.69.0 → 1.70.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.
Files changed (119) hide show
  1. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +1 -1
  2. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
  3. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts +2 -1
  4. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
  5. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +17 -2
  6. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +1 -1
  7. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/CLAUDE.md +45 -18
  9. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/alacritty.json +18 -0
  10. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/iterm2.json +17 -0
  11. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/kitty.json +18 -0
  12. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/tmux.json +27 -0
  13. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/warp.json +17 -0
  14. package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/features/tools/tool-card.js +1 -0
  16. package/dist/src/presentation/web/components/features/tools/tools-page-client.d.ts.map +1 -1
  17. package/dist/src/presentation/web/components/features/tools/tools-page-client.js +2 -1
  18. package/dist/tsconfig.build.tsbuildinfo +1 -1
  19. package/package.json +1 -1
  20. package/web/.next/BUILD_ID +1 -1
  21. package/web/.next/build-manifest.json +2 -2
  22. package/web/.next/cache/.previewinfo +1 -1
  23. package/web/.next/cache/.rscinfo +1 -1
  24. package/web/.next/cache/.tsbuildinfo +1 -1
  25. package/web/.next/cache/config.json +3 -3
  26. package/web/.next/fallback-build-manifest.json +2 -2
  27. package/web/.next/prerender-manifest.json +3 -3
  28. package/web/.next/required-server-files.js +1 -1
  29. package/web/.next/required-server-files.json +1 -1
  30. package/web/.next/server/app/_global-error.html +2 -2
  31. package/web/.next/server/app/_global-error.rsc +1 -1
  32. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  33. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  34. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  35. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  36. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  37. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  38. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/page/server-reference-manifest.json +18 -18
  40. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  42. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  44. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  46. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/chunks/[root-of-the-server]__09413611._.js.map +1 -1
  48. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  49. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  50. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  51. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  52. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js.map +1 -1
  53. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  54. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  55. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  56. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  57. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  58. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
  59. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
  60. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js.map +1 -1
  61. package/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
  62. package/web/.next/server/chunks/ssr/_49bf495c._.js.map +1 -1
  63. package/web/.next/server/chunks/ssr/_68b5e0de._.js +1 -1
  64. package/web/.next/server/chunks/ssr/_68b5e0de._.js.map +1 -1
  65. package/web/.next/server/chunks/ssr/_690ea95f._.js +1 -1
  66. package/web/.next/server/chunks/ssr/_690ea95f._.js.map +1 -1
  67. package/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
  68. package/web/.next/server/chunks/ssr/_725584e5._.js.map +1 -1
  69. package/web/.next/server/pages/500.html +2 -2
  70. package/web/.next/server/server-reference-manifest.js +1 -1
  71. package/web/.next/server/server-reference-manifest.json +19 -19
  72. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  73. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  74. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  75. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  76. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  77. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  78. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  79. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  80. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  81. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  82. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  83. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  84. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  85. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +18 -18
  86. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  87. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  88. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  89. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  90. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  91. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  92. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  93. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  94. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  95. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  96. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  97. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  98. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  99. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
  100. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
  101. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_68b5e0de._.js +1 -1
  102. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_690ea95f._.js +1 -1
  103. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
  104. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  105. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  106. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +19 -19
  107. package/web/.next/standalone/src/presentation/web/components/features/tools/tool-card.tsx +1 -0
  108. package/web/.next/standalone/src/presentation/web/components/features/tools/tools-page-client.tsx +5 -1
  109. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  110. package/web/.next/static/chunks/{491ae2bbae40857c.js → 505c6a9e4c5d0808.js} +1 -1
  111. package/web/.next/static/chunks/{5bc5d426870feb7e.js → 6d7d233d07d9a026.js} +1 -1
  112. package/web/.next/static/chunks/{2da52289a4a8f9e2.js → 86b38e36afcd19f3.js} +1 -1
  113. package/web/.next/static/chunks/{faf8ad4c823884d7.js → 94562d62bf8e4bf7.js} +1 -1
  114. package/web/.next/static/chunks/{5ef9d8b7401f2f1f.js → fdfd68aacc4727cf.js} +2 -2
  115. package/web/.next/trace +1 -1
  116. package/web/.next/trace-build +1 -1
  117. /package/web/.next/static/{7ktIn83yR3rYLLF00uLSx → 6pJLWKt-ohZJ_2kGrHG_m}/_buildManifest.js +0 -0
  118. /package/web/.next/static/{7ktIn83yR3rYLLF00uLSx → 6pJLWKt-ohZJ_2kGrHG_m}/_clientMiddlewareManifest.json +0 -0
  119. /package/web/.next/static/{7ktIn83yR3rYLLF00uLSx → 6pJLWKt-ohZJ_2kGrHG_m}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
1
1
  module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},92658,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(28478)},12581,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},12513,a=>{"use strict";var b=a.i(92658),c=a.i(74533);let d={platform:process.platform,exec:(a,b)=>(0,c.execSync)(a,b)},e={darwin:"osascript -e 'POSIX path of (choose folder with prompt \"Select a repository folder\")'",linux:'zenity --file-selection --directory --title="Select a repository folder" 2>/dev/null',win32:"powershell -NoProfile -Command \"Add-Type -AssemblyName System.Windows.Forms; $f = New-Object System.Windows.Forms.FolderBrowserDialog; $f.Description = 'Select a repository folder'; if ($f.ShowDialog() -eq 'OK') { $f.SelectedPath } else { exit 1 }\""};class f{deps;constructor(a={}){this.deps={...d,...a}}getCommand(){return e[this.deps.platform]??null}pickFolder(){let a=this.getCommand();if(!a)throw Error(`Unsupported platform: ${this.deps.platform}`);try{let b=this.deps.exec(a,{encoding:"utf-8",timeout:6e4}).trim();return b.length>0?b:null}catch(a){var b;if("object"==typeof(b=a)&&null!==b&&"status"in b&&1===a.status)return null;throw a}}}async function g(){let a=new f;try{return{path:a.pickFolder()}}catch(a){return{path:null,error:a instanceof Error?a.message:"Failed to open folder dialog"}}}(0,a.i(12581).ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"0047c870d719162f2116e56b9cb492d37d546502e6",null),a.s(["pickFolder",()=>g],12513)},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},96380,a=>{"use strict";function b(a){let b=globalThis.__shepContainer;if(!b)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return b.resolve(a)}a.s(["resolve",()=>b])},81719,a=>{"use strict";var b,c,d,e,f=((b={}).Todo="Todo",b.WIP="Work in Progress",b.Done="Done",b.Review="Review",b),g=((c={}).Started="Started",c.Analyze="Analyze",c.Requirements="Requirements",c.Research="Research",c.Planning="Planning",c.Implementation="Implementation",c.Review="Review",c.Maintain="Maintain",c.Blocked="Blocked",c),h=((d={}).Booting="Booting",d.Ready="Ready",d.Stopped="Stopped",d),i=((e={}).pending="pending",e.running="running",e.completed="completed",e.failed="failed",e.interrupted="interrupted",e.cancelled="cancelled",e.waitingApproval="waiting_approval",e);a.s(["AgentRunStatus",()=>i,"DeploymentState",()=>h,"SdlcLifecycle",()=>g,"TaskState",()=>f])},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},33841,29918,46646,68670,85321,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(96380),e=a.i(66680),f=a.i(50227);a.i(12714);var g=a.i(60526);function h(a,b){let c=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16),d=b.replace(/\//g,"-");return(0,f.join)(process.env.SHEP_HOME??(0,f.join)((0,g.homedir)(),".shep"),"repos",c,"wt",d)}a.s(["computeWorktreePath",()=>h],29918);var i=a.i(81719),j=a.i(12581);async function k(a){if(!a?.trim())return{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return{success:!1,error:`Feature not found: ${a}`};let f=h(e.repositoryPath,e.branch);if(!(0,c.existsSync)(f))return{success:!1,error:`Worktree path does not exist: ${f}`};return(0,d.resolve)("IDeploymentService").start(a,f),{success:!0,state:i.DeploymentState.Booting}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to deploy feature"}}}async function l(a){if(!a?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:`Directory does not exist: ${a}`};return(0,d.resolve)("IDeploymentService").start(a,a),{success:!0,state:i.DeploymentState.Booting}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to deploy repository"}}}async function m(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function n(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,j.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"40bbd46af81361e4188c140ffcb4ec4230c1f5ede1",null),a.s(["deployFeature",()=>k],33841),(0,j.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"402d63b563a07e93686b59fb9cf228c2bff903df52",null),a.s(["deployRepository",()=>l],46646),(0,j.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"40d0994666333c500668bb580f7fe12f156f447549",null),a.s(["stopDeployment",()=>m],68670),(0,j.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"400abe699c44fba3a3c251e3a249db94a84ea9375f",null),a.s(["getDeploymentStatus",()=>n],85321)},80894,a=>{"use strict";var b=a.i(12513),c=a.i(33841),d=a.i(46646),e=a.i(68670),f=a.i(85321),g=a.i(92658);let h="__shepSettings";function i(){let a=function(){let a=globalThis[h];if(null!=a)return a;let b=process[h];return null!=b?b:null}();if(null===a)throw Error("Settings not initialized. Call initializeSettings() during CLI bootstrap.");return a}var j=a.i(96380),k=a.i(12581);async function l(a){let{repositoryPath:b,branch:c}=a;if(!b?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};let d=i().environment.defaultEditor,e=(0,j.resolve)("LaunchIdeUseCase"),f=await e.execute({editorId:d,repositoryPath:b,branch:c,checkAvailability:!0});return f.ok?{success:!0,editor:f.editorName,path:f.worktreePath}:{success:!1,error:f.message}}(0,k.ensureServerEntryExports)([l]),(0,g.registerServerReference)(l,"40c8357881b7209754173b264c064e68dc1fccc6c5",null);var m=a.i(2157),n=a.i(60526),o=a.i(74533),p=a.i(29918);let q={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]}};async function r(a){let{repositoryPath:b,branch:c}=a;if(!b?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=i().environment.shellPreference,d=c?(0,p.computeWorktreePath)(b,c):b;if(!(0,m.existsSync)(d))return{success:!1,error:`Path does not exist: ${d}`};let e=q[(0,n.platform)()];if(!e)return{success:!1,error:`Unsupported platform: ${(0,n.platform)()}. Shell launch is supported on macOS and Linux only.`};let f=(0,o.spawn)(e.cmd,e.args(d),{detached:!0,stdio:"ignore"});return f.on("error",()=>void 0),f.unref(),{success:!0,path:d,shell:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}(0,k.ensureServerEntryExports)([r]),(0,g.registerServerReference)(r,"40df943127843d139f09ef0c15e7af7962c1163a3c",null);let s={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]}};async function t(a){if(!a?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,m.existsSync)(a))return{success:!1,error:"Directory not found"};let b=s[(0,n.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,n.platform)()}. Folder open is supported on macOS and Linux only.`};let c=(0,o.spawn)(b.cmd,b.args(a),{detached:!0,stdio:"ignore"});return c.on("error",()=>void 0),c.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}async function u(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{approved:!1,error:"Feature not found"};if(!d.agentRunId)return{approved:!1,error:"Feature has no agent run"};let e=(0,j.resolve)("ApproveAgentRunUseCase"),f=await e.execute(d.agentRunId,b);if(!f.approved)return{approved:!1,error:f.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function v(a,b){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{rejected:!1,error:"Feature not found"};if(!d.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let e=(0,j.resolve)("RejectAgentRunUseCase"),f=await e.execute(d.agentRunId,b);if(!f.rejected)return{rejected:!1,error:f.reason};return{rejected:!0,iteration:f.iteration,iterationWarning:f.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function w(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,j.resolve)("GetFeatureArtifactUseCase"),c=await b.execute(a);return{questionnaire:{question:"Goal",context:c.oneLiner,questions:c.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},artifact:c}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function x(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let c=(0,j.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await c.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}async function y(a){if(!a.trim())return{error:"Feature id is required"};try{let b,c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{error:"Feature not found"};let e=d.pr?{url:d.pr.url,number:d.pr.number,status:d.pr.status,commitHash:d.pr.commitHash,ciStatus:d.pr.ciStatus}:void 0,f=d.branch?{source:d.branch,target:"main"}:void 0;try{let c=(0,j.resolve)("GetPlanArtifactUseCase");b=(await c.execute(a)).phases.map(({id:a,name:b,description:c})=>({id:a,name:b,description:c}))}catch{}if(!d.worktreePath)return{pr:e,branch:f,phases:b,warning:e?void 0:"No PR or diff data available"};try{let a=(0,j.resolve)("IGitPrService"),c=await a.getPrDiffSummary(d.worktreePath,"main");return{pr:e,branch:f,phases:b,diffSummary:c}}catch{return{pr:e,branch:f,phases:b,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function z(){let{workflow:a}=i();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete}}async function A(a){let{name:b,description:c,repositoryPath:d,attachments:e,approvalGates:f,push:g,openPr:h,parentId:i}=a;if(!b?.trim())return{error:"name is required"};if(!d?.trim())return{error:"repositoryPath is required"};let k=function(a,b,c){let d=`Feature: ${a}`;if(b&&(d+=`
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},12513,a=>{"use strict";var b=a.i(92658),c=a.i(74533);let d={platform:process.platform,exec:(a,b)=>(0,c.execSync)(a,b)},e={darwin:"osascript -e 'POSIX path of (choose folder with prompt \"Select a repository folder\")'",linux:'zenity --file-selection --directory --title="Select a repository folder" 2>/dev/null',win32:"powershell -NoProfile -Command \"Add-Type -AssemblyName System.Windows.Forms; $f = New-Object System.Windows.Forms.FolderBrowserDialog; $f.Description = 'Select a repository folder'; if ($f.ShowDialog() -eq 'OK') { $f.SelectedPath } else { exit 1 }\""};class f{deps;constructor(a={}){this.deps={...d,...a}}getCommand(){return e[this.deps.platform]??null}pickFolder(){let a=this.getCommand();if(!a)throw Error(`Unsupported platform: ${this.deps.platform}`);try{let b=this.deps.exec(a,{encoding:"utf-8",timeout:6e4}).trim();return b.length>0?b:null}catch(a){var b;if("object"==typeof(b=a)&&null!==b&&"status"in b&&1===a.status)return null;throw a}}}async function g(){let a=new f;try{return{path:a.pickFolder()}}catch(a){return{path:null,error:a instanceof Error?a.message:"Failed to open folder dialog"}}}(0,a.i(12581).ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"00be2fc10adebcfc2f426a24668679c45663250f3a",null),a.s(["pickFolder",()=>g],12513)},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},96380,a=>{"use strict";function b(a){let b=globalThis.__shepContainer;if(!b)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return b.resolve(a)}a.s(["resolve",()=>b])},81719,a=>{"use strict";var b,c,d,e,f=((b={}).Todo="Todo",b.WIP="Work in Progress",b.Done="Done",b.Review="Review",b),g=((c={}).Started="Started",c.Analyze="Analyze",c.Requirements="Requirements",c.Research="Research",c.Planning="Planning",c.Implementation="Implementation",c.Review="Review",c.Maintain="Maintain",c.Blocked="Blocked",c),h=((d={}).Booting="Booting",d.Ready="Ready",d.Stopped="Stopped",d),i=((e={}).pending="pending",e.running="running",e.completed="completed",e.failed="failed",e.interrupted="interrupted",e.cancelled="cancelled",e.waitingApproval="waiting_approval",e);a.s(["AgentRunStatus",()=>i,"DeploymentState",()=>h,"SdlcLifecycle",()=>g,"TaskState",()=>f])},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},33841,29918,46646,68670,85321,a=>{"use strict";var b=a.i(92658),c=a.i(2157),d=a.i(96380),e=a.i(66680),f=a.i(50227);a.i(12714);var g=a.i(60526);function h(a,b){let c=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16),d=b.replace(/\//g,"-");return(0,f.join)(process.env.SHEP_HOME??(0,f.join)((0,g.homedir)(),".shep"),"repos",c,"wt",d)}a.s(["computeWorktreePath",()=>h],29918);var i=a.i(81719),j=a.i(12581);async function k(a){if(!a?.trim())return{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return{success:!1,error:`Feature not found: ${a}`};let f=h(e.repositoryPath,e.branch);if(!(0,c.existsSync)(f))return{success:!1,error:`Worktree path does not exist: ${f}`};return(0,d.resolve)("IDeploymentService").start(a,f),{success:!0,state:i.DeploymentState.Booting}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to deploy feature"}}}async function l(a){if(!a?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:`Directory does not exist: ${a}`};return(0,d.resolve)("IDeploymentService").start(a,a),{success:!0,state:i.DeploymentState.Booting}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to deploy repository"}}}async function m(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function n(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,j.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"402688cf2b9feee0c53225056605d9e5a9f0f409e6",null),a.s(["deployFeature",()=>k],33841),(0,j.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"40342cdffce744e263c8ea15e16f076ce9ff4eaa00",null),a.s(["deployRepository",()=>l],46646),(0,j.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"4016a359d9c8578ef9ac7cf6942a02a39801fde73d",null),a.s(["stopDeployment",()=>m],68670),(0,j.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"4053062518c8311a3874802bc886588bb58d6e3dd8",null),a.s(["getDeploymentStatus",()=>n],85321)},80894,a=>{"use strict";var b=a.i(12513),c=a.i(33841),d=a.i(46646),e=a.i(68670),f=a.i(85321),g=a.i(92658);let h="__shepSettings";function i(){let a=function(){let a=globalThis[h];if(null!=a)return a;let b=process[h];return null!=b?b:null}();if(null===a)throw Error("Settings not initialized. Call initializeSettings() during CLI bootstrap.");return a}var j=a.i(96380),k=a.i(12581);async function l(a){let{repositoryPath:b,branch:c}=a;if(!b?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};let d=i().environment.defaultEditor,e=(0,j.resolve)("LaunchIdeUseCase"),f=await e.execute({editorId:d,repositoryPath:b,branch:c,checkAvailability:!0});return f.ok?{success:!0,editor:f.editorName,path:f.worktreePath}:{success:!1,error:f.message}}(0,k.ensureServerEntryExports)([l]),(0,g.registerServerReference)(l,"40ac121fcf695ece0315d6b16aea92fcd528796009",null);var m=a.i(2157),n=a.i(60526),o=a.i(74533),p=a.i(29918);let q={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]}};async function r(a){let{repositoryPath:b,branch:c}=a;if(!b?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=i().environment.shellPreference,d=c?(0,p.computeWorktreePath)(b,c):b;if(!(0,m.existsSync)(d))return{success:!1,error:`Path does not exist: ${d}`};let e=q[(0,n.platform)()];if(!e)return{success:!1,error:`Unsupported platform: ${(0,n.platform)()}. Shell launch is supported on macOS and Linux only.`};let f=(0,o.spawn)(e.cmd,e.args(d),{detached:!0,stdio:"ignore"});return f.on("error",()=>void 0),f.unref(),{success:!0,path:d,shell:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}(0,k.ensureServerEntryExports)([r]),(0,g.registerServerReference)(r,"40b0455ae84958b17afe82c1d1ce91e161217df202",null);let s={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]}};async function t(a){if(!a?.startsWith("/"))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,m.existsSync)(a))return{success:!1,error:"Directory not found"};let b=s[(0,n.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,n.platform)()}. Folder open is supported on macOS and Linux only.`};let c=(0,o.spawn)(b.cmd,b.args(a),{detached:!0,stdio:"ignore"});return c.on("error",()=>void 0),c.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}async function u(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{approved:!1,error:"Feature not found"};if(!d.agentRunId)return{approved:!1,error:"Feature has no agent run"};let e=(0,j.resolve)("ApproveAgentRunUseCase"),f=await e.execute(d.agentRunId,b);if(!f.approved)return{approved:!1,error:f.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function v(a,b){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{rejected:!1,error:"Feature not found"};if(!d.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let e=(0,j.resolve)("RejectAgentRunUseCase"),f=await e.execute(d.agentRunId,b);if(!f.rejected)return{rejected:!1,error:f.reason};return{rejected:!0,iteration:f.iteration,iterationWarning:f.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function w(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,j.resolve)("GetFeatureArtifactUseCase"),c=await b.execute(a);return{questionnaire:{question:"Goal",context:c.oneLiner,questions:c.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},artifact:c}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function x(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let c=(0,j.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await c.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}async function y(a){if(!a.trim())return{error:"Feature id is required"};try{let b,c=(0,j.resolve)("IFeatureRepository"),d=await c.findById(a);if(!d)return{error:"Feature not found"};let e=d.pr?{url:d.pr.url,number:d.pr.number,status:d.pr.status,commitHash:d.pr.commitHash,ciStatus:d.pr.ciStatus}:void 0,f=d.branch?{source:d.branch,target:"main"}:void 0;try{let c=(0,j.resolve)("GetPlanArtifactUseCase");b=(await c.execute(a)).phases.map(({id:a,name:b,description:c})=>({id:a,name:b,description:c}))}catch{}if(!d.worktreePath)return{pr:e,branch:f,phases:b,warning:e?void 0:"No PR or diff data available"};try{let a=(0,j.resolve)("IGitPrService"),c=await a.getPrDiffSummary(d.worktreePath,"main");return{pr:e,branch:f,phases:b,diffSummary:c}}catch{return{pr:e,branch:f,phases:b,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function z(){let{workflow:a}=i();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete}}async function A(a){let{name:b,description:c,repositoryPath:d,attachments:e,approvalGates:f,push:g,openPr:h,parentId:i}=a;if(!b?.trim())return{error:"name is required"};if(!d?.trim())return{error:"repositoryPath is required"};let k=function(a,b,c){let d=`Feature: ${a}`;if(b&&(d+=`
3
3
 
4
4
  ${b}`),c&&c.length>0){let a=c.map(a=>`- ${a.path}`).join("\n");d+=`
5
5
 
6
6
  Attached files:
7
- ${a}`}return d}(b,c,e),l={allowPrd:f?.allowPrd??!1,allowPlan:f?.allowPlan??!1,allowMerge:f?.allowMerge??!1};try{let a=(0,j.resolve)("CreateFeatureUseCase");return{feature:(await a.execute({userInput:k,repositoryPath:d,approvalGates:l,push:g??!1,openPr:h??!1,...i?{parentId:i}:{}})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}async function B(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,j.resolve)("DeleteFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function C(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,j.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function D(a){if(!a?.trim())return{success:!1,error:"id is required"};try{let b=(0,j.resolve)("DeleteRepositoryUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}(0,k.ensureServerEntryExports)([t]),(0,g.registerServerReference)(t,"403aacc3b063b935fc97c13a4ddc2e39d5248cfce7",null),(0,k.ensureServerEntryExports)([u]),(0,g.registerServerReference)(u,"609912b2e71530227bd971713e722e2ddae870c834",null),(0,k.ensureServerEntryExports)([v]),(0,g.registerServerReference)(v,"6056c8091c66cb6e17e1dc88724cdb36ef658aaa8b",null),(0,k.ensureServerEntryExports)([w]),(0,g.registerServerReference)(w,"403b2febb379fc46c91085af13c602491d955b01e2",null),(0,k.ensureServerEntryExports)([x]),(0,g.registerServerReference)(x,"40ab7b59ff7a66389f880a241d232f328f3926f2fe",null),(0,k.ensureServerEntryExports)([y]),(0,g.registerServerReference)(y,"40ba6de692514b18656ea1b43673e1bffa26a02bf4",null),(0,k.ensureServerEntryExports)([z]),(0,g.registerServerReference)(z,"007efbf78a113f3482394b5e8f8001bde6bdc43bc9",null),(0,k.ensureServerEntryExports)([A]),(0,g.registerServerReference)(A,"406caff046f96b31ff916a2d7a56b00e4e0ba42969",null),(0,k.ensureServerEntryExports)([B]),(0,g.registerServerReference)(B,"403d314dfbfa9e924edf1541ef2abe8b817e113d71",null),(0,k.ensureServerEntryExports)([C]),(0,g.registerServerReference)(C,"40cbce1b9c3b4e574ec0572abcf20fed0c5625fa87",null),(0,k.ensureServerEntryExports)([D]),(0,g.registerServerReference)(D,"40f04206c40969efebf2da1c4c41ba53b053aace88",null),a.s([],9100),a.i(9100),a.s(["0047c870d719162f2116e56b9cb492d37d546502e6",()=>b.pickFolder,"007efbf78a113f3482394b5e8f8001bde6bdc43bc9",()=>z,"400abe699c44fba3a3c251e3a249db94a84ea9375f",()=>f.getDeploymentStatus,"402d63b563a07e93686b59fb9cf228c2bff903df52",()=>d.deployRepository,"403aacc3b063b935fc97c13a4ddc2e39d5248cfce7",()=>t,"403b2febb379fc46c91085af13c602491d955b01e2",()=>w,"403d314dfbfa9e924edf1541ef2abe8b817e113d71",()=>B,"406caff046f96b31ff916a2d7a56b00e4e0ba42969",()=>A,"40ab7b59ff7a66389f880a241d232f328f3926f2fe",()=>x,"40ba6de692514b18656ea1b43673e1bffa26a02bf4",()=>y,"40bbd46af81361e4188c140ffcb4ec4230c1f5ede1",()=>c.deployFeature,"40c8357881b7209754173b264c064e68dc1fccc6c5",()=>l,"40cbce1b9c3b4e574ec0572abcf20fed0c5625fa87",()=>C,"40d0994666333c500668bb580f7fe12f156f447549",()=>e.stopDeployment,"40df943127843d139f09ef0c15e7af7962c1163a3c",()=>r,"40f04206c40969efebf2da1c4c41ba53b053aace88",()=>D,"6056c8091c66cb6e17e1dc88724cdb36ef658aaa8b",()=>v,"609912b2e71530227bd971713e722e2ddae870c834",()=>u],80894)}];
7
+ ${a}`}return d}(b,c,e),l={allowPrd:f?.allowPrd??!1,allowPlan:f?.allowPlan??!1,allowMerge:f?.allowMerge??!1};try{let a=(0,j.resolve)("CreateFeatureUseCase");return{feature:(await a.execute({userInput:k,repositoryPath:d,approvalGates:l,push:g??!1,openPr:h??!1,...i?{parentId:i}:{}})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}async function B(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,j.resolve)("DeleteFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function C(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,j.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function D(a){if(!a?.trim())return{success:!1,error:"id is required"};try{let b=(0,j.resolve)("DeleteRepositoryUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}(0,k.ensureServerEntryExports)([t]),(0,g.registerServerReference)(t,"401cbd2d770c13e0b5467dac3b184eaab53502a6b9",null),(0,k.ensureServerEntryExports)([u]),(0,g.registerServerReference)(u,"608f06fc0ab6542b3869c8388d2fa967ad3b5d755a",null),(0,k.ensureServerEntryExports)([v]),(0,g.registerServerReference)(v,"608a96f17904d884f377b787f610a82c5d1e96fa0d",null),(0,k.ensureServerEntryExports)([w]),(0,g.registerServerReference)(w,"4087d0916887bd38c364f156095af3b16f2a019cfc",null),(0,k.ensureServerEntryExports)([x]),(0,g.registerServerReference)(x,"4007d08e6b50895a5198f3bd26272f14fa021a393c",null),(0,k.ensureServerEntryExports)([y]),(0,g.registerServerReference)(y,"403f05debc955be9e844ec7cef2d5999ca3c94ac62",null),(0,k.ensureServerEntryExports)([z]),(0,g.registerServerReference)(z,"00da35b2abc9ff8152ae97c30b92d35dd67e52639a",null),(0,k.ensureServerEntryExports)([A]),(0,g.registerServerReference)(A,"4072dca971b914309df351ad86f6ada99d2890b501",null),(0,k.ensureServerEntryExports)([B]),(0,g.registerServerReference)(B,"40ea4ef54d49c83b5276bc4f5e84162acbb8562e2f",null),(0,k.ensureServerEntryExports)([C]),(0,g.registerServerReference)(C,"40c1a52262c95500ac5bcf73cadc7e00dcbe0f3359",null),(0,k.ensureServerEntryExports)([D]),(0,g.registerServerReference)(D,"40adf9365acf11b90554381e21967e70a64ffb817c",null),a.s([],9100),a.i(9100),a.s(["00be2fc10adebcfc2f426a24668679c45663250f3a",()=>b.pickFolder,"00da35b2abc9ff8152ae97c30b92d35dd67e52639a",()=>z,"4007d08e6b50895a5198f3bd26272f14fa021a393c",()=>x,"4016a359d9c8578ef9ac7cf6942a02a39801fde73d",()=>e.stopDeployment,"401cbd2d770c13e0b5467dac3b184eaab53502a6b9",()=>t,"402688cf2b9feee0c53225056605d9e5a9f0f409e6",()=>c.deployFeature,"40342cdffce744e263c8ea15e16f076ce9ff4eaa00",()=>d.deployRepository,"403f05debc955be9e844ec7cef2d5999ca3c94ac62",()=>y,"4053062518c8311a3874802bc886588bb58d6e3dd8",()=>f.getDeploymentStatus,"4072dca971b914309df351ad86f6ada99d2890b501",()=>A,"4087d0916887bd38c364f156095af3b16f2a019cfc",()=>w,"40ac121fcf695ece0315d6b16aea92fcd528796009",()=>l,"40adf9365acf11b90554381e21967e70a64ffb817c",()=>D,"40b0455ae84958b17afe82c1d1ce91e161217df202",()=>r,"40c1a52262c95500ac5bcf73cadc7e00dcbe0f3359",()=>C,"40ea4ef54d49c83b5276bc4f5e84162acbb8562e2f",()=>B,"608a96f17904d884f377b787f610a82c5d1e96fa0d",()=>v,"608f06fc0ab6542b3869c8388d2fa967ad3b5d755a",()=>u],80894)}];
8
8
 
9
9
  //# sourceMappingURL=%5Broot-of-the-server%5D__e41b5eec._.js.map