@qt4798/pi-web 0.18.11 → 0.18.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +26 -26
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/api/agent/[id]/events/route.js +3 -3
  20. package/.next/server/app/api/agent/running/events/route.js +2 -2
  21. package/.next/server/app/api/app-update/route.js +1 -1
  22. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  23. package/.next/server/app/api/backup/import/route.js +1 -1
  24. package/.next/server/app/api/events/route.js +3 -3
  25. package/.next/server/app/api/files/[...path]/route.js +2 -2
  26. package/.next/server/app/api/git/diff/route.js +2 -2
  27. package/.next/server/app/api/git/status/route.js +2 -2
  28. package/.next/server/app/api/skills/install/route.js +1 -1
  29. package/.next/server/app/api/tasks/[id]/changed-files/route.js +2 -2
  30. package/.next/server/app/api/tasks/[id]/diff/route.js +2 -2
  31. package/.next/server/app/api/themes/[name]/route.js +1 -1
  32. package/.next/server/app/api/themes/[name]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/themes/route.js +1 -1
  34. package/.next/server/app/api/themes/route.js.nft.json +1 -1
  35. package/.next/server/app/api/web-auth/route.js +1 -1
  36. package/.next/server/app/index.html +1 -1
  37. package/.next/server/app/index.rsc +3 -3
  38. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  39. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  40. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/login/page.js +1 -1
  42. package/.next/server/app/login/page.js.nft.json +1 -1
  43. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/login.html +1 -1
  45. package/.next/server/app/login.rsc +2 -2
  46. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  47. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  49. package/.next/server/app/page.js +7 -7
  50. package/.next/server/app/page.js.nft.json +1 -1
  51. package/.next/server/app/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app-paths-manifest.json +26 -26
  53. package/.next/server/chunks/4253.js +1 -1
  54. package/.next/server/chunks/6429.js +1 -1
  55. package/.next/server/chunks/{1213.js → 6593.js} +1 -1
  56. package/.next/server/chunks/7915.js +1 -1
  57. package/.next/server/chunks/8526.js +1 -0
  58. package/.next/server/middleware-build-manifest.js +1 -1
  59. package/.next/server/middleware.js +1 -1
  60. package/.next/server/pages/404.html +1 -1
  61. package/.next/server/pages/500.html +1 -1
  62. package/.next/server/server-reference-manifest.json +1 -1
  63. package/.next/static/chunks/5170-6ee3710ea5c117f3.js +1 -0
  64. package/.next/static/chunks/app/login/{page-9e7302325b4e8bec.js → page-7d898795adddde04.js} +1 -1
  65. package/.next/static/chunks/app/{page-34c582c8b53234cc.js → page-d143bb27f37954c7.js} +7 -7
  66. package/.next/trace +85 -84
  67. package/.next/trace-build +1 -1
  68. package/bin/fix-pi-agent-undici.js +4 -2
  69. package/bin/memory-watchdog.js +11 -2
  70. package/bin/pi-web.js +3 -1
  71. package/bin/with-memory-limit.js +28 -47
  72. package/package.json +3 -3
  73. package/.next/server/chunks/8152.js +0 -1
  74. package/.next/static/chunks/2981-f36a0ad7528e24b1.js +0 -1
  75. /package/.next/static/{vqJU0DdnD5Laxw6J_7xzv → WSLpXBoGysol2bo7ZrmzF}/_buildManifest.js +0 -0
  76. /package/.next/static/{vqJU0DdnD5Laxw6J_7xzv → WSLpXBoGysol2bo7ZrmzF}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=4037,a.ids=[4037],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},1304:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>A,GET:()=>D,PATCH:()=>z,POST:()=>y});var e=c(23211),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(80547),k=c(1060),l=c(88473),m=c(65630),n=c(55484),o=c(66544),p=c(58864),q=c(37688),r=c(64681),s=a([j,m]);[j,m]=s.then?(await s)():s;let E=p.A_,F=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store",".git"]),G=[".pyc"],H=new Set(["list","read","download","meta","preview","watch"]),I={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",html:"html",htm:"html",css:"css",scss:"css",less:"css",json:"json",jsonl:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",md:"markdown",mdx:"markdown",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",sql:"sql",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",tf:"hcl",hcl:"hcl",env:"bash",gitignore:"bash",txt:"text",pdf:"pdf",docx:"word"};function t(a){let b=i().basename(a).toLowerCase();return"dockerfile"===b||b.startsWith("dockerfile.")?"dockerfile":".env"===b||b.startsWith(".env.")?"bash":"makefile"===b||"gnumakefile"===b?"makefile":I[b.split(".").pop()??""]??"text"}async function u(a){let b,c=(0,p.A_)(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().statSync(c)}catch{return{response:e.NextResponse.json({error:"Upload directory not found"},{status:404})}}if(!b.isDirectory())return{response:e.NextResponse.json({error:"Upload target is not a directory"},{status:400})};let f=g().realpathSync(c),h=new Set;for(let a of d)try{h.add(g().realpathSync(a))}catch{}return(0,j.A$)(f,h)?{directory:f}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function v(a){let b=new Set;for(let c of a)try{b.add(g().realpathSync(c))}catch{}return b}async function w(a){let b,c=E(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().statSync(c)}catch{return{response:e.NextResponse.json({error:"File not found"},{status:404})}}if(!b.isFile())return{response:e.NextResponse.json({error:"Not a file"},{status:400})};let f=g().realpathSync(c),h=await v(d);return(0,j.A$)(f,h)?{filePath:c,realPath:f,mode:511&b.mode}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function x(a){let b,c=E(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().lstatSync(c)}catch{return{response:e.NextResponse.json({error:"Not found"},{status:404})}}if(b.isSymbolicLink()){let a=await v(d);return d.has(c)||a.has(c)?{response:e.NextResponse.json({error:"Cannot delete an allowed root"},{status:403})}:{filePath:c,rmPath:c,isDir:!1}}let f=g().realpathSync(c),h=await v(d);return(0,j.A$)(f,h)?h.has(f)?{response:e.NextResponse.json({error:"Cannot delete an allowed root"},{status:403})}:{filePath:c,rmPath:f,isDir:b.isDirectory()}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function y(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});try{let d,{path:f}=await b,h=await u(f);if("response"in h)return h.response;let{directory:j}=h,k=a.nextUrl.searchParams.get("type")??"upload";if("create"===k){if(!(0,r.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});let b=await a.json().catch(()=>null);if(!b||"string"!=typeof b.name||"string"!=typeof b.kind)return e.NextResponse.json({error:'Request body must be { name: string, kind: "file"|"directory" }'},{status:400});let c=b.kind;if("file"!==c&&"directory"!==c)return e.NextResponse.json({error:'kind must be "file" or "directory"'},{status:400});let d=b.name,f=(0,n.SI)([d]);if(f)return e.NextResponse.json({error:f},{status:400});let h="string"==typeof b.content?b.content:"";if(Buffer.byteLength(h,"utf8")>0x1000000)return e.NextResponse.json({error:"Content exceeds 16MB limit"},{status:413});let k=i().join(j,d);try{"file"===c?g().writeFileSync(k,h,{flag:"wx"}):g().mkdirSync(k,{recursive:!1,mode:493})}catch(b){let a=b.code;if("EEXIST"===a)return e.NextResponse.json({error:"File or directory already exists"},{status:409});throw b}return e.NextResponse.json({path:k,kind:c,size:0})}if("upload-check"===k){var c;if(!(0,o.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});let b=await a.json().catch(()=>null),d=(c=b?.fileNames,Array.isArray(c)&&c.every(a=>"string"==typeof a)?c:null);if(!d)return e.NextResponse.json({error:"fileNames must be an array of strings"},{status:400});let f=(0,n.SI)(d);if(f)return e.NextResponse.json({error:f},{status:400});return e.NextResponse.json((0,n.Gu)(j,d))}if("upload"!==k)return e.NextResponse.json({error:"Invalid upload request type"},{status:400});let l=(0,n.Ey)(a.nextUrl.searchParams.get("conflict"));if(!l)return e.NextResponse.json({error:"Invalid conflict strategy"},{status:400});if(!a.headers.get("content-type")?.toLowerCase().startsWith("multipart/form-data;"))return e.NextResponse.json({error:"Content-Type must be multipart/form-data"},{status:415});try{d=await a.formData()}catch{return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413})}let m=d.getAll("files").filter(a=>"string"!=typeof a);if(m.some(a=>a.size>n.wY))return e.NextResponse.json({error:"Each upload must be 25MB or smaller"},{status:413});if(m.reduce((a,b)=>a+b.size,0)>n.KB)return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413});let p=m.map(a=>a.name),q=(0,n.SI)(p);if(q)return e.NextResponse.json({error:q},{status:400});let s=(0,n.Gu)(j,p);if("error"===l&&s.conflicts.length>0)return e.NextResponse.json({error:"One or more files already exist",conflicts:s.conflicts,nonReplaceable:s.nonReplaceable},{status:409});let t=new Set(s.conflicts),v=new Set(s.nonReplaceable),w=[],x=[],y=[];for(let a of m){let b,c=i().join(j,i().basename(a.name)),d=i().resolve(j)+i().sep;if(!i().resolve(c).startsWith(d)){y.push({name:a.name,error:"Invalid path"});continue}if(t.has(a.name)&&"skip"===l){x.push(a.name);continue}if(t.has(a.name)&&v.has(a.name)){y.push({name:a.name,error:"Cannot replace a directory or symbolic link"});continue}try{b=Buffer.from(await a.arrayBuffer())}catch(b){y.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}if(t.has(a.name))try{g().unlinkSync(c)}catch(b){y.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}try{g().writeFileSync(c,b,{flag:"wx"}),w.push(a.name)}catch(b){y.push({name:a.name,error:b instanceof Error?b.message:String(b)})}}return e.NextResponse.json({uploaded:w,skipped:x,errors:y},{status:y.length>0?207:200})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function z(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,r.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});try{let{path:c}=await b,d=await w(c);if("response"in d)return d.response;let{realPath:f,mode:h}=d,i=await a.json().catch(()=>null);if(!i||"string"!=typeof i.content)return e.NextResponse.json({error:"Request body must be { content: string }"},{status:400});let j=i.content;if(Buffer.byteLength(j,"utf8")>0x1000000)return e.NextResponse.json({error:"Edited content exceeds 16MB limit"},{status:413});let k=Buffer.from(j,"utf8"),l=`${f}.${process.pid}.${Date.now()}.tmp`;try{g().writeFileSync(l,k),g().chmodSync(l,h),g().renameSync(l,f)}catch(a){try{g().unlinkSync(l)}catch{}throw a}let m=g().statSync(f);return e.NextResponse.json({size:m.size})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function A(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,r.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});try{let{path:a}=await b,c=await x(a);if("response"in c)return c.response;let{filePath:d,rmPath:f,isDir:h}=c;try{g().rmSync(f,{recursive:h,force:!1})}catch(b){let a=b.code;if("ENOENT"===a)return e.NextResponse.json({error:"Not found"},{status:404});if("ENOTEMPTY"===a)return e.NextResponse.json({error:"Directory is not empty"},{status:409});throw b}return e.NextResponse.json({path:d,wasDirectory:h})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}function B(a,b){let c=g().createReadStream(a,b),d=!1;return new ReadableStream({start(a){c.on("data",b=>{if(!d)try{a.enqueue(new Uint8Array(b))}catch{d=!0,c.destroy()}}),c.once("end",()=>{if(!d){d=!0;try{a.close()}catch{}}}),c.once("error",b=>{if(!d){d=!0;try{a.error(b)}catch{}}})},cancel(){d=!0,c.destroy()}})}function C(a,b,c,d,e=!1){let f={"Content-Type":c,"Cache-Control":"no-cache","Accept-Ranges":"bytes","Content-Disposition":function(a,b=!1){let c=i().basename(a),d=c.replace(/[^\x20-\x7E]|["\\;\r\n]/g,"_")||"download";return`${b?"attachment":"inline"}; filename="${d}"; filename*=UTF-8''${encodeURIComponent(c).replace(/[!'()*]/g,a=>`%${a.charCodeAt(0).toString(16).toUpperCase()}`)}`}(a,e),"X-Content-Type-Options":"nosniff"};if("image/svg+xml"===c&&(f["Content-Security-Policy"]="default-src 'none'; img-src data:; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-ancestors 'self'",f["Referrer-Policy"]="no-referrer"),!d)return new Response(B(a),{headers:{...f,"Content-Length":String(b.size)}});let g=/^bytes=(\d*)-(\d*)$/.exec(d);if(!g)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let h=g[1]?Number(g[1]):0,j=g[2]?Number(g[2]):b.size-1;if(!g[1]&&g[2]){let a=Number(g[2]);h=Math.max(b.size-a,0),j=b.size-1}if(!Number.isFinite(h)||!Number.isFinite(j)||h<0||j<h||h>=b.size)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let k=(j=Math.min(j,b.size-1))-h+1;return new Response(B(a,{start:h,end:j}),{status:206,headers:{...f,"Content-Length":String(k),"Content-Range":`bytes ${h}-${j}/${b.size}`}})}async function D(a,{params:b}){try{var d,f,h;let n,{path:o}=await b,r=(0,p.A_)(o),s=(d=a.nextUrl.searchParams.get("type")??"list",H.has(d)?d:null);if(!s)return e.NextResponse.json({error:"Invalid file request type"},{status:400});let u=a.nextUrl.searchParams.get("sessionId"),v=await (0,j.mc)(),w=(0,j.A$)(r,v),x=!w&&"list"!==s&&await (0,m.Iq)(r,u);if(!w&&!x||w&&!function(a,b){let c;try{c=g().realpathSync(a)}catch{return!0}let d=new Set;for(let a of b)try{d.add(g().realpathSync(a))}catch{}return(0,j.A$)(c,d)}(r,v))return e.NextResponse.json({error:"Access denied"},{status:403});try{n=g().statSync(r)}catch{if("watch"!==s)return e.NextResponse.json({error:"Not found"},{status:404})}let y=n?r:i().dirname(r);if(!x&&!(0,j.B7)(y,v))return e.NextResponse.json({error:"Access denied"},{status:403});if("read"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(r);if(b){if(n.size>k.kv)return e.NextResponse.json({error:"Image too large (>10MB)"},{status:413});return C(r,n,b,a.headers.get("range"))}let c=(0,k.X)(r);if(c)return C(r,n,c,a.headers.get("range"));let d=(0,k.k2)(r);if(d)return C(r,n,d,a.headers.get("range"));let f=(0,k.oC)(r);if(f)return C(r,n,f,a.headers.get("range"));let g=a.nextUrl.searchParams.get("offset");if(null!==g&&!/^\d+$/.test(g))return e.NextResponse.json({error:"Invalid text preview offset"},{status:400});let h=Number(g??0);if(!Number.isSafeInteger(h)||h>n.size)return e.NextResponse.json({error:"Invalid text preview offset"},{status:400});let i=(0,q.P)(r,n.size,h),j=t(r);return e.NextResponse.json({...i,language:j,size:n.size})}if("download"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(r)||(0,k.X)(r)||(0,k.k2)(r)||(0,k.oC)(r)||"application/octet-stream";return C(r,n,b,a.headers.get("range"),!0)}if("meta"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=(0,k.cV)(r),b=(0,k.X)(r),c=(0,k.k2)(r),d=(0,k.oC)(r);return e.NextResponse.json({size:n.size,language:t(r),mime:a||b||c||d||"text/plain",previewKind:(0,k.Ac)(r)})}if("preview"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});if("docx"!==(0,k.GO)(r))return e.NextResponse.json({error:"Preview not available for this file type"},{status:400});if(n.size>k.jL)return e.NextResponse.json({error:"DOCX too large for preview (>10MB)"},{status:413});let a=await c.e(3379).then(c.t.bind(c,53379,19)),b=(f=(await a.convertToHtml({path:r},{externalFileAccess:!1,convertImage:a.images.dataUri})).value,h=i().basename(r),`<!doctype html>
1
+ "use strict";(()=>{var a={};a.id=4037,a.ids=[4037],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},1304:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>B,GET:()=>E,PATCH:()=>A,POST:()=>z});var e=c(23211),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(80547),k=c(1060),l=c(88473),m=c(65630),n=c(55484),o=c(66544),p=c(66829),q=c(58864),r=c(37688),s=c(64681),t=a([j,m]);[j,m]=t.then?(await t)():t;let F=q.A_,G=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store",".git"]),H=[".pyc"],I=new Set(["list","read","download","meta","preview","watch"]),J={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",html:"html",htm:"html",css:"css",scss:"css",less:"css",json:"json",jsonl:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",md:"markdown",mdx:"markdown",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",sql:"sql",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",tf:"hcl",hcl:"hcl",env:"bash",gitignore:"bash",txt:"text",pdf:"pdf",docx:"word"};function u(a){let b=i().basename(a).toLowerCase();return"dockerfile"===b||b.startsWith("dockerfile.")?"dockerfile":".env"===b||b.startsWith(".env.")?"bash":"makefile"===b||"gnumakefile"===b?"makefile":J[b.split(".").pop()??""]??"text"}async function v(a){let b,c=(0,q.A_)(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().statSync(c)}catch{return{response:e.NextResponse.json({error:"Upload directory not found"},{status:404})}}if(!b.isDirectory())return{response:e.NextResponse.json({error:"Upload target is not a directory"},{status:400})};let f=g().realpathSync(c),h=new Set;for(let a of d)try{h.add(g().realpathSync(a))}catch{}return(0,j.A$)(f,h)?{directory:f}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function w(a){let b=new Set;for(let c of a)try{b.add(g().realpathSync(c))}catch{}return b}async function x(a){let b,c=F(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().statSync(c)}catch{return{response:e.NextResponse.json({error:"File not found"},{status:404})}}if(!b.isFile())return{response:e.NextResponse.json({error:"Not a file"},{status:400})};let f=g().realpathSync(c),h=await w(d);return(0,j.A$)(f,h)?{filePath:c,realPath:f,mode:511&b.mode}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function y(a){let b,c=F(a),d=await (0,j.mc)();if(!(0,j.A$)(c,d))return{response:e.NextResponse.json({error:"Access denied"},{status:403})};try{b=g().lstatSync(c)}catch{return{response:e.NextResponse.json({error:"Not found"},{status:404})}}if(b.isSymbolicLink()){let a=await w(d);return d.has(c)||a.has(c)?{response:e.NextResponse.json({error:"Cannot delete an allowed root"},{status:403})}:{filePath:c,rmPath:c,isDir:!1}}let f=g().realpathSync(c),h=await w(d);return(0,j.A$)(f,h)?h.has(f)?{response:e.NextResponse.json({error:"Cannot delete an allowed root"},{status:403})}:{filePath:c,rmPath:f,isDir:b.isDirectory()}:{response:e.NextResponse.json({error:"Access denied"},{status:403})}}async function z(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});try{let d,{path:f}=await b,h=await v(f);if("response"in h)return h.response;let{directory:j}=h,k=a.nextUrl.searchParams.get("type")??"upload";if("create"===k){if(!(0,s.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});let b=await a.json().catch(()=>null);if(!b||"string"!=typeof b.name||"string"!=typeof b.kind)return e.NextResponse.json({error:'Request body must be { name: string, kind: "file"|"directory" }'},{status:400});let c=b.kind;if("file"!==c&&"directory"!==c)return e.NextResponse.json({error:'kind must be "file" or "directory"'},{status:400});let d=b.name,f=(0,n.SI)([d]);if(f)return e.NextResponse.json({error:f},{status:400});let h="string"==typeof b.content?b.content:"";if(Buffer.byteLength(h,"utf8")>0x1000000)return e.NextResponse.json({error:"Content exceeds 16MB limit"},{status:413});let k=i().join(j,d);if(!i().resolve(k).startsWith(j+i().sep))return e.NextResponse.json({error:"Invalid target path"},{status:400});try{"file"===c?g().writeFileSync(k,h,{flag:"wx"}):g().mkdirSync(k,{recursive:!1,mode:493})}catch(b){let a=b.code;if("EEXIST"===a)return e.NextResponse.json({error:"File or directory already exists"},{status:409});throw b}return e.NextResponse.json({path:k,kind:c,size:0})}if("upload-check"===k){var c;if(!(0,o.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});let b=await a.json().catch(()=>null),d=(c=b?.fileNames,Array.isArray(c)&&c.every(a=>"string"==typeof a)?c:null);if(!d)return e.NextResponse.json({error:"fileNames must be an array of strings"},{status:400});let f=(0,n.SI)(d);if(f)return e.NextResponse.json({error:f},{status:400});return e.NextResponse.json((0,n.Gu)(j,d))}if("upload"!==k)return e.NextResponse.json({error:"Invalid upload request type"},{status:400});let l=(0,n.Ey)(a.nextUrl.searchParams.get("conflict"));if(!l)return e.NextResponse.json({error:"Invalid conflict strategy"},{status:400});if(!a.headers.get("content-type")?.toLowerCase().startsWith("multipart/form-data;"))return e.NextResponse.json({error:"Content-Type must be multipart/form-data"},{status:415});try{d=await (0,p.s)(a,n.KB+2097152)}catch(a){if(a instanceof p.H)return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413});return e.NextResponse.json({error:"Invalid multipart upload"},{status:400})}let m=d.getAll("files").filter(a=>"string"!=typeof a);if(m.some(a=>a.size>n.wY))return e.NextResponse.json({error:"Each upload must be 25MB or smaller"},{status:413});if(m.reduce((a,b)=>a+b.size,0)>n.KB)return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413});let q=m.map(a=>a.name),r=(0,n.SI)(q);if(r)return e.NextResponse.json({error:r},{status:400});let t=(0,n.Gu)(j,q);if("error"===l&&t.conflicts.length>0)return e.NextResponse.json({error:"One or more files already exist",conflicts:t.conflicts,nonReplaceable:t.nonReplaceable},{status:409});let u=new Set(t.conflicts),w=new Set(t.nonReplaceable),x=[],y=[],z=[];for(let a of m){let b,c=i().join(j,i().basename(a.name)),d=i().resolve(j)+i().sep;if(!i().resolve(c).startsWith(d)){z.push({name:a.name,error:"Invalid path"});continue}if(u.has(a.name)&&"skip"===l){y.push(a.name);continue}if(u.has(a.name)&&w.has(a.name)){z.push({name:a.name,error:"Cannot replace a directory or symbolic link"});continue}try{b=Buffer.from(await a.arrayBuffer())}catch(b){z.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}if(u.has(a.name))try{g().unlinkSync(c)}catch(b){z.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}try{g().writeFileSync(c,b,{flag:"wx"}),x.push(a.name)}catch(b){z.push({name:a.name,error:b instanceof Error?b.message:String(b)})}}return e.NextResponse.json({uploaded:x,skipped:y,errors:z},{status:z.length>0?207:200})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function A(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,s.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});try{let{path:c}=await b,d=await x(c);if("response"in d)return d.response;let{realPath:f,mode:h}=d,i=await a.json().catch(()=>null);if(!i||"string"!=typeof i.content)return e.NextResponse.json({error:"Request body must be { content: string }"},{status:400});let j=i.content;if(Buffer.byteLength(j,"utf8")>0x1000000)return e.NextResponse.json({error:"Edited content exceeds 16MB limit"},{status:413});let k=Buffer.from(j,"utf8"),l=`${f}.${process.pid}.${Date.now()}.tmp`;try{g().writeFileSync(l,k),g().chmodSync(l,h),g().renameSync(l,f)}catch(a){try{g().unlinkSync(l)}catch{}throw a}let m=g().statSync(f);return e.NextResponse.json({size:m.size})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function B(a,{params:b}){if(!(0,o.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,s.y)())return e.NextResponse.json({error:"File editing is disabled"},{status:403});try{let{path:a}=await b,c=await y(a);if("response"in c)return c.response;let{filePath:d,rmPath:f,isDir:h}=c;try{g().rmSync(f,{recursive:h,force:!1})}catch(b){let a=b.code;if("ENOENT"===a)return e.NextResponse.json({error:"Not found"},{status:404});if("ENOTEMPTY"===a)return e.NextResponse.json({error:"Directory is not empty"},{status:409});throw b}return e.NextResponse.json({path:d,wasDirectory:h})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}function C(a,b){let c=g().createReadStream(a,b),d=!1;return new ReadableStream({start(a){c.on("data",b=>{if(!d)try{a.enqueue(new Uint8Array(b))}catch{d=!0,c.destroy()}}),c.once("end",()=>{if(!d){d=!0;try{a.close()}catch{}}}),c.once("error",b=>{if(!d){d=!0;try{a.error(b)}catch{}}})},cancel(){d=!0,c.destroy()}})}function D(a,b,c,d,e=!1){let f={"Content-Type":c,"Cache-Control":"no-cache","Accept-Ranges":"bytes","Content-Disposition":function(a,b=!1){let c=i().basename(a),d=c.replace(/[^\x20-\x7E]|["\\;\r\n]/g,"_")||"download";return`${b?"attachment":"inline"}; filename="${d}"; filename*=UTF-8''${encodeURIComponent(c).replace(/[!'()*]/g,a=>`%${a.charCodeAt(0).toString(16).toUpperCase()}`)}`}(a,e),"X-Content-Type-Options":"nosniff"};if("image/svg+xml"===c&&(f["Content-Security-Policy"]="default-src 'none'; img-src data:; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-ancestors 'self'",f["Referrer-Policy"]="no-referrer"),!d)return new Response(C(a),{headers:{...f,"Content-Length":String(b.size)}});let g=/^bytes=(\d*)-(\d*)$/.exec(d);if(!g)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let h=g[1]?Number(g[1]):0,j=g[2]?Number(g[2]):b.size-1;if(!g[1]&&g[2]){let a=Number(g[2]);h=Math.max(b.size-a,0),j=b.size-1}if(!Number.isFinite(h)||!Number.isFinite(j)||h<0||j<h||h>=b.size)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let k=(j=Math.min(j,b.size-1))-h+1;return new Response(C(a,{start:h,end:j}),{status:206,headers:{...f,"Content-Length":String(k),"Content-Range":`bytes ${h}-${j}/${b.size}`}})}async function E(a,{params:b}){try{var d,f,h;let n,{path:o}=await b,p=(0,q.A_)(o),s=(d=a.nextUrl.searchParams.get("type")??"list",I.has(d)?d:null);if(!s)return e.NextResponse.json({error:"Invalid file request type"},{status:400});let t=a.nextUrl.searchParams.get("sessionId"),v=await (0,j.mc)(),w=(0,j.A$)(p,v),x=!w&&"list"!==s&&await (0,m.Iq)(p,t);if(!w&&!x||w&&!function(a,b){let c;try{c=g().realpathSync(a)}catch{return!0}let d=new Set;for(let a of b)try{d.add(g().realpathSync(a))}catch{}return(0,j.A$)(c,d)}(p,v))return e.NextResponse.json({error:"Access denied"},{status:403});try{n=g().statSync(p)}catch{if("watch"!==s)return e.NextResponse.json({error:"Not found"},{status:404})}let y=n?p:i().dirname(p);if(!x&&!(0,j.B7)(y,v))return e.NextResponse.json({error:"Access denied"},{status:403});if("read"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(p);if(b){if(n.size>k.kv)return e.NextResponse.json({error:"Image too large (>10MB)"},{status:413});return D(p,n,b,a.headers.get("range"))}let c=(0,k.X)(p);if(c)return D(p,n,c,a.headers.get("range"));let d=(0,k.k2)(p);if(d)return D(p,n,d,a.headers.get("range"));let f=(0,k.oC)(p);if(f)return D(p,n,f,a.headers.get("range"));let g=a.nextUrl.searchParams.get("offset");if(null!==g&&!/^\d+$/.test(g))return e.NextResponse.json({error:"Invalid text preview offset"},{status:400});let h=Number(g??0);if(!Number.isSafeInteger(h)||h>n.size)return e.NextResponse.json({error:"Invalid text preview offset"},{status:400});let i=(0,r.P)(p,n.size,h),j=u(p);return e.NextResponse.json({...i,language:j,size:n.size})}if("download"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(p)||(0,k.X)(p)||(0,k.k2)(p)||(0,k.oC)(p)||"application/octet-stream";return D(p,n,b,a.headers.get("range"),!0)}if("meta"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=(0,k.cV)(p),b=(0,k.X)(p),c=(0,k.k2)(p),d=(0,k.oC)(p);return e.NextResponse.json({size:n.size,language:u(p),mime:a||b||c||d||"text/plain",previewKind:(0,k.Ac)(p)})}if("preview"===s){if(!n?.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});if("docx"!==(0,k.GO)(p))return e.NextResponse.json({error:"Preview not available for this file type"},{status:400});if(n.size>k.jL)return e.NextResponse.json({error:"DOCX too large for preview (>10MB)"},{status:413});let a=await c.e(3379).then(c.t.bind(c,53379,19)),b=(f=(await a.convertToHtml({path:p},{externalFileAccess:!1,convertImage:a.images.dataUri})).value,h=i().basename(p),`<!doctype html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
@@ -46,4 +46,4 @@ ${f}
46
46
  </html>`);return new Response(b,{headers:{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-cache","Content-Security-Policy":"default-src 'none'; img-src data:; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; frame-ancestors 'self'","Referrer-Policy":"no-referrer","X-Content-Type-Options":"nosniff"}})}if("watch"===s){if(n&&!n.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=null,b=n?.mtimeMs??0,c=n?.ctimeMs??0,d=n?.ino??0,f=n?.size??0,h=void 0!==n,j=new ReadableStream({start(e){let j=(a,b)=>{let c=`event: ${a}
47
47
  data: ${JSON.stringify(b)}
48
48
 
49
- `;try{e.enqueue(new TextEncoder().encode(c))}catch{}};try{let k=i().dirname(r);(a=g().watch(k,(a,e)=>{if(null==e||(0,p.Eb)(i().join(k,e.toString()),r))try{let a=g().statSync(r);if(h&&a.mtimeMs===b&&a.ctimeMs===c&&a.ino===d&&a.size===f)return;h=!0,b=a.mtimeMs,c=a.ctimeMs,d=a.ino,f=a.size,j("change",{mtime:a.mtime.toISOString(),size:a.size})}catch{if(!h)return;h=!1,j("change",{mtime:new Date().toISOString(),size:0})}})).on("error",()=>{try{a?.close()}catch{}a=null;try{e.close()}catch{}}),j("connected",{filePath:r})}catch{j("error",{message:"Failed to watch file"}),e.close()}},cancel(){try{a?.close()}catch{}}});return new Response(j,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}if(!n?.isDirectory())return e.NextResponse.json({error:"Not a directory"},{status:400});let z=g().readdirSync(r,{withFileTypes:!0}).filter(a=>!F.has(a.name)&&!G.some(b=>a.name.endsWith(b))).flatMap(a=>{let b=(0,l.w)(a,i().join(r,a.name));return null===b?[]:[{name:a.name,isDir:b,size:0,modified:""}]}).sort((a,b)=>a.isDir!==b.isDir?a.isDir?-1:1:a.name.localeCompare(b.name));return e.NextResponse.json({entries:z,path:r})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},37688:(a,b,c)=>{c.d(b,{P:()=>g});var d=c(29021),e=c.n(d),f=c(1060);function g(a,b,c){let d,g=Math.min(f._4+1,b-c),h=Buffer.alloc(g),i=e().openSync(a,"r");try{d=e().readSync(i,h,0,g,c)}finally{e().closeSync(i)}let j=Math.min(d,f._4);if(c+j<b){var k;let a=j;for(;a>j-3&&(192&h[a])==128;)a--;((224&(k=h[a]))==192?2:(240&k)==224?3:(248&k)==240?4:1)>j-a&&(j=a)}let l=c+j;return{content:h.toString("utf8",0,j),nextOffset:l,truncated:l<b}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49180:(a,b,c)=>{c.d(b,{ah:()=>e,iX:()=>h,j1:()=>i});let d=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function e(a){return!!a&&d.test(a)}function f(a){return a.replace(/\\/g,"/")}function g(a){return/[A-Za-z0-9._~+%@/\\:-]/.test(a)}function h(a,b){for(let c of b){let b=[];if(!function a(b,c){if("string"==typeof b)return void c.push(b);if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.values(b))a(d,c)}}(c,b),b.some(b=>(function(a,b){let c=f(b),d=c.startsWith("/")?[c,`file://${c}`]:[c];for(let b of new Set([f(a),f(function(a){try{return decodeURIComponent(a)}catch{return a}}(a))]))for(let a of d){let c=b.indexOf(a);for(;-1!==c;){let d=0===c?"":b[c-1],e=c+a.length;if((0===c||!g(d))&&function(a,b){if(b>=a.length)return!0;let c=a[b];return":"===c?/\d/.test(a[b+1]??""):!g(c)}(b,e))return!0;c=b.indexOf(a,c+1)}}return!1})(b,a)))return!0}return!1}function i(a,b){return b.some(b=>"message"===b.type&&b.message?.role==="bashExecution"&&b.message.fullOutputPath===a)}},51455:a=>{a.exports=require("node:fs/promises")},55484:(a,b,c)=>{c.d(b,{Ey:()=>k,Gu:()=>m,KB:()=>i,SI:()=>l,wY:()=>h});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=0x1900000,i=0x6400000,j=new Set(["error","overwrite","skip"]);function k(a){let b=a??"error";return j.has(b)?b:null}function l(a){if(0===a.length)return"No files selected";let b=new Set;for(let c of a){if(!c||"."===c||".."===c||c.includes("\0"))return`Invalid file name: ${c||"(empty)"}`;if(c.includes("/")||c.includes("\\")||g().basename(c)!==c)return`File names must not contain a path: ${c}`;if(b.has(c))return`Duplicate file name in upload: ${c}`;b.add(c)}return null}function m(a,b){let c=[],d=[];for(let f of b){let b,h=g().join(a,f);try{b=e().lstatSync(h)}catch(a){if("ENOENT"===a.code)continue;throw a}c.push(f),(!b.isFile()||b.isSymbolicLink())&&d.push(f)}return{conflicts:c,nonReplaceable:d}}},55511:a=>{a.exports=require("crypto")},56513:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/files/[...path]/route",pathname:"/api/files/[...path]",filename:"route",bundlePath:"app/api/files/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/files/[...path]/route.ts",nextConfigOutput:"standalone",userland:()=>c(1304),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/files/[...path]/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64681:(a,b,c)=>{c.d(b,{y:()=>d});function d(){let a=process.env.NEXT_PUBLIC_PI_WEB_FILE_EDITING;return!!a&&["1","true","yes","on"].includes(a.trim().toLowerCase())}},65630:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Iq:()=>h,jV:()=>i});var e=c(40402),f=c(49180),g=a([e]);async function h(a,b){if(!(0,f.ah)(b))return!1;try{let c=await (0,e.os)(b);if(!c)return!1;return(0,f.iX)(a,(0,e.DK)(c))}catch{return!1}}async function i(a,b){if(!(0,f.ah)(b))return!1;try{let c=await (0,e.os)(b);if(!c)return!1;return(0,f.j1)(a,(0,e.DK)(c))}catch{return!1}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88473:(a,b,c)=>{c.d(b,{w:()=>f});var d=c(29021),e=c.n(d);function f(a,b){if(a.isDirectory())return!0;if(a.isFile())return!1;try{return e().statSync(b).isDirectory()}catch{return null}}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=56513));module.exports=c})();
49
+ `;try{e.enqueue(new TextEncoder().encode(c))}catch{}};try{let k=i().dirname(p);(a=g().watch(k,(a,e)=>{if(null==e||(0,q.Eb)(i().join(k,e.toString()),p))try{let a=g().statSync(p);if(h&&a.mtimeMs===b&&a.ctimeMs===c&&a.ino===d&&a.size===f)return;h=!0,b=a.mtimeMs,c=a.ctimeMs,d=a.ino,f=a.size,j("change",{mtime:a.mtime.toISOString(),size:a.size})}catch{if(!h)return;h=!1,j("change",{mtime:new Date().toISOString(),size:0})}})).on("error",()=>{try{a?.close()}catch{}a=null;try{e.close()}catch{}}),j("connected",{filePath:p})}catch{j("error",{message:"Failed to watch file"}),e.close()}},cancel(){try{a?.close()}catch{}}});return new Response(j,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}if(!n?.isDirectory())return e.NextResponse.json({error:"Not a directory"},{status:400});let z=g().readdirSync(p,{withFileTypes:!0}).filter(a=>!G.has(a.name)&&!H.some(b=>a.name.endsWith(b))).flatMap(a=>{let b=(0,l.w)(a,i().join(p,a.name));return null===b?[]:[{name:a.name,isDir:b,size:0,modified:""}]}).sort((a,b)=>a.isDir!==b.isDir?a.isDir?-1:1:a.name.localeCompare(b.name));return e.NextResponse.json({entries:z,path:p})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},37688:(a,b,c)=>{c.d(b,{P:()=>g});var d=c(29021),e=c.n(d),f=c(1060);function g(a,b,c){let d,g=Math.min(f._4+1,b-c),h=Buffer.alloc(g),i=e().openSync(a,"r");try{d=e().readSync(i,h,0,g,c)}finally{e().closeSync(i)}let j=Math.min(d,f._4);if(c+j<b){var k;let a=j;for(;a>j-3&&(192&h[a])==128;)a--;((224&(k=h[a]))==192?2:(240&k)==224?3:(248&k)==240?4:1)>j-a&&(j=a)}let l=c+j;return{content:h.toString("utf8",0,j),nextOffset:l,truncated:l<b}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49180:(a,b,c)=>{c.d(b,{ah:()=>e,iX:()=>h,j1:()=>i});let d=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function e(a){return!!a&&d.test(a)}function f(a){return a.replace(/\\/g,"/")}function g(a){return/[A-Za-z0-9._~+%@/\\:-]/.test(a)}function h(a,b){for(let c of b){let b=[];if(!function a(b,c){if("string"==typeof b)return void c.push(b);if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.values(b))a(d,c)}}(c,b),b.some(b=>(function(a,b){let c=f(b),d=c.startsWith("/")?[c,`file://${c}`]:[c];for(let b of new Set([f(a),f(function(a){try{return decodeURIComponent(a)}catch{return a}}(a))]))for(let a of d){let c=b.indexOf(a);for(;-1!==c;){let d=0===c?"":b[c-1],e=c+a.length;if((0===c||!g(d))&&function(a,b){if(b>=a.length)return!0;let c=a[b];return":"===c?/\d/.test(a[b+1]??""):!g(c)}(b,e))return!0;c=b.indexOf(a,c+1)}}return!1})(b,a)))return!0}return!1}function i(a,b){return b.some(b=>"message"===b.type&&b.message?.role==="bashExecution"&&b.message.fullOutputPath===a)}},51455:a=>{a.exports=require("node:fs/promises")},55484:(a,b,c)=>{c.d(b,{Ey:()=>k,Gu:()=>m,KB:()=>i,SI:()=>l,wY:()=>h});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=0x1900000,i=0x6400000,j=new Set(["error","overwrite","skip"]);function k(a){let b=a??"error";return j.has(b)?b:null}function l(a){if(0===a.length)return"No files selected";let b=new Set;for(let c of a){if(!c||"."===c||".."===c||c.includes("\0"))return`Invalid file name: ${c||"(empty)"}`;if(c.includes("/")||c.includes("\\")||g().basename(c)!==c)return`File names must not contain a path: ${c}`;if(b.has(c))return`Duplicate file name in upload: ${c}`;b.add(c)}return null}function m(a,b){let c=[],d=[];for(let f of b){let b,h=g().join(a,f);try{b=e().lstatSync(h)}catch(a){if("ENOENT"===a.code)continue;throw a}c.push(f),(!b.isFile()||b.isSymbolicLink())&&d.push(f)}return{conflicts:c,nonReplaceable:d}}},55511:a=>{a.exports=require("crypto")},56513:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/files/[...path]/route",pathname:"/api/files/[...path]",filename:"route",bundlePath:"app/api/files/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/files/[...path]/route.ts",nextConfigOutput:"standalone",userland:()=>c(1304),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/files/[...path]/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64681:(a,b,c)=>{c.d(b,{y:()=>d});function d(){let a=process.env.NEXT_PUBLIC_PI_WEB_FILE_EDITING;return!!a&&["1","true","yes","on"].includes(a.trim().toLowerCase())}},65630:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Iq:()=>h,jV:()=>i});var e=c(40402),f=c(49180),g=a([e]);async function h(a,b){if(!(0,f.ah)(b))return!1;try{let c=await (0,e.os)(b);if(!c)return!1;return(0,f.iX)(a,(0,e.DK)(c))}catch{return!1}}async function i(a,b){if(!(0,f.ah)(b))return!1;try{let c=await (0,e.os)(b);if(!c)return!1;return(0,f.j1)(a,(0,e.DK)(c))}catch{return!1}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},66829:(a,b,c)=>{c.d(b,{H:()=>d,s:()=>e});class d extends Error{constructor(){super("Request body exceeds the allowed size")}}async function e(a,b){let c=function(a){let b=a.headers.get("content-length");if(!b||!/^\d+$/.test(b))return null;let c=Number(b);return Number.isSafeInteger(c)?c:null}(a);if(null!==c&&c>b)throw new d;let e=a.body?.getReader();if(!e)return a.formData();let f=[],g=0;try{for(;;){let{done:a,value:c}=await e.read();if(a)break;if(g+c.byteLength>b)throw await e.cancel().catch(()=>{}),new d;g+=c.byteLength;let h=new Uint8Array(c.byteLength);h.set(c),f.push(h)}}finally{e.releaseLock()}let h=a.headers.get("content-type");return new Response(new Blob(f),{headers:h?{"content-type":h}:void 0}).formData()}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88473:(a,b,c)=>{c.d(b,{w:()=>f});var d=c(29021),e=c.n(d);function f(a,b){if(a.isDirectory())return!0;if(a.isFile())return!1;try{return e().statSync(b).isDirectory()}catch{return null}}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=56513));module.exports=c})();
@@ -1,6 +1,6 @@
1
- "use strict";(()=>{var a={};a.id=2504,a.ids=[2504],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},13451:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/diff/route",pathname:"/api/git/diff",filename:"route",bundlePath:"app/api/git/diff/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/git/diff/route.ts",nextConfigOutput:"standalone",userland:()=>c(94551),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/git/diff/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33012:(a,b,c)=>{c.d(b,{S:()=>A,$:()=>x});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}async function r(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function s(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function t(a){return a.includes(0)}function u(a){return a.split("\0").filter(Boolean)}async function v(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(u(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function w(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=u(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...u(c).map(a=>a.replace(/\/+$/,""))]);return(await v(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function x(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([r(c),s(c,b),w(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(t(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0);return{isGitRepository:!0,repositoryRoot:c,files:j,additions:f.additions+l,deletions:f.deletions,ignoredPaths:h.filter(a=>o(b,a))}}function y(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
1
+ "use strict";(()=>{var a={};a.id=2504,a.ids=[2504],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},13451:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/diff/route",pathname:"/api/git/diff",filename:"route",bundlePath:"app/api/git/diff/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/git/diff/route.ts",nextConfigOutput:"standalone",userland:()=>c(94551),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/git/diff/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33012:(a,b,c)=>{c.d(b,{S:()=>B,$:()=>y});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}function r(a,b,c){if(c===b)return a;if(a===c)return b;let d=c.endsWith(g().sep)?c:c+g().sep;return a.startsWith(d)?b+a.slice(c.length):a}async function s(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function t(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function u(a){return a.includes(0)}function v(a){return a.split("\0").filter(Boolean)}async function w(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(v(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function x(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=v(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...v(c).map(a=>a.replace(/\/+$/,""))]);return(await w(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function y(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([s(c),t(c,b),x(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(u(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0),m=j.map(c=>({...c,filePath:r(c.filePath,a,b)})),q=r(c,a,b),v=h.filter(a=>o(b,a)).map(c=>r(c,a,b));return{isGitRepository:!0,repositoryRoot:q,files:m,additions:f.additions+l,deletions:f.deletions,ignoredPaths:v}}function z(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
2
2
  new file mode 100644
3
3
  --- /dev/null
4
4
  +++ b/${a}
5
5
  @@ -0,0 +1,${d.length} @@
6
- ${e}${f}`}async function z(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function A(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await r(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await z(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let s=(0,e.readFileSync)(h);if(t(s))return{supported:!1};let u=s.toString("utf8"),v="untracked"===m?y(j,u):await z(f,j,l.originalPath)??("added"===m?y(j,u):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94551:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,dynamic:()=>o});var e=c(79748),f=c(33873),g=c.n(f),h=c(23211),i=c(80547),j=c(33012),k=c(66544),l=a([i]);i=(l.then?(await l)():l)[0];let o="force-dynamic";function m(a){return a.startsWith("/")||(0,i.uK)(a)}async function n(a){if(!(0,k.EN)(a))return h.NextResponse.json({error:"Untrusted API request"},{status:403});try{let b=new URL(a.url).searchParams,c=b.get("cwd")?.trim()??"",d=b.get("path")?.trim()??"";if(!m(c)||!m(d))return h.NextResponse.json({error:"cwd and path must be absolute paths"},{status:400});let f=g().resolve(c),k=g().resolve(d),l=await (0,i.mc)();if(!(0,i.A$)(f,l)||!(0,i.A$)(k,l))return h.NextResponse.json({error:"Access denied"},{status:403});try{if(!(await (0,e.stat)(f)).isDirectory())return h.NextResponse.json({error:"cwd must be a directory"},{status:400})}catch{return h.NextResponse.json({error:"Directory not found"},{status:404})}return h.NextResponse.json(await (0,j.S)(f,k))}catch(a){return h.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=13451));module.exports=c})();
6
+ ${e}${f}`}async function A(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function B(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await s(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await A(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let r=(0,e.readFileSync)(h);if(u(r))return{supported:!1};let t=r.toString("utf8"),v="untracked"===m?z(j,t):await A(f,j,l.originalPath)??("added"===m?z(j,t):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94551:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,dynamic:()=>o});var e=c(79748),f=c(33873),g=c.n(f),h=c(23211),i=c(80547),j=c(33012),k=c(66544),l=a([i]);i=(l.then?(await l)():l)[0];let o="force-dynamic";function m(a){return a.startsWith("/")||(0,i.uK)(a)}async function n(a){if(!(0,k.EN)(a))return h.NextResponse.json({error:"Untrusted API request"},{status:403});try{let b=new URL(a.url).searchParams,c=b.get("cwd")?.trim()??"",d=b.get("path")?.trim()??"";if(!m(c)||!m(d))return h.NextResponse.json({error:"cwd and path must be absolute paths"},{status:400});let f=g().resolve(c),k=g().resolve(d),l=await (0,i.mc)();if(!(0,i.A$)(f,l)||!(0,i.A$)(k,l))return h.NextResponse.json({error:"Access denied"},{status:403});try{if(!(await (0,e.stat)(f)).isDirectory())return h.NextResponse.json({error:"cwd must be a directory"},{status:400})}catch{return h.NextResponse.json({error:"Directory not found"},{status:404})}return h.NextResponse.json(await (0,j.S)(f,k))}catch(a){return h.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=13451));module.exports=c})();
@@ -1,6 +1,6 @@
1
- "use strict";(()=>{var a={};a.id=3507,a.ids=[3507],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33012:(a,b,c)=>{c.d(b,{S:()=>A,$:()=>x});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}async function r(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function s(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function t(a){return a.includes(0)}function u(a){return a.split("\0").filter(Boolean)}async function v(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(u(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function w(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=u(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...u(c).map(a=>a.replace(/\/+$/,""))]);return(await v(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function x(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([r(c),s(c,b),w(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(t(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0);return{isGitRepository:!0,repositoryRoot:c,files:j,additions:f.additions+l,deletions:f.deletions,ignoredPaths:h.filter(a=>o(b,a))}}function y(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
1
+ "use strict";(()=>{var a={};a.id=3507,a.ids=[3507],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33012:(a,b,c)=>{c.d(b,{S:()=>B,$:()=>y});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}function r(a,b,c){if(c===b)return a;if(a===c)return b;let d=c.endsWith(g().sep)?c:c+g().sep;return a.startsWith(d)?b+a.slice(c.length):a}async function s(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function t(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function u(a){return a.includes(0)}function v(a){return a.split("\0").filter(Boolean)}async function w(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(v(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function x(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=v(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...v(c).map(a=>a.replace(/\/+$/,""))]);return(await w(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function y(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([s(c),t(c,b),x(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(u(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0),m=j.map(c=>({...c,filePath:r(c.filePath,a,b)})),q=r(c,a,b),v=h.filter(a=>o(b,a)).map(c=>r(c,a,b));return{isGitRepository:!0,repositoryRoot:q,files:m,additions:f.additions+l,deletions:f.deletions,ignoredPaths:v}}function z(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
2
2
  new file mode 100644
3
3
  --- /dev/null
4
4
  +++ b/${a}
5
5
  @@ -0,0 +1,${d.length} @@
6
- ${e}${f}`}async function z(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function A(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await r(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await z(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let s=(0,e.readFileSync)(h);if(t(s))return{supported:!1};let u=s.toString("utf8"),v="untracked"===m?y(j,u):await z(f,j,l.originalPath)??("added"===m?y(j,u):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},83518:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m,dynamic:()=>n});var e=c(79748),f=c(33873),g=c.n(f),h=c(23211),i=c(80547),j=c(33012),k=c(66544),l=a([i]);i=(l.then?(await l)():l)[0];let n="force-dynamic";async function m(a){if(!(0,k.EN)(a))return h.NextResponse.json({error:"Untrusted API request"},{status:403});try{let b=new URL(a.url).searchParams.get("cwd")?.trim()??"";if(!(b.startsWith("/")||(0,i.uK)(b)))return h.NextResponse.json({error:"cwd must be an absolute path"},{status:400});let c=g().resolve(b),d=await (0,i.mc)();if(!(0,i.A$)(c,d))return h.NextResponse.json({error:"Access denied"},{status:403});try{if(!(await (0,e.stat)(c)).isDirectory())return h.NextResponse.json({error:"Not a directory"},{status:400})}catch{return h.NextResponse.json({error:"Directory not found"},{status:404})}return h.NextResponse.json(await (0,j.$)(c))}catch(a){return h.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87657:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/status/route",pathname:"/api/git/status",filename:"route",bundlePath:"app/api/git/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/git/status/route.ts",nextConfigOutput:"standalone",userland:()=>c(83518),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/git/status/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=87657));module.exports=c})();
6
+ ${e}${f}`}async function A(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function B(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await s(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await A(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let r=(0,e.readFileSync)(h);if(u(r))return{supported:!1};let t=r.toString("utf8"),v="untracked"===m?z(j,t):await A(f,j,l.originalPath)??("added"===m?z(j,t):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},83518:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m,dynamic:()=>n});var e=c(79748),f=c(33873),g=c.n(f),h=c(23211),i=c(80547),j=c(33012),k=c(66544),l=a([i]);i=(l.then?(await l)():l)[0];let n="force-dynamic";async function m(a){if(!(0,k.EN)(a))return h.NextResponse.json({error:"Untrusted API request"},{status:403});try{let b=new URL(a.url).searchParams.get("cwd")?.trim()??"";if(!(b.startsWith("/")||(0,i.uK)(b)))return h.NextResponse.json({error:"cwd must be an absolute path"},{status:400});let c=g().resolve(b),d=await (0,i.mc)();if(!(0,i.A$)(c,d))return h.NextResponse.json({error:"Access denied"},{status:403});try{if(!(await (0,e.stat)(c)).isDirectory())return h.NextResponse.json({error:"Not a directory"},{status:400})}catch{return h.NextResponse.json({error:"Directory not found"},{status:404})}return h.NextResponse.json(await (0,j.$)(c))}catch(a){return h.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87657:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/status/route",pathname:"/api/git/status",filename:"route",bundlePath:"app/api/git/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/git/status/route.ts",nextConfigOutput:"standalone",userland:()=>c(83518),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/git/status/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=87657));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=7812,a.ids=[7812],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10595:(a,b,c)=>{c.d(b,{f:()=>g});var d=c(29021),e=c(33873);let f=require("process");function g(a,b,c={}){let h=function(a,b={}){let c=b.nodeDir??(0,e.dirname)(f.execPath),g=b.fileExists??d.existsSync;for(let b of[(0,e.join)(c,"node_modules","npm","bin",`${a}-cli.js`),(0,e.join)(c,"..","lib","node_modules","npm","bin",`${a}-cli.js`)])try{if(g(b))return b}catch{}return null}(a,c);return h?{command:f.execPath,args:[h,...b]}:{command:a,args:b}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},43987:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>l,dynamic:()=>m});var e=c(23211),f=c(75430),g=c(97990),h=c(80547),i=c(66544),j=c(72498),k=a([f,h,j]);[f,h,j]=k.then?(await k)():k;let m="force-dynamic",n=/\x1B\[[0-9;]*m/g;async function l(a){if(!(0,i.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,i.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let{package:b,scope:c,cwd:d}=await a.json();if(!b?.trim())return e.NextResponse.json({error:"package required"},{status:400});let i="project"!==c;if(!i){if(!d)return e.NextResponse.json({error:"cwd required for project install"},{status:400});let a=await (0,h.mc)();if(!(0,h.A$)(d,a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,j.Y1)(d,(0,f.getAgentDir)()).trusted)return e.NextResponse.json({error:"Project resources must be trusted before installing project skills"},{status:403})}let k=["skills","add",b.trim(),"-y","--agent","pi"];i&&k.push("-g"),console.log(`[skills/install] running: npx ${k.join(" ")}`);let{stdout:l,stderr:m}=await (0,g.a)(k,{timeout:6e4,cwd:!i&&d?d:void 0,env:{...process.env,FORCE_COLOR:"0"}}),o=(l+m).replace(n,"");if(!/Installation complete|Installed \d+ skill/.test(o))return e.NextResponse.json({error:o.slice(-300)||"Install failed"},{status:500});return e.NextResponse.json({success:!0,output:o})}catch(b){let a=((b.stdout??"")+(b.stderr??"")).replace(n,"");return e.NextResponse.json({error:a||(b.message??String(b))},{status:500})}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90907:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/skills/install/route",pathname:"/api/skills/install",filename:"route",bundlePath:"app/api/skills/install/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/skills/install/route.ts",nextConfigOutput:"standalone",userland:()=>c(43987),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/skills/install/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},94735:a=>{a.exports=require("events")},97990:(a,b,c)=>{c.d(b,{a:()=>h});var d=c(79646),e=c(28354),f=c(10595);let g=(0,e.promisify)(d.execFile);async function h(a,b={}){let{command:c,args:d}=(0,f.f)("npx",a);return g(c,d,{timeout:b.timeout,cwd:b.cwd,env:b.env})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=90907));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=7812,a.ids=[7812],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10595:(a,b,c)=>{c.d(b,{f:()=>g});var d=c(29021),e=c(33873);let f=require("process");function g(a,b,c={}){let h=function(a,b={}){let c=b.nodeDir??(0,e.dirname)(f.execPath),g=b.fileExists??d.existsSync;for(let b of[(0,e.join)(c,"node_modules","npm","bin",`${a}-cli.js`),(0,e.join)(c,"..","lib","node_modules","npm","bin",`${a}-cli.js`)])try{if(g(b))return b}catch{}return null}(a,c);return h?{command:f.execPath,args:[h,...b]}:{command:a,args:b}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},43987:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>l,dynamic:()=>m});var e=c(23211),f=c(75430),g=c(97990),h=c(80547),i=c(66544),j=c(72498),k=a([f,h,j]);[f,h,j]=k.then?(await k)():k;let m="force-dynamic",n=/\x1B\[[0-9;]*m/g;async function l(a){if(!(0,i.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,i.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let{package:b,scope:c,cwd:d}=await a.json();if(!b?.trim())return e.NextResponse.json({error:"package required"},{status:400});let i="project"!==c;if(!i){if(!d)return e.NextResponse.json({error:"cwd required for project install"},{status:400});let a=await (0,h.mc)();if(!(0,h.A$)(d,a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,j.Y1)(d,(0,f.getAgentDir)()).trusted)return e.NextResponse.json({error:"Project resources must be trusted before installing project skills"},{status:403})}let k=["skills","add",b.trim(),"-y","--agent","pi"];i&&k.push("-g"),console.info(`[skills/install] running: npx ${k[0]} ${k[1]} <package> -y --agent pi${i?" -g":""}`);let{stdout:l,stderr:m}=await (0,g.a)(k,{timeout:6e4,cwd:!i&&d?d:void 0,env:{...process.env,FORCE_COLOR:"0"}}),o=(l+m).replace(n,"");if(!/Installation complete|Installed \d+ skill/.test(o))return e.NextResponse.json({error:o.slice(-300)||"Install failed"},{status:500});return e.NextResponse.json({success:!0,output:o})}catch(b){let a=((b.stdout??"")+(b.stderr??"")).replace(n,"");return e.NextResponse.json({error:a||(b.message??String(b))},{status:500})}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90907:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/skills/install/route",pathname:"/api/skills/install",filename:"route",bundlePath:"app/api/skills/install/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/skills/install/route.ts",nextConfigOutput:"standalone",userland:()=>c(43987),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/skills/install/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},94735:a=>{a.exports=require("events")},97990:(a,b,c)=>{c.d(b,{a:()=>h});var d=c(79646),e=c(28354),f=c(10595);let g=(0,e.promisify)(d.execFile);async function h(a,b={}){let{command:c,args:d}=(0,f.f)("npx",a);return g(c,d,{timeout:b.timeout,cwd:b.cwd,env:b.env})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,426,5582],()=>b(b.s=90907));module.exports=c})();
@@ -1,6 +1,6 @@
1
- (()=>{var a={};a.id=3485,a.ids=[3485],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{"use strict";c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30004:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j});var e=c(23211),f=c(66544),g=c(46583),h=c(33012),i=a([g]);async function j(a){if(!(0,f.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});try{let b=new URL(a.url),c=b.pathname.split("/").filter(Boolean),d=Number(c[c.length-2]),f=b.searchParams.get("projectRoot");if(!Number.isInteger(d)||d<=0||!f)return e.NextResponse.json({error:"id and projectRoot are required"},{status:400});let i=(0,g._o)(f,d);if(!i)return e.NextResponse.json({error:"Task not found"},{status:404});if(!i.worktreePath)return e.NextResponse.json({files:[]});let j=await (0,h.$)(i.worktreePath),k=function(a,b){if(!b.isGitRepository||!b.repositoryRoot)return[];let c=b.repositoryRoot;return b.files.map(a=>({file:a.filePath.startsWith(c+"/")?a.filePath.slice(c.length+1):a.filePath,additions:+("deleted"!==a.status),deletions:+("deleted"===a.status)})).sort((a,b)=>a.file.localeCompare(b.file))}(i.worktreePath,j);return e.NextResponse.json({files:k,additions:j.additions,deletions:j.deletions})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}g=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},33012:(a,b,c)=>{"use strict";c.d(b,{S:()=>A,$:()=>x});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}async function r(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function s(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function t(a){return a.includes(0)}function u(a){return a.split("\0").filter(Boolean)}async function v(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(u(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function w(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=u(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...u(c).map(a=>a.replace(/\/+$/,""))]);return(await v(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function x(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([r(c),s(c,b),w(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(t(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0);return{isGitRepository:!0,repositoryRoot:c,files:j,additions:f.additions+l,deletions:f.deletions,ignoredPaths:h.filter(a=>o(b,a))}}function y(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
1
+ (()=>{var a={};a.id=3485,a.ids=[3485],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1060:(a,b,c)=>{"use strict";c.d(b,{Ac:()=>p,GO:()=>k,X:()=>m,_4:()=>d,cV:()=>l,jL:()=>f,k2:()=>n,kv:()=>e,oC:()=>o});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},i={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"},j={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function k(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function l(a){return g[k(a)]??null}function m(a){return h[k(a)]??null}function n(a){return i[k(a)]??null}function o(a){return j[k(a)]??null}function p(a){let b=k(a);return"pdf"===b||"docx"===b?b:null}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30004:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j});var e=c(23211),f=c(66544),g=c(46583),h=c(33012),i=a([g]);async function j(a){if(!(0,f.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});try{let b=new URL(a.url),c=b.pathname.split("/").filter(Boolean),d=Number(c[c.length-2]),f=b.searchParams.get("projectRoot");if(!Number.isInteger(d)||d<=0||!f)return e.NextResponse.json({error:"id and projectRoot are required"},{status:400});let i=(0,g._o)(f,d);if(!i)return e.NextResponse.json({error:"Task not found"},{status:404});if(!i.worktreePath)return e.NextResponse.json({files:[]});let j=await (0,h.$)(i.worktreePath),k=function(a,b){if(!b.isGitRepository||!b.repositoryRoot)return[];let c=b.repositoryRoot;return b.files.map(a=>({file:a.filePath.startsWith(c+"/")?a.filePath.slice(c.length+1):a.filePath,additions:+("deleted"!==a.status),deletions:+("deleted"===a.status)})).sort((a,b)=>a.file.localeCompare(b.file))}(i.worktreePath,j);return e.NextResponse.json({files:k,additions:j.additions,deletions:j.deletions})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}g=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},33012:(a,b,c)=>{"use strict";c.d(b,{S:()=>B,$:()=>y});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f),h=c(28354),i=c(1060);let j=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function k(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:j.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let l=(0,h.promisify)(d.execFile);async function m(a,b,c=8388608){let{stdout:d}=await l("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function n(a){try{return(await m(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function o(a,b){let c=g().relative(g().resolve(a),g().resolve(b));return""===c||!c.startsWith(`..${g().sep}`)&&".."!==c&&!g().isAbsolute(c)}function p(a){try{return(0,e.realpathSync)(a)}catch{return g().resolve(a)}}function q(a){return a.split(g().sep).join("/")}function r(a,b,c){if(c===b)return a;if(a===c)return b;let d=c.endsWith(g().sep)?c:c+g().sep;return a.startsWith(d)?b+a.slice(c.length):a}async function s(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a+=1){var d,e;let f=b[a];if(!f||f.length<4||" "!==f[2])continue;let g={path:f.slice(3),indexStatus:f[0],worktreeStatus:f[1]};d=g.indexStatus,e=g.worktreeStatus,("R"===d||"C"===d||"R"===e||"C"===e)&&(g.originalPath=b[a+1]||void 0,a+=1),c.push(g)}return c}(await m(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function t(a,b){let c=q(g().relative(a,b));try{let b=await m(a,["diff","--no-color","--no-ext-diff","--numstat","HEAD","--",c||"."]),d=0,e=0;for(let a of b.split(/\r?\n/)){if(!a)continue;let[b,c]=a.split(" ",2),f=Number(b),g=Number(c);Number.isInteger(f)&&(d+=f),Number.isInteger(g)&&(e+=g)}return{additions:d,deletions:e}}catch{return{additions:0,deletions:0}}}function u(a){return a.includes(0)}function v(a){return a.split("\0").filter(Boolean)}async function w(a,b){return 0===b.length?[]:new Promise(c=>{let e=(0,d.spawn)("git",["-C",a,"check-ignore","--no-index","--stdin","-z"],{env:{...process.env,LC_ALL:"C"},stdio:["pipe","pipe","ignore"]}),f="",g=!1,h=a=>{g||(g=!0,clearTimeout(i),c(a))},i=setTimeout(()=>{e.kill(),h([])},1e4);e.stdout.on("data",a=>{f+=a.toString()}),e.once("error",()=>h([])),e.once("close",()=>h(v(f))),e.stdin.end(`${b.join("\0")}\0`)})}async function x(a){try{let[b,c]=await Promise.all([m(a,["ls-files","--cached","-z"]),m(a,["ls-files","--others","--ignored","--exclude-standard","--directory","-z"])]),d=v(b),e=new Set([...d,...function(a){let b=new Set;for(let c of a){let a=g().posix.dirname(c);for(;a&&"."!==a;)b.add(a),a=g().posix.dirname(a)}return[...b]}(d),...v(c).map(a=>a.replace(/\/+$/,""))]);return(await w(a,[...e])).map(b=>g().resolve(a,b))}catch{return[]}}async function y(a){let b=p(a),c=await n(b);if(!c)return{isGitRepository:!1,repositoryRoot:null,files:[],additions:0,deletions:0,ignoredPaths:[]};let[d,f,h]=await Promise.all([s(c),t(c,b),x(c)]),j=d.flatMap(a=>{let d=g().resolve(c,a.path);return o(b,d)?[{filePath:d,...k(a),indexStatus:a.indexStatus,worktreeStatus:a.worktreeStatus}]:[]}),l=j.reduce((a,b)=>a+("untracked"===b.status?function(a){try{let b=(0,e.lstatSync)(a);if(!b.isFile()||b.size>i._4)return 0;let c=(0,e.readFileSync)(a);if(u(c)||0===c.length)return 0;let d=c.toString("utf8");return d.endsWith("\n")?d.split("\n").length-1:d.split("\n").length}catch{return 0}}(b.filePath):0),0),m=j.map(c=>({...c,filePath:r(c.filePath,a,b)})),q=r(c,a,b),v=h.filter(a=>o(b,a)).map(c=>r(c,a,b));return{isGitRepository:!0,repositoryRoot:q,files:m,additions:f.additions+l,deletions:f.deletions,ignoredPaths:v}}function z(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
2
2
  new file mode 100644
3
3
  --- /dev/null
4
4
  +++ b/${a}
5
5
  @@ -0,0 +1,${d.length} @@
6
- ${e}${f}`}async function z(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function A(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await r(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await z(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let s=(0,e.readFileSync)(h);if(t(s))return{supported:!1};let u=s.toString("utf8"),v="untracked"===m?y(j,u):await z(f,j,l.originalPath)??("added"===m?y(j,u):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52766:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/changed-files/route",pathname:"/api/tasks/[id]/changed-files",filename:"route",bundlePath:"app/api/tasks/[id]/changed-files/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/tasks/[id]/changed-files/route.ts",nextConfigOutput:"standalone",userland:()=>c(30004),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tasks/[id]/changed-files/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,9332],()=>b(b.s=52766));module.exports=c})();
6
+ ${e}${f}`}async function A(a,b,c){try{return await m(a,["diff","--no-color","--no-ext-diff","--unified=3","HEAD","--",...c&&c!==b?[c,b]:[b]],4*i._4)}catch{return null}}async function B(a,b){let c,d=p(a),f=await n(d),h=g().resolve(d,g().relative(g().resolve(a),g().resolve(b)));if(!f||!o(f,h))return{supported:!1};let j=q(g().relative(f,h)),l=(await s(f)).find(a=>a.path===j);if(!l)return{supported:!1};let{status:m}=k(l);if("deleted"===m){let a=await A(f,j,l.originalPath);return a?.includes("\n@@ ")?{supported:!0,status:m,patch:a}:{supported:!1}}try{c=(0,e.lstatSync)(h)}catch{return{supported:!1}}if(!c.isFile()||c.size>i._4)return{supported:!1};let r=(0,e.readFileSync)(h);if(u(r))return{supported:!1};let t=r.toString("utf8"),v="untracked"===m?z(j,t):await A(f,j,l.originalPath)??("added"===m?z(j,t):null);return v?.includes("\n@@ ")?{supported:!0,status:m,patch:v}:{supported:!1}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52766:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/changed-files/route",pathname:"/api/tasks/[id]/changed-files",filename:"route",bundlePath:"app/api/tasks/[id]/changed-files/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/tasks/[id]/changed-files/route.ts",nextConfigOutput:"standalone",userland:()=>c(30004),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tasks/[id]/changed-files/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,9332],()=>b(b.s=52766));module.exports=c})();