commandmate 0.2.2 → 0.2.4
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/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +46 -50
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +9 -9
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/fetch-cache/799a63cbfa61e2ab38626c05fe43500464c7bbd38341bdde69f5ec4b25acff68 +1 -0
- 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/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-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -0
- package/.next/server/app/{worktrees/[id]/simple-terminal/page.js.nft.json → api/app/update-check/route.js.nft.json} +1 -1
- package/.next/server/app/api/app/update-check.body +1 -0
- package/.next/server/app/api/app/update-check.meta +1 -0
- package/.next/server/app/api/repositories/restore/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/worktrees/[id]/current-output/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 +4 -4
- 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/route.js +1 -1
- package/.next/server/app/page.js +2 -4
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +3 -15
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +13 -13
- package/.next/server/chunks/1287.js +4 -0
- package/.next/server/chunks/2683.js +1 -0
- package/.next/server/chunks/3348.js +1 -0
- package/.next/server/chunks/369.js +1 -0
- package/.next/server/chunks/3860.js +1 -0
- package/.next/server/chunks/4559.js +1 -0
- package/.next/server/chunks/4704.js +35 -0
- package/.next/server/chunks/5488.js +1 -1
- package/.next/server/chunks/5781.js +1 -0
- package/.next/server/chunks/5823.js +1 -0
- package/.next/server/chunks/5853.js +1 -0
- package/.next/server/chunks/6837.js +1 -0
- package/.next/server/chunks/7266.js +1 -0
- package/.next/server/chunks/7425.js +3 -3
- package/.next/server/chunks/7458.js +1 -0
- package/.next/server/chunks/7536.js +1 -1
- package/.next/server/chunks/8705.js +1 -0
- package/.next/server/chunks/8744.js +1 -0
- package/.next/server/chunks/9367.js +2 -2
- package/.next/server/chunks/9582.js +1 -0
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1038-3509435b68c0967e.js +1 -0
- package/.next/static/chunks/216-f18f4a9d8b04a91e.js +1 -0
- package/.next/static/chunks/2330-0299b9879f4977d2.js +1 -0
- package/.next/static/chunks/4733-50bdfc169adb4881.js +1 -0
- package/.next/static/chunks/6140-389f1951062dcf4f.js +1 -0
- package/.next/static/chunks/816-af44cb865b0c980e.js +1 -0
- package/.next/static/chunks/8216-00e20326f32abd12.js +1 -0
- package/.next/static/chunks/9234-b0304101384ca079.js +3 -0
- package/.next/static/chunks/app/layout-07755491d5d57242.js +1 -0
- package/.next/static/chunks/app/page-43b5de1a0a788b1f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-ce9ac3658f2b7d91.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-9632761937a4d1ad.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-5d85a7e508ce36d3.js +1 -0
- package/.next/static/chunks/{main-b6d727aa9248d4f2.js → main-f00f82f1cf18dd99.js} +1 -1
- package/.next/static/chunks/{webpack-4f85dcef6279c6ee.js → webpack-af8567a485ade35a.js} +1 -1
- package/.next/static/css/6a92c8ad3c94d15a.css +3 -0
- package/.next/trace +5 -5
- package/.next/types/app/api/app/update-check/route.ts +343 -0
- package/README.md +84 -82
- package/dist/server/src/config/auto-yes-config.js +4 -4
- package/dist/server/src/config/log-config.js +41 -0
- package/dist/server/src/lib/cli-tools/manager.js +0 -6
- package/dist/server/src/lib/log-manager.js +2 -6
- package/dist/server/src/lib/prompt-detector.js +272 -75
- package/dist/server/src/lib/response-poller.js +29 -43
- package/package.json +2 -1
- package/.next/server/app/_not-found.html +0 -1
- package/.next/server/app/_not-found.meta +0 -6
- package/.next/server/app/_not-found.rsc +0 -10
- package/.next/server/app/index.html +0 -9
- package/.next/server/app/index.meta +0 -5
- package/.next/server/app/index.rsc +0 -8
- package/.next/server/app/worktrees/[id]/simple-terminal/page.js +0 -4
- package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +0 -1
- package/.next/server/chunks/3053.js +0 -1
- package/.next/server/chunks/434.js +0 -1
- package/.next/server/chunks/4471.js +0 -2
- package/.next/server/chunks/6550.js +0 -1
- package/.next/server/chunks/8174.js +0 -23
- package/.next/server/chunks/8887.js +0 -1
- package/.next/server/pages/404.html +0 -1
- package/.next/static/chunks/4343-ebe884a2a80eb033.js +0 -1
- package/.next/static/chunks/4851-45df4d388db5623f.js +0 -1
- package/.next/static/chunks/6568-c65d7e4d7db7655b.js +0 -1
- package/.next/static/chunks/6725-f7607851b7d57eb1.js +0 -1
- package/.next/static/chunks/7648-325564a6e12a3257.js +0 -1
- package/.next/static/chunks/816-c254f4e2406e696a.js +0 -1
- package/.next/static/chunks/9325-9e98829c1e75f42f.js +0 -1
- package/.next/static/chunks/app/layout-4804cfba519283cf.js +0 -1
- package/.next/static/chunks/app/page-3926224c4cdf315b.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-7eb14f8043796805.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-912c3c4c66821d99.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/simple-terminal/page-16feb3e86e42f4d1.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-be802baffc84dbd2.js +0 -1
- package/.next/static/css/d4b58a1129eff6af.css +0 -3
- package/.next/types/app/worktrees/[id]/simple-terminal/page.ts +0 -79
- package/dist/server/src/lib/claude-poller.js +0 -341
- /package/.next/static/{HhG0EHeG9E4wTJ4sqnLdv → b3UR0y5mw3Ubf_vI5JjIN}/_buildManifest.js +0 -0
- /package/.next/static/{HhG0EHeG9E4wTJ4sqnLdv → b3UR0y5mw3Ubf_vI5JjIN}/_ssgManifest.js +0 -0
- /package/.next/static/chunks/{2117-d845c2cd62e344a6.js → 2117-e31fa477cb500950.js} +0 -0
- /package/.next/static/chunks/app/_not-found/{page-a9d04e58c81115ec.js → page-ac4e4463b39d0cf7.js} +0 -0
- /package/.next/static/chunks/{fd9d1056-bbe86e4ae099d5cd.js → fd9d1056-cfdf4f91f13d3485.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=5361,e.ids=[5361],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")},86393:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=5361,e.ids=[5361],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")},86393:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>A,patchFetch:()=>C,requestAsyncStorage:()=>y,routeModule:()=>S,serverHooks:()=>D,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{DELETE:()=>$});var n=t(49303),s=t(88716),l=t(60670),a=t(87070),i=t(97425),u=t(75748),p=t(4709),d=t(59991),c=t(60667),f=t(83513);let h="[Session Cleanup]";async function m(e,r){let t={worktreeId:e,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let o of f.t){try{await r(e,o)&&(t.sessionsKilled.push(o),console.info(`${h} Killed session: ${e}/${o}`))}catch(n){let r=`${o}: ${n instanceof Error?n.message:String(n)}`;t.sessionErrors.push(r),console.warn(`${h} Failed to kill session ${e}/${o}:`,n)}try{(0,d.FN)(e,o),t.pollersStopped.push(`response-poller:${o}`)}catch(n){let r=`response-poller:${o}: ${n instanceof Error?n.message:String(n)}`;t.pollerErrors.push(r),console.warn(`${h} Failed to stop response-poller ${e}/${o}:`,n)}}try{(0,c.Qz)(e),t.pollersStopped.push("auto-yes-poller")}catch(o){let r=`auto-yes-poller: ${o instanceof Error?o.message:String(o)}`;t.pollerErrors.push(r),console.warn(`${h} Failed to stop auto-yes-poller ${e}:`,o)}return t}async function g(e,r){let t=[],o=[];for(let n of e){let e=await m(n,r);for(let r of(t.push(e),e.sessionErrors))o.push(`Session kill error (${n}): ${r}`);for(let r of e.pollerErrors)o.push(`Poller stop error (${n}): ${r}`)}return{results:t,warnings:o}}var E=t(25079),_=t(43839),v=t(10927);let w="[Repository Delete]";async function b(e,r){let t=_.g.getInstance().getTool(r);if(!await t.isRunning(e))return!1;let o=t.getSessionName(e);return(0,v.AJ)(o)}async function $(e){try{let r;let{repositoryPath:t}=await e.json(),o=(0,p.VZ)(t);if(!o.valid)return a.NextResponse.json({success:!1,error:o.error},{status:400});let n=(0,i.n)();(0,p.mm)(n,t);let s=(0,u.Pv)(n,t);if(0===s.length)return a.NextResponse.json({success:!1,error:"Repository not found"},{status:404});console.info(`${w} Starting deletion: ${t}, worktrees: ${s.length}`);let l=await g(s,b);for(let e of l.results)e.sessionsKilled.length>0&&console.info(`${w} Sessions killed for ${e.worktreeId}: ${e.sessionsKilled.join(", ")}`),e.sessionErrors.length>0&&console.warn(`${w} Session kill errors for ${e.worktreeId}: ${e.sessionErrors.join(", ")}`);(0,E.ZV)(s);try{r=(0,u.DF)(n,t).deletedCount,console.info(`${w} Successfully deleted ${r} worktrees from: ${t}`)}catch(e){return console.error(`${w} Database deletion failed for ${t}:`,e),a.NextResponse.json({success:!1,error:"Database deletion failed"},{status:500})}(0,E.ps)("repository_deleted",{worktreeId:"global",repositoryPath:t,deletedWorktreeIds:s});let d={success:!0,deletedWorktreeCount:r,deletedWorktreeIds:s};return l.warnings.length>0?(d.warnings=l.warnings,console.info(`${w} Completed with ${l.warnings.length} warnings: ${t}`)):console.info(`${w} Completed successfully: ${t}`),a.NextResponse.json(d,{status:200})}catch(e){return console.error(`${w} Unexpected error:`,e),a.NextResponse.json({success:!1,error:"Failed to delete repository"},{status:500})}}let S=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/repositories/route",pathname:"/api/repositories",filename:"route",bundlePath:"app/api/repositories/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:y,staticGenerationAsyncStorage:x,serverHooks:D}=S,A="/api/repositories/route";function C(){return(0,l.patchFetch)({serverHooks:D,staticGenerationAsyncStorage:x})}},87946:(e,r,t)=>{t.d(r,{Ad:()=>n,l1:()=>s});let o=[36e5,108e5,288e5],n=36e5;function s(e){return"number"==typeof e&&o.includes(e)}},60667:(e,r,t)=>{t.d(r,{bq:()=>h,gf:()=>g,m$:()=>c,bY:()=>m,w:()=>v,Qz:()=>w});var o=t(89194),n=t(63661),s=t(10927),l=t(43839),a=t(19377),i=t(87946);let u=/^[a-zA-Z0-9_-]+$/,p=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),d=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function c(e){return!!e&&0!==e.length&&u.test(e)}function f(e){return Date.now()>e.expiresAt}function h(e){let r=p.get(e);if(!r)return null;if(f(r)){let t={...r,enabled:!1};return p.set(e,t),t}return r}function m(e,r,t){if(r){let r=Date.now(),o={enabled:!0,enabledAt:r,expiresAt:r+(t??i.Ad)};return p.set(e,o),o}{let r=p.get(e),t={enabled:!1,enabledAt:r?.enabledAt??0,expiresAt:r?.expiresAt??0};return p.set(e,t),t}}function g(e){let r=d.get(e);return r?.lastServerResponseTimestamp??null}async function E(e,r){if(!d.get(e))return;let t=h(e);if(!t?.enabled||f(t)){w(e);return}try{let t=await (0,o.NA)(e,r,5e3),i=(0,a.vp)(t),u=i.split("\n").slice(-50).join("\n");if((0,a.Wg)(r,u)){_(e,r);return}let p=(0,a.Sg)(r),c=(0,n.F)(i,p);if(!c.isPrompt||!c.promptData){_(e,r);return}let f=function(e){if("yes_no"===e.type)return"y";if("multiple_choice"===e.type){let r=e.options.find(e=>e.isDefault)??e.options[0];return!r||r.requiresTextInput?null:r.number.toString()}return null}(c.promptData);if(null===f){_(e,r);return}let h=l.g.getInstance().getTool(r).getSessionName(e);if("claude"===r&&c.promptData?.type==="multiple_choice"&&/^\d+$/.test(f)&&c.promptData?.type==="multiple_choice"){let e=parseInt(f,10),r=c.promptData.options,t=r.find(e=>e.isDefault),o=t?.number??1,n=e-o;if(r.some(e=>/^\[[ x]\] /.test(e.label))){let t=r.filter(e=>/^\[[ x]\] /.test(e.label)).length,o=[];if(n>0)for(let e=0;e<n;e++)o.push("Down");else if(n<0)for(let e=0;e<Math.abs(n);e++)o.push("Up");o.push("Space");let l=t-e+1;for(let e=0;e<l;e++)o.push("Down");o.push("Enter"),await (0,s.hL)(h,o)}else{let e=[];if(n>0)for(let r=0;r<n;r++)e.push("Down");else if(n<0)for(let r=0;r<Math.abs(n);r++)e.push("Up");e.push("Enter"),await (0,s.hL)(h,e)}}else await (0,s.Is)(h,f,!1),await new Promise(e=>setTimeout(e,100)),await (0,s.Is)(h,"",!0);(function(e,r){let t=d.get(e);t&&(t.lastServerResponseTimestamp=r)})(e,Date.now()),function(e){let r=d.get(e);r&&(r.consecutiveErrors=0,r.currentInterval=2e3)}(e),console.info(`[Auto-Yes Poller] Sent response for worktree: ${e}`)}catch(t){!function(e){let r=d.get(e);if(r){var t;r.consecutiveErrors++,r.currentInterval=(t=r.consecutiveErrors)<5?2e3:Math.min(2e3*Math.pow(2,t-5+1),6e4)}}(e);let r=t instanceof Error?t.message:"Unknown error";console.warn(`[Auto-Yes Poller] Error for worktree ${e}: ${r}`)}_(e,r)}function _(e,r){let t=d.get(e);t&&(t.timerId=setTimeout(()=>{E(e,r)},t.currentInterval))}function v(e,r){if(!c(e))return{started:!1,reason:"invalid worktree ID"};let t=h(e);if(!t?.enabled)return{started:!1,reason:"auto-yes not enabled"};let o=d.has(e);if(!o&&d.size>=50)return{started:!1,reason:"max concurrent pollers reached"};o&&w(e);let n={timerId:null,cliToolId:r,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return d.set(e,n),n.timerId=setTimeout(()=>{E(e,r)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${r}`),{started:!0}}function w(e){let r=d.get(e);r&&(r.timerId&&clearTimeout(r.timerId),d.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}},83513:(e,r,t)=>{t.d(r,{t:()=>o});let o=["claude","codex","gemini"]},4709:(e,r,t)=>{t.d(r,{Bj:()=>E,Bm:()=>v,L_:()=>w,RT:()=>_,VZ:()=>h,fC:()=>$,h4:()=>u,mm:()=>g,nJ:()=>m,nb:()=>p,sN:()=>b});var o=t(84770),n=t(55315),s=t.n(n),l=t(43753);function a(e){return{id:e.id,name:e.name,path:e.path,enabled:1===e.enabled,cloneUrl:e.clone_url||void 0,normalizedCloneUrl:e.normalized_clone_url||void 0,cloneSource:e.clone_source,isEnvManaged:1===e.is_env_managed,createdAt:new Date(e.created_at),updatedAt:new Date(e.updated_at)}}function i(e){return{id:e.id,cloneUrl:e.clone_url,normalizedCloneUrl:e.normalized_clone_url,targetPath:e.target_path,repositoryId:e.repository_id||void 0,status:e.status,pid:e.pid||void 0,progress:e.progress,errorCategory:e.error_category||void 0,errorCode:e.error_code||void 0,errorMessage:e.error_message||void 0,startedAt:e.started_at?new Date(e.started_at):void 0,completedAt:e.completed_at?new Date(e.completed_at):void 0,createdAt:new Date(e.created_at)}}function u(e,r){let t=(0,o.randomUUID)(),n=Date.now();return e.prepare(`
|
|
2
2
|
INSERT INTO repositories (
|
|
3
3
|
id, name, path, enabled, clone_url, normalized_clone_url,
|
|
4
4
|
clone_source, is_env_managed, created_at, updated_at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=6865,e.ids=[6865],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")},75144:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>x,requestAsyncStorage:()=>g,routeModule:()=>m,serverHooks:()=>v,staticGenerationAsyncStorage:()=>y});var o={};r.r(o),r.d(o,{POST:()=>f});var s=r(49303),n=r(88716),i=r(60670),a=r(87070),p=r(55315),l=r.n(p),u=r(97425),c=r(67722),d=r(57440),h=r(
|
|
1
|
+
"use strict";(()=>{var e={};e.id=6865,e.ids=[6865],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")},75144:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>x,requestAsyncStorage:()=>g,routeModule:()=>m,serverHooks:()=>v,staticGenerationAsyncStorage:()=>y});var o={};r.r(o),r.d(o,{POST:()=>f});var s=r(49303),n=r(88716),i=r(60670),a=r(87070),p=r(55315),l=r.n(p),u=r(97425),c=r(67722),d=r(57440),h=r(98838);async function f(e){try{let{repositoryPath:t}=await e.json();if(!t||"string"!=typeof t)return a.NextResponse.json({error:"Repository path is required"},{status:400});let{CM_ROOT_DIR:r}=(0,h.dU)();if(!(0,d.j)(t,r))return a.NextResponse.json({error:"Invalid or unsafe repository path"},{status:400});let o=l().resolve(r,t),s=await (0,c.e9)(o);if(0===s.length)return a.NextResponse.json({error:"No worktrees found in the specified path. Make sure it is a valid git repository."},{status:404});let n=(0,u.n)();return(0,c.h2)(n,s),a.NextResponse.json({success:!0,message:`Successfully scanned and added ${s.length} worktree(s)`,worktreeCount:s.length,repositoryPath:s[0].repositoryPath,repositoryName:s[0].repositoryName},{status:200})}catch(t){console.error("Error scanning repository:",t);let e=t instanceof Error?t.message:"Failed to scan repository";return a.NextResponse.json({error:e},{status:500})}}let m=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/scan/route",pathname:"/api/repositories/scan",filename:"route",bundlePath:"app/api/repositories/scan/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/scan/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:g,staticGenerationAsyncStorage:y,serverHooks:v}=m,w="/api/repositories/scan/route";function x(){return(0,i.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:y})}},57440:(e,t,r)=>{r.d(t,{j:()=>n});var o=r(55315),s=r.n(o);function n(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=s().resolve(t),n=s().resolve(t,r),i=s().relative(o,n);return!(i.startsWith("..")||s().isAbsolute(i))}},67722:(e,t,r)=>{r.d(t,{Lj:()=>c,a$:()=>l,e9:()=>u,h2:()=>d});var o=r(61282),s=r(21764),n=r(55315),i=r.n(n),a=r(75748),p=r(98838);function l(){let e=process.env.WORKTREE_REPOS;if(e&&e.trim())return e.split(",").map(e=>e.trim()).filter(e=>e.length>0);let t=(0,p.Hb)("CM_ROOT_DIR");return t&&t.trim()?[t.trim()]:[]}async function u(e){let t=(0,s.promisify)(o.exec);try{let{stdout:r}=await t("git worktree list",{cwd:e}),o=function(e){if(!e||""===e.trim())return[];let t=e.trim().split("\n"),r=[];for(let e of t){let t=e.trim();if(!t)continue;let o=t.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(o){let[,e,t,s]=o;r.push({path:e.trim(),branch:s||`detached-${t}`,commit:t})}}return r}(r),s=i().resolve(e),n=i().basename(s);return o.map(e=>({id:function(e,t){if(!e)return"";let r=e=>e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),o=r(e);if(t){let e=r(t);return`${e}-${o}`}return o}(e.branch,n),name:e.branch,path:i().resolve(e.path),repositoryPath:s,repositoryName:n})).filter(e=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(t=>e.path.startsWith(t))?(console.warn(`Skipping potentially unsafe worktree path: ${e.path}`),!1):!(e.path.includes("\0")||e.path.includes(".."))||(console.warn(`Skipping path with potentially malicious characters: ${e.path}`),!1))}catch(r){let e=r instanceof Error?r.message:String(r),t=r.code;if(e?.includes("not a git repository")||128===t)return[];throw r}}async function c(e){let t=[];for(let r of e)try{console.log(`Scanning repository: ${r}`);let e=await u(r);t.push(...e),console.log(` Found ${e.length} worktree(s)`)}catch(e){console.error(`Error scanning repository ${r}:`,e)}return t}function d(e,t){if(0===t.length)return;let r=new Map;for(let e of t){let t=e.repositoryPath||"";r.has(t)||r.set(t,[]),r.get(t).push(e)}for(let[t,o]of r){if(!t)continue;let r=(0,a.Pv)(e,t),s=new Set(o.map(e=>e.id)),n=r.filter(e=>!s.has(e));if(n.length>0){let r=(0,a.pM)(e,n);console.log(`Removed ${r.deletedCount} deleted worktree(s) from ${t}`)}for(let t of o)(0,a.ly)(e,t)}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425],()=>r(75144));module.exports=o})();
|
|
@@ -33,4 +33,4 @@
|
|
|
33
33
|
AND status IN ('pending', 'running')
|
|
34
34
|
ORDER BY created_at DESC
|
|
35
35
|
LIMIT 1
|
|
36
|
-
`).get(r);return t?l(t):null}},67722:(e,r,t)=>{t.d(r,{Lj:()=>d,a$:()=>p,e9:()=>u,h2:()=>c});var o=t(61282),n=t(21764),a=t(55315),s=t.n(a),i=t(75748),l=t(
|
|
36
|
+
`).get(r);return t?l(t):null}},67722:(e,r,t)=>{t.d(r,{Lj:()=>d,a$:()=>p,e9:()=>u,h2:()=>c});var o=t(61282),n=t(21764),a=t(55315),s=t.n(a),i=t(75748),l=t(98838);function p(){let e=process.env.WORKTREE_REPOS;if(e&&e.trim())return e.split(",").map(e=>e.trim()).filter(e=>e.length>0);let r=(0,l.Hb)("CM_ROOT_DIR");return r&&r.trim()?[r.trim()]:[]}async function u(e){let r=(0,n.promisify)(o.exec);try{let{stdout:t}=await r("git worktree list",{cwd:e}),o=function(e){if(!e||""===e.trim())return[];let r=e.trim().split("\n"),t=[];for(let e of r){let r=e.trim();if(!r)continue;let o=r.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(o){let[,e,r,n]=o;t.push({path:e.trim(),branch:n||`detached-${r}`,commit:r})}}return t}(t),n=s().resolve(e),a=s().basename(n);return o.map(e=>({id:function(e,r){if(!e)return"";let t=e=>e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),o=t(e);if(r){let e=t(r);return`${e}-${o}`}return o}(e.branch,a),name:e.branch,path:s().resolve(e.path),repositoryPath:n,repositoryName:a})).filter(e=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(r=>e.path.startsWith(r))?(console.warn(`Skipping potentially unsafe worktree path: ${e.path}`),!1):!(e.path.includes("\0")||e.path.includes(".."))||(console.warn(`Skipping path with potentially malicious characters: ${e.path}`),!1))}catch(t){let e=t instanceof Error?t.message:String(t),r=t.code;if(e?.includes("not a git repository")||128===r)return[];throw t}}async function d(e){let r=[];for(let t of e)try{console.log(`Scanning repository: ${t}`);let e=await u(t);r.push(...e),console.log(` Found ${e.length} worktree(s)`)}catch(e){console.error(`Error scanning repository ${t}:`,e)}return r}function c(e,r){if(0===r.length)return;let t=new Map;for(let e of r){let r=e.repositoryPath||"";t.has(r)||t.set(r,[]),t.get(r).push(e)}for(let[r,o]of t){if(!r)continue;let t=(0,i.Pv)(e,r),n=new Set(o.map(e=>e.id)),a=t.filter(e=>!n.has(e));if(a.length>0){let t=(0,i.pM)(e,a);console.log(`Removed ${t.deletedCount} deleted worktree(s) from ${r}`)}for(let r of o)(0,i.ly)(e,r)}}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(98165));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=1991,e.ids=[1991],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")},26683:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>q,patchFetch:()=>P,requestAsyncStorage:()=>v,routeModule:()=>w,serverHooks:()=>A,staticGenerationAsyncStorage:()=>b});var n={};r.r(n),r.d(n,{GET:()=>x});var o=r(49303),i=r(88716),s=r(60670),u=r(87070),a=r(97425),l=r(75748),p=r(63661),c=r(43839),d=r(89194),f=r(19377),m=r(13561),g=r(60667);let h=["claude","codex","gemini"];async function x(e,{params:t}){try{let r=(0,a.n)(),n=(0,l.gU)(r,t.id);if(!n)return u.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let o=new URL(e.url).searchParams.get("cliTool"),i=o&&h.includes(o)?o:n.cliToolId||"claude",s=c.g.getInstance().getTool(i);if(!await s.isRunning(t.id))return u.NextResponse.json({isRunning:!1,content:"",lineCount:0,cliToolId:i},{status:200});let x=(0,l.zl)(r,t.id,i),w=x?.lastCapturedLine||0,v=await (0,d.NA)(t.id,i,1e4),b=v.split("\n"),A=b.length,q=b.slice(Math.max(0,w)).join("\n"),P=(0,f.vp)(v),_=(0,m._)(v,i),k="running"===_.status&&"thinking_indicator"===_.reason,T={isPrompt:!1,cleanContent:P};if(!k){let e=(0,f.Sg)(i);T=(0,p.F)(P,e)}let S=_.hasActivePrompt,y=b.slice(-100).join("\n"),D=(0,g.bq)(t.id),I=(0,g.gf)(t.id);return u.NextResponse.json({isRunning:!0,cliToolId:i,content:q,fullOutput:v,realtimeSnippet:y,lineCount:A,lastCapturedLine:w,isComplete:S,isGenerating:k,thinking:k,thinkingMessage:k?"Claude is thinking...":null,isPromptWaiting:S,promptData:S?T.promptData:null,autoYes:{enabled:D?.enabled??!1,expiresAt:D?.enabled?D.expiresAt:null},lastServerResponseTimestamp:I})}catch(e){return console.error("Error getting current output:",e),u.NextResponse.json({error:"Failed to get current output"},{status:500})}}let w=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/current-output/route",pathname:"/api/worktrees/[id]/current-output",filename:"route",bundlePath:"app/api/worktrees/[id]/current-output/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/current-output/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:v,staticGenerationAsyncStorage:b,serverHooks:A}=w,q="/api/worktrees/[id]/current-output/route";function P(){return(0,s.patchFetch)({serverHooks:A,staticGenerationAsyncStorage:b})}},87946:(e,t,r)=>{r.d(t,{Ad:()=>o,l1:()=>i});let n=[36e5,108e5,288e5],o=36e5;function i(e){return"number"==typeof e&&n.includes(e)}},60667:(e,t,r)=>{r.d(t,{bq:()=>m,gf:()=>h,m$:()=>d,bY:()=>g,w:()=>v,Qz:()=>b});var n=r(89194),o=r(63661),i=r(10927),s=r(43839),u=r(19377),a=r(87946);let l=/^[a-zA-Z0-9_-]+$/,p=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),c=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function d(e){return!!e&&0!==e.length&&l.test(e)}function f(e){return Date.now()>e.expiresAt}function m(e){let t=p.get(e);if(!t)return null;if(f(t)){let r={...t,enabled:!1};return p.set(e,r),r}return t}function g(e,t,r){if(t){let t=Date.now(),n={enabled:!0,enabledAt:t,expiresAt:t+(r??a.Ad)};return p.set(e,n),n}{let t=p.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return p.set(e,r),r}}function h(e){let t=c.get(e);return t?.lastServerResponseTimestamp??null}async function x(e,t){if(!c.get(e))return;let r=m(e);if(!r?.enabled||f(r)){b(e);return}try{let r=await (0,n.NA)(e,t,5e3),a=(0,u.vp)(r),l=a.split("\n").slice(-50).join("\n");if((0,u.Wg)(t,l)){w(e,t);return}let p=(0,u.Sg)(t),d=(0,o.F)(a,p);if(!d.isPrompt||!d.promptData){w(e,t);return}let f=function(e){if("yes_no"===e.type)return"y";if("multiple_choice"===e.type){let t=e.options.find(e=>e.isDefault)??e.options[0];return!t||t.requiresTextInput?null:t.number.toString()}return null}(d.promptData);if(null===f){w(e,t);return}let m=s.g.getInstance().getTool(t).getSessionName(e);if("claude"===t&&d.promptData?.type==="multiple_choice"&&/^\d+$/.test(f)&&d.promptData?.type==="multiple_choice"){let e=parseInt(f,10),t=d.promptData.options,r=t.find(e=>e.isDefault),n=r?.number??1,o=e-n;if(t.some(e=>/^\[[ x]\] /.test(e.label))){let r=t.filter(e=>/^\[[ x]\] /.test(e.label)).length,n=[];if(o>0)for(let e=0;e<o;e++)n.push("Down");else if(o<0)for(let e=0;e<Math.abs(o);e++)n.push("Up");n.push("Space");let s=r-e+1;for(let e=0;e<s;e++)n.push("Down");n.push("Enter"),await (0,i.hL)(m,n)}else{let e=[];if(o>0)for(let t=0;t<o;t++)e.push("Down");else if(o<0)for(let t=0;t<Math.abs(o);t++)e.push("Up");e.push("Enter"),await (0,i.hL)(m,e)}}else await (0,i.Is)(m,f,!1),await new Promise(e=>setTimeout(e,100)),await (0,i.Is)(m,"",!0);(function(e,t){let r=c.get(e);r&&(r.lastServerResponseTimestamp=t)})(e,Date.now()),function(e){let t=c.get(e);t&&(t.consecutiveErrors=0,t.currentInterval=2e3)}(e),console.info(`[Auto-Yes Poller] Sent response for worktree: ${e}`)}catch(r){!function(e){let t=c.get(e);if(t){var r;t.consecutiveErrors++,t.currentInterval=(r=t.consecutiveErrors)<5?2e3:Math.min(2e3*Math.pow(2,r-5+1),6e4)}}(e);let t=r instanceof Error?r.message:"Unknown error";console.warn(`[Auto-Yes Poller] Error for worktree ${e}: ${t}`)}w(e,t)}function w(e,t){let r=c.get(e);r&&(r.timerId=setTimeout(()=>{x(e,t)},r.currentInterval))}function v(e,t){if(!d(e))return{started:!1,reason:"invalid worktree ID"};let r=m(e);if(!r?.enabled)return{started:!1,reason:"auto-yes not enabled"};let n=c.has(e);if(!n&&c.size>=50)return{started:!1,reason:"max concurrent pollers reached"};n&&b(e);let o={timerId:null,cliToolId:t,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return c.set(e,o),o.timerId=setTimeout(()=>{x(e,t)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${t}`),{started:!0}}function b(e){let t=c.get(e);t&&(t.timerId&&clearTimeout(t.timerId),c.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}},13561:(e,t,r)=>{r.d(t,{_:()=>i});var n=r(19377),o=r(63661);function i(e,t,r){let i=(0,n.vp)(e).split("\n"),s
|
|
1
|
+
"use strict";(()=>{var e={};e.id=1991,e.ids=[1991],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")},26683:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>q,patchFetch:()=>P,requestAsyncStorage:()=>v,routeModule:()=>w,serverHooks:()=>A,staticGenerationAsyncStorage:()=>b});var n={};r.r(n),r.d(n,{GET:()=>x});var o=r(49303),i=r(88716),s=r(60670),u=r(87070),a=r(97425),l=r(75748),p=r(63661),c=r(43839),d=r(89194),f=r(19377),m=r(13561),g=r(60667);let h=["claude","codex","gemini"];async function x(e,{params:t}){try{let r=(0,a.n)(),n=(0,l.gU)(r,t.id);if(!n)return u.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let o=new URL(e.url).searchParams.get("cliTool"),i=o&&h.includes(o)?o:n.cliToolId||"claude",s=c.g.getInstance().getTool(i);if(!await s.isRunning(t.id))return u.NextResponse.json({isRunning:!1,content:"",lineCount:0,cliToolId:i},{status:200});let x=(0,l.zl)(r,t.id,i),w=x?.lastCapturedLine||0,v=await (0,d.NA)(t.id,i,1e4),b=v.split("\n"),A=b.length,q=b.slice(Math.max(0,w)).join("\n"),P=(0,f.vp)(v),_=(0,m._)(v,i),k="running"===_.status&&"thinking_indicator"===_.reason,T={isPrompt:!1,cleanContent:P};if(!k){let e=(0,f.Sg)(i);T=(0,p.F)(P,e)}let S=_.hasActivePrompt,y=b.slice(-100).join("\n"),D=(0,g.bq)(t.id),I=(0,g.gf)(t.id);return u.NextResponse.json({isRunning:!0,cliToolId:i,content:q,fullOutput:v,realtimeSnippet:y,lineCount:A,lastCapturedLine:w,isComplete:S,isGenerating:k,thinking:k,thinkingMessage:k?"Claude is thinking...":null,isPromptWaiting:S,promptData:S?T.promptData:null,autoYes:{enabled:D?.enabled??!1,expiresAt:D?.enabled?D.expiresAt:null},lastServerResponseTimestamp:I})}catch(e){return console.error("Error getting current output:",e),u.NextResponse.json({error:"Failed to get current output"},{status:500})}}let w=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/current-output/route",pathname:"/api/worktrees/[id]/current-output",filename:"route",bundlePath:"app/api/worktrees/[id]/current-output/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/current-output/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:v,staticGenerationAsyncStorage:b,serverHooks:A}=w,q="/api/worktrees/[id]/current-output/route";function P(){return(0,s.patchFetch)({serverHooks:A,staticGenerationAsyncStorage:b})}},87946:(e,t,r)=>{r.d(t,{Ad:()=>o,l1:()=>i});let n=[36e5,108e5,288e5],o=36e5;function i(e){return"number"==typeof e&&n.includes(e)}},60667:(e,t,r)=>{r.d(t,{bq:()=>m,gf:()=>h,m$:()=>d,bY:()=>g,w:()=>v,Qz:()=>b});var n=r(89194),o=r(63661),i=r(10927),s=r(43839),u=r(19377),a=r(87946);let l=/^[a-zA-Z0-9_-]+$/,p=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),c=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function d(e){return!!e&&0!==e.length&&l.test(e)}function f(e){return Date.now()>e.expiresAt}function m(e){let t=p.get(e);if(!t)return null;if(f(t)){let r={...t,enabled:!1};return p.set(e,r),r}return t}function g(e,t,r){if(t){let t=Date.now(),n={enabled:!0,enabledAt:t,expiresAt:t+(r??a.Ad)};return p.set(e,n),n}{let t=p.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return p.set(e,r),r}}function h(e){let t=c.get(e);return t?.lastServerResponseTimestamp??null}async function x(e,t){if(!c.get(e))return;let r=m(e);if(!r?.enabled||f(r)){b(e);return}try{let r=await (0,n.NA)(e,t,5e3),a=(0,u.vp)(r),l=a.split("\n").slice(-50).join("\n");if((0,u.Wg)(t,l)){w(e,t);return}let p=(0,u.Sg)(t),d=(0,o.F)(a,p);if(!d.isPrompt||!d.promptData){w(e,t);return}let f=function(e){if("yes_no"===e.type)return"y";if("multiple_choice"===e.type){let t=e.options.find(e=>e.isDefault)??e.options[0];return!t||t.requiresTextInput?null:t.number.toString()}return null}(d.promptData);if(null===f){w(e,t);return}let m=s.g.getInstance().getTool(t).getSessionName(e);if("claude"===t&&d.promptData?.type==="multiple_choice"&&/^\d+$/.test(f)&&d.promptData?.type==="multiple_choice"){let e=parseInt(f,10),t=d.promptData.options,r=t.find(e=>e.isDefault),n=r?.number??1,o=e-n;if(t.some(e=>/^\[[ x]\] /.test(e.label))){let r=t.filter(e=>/^\[[ x]\] /.test(e.label)).length,n=[];if(o>0)for(let e=0;e<o;e++)n.push("Down");else if(o<0)for(let e=0;e<Math.abs(o);e++)n.push("Up");n.push("Space");let s=r-e+1;for(let e=0;e<s;e++)n.push("Down");n.push("Enter"),await (0,i.hL)(m,n)}else{let e=[];if(o>0)for(let t=0;t<o;t++)e.push("Down");else if(o<0)for(let t=0;t<Math.abs(o);t++)e.push("Up");e.push("Enter"),await (0,i.hL)(m,e)}}else await (0,i.Is)(m,f,!1),await new Promise(e=>setTimeout(e,100)),await (0,i.Is)(m,"",!0);(function(e,t){let r=c.get(e);r&&(r.lastServerResponseTimestamp=t)})(e,Date.now()),function(e){let t=c.get(e);t&&(t.consecutiveErrors=0,t.currentInterval=2e3)}(e),console.info(`[Auto-Yes Poller] Sent response for worktree: ${e}`)}catch(r){!function(e){let t=c.get(e);if(t){var r;t.consecutiveErrors++,t.currentInterval=(r=t.consecutiveErrors)<5?2e3:Math.min(2e3*Math.pow(2,r-5+1),6e4)}}(e);let t=r instanceof Error?r.message:"Unknown error";console.warn(`[Auto-Yes Poller] Error for worktree ${e}: ${t}`)}w(e,t)}function w(e,t){let r=c.get(e);r&&(r.timerId=setTimeout(()=>{x(e,t)},r.currentInterval))}function v(e,t){if(!d(e))return{started:!1,reason:"invalid worktree ID"};let r=m(e);if(!r?.enabled)return{started:!1,reason:"auto-yes not enabled"};let n=c.has(e);if(!n&&c.size>=50)return{started:!1,reason:"max concurrent pollers reached"};n&&b(e);let o={timerId:null,cliToolId:t,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return c.set(e,o),o.timerId=setTimeout(()=>{x(e,t)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${t}`),{started:!0}}function b(e){let t=c.get(e);t&&(t.timerId&&clearTimeout(t.timerId),c.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}},13561:(e,t,r)=>{r.d(t,{_:()=>i});var n=r(19377),o=r(63661);function i(e,t,r){let i=(0,n.vp)(e),s=i.split("\n"),u=s.length-1;for(;u>=0&&""===s[u].trim();)u--;let a=s.slice(0,u+1),l=a.slice(-15).join("\n"),p=a.slice(-5).join("\n"),c=(0,n.Sg)(t);if((0,o.F)(i,c).isPrompt)return{status:"waiting",confidence:"high",reason:"prompt_detected",hasActivePrompt:!0};if((0,n.Wg)(t,p))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1};let{promptPattern:d}=(0,n.bs)(t);return d.test(l)?{status:"ready",confidence:"high",reason:"input_prompt",hasActivePrompt:!1}:r&&Date.now()-r.getTime()>5e3?{status:"ready",confidence:"low",reason:"no_recent_output",hasActivePrompt:!1}:{status:"running",confidence:"low",reason:"default",hasActivePrompt:!1}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,3853,4893,7425,9367,7536],()=>r(26683));module.exports=n})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=1732,e.ids=[1732],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")},
|
|
1
|
+
"use strict";(()=>{var e={};e.id=1732,e.ids=[1732],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")},19291:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>T,patchFetch:()=>C,requestAsyncStorage:()=>D,routeModule:()=>S,serverHooks:()=>k,staticGenerationAsyncStorage:()=>_});var n={};r.r(n),r.d(n,{GET:()=>R});var o=r(49303),a=r(88716),s=r(60670),i=r(87070),p=r(97425),l=r(75748),u=r(98241),c=r(19801),d=r.n(c);function m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var E=r(98838),f=r(29414),g=r(20629),x=r.n(g),A=r(55315),h=r.n(A);let R=(0,f.o)(async(e,{params:t})=>{try{let r=await Promise.resolve(t),n=(0,p.n)();if(!(0,l.gU)(n,r.id))return i.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let o=r.filename;if(!o.endsWith(".md")||!o.startsWith(`${r.id}-`))return i.NextResponse.json({error:"Invalid filename"},{status:400});if(o.includes("..")||o.includes("/")||o.includes("\\"))return i.NextResponse.json({error:"Invalid filename: path traversal not allowed"},{status:400});let a=!1,s="",c=null,f="";for(let e of["claude","codex","gemini"]){let t=h().join((0,u.s)(),e,o);try{let r=await x().stat(t);if(r.isFile()){a=!0,f=e,c={size:r.size,mtime:r.mtime},s=await x().readFile(t,"utf-8");break}}catch(e){if("ENOENT"!==e.code)throw e}}if(!a)return i.NextResponse.json({error:`Log file '${o}' not found in any CLI tool directory`},{status:404});return e.nextUrl?.searchParams?.get("sanitize")==="true"&&(s=function(e){let t=function(){let e=process.env.HOME??"",t=(0,E.dU)(),r=d().hostname(),n=[];e&&n.push({pattern:RegExp(m(e),"g"),replacement:"[HOME]",description:"Home directory path masking"}),t.CM_ROOT_DIR&&n.push({pattern:RegExp(m(t.CM_ROOT_DIR),"g"),replacement:"[PROJECT]",description:"Project root path masking"}),t.CM_DB_PATH&&n.push({pattern:RegExp(m(t.CM_DB_PATH),"g"),replacement:"[DB_PATH]",description:"Database path masking"}),r&&n.push({pattern:RegExp(m(r),"g"),replacement:"[HOST]",description:"Hostname masking"}),n.push({pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/g,replacement:"Bearer [REDACTED]",description:"Bearer token masking"}),n.push({pattern:/[Aa]uthorization:\s*\S+/g,replacement:"Authorization: [REDACTED]",description:"Authorization header masking"}),n.push({pattern:/(password|passwd|token|secret|api[_-]?key|access[_-]?key|private[_-]?key)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]",description:"Password/token/secret key-value pair masking"}),n.push({pattern:/-----BEGIN\s+(RSA|DSA|EC|OPENSSH)?\s*PRIVATE KEY-----[\s\S]*?-----END\s+(RSA|DSA|EC|OPENSSH)?\s*PRIVATE KEY-----/g,replacement:"[SSH_PRIVATE_KEY_REDACTED]",description:"SSH private key masking"}),n.push({pattern:/(GITHUB_TOKEN|AWS_SECRET_ACCESS_KEY|AWS_ACCESS_KEY_ID|OPENAI_API_KEY|ANTHROPIC_API_KEY|DATABASE_URL|REDIS_URL)[=:]\s*\S+/g,replacement:"$1=[REDACTED]",description:"Known environment variable value masking"});let o=["[HOME]","[PROJECT]","[DB_PATH]","[HOST]"],a=n.filter(e=>o.includes(e.replacement)),s=n.filter(e=>!o.includes(e.replacement));return a.sort((e,t)=>t.pattern.source.length-e.pattern.source.length),[...a,...s]}(),r=e;for(let e of t)r=r.replace(e.pattern,e.replacement);return r}(s)),i.NextResponse.json({filename:o,cliToolId:f,content:s,size:c.size,modifiedAt:c.mtime.toISOString()},{status:200})}catch(e){return console.error("Error reading log file:",e),i.NextResponse.json({error:"Failed to read log file"},{status:500})}},{skipResponseBody:!0}),S=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/worktrees/[id]/logs/[filename]/route",pathname:"/api/worktrees/[id]/logs/[filename]",filename:"route",bundlePath:"app/api/worktrees/[id]/logs/[filename]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/logs/[filename]/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:D,staticGenerationAsyncStorage:_,serverHooks:k}=S,T="/api/worktrees/[id]/logs/[filename]/route";function C(){return(0,s.patchFetch)({serverHooks:k,staticGenerationAsyncStorage:_})}},98241:(e,t,r)=>{r.d(t,{s:()=>s});var n=r(55315),o=r.n(n),a=r(98838);function s(){return(0,a.Hb)("CM_LOG_DIR")||o().join(process.cwd(),"data","logs")}},29414:(e,t,r)=>{function n(e,t){let{logLevel:r="info",maxResponseBodyLength:n=1024,skipResponseBody:o=!1}=t??{};return async(t,r)=>e(t,r)}r.d(t,{o:()=>n}),(0,r(43895).h)("api")},43895:(e,t,r)=>{r.d(t,{Y:()=>p,h:()=>l});var n=r(98838);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:/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]"}],a=/password|secret|token|key|auth/i,s={debug:0,info:1,warn:2,error:3};function i(e,t,r,i,p){let l=(0,n.LI)().level;if(s[e]<s[l])return;let u=i?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))a.test(n)?r[n]="[REDACTED]":r[n]=e(o);return r}return t}(i):void 0,c=function(e){if("json"===(0,n.LI)().format)return JSON.stringify(e);let{timestamp:t,level:r,module:o,action:a,data:s,worktreeId:i,cliToolId:p,requestId:l}=e,u=[i,p].filter(Boolean),c=u.length>0?` [${u.join(":")}]`:"",d=l?` (${l.slice(0,8)})`:"",m=s?` ${JSON.stringify(s)}`:"";return`[${t}] [${r.toUpperCase()}] [${o}]${c}${d} ${a}${m}`}({level:e,module:t,action:r,timestamp:new Date().toISOString(),...p,...u&&{data:u}});switch(e){case"error":console.error(c);break;case"warn":console.warn(c);break;default:console.log(c)}}function p(){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 l(e){let t=r=>({debug:(t,n)=>i("debug",e,t,n,r),info:(t,n)=>i("info",e,t,n,r),warn:(t,n)=>i("warn",e,t,n,r),error:(t,n)=>i("error",e,t,n,r),withContext:e=>t({...r,...e})});return t()}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425],()=>r(19291));module.exports=n})();
|
|
@@ -1,10 +1,10 @@
|
|
|
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:()
|
|
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:()=>$,patchFetch:()=>E,requestAsyncStorage:()=>y,routeModule:()=>w,serverHooks:()=>C,staticGenerationAsyncStorage:()=>h});var a={};r.r(a),r.d(a,{GET:()=>g});var o=r(49303),n=r(88716),i=r(60670),s=r(87070),l=r(97425),u=r(75748),c=r(98636),d=r(29414),p=r(20629),x=r.n(p),f=r(55315),m=r.n(f);let g=(0,d.o)(async(e,{params:t})=>{try{let r=await Promise.resolve(t),a=(0,l.n)();if(!(0,u.gU)(a,r.id))return s.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let o=e.nextUrl?.searchParams,n=o?.get("cliTool")||"all",i=await (0,c.e7)(r.id,n),d=(await Promise.all(i.map(async e=>{let t=m().basename(e),r=await x().stat(e),a=e.split(m().sep),o=a[a.length-2];return{filename:t,cliToolId:o,size:r.size,modifiedAt:r.mtime.toISOString()}}))).map(e=>e.filename);return s.NextResponse.json(d,{status:200})}catch(e){return console.error("Error fetching log files:",e),s.NextResponse.json({error:"Failed to fetch log files"},{status:500})}}),w=new o.AppRouteRouteModule({definition:{kind:n.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:y,staticGenerationAsyncStorage:h,serverHooks:C}=w,$="/api/worktrees/[id]/logs/route";function E(){return(0,i.patchFetch)({serverHooks:C,staticGenerationAsyncStorage:h})}},98241:(e,t,r)=>{r.d(t,{s:()=>i});var a=r(55315),o=r.n(a),n=r(98838);function i(){return(0,n.Hb)("CM_LOG_DIR")||o().join(process.cwd(),"data","logs")}},29414:(e,t,r)=>{function a(e,t){let{logLevel:r="info",maxResponseBodyLength:a=1024,skipResponseBody:o=!1}=t??{};return async(t,r)=>e(t,r)}r.d(t,{o:()=>a}),(0,r(43895).h)("api")},98636:(e,t,r)=>{r.d(t,{e7:()=>p,xN:()=>d});var a=r(20629),o=r.n(a),n=r(55315),i=r.n(n),s=r(73853),l=r(98241);function u(e="claude"){return i().join((0,l.s)(),e)}async function c(e="claude"){let t=u(e);try{await o().access(t)}catch{await o().mkdir(t,{recursive:!0})}}async function d(e,t,r,a="claude"){await c(a);let n=function(e,t="claude"){let r=(0,s.WU)(new Date,"yyyy-MM-dd"),a=`${e}-${r}.md`,o=u(t);return i().join(o,a)}(e,a),l=(0,s.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),d="";try{d=await o().readFile(n,"utf-8")}catch{let t="claude"===a?"Claude Code":"codex"===a?"Codex CLI":"Gemini CLI";d=`# ${t} Conversation Log: ${e}
|
|
2
2
|
|
|
3
|
-
Created: ${
|
|
3
|
+
Created: ${l}
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
`}return
|
|
7
|
+
`}return d+=`## Conversation at ${l}
|
|
8
8
|
|
|
9
9
|
### User
|
|
10
10
|
|
|
@@ -16,4 +16,4 @@ ${r}
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
`,await o().writeFile(
|
|
19
|
+
`,await o().writeFile(n,d,"utf-8"),n}async function p(e,t="all"){let r=[];for(let a of"all"===t?["claude","codex","gemini"]:[t]){await c(a);let t=u(a);try{let a=(await o().readdir(t)).filter(t=>t.startsWith(`${e}-`)&&t.endsWith(".md")).map(e=>i().join(t,e));r.push(...a)}catch{}}return r.sort().reverse()}},43895:(e,t,r)=>{r.d(t,{Y:()=>l,h:()=>u});var a=r(98838);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:/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]"}],n=/password|secret|token|key|auth/i,i={debug:0,info:1,warn:2,error:3};function s(e,t,r,s,l){let u=(0,a.LI)().level;if(i[e]<i[u])return;let c=s?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[a,o]of Object.entries(t))n.test(a)?r[a]="[REDACTED]":r[a]=e(o);return r}return t}(s):void 0,d=function(e){if("json"===(0,a.LI)().format)return JSON.stringify(e);let{timestamp:t,level:r,module:o,action:n,data:i,worktreeId:s,cliToolId:l,requestId:u}=e,c=[s,l].filter(Boolean),d=c.length>0?` [${c.join(":")}]`:"",p=u?` (${u.slice(0,8)})`:"",x=i?` ${JSON.stringify(i)}`:"";return`[${t}] [${r.toUpperCase()}] [${o}]${d}${p} ${n}${x}`}({level:e,module:t,action:r,timestamp:new Date().toISOString(),...l,...c&&{data:c}});switch(e){case"error":console.error(d);break;case"warn":console.warn(d);break;default:console.log(d)}}function l(){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,a)=>s("debug",e,t,a,r),info:(t,a)=>s("info",e,t,a,r),warn:(t,a)=>s("warn",e,t,a,r),error:(t,a)=>s("error",e,t,a,r),withContext:e=>t({...r,...e})});return t()}}};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=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")},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")},46769:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>k,patchFetch:()=>q,requestAsyncStorage:()=>x,routeModule:()=>f,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var i={};r.r(i),r.d(i,{GET:()=>m,PATCH:()=>h});var o=r(49303),n=r(88716),s=r(60670),a=r(87070),u=r(97425),p=r(75748),c=r(43839),d=r(89194),l=r(13561),g=r(3979);async function m(e,{params:t}){try{let e;let r=(0,u.n)(),i=(0,p.gU)(r,t.id);if(!i)return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let o=c.g.getInstance(),n={},s=!1,m=!1,h=!1;for(let e of["claude","codex","gemini"]){let i=o.getTool(e),a=await i.isRunning(t.id),u=!1,c=!1;if(a)try{let i=await (0,d.NA)(t.id,e,100),o=(0,l._)(i,e);u="waiting"===o.status,c="running"===o.status,!o.hasActivePrompt&&(0,p._U)(r,t.id,void 0,10,e).some(e=>"prompt"===e.messageType&&e.promptData?.status!=="answered")&&(0,p.GP)(r,t.id,e)}catch{c=!0}n[e]={isRunning:a,isWaitingForResponse:u,isProcessing:c},a&&(s=!0),u&&(m=!0),c&&(h=!0)}try{let o=(0,p.Q7)(r,t.id);e=await (0,g.v)(i.path,o)}catch(e){console.error("[GET /api/worktrees/:id] Failed to get git status:",e)}return a.NextResponse.json({...i,gitStatus:e,isSessionRunning:s,isWaitingForResponse:m,isProcessing:h,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 h(e,{params:t}){try{let r=(0,u.n)();if(!(0,p.gU)(r,t.id))return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let i=await e.json();"description"in i&&(0,p.xr)(r,t.id,i.description),"link"in i&&(0,p.y)(r,t.id,i.link),"favorite"in i&&"boolean"==typeof i.favorite&&(0,p.R3)(r,t.id,i.favorite),"status"in i&&["todo","doing","done",null].includes(i.status)&&(0,p.Nf)(r,t.id,i.status),"cliToolId"in i&&["claude","codex","gemini"].includes(i.cliToolId)&&(0,p.VW)(r,t.id,i.cliToolId);let o=(0,p.gU)(r,t.id),n=c.g.getInstance(),s=o?.cliToolId||"claude",d=n.getTool(s),l=await d.isRunning(t.id);return a.NextResponse.json({...o,isSessionRunning:l},{status:200})}catch(e){return console.error("Error updating worktree:",e),a.NextResponse.json({error:"Failed to update worktree"},{status:500})}}let f=new o.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:i}),{requestAsyncStorage:x,staticGenerationAsyncStorage:w,serverHooks:v}=f,k="/api/worktrees/[id]/route";function q(){return(0,s.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}},3979:(e,t,r)=>{r.d(t,{v:()=>s});var i=r(61282);let o=(0,r(21764).promisify)(i.execFile);async function n(e,t){try{let{stdout:r}=await o("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 i=await n(["rev-parse","--abbrev-ref","HEAD"],e);r=null===i?"(unknown)":"HEAD"===i?"(detached HEAD)":i;let o=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:o??"(unknown)",isDirty:null!==s&&s.length>0}}},13561:(e,t,r)=>{r.d(t,{_:()=>n});var i=r(19377),o=r(63661);function n(e,t,r){let n=(0,i.vp)(e).split("\n"),s
|
|
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")},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")},46769:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>k,patchFetch:()=>q,requestAsyncStorage:()=>x,routeModule:()=>f,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var i={};r.r(i),r.d(i,{GET:()=>m,PATCH:()=>h});var o=r(49303),n=r(88716),s=r(60670),a=r(87070),u=r(97425),p=r(75748),c=r(43839),d=r(89194),l=r(13561),g=r(3979);async function m(e,{params:t}){try{let e;let r=(0,u.n)(),i=(0,p.gU)(r,t.id);if(!i)return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let o=c.g.getInstance(),n={},s=!1,m=!1,h=!1;for(let e of["claude","codex","gemini"]){let i=o.getTool(e),a=await i.isRunning(t.id),u=!1,c=!1;if(a)try{let i=await (0,d.NA)(t.id,e,100),o=(0,l._)(i,e);u="waiting"===o.status,c="running"===o.status,!o.hasActivePrompt&&(0,p._U)(r,t.id,void 0,10,e).some(e=>"prompt"===e.messageType&&e.promptData?.status!=="answered")&&(0,p.GP)(r,t.id,e)}catch{c=!0}n[e]={isRunning:a,isWaitingForResponse:u,isProcessing:c},a&&(s=!0),u&&(m=!0),c&&(h=!0)}try{let o=(0,p.Q7)(r,t.id);e=await (0,g.v)(i.path,o)}catch(e){console.error("[GET /api/worktrees/:id] Failed to get git status:",e)}return a.NextResponse.json({...i,gitStatus:e,isSessionRunning:s,isWaitingForResponse:m,isProcessing:h,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 h(e,{params:t}){try{let r=(0,u.n)();if(!(0,p.gU)(r,t.id))return a.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let i=await e.json();"description"in i&&(0,p.xr)(r,t.id,i.description),"link"in i&&(0,p.y)(r,t.id,i.link),"favorite"in i&&"boolean"==typeof i.favorite&&(0,p.R3)(r,t.id,i.favorite),"status"in i&&["todo","doing","done",null].includes(i.status)&&(0,p.Nf)(r,t.id,i.status),"cliToolId"in i&&["claude","codex","gemini"].includes(i.cliToolId)&&(0,p.VW)(r,t.id,i.cliToolId);let o=(0,p.gU)(r,t.id),n=c.g.getInstance(),s=o?.cliToolId||"claude",d=n.getTool(s),l=await d.isRunning(t.id);return a.NextResponse.json({...o,isSessionRunning:l},{status:200})}catch(e){return console.error("Error updating worktree:",e),a.NextResponse.json({error:"Failed to update worktree"},{status:500})}}let f=new o.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:i}),{requestAsyncStorage:x,staticGenerationAsyncStorage:w,serverHooks:v}=f,k="/api/worktrees/[id]/route";function q(){return(0,s.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}},3979:(e,t,r)=>{r.d(t,{v:()=>s});var i=r(61282);let o=(0,r(21764).promisify)(i.execFile);async function n(e,t){try{let{stdout:r}=await o("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 i=await n(["rev-parse","--abbrev-ref","HEAD"],e);r=null===i?"(unknown)":"HEAD"===i?"(detached HEAD)":i;let o=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:o??"(unknown)",isDirty:null!==s&&s.length>0}}},13561:(e,t,r)=>{r.d(t,{_:()=>n});var i=r(19377),o=r(63661);function n(e,t,r){let n=(0,i.vp)(e),s=n.split("\n"),a=s.length-1;for(;a>=0&&""===s[a].trim();)a--;let u=s.slice(0,a+1),p=u.slice(-15).join("\n"),c=u.slice(-5).join("\n"),d=(0,i.Sg)(t);if((0,o.F)(n,d).isPrompt)return{status:"waiting",confidence:"high",reason:"prompt_detected",hasActivePrompt:!0};if((0,i.Wg)(t,c))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1};let{promptPattern:l}=(0,i.bs)(t);return l.test(p)?{status:"ready",confidence:"high",reason:"input_prompt",hasActivePrompt:!1}:r&&Date.now()-r.getTime()>5e3?{status:"ready",confidence:"low",reason:"no_recent_output",hasActivePrompt:!1}:{status:"running",confidence:"low",reason:"default",hasActivePrompt:!1}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8948,5972,3853,4893,7425,9367,7536],()=>r(46769));module.exports=i})();
|
|
@@ -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")},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:()=>j,requestAsyncStorage:()=>T,routeModule:()=>S,serverHooks:()=>M,staticGenerationAsyncStorage:()=>A});var n={};r.r(n),r.d(n,{GET:()=>D});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 v(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 E=r(43895);let b=(0,E.h)("api-search");async function D(e,{params:t}){let r=Date.now(),n=(0,E.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 v(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 S=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:T,staticGenerationAsyncStorage:A,serverHooks:M}=S,R="/api/worktrees/[id]/search/route";function j(){return(0,i.patchFetch)({serverHooks:M,staticGenerationAsyncStorage:A})}},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(57569);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:/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:()=>j,requestAsyncStorage:()=>T,routeModule:()=>S,serverHooks:()=>M,staticGenerationAsyncStorage:()=>A});var n={};r.r(n),r.d(n,{GET:()=>D});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 v(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 E=r(43895);let b=(0,E.h)("api-search");async function D(e,{params:t}){let r=Date.now(),n=(0,E.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 v(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 S=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:T,staticGenerationAsyncStorage:A,serverHooks:M}=S,R="/api/worktrees/[id]/search/route";function j(){return(0,i.patchFetch)({serverHooks:M,staticGenerationAsyncStorage:A})}},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(98838);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:/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=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")},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")},17679:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>w,requestAsyncStorage:()=>x,routeModule:()=>g,serverHooks:()=>q,staticGenerationAsyncStorage:()=>f});var s={};t.r(s),t.d(s,{GET:()=>h,dynamic:()=>m});var o=t(49303),i=t(88716),n=t(60670),a=t(87070),p=t(97425),u=t(75748),c=t(43839),d=t(89194),l=t(13561);let m="force-dynamic";async function h(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(),n=["claude","codex","gemini"],m=await Promise.all(o.map(async e=>{let t={},s=!1,o=!1,a=!1;for(let p of n){let n=i.getTool(p),c=await n.isRunning(e.id),m=!1,h=!1;if(c)try{let t=await (0,d.NA)(e.id,p,100),s=(0,l._)(t,p);m="waiting"===s.status,h="running"===s.status,!s.hasActivePrompt&&(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{h=!0}t[p]={isRunning:c,isWaitingForResponse:m,isProcessing:h},c&&(s=!0),m&&(o=!0),h&&(a=!0)}return{...e,isSessionRunning:s,isWaitingForResponse:o,isProcessing:a,sessionStatusByCli:t}})),h=(0,u.ER)(r);return a.NextResponse.json({worktrees:m,repositories:h},{status:200})}catch(e){return console.error("Error fetching worktrees:",e),a.NextResponse.json({error:"Failed to fetch worktrees"},{status:500})}}let g=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:x,staticGenerationAsyncStorage:f,serverHooks:q}=g,v="/api/worktrees/route";function w(){return(0,n.patchFetch)({serverHooks:q,staticGenerationAsyncStorage:f})}},13561:(e,r,t)=>{t.d(r,{_:()=>i});var s=t(19377),o=t(63661);function i(e,r,t){let i=(0,s.vp)(e).split("\n"),n
|
|
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")},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")},17679:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>w,requestAsyncStorage:()=>x,routeModule:()=>g,serverHooks:()=>q,staticGenerationAsyncStorage:()=>f});var s={};t.r(s),t.d(s,{GET:()=>h,dynamic:()=>m});var o=t(49303),i=t(88716),n=t(60670),a=t(87070),p=t(97425),u=t(75748),c=t(43839),d=t(89194),l=t(13561);let m="force-dynamic";async function h(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(),n=["claude","codex","gemini"],m=await Promise.all(o.map(async e=>{let t={},s=!1,o=!1,a=!1;for(let p of n){let n=i.getTool(p),c=await n.isRunning(e.id),m=!1,h=!1;if(c)try{let t=await (0,d.NA)(e.id,p,100),s=(0,l._)(t,p);m="waiting"===s.status,h="running"===s.status,!s.hasActivePrompt&&(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{h=!0}t[p]={isRunning:c,isWaitingForResponse:m,isProcessing:h},c&&(s=!0),m&&(o=!0),h&&(a=!0)}return{...e,isSessionRunning:s,isWaitingForResponse:o,isProcessing:a,sessionStatusByCli:t}})),h=(0,u.ER)(r);return a.NextResponse.json({worktrees:m,repositories:h},{status:200})}catch(e){return console.error("Error fetching worktrees:",e),a.NextResponse.json({error:"Failed to fetch worktrees"},{status:500})}}let g=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:x,staticGenerationAsyncStorage:f,serverHooks:q}=g,v="/api/worktrees/route";function w(){return(0,n.patchFetch)({serverHooks:q,staticGenerationAsyncStorage:f})}},13561:(e,r,t)=>{t.d(r,{_:()=>i});var s=t(19377),o=t(63661);function i(e,r,t){let i=(0,s.vp)(e),n=i.split("\n"),a=n.length-1;for(;a>=0&&""===n[a].trim();)a--;let p=n.slice(0,a+1),u=p.slice(-15).join("\n"),c=p.slice(-5).join("\n"),d=(0,s.Sg)(r);if((0,o.F)(i,d).isPrompt)return{status:"waiting",confidence:"high",reason:"prompt_detected",hasActivePrompt:!0};if((0,s.Wg)(r,c))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1};let{promptPattern:l}=(0,s.bs)(r);return l.test(u)?{status:"ready",confidence:"high",reason:"input_prompt",hasActivePrompt:!1}:t&&Date.now()-t.getTime()>5e3?{status:"ready",confidence:"low",reason:"no_recent_output",hasActivePrompt:!1}:{status:"running",confidence:"low",reason:"default",hasActivePrompt:!1}}}};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,9367,7536],()=>t(17679));module.exports=s})();
|