commandmate 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -3
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +10 -10
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route.js +11 -12
- package/.next/server/app/api/external-apps/[id]/route.js +14 -15
- package/.next/server/app/api/external-apps/route.js +12 -13
- package/.next/server/app/api/hooks/claude-done/route.js +6 -6
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/slash-commands.body +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +7 -7
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js +12 -13
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +4 -4
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +8 -8
- package/.next/server/chunks/1318.js +4 -4
- package/.next/server/chunks/2597.js +1 -0
- package/.next/server/chunks/2648.js +1 -0
- package/.next/server/chunks/7425.js +97 -48
- package/.next/server/chunks/9723.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +2 -2
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-58fcf2e63c056743.js +1 -0
- package/.next/trace +5 -5
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -4
- package/dist/cli/commands/start.d.ts +2 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +64 -17
- package/dist/cli/commands/status.d.ts +4 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +95 -6
- package/dist/cli/commands/stop.d.ts +2 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +27 -10
- package/dist/cli/index.js +16 -2
- package/dist/cli/types/index.d.ts +20 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/daemon-factory.d.ts +105 -0
- package/dist/cli/utils/daemon-factory.d.ts.map +1 -0
- package/dist/cli/utils/daemon-factory.js +117 -0
- package/dist/cli/utils/daemon.d.ts.map +1 -1
- package/dist/cli/utils/daemon.js +4 -0
- package/dist/cli/utils/env-setup.d.ts +24 -12
- package/dist/cli/utils/env-setup.d.ts.map +1 -1
- package/dist/cli/utils/env-setup.js +64 -43
- package/dist/cli/utils/input-validators.d.ts +103 -0
- package/dist/cli/utils/input-validators.d.ts.map +1 -0
- package/dist/cli/utils/input-validators.js +163 -0
- package/dist/cli/utils/install-context.d.ts +53 -0
- package/dist/cli/utils/install-context.d.ts.map +1 -0
- package/dist/cli/utils/install-context.js +96 -0
- package/dist/cli/utils/pid-manager.d.ts +34 -0
- package/dist/cli/utils/pid-manager.d.ts.map +1 -1
- package/dist/cli/utils/pid-manager.js +43 -0
- package/dist/cli/utils/port-allocator.d.ts +108 -0
- package/dist/cli/utils/port-allocator.d.ts.map +1 -0
- package/dist/cli/utils/port-allocator.js +166 -0
- package/dist/cli/utils/resource-resolvers.d.ts +92 -0
- package/dist/cli/utils/resource-resolvers.d.ts.map +1 -0
- package/dist/cli/utils/resource-resolvers.js +175 -0
- package/dist/cli/utils/worktree-detector.d.ts +82 -0
- package/dist/cli/utils/worktree-detector.d.ts.map +1 -0
- package/dist/cli/utils/worktree-detector.js +221 -0
- package/dist/lib/errors.d.ts +111 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +153 -0
- package/dist/server/server.js +3 -0
- package/dist/server/src/cli/utils/install-context.js +96 -0
- package/dist/server/src/config/system-directories.js +40 -0
- package/dist/server/src/lib/auto-yes-manager.js +324 -0
- package/dist/server/src/lib/auto-yes-resolver.js +34 -0
- package/dist/server/src/lib/claude-session.js +134 -28
- package/dist/server/src/lib/cli-patterns.js +6 -1
- package/dist/server/src/lib/db-instance.js +12 -2
- package/dist/server/src/lib/db-migrations.js +68 -1
- package/dist/server/src/lib/db-path-resolver.js +99 -0
- package/dist/server/src/lib/db.js +21 -0
- package/dist/server/src/lib/env.js +52 -3
- package/dist/server/src/lib/worktrees.js +36 -1
- package/dist/server/src/types/external-apps.js +20 -0
- package/package.json +1 -1
- package/.next/server/chunks/1528.js +0 -1
- package/.next/server/chunks/7213.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-aea2d5e7e28955be.js +0 -1
- /package/.next/static/{8o5rUyZun0GklIHWDgkmv → 564GHwluX5xIv9qpqLJV2}/_buildManifest.js +0 -0
- /package/.next/static/{8o5rUyZun0GklIHWDgkmv → 564GHwluX5xIv9qpqLJV2}/_ssgManifest.js +0 -0
- /package/.next/static/chunks/app/{page-96a8aa2ec30a44e9.js → page-fe35d61f14b90a51.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=3494,e.ids=[3494],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},51495:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>E,patchFetch:()=>P,requestAsyncStorage:()=>x,routeModule:()=>b,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var r={};a.r(r),a.d(r,{GET:()=>m,POST:()=>g,dynamic:()=>_});var s=a(49303),n=a(88716),p=a(60670),o=a(87070),i=a(97425),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3494,e.ids=[3494],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},51495:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>E,patchFetch:()=>P,requestAsyncStorage:()=>x,routeModule:()=>b,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var r={};a.r(r),a.d(r,{GET:()=>m,POST:()=>g,dynamic:()=>_});var s=a(49303),n=a(88716),p=a(60670),o=a(87070),i=a(97425),l=a(51172),d=a(73068);let c={MIN:1024,MAX:65535},h=["localhost","127.0.0.1"],u=/^[a-zA-Z0-9-]+$/,f=["sveltekit","streamlit","nextjs","other"],_="force-dynamic";async function m(){try{let e=(0,i.n)(),t=(0,l.ke)(e);return o.NextResponse.json({apps:t},{status:200})}catch(e){return console.error("Error fetching external apps:",e),o.NextResponse.json({error:"Failed to fetch external apps"},{status:500})}}async function g(e){try{let t=(0,i.n)(),a=await e.json(),r=function(e){var t,a,r,s;let n=[];return e&&"object"==typeof e?(((e.name&&"string"==typeof e.name||n.push({field:"name",message:"name is required and must be a string"}),e.displayName&&"string"==typeof e.displayName||n.push({field:"displayName",message:"displayName is required and must be a string"}),e.pathPrefix&&"string"==typeof e.pathPrefix)?"string"==typeof(t=e.pathPrefix)&&t.length>0&&u.test(t)||n.push({field:"pathPrefix",message:"pathPrefix must contain only alphanumeric characters and hyphens"}):n.push({field:"pathPrefix",message:"pathPrefix is required and must be a string"}),void 0===e.targetPort||"number"!=typeof e.targetPort?n.push({field:"targetPort",message:"targetPort is required and must be a number"}):(s=e.targetPort,Number.isInteger(s)&&s>=c.MIN&&s<=c.MAX||n.push({field:"targetPort",message:`targetPort must be between ${c.MIN} and ${c.MAX}`})),e.appType&&"string"==typeof e.appType)?(a=e.appType,f.includes(a)||n.push({field:"appType",message:`appType must be one of: ${f.join(", ")}`})):n.push({field:"appType",message:"appType is required and must be a string"}),void 0===e.targetHost||"string"!=typeof e.targetHost||(r=e.targetHost,h.includes(r)||n.push({field:"targetHost",message:`targetHost must be one of: ${h.join(", ")}`})),n):(n.push({field:"body",message:"Request body is required"}),n)}(a);if(r.length>0)return o.NextResponse.json({error:r.map(e=>`${e.field}: ${e.message}`).join("; "),validationErrors:r},{status:400});let s={name:a.name,displayName:a.displayName,description:a.description,pathPrefix:a.pathPrefix,targetPort:a.targetPort,targetHost:a.targetHost||"localhost",appType:a.appType,websocketEnabled:a.websocketEnabled||!1,websocketPathPattern:a.websocketPathPattern};try{if((0,l.F1)(t,s.pathPrefix))return o.NextResponse.json({error:`An app with pathPrefix "${s.pathPrefix}" already exists`},{status:409});let e=(0,l.j6)(t,s);try{(0,d.V_)(t).invalidate()}catch{}return o.NextResponse.json({app:e},{status:201})}catch(e){if(e instanceof Error&&e.message.includes("UNIQUE constraint"))return o.NextResponse.json({error:`An app with name "${s.name}" or pathPrefix "${s.pathPrefix}" already exists`},{status:409});throw e}}catch(e){return console.error("Error creating external app:",e),o.NextResponse.json({error:"Failed to create external app"},{status:500})}}let b=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/external-apps/route",pathname:"/api/external-apps",filename:"route",bundlePath:"app/api/external-apps/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/external-apps/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:x,staticGenerationAsyncStorage:y,serverHooks:w}=b,E="/api/external-apps/route";function P(){return(0,p.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:y})}},73068:(e,t,a)=>{a.d(t,{V_:()=>p});var r=a(51172);class s{constructor(e,t=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=e,this.ttl=t}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let e=(0,r.J6)(this.db);for(let t of(this.cache.clear(),e))this.cache.set(t.pathPrefix,t);this.allAppsCache=e,this.lastRefresh=Date.now()}async getByPathPrefix(e){return this.isStale()&&await this.refresh(),this.cache.get(e)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(e){this.invalidate()}}let n=null;function p(e){if(!n){if(!e)throw Error("Database instance required to initialize cache");n=new s(e)}return n}},51172:(e,t,a)=>{a.d(t,{F1:()=>i,J6:()=>h,JF:()=>o,j6:()=>p,ke:()=>l,uz:()=>d,vV:()=>c});var r=a(84770);class s extends Error{constructor(e,t,a){super(e),this.code=t,this.cause=a,this.name="ExternalAppDbError"}}function n(e){return{id:e.id,name:e.name,displayName:e.display_name,description:e.description??void 0,pathPrefix:e.path_prefix,targetPort:e.target_port,targetHost:e.target_host,appType:e.app_type,websocketEnabled:1===e.websocket_enabled,websocketPathPattern:e.websocket_path_pattern??void 0,enabled:1===e.enabled,createdAt:e.created_at,updatedAt:e.updated_at}}function p(e,t){let a=(0,r.randomUUID)(),n=Date.now(),p={name:t.name,display_name:t.displayName,description:t.description??null,path_prefix:t.pathPrefix,target_port:t.targetPort,target_host:t.targetHost??"localhost",app_type:t.appType,websocket_enabled:t.websocketEnabled?1:0,websocket_path_pattern:t.websocketPathPattern??null};try{return e.prepare(`
|
|
2
2
|
INSERT INTO external_apps (
|
|
3
3
|
id, name, display_name, description, path_prefix,
|
|
4
4
|
target_port, target_host, app_type,
|
|
@@ -20,26 +20,25 @@
|
|
|
20
20
|
enabled, created_at, updated_at
|
|
21
21
|
FROM external_apps
|
|
22
22
|
WHERE path_prefix = ?
|
|
23
|
-
`).get(t);if(!a)return null;return n(a)}catch(e){throw new s(`Failed to get external app by path prefix: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function
|
|
23
|
+
`).get(t);if(!a)return null;return n(a)}catch(e){throw new s(`Failed to get external app by path prefix: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function l(e){try{return e.prepare(`
|
|
24
24
|
SELECT id, name, display_name, description, path_prefix,
|
|
25
25
|
target_port, target_host, app_type,
|
|
26
26
|
websocket_enabled, websocket_path_pattern,
|
|
27
27
|
enabled, created_at, updated_at
|
|
28
28
|
FROM external_apps
|
|
29
29
|
ORDER BY name ASC
|
|
30
|
-
`).all().map(n)}catch(e){throw new s(`Failed to get all external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function
|
|
31
|
-
SELECT id, name, display_name, description, path_prefix,
|
|
32
|
-
target_port, target_host, app_type,
|
|
33
|
-
websocket_enabled, websocket_path_pattern,
|
|
34
|
-
enabled, created_at, updated_at
|
|
35
|
-
FROM external_apps
|
|
36
|
-
WHERE enabled = 1
|
|
37
|
-
ORDER BY name ASC
|
|
38
|
-
`).all().map(n)}catch(e){throw new s(`Failed to get enabled external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function c(e,t,a){if(!o(e,t))throw new s(`External app not found: ${t}`,"NOT_FOUND");try{let r=Date.now(),s=["updated_at = ?"],n=[r];return void 0!==a.displayName&&(s.push("display_name = ?"),n.push(a.displayName)),void 0!==a.description&&(s.push("description = ?"),n.push(a.description)),void 0!==a.targetPort&&(s.push("target_port = ?"),n.push(a.targetPort)),void 0!==a.targetHost&&(s.push("target_host = ?"),n.push(a.targetHost)),void 0!==a.websocketEnabled&&(s.push("websocket_enabled = ?"),n.push(a.websocketEnabled?1:0)),void 0!==a.websocketPathPattern&&(s.push("websocket_path_pattern = ?"),n.push(a.websocketPathPattern)),void 0!==a.enabled&&(s.push("enabled = ?"),n.push(a.enabled?1:0)),n.push(t),e.prepare(`
|
|
30
|
+
`).all().map(n)}catch(e){throw new s(`Failed to get all external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function d(e,t,a){if(!o(e,t))throw new s(`External app not found: ${t}`,"NOT_FOUND");try{let r=Date.now(),s=["updated_at = ?"],n=[r];return void 0!==a.displayName&&(s.push("display_name = ?"),n.push(a.displayName)),void 0!==a.description&&(s.push("description = ?"),n.push(a.description)),void 0!==a.targetPort&&(s.push("target_port = ?"),n.push(a.targetPort)),void 0!==a.targetHost&&(s.push("target_host = ?"),n.push(a.targetHost)),void 0!==a.websocketEnabled&&(s.push("websocket_enabled = ?"),n.push(a.websocketEnabled?1:0)),void 0!==a.websocketPathPattern&&(s.push("websocket_path_pattern = ?"),n.push(a.websocketPathPattern)),void 0!==a.enabled&&(s.push("enabled = ?"),n.push(a.enabled?1:0)),n.push(t),e.prepare(`
|
|
39
31
|
UPDATE external_apps
|
|
40
32
|
SET ${s.join(", ")}
|
|
41
33
|
WHERE id = ?
|
|
42
|
-
`).run(...n),o(e,t)}catch(e){if(e instanceof s)throw e;throw new s(`Failed to update external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function
|
|
34
|
+
`).run(...n),o(e,t)}catch(e){if(e instanceof s)throw e;throw new s(`Failed to update external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function c(e,t){try{e.prepare(`
|
|
43
35
|
DELETE FROM external_apps
|
|
44
36
|
WHERE id = ?
|
|
45
|
-
`).run(t)}catch(e){throw new s(`Failed to delete external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}
|
|
37
|
+
`).run(t)}catch(e){throw new s(`Failed to delete external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function h(e,t){try{let a=`
|
|
38
|
+
SELECT id, name, display_name, description, path_prefix,
|
|
39
|
+
target_port, target_host, app_type,
|
|
40
|
+
websocket_enabled, websocket_path_pattern,
|
|
41
|
+
enabled, created_at, updated_at, issue_no
|
|
42
|
+
FROM external_apps
|
|
43
|
+
WHERE enabled = 1
|
|
44
|
+
`,r=[];t?.issueNo===null?a+=" AND issue_no IS NULL":t?.issueNo!==void 0&&(a+=" AND issue_no = ?",r.push(t.issueNo)),a+=" ORDER BY name ASC";let s=e.prepare(a);return(r.length>0?s.all(...r):s.all()).map(n)}catch(e){throw new s(`Failed to get enabled external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}}};var t=require("../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[8948,5972,7425],()=>a(51495));module.exports=r})();
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
(()=>{var e={};e.id=2568,e.ids=[2568],e.modules={85890:e=>{"use strict";e.exports=require("better-sqlite3")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{"use strict";e.exports=require("buffer")},61282:e=>{"use strict";e.exports=require("child_process")},84770:e=>{"use strict";e.exports=require("crypto")},17702:e=>{"use strict";e.exports=require("events")},92048:e=>{"use strict";e.exports=require("fs")},20629:e=>{"use strict";e.exports=require("fs/promises")},32615:e=>{"use strict";e.exports=require("http")},35240:e=>{"use strict";e.exports=require("https")},98216:e=>{"use strict";e.exports=require("net")},55315:e=>{"use strict";e.exports=require("path")},76162:e=>{"use strict";e.exports=require("stream")},82452:e=>{"use strict";e.exports=require("tls")},17360:e=>{"use strict";e.exports=require("url")},21764:e=>{"use strict";e.exports=require("util")},71568:e=>{"use strict";e.exports=require("zlib")},58359:()=>{},93739:()=>{},74859:(e,t
|
|
1
|
+
(()=>{var e={};e.id=2568,e.ids=[2568],e.modules={85890:e=>{"use strict";e.exports=require("better-sqlite3")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{"use strict";e.exports=require("buffer")},61282:e=>{"use strict";e.exports=require("child_process")},84770:e=>{"use strict";e.exports=require("crypto")},17702:e=>{"use strict";e.exports=require("events")},92048:e=>{"use strict";e.exports=require("fs")},20629:e=>{"use strict";e.exports=require("fs/promises")},32615:e=>{"use strict";e.exports=require("http")},35240:e=>{"use strict";e.exports=require("https")},98216:e=>{"use strict";e.exports=require("net")},19801:e=>{"use strict";e.exports=require("os")},55315:e=>{"use strict";e.exports=require("path")},76162:e=>{"use strict";e.exports=require("stream")},82452:e=>{"use strict";e.exports=require("tls")},17360:e=>{"use strict";e.exports=require("url")},21764:e=>{"use strict";e.exports=require("util")},71568:e=>{"use strict";e.exports=require("zlib")},58359:()=>{},93739:()=>{},74859:(e,r,t)=>{"use strict";t.r(r),t.d(r,{originalPathname:()=>h,patchFetch:()=>k,requestAsyncStorage:()=>g,routeModule:()=>w,serverHooks:()=>y,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{POST:()=>f});var s=t(49303),a=t(88716),n=t(60670),i=t(87070),u=t(97425),c=t(75748),d=t(62648),l=t(25079),p=t(89287),m=t(76966);async function f(e){try{let r;let t=(0,u.n)(),o=await e.json();if(!o.worktreeId||"string"!=typeof o.worktreeId)return i.NextResponse.json({error:"worktreeId is required and must be a string"},{status:400});if(!(0,c.gU)(t,o.worktreeId))return i.NextResponse.json({error:`Worktree '${o.worktreeId}' not found`},{status:404});try{r=await (0,d.Lm)(o.worktreeId,1e4)}catch(r){console.error("Failed to capture Claude output:",r);let e=r instanceof Error?r.message:"Unknown error";return i.NextResponse.json({error:`Failed to capture Claude output: ${e}`},{status:500})}let s=(0,p.Z)(r);await (0,m.o)(t,o.worktreeId,s.content,"claude");let a=(0,c.tn)(t,{worktreeId:o.worktreeId,role:"assistant",content:s.content,summary:s.summary,timestamp:new Date,logFileName:s.logFileName,requestId:s.requestId,messageType:"normal",cliToolId:"claude"}),n=r.split("\n").length;return(0,c.IH)(t,o.worktreeId,"claude",n),(0,l.ps)("message",{worktreeId:o.worktreeId,message:a}),console.log(`✓ Processed Claude response for worktree: ${o.worktreeId}`),i.NextResponse.json({success:!0,messageId:a.id,summary:s.summary},{status:200})}catch(e){return console.error("Error processing Claude done hook:",e),i.NextResponse.json({error:"Failed to process Claude done hook"},{status:500})}}let w=new s.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/hooks/claude-done/route",pathname:"/api/hooks/claude-done",filename:"route",bundlePath:"app/api/hooks/claude-done/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/hooks/claude-done/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:g,staticGenerationAsyncStorage:x,serverHooks:y}=w,h="/api/hooks/claude-done/route";function k(){return(0,n.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:x})}},89287:(e,r,t)=>{"use strict";t.d(r,{Z:()=>n});let o=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,s=/Request ID: ([^\s\n]+)/,a=/Summary: (.+?)(?:\n─|$)/s;function n(e){let r={content:e},t=o.exec(e);t&&(r.logFileName=t[2]);let n=s.exec(e);n&&(r.requestId=n[1]);let i=a.exec(e);return i&&(r.summary=i[1].trim()),r}},76966:(e,r,t)=>{"use strict";t.d(r,{o:()=>a});var o=t(75748),s=t(98636);async function a(e,r,t,a="claude"){let n=(0,o.vX)(e,r);if(n)try{await (0,s.xN)(r,n.content,t,a)}catch(e){console.error("[recordClaudeConversation] Failed to create log file:",e)}}},98636:(e,r,t)=>{"use strict";t.d(r,{e7:()=>p,xN:()=>l});var o=t(20629),s=t.n(o),a=t(55315),n=t.n(a),i=t(73853);let u=(0,t(93346).Hb)("CM_LOG_DIR")||n().join(process.cwd(),"data","logs");function c(e="claude"){return n().join(u,e)}async function d(e="claude"){let r=c(e);try{await s().access(r)}catch{await s().mkdir(r,{recursive:!0})}}async function l(e,r,t,o="claude"){await d(o);let a=function(e,r="claude"){let t=(0,i.WU)(new Date,"yyyy-MM-dd"),o=`${e}-${t}.md`,s=c(r);return n().join(s,o)}(e,o),u=(0,i.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),l="";try{l=await s().readFile(a,"utf-8")}catch{let r="claude"===o?"Claude Code":"codex"===o?"Codex CLI":"Gemini CLI";l=`# ${r} Conversation Log: ${e}
|
|
2
2
|
|
|
3
|
-
Created: ${
|
|
3
|
+
Created: ${u}
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
`}return
|
|
7
|
+
`}return l+=`## Conversation at ${u}
|
|
8
8
|
|
|
9
9
|
### User
|
|
10
10
|
|
|
11
|
-
${
|
|
11
|
+
${r}
|
|
12
12
|
|
|
13
13
|
### ${"claude"===o?"Claude":"codex"===o?"Codex":"Gemini"}
|
|
14
14
|
|
|
15
|
-
${
|
|
15
|
+
${t}
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
`,await s().writeFile(a,
|
|
19
|
+
`,await s().writeFile(a,l,"utf-8"),a}async function p(e,r="all"){let t=[];for(let o of"all"===r?["claude","codex","gemini"]:[r]){await d(o);let r=c(o);try{let o=(await s().readdir(r)).filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".md")).map(e=>n().join(r,e));t.push(...o)}catch{}}return t.sort().reverse()}},25079:(e,r,t)=>{"use strict";t.d(r,{ZV:()=>c,fM:()=>i,ps:()=>u});var o=t(34893);let s=new Map,a=new Map;function n(e,r){let t=a.get(e);if(console.log(`[WS] handleBroadcast called for ${e}, room size: ${t?.size||0}`),!t){console.log(`[WS] No room found for ${e}`);return}if(0===t.size){console.log(`[WS] Room for ${e} is empty`);return}try{let s=JSON.stringify({type:"broadcast",worktreeId:e,data:r}),a=0,n=0;t.forEach(e=>{if(e.readyState===o.XY.OPEN)try{e.send(s),a++}catch(e){n++,console.error("Error sending WebSocket message to client:",e)}}),console.log(`Broadcast to worktree ${e}: ${a}/${t.size} clients (${n} errors)`)}catch(r){console.error(`Error broadcasting to worktree ${e}:`,r);try{let r=JSON.stringify({type:"broadcast",worktreeId:e,data:{error:"Message encoding error"}});t.forEach(e=>{if(e.readyState===o.XY.OPEN)try{e.send(r)}catch{}})}catch(e){console.error("Failed to send fallback message:",e)}}}function i(e,r){n(e,r)}function u(e,r){r.worktreeId?n(r.worktreeId,{type:e,...r}):console.warn("broadcastMessage called without worktreeId")}function c(e){for(let r of e){let e=a.get(r);e&&(e.forEach(e=>{let t=s.get(e);t&&t.worktreeIds.delete(r)}),a.delete(r),console.log(`[WS] Cleaned up room for worktree: ${r}`))}}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,3853,4893,7425,2648],()=>t(74859));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/3853.js","../../../../chunks/4893.js","../../../../chunks/5972.js","../../../../chunks/7425.js","../../../../chunks/8948.js","../../../../webpack-runtime.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/2648.js","../../../../chunks/3853.js","../../../../chunks/4893.js","../../../../chunks/5972.js","../../../../chunks/7425.js","../../../../chunks/8948.js","../../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=9578,e.ids=[9578],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},11303:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>b,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>j,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>c});var s=t(49303),n=t(88716),i=t(60670),u=t(87070),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=9578,e.ids=[9578],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")},11303:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>b,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>j,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>c});var s=t(49303),n=t(88716),i=t(60670),u=t(87070),p=t(97425),a=t(61318);async function c(e,{params:r}){try{let{jobId:e}=await r;if(!e)return u.NextResponse.json({success:!1,error:"Job ID is required"},{status:400});let t=(0,p.n)(),o=new a.v(t).getCloneJobStatus(e);if(!o)return u.NextResponse.json({success:!1,error:"Clone job not found"},{status:404});let s={success:!0,jobId:o.jobId,status:o.status,progress:o.progress,repositoryId:o.repositoryId};return o.error&&(s.error=o.error),u.NextResponse.json(s,{status:200})}catch(e){return console.error("[Clone Status API] Unexpected error:",e),u.NextResponse.json({success:!1,error:"Failed to get clone job status"},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/clone/[jobId]/route",pathname:"/api/repositories/clone/[jobId]",filename:"route",bundlePath:"app/api/repositories/clone/[jobId]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/clone/[jobId]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:j}=d,m="/api/repositories/clone/[jobId]/route";function b(){return(0,i.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425,1318],()=>t(11303));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=541,e.ids=[541],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},28841:(e,r,o)=>{o.r(r),o.d(r,{originalPathname:()=>j,patchFetch:()=>R,requestAsyncStorage:()=>g,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>m});var t={};o.r(t),o.d(t,{POST:()=>l});var s=o(49303),n=o(88716),a=o(60670),i=o(87070),c=o(97425),u=o(61318);let p="[Clone API]";async function l(e){try{let{cloneUrl:r,targetDir:o}=await e.json();if(!r||"string"!=typeof r||""===r.trim())return i.NextResponse.json({success:!1,error:{category:"validation",code:"EMPTY_URL",message:"Clone URL is required",recoverable:!0,suggestedAction:"Please enter a valid git clone URL"}},{status:400});let t=(0,c.n)(),s=new u.v(t);console.info(`${p} Starting clone job for: ${r}`);let n=await s.startCloneJob(r.trim(),o);if(!n.success){let e=400;return(n.error?.code==="DUPLICATE_CLONE_URL"||n.error?.code==="CLONE_IN_PROGRESS")&&(e=409),console.warn(`${p} Clone job failed: ${n.error?.code} - ${n.error?.message}`),i.NextResponse.json({success:!1,error:n.error,jobId:n.jobId},{status:e})}return console.info(`${p} Clone job created: ${n.jobId}`),i.NextResponse.json({success:!0,jobId:n.jobId,status:"pending",message:"Clone job started"},{status:202})}catch(e){return console.error(`${p} Unexpected error:`,e),i.NextResponse.json({success:!1,error:{category:"system",code:"INTERNAL_ERROR",message:"Failed to start clone job",recoverable:!1,suggestedAction:"Please try again later"}},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/clone/route",pathname:"/api/repositories/clone",filename:"route",bundlePath:"app/api/repositories/clone/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/clone/route.ts",nextConfigOutput:"",userland:t}),{requestAsyncStorage:g,staticGenerationAsyncStorage:m,serverHooks:x}=d,j="/api/repositories/clone/route";function R(){return(0,a.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:m})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var o=e=>r(r.s=e),t=r.X(0,[8948,5972,7425,1318],()=>o(28841));module.exports=t})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=541,e.ids=[541],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")},28841:(e,r,o)=>{o.r(r),o.d(r,{originalPathname:()=>j,patchFetch:()=>R,requestAsyncStorage:()=>g,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>m});var t={};o.r(t),o.d(t,{POST:()=>l});var s=o(49303),n=o(88716),a=o(60670),i=o(87070),c=o(97425),u=o(61318);let p="[Clone API]";async function l(e){try{let{cloneUrl:r,targetDir:o}=await e.json();if(!r||"string"!=typeof r||""===r.trim())return i.NextResponse.json({success:!1,error:{category:"validation",code:"EMPTY_URL",message:"Clone URL is required",recoverable:!0,suggestedAction:"Please enter a valid git clone URL"}},{status:400});let t=(0,c.n)(),s=new u.v(t);console.info(`${p} Starting clone job for: ${r}`);let n=await s.startCloneJob(r.trim(),o);if(!n.success){let e=400;return(n.error?.code==="DUPLICATE_CLONE_URL"||n.error?.code==="CLONE_IN_PROGRESS")&&(e=409),console.warn(`${p} Clone job failed: ${n.error?.code} - ${n.error?.message}`),i.NextResponse.json({success:!1,error:n.error,jobId:n.jobId},{status:e})}return console.info(`${p} Clone job created: ${n.jobId}`),i.NextResponse.json({success:!0,jobId:n.jobId,status:"pending",message:"Clone job started"},{status:202})}catch(e){return console.error(`${p} Unexpected error:`,e),i.NextResponse.json({success:!1,error:{category:"system",code:"INTERNAL_ERROR",message:"Failed to start clone job",recoverable:!1,suggestedAction:"Please try again later"}},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/clone/route",pathname:"/api/repositories/clone",filename:"route",bundlePath:"app/api/repositories/clone/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/clone/route.ts",nextConfigOutput:"",userland:t}),{requestAsyncStorage:g,staticGenerationAsyncStorage:m,serverHooks:x}=d,j="/api/repositories/clone/route";function R(){return(0,a.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:m})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var o=e=>r(r.s=e),t=r.X(0,[8948,5972,7425,1318],()=>o(28841));module.exports=t})();
|
|
@@ -1 +1 @@
|
|
|
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")},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")},32511:(e,r,
|
|
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")},32511:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>A,patchFetch:()=>P,requestAsyncStorage:()=>E,routeModule:()=>b,serverHooks:()=>I,staticGenerationAsyncStorage:()=>k});var o={};t.r(o),t.d(o,{DELETE:()=>q});var s=t(49303),n=t(88716),l=t(60670),i=t(87070),a=t(97425),u=t(75748),p=t(59991);t(62648);var c=t(25079);t(63661),t(76966);let d=new Map,f=new Map;var g=t(60667);let $=["claude","codex","gemini"],m="[Session Cleanup]";async function h(e,r){let t={worktreeId:e,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let o of $){try{await r(e,o)&&(t.sessionsKilled.push(o),console.info(`${m} Killed session: ${e}/${o}`))}catch(s){let r=`${o}: ${s instanceof Error?s.message:String(s)}`;t.sessionErrors.push(r),console.warn(`${m} Failed to kill session ${e}/${o}:`,s)}try{(0,p.FN)(e,o),t.pollersStopped.push(`response-poller:${o}`)}catch(s){let r=`response-poller:${o}: ${s instanceof Error?s.message:String(s)}`;t.pollerErrors.push(r),console.warn(`${m} Failed to stop response-poller ${e}/${o}:`,s)}}try{(function(e){let r=d.get(e);r&&(clearInterval(r),d.delete(e),f.delete(e),console.log(`Stopped poller for ${e}`))})(e),t.pollersStopped.push("claude-poller")}catch(o){let r=`claude-poller: ${o instanceof Error?o.message:String(o)}`;t.pollerErrors.push(r),console.warn(`${m} Failed to stop claude-poller ${e}:`,o)}try{(0,g.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(`${m} Failed to stop auto-yes-poller ${e}:`,o)}return t}async function w(e,r){let t=[],o=[];for(let s of e){let e=await h(s,r);for(let r of(t.push(e),e.sessionErrors))o.push(`Session kill error (${s}): ${r}`);for(let r of e.pollerErrors)o.push(`Poller stop error (${s}): ${r}`)}return{results:t,warnings:o}}var x=t(97213),y=t(10927);let v="[Repository Delete]";async function S(e,r){let t=x.g.getInstance().getTool(r);if(!await t.isRunning(e))return!1;let o=t.getSessionName(e);return(0,y.AJ)(o)}async function q(e){try{let r;let{repositoryPath:t}=await e.json();if(!t||"string"!=typeof t)return i.NextResponse.json({success:!1,error:"repositoryPath is required"},{status:400});let o=(0,a.n)(),s=(0,u.Pv)(o,t);if(0===s.length)return i.NextResponse.json({success:!1,error:"Repository not found"},{status:404});console.info(`${v} Starting deletion: ${t}, worktrees: ${s.length}`);let n=await w(s,S);for(let e of n.results)e.sessionsKilled.length>0&&console.info(`${v} Sessions killed for ${e.worktreeId}: ${e.sessionsKilled.join(", ")}`),e.sessionErrors.length>0&&console.warn(`${v} Session kill errors for ${e.worktreeId}: ${e.sessionErrors.join(", ")}`);(0,c.ZV)(s);try{r=(0,u.DF)(o,t).deletedCount,console.info(`${v} Successfully deleted ${r} worktrees from: ${t}`)}catch(e){return console.error(`${v} Database deletion failed for ${t}:`,e),i.NextResponse.json({success:!1,error:"Database deletion failed"},{status:500})}(0,c.ps)("repository_deleted",{worktreeId:"global",repositoryPath:t,deletedWorktreeIds:s});let l={success:!0,deletedWorktreeCount:r,deletedWorktreeIds:s};return n.warnings.length>0?(l.warnings=n.warnings,console.info(`${v} Completed with ${n.warnings.length} warnings: ${t}`)):console.info(`${v} Completed successfully: ${t}`),i.NextResponse.json(l,{status:200})}catch(e){return console.error(`${v} Unexpected error:`,e),i.NextResponse.json({success:!1,error:"Failed to delete repository"},{status:500})}}let b=new s.AppRouteRouteModule({definition:{kind:n.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:E,staticGenerationAsyncStorage:k,serverHooks:I}=b,A="/api/repositories/route";function P(){return(0,l.patchFetch)({serverHooks:I,staticGenerationAsyncStorage:k})}},60667:(e,r,t)=>{t.d(r,{bq:()=>d,gf:()=>g,bY:()=>f,w:()=>h,Qz:()=>w});var o=t(89194),s=t(63661),n=t(10927),l=t(97213),i=t(19377);let a=/^[a-zA-Z0-9_-]+$/,u=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),p=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function c(e){return Date.now()>e.expiresAt}function d(e){let r=u.get(e);if(!r)return null;if(c(r)){let t={...r,enabled:!1};return u.set(e,t),t}return r}function f(e,r){if(r){let r=Date.now(),t={enabled:!0,enabledAt:r,expiresAt:r+36e5};return u.set(e,t),t}{let r=u.get(e),t={enabled:!1,enabledAt:r?.enabledAt??0,expiresAt:r?.expiresAt??0};return u.set(e,t),t}}function g(e){let r=p.get(e);return r?.lastServerResponseTimestamp??null}async function $(e,r){if(!p.get(e))return;let t=d(e);if(!t?.enabled||c(t)){w(e);return}try{let t=await (0,o.NA)(e,r,5e3),a=(0,i.vp)(t),u=(0,s.F)(a);if(!u.isPrompt||!u.promptData){m(e,r);return}let c=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}(u.promptData);if(null===c){m(e,r);return}let d=l.g.getInstance().getTool(r).getSessionName(e);await (0,n.Is)(d,c,!1),await new Promise(e=>setTimeout(e,100)),await (0,n.Is)(d,"",!0),function(e,r){let t=p.get(e);t&&(t.lastServerResponseTimestamp=r)}(e,Date.now()),function(e){let r=p.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=p.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}`)}m(e,r)}function m(e,r){let t=p.get(e);t&&(t.timerId=setTimeout(()=>{$(e,r)},t.currentInterval))}function h(e,r){if(!(e&&0!==e.length&&a.test(e)))return{started:!1,reason:"invalid worktree ID"};let t=d(e);if(!t?.enabled)return{started:!1,reason:"auto-yes not enabled"};let o=p.has(e);if(!o&&p.size>=50)return{started:!1,reason:"max concurrent pollers reached"};o&&w(e);let s={timerId:null,cliToolId:r,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return p.set(e,s),s.timerId=setTimeout(()=>{$(e,r)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${r}`),{started:!0}}function w(e){let r=p.get(e);r&&(r.timerId&&clearTimeout(r.timerId),p.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,3853,4893,7425,2648,2597,9723],()=>t(32511));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/2597.js","../../../chunks/2648.js","../../../chunks/3853.js","../../../chunks/4893.js","../../../chunks/5972.js","../../../chunks/7425.js","../../../chunks/8948.js","../../../chunks/9723.js","../../../webpack-runtime.js"]}
|
|
@@ -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")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},75144:(e,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(93346);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(93346);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})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=3546,e.ids=[3546],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},98165:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3546,e.ids=[3546],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")},98165:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>g,requestAsyncStorage:()=>h,routeModule:()=>c,serverHooks:()=>d,staticGenerationAsyncStorage:()=>f});var o={};t.r(o),t.d(o,{POST:()=>u});var s=t(49303),n=t(88716),i=t(60670),a=t(87070),p=t(97425),l=t(67722);async function u(){try{let e=(0,l.a$)();if(0===e.length)return a.NextResponse.json({error:"No repositories configured. Please set WORKTREE_REPOS or CM_ROOT_DIR environment variable."},{status:400});let r=await (0,l.Lj)(e),t=(0,p.n)();(0,l.h2)(t,r);let o=new Set(r.map(e=>e.repositoryPath));return a.NextResponse.json({success:!0,message:`Successfully synced ${r.length} worktree(s) from ${o.size} repository/repositories`,worktreeCount:r.length,repositoryCount:o.size,repositories:Array.from(o)},{status:200})}catch(r){console.error("Error syncing repositories:",r);let e=r instanceof Error?r.message:"Failed to sync repositories";return a.NextResponse.json({error:e},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/sync/route",pathname:"/api/repositories/sync",filename:"route",bundlePath:"app/api/repositories/sync/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/sync/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:h,staticGenerationAsyncStorage:f,serverHooks:d}=c,m="/api/repositories/sync/route";function g(){return(0,i.patchFetch)({serverHooks:d,staticGenerationAsyncStorage:f})}},67722:(e,r,t)=>{t.d(r,{Lj:()=>c,a$:()=>l,e9:()=>u,h2:()=>h});var o=t(61282),s=t(21764),n=t(55315),i=t.n(n),a=t(75748),p=t(93346);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 r=(0,p.Hb)("CM_ROOT_DIR");return r&&r.trim()?[r.trim()]:[]}async function u(e){let r=(0,s.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,s]=o;t.push({path:e.trim(),branch:s||`detached-${r}`,commit:r})}}return t}(t),s=i().resolve(e),n=i().basename(s);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,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(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 c(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 h(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,a.Pv)(e,r),s=new Set(o.map(e=>e.id)),n=t.filter(e=>!s.has(e));if(n.length>0){let t=(0,a.pM)(e,n);console.log(`Removed ${t.deletedCount} deleted worktree(s) from ${r}`)}for(let r of o)(0,a.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
|
-
{"groups":[{"category":"planning","label":"Planning","commands":[{"name":"design-policy","description":"アーキテクチャ設計、技術選定、設計判断を支援","category":"planning","model":"opus","filePath":".claude/commands/design-policy.md"},{"name":"issue-create","description":"Issue分割計画書からGitHub Issueを一括作成","category":"planning","model":"opus","filePath":".claude/commands/issue-create.md"},{"name":"issue-split","description":"FeatureをIssueに分割、依存関係整理","category":"planning","model":"opus","filePath":".claude/commands/issue-split.md"},{"name":"work-plan","description":"Issue単位の具体的な作業計画立案","category":"planning","model":"opus","filePath":".claude/commands/work-plan.md"}]},{"category":"development","label":"Development","commands":[{"name":"bug-fix","description":"不具合の調査・対策案提示・修正実施を完全自動化","category":"development","model":"opus","filePath":".claude/commands/bug-fix.md"},{"name":"refactoring","description":"コード品質改善、設計パターン適用、技術的負債解消","category":"development","model":"opus","filePath":".claude/commands/refactoring.md"},{"name":"tdd-impl","description":"テスト駆動開発で高品質コードを実装","category":"development","model":"opus","filePath":".claude/commands/tdd-impl.md"}]},{"category":"review","label":"Review","commands":[{"name":"acceptance-test","description":"Issue要件に基づく自動受入テスト実行","category":"review","model":"opus","filePath":".claude/commands/acceptance-test.md"},{"name":"architecture-review","description":"設計レビュー、リスク評価、改善提案","category":"review","model":"opus","filePath":".claude/commands/architecture-review.md"}]},{"category":"documentation","label":"Documentation","commands":[{"name":"progress-report","description":"開発進捗サマリ作成、ブロッカー報告","category":"documentation","model":"opus","filePath":".claude/commands/progress-report.md"}]},{"category":"workflow","label":"Workflow","commands":[{"name":"apply-review","description":"レビュー指摘事項を実装に反映","category":"workflow","model":"opus","filePath":".claude/commands/apply-review.md"},{"name":"create-pr","description":"Pull Request自動作成、タイトル・説明自動生成","category":"workflow","model":"opus","filePath":".claude/commands/create-pr.md"},{"name":"multi-stage-design-review","description":"設計書の4段階レビュー(通常→整合性→影響分析→セキュリティ)と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-design-review.md"},{"name":"multi-stage-issue-review","description":"Issue記載内容の多段階レビュー(通常→影響範囲)×2回と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-issue-review.md"},{"name":"pm-auto-design2dev","description":"設計レビューから実装完了まで完全自動化(設計レビュー→作業計画→TDD実装)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-design2dev.md"},{"name":"pm-auto-dev","description":"Issue開発を完全自動化(TDD→テスト→報告)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-dev.md"}]}]}
|
|
1
|
+
{"groups":[{"category":"planning","label":"Planning","commands":[{"name":"design-policy","description":"アーキテクチャ設計、技術選定、設計判断を支援","category":"planning","model":"opus","filePath":".claude/commands/design-policy.md"},{"name":"issue-create","description":"Issue分割計画書からGitHub Issueを一括作成","category":"planning","model":"opus","filePath":".claude/commands/issue-create.md"},{"name":"issue-split","description":"FeatureをIssueに分割、依存関係整理","category":"planning","model":"opus","filePath":".claude/commands/issue-split.md"},{"name":"work-plan","description":"Issue単位の具体的な作業計画立案","category":"planning","model":"opus","filePath":".claude/commands/work-plan.md"}]},{"category":"development","label":"Development","commands":[{"name":"bug-fix","description":"不具合の調査・対策案提示・修正実施を完全自動化","category":"development","model":"opus","filePath":".claude/commands/bug-fix.md"},{"name":"refactoring","description":"コード品質改善、設計パターン適用、技術的負債解消","category":"development","model":"opus","filePath":".claude/commands/refactoring.md"},{"name":"tdd-impl","description":"テスト駆動開発で高品質コードを実装","category":"development","model":"opus","filePath":".claude/commands/tdd-impl.md"}]},{"category":"review","label":"Review","commands":[{"name":"acceptance-test","description":"Issue要件に基づく自動受入テスト実行","category":"review","model":"opus","filePath":".claude/commands/acceptance-test.md"},{"name":"architecture-review","description":"設計レビュー、リスク評価、改善提案","category":"review","model":"opus","filePath":".claude/commands/architecture-review.md"}]},{"category":"documentation","label":"Documentation","commands":[{"name":"progress-report","description":"開発進捗サマリ作成、ブロッカー報告","category":"documentation","model":"opus","filePath":".claude/commands/progress-report.md"}]},{"category":"workflow","label":"Workflow","commands":[{"name":"apply-review","description":"レビュー指摘事項を実装に反映","category":"workflow","model":"opus","filePath":".claude/commands/apply-review.md"},{"name":"create-pr","description":"Pull Request自動作成、タイトル・説明自動生成","category":"workflow","model":"opus","filePath":".claude/commands/create-pr.md"},{"name":"multi-stage-design-review","description":"設計書の4段階レビュー(通常→整合性→影響分析→セキュリティ)と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-design-review.md"},{"name":"multi-stage-issue-review","description":"Issue記載内容の多段階レビュー(通常→影響範囲)×2回と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-issue-review.md"},{"name":"pm-auto-design2dev","description":"設計レビューから実装完了まで完全自動化(設計レビュー→作業計画→TDD実装)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-design2dev.md"},{"name":"pm-auto-dev","description":"Issue開発を完全自動化(TDD→テスト→報告)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-dev.md"},{"name":"worktree-cleanup","description":"","category":"workflow","filePath":".claude/commands/worktree-cleanup.md"},{"name":"worktree-setup","description":"","category":"workflow","filePath":".claude/commands/worktree-setup.md"}]}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=5695,e.ids=[5695],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},80134:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=5695,e.ids=[5695],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")},80134:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>h,patchFetch:()=>y,requestAsyncStorage:()=>x,routeModule:()=>b,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var o={};r.r(o),r.d(o,{GET:()=>m,POST:()=>g});var n=r(49303),s=r(88716),a=r(60670),i=r(87070),l=r(97425),u=r(75748),d=r(60667);let p=["claude","codex","gemini"];function c(e,t){let r={enabled:e?.enabled??!1,expiresAt:e?.enabled?e.expiresAt:null};return void 0!==t&&(r.pollingStarted=t),r}function f(e){let t=(0,l.n)();return(0,u.gU)(t,e)?null:i.NextResponse.json({error:`Worktree '${e}' not found`},{status:404})}async function m(e,{params:t}){try{let e=f(t.id);if(e)return e;let r=(0,d.bq)(t.id);return i.NextResponse.json(c(r))}catch(e){return console.error("Error getting auto-yes state:",e),i.NextResponse.json({error:"Failed to get auto-yes state"},{status:500})}}async function g(e,{params:t}){try{var r;let o=f(t.id);if(o)return o;let n=await e.json();if("boolean"!=typeof n.enabled)return i.NextResponse.json({error:"enabled must be a boolean"},{status:400});let s=(r=n.cliToolId)&&p.includes(r)?n.cliToolId:"claude",a=(0,d.bY)(t.id,n.enabled),l=!1;if(n.enabled){let e=(0,d.w)(t.id,s);l=e.started,e.started||console.warn(`[Auto-Yes API] Polling not started: ${e.reason}`)}else(0,d.Qz)(t.id);return i.NextResponse.json(c(a,l))}catch(e){return console.error("Error setting auto-yes state:",e),i.NextResponse.json({error:"Failed to set auto-yes state"},{status:500})}}let b=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/worktrees/[id]/auto-yes/route",pathname:"/api/worktrees/[id]/auto-yes",filename:"route",bundlePath:"app/api/worktrees/[id]/auto-yes/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/auto-yes/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:x,staticGenerationAsyncStorage:w,serverHooks:v}=b,h="/api/worktrees/[id]/auto-yes/route";function y(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}},60667:(e,t,r)=>{r.d(t,{bq:()=>c,gf:()=>m,bY:()=>f,w:()=>x,Qz:()=>w});var o=r(89194),n=r(63661),s=r(10927),a=r(97213),i=r(19377);let l=/^[a-zA-Z0-9_-]+$/,u=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),d=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function p(e){return Date.now()>e.expiresAt}function c(e){let t=u.get(e);if(!t)return null;if(p(t)){let r={...t,enabled:!1};return u.set(e,r),r}return t}function f(e,t){if(t){let t=Date.now(),r={enabled:!0,enabledAt:t,expiresAt:t+36e5};return u.set(e,r),r}{let t=u.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return u.set(e,r),r}}function m(e){let t=d.get(e);return t?.lastServerResponseTimestamp??null}async function g(e,t){if(!d.get(e))return;let r=c(e);if(!r?.enabled||p(r)){w(e);return}try{let r=await (0,o.NA)(e,t,5e3),l=(0,i.vp)(r),u=(0,n.F)(l);if(!u.isPrompt||!u.promptData){b(e,t);return}let p=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}(u.promptData);if(null===p){b(e,t);return}let c=a.g.getInstance().getTool(t).getSessionName(e);await (0,s.Is)(c,p,!1),await new Promise(e=>setTimeout(e,100)),await (0,s.Is)(c,"",!0),function(e,t){let r=d.get(e);r&&(r.lastServerResponseTimestamp=t)}(e,Date.now()),function(e){let t=d.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=d.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}`)}b(e,t)}function b(e,t){let r=d.get(e);r&&(r.timerId=setTimeout(()=>{g(e,t)},r.currentInterval))}function x(e,t){if(!(e&&0!==e.length&&l.test(e)))return{started:!1,reason:"invalid worktree ID"};let r=c(e);if(!r?.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:t,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return d.set(e,n),n.timerId=setTimeout(()=>{g(e,t)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${t}`),{started:!0}}function w(e){let t=d.get(e);t&&(t.timerId&&clearTimeout(t.timerId),d.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,7425,2648,2597],()=>r(80134));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/5972.js","../../../../../chunks/7425.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/2597.js","../../../../../chunks/2648.js","../../../../../chunks/5972.js","../../../../../chunks/7425.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=3096,e.ids=[3096],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},37514:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>I,patchFetch:()=>h,requestAsyncStorage:()=>c,routeModule:()=>p,serverHooks:()=>m,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{PATCH:()=>d});var s=t(49303),i=t(88716),n=t(60670),a=t(87070),u=t(97425),l=t(75748);async function d(e,{params:r}){try{let t=(0,u.n)(),o=(0,l.gU)(t,r.id);if(!o)return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let s=await e.json();if(!s.cliToolId)return a.NextResponse.json({error:"CLI tool ID is required"},{status:400});let i=["claude","codex","gemini"];if(!i.includes(s.cliToolId))return a.NextResponse.json({error:`Invalid CLI tool ID: ${s.cliToolId}. Valid values are: ${i.join(", ")}`},{status:400});let n={...o,cliToolId:s.cliToolId,updatedAt:new Date};return(0,l.ly)(t,n),a.NextResponse.json(n,{status:200})}catch(e){return console.error("Error updating CLI tool:",e),a.NextResponse.json({error:"Failed to update CLI tool"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/cli-tool/route",pathname:"/api/worktrees/[id]/cli-tool",filename:"route",bundlePath:"app/api/worktrees/[id]/cli-tool/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/cli-tool/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:m}=p,I="/api/worktrees/[id]/cli-tool/route";function h(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(37514));module.exports=o})();
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3096,e.ids=[3096],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},19801:e=>{e.exports=require("os")},55315:e=>{e.exports=require("path")},37514:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>I,patchFetch:()=>h,requestAsyncStorage:()=>c,routeModule:()=>p,serverHooks:()=>m,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{PATCH:()=>d});var s=t(49303),i=t(88716),n=t(60670),a=t(87070),u=t(97425),l=t(75748);async function d(e,{params:r}){try{let t=(0,u.n)(),o=(0,l.gU)(t,r.id);if(!o)return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let s=await e.json();if(!s.cliToolId)return a.NextResponse.json({error:"CLI tool ID is required"},{status:400});let i=["claude","codex","gemini"];if(!i.includes(s.cliToolId))return a.NextResponse.json({error:`Invalid CLI tool ID: ${s.cliToolId}. Valid values are: ${i.join(", ")}`},{status:400});let n={...o,cliToolId:s.cliToolId,updatedAt:new Date};return(0,l.ly)(t,n),a.NextResponse.json(n,{status:200})}catch(e){return console.error("Error updating CLI tool:",e),a.NextResponse.json({error:"Failed to update CLI tool"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/cli-tool/route",pathname:"/api/worktrees/[id]/cli-tool",filename:"route",bundlePath:"app/api/worktrees/[id]/cli-tool/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/cli-tool/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:m}=p,I="/api/worktrees/[id]/cli-tool/route";function h(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(37514));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")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},26683:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>
|
|
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")},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")},26683:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>A,patchFetch:()=>T,requestAsyncStorage:()=>h,routeModule:()=>x,serverHooks:()=>b,staticGenerationAsyncStorage:()=>v});var n={};r.r(n),r.d(n,{GET:()=>w});var o=r(49303),i=r(88716),s=r(60670),u=r(87070),a=r(97425),l=r(75748),p=r(63661),c=r(97213),d=r(89194),m=r(19377),f=r(60667);let g=["claude","codex","gemini"];async function w(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&&g.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 w=(0,l.zl)(r,t.id,i),x=w?.lastCapturedLine||0,h=await (0,d.NA)(t.id,i,1e4),v=h.split("\n"),b=v.length,A=v.slice(Math.max(0,x)).join("\n"),T=v.map(e=>(0,m.vp)(e)).filter(e=>""!==e.trim()).slice(-15).join("\n"),k=(0,m.vp)(h),I=(0,p.F)(k),P=I.isPrompt,q=!P&&(0,m.Wg)(i,T),R=v.slice(-100).join("\n"),S=(0,f.bq)(t.id),_=(0,f.gf)(t.id);return u.NextResponse.json({isRunning:!0,cliToolId:i,content:A,fullOutput:h,realtimeSnippet:R,lineCount:b,lastCapturedLine:x,isComplete:P,isGenerating:q,thinking:q,thinkingMessage:q?"Claude is thinking...":null,isPromptWaiting:P,promptData:P?I.promptData:null,autoYes:{enabled:S?.enabled??!1,expiresAt:S?.enabled?S.expiresAt:null},lastServerResponseTimestamp:_})}catch(e){return console.error("Error getting current output:",e),u.NextResponse.json({error:"Failed to get current output"},{status:500})}}let x=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:h,staticGenerationAsyncStorage:v,serverHooks:b}=x,A="/api/worktrees/[id]/current-output/route";function T(){return(0,s.patchFetch)({serverHooks:b,staticGenerationAsyncStorage:v})}},60667:(e,t,r)=>{r.d(t,{bq:()=>d,gf:()=>f,bY:()=>m,w:()=>x,Qz:()=>h});var n=r(89194),o=r(63661),i=r(10927),s=r(97213),u=r(19377);let a=/^[a-zA-Z0-9_-]+$/,l=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map),p=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function c(e){return Date.now()>e.expiresAt}function d(e){let t=l.get(e);if(!t)return null;if(c(t)){let r={...t,enabled:!1};return l.set(e,r),r}return t}function m(e,t){if(t){let t=Date.now(),r={enabled:!0,enabledAt:t,expiresAt:t+36e5};return l.set(e,r),r}{let t=l.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return l.set(e,r),r}}function f(e){let t=p.get(e);return t?.lastServerResponseTimestamp??null}async function g(e,t){if(!p.get(e))return;let r=d(e);if(!r?.enabled||c(r)){h(e);return}try{let r=await (0,n.NA)(e,t,5e3),a=(0,u.vp)(r),l=(0,o.F)(a);if(!l.isPrompt||!l.promptData){w(e,t);return}let c=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}(l.promptData);if(null===c){w(e,t);return}let d=s.g.getInstance().getTool(t).getSessionName(e);await (0,i.Is)(d,c,!1),await new Promise(e=>setTimeout(e,100)),await (0,i.Is)(d,"",!0),function(e,t){let r=p.get(e);r&&(r.lastServerResponseTimestamp=t)}(e,Date.now()),function(e){let t=p.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=p.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=p.get(e);r&&(r.timerId=setTimeout(()=>{g(e,t)},r.currentInterval))}function x(e,t){if(!(e&&0!==e.length&&a.test(e)))return{started:!1,reason:"invalid worktree ID"};let r=d(e);if(!r?.enabled)return{started:!1,reason:"auto-yes not enabled"};let n=p.has(e);if(!n&&p.size>=50)return{started:!1,reason:"max concurrent pollers reached"};n&&h(e);let o={timerId:null,cliToolId:t,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null};return p.set(e,o),o.timerId=setTimeout(()=>{g(e,t)},2e3),console.info(`[Auto-Yes Poller] Started for worktree: ${e}, cliTool: ${t}`),{started:!0}}function h(e){let t=p.get(e);t&&(t.timerId&&clearTimeout(t.timerId),p.delete(e),console.info(`[Auto-Yes Poller] Stopped for worktree: ${e}`))}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425,2648,2597],()=>r(26683));module.exports=n})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/2597.js","../../../../../chunks/2648.js","../../../../../chunks/5972.js","../../../../../chunks/7425.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=9325,e.ids=[9325],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},37999:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=9325,e.ids=[9325],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")},37999:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>w,requestAsyncStorage:()=>O,routeModule:()=>y,serverHooks:()=>v,staticGenerationAsyncStorage:()=>A});var i={};t.r(i),t.d(i,{DELETE:()=>h,GET:()=>g,PATCH:()=>L,POST:()=>_,PUT:()=>T});var n=t(49303),o=t(88716),a=t(60670),s=t(87070),c=t(97425),l=t(75748),u=t(55315),p=t(57440),d=t(68585),E=t(39365),f=t(81481),I=t(20629);let N={FILE_NOT_FOUND:404,WORKTREE_NOT_FOUND:404,PERMISSION_DENIED:403,NOT_EDITABLE:403,PROTECTED_DIRECTORY:403,INVALID_PATH:400,INVALID_REQUEST:400,INVALID_NAME:400,INVALID_CONTENT:400,DIRECTORY_NOT_EMPTY:400,DELETE_LIMIT_EXCEEDED:400,FILE_EXISTS:409,DISK_FULL:507,INTERNAL_ERROR:500,INVALID_EXTENSION:400,INVALID_MIME_TYPE:400,INVALID_MAGIC_BYTES:400,FILE_TOO_LARGE:413,INVALID_FILENAME:400,INVALID_FILE_CONTENT:400};function m(e,r,t=500){let i=N[e]??t;return s.NextResponse.json({success:!1,error:{code:e,message:r}},{status:i})}async function R(e,r){let t=(0,c.n)(),i=(0,l.gU)(t,e);if(!i)return{error:m("WORKTREE_NOT_FOUND","Worktree not found")};let n=r.join("/"),o=(0,u.normalize)(n);return(0,p.j)(o,i.path)?{worktree:i,relativePath:o}:{error:m("INVALID_PATH","Invalid file path")}}async function g(e,{params:r}){try{let e=await R(r.id,r.path);if("error"in e)return e.error;let{worktree:t,relativePath:i}=e,n=i.split(".").pop()||"",o=(0,u.extname)(i).toLowerCase();if((0,f.Db)(o)){let e=(0,u.join)(t.path,i);try{let r=await (0,I.readFile)(e),a=(0,f.gp)(o,r);if(!a.valid){if(a.error?.includes("5MB"))return m("FILE_TOO_LARGE",a.error);if(a.error?.includes("magic bytes"))return m("INVALID_MAGIC_BYTES",a.error);return m("INVALID_FILE_CONTENT",a.error||"Invalid image content")}let c=(0,f.Kc)(o),l=r.toString("base64"),u=`data:${c};base64,${l}`;return s.NextResponse.json({success:!0,path:i,content:u,extension:n,worktreePath:t.path,isImage:!0,mimeType:c})}catch(e){if("ENOENT"===e.code)return m("FILE_NOT_FOUND","File not found");throw e}}let a=await (0,d.O2)(t.path,i);if(!a.success)return m(a.error?.code||"INTERNAL_ERROR",a.error?.message||"Failed to read file");return s.NextResponse.json({success:!0,path:i,content:a.content,extension:n,worktreePath:t.path})}catch(e){return console.error("Error reading file:",e),m("INTERNAL_ERROR","Failed to read file")}}async function T(e,{params:r}){try{let t=await R(r.id,r.path);if("error"in t)return t.error;let{worktree:i,relativePath:n}=t;if(!(0,d.rN)(n))return m("NOT_EDITABLE","File type is not editable");let{content:o}=await e.json();if(void 0===o)return m("INVALID_REQUEST","Content is required");let a=(0,u.extname)(n).toLowerCase(),c=(0,E.ty)(a,o);if(!c.valid)return m("INVALID_CONTENT",c.error||"Invalid content");let l=await (0,d.xH)(i.path,n,o);if(!l.success)return m(l.error?.code||"INTERNAL_ERROR",l.error?.message||"Failed to update file");return s.NextResponse.json({success:!0,path:n})}catch(e){return console.error("Error updating file:",e),m("INTERNAL_ERROR","Failed to update file")}}async function _(e,{params:r}){try{let t=await R(r.id,r.path);if("error"in t)return t.error;let{worktree:i,relativePath:n}=t,{type:o,content:a}=await e.json();if(!o||!["file","directory"].includes(o))return m("INVALID_REQUEST",'Type must be "file" or "directory"');if("file"===o&&void 0!==a){let e=(0,u.extname)(n).toLowerCase();if((0,E.ZI)(e)){let r=(0,E.ty)(e,a);if(!r.valid)return m("INVALID_CONTENT",r.error||"Invalid content")}}let c=await (0,d.D5)(i.path,n,o,a);if(!c.success)return m(c.error?.code||"INTERNAL_ERROR",c.error?.message||"Failed to create file/directory");return s.NextResponse.json({success:!0,path:n},{status:201})}catch(e){return console.error("Error creating file/directory:",e),m("INTERNAL_ERROR","Failed to create file/directory")}}async function h(e,{params:r}){try{let t=await R(r.id,r.path);if("error"in t)return t.error;let{worktree:i,relativePath:n}=t,{searchParams:o}=new URL(e.url),a="true"===o.get("recursive"),c=await (0,d.jN)(i.path,n,a);if(!c.success)return m(c.error?.code||"INTERNAL_ERROR",c.error?.message||"Failed to delete file/directory");return s.NextResponse.json({success:!0})}catch(e){return console.error("Error deleting file/directory:",e),m("INTERNAL_ERROR","Failed to delete file/directory")}}async function L(e,{params:r}){try{let t=await R(r.id,r.path);if("error"in t)return t.error;let{worktree:i,relativePath:n}=t,{action:o,newName:a}=await e.json();if("rename"!==o)return m("INVALID_REQUEST",'Unknown action. Supported: "rename"');if(!a||"string"!=typeof a)return m("INVALID_REQUEST","newName is required");let c=await (0,d.nz)(i.path,n,a);if(!c.success)return m(c.error?.code||"INTERNAL_ERROR",c.error?.message||"Failed to rename file/directory");return s.NextResponse.json({success:!0,path:c.path})}catch(e){return console.error("Error renaming file/directory:",e),m("INTERNAL_ERROR","Failed to rename file/directory")}}let y=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/files/[...path]/route",pathname:"/api/worktrees/[id]/files/[...path]",filename:"route",bundlePath:"app/api/worktrees/[id]/files/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/files/[...path]/route.ts",nextConfigOutput:"",userland:i}),{requestAsyncStorage:O,staticGenerationAsyncStorage:A,serverHooks:v}=y,x="/api/worktrees/[id]/files/[...path]/route";function w(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:A})}},81481:(e,r,t)=>{t.d(r,{Db:()=>s,Kc:()=>a,P7:()=>i,gp:()=>c});let i=[".png",".jpg",".jpeg",".gif",".webp",".svg"],n=[{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 o(e){return e?e.startsWith(".")?e.toLowerCase():"."+e.toLowerCase():""}function a(e){let r=o(e),t=n.find(e=>e.extension===r);return t?.mimeType||"application/octet-stream"}function s(e){if(!e)return!1;let r=o(e);return i.includes(r)}function c(e,r){if(r.length>5242880)return{valid:!1,error:"File size exceeds 5MB limit"};if(".svg"===o(e)){var t;return(t=r.toString("utf-8")).includes("<svg")||t.startsWith("<?xml")?/<script[\s>]/i.test(t)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(t)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(t)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(t)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(e,r){let t=o(e),i=n.find(e=>e.extension===t);if(!i?.magicBytes)return".svg"===t;let a=i.magicBytesOffset||0;return!(r.length<a+i.magicBytes.length)&&i.magicBytes.every((e,t)=>r[a+t]===e)}(e,r)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}}};var r=require("../../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),i=r.X(0,[8948,5972,7425,8585],()=>t(37999));module.exports=i})();
|