commandmate 0.1.9 → 0.1.11
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/.env.example +8 -3
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +11 -11
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route.js +11 -12
- package/.next/server/app/api/external-apps/[id]/route.js +14 -15
- package/.next/server/app/api/external-apps/route.js +12 -13
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/slash-commands.body +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +7 -7
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js +12 -13
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +5 -5
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +10 -10
- package/.next/server/chunks/1318.js +4 -4
- package/.next/server/chunks/1528.js +1 -1
- package/.next/server/chunks/7425.js +162 -46
- package/.next/server/chunks/9723.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +2 -2
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/app/{page-9cd00de9cc0abc43.js → page-fe35d61f14b90a51.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-720605c2fb074444.js +1 -0
- package/.next/static/css/{e174aa24f94ce607.css → 376b339640084689.css} +1 -1
- package/.next/trace +5 -5
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -4
- package/dist/cli/commands/start.d.ts +2 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +64 -17
- package/dist/cli/commands/status.d.ts +4 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +95 -6
- package/dist/cli/commands/stop.d.ts +2 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +27 -10
- package/dist/cli/index.js +16 -2
- package/dist/cli/types/index.d.ts +20 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/daemon-factory.d.ts +105 -0
- package/dist/cli/utils/daemon-factory.d.ts.map +1 -0
- package/dist/cli/utils/daemon-factory.js +117 -0
- package/dist/cli/utils/daemon.d.ts.map +1 -1
- package/dist/cli/utils/daemon.js +4 -0
- package/dist/cli/utils/env-setup.d.ts +24 -12
- package/dist/cli/utils/env-setup.d.ts.map +1 -1
- package/dist/cli/utils/env-setup.js +64 -43
- package/dist/cli/utils/input-validators.d.ts +103 -0
- package/dist/cli/utils/input-validators.d.ts.map +1 -0
- package/dist/cli/utils/input-validators.js +163 -0
- package/dist/cli/utils/install-context.d.ts +53 -0
- package/dist/cli/utils/install-context.d.ts.map +1 -0
- package/dist/cli/utils/install-context.js +96 -0
- package/dist/cli/utils/pid-manager.d.ts +34 -0
- package/dist/cli/utils/pid-manager.d.ts.map +1 -1
- package/dist/cli/utils/pid-manager.js +43 -0
- package/dist/cli/utils/port-allocator.d.ts +108 -0
- package/dist/cli/utils/port-allocator.d.ts.map +1 -0
- package/dist/cli/utils/port-allocator.js +166 -0
- package/dist/cli/utils/resource-resolvers.d.ts +92 -0
- package/dist/cli/utils/resource-resolvers.d.ts.map +1 -0
- package/dist/cli/utils/resource-resolvers.js +175 -0
- package/dist/cli/utils/worktree-detector.d.ts +82 -0
- package/dist/cli/utils/worktree-detector.d.ts.map +1 -0
- package/dist/cli/utils/worktree-detector.js +221 -0
- package/dist/lib/errors.d.ts +111 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +153 -0
- package/dist/server/server.js +3 -0
- package/dist/server/src/cli/utils/install-context.js +96 -0
- package/dist/server/src/config/system-directories.js +40 -0
- package/dist/server/src/lib/auto-yes-manager.js +325 -0
- package/dist/server/src/lib/auto-yes-resolver.js +34 -0
- package/dist/server/src/lib/cli-patterns.js +6 -1
- package/dist/server/src/lib/db-instance.js +12 -2
- package/dist/server/src/lib/db-migrations.js +143 -1
- package/dist/server/src/lib/db-path-resolver.js +99 -0
- package/dist/server/src/lib/db.js +63 -0
- package/dist/server/src/lib/env.js +52 -3
- package/dist/server/src/lib/worktrees.js +36 -1
- package/dist/server/src/types/external-apps.js +20 -0
- package/package.json +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-8c6676303b63fdaf.js +0 -1
- /package/.next/static/{ntEU_tKhyyZ-FVJS5Em3L → gRNW5YXY43KqCKbCdaJoJ}/_buildManifest.js +0 -0
- /package/.next/static/{ntEU_tKhyyZ-FVJS5Em3L → gRNW5YXY43KqCKbCdaJoJ}/_ssgManifest.js +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=1746,e.ids=[1746],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},5517:(e,r
|
|
1
|
+
"use strict";(()=>{var e={};e.id=1746,e.ids=[1746],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},5517:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>C,patchFetch:()=>v,requestAsyncStorage:()=>w,routeModule:()=>g,serverHooks:()=>y,staticGenerationAsyncStorage:()=>h});var a={};r.r(a),r.d(a,{GET:()=>x});var o=r(49303),i=r(88716),s=r(60670),n=r(87070),u=r(97425),d=r(75748),l=r(98636),c=r(20629),p=r.n(c),m=r(55315),f=r.n(m);async function x(e,{params:t}){try{let r=(0,u.n)();if(!(0,d.gU)(r,t.id))return n.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let a=e.nextUrl?.searchParams,o=a?.get("cliTool")||"all",i=await (0,l.e7)(t.id,o),s=(await Promise.all(i.map(async e=>{let t=f().basename(e),r=await p().stat(e),a=e.split(f().sep),o=a[a.length-2];return{filename:t,cliToolId:o,size:r.size,modifiedAt:r.mtime.toISOString()}}))).map(e=>e.filename);return n.NextResponse.json(s,{status:200})}catch(e){return console.error("Error fetching log files:",e),n.NextResponse.json({error:"Failed to fetch log files"},{status:500})}}let g=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/logs/route",pathname:"/api/worktrees/[id]/logs",filename:"route",bundlePath:"app/api/worktrees/[id]/logs/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/logs/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:w,staticGenerationAsyncStorage:h,serverHooks:y}=g,C="/api/worktrees/[id]/logs/route";function v(){return(0,s.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:h})}},98636:(e,t,r)=>{r.d(t,{e7:()=>p,xN:()=>c});var a=r(20629),o=r.n(a),i=r(55315),s=r.n(i),n=r(73853);let u=(0,r(93346).Hb)("CM_LOG_DIR")||s().join(process.cwd(),"data","logs");function d(e="claude"){return s().join(u,e)}async function l(e="claude"){let t=d(e);try{await o().access(t)}catch{await o().mkdir(t,{recursive:!0})}}async function c(e,t,r,a="claude"){await l(a);let i=function(e,t="claude"){let r=(0,n.WU)(new Date,"yyyy-MM-dd"),a=`${e}-${r}.md`,o=d(t);return s().join(o,a)}(e,a),u=(0,n.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),c="";try{c=await o().readFile(i,"utf-8")}catch{let t="claude"===a?"Claude Code":"codex"===a?"Codex CLI":"Gemini CLI";c=`# ${t} Conversation Log: ${e}
|
|
2
2
|
|
|
3
|
-
Created: ${
|
|
3
|
+
Created: ${u}
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
`}return c+=`## Conversation at ${
|
|
7
|
+
`}return c+=`## Conversation at ${u}
|
|
8
8
|
|
|
9
9
|
### User
|
|
10
10
|
|
|
11
|
-
${
|
|
11
|
+
${t}
|
|
12
12
|
|
|
13
|
-
### ${"claude"===
|
|
13
|
+
### ${"claude"===a?"Claude":"codex"===a?"Codex":"Gemini"}
|
|
14
14
|
|
|
15
|
-
${
|
|
15
|
+
${r}
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
`,await
|
|
19
|
+
`,await o().writeFile(i,c,"utf-8"),i}async function p(e,t="all"){let r=[];for(let a of"all"===t?["claude","codex","gemini"]:[t]){await l(a);let t=d(a);try{let a=(await o().readdir(t)).filter(t=>t.startsWith(`${e}-`)&&t.endsWith(".md")).map(e=>s().join(t,e));r.push(...a)}catch{}}return r.sort().reverse()}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8948,5972,3853,7425],()=>r(5517));module.exports=a})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=3114,e.ids=[3114],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},78818:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>h,patchFetch:()=>I,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>f,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{DELETE:()=>p,PUT:()=>d});var s=t(49303),n=t(88716),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3114,e.ids=[3114],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},78818:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>h,patchFetch:()=>I,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>f,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{DELETE:()=>p,PUT:()=>d});var s=t(49303),n=t(88716),u=t(60670),a=t(87070),m=t(97425),i=t(75748);async function d(e,{params:r}){try{let t=(0,m.n)();if(!(0,i.gU)(t,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});if(!(0,i.ZI)(t,r.memoId))return a.NextResponse.json({error:`Memo '${r.memoId}' not found`},{status:404});let{title:o,content:s}=await e.json().catch(()=>({}));if(void 0!==o&&o.length>100)return a.NextResponse.json({error:"title must be 100 characters or less"},{status:400});if(void 0!==s&&s.length>1e4)return a.NextResponse.json({error:"content must be 10000 characters or less"},{status:400});(0,i.Nr)(t,r.memoId,{title:o,content:s});let n=(0,i.ZI)(t,r.memoId);return a.NextResponse.json({memo:n},{status:200})}catch(e){return console.error("Error updating memo:",e),a.NextResponse.json({error:"Failed to update memo"},{status:500})}}async function p(e,{params:r}){try{let e=(0,m.n)();if(!(0,i.gU)(e,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});if(!(0,i.ZI)(e,r.memoId))return a.NextResponse.json({error:`Memo '${r.memoId}' not found`},{status:404});return(0,i._e)(e,r.memoId),a.NextResponse.json({success:!0},{status:200})}catch(e){return console.error("Error deleting memo:",e),a.NextResponse.json({error:"Failed to delete memo"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/memos/[memoId]/route",pathname:"/api/worktrees/[id]/memos/[memoId]",filename:"route",bundlePath:"app/api/worktrees/[id]/memos/[memoId]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/memos/[memoId]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:f}=c,h="/api/worktrees/[id]/memos/[memoId]/route";function I(){return(0,u.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(78818));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=9532,e.ids=[9532],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},86868:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>f,patchFetch:()=>g,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>d,POST:()=>m});var s=t(49303),n=t(88716),i=t(60670),a=t(87070),u=t(97425),p=t(75748);async function d(e,{params:r}){try{let e=(0,u.n)();if(!(0,p.gU)(e,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let t=(0,p.Db)(e,r.id);return a.NextResponse.json({memos:t},{status:200})}catch(e){return console.error("Error fetching memos:",e),a.NextResponse.json({error:"Failed to fetch memos"},{status:500})}}async function m(e,{params:r}){try{let t;let o=(0,u.n)();if(!(0,p.gU)(o,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let{title:s,content:n,position:i}=await e.json().catch(()=>({}));if(void 0!==s&&s.length>100)return a.NextResponse.json({error:"title must be 100 characters or less"},{status:400});if(void 0!==n&&n.length>1e4)return a.NextResponse.json({error:"content must be 10000 characters or less"},{status:400});let d=(0,p.Db)(o,r.id);if(d.length>=5)return a.NextResponse.json({error:"Maximum memo limit (5) reached"},{status:400});if(void 0!==i&&"number"==typeof i)t=i;else{let e=new Set(d.map(e=>e.position));for(t=0;e.has(t)&&t<5;)t++}let m=(0,p.dD)(o,r.id,{title:s,content:n,position:t});return a.NextResponse.json({memo:m},{status:201})}catch(e){return console.error("Error creating memo:",e),a.NextResponse.json({error:"Failed to create memo"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/memos/route",pathname:"/api/worktrees/[id]/memos",filename:"route",bundlePath:"app/api/worktrees/[id]/memos/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/memos/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:h}=c,f="/api/worktrees/[id]/memos/route";function g(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(86868));module.exports=o})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=9532,e.ids=[9532],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},86868:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>f,patchFetch:()=>g,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>d,POST:()=>m});var s=t(49303),n=t(88716),i=t(60670),a=t(87070),u=t(97425),p=t(75748);async function d(e,{params:r}){try{let e=(0,u.n)();if(!(0,p.gU)(e,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let t=(0,p.Db)(e,r.id);return a.NextResponse.json({memos:t},{status:200})}catch(e){return console.error("Error fetching memos:",e),a.NextResponse.json({error:"Failed to fetch memos"},{status:500})}}async function m(e,{params:r}){try{let t;let o=(0,u.n)();if(!(0,p.gU)(o,r.id))return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let{title:s,content:n,position:i}=await e.json().catch(()=>({}));if(void 0!==s&&s.length>100)return a.NextResponse.json({error:"title must be 100 characters or less"},{status:400});if(void 0!==n&&n.length>1e4)return a.NextResponse.json({error:"content must be 10000 characters or less"},{status:400});let d=(0,p.Db)(o,r.id);if(d.length>=5)return a.NextResponse.json({error:"Maximum memo limit (5) reached"},{status:400});if(void 0!==i&&"number"==typeof i)t=i;else{let e=new Set(d.map(e=>e.position));for(t=0;e.has(t)&&t<5;)t++}let m=(0,p.dD)(o,r.id,{title:s,content:n,position:t});return a.NextResponse.json({memo:m},{status:201})}catch(e){return console.error("Error creating memo:",e),a.NextResponse.json({error:"Failed to create memo"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/memos/route",pathname:"/api/worktrees/[id]/memos",filename:"route",bundlePath:"app/api/worktrees/[id]/memos/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/memos/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:h}=c,f="/api/worktrees/[id]/memos/route";function g(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(86868));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=4552,e.ids=[4552],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},68360:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>f,requestAsyncStorage:()=>l,routeModule:()=>m,serverHooks:()=>g,staticGenerationAsyncStorage:()=>c});var s={};r.r(s),r.d(s,{GET:()=>d});var o=r(49303),i=r(88716),a=r(60670),n=r(87070),u=r(97425),p=r(75748);async function d(e,{params:t}){try{let r=(0,u.n)();if(!(0,p.gU)(r,t.id))return n.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let{searchParams:s}=new URL(e.url),o=s.get("before"),i=s.get("limit"),a=s.get("cliTool"),d=o?new Date(o):void 0,m=i?parseInt(i,10):50;if(a&&!["claude","codex","gemini"].includes(a))return n.NextResponse.json({error:"Invalid cliTool parameter (must be claude, codex, or gemini)"},{status:400});if(isNaN(m)||m<1||m>100)return n.NextResponse.json({error:"Invalid limit parameter (must be 1-100)"},{status:400});let l=[...(0,p._U)(r,t.id,d,m,a).filter(e=>e.content&&""!==e.content.trim())].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime());return n.NextResponse.json(l,{status:200})}catch(e){return console.error("Error fetching messages:",e),n.NextResponse.json({error:"Failed to fetch messages"},{status:500})}}let m=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/messages/route",pathname:"/api/worktrees/[id]/messages",filename:"route",bundlePath:"app/api/worktrees/[id]/messages/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/messages/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:l,staticGenerationAsyncStorage:c,serverHooks:g}=m,x="/api/worktrees/[id]/messages/route";function f(){return(0,a.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:c})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8948,5972,7425],()=>r(68360));module.exports=s})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=4552,e.ids=[4552],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},68360:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>f,requestAsyncStorage:()=>l,routeModule:()=>m,serverHooks:()=>g,staticGenerationAsyncStorage:()=>c});var s={};r.r(s),r.d(s,{GET:()=>d});var o=r(49303),i=r(88716),a=r(60670),n=r(87070),u=r(97425),p=r(75748);async function d(e,{params:t}){try{let r=(0,u.n)();if(!(0,p.gU)(r,t.id))return n.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let{searchParams:s}=new URL(e.url),o=s.get("before"),i=s.get("limit"),a=s.get("cliTool"),d=o?new Date(o):void 0,m=i?parseInt(i,10):50;if(a&&!["claude","codex","gemini"].includes(a))return n.NextResponse.json({error:"Invalid cliTool parameter (must be claude, codex, or gemini)"},{status:400});if(isNaN(m)||m<1||m>100)return n.NextResponse.json({error:"Invalid limit parameter (must be 1-100)"},{status:400});let l=[...(0,p._U)(r,t.id,d,m,a).filter(e=>e.content&&""!==e.content.trim())].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime());return n.NextResponse.json(l,{status:200})}catch(e){return console.error("Error fetching messages:",e),n.NextResponse.json({error:"Failed to fetch messages"},{status:500})}}let m=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/messages/route",pathname:"/api/worktrees/[id]/messages",filename:"route",bundlePath:"app/api/worktrees/[id]/messages/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/messages/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:l,staticGenerationAsyncStorage:c,serverHooks:g}=m,x="/api/worktrees/[id]/messages/route";function f(){return(0,a.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:c})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8948,5972,7425],()=>r(68360));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=6366,e.ids=[6366],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},45762:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>h,patchFetch:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=6366,e.ids=[6366],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},45762:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>h,patchFetch:()=>q,requestAsyncStorage:()=>x,routeModule:()=>m,serverHooks:()=>g,staticGenerationAsyncStorage:()=>w});var s={};t.r(s),t.d(s,{POST:()=>l});var o=t(49303),n=t(88716),i=t(60670),a=t(87070),p=t(97425),u=t(75748),d=t(10927),c=t(97213);async function l(e,{params:r}){try{let{answer:t,cliTool:s}=await e.json();if(!t)return a.NextResponse.json({error:"answer is required"},{status:400});let o=(0,p.n)(),n=(0,u.gU)(o,r.id);if(!n)return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let i=s||n.cliToolId||"claude",l=c.g.getInstance().getTool(i);if(!await l.isRunning(r.id))return a.NextResponse.json({error:`${l.name} session is not running`},{status:400});let m=l.getSessionName(r.id);try{await (0,d.Is)(m,t,!1),await new Promise(e=>setTimeout(e,100)),await (0,d.Is)(m,"",!0)}catch(r){let e=r instanceof Error?r.message:"Unknown error";return a.NextResponse.json({error:`Failed to send answer to tmux: ${e}`},{status:500})}return a.NextResponse.json({success:!0,answer:t})}catch(r){console.error("Failed to respond to prompt:",r);let e=r instanceof Error?r.message:"Internal server error";return a.NextResponse.json({error:e},{status:500})}}let m=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/prompt-response/route",pathname:"/api/worktrees/[id]/prompt-response",filename:"route",bundlePath:"app/api/worktrees/[id]/prompt-response/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/prompt-response/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:w,serverHooks:g}=m,h="/api/worktrees/[id]/prompt-response/route";function q(){return(0,i.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:w})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8948,5972,7425,7213],()=>t(45762));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=4230,e.ids=[4230],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},1464:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>j,patchFetch:()=>R,requestAsyncStorage:()=>w,routeModule:()=>f,serverHooks:()=>h,staticGenerationAsyncStorage:()=>q});var s={};t.r(s),t.d(s,{POST:()=>g});var o=t(49303),n=t(88716),a=t(60670),i=t(87070),p=t(97425),u=t(75748),d=t(10927),l=t(97213),m=t(59991),c=t(63661),x=t(25079);async function g(e,{params:r}){try{let t;let{messageId:s,answer:o}=await e.json();if(!s||!o)return i.NextResponse.json({error:"messageId and answer are required"},{status:400});let n=(0,p.n)(),a=(0,u.S$)(n,s);if(!a)return i.NextResponse.json({error:"Message not found"},{status:404});if("prompt"!==a.messageType)return i.NextResponse.json({error:"Message is not a prompt"},{status:400});if(!a.promptData)return i.NextResponse.json({error:"Prompt data not found"},{status:400});if("answered"===a.promptData.status)return i.NextResponse.json({error:"Prompt already answered"},{status:400});if("multiple_choice"===a.promptData.type){let e=parseInt(o,10);if(isNaN(e))t=o;else{let r=a.promptData.options.map(e=>e.number);if(!r.includes(e))return i.NextResponse.json({error:`Invalid choice: ${o}. Valid options are: ${r.join(", ")}`},{status:400});t=e.toString()}}else try{t=(0,c.J)(o,a.promptData.type)}catch(r){let e=r instanceof Error?r.message:"Unknown error";return i.NextResponse.json({error:`Invalid answer: ${e}`},{status:400})}let g={...a.promptData,status:"answered",answer:o,answeredAt:new Date().toISOString()};(0,u.GA)(n,s,g);let f=(0,u.gU)(n,r.id);if(!f)return i.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let w=a.cliToolId||f.cliToolId||"claude",q=l.g.getInstance().getTool(w),h=q.getSessionName(r.id);try{await (0,d.Is)(h,t,!1),console.log(`✓ Sent answer '${t}' to ${h} (${q.name})`),await new Promise(e=>setTimeout(e,100)),await (0,d.Is)(h,"",!0),console.log(`✓ Sent Enter to ${h}`)}catch(r){let e=r instanceof Error?r.message:"Unknown error";return i.NextResponse.json({error:`Failed to send answer to tmux: ${e}`},{status:500})}let j={...a,promptData:g};return(0,x.ps)("message_updated",{worktreeId:r.id,message:j}),(0,m.cn)(r.id,w),console.log(`✓ Resumed polling for ${r.id} (${w})`),i.NextResponse.json({success:!0,message:j})}catch(r){console.error("Failed to respond to prompt:",r);let e=r instanceof Error?r.message:"Internal server error";return i.NextResponse.json({error:e},{status:500})}}let f=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/respond/route",pathname:"/api/worktrees/[id]/respond",filename:"route",bundlePath:"app/api/worktrees/[id]/respond/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/respond/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:w,staticGenerationAsyncStorage:q,serverHooks:h}=f,j="/api/worktrees/[id]/respond/route";function R(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:q})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8948,5972,3853,4893,7425,7213,1528,9723],()=>t(1464));module.exports=s})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=4230,e.ids=[4230],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},1464:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>j,patchFetch:()=>R,requestAsyncStorage:()=>w,routeModule:()=>f,serverHooks:()=>h,staticGenerationAsyncStorage:()=>q});var s={};t.r(s),t.d(s,{POST:()=>g});var o=t(49303),n=t(88716),a=t(60670),i=t(87070),p=t(97425),u=t(75748),d=t(10927),l=t(97213),m=t(59991),c=t(63661),x=t(25079);async function g(e,{params:r}){try{let t;let{messageId:s,answer:o}=await e.json();if(!s||!o)return i.NextResponse.json({error:"messageId and answer are required"},{status:400});let n=(0,p.n)(),a=(0,u.S$)(n,s);if(!a)return i.NextResponse.json({error:"Message not found"},{status:404});if("prompt"!==a.messageType)return i.NextResponse.json({error:"Message is not a prompt"},{status:400});if(!a.promptData)return i.NextResponse.json({error:"Prompt data not found"},{status:400});if("answered"===a.promptData.status)return i.NextResponse.json({error:"Prompt already answered"},{status:400});if("multiple_choice"===a.promptData.type){let e=parseInt(o,10);if(isNaN(e))t=o;else{let r=a.promptData.options.map(e=>e.number);if(!r.includes(e))return i.NextResponse.json({error:`Invalid choice: ${o}. Valid options are: ${r.join(", ")}`},{status:400});t=e.toString()}}else try{t=(0,c.J)(o,a.promptData.type)}catch(r){let e=r instanceof Error?r.message:"Unknown error";return i.NextResponse.json({error:`Invalid answer: ${e}`},{status:400})}let g={...a.promptData,status:"answered",answer:o,answeredAt:new Date().toISOString()};(0,u.GA)(n,s,g);let f=(0,u.gU)(n,r.id);if(!f)return i.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let w=a.cliToolId||f.cliToolId||"claude",q=l.g.getInstance().getTool(w),h=q.getSessionName(r.id);try{await (0,d.Is)(h,t,!1),console.log(`✓ Sent answer '${t}' to ${h} (${q.name})`),await new Promise(e=>setTimeout(e,100)),await (0,d.Is)(h,"",!0),console.log(`✓ Sent Enter to ${h}`)}catch(r){let e=r instanceof Error?r.message:"Unknown error";return i.NextResponse.json({error:`Failed to send answer to tmux: ${e}`},{status:500})}let j={...a,promptData:g};return(0,x.ps)("message_updated",{worktreeId:r.id,message:j}),(0,m.cn)(r.id,w),console.log(`✓ Resumed polling for ${r.id} (${w})`),i.NextResponse.json({success:!0,message:j})}catch(r){console.error("Failed to respond to prompt:",r);let e=r instanceof Error?r.message:"Internal server error";return i.NextResponse.json({error:e},{status:500})}}let f=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/respond/route",pathname:"/api/worktrees/[id]/respond",filename:"route",bundlePath:"app/api/worktrees/[id]/respond/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/respond/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:w,staticGenerationAsyncStorage:q,serverHooks:h}=f,j="/api/worktrees/[id]/respond/route";function R(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:q})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8948,5972,3853,4893,7425,7213,1528,9723],()=>t(1464));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=4931,e.ids=[4931],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},46769:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=4931,e.ids=[4931],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},46769:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>R,requestAsyncStorage:()=>x,routeModule:()=>h,serverHooks:()=>v,staticGenerationAsyncStorage:()=>k});var o={};r.r(o),r.d(o,{GET:()=>f,PATCH:()=>w});var i=r(49303),n=r(88716),s=r(60670),a=r(87070),u=r(97425),d=r(75748),l=r(97213),c=r(89194),p=r(19377),g=r(63661),m=r(3979);async function f(e,{params:t}){try{let e;let r=(0,u.n)(),o=(0,d.gU)(r,t.id);if(!o)return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let i=l.g.getInstance(),n={},s=!1,f=!1,w=!1;for(let e of["claude","codex","gemini"]){let o=i.getTool(e),a=await o.isRunning(t.id),u=!1,l=!1;if(a)try{let o=await (0,c.NA)(t.id,e,100),i=(0,p.vp)(o),n=(0,g.F)(i);if(n.isPrompt)u=!0;else{let t=i.split("\n").filter(e=>""!==e.trim()).slice(-15).join("\n");(0,p.Wg)(e,t)?l=!0:/^[>❯](\s*$|\s+\S)/m.test(t)||(l=!0)}!n.isPrompt&&(0,d._U)(r,t.id,void 0,10,e).some(e=>"prompt"===e.messageType&&e.promptData?.status!=="answered")&&(0,d.GP)(r,t.id,e)}catch{l=!0}n[e]={isRunning:a,isWaitingForResponse:u,isProcessing:l},a&&(s=!0),u&&(f=!0),l&&(w=!0)}try{let i=(0,d.Q7)(r,t.id);e=await (0,m.v)(o.path,i)}catch(e){console.error("[GET /api/worktrees/:id] Failed to get git status:",e)}return a.NextResponse.json({...o,gitStatus:e,isSessionRunning:s,isWaitingForResponse:f,isProcessing:w,sessionStatusByCli:n},{status:200})}catch(e){return console.error("Error fetching worktree:",e),a.NextResponse.json({error:"Failed to fetch worktree"},{status:500})}}async function w(e,{params:t}){try{let r=(0,u.n)();if(!(0,d.gU)(r,t.id))return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let o=await e.json();"description"in o&&(0,d.xr)(r,t.id,o.description),"link"in o&&(0,d.y)(r,t.id,o.link),"favorite"in o&&"boolean"==typeof o.favorite&&(0,d.R3)(r,t.id,o.favorite),"status"in o&&["todo","doing","done",null].includes(o.status)&&(0,d.Nf)(r,t.id,o.status),"cliToolId"in o&&["claude","codex","gemini"].includes(o.cliToolId)&&(0,d.VW)(r,t.id,o.cliToolId);let i=(0,d.gU)(r,t.id),n=l.g.getInstance(),s=i?.cliToolId||"claude",c=n.getTool(s),p=await c.isRunning(t.id);return a.NextResponse.json({...i,isSessionRunning:p},{status:200})}catch(e){return console.error("Error updating worktree:",e),a.NextResponse.json({error:"Failed to update worktree"},{status:500})}}let h=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/route",pathname:"/api/worktrees/[id]",filename:"route",bundlePath:"app/api/worktrees/[id]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:x,staticGenerationAsyncStorage:k,serverHooks:v}=h,y="/api/worktrees/[id]/route";function R(){return(0,s.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:k})}},3979:(e,t,r)=>{r.d(t,{v:()=>s});var o=r(61282);let i=(0,r(21764).promisify)(o.execFile);async function n(e,t){try{let{stdout:r}=await i("git",e,{cwd:t,timeout:1e3});return r.trim()}catch(t){return console.error("[git-utils] Git command failed:",{args:e,error:t instanceof Error?t.message:"Unknown error"}),null}}async function s(e,t){let r;let o=await n(["rev-parse","--abbrev-ref","HEAD"],e);r=null===o?"(unknown)":"HEAD"===o?"(detached HEAD)":o;let i=await n(["rev-parse","--short","HEAD"],e),s=await n(["status","--porcelain"],e);return{currentBranch:r,initialBranch:t,isBranchMismatch:null!==t&&"(unknown)"!==r&&"(detached HEAD)"!==r&&r!==t,commitHash:i??"(unknown)",isDirty:null!==s&&s.length>0}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425,7213,1528],()=>r(46769));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=7601,e.ids=[7601],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},19496:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>A,patchFetch:()=>O,requestAsyncStorage:()=>C,routeModule:()=>D,serverHooks:()=>R,staticGenerationAsyncStorage:()=>v});var n={};r.r(n),r.d(n,{GET:()=>M});var o=r(49303),s=r(88716),i=r(60670),a=r(87070),c=r(97425),u=r(75748),l=r(20629),d=r(55315),f=r(57440),p=r(18163);let m=[...r(81481).P7,".exe",".dll",".so",".dylib",".bin",".zip",".tar",".gz",".tar.gz",".tgz",".rar",".7z",".bz2",".xz",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".avi",".mov",".mkv",".wav",".flac",".ogg",".sqlite",".db",".o",".obj",".a",".lib",".class",".jar",".war",".pyc",".pyo",".wasm"];function h(e){return!!e&&0!==e.trim().length&&!(e.length>1e3)}async function g(e,t,r){let{query:n,maxResults:o=100,maxFileSize:s=p.bB.MAX_FILE_SIZE_PREVIEW,maxDepth:i=p.bB.MAX_DEPTH}=t;if(!h(n))return{results:[],totalMatches:0,truncated:!1};let a={results:[],totalMatches:0,truncated:!1,startTime:Date.now()},c={basePath:e,lowerQuery:n.toLowerCase(),maxDepth:i,maxResults:o,maxFileSize:s,signal:r};return await _(e,0,c,a),{results:a.results,totalMatches:a.totalMatches,truncated:a.truncated}}async function _(e,t,r,n){let o;let{basePath:s,maxDepth:i,maxResults:a,signal:c}=r;if(c?.aborted)throw new DOMException("Search aborted","AbortError");if(!(t>i)){if(n.results.length>=a){n.truncated=!0;return}if((0,f.j)(e,s)){try{o=await (0,l.readdir)(e)}catch{return}for(let i of o){if(c?.aborted)throw new DOMException("Search aborted","AbortError");if(n.results.length>=a){n.truncated=!0;return}if((0,p.bS)(i))continue;let o=(0,d.join)(e,i);if((0,f.j)(o,s))try{let e=await (0,l.lstat)(o);if(e.isSymbolicLink())continue;e.isDirectory()?await _(o,t+1,r,n):e.isFile()&&await w(o,i,e.size,r,n)}catch{continue}}}}}async function w(e,t,r,n,o){let s,i;let{basePath:a,lowerQuery:c,maxFileSize:u}=n;if(!(r>u||function(e){if(!e)return!1;let t=e.startsWith(".")?e.toLowerCase():"."+e.toLowerCase();return m.includes(t)}((0,d.extname)(t)))){try{s=await (0,l.readFile)(e)}catch{return}if(!s.includes(0)){try{i=s.toString("utf-8")}catch{return}if(i.toLowerCase().includes(c)){let r=function(e,t){let r=e.split("\n"),n=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){let t=r[e];t.toLowerCase().includes(n)&&o.push({line:e+1,content:function(e,t=500){return e.length<=t?e:e.slice(0,t)+"..."}(t)})}return o}(i,c);if(r.length>0){let n=(0,d.relative)(a,e);o.results.push({filePath:n,fileName:(0,d.basename)(t),matches:r}),o.totalMatches+=r.length}}}}}class x extends Error{constructor(e="Search timed out"){super(e),this.name="SearchTimeoutError"}}async function y(e,t){let r=t.timeoutMs??5e3,n=new AbortController,o=setTimeout(()=>n.abort(),r),s=Date.now();try{let r=await g(e,t,n.signal),o=Date.now()-s;return{...r,executionTimeMs:o}}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new x(`Search timed out after ${r}ms`);throw e}finally{clearTimeout(o)}}var E=r(43895);let T=(0,E.h)("api-search");async function M(e,{params:t}){let r=Date.now(),n=(0,E.Y)(),o=t.id,s=T.withContext({worktreeId:o,requestId:n});try{let t=e.nextUrl.searchParams,r=t.get("q")||"",n=t.get("mode")||"content";if("content"!==n)return s.warn("search:invalid-mode",{mode:n}),a.NextResponse.json({success:!1,error:{code:"INVALID_MODE",message:"Only mode=content is supported for API search"}},{status:400});if(!h(r))return s.warn("search:invalid-query",{queryLength:r.length}),a.NextResponse.json({success:!1,error:{code:"INVALID_QUERY",message:"Query cannot be empty or exceed 1000 characters"}},{status:400});let i=(0,c.n)(),l=(0,u.gU)(i,o);if(!l){let e=(0,p.dq)(o);return s.warn("search:worktree-not-found"),a.NextResponse.json({success:!1,error:{code:"WORKTREE_NOT_FOUND",message:e.error}},{status:e.status})}let d=await y(l.path,{query:r,maxResults:100,timeoutMs:5e3});return s.info("search:complete",{queryHash:Buffer.from(r).toString("base64").slice(0,8),executionTimeMs:d.executionTimeMs,resultCount:d.results.length,totalMatches:d.totalMatches,truncated:d.truncated}),a.NextResponse.json({success:!0,results:d.results,totalMatches:d.totalMatches,truncated:d.truncated,executionTimeMs:d.executionTimeMs})}catch(t){if(t instanceof x){let e=Date.now()-r;return s.warn("search:timeout",{executionTimeMs:e}),a.NextResponse.json({success:!1,error:{code:"SEARCH_TIMEOUT",message:"Search timed out. Try a more specific query."}},{status:408})}let e=Date.now()-r;return s.error("search:error",{error:t instanceof Error?t.message:"Unknown error",executionTimeMs:e}),a.NextResponse.json({success:!1,error:{code:"INTERNAL_ERROR",message:"An error occurred while searching"}},{status:500})}}let D=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/worktrees/[id]/search/route",pathname:"/api/worktrees/[id]/search",filename:"route",bundlePath:"app/api/worktrees/[id]/search/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/search/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:C,staticGenerationAsyncStorage:v,serverHooks:R}=D,A="/api/worktrees/[id]/search/route";function O(){return(0,i.patchFetch)({serverHooks:R,staticGenerationAsyncStorage:v})}},81481:(e,t,r)=>{r.d(t,{Db:()=>a,Kc:()=>i,P7:()=>n,gp:()=>c});let n=[".png",".jpg",".jpeg",".gif",".webp",".svg"],o=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function s(e){return e?e.startsWith(".")?e.toLowerCase():"."+e.toLowerCase():""}function i(e){let t=s(e),r=o.find(e=>e.extension===t);return r?.mimeType||"application/octet-stream"}function a(e){if(!e)return!1;let t=s(e);return n.includes(t)}function c(e,t){if(t.length>5242880)return{valid:!1,error:"File size exceeds 5MB limit"};if(".svg"===s(e)){var r;return(r=t.toString("utf-8")).includes("<svg")||r.startsWith("<?xml")?/<script[\s>]/i.test(r)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(r)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(r)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(r)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(e,t){let r=s(e),n=o.find(e=>e.extension===r);if(!n?.magicBytes)return".svg"===r;let i=n.magicBytesOffset||0;return!(t.length<i+n.magicBytes.length)&&n.magicBytes.every((e,r)=>t[i+r]===e)}(e,t)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}},37848:(e,t,r)=>{r.d(t,{Hb:()=>a,LI:()=>c,dU:()=>u});var n=r(55315),o=r.n(n);let s={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_AUTH_TOKEN:"MCBD_AUTH_TOKEN",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},i=new Set;function a(e){return function(e,t){let r=process.env[e];if(void 0!==r)return r;let n=process.env[t];if(void 0!==n)return i.has(t)||(console.warn(`[DEPRECATED] ${t} is deprecated, use ${e} instead`),i.add(t)),n}(e,s[e])}function c(){let e=a("CM_LOG_LEVEL")?.toLowerCase(),t=a("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==e&&["debug","info","warn","error"].includes(e)?e:"info",format:"json"===t?"json":"text"}}function u(){let e=a("CM_ROOT_DIR")||process.cwd(),t=parseInt(a("CM_PORT")||"3000",10),r=a("CM_BIND")||"127.0.0.1",n=a("CM_AUTH_TOKEN"),s=a("CM_DB_PATH")||process.env.DATABASE_PATH||o().join(process.cwd(),"data","cm.db");if(!e)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(t)||t<1||t>65535)throw Error(`Invalid CM_PORT: ${a("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==r&&"0.0.0.0"!==r&&"localhost"!==r)throw Error(`Invalid CM_BIND: ${r}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);if("0.0.0.0"===r&&!n)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");return{CM_ROOT_DIR:o().resolve(e),CM_PORT:t,CM_BIND:r,CM_AUTH_TOKEN:n,CM_DB_PATH:o().resolve(s)}}},18163:(e,t,r)=>{r.d(t,{GT:()=>l,Lu:()=>u,W:()=>f,bB:()=>i,bS:()=>a,dq:()=>d});var n=r(20629),o=r(55315);let s=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],i={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function a(e){for(let t of s){if(t===e)return!0;if(t.startsWith("*.")){let r=t.slice(1);if(e.endsWith(r))return!0}if(t.endsWith(".*")){let r=t.slice(0,-2);if(e.startsWith(r+"."))return!0}}return!1}async function c(e){try{return(await (0,n.readdir)(e)).filter(e=>!a(e)).length}catch{return 0}}async function u(e,t=""){let r;let s=t?(0,o.join)(e,t):e;try{r=await (0,n.stat)(s)}catch{throw Error(`Directory not found: ${t||"(root)"}`)}if(!r.isDirectory())throw Error(`Path is not a directory: ${t}`);let u=await (0,n.readdir)(s),l=[];for(let e of u){if(a(e))continue;let t=(0,o.join)(s,e);try{let r=await (0,n.lstat)(t);if(r.isSymbolicLink())continue;if(r.isDirectory()){let r=await c(t);l.push({name:e,type:"directory",itemCount:r})}else if(r.isFile()){let t=(0,o.extname)(e),n={name:e,type:"file",size:r.size};t&&t.length>1&&(n.extension=t.slice(1)),l.push(n)}}catch{continue}if(l.length>=i.MAX_ITEMS_PER_DIR)break}let d=[...l].sort((e,t)=>e.type!==t.type?"directory"===e.type?-1:1:e.name.toLowerCase().localeCompare(t.name.toLowerCase())),f=null;if(t){let e=(0,o.dirname)(t);f="."===e?"":e}return{path:t,name:t?(0,o.basename)(t):"",items:d,parentPath:f}}function l(e){let t=e instanceof Error?e.message:"Unknown error";return t.includes("not found")?{error:"Directory not found",status:404}:t.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function d(e){return{error:`Worktree '${e}' not found`,status:404}}function f(e="Invalid path"){return{error:`Access denied: ${e}`,status:403}}},43895:(e,t,r)=>{r.d(t,{Y:()=>c,h:()=>u});var n=r(37848);let o=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/CM_AUTH_TOKEN=\S+/gi,replacement:"CM_AUTH_TOKEN=[REDACTED]"},{pattern:/MCBD_AUTH_TOKEN=\S+/gi,replacement:"MCBD_AUTH_TOKEN=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"}],s=/password|secret|token|key|auth/i,i={debug:0,info:1,warn:2,error:3};function a(e,t,r,a,c){let u=(0,n.LI)().level;if(i[e]<i[u])return;let l=a?function e(t){if("string"==typeof t){let e=t;for(let{pattern:t,replacement:r}of o)e=e.replace(t,r);return e}if("object"==typeof t&&null!==t){if(Array.isArray(t))return t.map(e);let r={};for(let[n,o]of Object.entries(t))s.test(n)?r[n]="[REDACTED]":r[n]=e(o);return r}return t}(a):void 0,d=function(e){if("json"===(0,n.LI)().format)return JSON.stringify(e);let{timestamp:t,level:r,module:o,action:s,data:i,worktreeId:a,cliToolId:c,requestId:u}=e,l=[a,c].filter(Boolean),d=l.length>0?` [${l.join(":")}]`:"",f=u?` (${u.slice(0,8)})`:"",p=i?` ${JSON.stringify(i)}`:"";return`[${t}] [${r.toUpperCase()}] [${o}]${d}${f} ${s}${p}`}({level:e,module:t,action:r,timestamp:new Date().toISOString(),...c,...l&&{data:l}});switch(e){case"error":console.error(d);break;case"warn":console.warn(d);break;default:console.log(d)}}function c(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function u(e){let t=r=>({debug:(t,n)=>a("debug",e,t,n,r),info:(t,n)=>a("info",e,t,n,r),warn:(t,n)=>a("warn",e,t,n,r),error:(t,n)=>a("error",e,t,n,r),withContext:e=>t({...r,...e})});return t()}},57440:(e,t,r)=>{r.d(t,{j:()=>s});var n=r(55315),o=r.n(n);function s(e,t){if(!e||""===e.trim()||e.includes("\0"))return!1;let r=e;try{r=decodeURIComponent(e)}catch{r=e}if(r.includes("\0"))return!1;let n=o().resolve(t),s=o().resolve(t,r),i=o().relative(n,s);return!(i.startsWith("..")||o().isAbsolute(i))}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425],()=>r(19496));module.exports=n})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=7601,e.ids=[7601],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},19496:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>R,patchFetch:()=>_,requestAsyncStorage:()=>A,routeModule:()=>D,serverHooks:()=>M,staticGenerationAsyncStorage:()=>S});var n={};r.r(n),r.d(n,{GET:()=>T});var o=r(49303),s=r(88716),i=r(60670),a=r(87070),c=r(97425),u=r(75748),l=r(20629),d=r(55315),f=r(57440),p=r(18163);let m=[...r(81481).P7,".exe",".dll",".so",".dylib",".bin",".zip",".tar",".gz",".tar.gz",".tgz",".rar",".7z",".bz2",".xz",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".woff",".woff2",".ttf",".otf",".eot",".mp3",".mp4",".avi",".mov",".mkv",".wav",".flac",".ogg",".sqlite",".db",".o",".obj",".a",".lib",".class",".jar",".war",".pyc",".pyo",".wasm"];function h(e){return!!e&&0!==e.trim().length&&!(e.length>1e3)}async function g(e,t,r){let{query:n,maxResults:o=100,maxFileSize:s=p.bB.MAX_FILE_SIZE_PREVIEW,maxDepth:i=p.bB.MAX_DEPTH}=t;if(!h(n))return{results:[],totalMatches:0,truncated:!1};let a={results:[],totalMatches:0,truncated:!1,startTime:Date.now()},c={basePath:e,lowerQuery:n.toLowerCase(),maxDepth:i,maxResults:o,maxFileSize:s,signal:r};return await x(e,0,c,a),{results:a.results,totalMatches:a.totalMatches,truncated:a.truncated}}async function x(e,t,r,n){let o;let{basePath:s,maxDepth:i,maxResults:a,signal:c}=r;if(c?.aborted)throw new DOMException("Search aborted","AbortError");if(!(t>i)){if(n.results.length>=a){n.truncated=!0;return}if((0,f.j)(e,s)){try{o=await (0,l.readdir)(e)}catch{return}for(let i of o){if(c?.aborted)throw new DOMException("Search aborted","AbortError");if(n.results.length>=a){n.truncated=!0;return}if((0,p.bS)(i))continue;let o=(0,d.join)(e,i);if((0,f.j)(o,s))try{let e=await (0,l.lstat)(o);if(e.isSymbolicLink())continue;e.isDirectory()?await x(o,t+1,r,n):e.isFile()&&await y(o,i,e.size,r,n)}catch{continue}}}}}async function y(e,t,r,n,o){let s,i;let{basePath:a,lowerQuery:c,maxFileSize:u}=n;if(!(r>u||function(e){if(!e)return!1;let t=e.startsWith(".")?e.toLowerCase():"."+e.toLowerCase();return m.includes(t)}((0,d.extname)(t)))){try{s=await (0,l.readFile)(e)}catch{return}if(!s.includes(0)){try{i=s.toString("utf-8")}catch{return}if(i.toLowerCase().includes(c)){let r=function(e,t){let r=e.split("\n"),n=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){let t=r[e];t.toLowerCase().includes(n)&&o.push({line:e+1,content:function(e,t=500){return e.length<=t?e:e.slice(0,t)+"..."}(t)})}return o}(i,c);if(r.length>0){let n=(0,d.relative)(a,e);o.results.push({filePath:n,fileName:(0,d.basename)(t),matches:r}),o.totalMatches+=r.length}}}}}class w extends Error{constructor(e="Search timed out"){super(e),this.name="SearchTimeoutError"}}async function E(e,t){let r=t.timeoutMs??5e3,n=new AbortController,o=setTimeout(()=>n.abort(),r),s=Date.now();try{let r=await g(e,t,n.signal),o=Date.now()-s;return{...r,executionTimeMs:o}}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new w(`Search timed out after ${r}ms`);throw e}finally{clearTimeout(o)}}var v=r(43895);let b=(0,v.h)("api-search");async function T(e,{params:t}){let r=Date.now(),n=(0,v.Y)(),o=t.id,s=b.withContext({worktreeId:o,requestId:n});try{let t=e.nextUrl.searchParams,r=t.get("q")||"",n=t.get("mode")||"content";if("content"!==n)return s.warn("search:invalid-mode",{mode:n}),a.NextResponse.json({success:!1,error:{code:"INVALID_MODE",message:"Only mode=content is supported for API search"}},{status:400});if(!h(r))return s.warn("search:invalid-query",{queryLength:r.length}),a.NextResponse.json({success:!1,error:{code:"INVALID_QUERY",message:"Query cannot be empty or exceed 1000 characters"}},{status:400});let i=(0,c.n)(),l=(0,u.gU)(i,o);if(!l){let e=(0,p.dq)(o);return s.warn("search:worktree-not-found"),a.NextResponse.json({success:!1,error:{code:"WORKTREE_NOT_FOUND",message:e.error}},{status:e.status})}let d=await E(l.path,{query:r,maxResults:100,timeoutMs:5e3});return s.info("search:complete",{queryHash:Buffer.from(r).toString("base64").slice(0,8),executionTimeMs:d.executionTimeMs,resultCount:d.results.length,totalMatches:d.totalMatches,truncated:d.truncated}),a.NextResponse.json({success:!0,results:d.results,totalMatches:d.totalMatches,truncated:d.truncated,executionTimeMs:d.executionTimeMs})}catch(t){if(t instanceof w){let e=Date.now()-r;return s.warn("search:timeout",{executionTimeMs:e}),a.NextResponse.json({success:!1,error:{code:"SEARCH_TIMEOUT",message:"Search timed out. Try a more specific query."}},{status:408})}let e=Date.now()-r;return s.error("search:error",{error:t instanceof Error?t.message:"Unknown error",executionTimeMs:e}),a.NextResponse.json({success:!1,error:{code:"INTERNAL_ERROR",message:"An error occurred while searching"}},{status:500})}}let D=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/worktrees/[id]/search/route",pathname:"/api/worktrees/[id]/search",filename:"route",bundlePath:"app/api/worktrees/[id]/search/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/search/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:A,staticGenerationAsyncStorage:S,serverHooks:M}=D,R="/api/worktrees/[id]/search/route";function _(){return(0,i.patchFetch)({serverHooks:M,staticGenerationAsyncStorage:S})}},81481:(e,t,r)=>{r.d(t,{Db:()=>a,Kc:()=>i,P7:()=>n,gp:()=>c});let n=[".png",".jpg",".jpeg",".gif",".webp",".svg"],o=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function s(e){return e?e.startsWith(".")?e.toLowerCase():"."+e.toLowerCase():""}function i(e){let t=s(e),r=o.find(e=>e.extension===t);return r?.mimeType||"application/octet-stream"}function a(e){if(!e)return!1;let t=s(e);return n.includes(t)}function c(e,t){if(t.length>5242880)return{valid:!1,error:"File size exceeds 5MB limit"};if(".svg"===s(e)){var r;return(r=t.toString("utf-8")).includes("<svg")||r.startsWith("<?xml")?/<script[\s>]/i.test(r)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(r)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(r)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(r)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(e,t){let r=s(e),n=o.find(e=>e.extension===r);if(!n?.magicBytes)return".svg"===r;let i=n.magicBytesOffset||0;return!(t.length<i+n.magicBytes.length)&&n.magicBytes.every((e,r)=>t[i+r]===e)}(e,t)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}},18163:(e,t,r)=>{r.d(t,{GT:()=>l,Lu:()=>u,W:()=>f,bB:()=>i,bS:()=>a,dq:()=>d});var n=r(20629),o=r(55315);let s=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],i={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function a(e){for(let t of s){if(t===e)return!0;if(t.startsWith("*.")){let r=t.slice(1);if(e.endsWith(r))return!0}if(t.endsWith(".*")){let r=t.slice(0,-2);if(e.startsWith(r+"."))return!0}}return!1}async function c(e){try{return(await (0,n.readdir)(e)).filter(e=>!a(e)).length}catch{return 0}}async function u(e,t=""){let r;let s=t?(0,o.join)(e,t):e;try{r=await (0,n.stat)(s)}catch{throw Error(`Directory not found: ${t||"(root)"}`)}if(!r.isDirectory())throw Error(`Path is not a directory: ${t}`);let u=await (0,n.readdir)(s),l=[];for(let e of u){if(a(e))continue;let t=(0,o.join)(s,e);try{let r=await (0,n.lstat)(t);if(r.isSymbolicLink())continue;if(r.isDirectory()){let r=await c(t);l.push({name:e,type:"directory",itemCount:r})}else if(r.isFile()){let t=(0,o.extname)(e),n={name:e,type:"file",size:r.size};t&&t.length>1&&(n.extension=t.slice(1)),l.push(n)}}catch{continue}if(l.length>=i.MAX_ITEMS_PER_DIR)break}let d=[...l].sort((e,t)=>e.type!==t.type?"directory"===e.type?-1:1:e.name.toLowerCase().localeCompare(t.name.toLowerCase())),f=null;if(t){let e=(0,o.dirname)(t);f="."===e?"":e}return{path:t,name:t?(0,o.basename)(t):"",items:d,parentPath:f}}function l(e){let t=e instanceof Error?e.message:"Unknown error";return t.includes("not found")?{error:"Directory not found",status:404}:t.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function d(e){return{error:`Worktree '${e}' not found`,status:404}}function f(e="Invalid path"){return{error:`Access denied: ${e}`,status:403}}},43895:(e,t,r)=>{r.d(t,{Y:()=>c,h:()=>u});var n=r(93346);let o=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/CM_AUTH_TOKEN=\S+/gi,replacement:"CM_AUTH_TOKEN=[REDACTED]"},{pattern:/MCBD_AUTH_TOKEN=\S+/gi,replacement:"MCBD_AUTH_TOKEN=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"}],s=/password|secret|token|key|auth/i,i={debug:0,info:1,warn:2,error:3};function a(e,t,r,a,c){let u=(0,n.LI)().level;if(i[e]<i[u])return;let l=a?function e(t){if("string"==typeof t){let e=t;for(let{pattern:t,replacement:r}of o)e=e.replace(t,r);return e}if("object"==typeof t&&null!==t){if(Array.isArray(t))return t.map(e);let r={};for(let[n,o]of Object.entries(t))s.test(n)?r[n]="[REDACTED]":r[n]=e(o);return r}return t}(a):void 0,d=function(e){if("json"===(0,n.LI)().format)return JSON.stringify(e);let{timestamp:t,level:r,module:o,action:s,data:i,worktreeId:a,cliToolId:c,requestId:u}=e,l=[a,c].filter(Boolean),d=l.length>0?` [${l.join(":")}]`:"",f=u?` (${u.slice(0,8)})`:"",p=i?` ${JSON.stringify(i)}`:"";return`[${t}] [${r.toUpperCase()}] [${o}]${d}${f} ${s}${p}`}({level:e,module:t,action:r,timestamp:new Date().toISOString(),...c,...l&&{data:l}});switch(e){case"error":console.error(d);break;case"warn":console.warn(d);break;default:console.log(d)}}function c(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function u(e){let t=r=>({debug:(t,n)=>a("debug",e,t,n,r),info:(t,n)=>a("info",e,t,n,r),warn:(t,n)=>a("warn",e,t,n,r),error:(t,n)=>a("error",e,t,n,r),withContext:e=>t({...r,...e})});return t()}},57440:(e,t,r)=>{r.d(t,{j:()=>s});var n=r(55315),o=r.n(n);function s(e,t){if(!e||""===e.trim()||e.includes("\0"))return!1;let r=e;try{r=decodeURIComponent(e)}catch{r=e}if(r.includes("\0"))return!1;let n=o().resolve(t),s=o().resolve(t,r),i=o().relative(n,s);return!(i.startsWith("..")||o().isAbsolute(i))}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425],()=>r(19496));module.exports=n})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=2702,e.ids=[2702],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},41306:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=2702,e.ids=[2702],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},41306:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>A,patchFetch:()=>b,requestAsyncStorage:()=>y,routeModule:()=>q,serverHooks:()=>k,staticGenerationAsyncStorage:()=>R});var s={};r.r(s),r.d(s,{POST:()=>$});var n=r(49303),o=r(88716),i=r(60670),a=r(87070),l=r(97425),u=r(75748),c=r(97213),d=r(59991),p=r(89194),m=r(25079),g=r(19377);let f=[/^[╭╮╰╯│─\s]+$/,/Claude Code v[\d.]+/,/^─{10,}$/,/^❯\s*$/,/^\s*$/,/CLAUDE_HOOKS_/,/\/bin\/claude/,/@.*\s+%/,/localhost/,/:3000/,/curl.*POST/,/export\s+/,/Tips for getting started/,/Welcome back/,/\?\s*for shortcuts/];async function h(e,t,r,s){try{let n;let o=(0,u.zl)(e,t,r),i=o?.lastCapturedLine||0;try{n=await (0,p.NA)(t,r,1e4)}catch{return console.log(`[savePendingAssistantResponse] Failed to capture session output for ${t}`),null}if(!n)return null;let a=n.split("\n"),l=a.length,{bufferReset:c,reason:h}=l>0&&i>25&&l+25<i?{bufferReset:!0,reason:"shrink"}:l>0&&i>50&&l<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};if(c&&console.log(`[savePendingAssistantResponse] Buffer reset detected (${h}): current=${l}, last=${i}`),!c&&l<=i)return console.log(`[savePendingAssistantResponse] No new output (current: ${l}, last: ${i})`),null;let x=a.slice(c?0:i).join("\n"),w="claude"===r?function(e,t){if(!e||""===e.trim())return"";if("claude"!==t)return e.trim();let r=(0,g.vp)(e).split("\n"),s=r.length;for(let e=r.length-1;e>=0;e--)if(/^❯\s+\S/.test(r[e])){s=e;break}return r.slice(0,s).filter(e=>{let t=e.trim();return!!t&&!f.some(e=>e.test(t))}).join("\n").trim()}(x,r):function(e,t){switch(t){case"claude":return(0,d.ci)(e);case"gemini":return(0,d.RJ)(e);default:return e.trim()}}(x,r);if(!w||""===w.trim())return(0,u.IH)(e,t,r,l),console.log(`[savePendingAssistantResponse] Cleaned response is empty, updating position to ${l}`),null;let v=new Date(s.getTime()-1),$=(0,u.tn)(e,{worktreeId:t,role:"assistant",content:w,messageType:"normal",timestamp:v,cliToolId:r});return(0,u.IH)(e,t,r,l),(0,m.ps)("message",{worktreeId:t,message:$}),console.log(`[savePendingAssistantResponse] Saved assistant response (lines ${i}-${l})`),$}catch(e){return console.error("[savePendingAssistantResponse] Error:",e),null}}var x=r(3979);let w=["claude","codex","gemini"];function v(e){return e instanceof Error?e.message:"Unknown error"}async function $(e,{params:t}){try{let r=(0,l.n)(),s=(0,u.gU)(r,t.id);if(!s)return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let n=await e.json();if(!n.content||"string"!=typeof n.content||""===n.content.trim())return a.NextResponse.json({error:"Message content is required and must be a non-empty string"},{status:400});let o=n.cliToolId||s.cliToolId||"claude";if(!w.includes(o))return a.NextResponse.json({error:`Invalid CLI tool ID: ${o}. Must be one of: ${w.join(", ")}`},{status:400});let i=c.g.getInstance().getTool(o);if(!await i.isInstalled())return a.NextResponse.json({error:`${i.name} is not installed. Please install it first.`},{status:503});if(!await i.isRunning(t.id))try{await i.startSession(t.id,s.path);let e=(0,u.Q7)(r,t.id);if(null===e)try{let e=await (0,x.v)(s.path,null);"(unknown)"!==e.currentBranch&&"(detached HEAD)"!==e.currentBranch&&((0,u.Ek)(r,t.id,e.currentBranch),console.log(`[send] Saved initial branch for ${t.id}: ${e.currentBranch}`))}catch(e){console.error("[send] Failed to get/save initial branch:",e)}}catch(e){return console.error(`Failed to start ${i.name} session:`,e),a.NextResponse.json({error:`Failed to start ${i.name} session: ${v(e)}`},{status:500})}let p=new Date;try{await h(r,t.id,o,p)}catch(e){console.error("[send] Failed to save pending assistant response:",e)}try{await i.sendMessage(t.id,n.content)}catch(e){return console.error(`Failed to send message to ${i.name}:`,e),a.NextResponse.json({error:`Failed to send message to ${i.name}: ${v(e)}`},{status:500})}let m=(0,u.tn)(r,{worktreeId:t.id,role:"user",content:n.content,messageType:"normal",timestamp:p,cliToolId:o});return(0,u.OK)(r,t.id,n.content,p),(0,u.Mf)(r,t.id,o),console.log(`✓ Cleared in-progress message for ${t.id} (${o})`),(0,d.cn)(t.id,o),a.NextResponse.json(m,{status:201})}catch(e){return console.error("Error sending message:",e),a.NextResponse.json({error:"Failed to send message"},{status:500})}}let q=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/send/route",pathname:"/api/worktrees/[id]/send",filename:"route",bundlePath:"app/api/worktrees/[id]/send/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/send/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:y,staticGenerationAsyncStorage:R,serverHooks:k}=q,A="/api/worktrees/[id]/send/route";function b(){return(0,i.patchFetch)({serverHooks:k,staticGenerationAsyncStorage:R})}},3979:(e,t,r)=>{r.d(t,{v:()=>i});var s=r(61282);let n=(0,r(21764).promisify)(s.execFile);async function o(e,t){try{let{stdout:r}=await n("git",e,{cwd:t,timeout:1e3});return r.trim()}catch(t){return console.error("[git-utils] Git command failed:",{args:e,error:t instanceof Error?t.message:"Unknown error"}),null}}async function i(e,t){let r;let s=await o(["rev-parse","--abbrev-ref","HEAD"],e);r=null===s?"(unknown)":"HEAD"===s?"(detached HEAD)":s;let n=await o(["rev-parse","--short","HEAD"],e),i=await o(["status","--porcelain"],e);return{currentBranch:r,initialBranch:t,isBranchMismatch:null!==t&&"(unknown)"!==r&&"(detached HEAD)"!==r&&r!==t,commitHash:n??"(unknown)",isDirty:null!==i&&i.length>0}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8948,5972,3853,4893,7425,7213,1528,9723],()=>r(41306));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=7479,e.ids=[7479],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},88424:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>y,requestAsyncStorage:()=>h,routeModule:()=>f,serverHooks:()=>w,staticGenerationAsyncStorage:()=>g});var a={};r.r(a),r.d(a,{GET:()=>p});var n=r(49303),o=r(88716),s=r(60670),d=r(87070),i=r(97425),c=r(75748),l=r(53013),u=r(38056);let m=[{name:"clear",description:"Clear conversation history",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"compact",description:"Compact context to reduce token usage",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"resume",description:"Resume previous conversation",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"rewind",description:"Rewind to previous conversation state",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"config",description:"Open configuration settings",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"model",description:"Switch AI model",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"permissions",description:"View or update tool permissions",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"status",description:"Check session status",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"context",description:"Show context window usage",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"cost",description:"Display token and cost usage",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"review",description:"Review code changes",category:"standard-git",isStandard:!0,source:"standard",filePath:""},{name:"pr-comments",description:"Show PR comments",category:"standard-git",isStandard:!0,source:"standard",filePath:""},{name:"help",description:"Show all available commands",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"doctor",description:"Check installation health",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"export",description:"Export conversation history",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"todos",description:"Show TODO list",category:"standard-util",isStandard:!0,source:"standard",filePath:""}];async function p(e,{params:t}){try{var r;let{id:e}=await t,a=(0,i.n)(),n=(0,c.gU)(a,e);if(!n)return d.NextResponse.json({error:"Worktree not found"},{status:404});if(!(!(!(r=n.path)||""===r.trim()||r.includes(".."))&&r.startsWith("/")&&(function(){let e=process.env.ALLOWED_WORKTREE_PATHS;return e?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):["/Users","/home","/var","/tmp","/opt"]})().some(e=>r.startsWith(e))))return console.error(`[slash-commands API] Invalid worktree path detected: ${e}`),d.NextResponse.json({error:"Invalid worktree configuration"},{status:400});let o=(0,u.Xr)(m),s=[];try{s=await (0,l.HL)(n.path)}catch(e){console.warn(`[slash-commands API] Could not load worktree commands: ${e}`),s=[]}let p=(0,u.Nw)(o,s),f=m.length,h=(0,u.SU)(s);return d.NextResponse.json({groups:p,sources:{standard:f,worktree:h,mcbd:0}})}catch(e){return console.error("[slash-commands API] Error:",e),d.NextResponse.json({error:"Failed to load slash commands"},{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/slash-commands/route",pathname:"/api/worktrees/[id]/slash-commands",filename:"route",bundlePath:"app/api/worktrees/[id]/slash-commands/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/slash-commands/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:h,staticGenerationAsyncStorage:g,serverHooks:w}=f,v="/api/worktrees/[id]/slash-commands/route";function y(){return(0,s.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:g})}},38056:(e,t,r)=>{r.d(t,{Nw:()=>s,SU:()=>d,Xr:()=>o});var a=r(35835);let n=["planning","development","review","documentation","workflow","standard-session","standard-config","standard-monitor","standard-git","standard-util"];function o(e){if(0===e.length)return[];let t=new Map;for(let r of e){let e=t.get(r.category)||[];e.push(r),t.set(r.category,e)}let r=[];for(let e of n){let n=t.get(e);n&&n.length>0&&r.push({category:e,label:a.H[e],commands:n})}for(let[e,o]of t)!n.includes(e)&&o.length>0&&r.push({category:e,label:a.H[e]||e,commands:o});return r}function s(e,t){let r=new Map;for(let t of e)for(let e of t.commands)r.set(e.name,{...e,source:e.source||"standard"});for(let e of t)for(let t of e.commands)r.set(t.name,{...t,source:t.source||"worktree"});return o(Array.from(r.values()))}function d(e){return e.reduce((e,t)=>e+t.commands.length,0)}},53013:(e,t,r)=>{r.d(t,{HL:()=>u});var a=r(92048),n=r(55315),o=r(3673),s=r.n(o),d=r(35835),i=r(38056);let c=null;async function l(e){let t=function(e){let t=e||process.cwd();return n.join(t,".claude","commands")}(e);if(!a.existsSync(t))return console.warn(`Commands directory not found: ${t}`),[];let r=a.readdirSync(t).filter(e=>e.endsWith(".md")),o=[];for(let e of r){let r=function(e){try{let t=a.readFileSync(e,"utf-8"),{data:r}=s()(t),o=n.basename(e,".md"),i=d.c[o]||"workflow";return{name:o,description:r.description||"",category:i,model:r.model,filePath:n.relative(process.cwd(),e)}}catch(t){return console.error(`Error parsing command file ${e}:`,t),null}}(n.join(t,e));r&&o.push(r)}return o.sort((e,t)=>e.name.localeCompare(t.name)),c=o,o}async function u(e){let t=e?await l(e):c||await l();return(0,i.Xr)(t)}},35835:(e,t,r)=>{r.d(t,{H:()=>a,c:()=>n});let a={planning:"Planning",development:"Development",review:"Review",documentation:"Documentation",workflow:"Workflow","standard-session":"Standard (Session)","standard-config":"Standard (Config)","standard-monitor":"Standard (Monitor)","standard-git":"Standard (Git)","standard-util":"Standard (Utility)"},n={"work-plan":"planning","issue-create":"planning","issue-split":"planning","design-policy":"planning","tdd-impl":"development","bug-fix":"development",refactoring:"development","architecture-review":"review","acceptance-test":"review","progress-report":"documentation","create-pr":"workflow","pm-auto-dev":"workflow"}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8948,5972,3673,7425],()=>r(88424));module.exports=a})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=7479,e.ids=[7479],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},88424:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>y,requestAsyncStorage:()=>h,routeModule:()=>f,serverHooks:()=>w,staticGenerationAsyncStorage:()=>g});var a={};r.r(a),r.d(a,{GET:()=>p});var n=r(49303),o=r(88716),s=r(60670),d=r(87070),i=r(97425),c=r(75748),l=r(53013),u=r(38056);let m=[{name:"clear",description:"Clear conversation history",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"compact",description:"Compact context to reduce token usage",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"resume",description:"Resume previous conversation",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"rewind",description:"Rewind to previous conversation state",category:"standard-session",isStandard:!0,source:"standard",filePath:""},{name:"config",description:"Open configuration settings",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"model",description:"Switch AI model",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"permissions",description:"View or update tool permissions",category:"standard-config",isStandard:!0,source:"standard",filePath:""},{name:"status",description:"Check session status",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"context",description:"Show context window usage",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"cost",description:"Display token and cost usage",category:"standard-monitor",isStandard:!0,source:"standard",filePath:""},{name:"review",description:"Review code changes",category:"standard-git",isStandard:!0,source:"standard",filePath:""},{name:"pr-comments",description:"Show PR comments",category:"standard-git",isStandard:!0,source:"standard",filePath:""},{name:"help",description:"Show all available commands",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"doctor",description:"Check installation health",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"export",description:"Export conversation history",category:"standard-util",isStandard:!0,source:"standard",filePath:""},{name:"todos",description:"Show TODO list",category:"standard-util",isStandard:!0,source:"standard",filePath:""}];async function p(e,{params:t}){try{var r;let{id:e}=await t,a=(0,i.n)(),n=(0,c.gU)(a,e);if(!n)return d.NextResponse.json({error:"Worktree not found"},{status:404});if(!(!(!(r=n.path)||""===r.trim()||r.includes(".."))&&r.startsWith("/")&&(function(){let e=process.env.ALLOWED_WORKTREE_PATHS;return e?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):["/Users","/home","/var","/tmp","/opt"]})().some(e=>r.startsWith(e))))return console.error(`[slash-commands API] Invalid worktree path detected: ${e}`),d.NextResponse.json({error:"Invalid worktree configuration"},{status:400});let o=(0,u.Xr)(m),s=[];try{s=await (0,l.HL)(n.path)}catch(e){console.warn(`[slash-commands API] Could not load worktree commands: ${e}`),s=[]}let p=(0,u.Nw)(o,s),f=m.length,h=(0,u.SU)(s);return d.NextResponse.json({groups:p,sources:{standard:f,worktree:h,mcbd:0}})}catch(e){return console.error("[slash-commands API] Error:",e),d.NextResponse.json({error:"Failed to load slash commands"},{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/slash-commands/route",pathname:"/api/worktrees/[id]/slash-commands",filename:"route",bundlePath:"app/api/worktrees/[id]/slash-commands/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/slash-commands/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:h,staticGenerationAsyncStorage:g,serverHooks:w}=f,v="/api/worktrees/[id]/slash-commands/route";function y(){return(0,s.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:g})}},38056:(e,t,r)=>{r.d(t,{Nw:()=>s,SU:()=>d,Xr:()=>o});var a=r(35835);let n=["planning","development","review","documentation","workflow","standard-session","standard-config","standard-monitor","standard-git","standard-util"];function o(e){if(0===e.length)return[];let t=new Map;for(let r of e){let e=t.get(r.category)||[];e.push(r),t.set(r.category,e)}let r=[];for(let e of n){let n=t.get(e);n&&n.length>0&&r.push({category:e,label:a.H[e],commands:n})}for(let[e,o]of t)!n.includes(e)&&o.length>0&&r.push({category:e,label:a.H[e]||e,commands:o});return r}function s(e,t){let r=new Map;for(let t of e)for(let e of t.commands)r.set(e.name,{...e,source:e.source||"standard"});for(let e of t)for(let t of e.commands)r.set(t.name,{...t,source:t.source||"worktree"});return o(Array.from(r.values()))}function d(e){return e.reduce((e,t)=>e+t.commands.length,0)}},53013:(e,t,r)=>{r.d(t,{HL:()=>u});var a=r(92048),n=r(55315),o=r(3673),s=r.n(o),d=r(35835),i=r(38056);let c=null;async function l(e){let t=function(e){let t=e||process.cwd();return n.join(t,".claude","commands")}(e);if(!a.existsSync(t))return console.warn(`Commands directory not found: ${t}`),[];let r=a.readdirSync(t).filter(e=>e.endsWith(".md")),o=[];for(let e of r){let r=function(e){try{let t=a.readFileSync(e,"utf-8"),{data:r}=s()(t),o=n.basename(e,".md"),i=d.c[o]||"workflow";return{name:o,description:r.description||"",category:i,model:r.model,filePath:n.relative(process.cwd(),e)}}catch(t){return console.error(`Error parsing command file ${e}:`,t),null}}(n.join(t,e));r&&o.push(r)}return o.sort((e,t)=>e.name.localeCompare(t.name)),c=o,o}async function u(e){let t=e?await l(e):c||await l();return(0,i.Xr)(t)}},35835:(e,t,r)=>{r.d(t,{H:()=>a,c:()=>n});let a={planning:"Planning",development:"Development",review:"Review",documentation:"Documentation",workflow:"Workflow","standard-session":"Standard (Session)","standard-config":"Standard (Config)","standard-monitor":"Standard (Monitor)","standard-git":"Standard (Git)","standard-util":"Standard (Utility)"},n={"work-plan":"planning","issue-create":"planning","issue-split":"planning","design-policy":"planning","tdd-impl":"development","bug-fix":"development",refactoring:"development","architecture-review":"review","acceptance-test":"review","progress-report":"documentation","create-pr":"workflow","pm-auto-dev":"workflow"}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8948,5972,3673,7425],()=>r(88424));module.exports=a})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=9086,e.ids=[9086],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},51057:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>f,requestAsyncStorage:()=>x,routeModule:()=>c,serverHooks:()=>q,staticGenerationAsyncStorage:()=>g});var o={};t.r(o),t.d(o,{POST:()=>d});var s=t(49303),i=t(88716),n=t(60670),p=t(87070),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=9086,e.ids=[9086],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},51057:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>f,requestAsyncStorage:()=>x,routeModule:()=>c,serverHooks:()=>q,staticGenerationAsyncStorage:()=>g});var o={};t.r(o),t.d(o,{POST:()=>d});var s=t(49303),i=t(88716),n=t(60670),p=t(87070),u=t(97425),a=t(75748),l=t(59991);async function d(e,{params:r}){try{let t=(0,u.n)();if(!(0,a.gU)(t,r.id))return p.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let o=await e.json(),s=["claude","codex","gemini"];if(!o.cliToolId||!s.includes(o.cliToolId))return p.NextResponse.json({error:`Invalid CLI tool ID. Must be one of: ${s.join(", ")}`},{status:400});return console.log(`[API] Manually starting polling for ${r.id} (${o.cliToolId})`),(0,l.cn)(r.id,o.cliToolId),p.NextResponse.json({success:!0,message:`Started polling for ${o.cliToolId} session`})}catch(e){return console.error("Error starting polling:",e),p.NextResponse.json({error:"Failed to start polling"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/start-polling/route",pathname:"/api/worktrees/[id]/start-polling",filename:"route",bundlePath:"app/api/worktrees/[id]/start-polling/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/start-polling/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:x,staticGenerationAsyncStorage:g,serverHooks:q}=c,m="/api/worktrees/[id]/start-polling/route";function f(){return(0,n.patchFetch)({serverHooks:q,staticGenerationAsyncStorage:g})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,3853,4893,7425,7213,1528,9723],()=>t(51057));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=8347,e.ids=[8347],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},74097:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>h,serverHooks:()=>y,staticGenerationAsyncStorage:()=>m});var o={};r.r(o),r.d(o,{GET:()=>p});var n=r(49303),i=r(88716),s=r(60670),a=r(87070),u=r(97425),d=r(75748),c=r(18163),l=r(57440);async function p(e,{params:t}){try{let e=(0,u.n)(),r=(0,d.gU)(e,t.id);if(!r){let e=(0,c.dq)(t.id);return a.NextResponse.json({error:e.error},{status:e.status})}let o=t.path.join("/");if(t.path.some(e=>{let t=function(e){try{return decodeURIComponent(e)}catch{return e}}(e);return(0,c.bS)(t)})){let e=(0,c.W)("Path contains excluded pattern");return a.NextResponse.json({error:e.error},{status:e.status})}if(!(0,l.j)(o,r.path)){let e=(0,c.W)("Invalid path");return a.NextResponse.json({error:e.error},{status:e.status})}let n=await (0,c.Lu)(r.path,o);return a.NextResponse.json(n)}catch(t){console.error("Error reading directory:",t);let e=(0,c.GT)(t);return a.NextResponse.json({error:e.error},{status:e.status})}}let h=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/tree/[...path]/route",pathname:"/api/worktrees/[id]/tree/[...path]",filename:"route",bundlePath:"app/api/worktrees/[id]/tree/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/tree/[...path]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:m,serverHooks:y}=h,v="/api/worktrees/[id]/tree/[...path]/route";function x(){return(0,s.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:m})}},18163:(e,t,r)=>{r.d(t,{GT:()=>c,Lu:()=>d,W:()=>p,bB:()=>s,bS:()=>a,dq:()=>l});var o=r(20629),n=r(55315);let i=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],s={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function a(e){for(let t of i){if(t===e)return!0;if(t.startsWith("*.")){let r=t.slice(1);if(e.endsWith(r))return!0}if(t.endsWith(".*")){let r=t.slice(0,-2);if(e.startsWith(r+"."))return!0}}return!1}async function u(e){try{return(await (0,o.readdir)(e)).filter(e=>!a(e)).length}catch{return 0}}async function d(e,t=""){let r;let i=t?(0,n.join)(e,t):e;try{r=await (0,o.stat)(i)}catch{throw Error(`Directory not found: ${t||"(root)"}`)}if(!r.isDirectory())throw Error(`Path is not a directory: ${t}`);let d=await (0,o.readdir)(i),c=[];for(let e of d){if(a(e))continue;let t=(0,n.join)(i,e);try{let r=await (0,o.lstat)(t);if(r.isSymbolicLink())continue;if(r.isDirectory()){let r=await u(t);c.push({name:e,type:"directory",itemCount:r})}else if(r.isFile()){let t=(0,n.extname)(e),o={name:e,type:"file",size:r.size};t&&t.length>1&&(o.extension=t.slice(1)),c.push(o)}}catch{continue}if(c.length>=s.MAX_ITEMS_PER_DIR)break}let l=[...c].sort((e,t)=>e.type!==t.type?"directory"===e.type?-1:1:e.name.toLowerCase().localeCompare(t.name.toLowerCase())),p=null;if(t){let e=(0,n.dirname)(t);p="."===e?"":e}return{path:t,name:t?(0,n.basename)(t):"",items:l,parentPath:p}}function c(e){let t=e instanceof Error?e.message:"Unknown error";return t.includes("not found")?{error:"Directory not found",status:404}:t.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function l(e){return{error:`Worktree '${e}' not found`,status:404}}function p(e="Invalid path"){return{error:`Access denied: ${e}`,status:403}}},57440:(e,t,r)=>{r.d(t,{j:()=>i});var o=r(55315),n=r.n(o);function i(e,t){if(!e||""===e.trim()||e.includes("\0"))return!1;let r=e;try{r=decodeURIComponent(e)}catch{r=e}if(r.includes("\0"))return!1;let o=n().resolve(t),i=n().resolve(t,r),s=n().relative(o,i);return!(s.startsWith("..")||n().isAbsolute(s))}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425],()=>r(74097));module.exports=o})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=8347,e.ids=[8347],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},74097:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>h,serverHooks:()=>y,staticGenerationAsyncStorage:()=>m});var o={};r.r(o),r.d(o,{GET:()=>p});var n=r(49303),i=r(88716),s=r(60670),a=r(87070),u=r(97425),d=r(75748),c=r(18163),l=r(57440);async function p(e,{params:t}){try{let e=(0,u.n)(),r=(0,d.gU)(e,t.id);if(!r){let e=(0,c.dq)(t.id);return a.NextResponse.json({error:e.error},{status:e.status})}let o=t.path.join("/");if(t.path.some(e=>{let t=function(e){try{return decodeURIComponent(e)}catch{return e}}(e);return(0,c.bS)(t)})){let e=(0,c.W)("Path contains excluded pattern");return a.NextResponse.json({error:e.error},{status:e.status})}if(!(0,l.j)(o,r.path)){let e=(0,c.W)("Invalid path");return a.NextResponse.json({error:e.error},{status:e.status})}let n=await (0,c.Lu)(r.path,o);return a.NextResponse.json(n)}catch(t){console.error("Error reading directory:",t);let e=(0,c.GT)(t);return a.NextResponse.json({error:e.error},{status:e.status})}}let h=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/tree/[...path]/route",pathname:"/api/worktrees/[id]/tree/[...path]",filename:"route",bundlePath:"app/api/worktrees/[id]/tree/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/tree/[...path]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:m,serverHooks:y}=h,v="/api/worktrees/[id]/tree/[...path]/route";function x(){return(0,s.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:m})}},18163:(e,t,r)=>{r.d(t,{GT:()=>c,Lu:()=>d,W:()=>p,bB:()=>s,bS:()=>a,dq:()=>l});var o=r(20629),n=r(55315);let i=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],s={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function a(e){for(let t of i){if(t===e)return!0;if(t.startsWith("*.")){let r=t.slice(1);if(e.endsWith(r))return!0}if(t.endsWith(".*")){let r=t.slice(0,-2);if(e.startsWith(r+"."))return!0}}return!1}async function u(e){try{return(await (0,o.readdir)(e)).filter(e=>!a(e)).length}catch{return 0}}async function d(e,t=""){let r;let i=t?(0,n.join)(e,t):e;try{r=await (0,o.stat)(i)}catch{throw Error(`Directory not found: ${t||"(root)"}`)}if(!r.isDirectory())throw Error(`Path is not a directory: ${t}`);let d=await (0,o.readdir)(i),c=[];for(let e of d){if(a(e))continue;let t=(0,n.join)(i,e);try{let r=await (0,o.lstat)(t);if(r.isSymbolicLink())continue;if(r.isDirectory()){let r=await u(t);c.push({name:e,type:"directory",itemCount:r})}else if(r.isFile()){let t=(0,n.extname)(e),o={name:e,type:"file",size:r.size};t&&t.length>1&&(o.extension=t.slice(1)),c.push(o)}}catch{continue}if(c.length>=s.MAX_ITEMS_PER_DIR)break}let l=[...c].sort((e,t)=>e.type!==t.type?"directory"===e.type?-1:1:e.name.toLowerCase().localeCompare(t.name.toLowerCase())),p=null;if(t){let e=(0,n.dirname)(t);p="."===e?"":e}return{path:t,name:t?(0,n.basename)(t):"",items:l,parentPath:p}}function c(e){let t=e instanceof Error?e.message:"Unknown error";return t.includes("not found")?{error:"Directory not found",status:404}:t.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function l(e){return{error:`Worktree '${e}' not found`,status:404}}function p(e="Invalid path"){return{error:`Access denied: ${e}`,status:403}}},57440:(e,t,r)=>{r.d(t,{j:()=>i});var o=r(55315),n=r.n(o);function i(e,t){if(!e||""===e.trim()||e.includes("\0"))return!1;let r=e;try{r=decodeURIComponent(e)}catch{r=e}if(r.includes("\0"))return!1;let o=n().resolve(t),i=n().resolve(t,r),s=n().relative(o,i);return!(s.startsWith("..")||n().isAbsolute(s))}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425],()=>r(74097));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=6392,e.ids=[6392],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},36658:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=6392,e.ids=[6392],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},36658:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>p,serverHooks:()=>m,staticGenerationAsyncStorage:()=>h});var o={};r.r(o),r.d(o,{GET:()=>l});var n=r(49303),i=r(88716),s=r(60670),a=r(87070),u=r(97425),d=r(75748),c=r(18163);async function l(e,{params:t}){try{let e=(0,u.n)(),r=(0,d.gU)(e,t.id);if(!r){let e=(0,c.dq)(t.id);return a.NextResponse.json({error:e.error},{status:e.status})}let o=await (0,c.Lu)(r.path);return a.NextResponse.json(o)}catch(t){console.error("Error reading directory:",t);let e=(0,c.GT)(t);return a.NextResponse.json({error:e.error},{status:e.status})}}let p=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/tree/route",pathname:"/api/worktrees/[id]/tree",filename:"route",bundlePath:"app/api/worktrees/[id]/tree/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/tree/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:h,serverHooks:m}=p,y="/api/worktrees/[id]/tree/route";function x(){return(0,s.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:h})}},18163:(e,t,r)=>{r.d(t,{GT:()=>c,Lu:()=>d,W:()=>p,bB:()=>s,bS:()=>a,dq:()=>l});var o=r(20629),n=r(55315);let i=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],s={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function a(e){for(let t of i){if(t===e)return!0;if(t.startsWith("*.")){let r=t.slice(1);if(e.endsWith(r))return!0}if(t.endsWith(".*")){let r=t.slice(0,-2);if(e.startsWith(r+"."))return!0}}return!1}async function u(e){try{return(await (0,o.readdir)(e)).filter(e=>!a(e)).length}catch{return 0}}async function d(e,t=""){let r;let i=t?(0,n.join)(e,t):e;try{r=await (0,o.stat)(i)}catch{throw Error(`Directory not found: ${t||"(root)"}`)}if(!r.isDirectory())throw Error(`Path is not a directory: ${t}`);let d=await (0,o.readdir)(i),c=[];for(let e of d){if(a(e))continue;let t=(0,n.join)(i,e);try{let r=await (0,o.lstat)(t);if(r.isSymbolicLink())continue;if(r.isDirectory()){let r=await u(t);c.push({name:e,type:"directory",itemCount:r})}else if(r.isFile()){let t=(0,n.extname)(e),o={name:e,type:"file",size:r.size};t&&t.length>1&&(o.extension=t.slice(1)),c.push(o)}}catch{continue}if(c.length>=s.MAX_ITEMS_PER_DIR)break}let l=[...c].sort((e,t)=>e.type!==t.type?"directory"===e.type?-1:1:e.name.toLowerCase().localeCompare(t.name.toLowerCase())),p=null;if(t){let e=(0,n.dirname)(t);p="."===e?"":e}return{path:t,name:t?(0,n.basename)(t):"",items:l,parentPath:p}}function c(e){let t=e instanceof Error?e.message:"Unknown error";return t.includes("not found")?{error:"Directory not found",status:404}:t.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function l(e){return{error:`Worktree '${e}' not found`,status:404}}function p(e="Invalid path"){return{error:`Access denied: ${e}`,status:403}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425],()=>r(36658));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=1210,e.ids=[1210],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},14276:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>L,requestAsyncStorage:()=>g,routeModule:()=>N,serverHooks:()=>_,staticGenerationAsyncStorage:()=>T});var i={};r.r(i),r.d(i,{POST:()=>E});var a=r(49303),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=1210,e.ids=[1210],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},14276:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>L,requestAsyncStorage:()=>g,routeModule:()=>N,serverHooks:()=>_,staticGenerationAsyncStorage:()=>T});var i={};r.r(i),r.d(i,{POST:()=>E});var a=r(49303),o=r(88716),n=r(60670),s=r(87070),l=r(97425),p=r(75748),u=r(55315),m=r(57440),d=r(68585);let c=[{extension:".png",maxFileSize:5242880,allowedMimeTypes:["image/png"],magicBytes:[{bytes:[137,80,78,71,13,10,26,10]}]},{extension:".jpg",maxFileSize:5242880,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".jpeg",maxFileSize:5242880,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".gif",maxFileSize:5242880,allowedMimeTypes:["image/gif"],magicBytes:[{bytes:[71,73,70,56,55,97]},{bytes:[71,73,70,56,57,97]}]},{extension:".webp",maxFileSize:5242880,allowedMimeTypes:["image/webp"],magicBytes:[{bytes:[82,73,70,70],offset:0}]},{extension:".txt",maxFileSize:5242880,allowedMimeTypes:["text/plain"]},{extension:".log",maxFileSize:5242880,allowedMimeTypes:["text/plain"]},{extension:".md",maxFileSize:5242880,allowedMimeTypes:["text/markdown","text/plain"]},{extension:".csv",maxFileSize:5242880,allowedMimeTypes:["text/csv"]},{extension:".json",maxFileSize:5242880,allowedMimeTypes:["application/json"]},{extension:".yaml",maxFileSize:5242880,allowedMimeTypes:["text/yaml","application/x-yaml"]},{extension:".yml",maxFileSize:5242880,allowedMimeTypes:["text/yaml","application/x-yaml"]}],I=c.map(e=>e.extension);function x(e){let t=e.toLowerCase();return c.find(e=>e.extension===t)}let y={FILE_NOT_FOUND:404,WORKTREE_NOT_FOUND:404,PERMISSION_DENIED:403,INVALID_PATH:400,INVALID_REQUEST:400,FILE_EXISTS:409,DISK_FULL:507,INTERNAL_ERROR:500,INVALID_EXTENSION:400,INVALID_MIME_TYPE:400,INVALID_MAGIC_BYTES:400,FILE_TOO_LARGE:413,INVALID_FILENAME:400,INVALID_FILE_CONTENT:400};function f(e,t,r=500){if("string"==typeof e){let i=y[e]??r;return s.NextResponse.json({success:!1,error:{code:e,message:t}},{status:i})}let i=e.error?.code??"INTERNAL_ERROR",a=e.error?.message??"Unknown error",o=y[i]??r;return s.NextResponse.json({success:!1,error:{code:i,message:a}},{status:o})}async function E(e,{params:t}){try{let i;let a=(0,l.n)(),o=(0,p.gU)(a,t.id);if(!o)return f("WORKTREE_NOT_FOUND","Worktree not found");let n=t.path.join("/"),c=(0,u.normalize)(n);if(!(0,m.j)(c,o.path))return f("INVALID_PATH","Invalid file path");try{i=await e.formData()}catch{return f("INVALID_REQUEST","Invalid form data",400)}let y=i.get("file");if(!y||!(y instanceof File))return f("INVALID_REQUEST","File is required",400);let E=y.name,N=y.type,g=y.size,T=(0,u.extname)(E).toLowerCase();if(!function(e){if(!e)return!1;let t=e.toLowerCase();return I.includes(t)}(T))return f((0,d.wZ)("INVALID_EXTENSION"));if(!function(e,t){let r=x(e);return r?.allowedMimeTypes.includes(t)??!1}(T,N))return f((0,d.wZ)("INVALID_MIME_TYPE"));let _=await y.arrayBuffer(),w=Buffer.from(_);if(!function(e,t){let r=x(e);return!r?.magicBytes||0===r.magicBytes.length||r.magicBytes.some(e=>{let r=e.offset??0;return!(t.length<r+e.bytes.length)&&e.bytes.every((e,i)=>t[r+i]===e)})}(T,w))return f((0,d.wZ)("INVALID_MAGIC_BYTES"));let L=function(e){let t=x(e);return t?.maxFileSize??5242880}(T);if(g>L)return f((0,d.wZ)("FILE_TOO_LARGE"));if(!(0,d.TG)(E,{forUpload:!0}).valid)return f((0,d.wZ)("INVALID_FILENAME"));if(".yaml"===T||".yml"===T){var r;if(r=w.toString("utf-8"),[/!ruby\/object/i,/!python\/object/i,/!!python/i,/!!ruby/i,/!<tag:yaml\.org,2002:python/i,/!<tag:yaml\.org,2002:ruby/i].some(e=>e.test(r)))return f((0,d.wZ)("INVALID_FILE_CONTENT"))}if(".json"===T){let e=w.toString("utf-8");if(!function(e){try{return JSON.parse(e),!0}catch{return!1}}(e))return f((0,d.wZ)("INVALID_FILE_CONTENT"))}let A=c?`${c}/${E}`:E,F=await (0,d.Kr)(o.path,A,w);if(!F.success)return f(F);return s.NextResponse.json({success:!0,path:F.path,filename:E,size:F.size},{status:201})}catch(e){return console.error("Error uploading file:",e),f("INTERNAL_ERROR","Failed to upload file")}}let N=new a.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/upload/[...path]/route",pathname:"/api/worktrees/[id]/upload/[...path]",filename:"route",bundlePath:"app/api/worktrees/[id]/upload/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/upload/[...path]/route.ts",nextConfigOutput:"",userland:i}),{requestAsyncStorage:g,staticGenerationAsyncStorage:T,serverHooks:_}=N,w="/api/worktrees/[id]/upload/[...path]/route";function L(){return(0,n.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:T})}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8948,5972,7425,8585],()=>r(14276));module.exports=i})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=5652,e.ids=[5652],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},62214:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>m,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var o={};t.r(o),t.d(o,{PATCH:()=>p});var s=t(49303),i=t(88716),a=t(60670),n=t(87070),u=t(97425),d=t(75748);async function p(e,{params:r}){try{let e=(0,u.n)();if(!(0,d.gU)(e,r.id))return n.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let t=new Date;return(0,d.Of)(e,r.id,t),console.log(`[viewed] Marked worktree ${r.id} as viewed at ${t.toISOString()}`),n.NextResponse.json({success:!0},{status:200})}catch(e){return console.error("Error updating viewed status:",e),n.NextResponse.json({error:"Failed to update viewed status"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/viewed/route",pathname:"/api/worktrees/[id]/viewed",filename:"route",bundlePath:"app/api/worktrees/[id]/viewed/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/viewed/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:w,serverHooks:v}=c,x="/api/worktrees/[id]/viewed/route";function m(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(62214));module.exports=o})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=5652,e.ids=[5652],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},62214:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>m,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var o={};t.r(o),t.d(o,{PATCH:()=>p});var s=t(49303),i=t(88716),a=t(60670),n=t(87070),u=t(97425),d=t(75748);async function p(e,{params:r}){try{let e=(0,u.n)();if(!(0,d.gU)(e,r.id))return n.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let t=new Date;return(0,d.Of)(e,r.id,t),console.log(`[viewed] Marked worktree ${r.id} as viewed at ${t.toISOString()}`),n.NextResponse.json({success:!0},{status:200})}catch(e){return console.error("Error updating viewed status:",e),n.NextResponse.json({error:"Failed to update viewed status"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/viewed/route",pathname:"/api/worktrees/[id]/viewed",filename:"route",bundlePath:"app/api/worktrees/[id]/viewed/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/viewed/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:w,serverHooks:v}=c,x="/api/worktrees/[id]/viewed/route";function m(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(62214));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=3058,e.ids=[3058],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},17679:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>k,patchFetch:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3058,e.ids=[3058],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},17679:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>k,patchFetch:()=>q,requestAsyncStorage:()=>w,routeModule:()=>h,serverHooks:()=>v,staticGenerationAsyncStorage:()=>f});var s={};t.r(s),t.d(s,{GET:()=>g,dynamic:()=>x});var o=t(49303),i=t(88716),a=t(60670),n=t(87070),p=t(97425),u=t(75748),c=t(97213),d=t(89194),l=t(19377),m=t(63661);let x="force-dynamic";async function g(e){try{let r=(0,p.n)(),t=e.nextUrl?.searchParams,s=t?.get("repository"),o=(0,u.Xv)(r,s||void 0),i=c.g.getInstance(),a=["claude","codex","gemini"],x=await Promise.all(o.map(async e=>{let t={},s=!1,o=!1,n=!1;for(let p of a){let a=i.getTool(p),c=await a.isRunning(e.id),x=!1,g=!1;if(c)try{let t=await (0,d.NA)(e.id,p,100),s=(0,l.vp)(t),o=(0,m.F)(s);if(o.isPrompt)x=!0;else{let e=s.split("\n").filter(e=>""!==e.trim()).slice(-15).join("\n");(0,l.Wg)(p,e)?g=!0:/^[>❯](\s*$|\s+\S)/m.test(e)||(g=!0)}!o.isPrompt&&(0,u._U)(r,e.id,void 0,10,p).some(e=>"prompt"===e.messageType&&e.promptData?.status!=="answered")&&(0,u.GP)(r,e.id,p)}catch{g=!0}t[p]={isRunning:c,isWaitingForResponse:x,isProcessing:g},c&&(s=!0),x&&(o=!0),g&&(n=!0)}return{...e,isSessionRunning:s,isWaitingForResponse:o,isProcessing:n,sessionStatusByCli:t}})),g=(0,u.ER)(r);return n.NextResponse.json({worktrees:x,repositories:g},{status:200})}catch(e){return console.error("Error fetching worktrees:",e),n.NextResponse.json({error:"Failed to fetch worktrees"},{status:500})}}let h=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/route",pathname:"/api/worktrees",filename:"route",bundlePath:"app/api/worktrees/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:w,staticGenerationAsyncStorage:f,serverHooks:v}=h,k="/api/worktrees/route";function q(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:f})}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8948,5972,7425,7213,1528],()=>t(17679));module.exports=s})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/376b339640084689.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3fc79fab9bb738d7.js"/><script src="/_next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js" async=""></script><script src="/_next/static/chunks/2117-d845c2cd62e344a6.js" async=""></script><script src="/_next/static/chunks/main-app-420d93e43682fee5.js" async=""></script><script src="/_next/static/chunks/7648-325564a6e12a3257.js" async=""></script><script src="/_next/static/chunks/9365-733d8c05712d2888.js" async=""></script><script src="/_next/static/chunks/6725-f7607851b7d57eb1.js" async=""></script><script src="/_next/static/chunks/816-7e340dad784be28c.js" async=""></script><script src="/_next/static/chunks/2853-d11a80b03c9a1640.js" async=""></script><script src="/_next/static/chunks/app/page-fe35d61f14b90a51.js" async=""></script><script src="/_next/static/chunks/app/layout-37e55f11dcc8b1bf.js" async=""></script><title>CommandMate</title><meta name="description" content="Git worktree management with Claude CLI and tmux sessions"/><link rel="icon" href="/icon.png?32d9127ba30ee286" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?31a89e65aa4ac65b" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-gray-50"><div data-testid="app-shell" class="h-screen flex"><aside data-testid="sidebar-container" class="
|
|
2
2
|
fixed left-0 top-0 h-full w-72
|
|
3
3
|
transform transition-transform duration-300 ease-out
|
|
4
4
|
translate-x-0
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
flex-1 min-w-0 h-full overflow-hidden
|
|
7
7
|
transition-[padding] duration-300 ease-out
|
|
8
8
|
md:pl-72
|
|
9
|
-
" role="main"><div class="container-custom py-8 overflow-auto h-full"><div class="mb-8"><h1 class="mb-2">CommandMate</h1><p class="text-lg text-gray-600">Git worktree management with Claude CLI and tmux sessions</p></div><div class="mb-8"><div class="space-y-4"><div class="flex gap-2 flex-wrap"><button class="btn btn-primary btn-sm">+ Add Repository</button><button class="btn btn-secondary btn-sm">Sync All</button></div></div></div><div class="space-y-6"><div class="flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between"><div class="flex items-center gap-2 flex-wrap"><span class="badge badge-gray">0<!-- --> branches</span></div><div class="flex gap-2 w-full sm:w-auto"><button class="btn btn-secondary btn-sm opacity-50 cursor-not-allowed" disabled="">Loading...</button></div></div><div class="flex flex-col sm:flex-row gap-3"><input type="text" placeholder="Search worktrees..." class="input flex-1" value=""/></div><div class="flex gap-2 flex-wrap items-center"><button class="btn btn-primary btn-sm">All</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">📝 ToDo</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">🚧 Doing</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">✅ Done</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Not set</button></div><div class="flex gap-2 flex-wrap"><span class="text-sm text-gray-600 self-center">Sort by:</span><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">⭐ Favorite </button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Name </button><button class="btn btn-primary btn-sm">Updated <!-- -->↓</button></div><div class="text-center py-12"><div class="inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-blue-600"></div><p class="mt-4 text-gray-600">Loading worktrees...</p></div></div><div class="mt-8"><div class="space-y-4"><div class="flex items-center justify-between"><h2 class="text-xl font-semibold text-gray-900">External Apps</h2><button class="btn btn-primary btn-sm">+ Add App</button></div><div class="card p-6"><div class="flex items-center justify-center py-8"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div><span class="ml-3 text-gray-600">Loading apps...</span></div></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/
|
|
9
|
+
" role="main"><div class="container-custom py-8 overflow-auto h-full"><div class="mb-8"><h1 class="mb-2">CommandMate</h1><p class="text-lg text-gray-600">Git worktree management with Claude CLI and tmux sessions</p></div><div class="mb-8"><div class="space-y-4"><div class="flex gap-2 flex-wrap"><button class="btn btn-primary btn-sm">+ Add Repository</button><button class="btn btn-secondary btn-sm">Sync All</button></div></div></div><div class="space-y-6"><div class="flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between"><div class="flex items-center gap-2 flex-wrap"><span class="badge badge-gray">0<!-- --> branches</span></div><div class="flex gap-2 w-full sm:w-auto"><button class="btn btn-secondary btn-sm opacity-50 cursor-not-allowed" disabled="">Loading...</button></div></div><div class="flex flex-col sm:flex-row gap-3"><input type="text" placeholder="Search worktrees..." class="input flex-1" value=""/></div><div class="flex gap-2 flex-wrap items-center"><button class="btn btn-primary btn-sm">All</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">📝 ToDo</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">🚧 Doing</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">✅ Done</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Not set</button></div><div class="flex gap-2 flex-wrap"><span class="text-sm text-gray-600 self-center">Sort by:</span><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">⭐ Favorite </button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Name </button><button class="btn btn-primary btn-sm">Updated <!-- -->↓</button></div><div class="text-center py-12"><div class="inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-blue-600"></div><p class="mt-4 text-gray-600">Loading worktrees...</p></div></div><div class="mt-8"><div class="space-y-4"><div class="flex items-center justify-between"><h2 class="text-xl font-semibold text-gray-900">External Apps</h2><button class="btn btn-primary btn-sm">+ Add App</button></div><div class="card p-6"><div class="flex items-center justify-center py-8"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div><span class="ml-3 text-gray-600">Loading apps...</span></div></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/376b339640084689.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[19107,[],\"ClientPageRoot\"]\n5:I[89707,[\"7648\",\"static/chunks/7648-325564a6e12a3257.js\",\"9365\",\"static/chunks/9365-733d8c05712d2888.js\",\"6725\",\"static/chunks/6725-f7607851b7d57eb1.js\",\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"2853\",\"static/chunks/2853-d11a80b03c9a1640.js\",\"1931\",\"static/chunks/app/page-fe35d61f14b90a51.js\"],\"default\",1]\n6:I[91795,[\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"3185\",\"static/chunks/app/layout-37e55f11dcc8b1bf.js\"],\"AppProviders\"]\n7:I[4707,[],\"\"]\n8:I[36423,[],\"\"]\na:I[61060,[],\"\"]\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"gRNW5YXY43KqCKbCdaJoJ\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/376b339640084689.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-gray-50\",\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"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,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@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\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CommandMate\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Git worktree management with Claude CLI and tmux sessions\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.png?32d9127ba30ee286\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?31a89e65aa4ac65b\",\"type\":\"image/png\",\"sizes\":\"180x180\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
2:I[19107,[],"ClientPageRoot"]
|
|
2
|
-
3:I[89707,["7648","static/chunks/7648-325564a6e12a3257.js","9365","static/chunks/9365-733d8c05712d2888.js","6725","static/chunks/6725-f7607851b7d57eb1.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","1931","static/chunks/app/page-
|
|
2
|
+
3:I[89707,["7648","static/chunks/7648-325564a6e12a3257.js","9365","static/chunks/9365-733d8c05712d2888.js","6725","static/chunks/6725-f7607851b7d57eb1.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","1931","static/chunks/app/page-fe35d61f14b90a51.js"],"default",1]
|
|
3
3
|
4:I[91795,["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"AppProviders"]
|
|
4
4
|
5:I[4707,[],""]
|
|
5
5
|
6:I[36423,[],""]
|
|
6
|
-
0:["
|
|
6
|
+
0:["gRNW5YXY43KqCKbCdaJoJ",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/376b339640084689.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"className":"min-h-screen bg-gray-50","children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","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,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@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","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]]
|
|
7
7
|
7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"CommandMate"}],["$","meta","3",{"name":"description","content":"Git worktree management with Claude CLI and tmux sessions"}],["$","link","4",{"rel":"icon","href":"/icon.png?32d9127ba30ee286","type":"image/png","sizes":"32x32"}],["$","link","5",{"rel":"apple-touch-icon","href":"/apple-icon.png?31a89e65aa4ac65b","type":"image/png","sizes":"180x180"}]]
|
|
8
8
|
1:null
|