tower-studio 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +39 -39
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/_not-found/page/server-reference-manifest.json +25 -25
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +13 -13
- package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +13 -13
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +13 -13
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +8 -8
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/missions/page/server-reference-manifest.json +53 -53
- package/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/onboarding/page/server-reference-manifest.json +25 -25
- package/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +15 -15
- package/.next/server/app/onboarding.segments/_full.segment.rsc +15 -15
- package/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
- package/.next/server/app/onboarding.segments/_index.segment.rsc +8 -8
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page/server-reference-manifest.json +25 -25
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/settings/page/server-reference-manifest.json +34 -34
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +15 -15
- package/.next/server/app/settings.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +81 -81
- package/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +70 -70
- package/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +57 -57
- package/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +53 -53
- package/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +25 -25
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +58 -58
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/workspaces/page/server-reference-manifest.json +45 -45
- package/.next/server/app/workspaces/page.js.nft.json +1 -1
- package/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/0uz~_next_dist_esm_build_templates_app-route_05yec2y.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__0~33o~m._.js +2 -2
- package/.next/server/chunks/project_f_tower_0n1s3ym._.js +1 -1
- package/.next/server/chunks/project_f_tower_src_11e.cv5._.js +1 -1
- package/.next/server/chunks/ssr/04uy_src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_01.s1p0._.js +1 -1
- package/.next/server/chunks/ssr/0y0r_f_tower_src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0n4g3bn._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0.4j53v._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__06qzctf._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__09bcer6._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ffdrwp._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0fwuc5u._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__118z55s._.js → [root-of-the-server]__0gpx.d~._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0i4rk9v._.js +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0nmyvwk._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0w7gbe7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11j4k9o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__13cjs8r._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__13eo85g._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0.txwd8._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_01tnhbx._.js +3 -0
- package/.next/server/chunks/ssr/{project_f_tower_0fdpm0.._.js → project_f_tower_0760i8j._.js} +2 -2
- package/.next/server/chunks/ssr/{project_f_tower_11iv6rj._.js → project_f_tower_08mqp19._.js} +2 -2
- package/.next/server/chunks/ssr/{project_f_tower_103i_mo._.js → project_f_tower_0ddfsyt._.js} +2 -2
- package/.next/server/chunks/ssr/project_f_tower_0f0-wva._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0hgtev9._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0ivvjwd._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0jy~1uf._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0l6ssf8._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_0o5.y1e._.js +1 -1
- package/.next/server/chunks/ssr/{project_f_tower_0gp-92y._.js → project_f_tower_0pf464l._.js} +2 -2
- package/.next/server/chunks/ssr/{project_f_tower_0d_85uz._.js → project_f_tower_0sy7ynr._.js} +2 -2
- package/.next/server/chunks/ssr/project_f_tower_0ym-aea._.js +1 -1
- package/.next/server/chunks/ssr/{project_f_tower_src_0dhz712._.js → project_f_tower_src_0bqbs-1._.js} +2 -2
- package/.next/server/chunks/ssr/project_f_tower_src_actions_agent-actions_ts_0.s4~m-._.js +2 -2
- package/.next/server/chunks/ssr/project_f_tower_src_actions_file-actions_ts_02i742t._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_src_app_missions_missions-client_tsx_0ums4qx._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_src_app_onboarding_page_tsx_0_9_yoq._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_src_app_settings_page_tsx_0oo06~d._.js +1 -1
- package/.next/server/chunks/ssr/project_f_tower_src_app_workspaces_[workspaceId]_board-page-client_tsx_0jmj1xz._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +207 -207
- package/.next/static/chunks/{0i-bk-_pxq3kf.js → 08gl4lr7zkm6b.js} +1 -1
- package/.next/static/chunks/0brwcgj_cjdcc.js +1 -0
- package/.next/static/chunks/{160iuo21rl~gx.js → 0q40u78uovc7y.js} +1 -1
- package/.next/static/chunks/{0svo2_2.iajx0.js → 0qnvx~5op5b9e.js} +1 -1
- package/.next/static/chunks/{0ufq5z-zsc_rq.js → 0w90t_ngr5_pj.js} +1 -1
- package/.next/static/chunks/{0v6j_niujykvw.js → 0x-v4tzitjxub.js} +1 -1
- package/.next/static/chunks/{0uvcabj7_ht1m.js → 0z-6e_hc3z22b.js} +1 -1
- package/.next/static/chunks/{0zk37-fhd4h6q.js → 0z2rpkmoqlr-v.js} +1 -1
- package/.next/static/chunks/11gkyogd_hqv~.js +1 -0
- package/.next/static/chunks/{0b2l7e_-hz6uu.js → 11y3rfp3d4n.0.js} +1 -1
- package/.next/static/chunks/{0d8czythhy15~.js → 12.91avyb6b7-.js} +1 -1
- package/.next/static/chunks/12btaaeo1ik-t.js +1 -0
- package/.next/static/chunks/{11y66l77sw_f_.js → 14zxctn8~z26r.js} +1 -1
- package/.next/static/chunks/{150hyh9in9gbd.js → 1660q32oalq26.js} +2 -2
- package/.next/static/chunks/17ckwfwqtxcv7.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/bin/tower.mjs +6 -0
- package/package.json +1 -1
- package/scripts/init-db.ts +17 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0p59u95._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ukbsy0._.js +0 -3
- package/.next/server/chunks/ssr/project_f_tower_0qe3y7w._.js +0 -3
- package/.next/static/chunks/09k2v2gb9asa~.js +0 -1
- package/.next/static/chunks/0hbu0b_cpu234.js +0 -1
- package/.next/static/chunks/0qz9.02.c_xy9.js +0 -1
- package/.next/static/chunks/0s.v9zvpavx.p.js +0 -1
- /package/.next/static/{z3fBPUSyN4JFEFJowhSmx → VzTy7iJ2D58ZvnVnTJZJi}/_buildManifest.js +0 -0
- /package/.next/static/{z3fBPUSyN4JFEFJowhSmx → VzTy7iJ2D58ZvnVnTJZJi}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{z3fBPUSyN4JFEFJowhSmx → VzTy7iJ2D58ZvnVnTJZJi}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[951682,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},279254,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(232779),f=a.i(951682);async function g(){return c.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function h(a){return c.db.workspace.findUnique({where:{id:a},include:{projects:{include:{tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}]},repositories:!0}}}})}async function i(a){let b=e.createWorkspaceSchema.parse(a),f=await c.db.workspace.create({data:b});return(0,d.revalidatePath)("/workspaces"),f}async function j(a,b){let f=e.updateWorkspaceSchema.parse(b),g=await c.db.workspace.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),g}async function k(a){if(await c.db.workspace.count()<=1)throw Error("Cannot delete the last workspace");await c.db.workspace.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function l(b){let g=e.createProjectSchema.parse(b),h=await c.db.project.create({data:{name:g.name,alias:g.alias,description:g.description,type:g.gitUrl?"GIT":"NORMAL",gitUrl:g.gitUrl||void 0,localPath:g.localPath?(0,f.expandHome)(g.localPath):void 0,projectType:g.projectType,previewCommand:g.previewCommand,workspaceId:g.workspaceId}});try{let{ensureTowerTask:b}=await a.A(939768);await b(h.id,g.name)}catch(a){console.warn("Failed to auto-create Tower task",a)}return(0,d.revalidatePath)("/workspaces"),h}async function m(a,b){let g={...e.updateProjectSchema.parse(b)};g.localPath&&(g.localPath=(0,f.expandHome)(g.localPath));let h=await c.db.project.update({where:{id:a},data:g});return(0,d.revalidatePath)("/workspaces"),h}async function n(b){let e=await c.db.task.findMany({where:{projectId:b},include:{project:{select:{localPath:!0}}}}),{destroySession:f}=await a.A(585988),{removeWorktree:g}=await a.A(908462);for(let a of e){try{f(a.id)}catch{}if(await c.db.taskExecution.updateMany({where:{taskId:a.id,status:{in:["PENDING","RUNNING","PAUSED"]}},data:{status:"FAILED",endedAt:new Date}}),a.project?.localPath)try{await g(a.project.localPath,a.id)}catch{}["DONE","CANCELLED"].includes(a.status)||await c.db.task.update({where:{id:a.id},data:{status:"CANCELLED"}})}await c.db.project.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function o(a){return c.db.project.findFirst({where:{localPath:a},include:{workspace:!0}})}async function p(a=3){return c.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0,tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]}},select:{id:!0,title:!0,status:!0,priority:!0,executions:{where:{sessionId:{not:null}},select:{sessionId:!0},orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"},take:a},_count:{select:{tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]}}}}}},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function q(a=10){return c.db.project.findMany({where:{localPath:{not:null}},select:{id:!0,name:!0,alias:!0,localPath:!0,workspaceId:!0,type:!0,updatedAt:!0},orderBy:{updatedAt:"desc"},take:a})}async function r(b){let d=await c.db.project.findUnique({where:{id:b},select:{id:!0,name:!0}});if(!d)throw Error("Project not found");let{ensureTowerTask:e}=await a.A(939768);return e(d.id,d.name)}(0,a.i(632919).ensureServerEntryExports)([g,h,i,j,k,l,m,n,o,p,q,r]),(0,b.registerServerReference)(g,"00989c1888492bcfa8843c4782c92486e39037753c",null),(0,b.registerServerReference)(h,"403dcc0cf00d5eb2dbbee5ec6f0bb5d93bba0ac87a",null),(0,b.registerServerReference)(i,"40adf487014f7bc1e336caf6ca41dd89c8dfdca66f",null),(0,b.registerServerReference)(j,"60d1c1d0d11d9938471b9c96dbdbe3ccb69e3e8055",null),(0,b.registerServerReference)(k,"40700daeecbd12e88cd5e021766323f194e5340e5c",null),(0,b.registerServerReference)(l,"406d8c0b0b85c4d776fbd5fed225d9c468a6631d31",null),(0,b.registerServerReference)(m,"606338304ba89f67d0e8f07b8dfb6c7e213505ed48",null),(0,b.registerServerReference)(n,"40020a75fca39101e3a19e18ee61bd1f6feb43d0db",null),(0,b.registerServerReference)(o,"409242fb5ef124e2f0bf4ec56eef36ff221aff8705",null),(0,b.registerServerReference)(p,"40d54cdc3ec5fc657987f05c5fd9673a3cf5550c64",null),(0,b.registerServerReference)(q,"4043e343760201a238ce986f8233c1371e057bdcda",null),(0,b.registerServerReference)(r,"40cf0477520bd1ff9e5958ab2ede6d1ad5227a5322",null),a.s(["createProject",0,l,"createWorkspace",0,i,"deleteProject",0,n,"deleteWorkspace",0,k,"getOrCreateTowerTaskId",0,r,"getProjectByLocalPath",0,o,"getRecentLocalProjects",0,q,"getWorkspaceById",0,h,"getWorkspacesWithProjects",0,g,"getWorkspacesWithRecentTasks",0,p,"updateProject",0,m,"updateWorkspace",0,j])},509270,a=>{"use strict";a.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"}}])},727977,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(832116),f=a.i(509270),g=a.i(951682),h=a.i(912206),i=a.i(155482),j=a.i(632919),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"604ce07f6397de5dd0e4c9108ad4ea9d59a5f72960",null),(0,d.registerServerReference)(m,"60101684dc36433c5408f741671d65e79a1d2e3037",null),(0,d.registerServerReference)(n,"40fcf26f82c08eddfdc4c46af8f96752a937ee4286",null),(0,d.registerServerReference)(o,"40af0f88ae49a3b76137e5d6ac5e67462533872055",null),(0,d.registerServerReference)(p,"00d07625f8c1fc09f995b81724fa8049ed22b79229",null),(0,d.registerServerReference)(q,"0079dffe9603d6fc268bf9324d48ab3af484967965",null),(0,d.registerServerReference)(r,"0027cfcefb7eab9186fdceb345c4db395d81542ac7",null),(0,d.registerServerReference)(s,"0073d9d770a70dc1a403ff147d6ea66df5bccc8686",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1),522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},924868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},30292,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(232779);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(632919).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"401e23b32bf79a24e75c01885df559c6e7e13ef6e0",null),(0,b.registerServerReference)(g,"40feef24fb017ee4dbff0339300a4ae022cac5d324",null),(0,b.registerServerReference)(h,"405ce31cd7f91286bd624ff40a16dd368bac345586",null),(0,b.registerServerReference)(i,"60275bd9ad1b46f5a954d61a2af1ba2f7070918cb6",null),(0,b.registerServerReference)(j,"408121b0bf46221828cab76e15c634bb857a26b81d",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},213803,a=>{"use strict";var b=a.i(832116);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
1
|
+
module.exports=[951682,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function d(a){return a.startsWith("~/")?c.default.join(b.default.homedir(),a.slice(2)):a}function e(a){let b,c=a.match(/^git@([^:]+):(.+)$/);if(c)return{host:c[1],pathSegments:f(c[2]).split("/").filter(Boolean)};try{b=new URL(a)}catch{return null}return{host:b.hostname,pathSegments:f(decodeURIComponent(b.pathname)).split("/").filter(Boolean)}}function f(a){return a.replace(/\.git\/?$/,"")}a.s(["expandHome",0,d,"gitUrlToLocalPath",0,function(a){let b=a.trim();if(!b)return"";try{let a=e(b);if(!a)return"";let{host:f,pathSegments:g}=a;if("code.iflytek.com"===f){let a,b;return d((a=[...g],"osc"===a[0]&&"_source"===a[1]&&(a=a.slice(2)),((b=a.indexOf("-"))>0&&(a=a.slice(0,b)),0===a.length)?"":`~/company/${a.join("/")}`))}if("github.com"===f){var c;let a,b;return d((a=(c=g)[0],b=c[1],a&&b?`${"jp-liu"===a?"~/project/i":"~/project/f"}/${b}`:""))}let h=g[g.length-1];return h?d(`~/project/f/${h}`):""}catch{return""}},"matchGitPathRule",0,function(a,b){if(!b.length)return"";let c=a.trim();if(!c)return"";let f=e(c);if(!f)return"";let{host:g,pathSegments:h}=f,i=h[0]??"",j=h[h.length-1]??"",k=[...b].sort((a,b)=>{let c=+("*"===a.ownerMatch),d=+("*"===b.ownerMatch);return c!==d?c-d:a.priority-b.priority}),l=h.join("/");for(let a of k){if(a.host!==g||"*"!==a.ownerMatch&&a.ownerMatch!==i)continue;let b=a.localPathTemplate;if(b.includes("{path}"))return d(b.replace("{path}",l).replace("{owner}",i).replace("{repo}",j).replace(/\/+$/,""));let c=b.replace("{owner}",i).replace("{repo}","").replace(/\/+$/,"");return d(`${c}/${j}`)}return""}])},279254,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(232779),f=a.i(951682);async function g(){return c.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function h(a){return c.db.workspace.findUnique({where:{id:a},include:{projects:{include:{tasks:{orderBy:[{order:"asc"},{createdAt:"desc"}]},repositories:!0}}}})}async function i(a){let b=e.createWorkspaceSchema.parse(a),f=await c.db.workspace.create({data:b});return(0,d.revalidatePath)("/workspaces"),f}async function j(a,b){let f=e.updateWorkspaceSchema.parse(b),g=await c.db.workspace.update({where:{id:a},data:f});return(0,d.revalidatePath)("/workspaces"),g}async function k(a){if(await c.db.workspace.count()<=1)throw Error("Cannot delete the last workspace");await c.db.workspace.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function l(b){let g=e.createProjectSchema.parse(b),h=await c.db.project.create({data:{name:g.name,alias:g.alias,description:g.description,type:g.gitUrl?"GIT":"NORMAL",gitUrl:g.gitUrl||void 0,localPath:g.localPath?(0,f.expandHome)(g.localPath):void 0,projectType:g.projectType,previewCommand:g.previewCommand,workspaceId:g.workspaceId}});try{let{ensureTowerTask:b}=await a.A(939768);await b(h.id,g.name)}catch(a){console.warn("Failed to auto-create Tower task",a)}return(0,d.revalidatePath)("/workspaces"),h}async function m(a,b){let g={...e.updateProjectSchema.parse(b)};g.localPath&&(g.localPath=(0,f.expandHome)(g.localPath));let h=await c.db.project.update({where:{id:a},data:g});return(0,d.revalidatePath)("/workspaces"),h}async function n(b){let e=await c.db.task.findMany({where:{projectId:b},include:{project:{select:{localPath:!0}}}}),{destroySession:f}=await a.A(585988),{removeWorktree:g}=await a.A(908462);for(let a of e){try{f(a.id)}catch{}if(await c.db.taskExecution.updateMany({where:{taskId:a.id,status:{in:["PENDING","RUNNING","PAUSED"]}},data:{status:"FAILED",endedAt:new Date}}),a.project?.localPath)try{await g(a.project.localPath,a.id)}catch{}["DONE","CANCELLED"].includes(a.status)||await c.db.task.update({where:{id:a.id},data:{status:"CANCELLED"}})}await c.db.project.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function o(a){return c.db.project.findFirst({where:{localPath:a},include:{workspace:!0}})}async function p(a=3){return c.db.workspace.findMany({select:{id:!0,name:!0,projects:{select:{id:!0,name:!0,alias:!0,tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]}},select:{id:!0,title:!0,status:!0,priority:!0,executions:{where:{sessionId:{not:null}},select:{sessionId:!0},orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"},take:a},_count:{select:{tasks:{where:{status:{in:["TODO","IN_PROGRESS","IN_REVIEW"]}}}}}},orderBy:{createdAt:"asc"}}},orderBy:{updatedAt:"desc"}})}async function q(a=10){return c.db.project.findMany({where:{localPath:{not:null}},select:{id:!0,name:!0,alias:!0,localPath:!0,workspaceId:!0,type:!0,updatedAt:!0},orderBy:{updatedAt:"desc"},take:a})}async function r(b){let d=await c.db.project.findUnique({where:{id:b},select:{id:!0,name:!0}});if(!d)throw Error("Project not found");let{ensureTowerTask:e}=await a.A(939768);return e(d.id,d.name)}(0,a.i(632919).ensureServerEntryExports)([g,h,i,j,k,l,m,n,o,p,q,r]),(0,b.registerServerReference)(g,"0044f2a6c1b0bdfe3f96fd2a1acd67295b6a2b25e2",null),(0,b.registerServerReference)(h,"40ac52fbeec4ccb55e6302a7b3041b70a3fb54f683",null),(0,b.registerServerReference)(i,"40faf9e78c567cc29ecc3a4fd055cf407081d3fe02",null),(0,b.registerServerReference)(j,"60c990d709c90f774c38bf1afe3b56340413c9293b",null),(0,b.registerServerReference)(k,"400ffa9303f88489448dd9899070241e26f745a58e",null),(0,b.registerServerReference)(l,"40527223fea127872c68668224c5822eebbb9bf090",null),(0,b.registerServerReference)(m,"600866e086353c584288550341453060402c288c51",null),(0,b.registerServerReference)(n,"401a86ff2781c007191e772caa16e4b6e7441b15d0",null),(0,b.registerServerReference)(o,"40063460d41622db1f63f741d432114ef2650a1f76",null),(0,b.registerServerReference)(p,"407fb2d0b204a4d0a175a5354170db11c9aafc3f36",null),(0,b.registerServerReference)(q,"400261a6fb1c366a989585444549d8506d4ba9db8c",null),(0,b.registerServerReference)(r,"40f970bc0ca57ada0365f4088ef980b207fcf6a70c",null),a.s(["createProject",0,l,"createWorkspace",0,i,"deleteProject",0,n,"deleteWorkspace",0,k,"getOrCreateTowerTaskId",0,r,"getProjectByLocalPath",0,o,"getRecentLocalProjects",0,q,"getWorkspaceById",0,h,"getWorkspacesWithProjects",0,g,"getWorkspacesWithRecentTasks",0,p,"updateProject",0,m,"updateWorkspace",0,j])},509270,a=>{"use strict";a.s(["CONFIG_DEFAULTS",0,{"git.pathMappingRules":{defaultValue:[],type:"object",label:"Git Path Mapping Rules"},"system.maxUploadBytes":{defaultValue:0x3200000,type:"number",label:"Max Upload Size (bytes)"},"system.maxConcurrentExecutions":{defaultValue:20,type:"number",label:"Max Concurrent Executions"},"git.timeoutSec":{defaultValue:30,type:"number",label:"Git Operation Timeout (seconds)"},"search.resultLimit":{defaultValue:20,type:"number",label:"Search Result Limit"},"search.allModeCap":{defaultValue:5,type:"number",label:"All-Mode Per-Type Cap"},"search.debounceMs":{defaultValue:250,type:"number",label:"Search Debounce (ms)"},"search.snippetLength":{defaultValue:80,type:"number",label:"Snippet Length (characters)"},"missions.grid.minCols":{defaultValue:1,type:"number",label:"Grid Min Columns"},"missions.grid.maxCols":{defaultValue:5,type:"number",label:"Grid Max Columns"},"missions.grid.minRows":{defaultValue:1,type:"number",label:"Grid Min Rows"},"missions.grid.maxRows":{defaultValue:5,type:"number",label:"Grid Max Rows"},"terminal.app":{defaultValue:"Terminal",type:"string",label:"Default Terminal App"},"terminal.wsPort":{defaultValue:3001,type:"number",label:"WebSocket Port"},"terminal.idleTimeoutSec":{defaultValue:180,type:"number",label:"Idle Timeout (seconds)"},"assistant.systemPrompt":{defaultValue:'You are Tower Assistant — the built-in AI operator for the Tower task management platform.\n\n## Identity\n- You are a task management operator, NOT a coding assistant.\n- You can ONLY use Tower MCP tools. You CANNOT read files, edit code, run shell commands, or search the web.\n- Always respond in the same language the user uses.\n\n## Capabilities\nWhen users ask what you can do, respond with EXACTLY these 6 groups. Translate to the user\'s language.\n\n1. **Workspace & Project** — View, create, update, delete workspaces and projects. Search projects and repositories.\n2. **Task Management** — Create tasks (priority, labels, worktree branch isolation, sub-path, auto-start). Move task status (TODO → IN_PROGRESS → IN_REVIEW → DONE / CANCELLED). Update task info and labels.\n3. **Execution Monitor** — Start task execution, check execution status, get terminal output, send commands to running terminals.\n4. **Daily Report & Todo** — Generate daily work summary (completed + in-progress). View pending task list sorted by priority.\n5. **Labels & Notes & Assets** — Manage workspace labels, project notes, and file attachments.\n6. **Global Search** — Search tasks, projects, repositories, notes, and assets by keyword.\n\nDo NOT list any capabilities beyond the above. Do NOT mention code editing, debugging, testing, git operations, or any development capabilities.\n\n## Scope Boundary\nIf the user asks you to write code, explain code, debug, search the web, read/write files, or anything outside Tower task management, reply:\n"抱歉,我只能帮你管理工作区、项目和任务。编码、调试等操作请在任务终端中完成。"',type:"string",label:"Assistant System Prompt"},"assistant.displayMode":{defaultValue:"sidebar",type:"string",label:"Assistant Display Mode"},"assistant.communicationMode":{defaultValue:"chat",type:"string",label:"Assistant Communication Mode"}}])},727977,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(832116),f=a.i(509270),g=a.i(951682),h=a.i(912206),i=a.i(155482),j=a.i(632919),k=b([i]);async function l(a,b){let c=await e.db.systemConfig.findUnique({where:{key:a}});if(!c)return b;try{return JSON.parse(c.value)}catch{return b}}async function m(a,b){await e.db.systemConfig.upsert({where:{key:a},create:{key:a,value:JSON.stringify(b)},update:{value:JSON.stringify(b)}})}async function n(a){let b=a.trim();if(!b)return"";try{let a=await l("git.pathMappingRules",[]),c=(0,g.matchGitPathRule)(b,a);if(c)return c;return(0,g.gitUrlToLocalPath)(b)}catch{return(0,g.gitUrlToLocalPath)(b)}}async function o(a){let b=await e.db.systemConfig.findMany({where:{key:{in:a}}}),c=Object.fromEntries(b.map(a=>{try{return[a.key,JSON.parse(a.value)]}catch{return[a.key,null]}})),d={};for(let b of a)d[b]=b in c?c[b]:f.CONFIG_DEFAULTS[b]?.defaultValue??null;return d}async function p(){return(0,h.detectShells)()}async function q(){return(0,h.detectTerminalApps)()}async function r(){return{platform:process.platform}}async function s(){let a=(0,i.getActiveWsPort)();if(null!==a)return a;let b=parseInt(process.env.PORT||"3000",10);return l("terminal.wsPort",b+1)}[i]=k.then?(await k)():k,(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s]),(0,d.registerServerReference)(l,"60c210ff07fecafa2265f30dd96eb4de225a19aa77",null),(0,d.registerServerReference)(m,"609b34226fbdf6994c63c038d9626094d8aaf093ec",null),(0,d.registerServerReference)(n,"409b01a0501cd6418e001637818a45b4908f321079",null),(0,d.registerServerReference)(o,"40a714cf8a5713943d9460d44e361c6d739f12efc9",null),(0,d.registerServerReference)(p,"007bb464ca3b46f9ebd7c87834dc26a0c629df67e5",null),(0,d.registerServerReference)(q,"009b3dc59e0ae9151a27ab16a3c29647b18ed6677c",null),(0,d.registerServerReference)(r,"001398427306d12f2f89c7ae3050daeee981a3616d",null),(0,d.registerServerReference)(s,"0073dca5d0325409af9b7177621b17fe326cebe488",null),a.s(["getActualWsPort",0,s,"getAvailableShells",0,p,"getAvailableTerminalApps",0,q,"getConfigValue",0,l,"getConfigValues",0,o,"getPlatformInfo",0,r,"resolveGitLocalPath",0,n,"setConfigValue",0,m]),c()}catch(a){c(a)}},!1),522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},924868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},30292,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(232779);async function f(a){return c.db.label.findMany({where:{OR:[{isBuiltin:!0},{workspaceId:a}]},orderBy:[{isBuiltin:"desc"},{name:"asc"}]})}async function g(a){let b=e.createLabelSchema.parse(a),f=await c.db.label.create({data:{name:b.name,color:b.color,workspaceId:b.workspaceId}});return(0,d.revalidatePath)("/workspaces"),f}async function h(a){let b=await c.db.label.findUnique({where:{id:a}});if(!b)throw Error("Label not found");if(b.isBuiltin)throw Error("Cannot delete builtin labels");await c.db.label.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces")}async function i(a,b){await c.db.$transaction(async c=>{await c.taskLabel.deleteMany({where:{taskId:a}}),b.length>0&&await c.taskLabel.createMany({data:b.map(b=>({taskId:a,labelId:b}))})}),(0,d.revalidatePath)("/workspaces")}async function j(a){return(await c.db.taskLabel.findMany({where:{taskId:a},include:{label:!0}})).map(a=>a.label)}(0,a.i(632919).ensureServerEntryExports)([f,g,h,i,j]),(0,b.registerServerReference)(f,"400e586f307193ff83593c8d63bc62693553e1afa6",null),(0,b.registerServerReference)(g,"40846f4f265949956da690418ff68309c0851110fb",null),(0,b.registerServerReference)(h,"4011bcdb946bba1c505087e70f156fd3989f3b872c",null),(0,b.registerServerReference)(i,"60e7ae5e70836b1565cefde53439d7a812a6d3fb7f",null),(0,b.registerServerReference)(j,"40a3673711d9bf23f7e44b82db5099b4f6f5361765",null),a.s(["createLabel",0,g,"deleteLabel",0,h,"getLabelsForWorkspace",0,f,"getTaskLabels",0,j,"setTaskLabels",0,i])},213803,a=>{"use strict";var b=a.i(832116);function c(a,b){return{id:a.note_id,type:"note",title:a.title,subtitle:`${a.workspace_name} / ${a.project_name}`,navigateTo:`/workspaces/${a.workspaceId}/notes?projectId=${a.projectId}`,snippet:a.content?a.content.slice(0,b):void 0}}async function d(a,e="task",f){if(!a.trim())return[];let g=a.trim(),{resultLimit:h,allModeCap:i,snippetLength:j}=f;if("all"===e){let[a,b,c,e,h]=await Promise.allSettled([d(g,"task",f),d(g,"project",f),d(g,"repository",f),d(g,"note",f),d(g,"asset",f)]),j=a=>"fulfilled"===a.status?a.value.slice(0,i):[];return[...j(a),...j(b),...j(c),...j(e),...j(h)]}if("task"===e)return(await b.db.task.findMany({where:{OR:[{title:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"task",title:a.title,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("project"===e)return(await b.db.project.findMany({where:{OR:[{name:{contains:g}},{alias:{contains:g}},{description:{contains:g}}]},include:{workspace:!0},take:h,orderBy:{updatedAt:"desc"}})).map(a=>({id:a.id,type:"project",title:a.alias?`${a.name} (${a.alias})`:a.name,subtitle:a.workspace.name,navigateTo:`/workspaces/${a.workspaceId}?projectId=${a.id}`}));if("repository"===e)return(await b.db.repository.findMany({where:{OR:[{name:{contains:g}},{path:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h})).map(a=>({id:a.id,type:"repository",title:a.name,subtitle:`${a.project.workspace.name} / ${a.project.name} \xb7 ${a.branch}`,navigateTo:`/workspaces/${a.project.workspaceId}?projectId=${a.projectId}`}));if("note"===e){if(g.length<3)return(await b.db.$queryRawUnsafe(`SELECT n.id as note_id, n.title, n.content,
|
|
2
2
|
n."projectId", p."workspaceId", p.name as project_name, w.name as workspace_name
|
|
3
3
|
FROM "ProjectNote" n
|
|
4
4
|
JOIN "Project" p ON p.id = n."projectId"
|
|
@@ -18,7 +18,7 @@ module.exports=[951682,a=>{"use strict";var b=a.i(446786),c=a.i(814747);function
|
|
|
18
18
|
JOIN "Project" p ON p.id = n."projectId"
|
|
19
19
|
JOIN "Workspace" w ON w.id = p."workspaceId"
|
|
20
20
|
WHERE n.title LIKE ? OR n.content LIKE ?
|
|
21
|
-
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},322220,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(213803),f=a.i(727977),g=a.i(632919),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"
|
|
21
|
+
LIMIT ?`,`%${g}%`,`%${g}%`,h)).map(a=>c(a,j))}}return"asset"===e?(await b.db.projectAsset.findMany({where:{OR:[{filename:{contains:g}},{description:{contains:g}}]},include:{project:{include:{workspace:!0}}},take:h,orderBy:{createdAt:"desc"}})).map(a=>({id:a.id,type:"asset",title:a.filename,subtitle:`${a.project.workspace.name} / ${a.project.name}`,navigateTo:`/workspaces/${a.project.workspaceId}/assets?projectId=${a.projectId}`,snippet:a.description||void 0})):[]}a.s(["search",0,d])},322220,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(213803),f=a.i(727977),g=a.i(632919),h=b([f]);async function i(a,b="task"){let c=await (0,f.getConfigValues)(["search.resultLimit","search.allModeCap","search.snippetLength"]);return(0,e.search)(a,b,{resultLimit:c["search.resultLimit"]??20,allModeCap:c["search.allModeCap"]??5,snippetLength:c["search.snippetLength"]??80})}[f]=h.then?(await h)():h,(0,g.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"60b02796ca653ae818f77fac2e586c17f35e2a0c3e",null),a.s(["globalSearch",0,i]),c()}catch(a){c(a)}},!1),198433,a=>{"use strict";var b=a.i(680889),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(832116),g=a.i(972795),h=a.i(632919);async function i(b){if(!b||"string"!=typeof b)return{safe:!1,reason:"无效的项目 ID"};let g=await f.db.project.findUnique({where:{id:b}});if(!g||!g.localPath)return{safe:!1,reason:"项目不存在或未设置本地路径"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{safe:!1,reason:"该项目有正在运行的任务执行,请先停止所有执行"};let h=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:i}=await a.A(585988);for(let a of h)if(void 0!==i(a.id))return{safe:!1,reason:"该项目有活跃的终端会话,请先关闭"};let j=e.default.join(g.localPath,".worktrees");if((0,d.existsSync)(j))try{if((await (0,c.readdir)(j)).length>0)return{safe:!1,reason:"该项目有活跃的 Git Worktree,请先清理"}}catch{}return{safe:!0}}async function j(b,h){if(!b||"string"!=typeof b)return{success:!1,error:"无效的项目 ID"};if(!h||"string"!=typeof h||!e.default.isAbsolute(h))return{success:!1,error:"目标路径必须是非空的绝对路径"};let i=await f.db.project.findUnique({where:{id:b}});if(!i||!i.localPath)return{success:!1,error:"项目不存在或未设置本地路径"};let j=i.localPath;if(h===j)return{success:!1,error:"源路径和目标路径相同"};if((await f.db.taskExecution.findMany({where:{task:{projectId:b},status:"RUNNING"},select:{id:!0}})).length>0)return{success:!1,error:"该项目有正在运行的任务执行,请先停止所有执行"};let k=await f.db.task.findMany({where:{projectId:b},select:{id:!0}}),{getSession:l}=await a.A(585988);for(let a of k)if(void 0!==l(a.id))return{success:!1,error:"该项目有活跃的终端会话,请先关闭"};let m=e.default.join(j,".worktrees");if((0,d.existsSync)(m))try{if((await (0,c.readdir)(m)).length>0)return{success:!1,error:"该项目有活跃的 Git Worktree,请先清理"}}catch{}if((0,d.existsSync)(h))try{if((await (0,c.readdir)(h)).length>0)return{success:!1,error:"目标路径已存在且不为空"}}catch{return{success:!1,error:"目标路径已存在且不为空"}}await (0,c.mkdir)(e.default.dirname(h),{recursive:!0});try{await (0,c.rename)(j,h)}catch(a){if("EXDEV"===a.code)return{success:!1,error:"源路径和目标路径不在同一文件系统,不支持跨设备迁移"};return{success:!1,error:a.message||"文件系统操作失败"}}return await f.db.project.update({where:{id:b},data:{localPath:h}}),(0,g.revalidatePath)("/workspaces"),{success:!0}}let k=`分析这个项目目录,生成一段简短的 Markdown 项目描述。
|
|
22
22
|
|
|
23
23
|
读取 package.json、README.md 等关键文件,然后概括:
|
|
24
24
|
|
|
@@ -42,6 +42,6 @@ Requirements:
|
|
|
42
42
|
- Keep it under 1000 words
|
|
43
43
|
- Use concise Markdown (bold labels + short sentences), no ## headings or tables
|
|
44
44
|
- Don't list every file/directory, only key information
|
|
45
|
-
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(302452),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"
|
|
45
|
+
- Output in English`;async function m(b,c="zh"){if(!b||"string"!=typeof b)throw Error("无效的本地路径");if(b.startsWith("~"))throw Error("不支持 ~ 别名,请提供绝对路径");if(!e.default.isAbsolute(b))throw Error("本地路径必须为绝对路径");let{aiQuery:d}=await a.A(302452),f=await d("en"===c?l:k,b,{maxTurns:10,tools:["Read","Glob"],allowedTools:["Read","Glob"]});if(!f)throw Error("AI 分析未返回结果");return f.length>2e3?f.slice(0,2e3).trimEnd()+"\n\n...":f}(0,h.ensureServerEntryExports)([i,j,m]),(0,b.registerServerReference)(i,"4066597f1dfdab694851c822ca15c24d24face6c31",null),(0,b.registerServerReference)(j,"60bf23fbae56b423bfa90b83d2f9e12132dafa55e0",null),(0,b.registerServerReference)(m,"60579c28d1aed49c267cd531a1ee57bace8684177a",null),a.s(["analyzeProjectDirectory",0,m,"checkMigrationSafety",0,i,"migrateProjectPath",0,j])}];
|
|
46
46
|
|
|
47
47
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0i4rk9v._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"406e8276c49fc34f681ca891671fbfb313a11aeb14",null),(0,b.registerServerReference)(m,"6019647bbc439d4da6156b656a60dabfcdde85bb1f",null),(0,b.registerServerReference)(n,"60040e85635735db052cc8b2470398fb532c5030da",null),(0,b.registerServerReference)(o,"40cd59b91ec375d053bbbb4e42c9adb9c3bffd1a99",null),(0,b.registerServerReference)(p,"402f1d403498bb101c05d7a3a1d0bac78905017cc9",null),(0,b.registerServerReference)(q,"4097e24d8f2caf211a65c4facbb6fcd41f59014b43",null),(0,b.registerServerReference)(r,"404cf3101a3e381bf5ccdcb3157bae68448c80dd87",null),(0,b.registerServerReference)(s,"401ebcf868b8430269f7428d587adc967fdc85a003",null),(0,b.registerServerReference)(t,"40dbed7b5a11a52a8ba506586c2e5fe665f2814de8",null),(0,b.registerServerReference)(u,"609e64d8a80dc8ac0d5d035b95e3095a73fc7b570d",null),(0,b.registerServerReference)(v,"40fb434111ed68b37fca6f491efecc21b42df45100",null),(0,b.registerServerReference)(w,"406c27dcc195e7fb80a0cc253c56b6ace41102db07",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},614688,a=>{"use strict";var b=a.i(680889),c=a.i(874533),d=a.i(902157),e=a.i(750227);let f=new Map;function g(a){let b=f.get(a);return!!b&&(f.delete(a),!b.killed&&(b.kill("SIGTERM"),!0))}function h(){for(let a of[...f.keys()])g(a)}process.on("SIGTERM",()=>h()),process.on("SIGINT",()=>h());var i=a.i(968623),j=a.i(632919);async function k(a,b,d){let e;(e=f.get(a))&&!e.killed&&g(a);try{let[e,...h]=b.trim().split(/\s+/),i=(0,c.spawn)(e,h,{cwd:d,shell:!1,detached:!1,stdio:"ignore"});return g(a),i.on("exit",()=>{f.get(a)===i&&f.delete(a)}),f.set(a,i),{started:!0}}catch(a){return{started:!1,error:String(a)}}}async function l(a){g(a)}async function m(a){try{let b=(0,d.readFileSync)((0,e.join)(a,"package.json"),"utf-8"),c=JSON.parse(b),f={...c.dependencies,...c.devDependencies};if(f.vite||f["@vitejs/plugin-vue"]||f["@vitejs/plugin-react"])return"vite";if(f.next)return"next";if(f.nuxt)return"nuxt";if(f["@angular/core"])return"angular";return null}catch{return null}}let n=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function o(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");let b=await (0,i.readConfigValue)("terminal.app","Terminal");if(!n.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,c.execFileSync)("open",["-a",b,a])}(0,j.ensureServerEntryExports)([k,l,m,o]),(0,b.registerServerReference)(k,"709111f2ed76480b126711f2997db551ca17995533",null),(0,b.registerServerReference)(l,"40a4c218274b52b6f9de9377c87f502bfeef726681",null),(0,b.registerServerReference)(m,"4022f7ab241aba4cff260817addafc61bc5fd32fbb",null),(0,b.registerServerReference)(o,"40a2eb01ae674269fe4ba985c65f48d46e93cdb9c1",null),a.s(["openInTerminal",0,o,"startPreview",0,k,"stopPreview",0,l],614688)},319238,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(643700),a.i(614688),a.i(31782);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),901654,a=>a.a(async(b,c)=>{try{var d=a.i(319238),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(643700),l=a.i(614688),m=a.i(31782),n=b([d,g,h]);[d,g,h]=n.then?(await n)():n,a.s(["0073d9d770a70dc1a403ff147d6ea66df5bccc8686",()=>h.getActualWsPort,"007517e63e983588f12123dd2dcbebe0c30b83de02",()=>j.getOnboardingStatus,"00e0100ba8769bdf64315d935cd52974956f58d4da",()=>k.getActiveExecutionsAcrossWorkspaces,"40072e44f06ea7cc6c8e4cc54ca056e1f258f5d411",()=>k.getTaskExecutions,"401e23b32bf79a24e75c01885df559c6e7e13ef6e0",()=>f.getLabelsForWorkspace,"40311d6169345104acb146f2c5ae78519fa335009a",()=>j.setOnboardingProgress,"403ce6acdc9a0e1ea5d24bf2ff2f7789bad160e0b5",()=>k.getTaskMessages,"40577ea3226142088fdb93f52f3fa7209138081e3e",()=>j.dispatchTaskCompletionEvent,"405ce31cd7f91286bd624ff40a16dd368bac345586",()=>f.deleteLabel,"406398ddbacd26e0a0c8046075ee5b83be417aaa8a",()=>i.checkMigrationSafety,"406889670cd0739a6a264ddcee90ea5fcb7bb673db",()=>k.stopPtyExecution,"406d8c0b0b85c4d776fbd5fed225d9c468a6631d31",()=>e.createProject,"40700daeecbd12e88cd5e021766323f194e5340e5c",()=>e.deleteWorkspace,"408131d9114dbbcb470b8ebd8a59952c6fe74c7b1b",()=>j.completeOnboarding,"4097e24d8f2caf211a65c4facbb6fcd41f59014b43",()=>m.getProjectTasks,"40a2eb01ae674269fe4ba985c65f48d46e93cdb9c1",()=>l.openInTerminal,"40adf487014f7bc1e336caf6ca41dd89c8dfdca66f",()=>e.createWorkspace,"40af0f88ae49a3b76137e5d6ac5e67462533872055",()=>h.getConfigValues,"40d54cdc3ec5fc657987f05c5fd9673a3cf5550c64",()=>e.getWorkspacesWithRecentTasks,"40f1b12896aab7bf3d6326bf3b69ad8c624b877f2f",()=>k.continueLatestPtyExecution,"40fcf26f82c08eddfdc4c46af8f96752a937ee4286",()=>h.resolveGitLocalPath,"40feef24fb017ee4dbff0339300a4ae022cac5d324",()=>f.createLabel,"60101684dc36433c5408f741671d65e79a1d2e3037",()=>h.setConfigValue,"60292cc381439f5b2c38b255aea95f0ec389f00eb9",()=>g.globalSearch,"602ffab0e116b38506319d923af87cb4e3628fcead",()=>i.migrateProjectPath,"604ce07f6397de5dd0e4c9108ad4ea9d59a5f72960",()=>h.getConfigValue,"605bab229d50b31600ec584db6038eddfb1b229e78",()=>k.resumePtyExecution,"6070b246bf8e2e226eb3d0baa8bf4f31a1df3bab51",()=>k.stopTaskExecution,"60c930992ffc2d7c20bfa7ab92c152e1f66b6c2c88",()=>k.sendTaskMessage,"60d1c1d0d11d9938471b9c96dbdbe3ccb69e3e8055",()=>e.updateWorkspace,"60e5dd3ca68661ac45adf05e9927c2210cbcec9e45",()=>i.analyzeProjectDirectory,"784c36f1000e9929d75fecf2ece5b445bace4f8b92",()=>k.startPtyExecution,"78fce8c9288f2c7e1da74bccd5c3b7990ba1161943",()=>k.startTaskExecution]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0._5zby._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_0knz136._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_10lk3gb._.js"].map(b=>a.l(b))).then(()=>b(23999)))},4868,a=>{a.v(a=>Promise.resolve().then(()=>a(541587)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
1
|
+
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"405c7cdaed8a744b4636209fcc52ee74370aeac41f",null),(0,b.registerServerReference)(m,"6094d5b9b37f81f2c0923909d41df9c9cbb9260df1",null),(0,b.registerServerReference)(n,"60d789f18aebc022055dd1b9f3af1addb5fb991a80",null),(0,b.registerServerReference)(o,"4076220a9a6176a45c796b35db195a40b577da3ff6",null),(0,b.registerServerReference)(p,"40922d01c2b3509a6c7e52b1991eb999c18d91681d",null),(0,b.registerServerReference)(q,"40fb4f6515c3e123ee6b3eae127935b8ad7ac11da9",null),(0,b.registerServerReference)(r,"40eb32b9e682dd0748a588d7bada966e053635f5bf",null),(0,b.registerServerReference)(s,"40a4310c62b96e99488e70fbd4aa2573f37f173536",null),(0,b.registerServerReference)(t,"40896eaa7f639b4ae4d4165da333bc4df1ed644d31",null),(0,b.registerServerReference)(u,"607f024304eb4c500c1c3096b197aa3da2e5d0dded",null),(0,b.registerServerReference)(v,"406a59b8203392dca864137927ca2ef5bcf4ccdd67",null),(0,b.registerServerReference)(w,"40f062b0792460faef1a9085bb6d9ecdd7d7cd1e7c",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},614688,a=>{"use strict";var b=a.i(680889),c=a.i(874533),d=a.i(902157),e=a.i(750227);let f=new Map;function g(a){let b=f.get(a);return!!b&&(f.delete(a),!b.killed&&(b.kill("SIGTERM"),!0))}function h(){for(let a of[...f.keys()])g(a)}process.on("SIGTERM",()=>h()),process.on("SIGINT",()=>h());var i=a.i(968623),j=a.i(632919);async function k(a,b,d){let e;(e=f.get(a))&&!e.killed&&g(a);try{let[e,...h]=b.trim().split(/\s+/),i=(0,c.spawn)(e,h,{cwd:d,shell:!1,detached:!1,stdio:"ignore"});return g(a),i.on("exit",()=>{f.get(a)===i&&f.delete(a)}),f.set(a,i),{started:!0}}catch(a){return{started:!1,error:String(a)}}}async function l(a){g(a)}async function m(a){try{let b=(0,d.readFileSync)((0,e.join)(a,"package.json"),"utf-8"),c=JSON.parse(b),f={...c.dependencies,...c.devDependencies};if(f.vite||f["@vitejs/plugin-vue"]||f["@vitejs/plugin-react"])return"vite";if(f.next)return"next";if(f.nuxt)return"nuxt";if(f["@angular/core"])return"angular";return null}catch{return null}}let n=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function o(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");let b=await (0,i.readConfigValue)("terminal.app","Terminal");if(!n.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,c.execFileSync)("open",["-a",b,a])}(0,j.ensureServerEntryExports)([k,l,m,o]),(0,b.registerServerReference)(k,"70b56ab3788c31089621a5ef868e6dc8eaf4a82663",null),(0,b.registerServerReference)(l,"40f4d1980d383fbc061998ba74329e93319d0f6359",null),(0,b.registerServerReference)(m,"40d2f66ddf13ba681af38915d7a7839ae9d08d954f",null),(0,b.registerServerReference)(o,"40792086b8ddfc45eea4746341d7e08bb697ebc030",null),a.s(["openInTerminal",0,o,"startPreview",0,k,"stopPreview",0,l],614688)},319238,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(643700),a.i(614688),a.i(31782);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),901654,a=>a.a(async(b,c)=>{try{var d=a.i(319238),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(643700),l=a.i(614688),m=a.i(31782),n=b([d,g,h]);[d,g,h]=n.then?(await n)():n,a.s(["000fb4e39ec972db9511a0189892de76b46ee6e9aa",()=>j.getOnboardingStatus,"0073dca5d0325409af9b7177621b17fe326cebe488",()=>h.getActualWsPort,"00c96c216c5f1a7b7bde60634dca29c67de698fa2b",()=>k.getActiveExecutionsAcrossWorkspaces,"400e586f307193ff83593c8d63bc62693553e1afa6",()=>f.getLabelsForWorkspace,"400ffa9303f88489448dd9899070241e26f745a58e",()=>e.deleteWorkspace,"4011bcdb946bba1c505087e70f156fd3989f3b872c",()=>f.deleteLabel,"40527223fea127872c68668224c5822eebbb9bf090",()=>e.createProject,"4061302b8376f5d81135ccb1917c082eef7fca658a",()=>j.completeOnboarding,"4066597f1dfdab694851c822ca15c24d24face6c31",()=>i.checkMigrationSafety,"406890b0e5ee52733eeef868cadf92a5b3ddd4f051",()=>k.stopPtyExecution,"40694cf4b0a7ce295ccdb10c7a286c86eebdaa1f84",()=>k.getTaskExecutions,"4076d0523ca8f9864a5fc3c9fc63d995ebd5d1f03f",()=>k.continueLatestPtyExecution,"40792086b8ddfc45eea4746341d7e08bb697ebc030",()=>l.openInTerminal,"407fb2d0b204a4d0a175a5354170db11c9aafc3f36",()=>e.getWorkspacesWithRecentTasks,"40846f4f265949956da690418ff68309c0851110fb",()=>f.createLabel,"4086718196d2df7c995adeceabd3b4eff491f6f38a",()=>j.setOnboardingProgress,"409086f147c0e764ebc89a103a33d0437543940db9",()=>k.getTaskMessages,"409b01a0501cd6418e001637818a45b4908f321079",()=>h.resolveGitLocalPath,"409c0dd81d080577529994de4ce29a7c0a38dc7435",()=>j.dispatchTaskCompletionEvent,"40a714cf8a5713943d9460d44e361c6d739f12efc9",()=>h.getConfigValues,"40faf9e78c567cc29ecc3a4fd055cf407081d3fe02",()=>e.createWorkspace,"40fb4f6515c3e123ee6b3eae127935b8ad7ac11da9",()=>m.getProjectTasks,"60579c28d1aed49c267cd531a1ee57bace8684177a",()=>i.analyzeProjectDirectory,"606a8a3660e1e616d575379a2c50712b07130ea4ff",()=>k.sendTaskMessage,"60966a0a06af6d734814331b4feab1d5c25c68b327",()=>k.resumePtyExecution,"609b34226fbdf6994c63c038d9626094d8aaf093ec",()=>h.setConfigValue,"60b02796ca653ae818f77fac2e586c17f35e2a0c3e",()=>g.globalSearch,"60bf23fbae56b423bfa90b83d2f9e12132dafa55e0",()=>i.migrateProjectPath,"60c210ff07fecafa2265f30dd96eb4de225a19aa77",()=>h.getConfigValue,"60c990d709c90f774c38bf1afe3b56340413c9293b",()=>e.updateWorkspace,"60cd1d26f52a7d0b4b83844ae6676c0acca3c015e0",()=>k.stopTaskExecution,"78ab7eecbea7614803c9f0cb4a2733e3f634910bc7",()=>k.startPtyExecution,"78ef82f6e3a42ee6def5d3803109568a16fe2d5c3d",()=>k.startTaskExecution]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0._5zby._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_0knz136._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_10lk3gb._.js"].map(b=>a.l(b))).then(()=>b(23999)))},4868,a=>{a.v(a=>Promise.resolve().then(()=>a(541587)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0nmyvwk._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"406e8276c49fc34f681ca891671fbfb313a11aeb14",null),(0,b.registerServerReference)(m,"6019647bbc439d4da6156b656a60dabfcdde85bb1f",null),(0,b.registerServerReference)(n,"60040e85635735db052cc8b2470398fb532c5030da",null),(0,b.registerServerReference)(o,"40cd59b91ec375d053bbbb4e42c9adb9c3bffd1a99",null),(0,b.registerServerReference)(p,"402f1d403498bb101c05d7a3a1d0bac78905017cc9",null),(0,b.registerServerReference)(q,"4097e24d8f2caf211a65c4facbb6fcd41f59014b43",null),(0,b.registerServerReference)(r,"404cf3101a3e381bf5ccdcb3157bae68448c80dd87",null),(0,b.registerServerReference)(s,"401ebcf868b8430269f7428d587adc967fdc85a003",null),(0,b.registerServerReference)(t,"40dbed7b5a11a52a8ba506586c2e5fe665f2814de8",null),(0,b.registerServerReference)(u,"609e64d8a80dc8ac0d5d035b95e3095a73fc7b570d",null),(0,b.registerServerReference)(v,"40fb434111ed68b37fca6f491efecc21b42df45100",null),(0,b.registerServerReference)(w,"406c27dcc195e7fb80a0cc253c56b6ace41102db07",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},532941,a=>{"use strict";let b,c;a.i(666680);var d=a.i(902157),e=a.i(750227),f=a.i(660526);let g=(c=(0,e.join)((b||(b=(0,e.join)((0,f.homedir)(),".tower"),(0,d.existsSync)(b)||(0,d.mkdirSync)(b,{recursive:!0})),b),"storage"),(0,d.existsSync)(c)||(0,d.mkdirSync)(c,{recursive:!0}),c);a.s(["ensureAssetsDir",0,function(a){let b=function(a){let b=e.join(g,"assets",a);if(!b.startsWith(g+e.sep))throw Error("Path traversal detected");return b}(a);return d.mkdirSync(b,{recursive:!0}),b}],532941)},790146,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(902157),f=a.i(750227),g=a.i(96063),h=a.i(832116),i=a.i(972795),j=a.i(532941),k=a.i(727977),l=a.i(632919),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"405a8b6d56cc6625a69a3536a32a56e3f022adffb8",null),(0,d.registerServerReference)(o,"40e95676884e6f25f6fd84ed691f403a659396736f",null),(0,d.registerServerReference)(p,"40c3eb0f8d79830020191ac3f1fbff1c89408ed53c",null),(0,d.registerServerReference)(q,"40a9ff60f6aa78bf28ddef1a04d1f00cf86358b6cb",null),(0,d.registerServerReference)(r,"404c68b309eea96174319312409e7b3ca64ed9b4f2",null),(0,d.registerServerReference)(s,"406e1741582726d876ca7a8d3df2f3f16eaded0600",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),691429,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587);var f=a.i(790146);a.i(31782);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),95547,a=>a.a(async(b,c)=>{try{var d=a.i(691429),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(790146),l=a.i(31782),m=b([d,g,h,k]);[d,g,h,k]=m.then?(await m)():m,a.s(["0027cfcefb7eab9186fdceb345c4db395d81542ac7",()=>h.getPlatformInfo,"0073d9d770a70dc1a403ff147d6ea66df5bccc8686",()=>h.getActualWsPort,"007517e63e983588f12123dd2dcbebe0c30b83de02",()=>j.getOnboardingStatus,"0079dffe9603d6fc268bf9324d48ab3af484967965",()=>h.getAvailableTerminalApps,"00989c1888492bcfa8843c4782c92486e39037753c",()=>e.getWorkspacesWithProjects,"00d07625f8c1fc09f995b81724fa8049ed22b79229",()=>h.getAvailableShells,"40020a75fca39101e3a19e18ee61bd1f6feb43d0db",()=>e.deleteProject,"401e23b32bf79a24e75c01885df559c6e7e13ef6e0",()=>f.getLabelsForWorkspace,"40311d6169345104acb146f2c5ae78519fa335009a",()=>j.setOnboardingProgress,"403dcc0cf00d5eb2dbbee5ec6f0bb5d93bba0ac87a",()=>e.getWorkspaceById,"4043e343760201a238ce986f8233c1371e057bdcda",()=>e.getRecentLocalProjects,"404c68b309eea96174319312409e7b3ca64ed9b4f2",()=>k.getAssetById,"40577ea3226142088fdb93f52f3fa7209138081e3e",()=>j.dispatchTaskCompletionEvent,"405a8b6d56cc6625a69a3536a32a56e3f022adffb8",()=>k.createAsset,"405ce31cd7f91286bd624ff40a16dd368bac345586",()=>f.deleteLabel,"406398ddbacd26e0a0c8046075ee5b83be417aaa8a",()=>i.checkMigrationSafety,"406d8c0b0b85c4d776fbd5fed225d9c468a6631d31",()=>e.createProject,"406e1741582726d876ca7a8d3df2f3f16eaded0600",()=>k.uploadAsset,"40700daeecbd12e88cd5e021766323f194e5340e5c",()=>e.deleteWorkspace,"408131d9114dbbcb470b8ebd8a59952c6fe74c7b1b",()=>j.completeOnboarding,"409242fb5ef124e2f0bf4ec56eef36ff221aff8705",()=>e.getProjectByLocalPath,"40a9ff60f6aa78bf28ddef1a04d1f00cf86358b6cb",()=>k.getTaskAssets,"40adf487014f7bc1e336caf6ca41dd89c8dfdca66f",()=>e.createWorkspace,"40af0f88ae49a3b76137e5d6ac5e67462533872055",()=>h.getConfigValues,"40c3eb0f8d79830020191ac3f1fbff1c89408ed53c",()=>k.getProjectAssets,"40cf0477520bd1ff9e5958ab2ede6d1ad5227a5322",()=>e.getOrCreateTowerTaskId,"40d54cdc3ec5fc657987f05c5fd9673a3cf5550c64",()=>e.getWorkspacesWithRecentTasks,"40e95676884e6f25f6fd84ed691f403a659396736f",()=>k.deleteAsset,"40fb434111ed68b37fca6f491efecc21b42df45100",()=>l.getTaskOverview,"40fcf26f82c08eddfdc4c46af8f96752a937ee4286",()=>h.resolveGitLocalPath,"40feef24fb017ee4dbff0339300a4ae022cac5d324",()=>f.createLabel,"60101684dc36433c5408f741671d65e79a1d2e3037",()=>h.setConfigValue,"60292cc381439f5b2c38b255aea95f0ec389f00eb9",()=>g.globalSearch,"602ffab0e116b38506319d923af87cb4e3628fcead",()=>i.migrateProjectPath,"604ce07f6397de5dd0e4c9108ad4ea9d59a5f72960",()=>h.getConfigValue,"606338304ba89f67d0e8f07b8dfb6c7e213505ed48",()=>e.updateProject,"60d1c1d0d11d9938471b9c96dbdbe3ccb69e3e8055",()=>e.updateWorkspace,"60e5dd3ca68661ac45adf05e9927c2210cbcec9e45",()=>i.analyzeProjectDirectory]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0kwu.w7._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0uca1bc._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__04u4kb4._.js"].map(b=>a.l(b))).then(()=>b(23999)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
1
|
+
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"405c7cdaed8a744b4636209fcc52ee74370aeac41f",null),(0,b.registerServerReference)(m,"6094d5b9b37f81f2c0923909d41df9c9cbb9260df1",null),(0,b.registerServerReference)(n,"60d789f18aebc022055dd1b9f3af1addb5fb991a80",null),(0,b.registerServerReference)(o,"4076220a9a6176a45c796b35db195a40b577da3ff6",null),(0,b.registerServerReference)(p,"40922d01c2b3509a6c7e52b1991eb999c18d91681d",null),(0,b.registerServerReference)(q,"40fb4f6515c3e123ee6b3eae127935b8ad7ac11da9",null),(0,b.registerServerReference)(r,"40eb32b9e682dd0748a588d7bada966e053635f5bf",null),(0,b.registerServerReference)(s,"40a4310c62b96e99488e70fbd4aa2573f37f173536",null),(0,b.registerServerReference)(t,"40896eaa7f639b4ae4d4165da333bc4df1ed644d31",null),(0,b.registerServerReference)(u,"607f024304eb4c500c1c3096b197aa3da2e5d0dded",null),(0,b.registerServerReference)(v,"406a59b8203392dca864137927ca2ef5bcf4ccdd67",null),(0,b.registerServerReference)(w,"40f062b0792460faef1a9085bb6d9ecdd7d7cd1e7c",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},532941,a=>{"use strict";let b,c;a.i(666680);var d=a.i(902157),e=a.i(750227),f=a.i(660526);let g=(c=(0,e.join)((b||(b=(0,e.join)((0,f.homedir)(),".tower"),(0,d.existsSync)(b)||(0,d.mkdirSync)(b,{recursive:!0})),b),"storage"),(0,d.existsSync)(c)||(0,d.mkdirSync)(c,{recursive:!0}),c);a.s(["ensureAssetsDir",0,function(a){let b=function(a){let b=e.join(g,"assets",a);if(!b.startsWith(g+e.sep))throw Error("Path traversal detected");return b}(a);return d.mkdirSync(b,{recursive:!0}),b}],532941)},790146,a=>a.a(async(b,c)=>{try{var d=a.i(680889),e=a.i(902157),f=a.i(750227),g=a.i(96063),h=a.i(832116),i=a.i(972795),j=a.i(532941),k=a.i(727977),l=a.i(632919),m=b([k]);[k]=m.then?(await m)():m;let t=g.z.object({filename:g.z.string().min(1).max(255),path:g.z.string().min(1),mimeType:g.z.string().max(100).optional(),size:g.z.number().int().nonnegative().optional(),projectId:g.z.string().min(1),description:g.z.string().max(500).optional(),taskId:g.z.string().optional()});async function n(a){let b=t.parse(a);(0,j.ensureAssetsDir)(b.projectId);let c=await h.db.projectAsset.create({data:{...b,taskId:b.taskId??null}});return(0,i.revalidatePath)("/workspaces"),c}async function o(a){let b=await h.db.projectAsset.findUnique({where:{id:a}});b?.path&&await e.promises.unlink(b.path).catch(()=>{}),await h.db.projectAsset.delete({where:{id:a}}),(0,i.revalidatePath)("/workspaces")}async function p(a){return h.db.projectAsset.findMany({where:{projectId:a},orderBy:{createdAt:"desc"},include:{task:{select:{id:!0,title:!0,status:!0,priority:!0,description:!0,createdAt:!0,labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}}})}async function q(a){return h.db.projectAsset.findMany({where:{taskId:a},orderBy:{createdAt:"desc"}})}async function r(a){return h.db.projectAsset.findUnique({where:{id:a}})}async function s(a){let b=a.get("file"),c=a.get("projectId"),d=a.get("taskId")||void 0;if(!b||!c)throw Error("Missing file or projectId");let g=await (0,k.getConfigValue)("system.maxUploadBytes",0x3200000);if(b.size>g)throw Error(`File too large (max ${Math.round(g/1024/1024)} MB)`);let l=a.get("description")??"";if(!await h.db.project.findUnique({where:{id:c}}))throw Error("Invalid projectId");let m=Buffer.from(await b.arrayBuffer()),o=(0,j.ensureAssetsDir)(c),p=f.basename(b.name);p&&"."!==p&&".."!==p||(p=`upload-${Date.now()}`);let q=f.join(o,p);if(e.existsSync(q)){let a=f.extname(p),b=f.basename(p,a);p=`${b}-${Date.now()}${a}`}let r=f.join(o,p);if(!r.startsWith(o))throw Error("Invalid filename");await e.promises.writeFile(r,m);let s=await n({filename:p,path:r,mimeType:b.type||void 0,size:b.size,projectId:c,description:l||void 0,taskId:d});return(0,i.revalidatePath)("/workspaces"),s}(0,l.ensureServerEntryExports)([n,o,p,q,r,s]),(0,d.registerServerReference)(n,"408e661fb2652f8a97575d482542ee9a8b79bab416",null),(0,d.registerServerReference)(o,"40f4233344f4028e7561334fae8880577d4b84d654",null),(0,d.registerServerReference)(p,"40afaafc38e7e4c0612a8cc9797c3c08b338d07421",null),(0,d.registerServerReference)(q,"40a8cc279e0ac90608e2af43dfb8227bf5cdd59d47",null),(0,d.registerServerReference)(r,"40f75da1f7329c6c522ee762fa18c62ff1c415399a",null),(0,d.registerServerReference)(s,"4016235521118ea84740785c18edc604b6ae43b33f",null),a.s(["createAsset",0,n,"deleteAsset",0,o,"getAssetById",0,r,"getProjectAssets",0,p,"getTaskAssets",0,q,"uploadAsset",0,s]),c()}catch(a){c(a)}},!1),691429,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587);var f=a.i(790146);a.i(31782);var g=b([d,e,f]);[d,e,f]=g.then?(await g)():g,a.s([]),c()}catch(a){c(a)}},!1),95547,a=>a.a(async(b,c)=>{try{var d=a.i(691429),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(790146),l=a.i(31782),m=b([d,g,h,k]);[d,g,h,k]=m.then?(await m)():m,a.s(["000fb4e39ec972db9511a0189892de76b46ee6e9aa",()=>j.getOnboardingStatus,"001398427306d12f2f89c7ae3050daeee981a3616d",()=>h.getPlatformInfo,"0044f2a6c1b0bdfe3f96fd2a1acd67295b6a2b25e2",()=>e.getWorkspacesWithProjects,"0073dca5d0325409af9b7177621b17fe326cebe488",()=>h.getActualWsPort,"007bb464ca3b46f9ebd7c87834dc26a0c629df67e5",()=>h.getAvailableShells,"009b3dc59e0ae9151a27ab16a3c29647b18ed6677c",()=>h.getAvailableTerminalApps,"400261a6fb1c366a989585444549d8506d4ba9db8c",()=>e.getRecentLocalProjects,"40063460d41622db1f63f741d432114ef2650a1f76",()=>e.getProjectByLocalPath,"400e586f307193ff83593c8d63bc62693553e1afa6",()=>f.getLabelsForWorkspace,"400ffa9303f88489448dd9899070241e26f745a58e",()=>e.deleteWorkspace,"4011bcdb946bba1c505087e70f156fd3989f3b872c",()=>f.deleteLabel,"4016235521118ea84740785c18edc604b6ae43b33f",()=>k.uploadAsset,"401a86ff2781c007191e772caa16e4b6e7441b15d0",()=>e.deleteProject,"40527223fea127872c68668224c5822eebbb9bf090",()=>e.createProject,"4061302b8376f5d81135ccb1917c082eef7fca658a",()=>j.completeOnboarding,"4066597f1dfdab694851c822ca15c24d24face6c31",()=>i.checkMigrationSafety,"406a59b8203392dca864137927ca2ef5bcf4ccdd67",()=>l.getTaskOverview,"407fb2d0b204a4d0a175a5354170db11c9aafc3f36",()=>e.getWorkspacesWithRecentTasks,"40846f4f265949956da690418ff68309c0851110fb",()=>f.createLabel,"4086718196d2df7c995adeceabd3b4eff491f6f38a",()=>j.setOnboardingProgress,"408e661fb2652f8a97575d482542ee9a8b79bab416",()=>k.createAsset,"409b01a0501cd6418e001637818a45b4908f321079",()=>h.resolveGitLocalPath,"409c0dd81d080577529994de4ce29a7c0a38dc7435",()=>j.dispatchTaskCompletionEvent,"40a714cf8a5713943d9460d44e361c6d739f12efc9",()=>h.getConfigValues,"40a8cc279e0ac90608e2af43dfb8227bf5cdd59d47",()=>k.getTaskAssets,"40ac52fbeec4ccb55e6302a7b3041b70a3fb54f683",()=>e.getWorkspaceById,"40afaafc38e7e4c0612a8cc9797c3c08b338d07421",()=>k.getProjectAssets,"40f4233344f4028e7561334fae8880577d4b84d654",()=>k.deleteAsset,"40f75da1f7329c6c522ee762fa18c62ff1c415399a",()=>k.getAssetById,"40f970bc0ca57ada0365f4088ef980b207fcf6a70c",()=>e.getOrCreateTowerTaskId,"40faf9e78c567cc29ecc3a4fd055cf407081d3fe02",()=>e.createWorkspace,"600866e086353c584288550341453060402c288c51",()=>e.updateProject,"60579c28d1aed49c267cd531a1ee57bace8684177a",()=>i.analyzeProjectDirectory,"609b34226fbdf6994c63c038d9626094d8aaf093ec",()=>h.setConfigValue,"60b02796ca653ae818f77fac2e586c17f35e2a0c3e",()=>g.globalSearch,"60bf23fbae56b423bfa90b83d2f9e12132dafa55e0",()=>i.migrateProjectPath,"60c210ff07fecafa2265f30dd96eb4de225a19aa77",()=>h.getConfigValue,"60c990d709c90f774c38bf1afe3b56340413c9293b",()=>e.updateWorkspace]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0kwu.w7._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0uca1bc._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__04u4kb4._.js"].map(b=>a.l(b))).then(()=>b(23999)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0w7gbe7._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"406e8276c49fc34f681ca891671fbfb313a11aeb14",null),(0,b.registerServerReference)(m,"6019647bbc439d4da6156b656a60dabfcdde85bb1f",null),(0,b.registerServerReference)(n,"60040e85635735db052cc8b2470398fb532c5030da",null),(0,b.registerServerReference)(o,"40cd59b91ec375d053bbbb4e42c9adb9c3bffd1a99",null),(0,b.registerServerReference)(p,"402f1d403498bb101c05d7a3a1d0bac78905017cc9",null),(0,b.registerServerReference)(q,"4097e24d8f2caf211a65c4facbb6fcd41f59014b43",null),(0,b.registerServerReference)(r,"404cf3101a3e381bf5ccdcb3157bae68448c80dd87",null),(0,b.registerServerReference)(s,"401ebcf868b8430269f7428d587adc967fdc85a003",null),(0,b.registerServerReference)(t,"40dbed7b5a11a52a8ba506586c2e5fe665f2814de8",null),(0,b.registerServerReference)(u,"609e64d8a80dc8ac0d5d035b95e3095a73fc7b570d",null),(0,b.registerServerReference)(v,"40fb434111ed68b37fca6f491efecc21b42df45100",null),(0,b.registerServerReference)(w,"406c27dcc195e7fb80a0cc253c56b6ace41102db07",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},796544,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(632919).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"40cac01602ea70718d6d39fb05667f22600d838b6a",null),(0,b.registerServerReference)(f,"405beb8dac49d8eaa0d7b46d58f4c819789f33eb2b",null),(0,b.registerServerReference)(g,"4063507e27b569c56d0f81a3be320eacc3edc5a74b",null),(0,b.registerServerReference)(h,"60b9d212b8f964067b80d3e72ea20b327e6b12348d",null),(0,b.registerServerReference)(i,"40eb489b0a8b188824db6bff86761c814e5d5e88f1",null),(0,b.registerServerReference)(j,"60ff43bfa8258e1c96de0e8b0719e61f4a45584ce2",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},614688,a=>{"use strict";var b=a.i(680889),c=a.i(874533),d=a.i(902157),e=a.i(750227);let f=new Map;function g(a){let b=f.get(a);return!!b&&(f.delete(a),!b.killed&&(b.kill("SIGTERM"),!0))}function h(){for(let a of[...f.keys()])g(a)}process.on("SIGTERM",()=>h()),process.on("SIGINT",()=>h());var i=a.i(968623),j=a.i(632919);async function k(a,b,d){let e;(e=f.get(a))&&!e.killed&&g(a);try{let[e,...h]=b.trim().split(/\s+/),i=(0,c.spawn)(e,h,{cwd:d,shell:!1,detached:!1,stdio:"ignore"});return g(a),i.on("exit",()=>{f.get(a)===i&&f.delete(a)}),f.set(a,i),{started:!0}}catch(a){return{started:!1,error:String(a)}}}async function l(a){g(a)}async function m(a){try{let b=(0,d.readFileSync)((0,e.join)(a,"package.json"),"utf-8"),c=JSON.parse(b),f={...c.dependencies,...c.devDependencies};if(f.vite||f["@vitejs/plugin-vue"]||f["@vitejs/plugin-react"])return"vite";if(f.next)return"next";if(f.nuxt)return"nuxt";if(f["@angular/core"])return"angular";return null}catch{return null}}let n=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function o(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");let b=await (0,i.readConfigValue)("terminal.app","Terminal");if(!n.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,c.execFileSync)("open",["-a",b,a])}(0,j.ensureServerEntryExports)([k,l,m,o]),(0,b.registerServerReference)(k,"709111f2ed76480b126711f2997db551ca17995533",null),(0,b.registerServerReference)(l,"40a4c218274b52b6f9de9377c87f502bfeef726681",null),(0,b.registerServerReference)(m,"4022f7ab241aba4cff260817addafc61bc5fd32fbb",null),(0,b.registerServerReference)(o,"40a2eb01ae674269fe4ba985c65f48d46e93cdb9c1",null),a.s(["openInTerminal",0,o,"startPreview",0,k,"stopPreview",0,l],614688)},939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0q3t9-e._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_10~x~zx._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_0cjk_8x._.js"].map(b=>a.l(b))).then(()=>b(23999)))},4868,a=>{a.v(a=>Promise.resolve().then(()=>a(541587)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
1
|
+
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},961374,a=>{"use strict";var b=a.i(233405),c=a.i(522734),d=a.i(924868),e=a.i(814747),f=a.i(446786),g=a.i(6938);function h(a){return a.startsWith("~/")||"~"===a?e.default.join(f.default.homedir(),a.slice(1)):a}async function i(a,f,i){let j=h(a),k=e.default.join(j,".worktrees","task-"+f),l="task/"+f;await (0,d.mkdir)(e.default.join(j,".worktrees"),{recursive:!0});let m=(0,b.execFileSync)("git",["worktree","list","--porcelain"],{cwd:j,encoding:"utf-8",timeout:1e4}),n=e.default.normalize(k).replace(/\\/g,"/");if(m.split("\n").some(a=>a.startsWith("worktree ")&&a.slice(9).replace(/\\/g,"/")===n))return{worktreePath:k,worktreeBranch:l};if((0,c.existsSync)(k)&&(g.logger.warn(`[worktree] Directory exists but not tracked by git, removing: ${k}`),(0,b.execFileSync)("git",["worktree","remove",k,"--force"],{cwd:j,encoding:"utf-8",timeout:3e4})),(0,b.execFileSync)("git",["branch","--list",l],{cwd:j,encoding:"utf-8",timeout:5e3}).trim())(0,b.execFileSync)("git",["worktree","add",k,l],{cwd:j,encoding:"utf-8",timeout:3e4});else{let a=i;try{(0,b.execFileSync)("git",["rev-parse","--verify",i],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{try{(0,b.execFileSync)("git",["rev-parse","--verify",`origin/${i}`],{cwd:j,encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}),a=`origin/${i}`}catch{throw Error(`Base branch '${i}' does not exist locally or on remote. Available branches: `+(0,b.execFileSync)("git",["branch","-a","--format=%(refname:short)"],{cwd:j,encoding:"utf-8",timeout:5e3}).trim().split("\n").join(", "))}}(0,b.execFileSync)("git",["worktree","add","-b",l,k,a],{cwd:j,encoding:"utf-8",timeout:3e4})}return function(a,b){let d=g.logger.create("worktree");for(let f of["node_modules",".next"]){let g=e.default.join(a,f),h=e.default.join(b,f);if((0,c.existsSync)(g)){try{(0,c.lstatSync)(h);continue}catch{}try{(0,c.symlinkSync)(g,h,"junction"),d.info(`Symlinked ${f}`,{from:g,to:h})}catch(a){d.warn(`Failed to symlink ${f}`,{error:String(a)})}}}}(j,k),{worktreePath:k,worktreeBranch:l}}async function j(a,d){let f=h(a),g=e.default.join(f,".worktrees","task-"+d),i="task/"+d;(0,c.existsSync)(g)&&(0,b.execFileSync)("git",["worktree","remove",g,"--force"],{cwd:f,encoding:"utf-8",timeout:3e4}),(0,b.execFileSync)("git",["branch","--list",i],{cwd:f,encoding:"utf-8",timeout:5e3}).trim()&&(0,b.execFileSync)("git",["branch","-D",i],{cwd:f,encoding:"utf-8",timeout:5e3})}a.s(["createWorktree",0,i,"removeWorktree",0,j])},31782,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795),e=a.i(30292),f=a.i(961374),g=a.i(96063),h=a.i(232779),i=a.i(6938),j=a.i(632919);let k=i.logger.create("task-actions");async function l(a){let b=h.createTaskSchema.parse(a),e=await c.db.task.create({data:{title:b.title,description:b.description,projectId:b.projectId,priority:b.priority??"MEDIUM",status:b.status??"TODO",baseBranch:b.baseBranch??null,subPath:b.subPath??null}});return b.labelIds&&b.labelIds.length>0&&await c.db.taskLabel.createMany({data:b.labelIds.map(a=>({taskId:e.id,labelId:a}))}),(0,d.revalidatePath)("/workspaces"),e}async function m(b,e){h.taskStatusSchema.parse(e);let g=await c.db.task.update({where:{id:b},data:{status:e},include:{project:!0}});if("DONE"===e&&!g.baseBranch&&g.project?.localPath)try{let{execFileSync:d}=await a.A(144264),e=d("git",["rev-parse","HEAD"],{cwd:g.project.localPath,encoding:"utf-8",timeout:5e3}).trim();if(e){let a=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});a&&await c.db.taskExecution.update({where:{id:a.id},data:{mergeCommit:e}})}}catch{}if("DONE"===e&&a.A(131993).then(({captureTaskDreaming:a})=>{a(b).catch(()=>{})}).catch(()=>{}),"CANCELLED"===e&&g.project?.localPath)try{await (0,f.removeWorktree)(g.project.localPath,b)}catch(a){k.error("Worktree cleanup failed",a,{taskId:b})}return(0,d.revalidatePath)("/workspaces"),g}async function n(a,b){let{labelIds:f,...g}=h.updateTaskSchema.parse(b),i=await c.db.task.update({where:{id:a},data:g});return void 0!==f&&await (0,e.setTaskLabels)(a,f),(0,d.revalidatePath)("/workspaces"),i}async function o(a){g.z.string().cuid().parse(a);let b=await c.db.task.findUniqueOrThrow({where:{id:a},select:{pinned:!0}}),e=await c.db.task.update({where:{id:a},data:{pinned:!b.pinned}});return(0,d.revalidatePath)("/workspaces"),e}async function p(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(e?.project?.localPath)try{await (0,f.removeWorktree)(e.project.localPath,b)}catch{}try{let{destroySession:c}=await a.A(585988);c(b)}catch{}await c.db.task.delete({where:{id:b}}),(0,d.revalidatePath)("/workspaces")}async function q(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,OR:[{status:{notIn:["DONE","CANCELLED"]}},{status:{in:["DONE","CANCELLED"]},updatedAt:{gte:b}}]},orderBy:[{pinned:"desc"},{order:"asc"},{createdAt:"desc"}]})}async function r(a){return a.trim()?c.db.task.findMany({where:{OR:[{title:{contains:a}},{description:{contains:a}}]},include:{project:{include:{workspace:!0}}},take:20,orderBy:{updatedAt:"desc"}}):[]}async function s(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.findMany({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1}},orderBy:{updatedAt:"desc"}})}async function t(b){let{execFileSync:d}=await a.A(144264),{existsSync:e}=await a.A(323970),f=await c.db.task.findUnique({where:{id:b}}),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!e(g.worktreePath))return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!1};let h=g.worktreePath,i=f?.baseBranch||"main";try{let a=d("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=a?a.split("\n").map(a=>a.trim()).filter(Boolean):[],c=0===b.length,e=!1,f=null,g=[];try{let a=d("git",["merge-base",i,"HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim(),b=d("git",["rev-list","--count",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();if(e=parseInt(b,10)>0){f=d("git",["log","-1","--format=%B"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();let b=d("git",["log","--oneline",`${a}..HEAD`],{cwd:h,encoding:"utf-8",timeout:5e3}).trim();g=b?b.split("\n").filter(Boolean):[]}}catch{}return{clean:c,files:b,hasCommits:e,lastCommitMessage:f,commitLog:g,hasWorktree:!0}}catch{return{clean:!0,files:[],hasCommits:!1,lastCommitMessage:null,commitLog:[],hasWorktree:!0}}}async function u(b,d){let{execFileSync:e}=await a.A(144264),{existsSync:f}=await a.A(323970),g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}});if(!g?.worktreePath||!f(g.worktreePath))throw Error("No active worktree for this task");let h=g.worktreePath;if(e("git",["add","-A"],{cwd:h,timeout:1e4}),!e("git",["status","--porcelain"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim())throw Error("No changes to commit");return e("git",["commit","-m",d],{cwd:h,encoding:"utf-8",timeout:15e3}),{hash:e("git",["rev-parse","--short","HEAD"],{cwd:h,encoding:"utf-8",timeout:5e3}).trim()}}async function v(a){return/^c[a-z0-9]{20,30}$/.test(a)?c.db.task.findUnique({where:{id:a},include:{labels:{include:{label:!0}},executions:{orderBy:{createdAt:"desc"},take:1,select:{summary:!0,status:!0,endedAt:!0}},_count:{select:{assets:!0}}}}):null}async function w(a){let b=new Date;return b.setHours(0,0,0,0),c.db.task.count({where:{projectId:a,status:{in:["DONE","CANCELLED"]},updatedAt:{lt:b}}})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,r,s,t,u,v,w]),(0,b.registerServerReference)(l,"405c7cdaed8a744b4636209fcc52ee74370aeac41f",null),(0,b.registerServerReference)(m,"6094d5b9b37f81f2c0923909d41df9c9cbb9260df1",null),(0,b.registerServerReference)(n,"60d789f18aebc022055dd1b9f3af1addb5fb991a80",null),(0,b.registerServerReference)(o,"4076220a9a6176a45c796b35db195a40b577da3ff6",null),(0,b.registerServerReference)(p,"40922d01c2b3509a6c7e52b1991eb999c18d91681d",null),(0,b.registerServerReference)(q,"40fb4f6515c3e123ee6b3eae127935b8ad7ac11da9",null),(0,b.registerServerReference)(r,"40eb32b9e682dd0748a588d7bada966e053635f5bf",null),(0,b.registerServerReference)(s,"40a4310c62b96e99488e70fbd4aa2573f37f173536",null),(0,b.registerServerReference)(t,"40896eaa7f639b4ae4d4165da333bc4df1ed644d31",null),(0,b.registerServerReference)(u,"607f024304eb4c500c1c3096b197aa3da2e5d0dded",null),(0,b.registerServerReference)(v,"406a59b8203392dca864137927ca2ef5bcf4ccdd67",null),(0,b.registerServerReference)(w,"40f062b0792460faef1a9085bb6d9ecdd7d7cd1e7c",null),a.s(["checkWorktreeClean",0,t,"commitWorktreeChanges",0,u,"createTask",0,l,"deleteTask",0,p,"getArchivedTaskCount",0,w,"getArchivedTasks",0,s,"getProjectTasks",0,q,"getTaskOverview",0,v,"searchTasks",0,r,"toggleTaskPinned",0,o,"updateTask",0,n,"updateTaskStatus",0,m])},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},796544,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(632919).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"406d2663b3d37c90d4cfccca5c89eddd5a3481f246",null),(0,b.registerServerReference)(f,"4065c7fc3646ee3578932f1e2981e7783cb9848d24",null),(0,b.registerServerReference)(g,"40f950e686d4958cb623861c78e6f6c8cfbc779c34",null),(0,b.registerServerReference)(h,"608e3d8c5fb175bc2b7a4e8d89c518a4104d477dbf",null),(0,b.registerServerReference)(i,"40cedaa1d5033f0e6af6ec8a743cc7e26b58fe86ef",null),(0,b.registerServerReference)(j,"60b5bbfb9d2430cff30785ee85db7e9286ca247811",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},614688,a=>{"use strict";var b=a.i(680889),c=a.i(874533),d=a.i(902157),e=a.i(750227);let f=new Map;function g(a){let b=f.get(a);return!!b&&(f.delete(a),!b.killed&&(b.kill("SIGTERM"),!0))}function h(){for(let a of[...f.keys()])g(a)}process.on("SIGTERM",()=>h()),process.on("SIGINT",()=>h());var i=a.i(968623),j=a.i(632919);async function k(a,b,d){let e;(e=f.get(a))&&!e.killed&&g(a);try{let[e,...h]=b.trim().split(/\s+/),i=(0,c.spawn)(e,h,{cwd:d,shell:!1,detached:!1,stdio:"ignore"});return g(a),i.on("exit",()=>{f.get(a)===i&&f.delete(a)}),f.set(a,i),{started:!0}}catch(a){return{started:!1,error:String(a)}}}async function l(a){g(a)}async function m(a){try{let b=(0,d.readFileSync)((0,e.join)(a,"package.json"),"utf-8"),c=JSON.parse(b),f={...c.dependencies,...c.devDependencies};if(f.vite||f["@vitejs/plugin-vue"]||f["@vitejs/plugin-react"])return"vite";if(f.next)return"next";if(f.nuxt)return"nuxt";if(f["@angular/core"])return"angular";return null}catch{return null}}let n=["Terminal","iTerm","iTerm2","Warp","Hyper","Alacritty","WezTerm","kitty"];async function o(a){if(!a||!(0,e.isAbsolute)(a))throw Error("openInTerminal requires an absolute path");let b=await (0,i.readConfigValue)("terminal.app","Terminal");if(!n.includes(b))throw Error(`Terminal app '${b}' is not in the allowed list`);(0,c.execFileSync)("open",["-a",b,a])}(0,j.ensureServerEntryExports)([k,l,m,o]),(0,b.registerServerReference)(k,"70b56ab3788c31089621a5ef868e6dc8eaf4a82663",null),(0,b.registerServerReference)(l,"40f4d1980d383fbc061998ba74329e93319d0f6359",null),(0,b.registerServerReference)(m,"40d2f66ddf13ba681af38915d7a7839ae9d08d954f",null),(0,b.registerServerReference)(o,"40792086b8ddfc45eea4746341d7e08bb697ebc030",null),a.s(["openInTerminal",0,o,"startPreview",0,k,"stopPreview",0,l],614688)},939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_src_lib_0q3t9-e._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(a=>Promise.resolve().then(()=>a(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_10~x~zx._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(a=>Promise.resolve().then(()=>a(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))},131993,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_0cjk_8x._.js"].map(b=>a.l(b))).then(()=>b(23999)))},4868,a=>{a.v(a=>Promise.resolve().then(()=>a(541587)))},260815,a=>{a.v(a=>Promise.resolve().then(()=>a(924868)))},323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__11j4k9o._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},796544,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(632919).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"40cac01602ea70718d6d39fb05667f22600d838b6a",null),(0,b.registerServerReference)(f,"405beb8dac49d8eaa0d7b46d58f4c819789f33eb2b",null),(0,b.registerServerReference)(g,"4063507e27b569c56d0f81a3be320eacc3edc5a74b",null),(0,b.registerServerReference)(h,"60b9d212b8f964067b80d3e72ea20b327e6b12348d",null),(0,b.registerServerReference)(i,"40eb489b0a8b188824db6bff86761c814e5d5e88f1",null),(0,b.registerServerReference)(j,"60ff43bfa8258e1c96de0e8b0719e61f4a45584ce2",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},540363,a=>{"use strict";var b=a.i(680889),c=a.i(750227),d=a.i(832116),e=a.i(972795),f=a.i(143971),g=a.i(632919);let h=new Set(["PATH","LD_PRELOAD","DYLD_INSERT_LIBRARIES","LD_LIBRARY_PATH","HOME","SHELL","USER","DYLD_LIBRARY_PATH","NODE_OPTIONS"]);async function i(){let a=await d.db.cliProfile.findFirst({where:{isDefault:!0}});return a?{id:a.id,name:a.name,command:a.command,baseArgs:a.baseArgs,envVars:a.envVars}:null}async function j(a,b){if(void 0!==b.command){let a=c.default.basename(b.command),d=[...new Set([...f.providerRegistry.getAllowedCommands(),"claude-code"])];if(!d.includes(a))throw Error(`command must be one of: ${d.join(", ")} (got: ${a})`)}if(void 0!==b.baseArgs){let a;try{a=JSON.parse(b.baseArgs)}catch{throw Error("baseArgs 格式无效,必须是 JSON 数组")}if(!Array.isArray(a))throw Error("baseArgs 格式无效,必须是 JSON 数组");for(let b of a){if("string"!=typeof b)throw Error("baseArgs 中每个元素必须是字符串");if(/[;&|`$()]/.test(b))throw Error(`baseArgs 包含不允许的字符: ${b}`)}}if(void 0!==b.envVars){let a;try{a=JSON.parse(b.envVars)}catch{throw Error("envVars 格式无效,必须是 JSON 对象")}if("object"!=typeof a||Array.isArray(a)||null===a)throw Error("envVars 格式无效,必须是 JSON 对象");for(let b of Object.keys(a))if(h.has(b.toUpperCase()))throw Error(`envVars 不允许设置系统关键变量: ${b}`)}try{let c=await d.db.cliProfile.update({where:{id:a},data:b});return(0,e.revalidatePath)("/settings"),c}catch(a){if(a&&"object"==typeof a&&"code"in a&&"P2025"===a.code)throw Error("CLI Profile 不存在,请检查配置");throw a}}(0,g.ensureServerEntryExports)([i,j]),(0,b.registerServerReference)(i,"005ed3e8f68cd21bc7496bccadba540a945ab98d44",null),(0,b.registerServerReference)(j,"60806ea6b760e862a931b9b0735844b825577dc03a",null),a.s(["getDefaultCliProfile",0,i,"updateCliProfile",0,j])},608880,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(796544),a.i(540363);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),150585,a=>a.a(async(b,c)=>{try{var d=a.i(608880),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(796544),l=a.i(540363),m=b([d,g,h]);[d,g,h]=m.then?(await m)():m,a.s(["005ed3e8f68cd21bc7496bccadba540a945ab98d44",()=>l.getDefaultCliProfile,"0073d9d770a70dc1a403ff147d6ea66df5bccc8686",()=>h.getActualWsPort,"007517e63e983588f12123dd2dcbebe0c30b83de02",()=>j.getOnboardingStatus,"0079dffe9603d6fc268bf9324d48ab3af484967965",()=>h.getAvailableTerminalApps,"401e23b32bf79a24e75c01885df559c6e7e13ef6e0",()=>f.getLabelsForWorkspace,"40311d6169345104acb146f2c5ae78519fa335009a",()=>j.setOnboardingProgress,"40577ea3226142088fdb93f52f3fa7209138081e3e",()=>j.dispatchTaskCompletionEvent,"405ce31cd7f91286bd624ff40a16dd368bac345586",()=>f.deleteLabel,"4063507e27b569c56d0f81a3be320eacc3edc5a74b",()=>k.createPrompt,"406398ddbacd26e0a0c8046075ee5b83be417aaa8a",()=>i.checkMigrationSafety,"406d8c0b0b85c4d776fbd5fed225d9c468a6631d31",()=>e.createProject,"40700daeecbd12e88cd5e021766323f194e5340e5c",()=>e.deleteWorkspace,"408131d9114dbbcb470b8ebd8a59952c6fe74c7b1b",()=>j.completeOnboarding,"40adf487014f7bc1e336caf6ca41dd89c8dfdca66f",()=>e.createWorkspace,"40af0f88ae49a3b76137e5d6ac5e67462533872055",()=>h.getConfigValues,"40cac01602ea70718d6d39fb05667f22600d838b6a",()=>k.getPrompts,"40eb489b0a8b188824db6bff86761c814e5d5e88f1",()=>k.deletePrompt,"40fcf26f82c08eddfdc4c46af8f96752a937ee4286",()=>h.resolveGitLocalPath,"40feef24fb017ee4dbff0339300a4ae022cac5d324",()=>f.createLabel,"60101684dc36433c5408f741671d65e79a1d2e3037",()=>h.setConfigValue,"60292cc381439f5b2c38b255aea95f0ec389f00eb9",()=>g.globalSearch,"602ffab0e116b38506319d923af87cb4e3628fcead",()=>i.migrateProjectPath,"604ce07f6397de5dd0e4c9108ad4ea9d59a5f72960",()=>h.getConfigValue,"60806ea6b760e862a931b9b0735844b825577dc03a",()=>l.updateCliProfile,"60b9d212b8f964067b80d3e72ea20b327e6b12348d",()=>k.updatePrompt,"60d1c1d0d11d9938471b9c96dbdbe3ccb69e3e8055",()=>e.updateWorkspace,"60e5dd3ca68661ac45adf05e9927c2210cbcec9e45",()=>i.analyzeProjectDirectory,"60ff43bfa8258e1c96de0e8b0719e61f4a45584ce2",()=>k.setDefaultPrompt]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0wkjslq._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0xe9b6_._.js"].map(b=>a.l(b))).then(()=>b(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_04g3~44._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_child_process_0pwkpv9._.js"].map(b=>a.l(b))).then(()=>b(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))}];
|
|
1
|
+
module.exports=[660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},575675,a=>{"use strict";var b=a.i(902157),c=a.i(660526),d=a.i(750227),e=a.i(912206);let f=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];a.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(a){let b=[];a.profileArgs?.length&&b.push(...a.profileArgs),a.resumeSessionId?b.push("--resume",a.resumeSessionId):a.continueLatest?b.push("--continue"):a.prompt&&b.push(a.prompt);let c={...a.profileEnvVars??{},...a.envOverrides??{}};return{command:this.resolveCommand(),args:b,env:c}}buildEnvOverrides(a){let b={TOWER_TASK_ID:a.taskId,TOWER_TASK_TITLE:a.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:a.apiUrl};return a.callbackUrl&&(b.CALLBACK_URL=a.callbackUrl),b}async installHooks(a){let b=this.readSettings(),c=b.hooks??{},e=this.getPostToolUseArray(b);if(this.findTowerHookIndex(e)>=0)return;let f=d.join(process.cwd(),"scripts","post-tool-hook.js"),g={hooks:[{command:`node "${f}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"};b.hooks={...c,PostToolUse:[...e,g]},this.writeSettings(b)}async uninstallHooks(){let a=this.readSettings(),b=a.hooks??{},c=this.getPostToolUseArray(a).filter(a=>!a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")));a.hooks={...b,PostToolUse:c},this.writeSettings(a)}async isHooksInstalled(){let a=this.readSettings(),b=this.getPostToolUseArray(a);return this.findTowerHookIndex(b)>=0}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:b}=await a.A(144264),{promisify:c}=await a.A(534777),d=c(b),e=this.resolveCommand(),{stdout:f}=await d(e,["--version"],{timeout:5e3});return f.trim()||null}catch{return null}}async getModels(){return f}getConfigDir(){return d.join(c.homedir(),".claude")}getSettingsPath(){return d.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return d.join(this.getConfigDir(),"projects")}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,e.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(b.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(a){let c=this.getConfigDir();b.existsSync(c)||b.mkdirSync(c,{recursive:!0}),b.writeFileSync(this.getSettingsPath(),JSON.stringify(a,null,2),"utf-8")}getPostToolUseArray(a){let b=a.hooks;if(!b)return[];let c=b.PostToolUse;return Array.isArray(c)?c:[]}findTowerHookIndex(a){return a.findIndex(a=>a.hooks?.some(a=>a.command?.includes("post-tool-hook.js")))}}])},143971,a=>{"use strict";class b{providers=new Map;register(a){this.providers.set(a.name,a)}get(a){return this.providers.get(a)}getAll(){return Array.from(this.providers.values())}getCliAdapter(a){return this.providers.get(a)?.cli?.adapter??null}getQueryAdapter(a,b){let c=this.providers.get(a);return c?"api"===b?c.api?.adapter??null:c.cliQuery?.adapter??null:null}getAllowedCommands(){let a=[];for(let b of this.providers.values())b.cli?.command&&a.push(b.cli.command);return a}async getAvailableProviders(){let a=[];for(let b of this.providers.values()){let c=!!b.cli&&await b.cli.adapter.isAvailable(),d=c&&b.cli?await b.cli.adapter.getVersion():null,e=!!b.api&&!!process.env[b.api.keyEnvVar],f=!!b.api&&e;a.push({name:b.name,displayName:b.displayName,cli:{available:c,version:d},api:{available:f,keyConfigured:e}})}return a}}var c=a.i(575675);let d=globalThis;if(!d.__providerRegistry){let a=new b;a.register({name:"claude",displayName:"Claude Code",agentFieldValue:"CLAUDE_CODE",cli:{command:"claude",adapter:new c.ClaudeCliAdapter},models:{cli:["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"],api:[]}}),d.__providerRegistry=a}let e=d.__providerRegistry;a.s(["providerRegistry",0,e],143971)},796544,a=>{"use strict";var b=a.i(680889),c=a.i(832116),d=a.i(972795);async function e(a){return c.db.agentPrompt.findMany({where:a?{OR:[{workspaceId:a},{workspaceId:null}]}:{},orderBy:[{isDefault:"desc"},{name:"asc"}]})}async function f(a){return c.db.agentPrompt.findUnique({where:{id:a}})}async function g(a){if(a.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let b=await c.db.agentPrompt.create({data:a});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),b}async function h(a,b){if(void 0!==b.content&&b.content.length>1e5)throw Error("Prompt content exceeds maximum length of 100000 characters");let e=await c.db.agentPrompt.update({where:{id:a},data:b});return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}async function i(a){await c.db.agentPrompt.delete({where:{id:a}}),(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings")}async function j(a,b){let e=await c.db.$transaction(async c=>(await c.agentPrompt.updateMany({where:b?{workspaceId:b,isDefault:!0}:{isDefault:!0},data:{isDefault:!1}}),c.agentPrompt.update({where:{id:a},data:{isDefault:!0}})));return(0,d.revalidatePath)("/workspaces"),(0,d.revalidatePath)("/settings"),e}(0,a.i(632919).ensureServerEntryExports)([e,f,g,h,i,j]),(0,b.registerServerReference)(e,"406d2663b3d37c90d4cfccca5c89eddd5a3481f246",null),(0,b.registerServerReference)(f,"4065c7fc3646ee3578932f1e2981e7783cb9848d24",null),(0,b.registerServerReference)(g,"40f950e686d4958cb623861c78e6f6c8cfbc779c34",null),(0,b.registerServerReference)(h,"608e3d8c5fb175bc2b7a4e8d89c518a4104d477dbf",null),(0,b.registerServerReference)(i,"40cedaa1d5033f0e6af6ec8a743cc7e26b58fe86ef",null),(0,b.registerServerReference)(j,"60b5bbfb9d2430cff30785ee85db7e9286ca247811",null),a.s(["createPrompt",0,g,"deletePrompt",0,i,"getPrompts",0,e,"setDefaultPrompt",0,j,"updatePrompt",0,h])},540363,a=>{"use strict";var b=a.i(680889),c=a.i(750227),d=a.i(832116),e=a.i(972795),f=a.i(143971),g=a.i(632919);let h=new Set(["PATH","LD_PRELOAD","DYLD_INSERT_LIBRARIES","LD_LIBRARY_PATH","HOME","SHELL","USER","DYLD_LIBRARY_PATH","NODE_OPTIONS"]);async function i(){let a=await d.db.cliProfile.findFirst({where:{isDefault:!0}});return a?{id:a.id,name:a.name,command:a.command,baseArgs:a.baseArgs,envVars:a.envVars}:null}async function j(a,b){if(void 0!==b.command){let a=c.default.basename(b.command),d=[...new Set([...f.providerRegistry.getAllowedCommands(),"claude-code"])];if(!d.includes(a))throw Error(`command must be one of: ${d.join(", ")} (got: ${a})`)}if(void 0!==b.baseArgs){let a;try{a=JSON.parse(b.baseArgs)}catch{throw Error("baseArgs 格式无效,必须是 JSON 数组")}if(!Array.isArray(a))throw Error("baseArgs 格式无效,必须是 JSON 数组");for(let b of a){if("string"!=typeof b)throw Error("baseArgs 中每个元素必须是字符串");if(/[;&|`$()]/.test(b))throw Error(`baseArgs 包含不允许的字符: ${b}`)}}if(void 0!==b.envVars){let a;try{a=JSON.parse(b.envVars)}catch{throw Error("envVars 格式无效,必须是 JSON 对象")}if("object"!=typeof a||Array.isArray(a)||null===a)throw Error("envVars 格式无效,必须是 JSON 对象");for(let b of Object.keys(a))if(h.has(b.toUpperCase()))throw Error(`envVars 不允许设置系统关键变量: ${b}`)}try{let c=await d.db.cliProfile.update({where:{id:a},data:b});return(0,e.revalidatePath)("/settings"),c}catch(a){if(a&&"object"==typeof a&&"code"in a&&"P2025"===a.code)throw Error("CLI Profile 不存在,请检查配置");throw a}}(0,g.ensureServerEntryExports)([i,j]),(0,b.registerServerReference)(i,"0028b6807ec36d96a01fc7b9397550e2d891ec094a",null),(0,b.registerServerReference)(j,"60432fc677c953d2b20c7fe116bded6553fdf859f0",null),a.s(["getDefaultCliProfile",0,i,"updateCliProfile",0,j])},608880,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(796544),a.i(540363);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),150585,a=>a.a(async(b,c)=>{try{var d=a.i(608880),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(796544),l=a.i(540363),m=b([d,g,h]);[d,g,h]=m.then?(await m)():m,a.s(["000fb4e39ec972db9511a0189892de76b46ee6e9aa",()=>j.getOnboardingStatus,"0028b6807ec36d96a01fc7b9397550e2d891ec094a",()=>l.getDefaultCliProfile,"0073dca5d0325409af9b7177621b17fe326cebe488",()=>h.getActualWsPort,"009b3dc59e0ae9151a27ab16a3c29647b18ed6677c",()=>h.getAvailableTerminalApps,"400e586f307193ff83593c8d63bc62693553e1afa6",()=>f.getLabelsForWorkspace,"400ffa9303f88489448dd9899070241e26f745a58e",()=>e.deleteWorkspace,"4011bcdb946bba1c505087e70f156fd3989f3b872c",()=>f.deleteLabel,"40527223fea127872c68668224c5822eebbb9bf090",()=>e.createProject,"4061302b8376f5d81135ccb1917c082eef7fca658a",()=>j.completeOnboarding,"4066597f1dfdab694851c822ca15c24d24face6c31",()=>i.checkMigrationSafety,"406d2663b3d37c90d4cfccca5c89eddd5a3481f246",()=>k.getPrompts,"40846f4f265949956da690418ff68309c0851110fb",()=>f.createLabel,"4086718196d2df7c995adeceabd3b4eff491f6f38a",()=>j.setOnboardingProgress,"409b01a0501cd6418e001637818a45b4908f321079",()=>h.resolveGitLocalPath,"409c0dd81d080577529994de4ce29a7c0a38dc7435",()=>j.dispatchTaskCompletionEvent,"40a714cf8a5713943d9460d44e361c6d739f12efc9",()=>h.getConfigValues,"40cedaa1d5033f0e6af6ec8a743cc7e26b58fe86ef",()=>k.deletePrompt,"40f950e686d4958cb623861c78e6f6c8cfbc779c34",()=>k.createPrompt,"40faf9e78c567cc29ecc3a4fd055cf407081d3fe02",()=>e.createWorkspace,"60432fc677c953d2b20c7fe116bded6553fdf859f0",()=>l.updateCliProfile,"60579c28d1aed49c267cd531a1ee57bace8684177a",()=>i.analyzeProjectDirectory,"608e3d8c5fb175bc2b7a4e8d89c518a4104d477dbf",()=>k.updatePrompt,"609b34226fbdf6994c63c038d9626094d8aaf093ec",()=>h.setConfigValue,"60b02796ca653ae818f77fac2e586c17f35e2a0c3e",()=>g.globalSearch,"60b5bbfb9d2430cff30785ee85db7e9286ca247811",()=>k.setDefaultPrompt,"60bf23fbae56b423bfa90b83d2f9e12132dafa55e0",()=>i.migrateProjectPath,"60c210ff07fecafa2265f30dd96eb4de225a19aa77",()=>h.getConfigValue,"60c990d709c90f774c38bf1afe3b56340413c9293b",()=>e.updateWorkspace]),c()}catch(a){c(a)}},!1),939768,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0wkjslq._.js"].map(b=>a.l(b))).then(()=>b(326575)))},585988,a=>{a.v(a=>Promise.resolve().then(()=>a(264572)))},908462,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0xe9b6_._.js"].map(b=>a.l(b))).then(()=>b(961374)))},302452,a=>{a.v(b=>Promise.all(["server/chunks/ssr/project_f_tower_04g3~44._.js"].map(b=>a.l(b))).then(()=>b(396477)))},144264,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_child_process_0pwkpv9._.js"].map(b=>a.l(b))).then(()=>b(233405)))},534777,a=>{a.v(a=>Promise.resolve().then(()=>a(224361)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__13cjs8r._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[715416,(a,b,c)=>{function d(a){return Array.isArray(a)?a:[a]}let e,f=/^\s+$/,g=/(?:[^\\]|^)\\$/,h=/^\\!/,i=/^\\#/,j=/\r?\n/g,k=/^\.{0,2}\/|^\.{1,2}$/,l=/\/$/,m="node-ignore";"u">typeof Symbol&&(m=Symbol.for("node-ignore"));let n=m,o=(a,b,c)=>(Object.defineProperty(a,b,{value:c}),c),p=/([0-z])-([0-z])/g,q=()=>!1,r=[[/^\uFEFF/,()=>""],[/((?:\\\\)*?)(\\?\s+)$/,(a,b,c)=>b+(0===c.indexOf("\\")?" ":"")],[/(\\+?)\s/g,(a,b)=>{let{length:c}=b;return b.slice(0,c-c%2)+" "}],[/[\\$.|*+(){^]/g,a=>`\\${a}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(a,b,c)=>b+6<c.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(a,b,c)=>b+c.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(a,b,c,d,e)=>"\\"===b?`\\[${c}${(a=>{let{length:b}=a;return a.slice(0,b-b%2)})(d)}${e}`:"]"===e&&d.length%2==0?`[${c.replace(p,(a,b,c)=>b.charCodeAt(0)<=c.charCodeAt(0)?a:"")}${d}]`:"[]"],[/(?:[^*])$/,a=>/\/$/.test(a)?`${a}$`:`${a}(?=$|\\/$)`]],s=/(^|\\\/)?\\\*$/,t="regex",u="checkRegex",v={[t](a,b){let c=b?`${b}[^/]+`:"[^/]*";return`${c}(?=$|\\/$)`},[u](a,b){let c=b?`${b}[^/]*`:"[^/]*";return`${c}(?=$|\\/$)`}};class w{constructor(a,b,c,d,e,f){this.pattern=a,this.mark=b,this.negative=e,o(this,"body",c),o(this,"ignoreCase",d),o(this,"regexPrefix",f)}get regex(){let a="_"+t;return this[a]?this[a]:this._make(t,a)}get checkRegex(){let a="_"+u;return this[a]?this[a]:this._make(u,a)}_make(a,b){let c=this.regexPrefix.replace(s,v[a]);return o(this,b,this.ignoreCase?RegExp(c,"i"):new RegExp(c))}}class x{constructor(a){this._ignoreCase=a,this._rules=[]}_add(a){let b;if(a&&a[n]){this._rules=this._rules.concat(a._rules._rules),this._added=!0;return}if("string"==typeof a&&(a={pattern:a}),(b=a.pattern)&&"string"==typeof b&&!f.test(b)&&!g.test(b)&&0!==b.indexOf("#")){let b=(({pattern:a,mark:b},c)=>{let d,e=!1,f=a;0===f.indexOf("!")&&(e=!0,f=f.substr(1));let g=(d=f=f.replace(h,"!").replace(i,"#"),r.reduce((a,[b,c])=>a.replace(b,c.bind(d)),d));return new w(a,b,f,c,e,g)})(a,this._ignoreCase);this._added=!0,this._rules.push(b)}}add(a){return this._added=!1,d("string"==typeof a?a.split(j).filter(Boolean):a).forEach(this._add,this),this._added}test(a,b,c){let d,f=!1,g=!1;this._rules.forEach(h=>{let{negative:i}=h;(g!==i||f===g)&&(!i||f||g||b)&&h[c].test(a)&&(f=!i,g=i,d=i?e:h)});let h={ignored:f,unignored:g};return d&&(h.rule=d),h}}let y=(a,b)=>{throw new b(a)},z=(a,b,c)=>"string"!=typeof a?c(`path must be a string, but got \`${b}\``,TypeError):a?!z.isNotRelative(a)||c(`path should be a \`path.relative()\`d string, but got "${b}"`,RangeError):c("path must not be empty",TypeError),A=a=>k.test(a);z.isNotRelative=A,z.convert=a=>a;class B{constructor({ignorecase:a=!0,ignoreCase:b=a,allowRelativePaths:c=!1}={}){o(this,n,!0),this._rules=new x(b),this._strictPathCheck=!c,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}add(a){return this._rules.add(a)&&this._initCache(),this}addPattern(a){return this.add(a)}_test(a,b,c,d){let e=a&&z.convert(a);return z(e,a,this._strictPathCheck?y:q),this._t(e,b,c,d)}checkIgnore(a){if(!l.test(a))return this.test(a);let b=a.split("/").filter(Boolean);if(b.pop(),b.length){let a=this._t(b.join("/")+"/",this._testCache,!0,b);if(a.ignored)return a}return this._rules.test(a,!1,u)}_t(a,b,c,d){if(a in b)return b[a];if(d||(d=a.split("/").filter(Boolean)),d.pop(),!d.length)return b[a]=this._rules.test(a,c,t);let e=this._t(d.join("/")+"/",b,c,d);return b[a]=e.ignored?e:this._rules.test(a,c,t)}ignores(a){return this._test(a,this._ignoreCache,!1).ignored}createFilter(){return a=>!this.ignores(a)}filter(a){return d(a).filter(this.createFilter())}test(a){return this._test(a,this._testCache,!0)}}let C=a=>new B(a);b.exports=C,C.default=C,b.exports.isPathValid=a=>z(a&&z.convert(a),a,q),o(b.exports,Symbol.for("setupWindows"),()=>{z.convert=a=>/^\\\\\?\\/.test(a)||/["<>|\u0000-\u001F]+/u.test(a)?a:a.replace(/\\/g,"/");let a=/^[a-z]:\//i;z.isNotRelative=b=>a.test(b)||A(b)})},507674,a=>{"use strict";var b=a.i(680889),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(715416),g=a.i(233405);function h(a,b){let c=a.endsWith(e.default.sep)?a.slice(0,-1):a,d=e.default.resolve(c,b);if(d!==c&&!d.startsWith(c+e.default.sep))throw Error(`Path traversal attempt: ${b}`);return d}var i=a.i(96063),j=a.i(632919);let k=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().default(".")});async function l(a,b="."){k.parse({worktreePath:a,relativePath:b});let g=h(a,b),i=(0,f.default)();i.add(".git");let j=e.default.join(a,".gitignore");if((0,d.existsSync)(j)){let a=await (0,c.readFile)(j,"utf-8");i.add(a)}return(await (0,c.readdir)(g,{withFileTypes:!0})).filter(b=>{let c=e.default.relative(a,e.default.join(g,b.name));return!i.ignores(c)}).sort((a,b)=>a.isDirectory()!==b.isDirectory()?a.isDirectory()?-1:1:a.name.localeCompare(b.name)).map(b=>({name:b.name,relativePath:e.default.relative(a,e.default.join(g,b.name)),isDirectory:b.isDirectory()}))}async function m(a,b,c){try{let d;d=b&&c?(0,g.execFileSync)("git",["diff","--name-status",`${b}...${c}`],{cwd:a,encoding:"utf-8",timeout:1e4}):(0,g.execFileSync)("git",["status","--porcelain","-uall"],{cwd:a,encoding:"utf-8",timeout:1e4});let e={};if(b&&c)for(let a of d.split("\n").filter(Boolean)){let b=a.split(" "),c=b[0],d=b[1];("M"===c||"A"===c||"D"===c)&&d&&(e[d]=c)}else for(let a of d.split("\n").filter(Boolean)){let b=a.substring(0,2),c=a.substring(3);c&&(b.includes("D")?e[c]="D":"??"===b||b.includes("A")?e[c]="A":e[c]="M")}return e}catch{return{}}}async function n(a,b){i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b});let d=h(a,b);await (0,c.writeFile)(d,"",{flag:"wx"})}async function o(a,b){i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b});let d=h(a,b);await (0,c.mkdir)(d,{recursive:!0})}async function p(a,b,d){i.z.object({worktreePath:i.z.string().min(1),oldRelativePath:i.z.string().min(1),newRelativePath:i.z.string().min(1)}).parse({worktreePath:a,oldRelativePath:b,newRelativePath:d});let e=h(a,b),f=h(a,d);await (0,c.rename)(e,f)}async function q(a,b){if(i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b}),".git"===e.default.basename(b))throw Error("Cannot delete .git directory");let d=h(a,b);(await (0,c.stat)(d)).isDirectory()?await (0,c.rm)(d,{recursive:!0,force:!0}):await (0,c.unlink)(d)}let r=i.z.object({worktreePath:i.z.string().min(1)});async function s(a){r.parse({worktreePath:a});let b=(0,f.default)();b.add(".git");let g=e.default.join(a,".gitignore");if((0,d.existsSync)(g)){let a=await (0,c.readFile)(g,"utf-8");b.add(a)}let h=[];async function i(d){for(let f of(await (0,c.readdir)(d,{withFileTypes:!0}))){let c=e.default.join(d,f.name),g=e.default.relative(a,c);b.ignores(g)||(f.isDirectory()?await i(c):h.push(g))}}return await i(a),h}let t=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)});async function u(a,b){t.parse({worktreePath:a,relativePath:b});let d=h(a,b);return(0,c.readFile)(d,"utf-8")}let v=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1),content:i.z.string()});async function w(a,b,d){v.parse({worktreePath:a,relativePath:b,content:d});let e=h(a,b);await (0,c.writeFile)(e,d,"utf-8")}async function x(b,c){let d=h(b,c),{execFile:e}=await a.A(144264);process.platform,await new Promise((a,b)=>{e("open",["-R",d],c=>c?b(c):a())})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,s,u,w,x]),(0,b.registerServerReference)(l,"60ea6aba90a558a23a027a042347f00313002a305b",null),(0,b.registerServerReference)(m,"702a9b5377e18e675aee1d4cb7e0ab8a7be3d5a3dc",null),(0,b.registerServerReference)(n,"60dd443666dfa437cf2d2620cce414cba7e4b9ead2",null),(0,b.registerServerReference)(o,"60a91baac5f7cffcdfdf3277b91c1d63751693019c",null),(0,b.registerServerReference)(p,"705e49bffc1a79bf4b3c48010efc415e7a46b4d620",null),(0,b.registerServerReference)(q,"600f4c8777704678353676a6e9deff0798119bd74b",null),(0,b.registerServerReference)(s,"40cd03157f2f7584abae33035471e2115f04f7067e",null),(0,b.registerServerReference)(u,"60febe501c17ac84d714e67af639930800fc05555a",null),(0,b.registerServerReference)(w,"7090087ca664ff579d888844a2d818004a5a19408e",null),(0,b.registerServerReference)(x,"60e72908007b6487c7a61d247b894593b031ce3f7a",null),a.s(["createDirectory",0,o,"createFile",0,n,"deleteEntry",0,q,"getGitStatus",0,m,"listAllFiles",0,s,"listDirectory",0,l,"readFileContent",0,u,"renameEntry",0,p,"revealInFinder",0,x,"writeFileContent",0,w],507674)},187232,(a,b,c)=>{b.exports=a.x("@vscode/ripgrep-7e064cbe2fef7e45",()=>require("@vscode/ripgrep-7e064cbe2fef7e45"))},188329,a=>{"use strict";var b=a.i(680889),c=a.i(233405),d=a.i(96063),e=a.i(187232),f=a.i(632919);let g=d.z.object({localPath:d.z.string().min(1),pattern:d.z.string().min(1).max(500),glob:d.z.string().max(200).optional(),maxResults:d.z.number().int().min(1).max(500).default(200)});async function h(a,b,d,f=200){let i,j=g.safeParse({localPath:a,pattern:b,glob:d,maxResults:f});if(!j.success)return{matches:[],truncated:!1,error:`Invalid input: ${j.error.message}`};let{localPath:k,pattern:l,glob:m,maxResults:n}=j.data;if(!(k.startsWith("/")||/^[a-zA-Z]:[/\\]/.test(k)))return{matches:[],truncated:!1,error:"localPath must be an absolute path"};let o=["--json","-n",l];m&&o.push("--glob",m),o.push(k);try{var p,q;i=await (p=e.rgPath,q={encoding:"utf-8",maxBuffer:0xa00000,timeout:1e4},new Promise((a,b)=>{(0,c.execFile)(p,o,q,(c,d)=>{c?b(c):a("string"==typeof d?d:d.toString())})}))}catch(a){if(1===a.code)return{matches:[],truncated:!1};return console.error("[searchCode] rg failed:",a),{matches:[],truncated:!1,error:"搜索失败,请重试"}}let r=i.split("\n"),s=[];for(let a of r){let b,c=a.trim();if(!c)continue;try{b=JSON.parse(c)}catch{continue}if("match"!==b.type)continue;let d=b.data,e=d.path.text,f=k.endsWith("/")?k:k+"/",g=e.startsWith(f)?e.slice(f.length):e,h=d.lines.text.replace(/\r?\n$/,""),i=d.submatches.map(a=>({start:a.start,end:a.end}));s.push({filePath:g,lineNumber:d.line_number,lineText:h,submatches:i})}let t=s.length>n;return{matches:t?s.slice(0,n):s,truncated:t}}(0,f.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"78d125bef809f3bda0c53b79bb23b8a266f5154354",null),a.s(["searchCode",0,h])},2297,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(507674),a.i(188329),a.i(614688),a.i(643700),a.i(31782),a.i(796544);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),942327,a=>a.a(async(b,c)=>{try{var d=a.i(2297),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(507674),l=a.i(188329),m=a.i(614688),n=a.i(643700),o=a.i(31782),p=a.i(796544),q=b([d,g,h]);[d,g,h]=q.then?(await q)():q,a.s(["0073d9d770a70dc1a403ff147d6ea66df5bccc8686",()=>h.getActualWsPort,"007517e63e983588f12123dd2dcbebe0c30b83de02",()=>j.getOnboardingStatus,"00e0100ba8769bdf64315d935cd52974956f58d4da",()=>n.getActiveExecutionsAcrossWorkspaces,"40072e44f06ea7cc6c8e4cc54ca056e1f258f5d411",()=>n.getTaskExecutions,"401e23b32bf79a24e75c01885df559c6e7e13ef6e0",()=>f.getLabelsForWorkspace,"40311d6169345104acb146f2c5ae78519fa335009a",()=>j.setOnboardingProgress,"403ce6acdc9a0e1ea5d24bf2ff2f7789bad160e0b5",()=>n.getTaskMessages,"40577ea3226142088fdb93f52f3fa7209138081e3e",()=>j.dispatchTaskCompletionEvent,"405ce31cd7f91286bd624ff40a16dd368bac345586",()=>f.deleteLabel,"406398ddbacd26e0a0c8046075ee5b83be417aaa8a",()=>i.checkMigrationSafety,"406889670cd0739a6a264ddcee90ea5fcb7bb673db",()=>n.stopPtyExecution,"406d8c0b0b85c4d776fbd5fed225d9c468a6631d31",()=>e.createProject,"40700daeecbd12e88cd5e021766323f194e5340e5c",()=>e.deleteWorkspace,"408131d9114dbbcb470b8ebd8a59952c6fe74c7b1b",()=>j.completeOnboarding,"40a2eb01ae674269fe4ba985c65f48d46e93cdb9c1",()=>m.openInTerminal,"40a4c218274b52b6f9de9377c87f502bfeef726681",()=>m.stopPreview,"40adf487014f7bc1e336caf6ca41dd89c8dfdca66f",()=>e.createWorkspace,"40cac01602ea70718d6d39fb05667f22600d838b6a",()=>p.getPrompts,"40cd03157f2f7584abae33035471e2115f04f7067e",()=>k.listAllFiles,"40dbed7b5a11a52a8ba506586c2e5fe665f2814de8",()=>o.checkWorktreeClean,"40f1b12896aab7bf3d6326bf3b69ad8c624b877f2f",()=>n.continueLatestPtyExecution,"40fcf26f82c08eddfdc4c46af8f96752a937ee4286",()=>h.resolveGitLocalPath,"40feef24fb017ee4dbff0339300a4ae022cac5d324",()=>f.createLabel,"600f4c8777704678353676a6e9deff0798119bd74b",()=>k.deleteEntry,"60101684dc36433c5408f741671d65e79a1d2e3037",()=>h.setConfigValue,"6019647bbc439d4da6156b656a60dabfcdde85bb1f",()=>o.updateTaskStatus,"60292cc381439f5b2c38b255aea95f0ec389f00eb9",()=>g.globalSearch,"602ffab0e116b38506319d923af87cb4e3628fcead",()=>i.migrateProjectPath,"604ce07f6397de5dd0e4c9108ad4ea9d59a5f72960",()=>h.getConfigValue,"605bab229d50b31600ec584db6038eddfb1b229e78",()=>n.resumePtyExecution,"606338304ba89f67d0e8f07b8dfb6c7e213505ed48",()=>e.updateProject,"6070b246bf8e2e226eb3d0baa8bf4f31a1df3bab51",()=>n.stopTaskExecution,"609e64d8a80dc8ac0d5d035b95e3095a73fc7b570d",()=>o.commitWorktreeChanges,"60a91baac5f7cffcdfdf3277b91c1d63751693019c",()=>k.createDirectory,"60c930992ffc2d7c20bfa7ab92c152e1f66b6c2c88",()=>n.sendTaskMessage,"60d1c1d0d11d9938471b9c96dbdbe3ccb69e3e8055",()=>e.updateWorkspace,"60dd443666dfa437cf2d2620cce414cba7e4b9ead2",()=>k.createFile,"60e5dd3ca68661ac45adf05e9927c2210cbcec9e45",()=>i.analyzeProjectDirectory,"60e72908007b6487c7a61d247b894593b031ce3f7a",()=>k.revealInFinder,"60ea6aba90a558a23a027a042347f00313002a305b",()=>k.listDirectory,"60febe501c17ac84d714e67af639930800fc05555a",()=>k.readFileContent,"702a9b5377e18e675aee1d4cb7e0ab8a7be3d5a3dc",()=>k.getGitStatus,"705e49bffc1a79bf4b3c48010efc415e7a46b4d620",()=>k.renameEntry,"7090087ca664ff579d888844a2d818004a5a19408e",()=>k.writeFileContent,"709111f2ed76480b126711f2997db551ca17995533",()=>m.startPreview,"784c36f1000e9929d75fecf2ece5b445bace4f8b92",()=>n.startPtyExecution,"78d125bef809f3bda0c53b79bb23b8a266f5154354",()=>l.searchCode,"78fce8c9288f2c7e1da74bccd5c3b7990ba1161943",()=>n.startTaskExecution]),c()}catch(a){c(a)}},!1)];
|
|
1
|
+
module.exports=[715416,(a,b,c)=>{function d(a){return Array.isArray(a)?a:[a]}let e,f=/^\s+$/,g=/(?:[^\\]|^)\\$/,h=/^\\!/,i=/^\\#/,j=/\r?\n/g,k=/^\.{0,2}\/|^\.{1,2}$/,l=/\/$/,m="node-ignore";"u">typeof Symbol&&(m=Symbol.for("node-ignore"));let n=m,o=(a,b,c)=>(Object.defineProperty(a,b,{value:c}),c),p=/([0-z])-([0-z])/g,q=()=>!1,r=[[/^\uFEFF/,()=>""],[/((?:\\\\)*?)(\\?\s+)$/,(a,b,c)=>b+(0===c.indexOf("\\")?" ":"")],[/(\\+?)\s/g,(a,b)=>{let{length:c}=b;return b.slice(0,c-c%2)+" "}],[/[\\$.|*+(){^]/g,a=>`\\${a}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(a,b,c)=>b+6<c.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(a,b,c)=>b+c.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(a,b,c,d,e)=>"\\"===b?`\\[${c}${(a=>{let{length:b}=a;return a.slice(0,b-b%2)})(d)}${e}`:"]"===e&&d.length%2==0?`[${c.replace(p,(a,b,c)=>b.charCodeAt(0)<=c.charCodeAt(0)?a:"")}${d}]`:"[]"],[/(?:[^*])$/,a=>/\/$/.test(a)?`${a}$`:`${a}(?=$|\\/$)`]],s=/(^|\\\/)?\\\*$/,t="regex",u="checkRegex",v={[t](a,b){let c=b?`${b}[^/]+`:"[^/]*";return`${c}(?=$|\\/$)`},[u](a,b){let c=b?`${b}[^/]*`:"[^/]*";return`${c}(?=$|\\/$)`}};class w{constructor(a,b,c,d,e,f){this.pattern=a,this.mark=b,this.negative=e,o(this,"body",c),o(this,"ignoreCase",d),o(this,"regexPrefix",f)}get regex(){let a="_"+t;return this[a]?this[a]:this._make(t,a)}get checkRegex(){let a="_"+u;return this[a]?this[a]:this._make(u,a)}_make(a,b){let c=this.regexPrefix.replace(s,v[a]);return o(this,b,this.ignoreCase?RegExp(c,"i"):new RegExp(c))}}class x{constructor(a){this._ignoreCase=a,this._rules=[]}_add(a){let b;if(a&&a[n]){this._rules=this._rules.concat(a._rules._rules),this._added=!0;return}if("string"==typeof a&&(a={pattern:a}),(b=a.pattern)&&"string"==typeof b&&!f.test(b)&&!g.test(b)&&0!==b.indexOf("#")){let b=(({pattern:a,mark:b},c)=>{let d,e=!1,f=a;0===f.indexOf("!")&&(e=!0,f=f.substr(1));let g=(d=f=f.replace(h,"!").replace(i,"#"),r.reduce((a,[b,c])=>a.replace(b,c.bind(d)),d));return new w(a,b,f,c,e,g)})(a,this._ignoreCase);this._added=!0,this._rules.push(b)}}add(a){return this._added=!1,d("string"==typeof a?a.split(j).filter(Boolean):a).forEach(this._add,this),this._added}test(a,b,c){let d,f=!1,g=!1;this._rules.forEach(h=>{let{negative:i}=h;(g!==i||f===g)&&(!i||f||g||b)&&h[c].test(a)&&(f=!i,g=i,d=i?e:h)});let h={ignored:f,unignored:g};return d&&(h.rule=d),h}}let y=(a,b)=>{throw new b(a)},z=(a,b,c)=>"string"!=typeof a?c(`path must be a string, but got \`${b}\``,TypeError):a?!z.isNotRelative(a)||c(`path should be a \`path.relative()\`d string, but got "${b}"`,RangeError):c("path must not be empty",TypeError),A=a=>k.test(a);z.isNotRelative=A,z.convert=a=>a;class B{constructor({ignorecase:a=!0,ignoreCase:b=a,allowRelativePaths:c=!1}={}){o(this,n,!0),this._rules=new x(b),this._strictPathCheck=!c,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}add(a){return this._rules.add(a)&&this._initCache(),this}addPattern(a){return this.add(a)}_test(a,b,c,d){let e=a&&z.convert(a);return z(e,a,this._strictPathCheck?y:q),this._t(e,b,c,d)}checkIgnore(a){if(!l.test(a))return this.test(a);let b=a.split("/").filter(Boolean);if(b.pop(),b.length){let a=this._t(b.join("/")+"/",this._testCache,!0,b);if(a.ignored)return a}return this._rules.test(a,!1,u)}_t(a,b,c,d){if(a in b)return b[a];if(d||(d=a.split("/").filter(Boolean)),d.pop(),!d.length)return b[a]=this._rules.test(a,c,t);let e=this._t(d.join("/")+"/",b,c,d);return b[a]=e.ignored?e:this._rules.test(a,c,t)}ignores(a){return this._test(a,this._ignoreCache,!1).ignored}createFilter(){return a=>!this.ignores(a)}filter(a){return d(a).filter(this.createFilter())}test(a){return this._test(a,this._testCache,!0)}}let C=a=>new B(a);b.exports=C,C.default=C,b.exports.isPathValid=a=>z(a&&z.convert(a),a,q),o(b.exports,Symbol.for("setupWindows"),()=>{z.convert=a=>/^\\\\\?\\/.test(a)||/["<>|\u0000-\u001F]+/u.test(a)?a:a.replace(/\\/g,"/");let a=/^[a-z]:\//i;z.isNotRelative=b=>a.test(b)||A(b)})},507674,a=>{"use strict";var b=a.i(680889),c=a.i(924868),d=a.i(522734),e=a.i(814747),f=a.i(715416),g=a.i(233405);function h(a,b){let c=a.endsWith(e.default.sep)?a.slice(0,-1):a,d=e.default.resolve(c,b);if(d!==c&&!d.startsWith(c+e.default.sep))throw Error(`Path traversal attempt: ${b}`);return d}var i=a.i(96063),j=a.i(632919);let k=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().default(".")});async function l(a,b="."){k.parse({worktreePath:a,relativePath:b});let g=h(a,b),i=(0,f.default)();i.add(".git");let j=e.default.join(a,".gitignore");if((0,d.existsSync)(j)){let a=await (0,c.readFile)(j,"utf-8");i.add(a)}return(await (0,c.readdir)(g,{withFileTypes:!0})).filter(b=>{let c=e.default.relative(a,e.default.join(g,b.name));return!i.ignores(c)}).sort((a,b)=>a.isDirectory()!==b.isDirectory()?a.isDirectory()?-1:1:a.name.localeCompare(b.name)).map(b=>({name:b.name,relativePath:e.default.relative(a,e.default.join(g,b.name)),isDirectory:b.isDirectory()}))}async function m(a,b,c){try{let d;d=b&&c?(0,g.execFileSync)("git",["diff","--name-status",`${b}...${c}`],{cwd:a,encoding:"utf-8",timeout:1e4}):(0,g.execFileSync)("git",["status","--porcelain","-uall"],{cwd:a,encoding:"utf-8",timeout:1e4});let e={};if(b&&c)for(let a of d.split("\n").filter(Boolean)){let b=a.split(" "),c=b[0],d=b[1];("M"===c||"A"===c||"D"===c)&&d&&(e[d]=c)}else for(let a of d.split("\n").filter(Boolean)){let b=a.substring(0,2),c=a.substring(3);c&&(b.includes("D")?e[c]="D":"??"===b||b.includes("A")?e[c]="A":e[c]="M")}return e}catch{return{}}}async function n(a,b){i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b});let d=h(a,b);await (0,c.writeFile)(d,"",{flag:"wx"})}async function o(a,b){i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b});let d=h(a,b);await (0,c.mkdir)(d,{recursive:!0})}async function p(a,b,d){i.z.object({worktreePath:i.z.string().min(1),oldRelativePath:i.z.string().min(1),newRelativePath:i.z.string().min(1)}).parse({worktreePath:a,oldRelativePath:b,newRelativePath:d});let e=h(a,b),f=h(a,d);await (0,c.rename)(e,f)}async function q(a,b){if(i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)}).parse({worktreePath:a,relativePath:b}),".git"===e.default.basename(b))throw Error("Cannot delete .git directory");let d=h(a,b);(await (0,c.stat)(d)).isDirectory()?await (0,c.rm)(d,{recursive:!0,force:!0}):await (0,c.unlink)(d)}let r=i.z.object({worktreePath:i.z.string().min(1)});async function s(a){r.parse({worktreePath:a});let b=(0,f.default)();b.add(".git");let g=e.default.join(a,".gitignore");if((0,d.existsSync)(g)){let a=await (0,c.readFile)(g,"utf-8");b.add(a)}let h=[];async function i(d){for(let f of(await (0,c.readdir)(d,{withFileTypes:!0}))){let c=e.default.join(d,f.name),g=e.default.relative(a,c);b.ignores(g)||(f.isDirectory()?await i(c):h.push(g))}}return await i(a),h}let t=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1)});async function u(a,b){t.parse({worktreePath:a,relativePath:b});let d=h(a,b);return(0,c.readFile)(d,"utf-8")}let v=i.z.object({worktreePath:i.z.string().min(1),relativePath:i.z.string().min(1),content:i.z.string()});async function w(a,b,d){v.parse({worktreePath:a,relativePath:b,content:d});let e=h(a,b);await (0,c.writeFile)(e,d,"utf-8")}async function x(b,c){let d=h(b,c),{execFile:e}=await a.A(144264);process.platform,await new Promise((a,b)=>{e("open",["-R",d],c=>c?b(c):a())})}(0,j.ensureServerEntryExports)([l,m,n,o,p,q,s,u,w,x]),(0,b.registerServerReference)(l,"60d32c896770d00ee60968d2f4a6f93cb53c6989b1",null),(0,b.registerServerReference)(m,"70af77281fe063895a5f6266ed626de0667036ef66",null),(0,b.registerServerReference)(n,"607bb6cdd595ec251d8200b11aa6379514e9bb92bd",null),(0,b.registerServerReference)(o,"60f748646e24727b93b7b2da9d9ebfdae83aa421fd",null),(0,b.registerServerReference)(p,"70d82079fb3cb3dc77c64d391b0ee3d95862c943e4",null),(0,b.registerServerReference)(q,"6004a2a5b698029c5c50837854d75529113281e963",null),(0,b.registerServerReference)(s,"40a8695a0f8936e4d3a0b4fb3da1e26ec680d5722e",null),(0,b.registerServerReference)(u,"60d24307de454aa2c7a62e02d6da39bc7effec5115",null),(0,b.registerServerReference)(w,"70de9666123a4c1a7514552421fd63a12a94243440",null),(0,b.registerServerReference)(x,"60aff1272d15c79484970c307976c5a3c95c4a5d77",null),a.s(["createDirectory",0,o,"createFile",0,n,"deleteEntry",0,q,"getGitStatus",0,m,"listAllFiles",0,s,"listDirectory",0,l,"readFileContent",0,u,"renameEntry",0,p,"revealInFinder",0,x,"writeFileContent",0,w],507674)},187232,(a,b,c)=>{b.exports=a.x("@vscode/ripgrep-7e064cbe2fef7e45",()=>require("@vscode/ripgrep-7e064cbe2fef7e45"))},188329,a=>{"use strict";var b=a.i(680889),c=a.i(233405),d=a.i(96063),e=a.i(187232),f=a.i(632919);let g=d.z.object({localPath:d.z.string().min(1),pattern:d.z.string().min(1).max(500),glob:d.z.string().max(200).optional(),maxResults:d.z.number().int().min(1).max(500).default(200)});async function h(a,b,d,f=200){let i,j=g.safeParse({localPath:a,pattern:b,glob:d,maxResults:f});if(!j.success)return{matches:[],truncated:!1,error:`Invalid input: ${j.error.message}`};let{localPath:k,pattern:l,glob:m,maxResults:n}=j.data;if(!(k.startsWith("/")||/^[a-zA-Z]:[/\\]/.test(k)))return{matches:[],truncated:!1,error:"localPath must be an absolute path"};let o=["--json","-n",l];m&&o.push("--glob",m),o.push(k);try{var p,q;i=await (p=e.rgPath,q={encoding:"utf-8",maxBuffer:0xa00000,timeout:1e4},new Promise((a,b)=>{(0,c.execFile)(p,o,q,(c,d)=>{c?b(c):a("string"==typeof d?d:d.toString())})}))}catch(a){if(1===a.code)return{matches:[],truncated:!1};return console.error("[searchCode] rg failed:",a),{matches:[],truncated:!1,error:"搜索失败,请重试"}}let r=i.split("\n"),s=[];for(let a of r){let b,c=a.trim();if(!c)continue;try{b=JSON.parse(c)}catch{continue}if("match"!==b.type)continue;let d=b.data,e=d.path.text,f=k.endsWith("/")?k:k+"/",g=e.startsWith(f)?e.slice(f.length):e,h=d.lines.text.replace(/\r?\n$/,""),i=d.submatches.map(a=>({start:a.start,end:a.end}));s.push({filePath:g,lineNumber:d.line_number,lineText:h,submatches:i})}let t=s.length>n;return{matches:t?s.slice(0,n):s,truncated:t}}(0,f.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"78a8bdd98747a7abb054cf0ec6995dd87b13cec11e",null),a.s(["searchCode",0,h])},2297,a=>a.a(async(b,c)=>{try{a.i(279254),a.i(30292);var d=a.i(322220),e=a.i(727977);a.i(198433),a.i(541587),a.i(507674),a.i(188329),a.i(614688),a.i(643700),a.i(31782),a.i(796544);var f=b([d,e]);[d,e]=f.then?(await f)():f,a.s([]),c()}catch(a){c(a)}},!1),942327,a=>a.a(async(b,c)=>{try{var d=a.i(2297),e=a.i(279254),f=a.i(30292),g=a.i(322220),h=a.i(727977),i=a.i(198433),j=a.i(541587),k=a.i(507674),l=a.i(188329),m=a.i(614688),n=a.i(643700),o=a.i(31782),p=a.i(796544),q=b([d,g,h]);[d,g,h]=q.then?(await q)():q,a.s(["000fb4e39ec972db9511a0189892de76b46ee6e9aa",()=>j.getOnboardingStatus,"0073dca5d0325409af9b7177621b17fe326cebe488",()=>h.getActualWsPort,"00c96c216c5f1a7b7bde60634dca29c67de698fa2b",()=>n.getActiveExecutionsAcrossWorkspaces,"400e586f307193ff83593c8d63bc62693553e1afa6",()=>f.getLabelsForWorkspace,"400ffa9303f88489448dd9899070241e26f745a58e",()=>e.deleteWorkspace,"4011bcdb946bba1c505087e70f156fd3989f3b872c",()=>f.deleteLabel,"40527223fea127872c68668224c5822eebbb9bf090",()=>e.createProject,"4061302b8376f5d81135ccb1917c082eef7fca658a",()=>j.completeOnboarding,"4066597f1dfdab694851c822ca15c24d24face6c31",()=>i.checkMigrationSafety,"406890b0e5ee52733eeef868cadf92a5b3ddd4f051",()=>n.stopPtyExecution,"40694cf4b0a7ce295ccdb10c7a286c86eebdaa1f84",()=>n.getTaskExecutions,"406d2663b3d37c90d4cfccca5c89eddd5a3481f246",()=>p.getPrompts,"4076d0523ca8f9864a5fc3c9fc63d995ebd5d1f03f",()=>n.continueLatestPtyExecution,"40792086b8ddfc45eea4746341d7e08bb697ebc030",()=>m.openInTerminal,"40846f4f265949956da690418ff68309c0851110fb",()=>f.createLabel,"4086718196d2df7c995adeceabd3b4eff491f6f38a",()=>j.setOnboardingProgress,"40896eaa7f639b4ae4d4165da333bc4df1ed644d31",()=>o.checkWorktreeClean,"409086f147c0e764ebc89a103a33d0437543940db9",()=>n.getTaskMessages,"409b01a0501cd6418e001637818a45b4908f321079",()=>h.resolveGitLocalPath,"409c0dd81d080577529994de4ce29a7c0a38dc7435",()=>j.dispatchTaskCompletionEvent,"40a8695a0f8936e4d3a0b4fb3da1e26ec680d5722e",()=>k.listAllFiles,"40f4d1980d383fbc061998ba74329e93319d0f6359",()=>m.stopPreview,"40faf9e78c567cc29ecc3a4fd055cf407081d3fe02",()=>e.createWorkspace,"6004a2a5b698029c5c50837854d75529113281e963",()=>k.deleteEntry,"600866e086353c584288550341453060402c288c51",()=>e.updateProject,"60579c28d1aed49c267cd531a1ee57bace8684177a",()=>i.analyzeProjectDirectory,"606a8a3660e1e616d575379a2c50712b07130ea4ff",()=>n.sendTaskMessage,"607bb6cdd595ec251d8200b11aa6379514e9bb92bd",()=>k.createFile,"607f024304eb4c500c1c3096b197aa3da2e5d0dded",()=>o.commitWorktreeChanges,"6094d5b9b37f81f2c0923909d41df9c9cbb9260df1",()=>o.updateTaskStatus,"60966a0a06af6d734814331b4feab1d5c25c68b327",()=>n.resumePtyExecution,"609b34226fbdf6994c63c038d9626094d8aaf093ec",()=>h.setConfigValue,"60aff1272d15c79484970c307976c5a3c95c4a5d77",()=>k.revealInFinder,"60b02796ca653ae818f77fac2e586c17f35e2a0c3e",()=>g.globalSearch,"60bf23fbae56b423bfa90b83d2f9e12132dafa55e0",()=>i.migrateProjectPath,"60c210ff07fecafa2265f30dd96eb4de225a19aa77",()=>h.getConfigValue,"60c990d709c90f774c38bf1afe3b56340413c9293b",()=>e.updateWorkspace,"60cd1d26f52a7d0b4b83844ae6676c0acca3c015e0",()=>n.stopTaskExecution,"60d24307de454aa2c7a62e02d6da39bc7effec5115",()=>k.readFileContent,"60d32c896770d00ee60968d2f4a6f93cb53c6989b1",()=>k.listDirectory,"60f748646e24727b93b7b2da9d9ebfdae83aa421fd",()=>k.createDirectory,"70af77281fe063895a5f6266ed626de0667036ef66",()=>k.getGitStatus,"70b56ab3788c31089621a5ef868e6dc8eaf4a82663",()=>m.startPreview,"70d82079fb3cb3dc77c64d391b0ee3d95862c943e4",()=>k.renameEntry,"70de9666123a4c1a7514552421fd63a12a94243440",()=>k.writeFileContent,"78a8bdd98747a7abb054cf0ec6995dd87b13cec11e",()=>l.searchCode,"78ab7eecbea7614803c9f0cb4a2733e3f634910bc7",()=>n.startPtyExecution,"78ef82f6e3a42ee6def5d3803109568a16fe2d5c3d",()=>n.startTaskExecution]),c()}catch(a){c(a)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__13eo85g._.js.map
|