@henlii/pidance 0.2.12 → 0.2.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 (63) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +13 -13
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/api/about/route.js +1 -1
  25. package/.next/server/app/api/attachments/route.js +1 -1
  26. package/.next/server/app/api/auth/ui-sessions/[id]/route.js +1 -1
  27. package/.next/server/app/api/cwd/browse/route.js +1 -1
  28. package/.next/server/app/api/cwd/validate/route.js +1 -1
  29. package/.next/server/app/api/default-cwd/route.js +1 -1
  30. package/.next/server/app/api/file-index/route.js +1 -1
  31. package/.next/server/app/api/files/[...path]/route.js +3 -3
  32. package/.next/server/app/api/project-assets/route.js +1 -1
  33. package/.next/server/app/api/skills/route.js +2 -2
  34. package/.next/server/app/api/update/apply/route.js +2 -2
  35. package/.next/server/app/api/update/check/route.js +2 -2
  36. package/.next/server/app/api/worktrees/route.js +1 -1
  37. package/.next/server/app/index.html +1 -1
  38. package/.next/server/app/index.rsc +4 -4
  39. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  40. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  41. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  44. package/.next/server/app/page.js +13 -13
  45. package/.next/server/app/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app-paths-manifest.json +13 -13
  47. package/.next/server/chunks/188.js +1 -1
  48. package/.next/server/chunks/329.js +1 -1
  49. package/.next/server/chunks/5304.js +1 -0
  50. package/.next/server/chunks/6192.js +2 -2
  51. package/.next/server/chunks/7594.js +1 -1
  52. package/.next/server/instrumentation.js +1 -1
  53. package/.next/server/middleware-build-manifest.js +1 -1
  54. package/.next/server/pages/404.html +1 -1
  55. package/.next/server/pages/500.html +1 -1
  56. package/.next/server/server-reference-manifest.json +1 -1
  57. package/.next/static/chunks/9780-6c3a23bf3225b4e4.js +1 -0
  58. package/.next/static/chunks/app/page-b7557470a69f54d8.js +25 -0
  59. package/package.json +1 -1
  60. package/.next/static/chunks/9780-56542826d7f3fa4a.js +0 -1
  61. package/.next/static/chunks/app/page-6d9852f2f02a308b.js +0 -25
  62. /package/.next/static/{MVakkXp9Z6ytY57whIONN → tSMtvUw39aEnL_q0KYTYU}/_buildManifest.js +0 -0
  63. /package/.next/static/{MVakkXp9Z6ytY57whIONN → tSMtvUw39aEnL_q0KYTYU}/_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")},400:(a,b,c)=>{c.d(b,{OJ:()=>o,Sk:()=>j,j0:()=>m});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(716);let i="true"===process.env.SAVE_FSYNC;class j extends Error{constructor(a,b){super(b),this.code=a}}function k(a){return(a.split(/[\\/]+/).filter(Boolean).pop()??"").startsWith(".pi-save-")?"目标路径包含受保护名称":null}function l(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function m(a,b,c=l(a)||l(b)){let d=c?g().win32:g(),e=d.resolve(a),f=d.resolve(b),h=c?e.toLowerCase():e,i=c?f.toLowerCase():f;return h!==i&&h.startsWith(i.endsWith(d.sep)?i:i+d.sep)}function n(a,b){let c=a?.code;if("ENOENT"===c)throw new j("not-found",b);if("EACCES"===c||"EPERM"===c)throw new j("forbidden","文件访问被拒绝");throw a}function o(a){let b,c,d,{target:f,cwd:l,allowedRoots:o,content:p,baseline:q}=a,r=k(f);if(r)throw new j("forbidden",r);let s=function(a,b){if(!Number.isFinite(b?.mtimeMs)||b.mtimeMs<0||!Number.isFinite(b?.size)||b.size<0)throw new j("bad-request","保存请求格式无效");for(let b=0;b<a.length;b+=1){let c=a.charCodeAt(b);if(c>=55296&&c<=57343){if(c<=56319&&b+1<a.length&&a.charCodeAt(b+1)>=56320&&57343>=a.charCodeAt(b+1)){b+=1;continue}throw new j("bad-request","内容包含不可逆 UTF-8 字符")}}return Buffer.from(a,"utf8")}(p,q),t=a.isAllowed??((a,b)=>[...b].some(b=>a===b||a.startsWith(`${b}/`)||a.startsWith(`${b}\\`)));if(!t(f,o))throw new j("forbidden","目标不在授权目录内");try{b=e().lstatSync(f)}catch(a){return n(a,"目标文件不存在")}if(b.isSymbolicLink())throw new j("forbidden","目标不能是符号链接");if(!b.isFile())throw new j("bad-request","目标不是常规文件");try{if(e().realpathSync(l),c=e().realpathSync(f),d=new Set([...o].map(a=>e().realpathSync(a))),k(c)||!t(c,d))throw new j("forbidden","目标不在授权目录内");for(let a=g().dirname(f);m(a,l);a=g().dirname(a))if(e().lstatSync(a).isSymbolicLink())throw new j("forbidden","目标父目录不能是符号链接")}catch(a){if(a instanceof j)throw a;return n(a,"目标路径不存在")}try{e().statSync(c)}catch(a){return n(a,"目标文件不存在")}let u=g().dirname(c),v=g().join(u,`.pi-save-${process.pid}-${(0,h.randomUUID)()}`);try{if(e().writeFileSync(v,s,{flag:"wx",mode:4095&b.mode}),e().chmodSync(v,4095&b.mode),i){let a=e().openSync(v,"r+");try{e().fsyncSync(a)}finally{e().closeSync(a)}}e().renameSync(v,c)}catch(a){try{e().unlinkSync(v)}catch{}return n(a,"保存目标不存在")}let w=e().statSync(c);return{path:f,size:w.size,mtimeMs:w.mtimeMs}}},716:a=>{a.exports=require("node:crypto")},1060:(a,b,c)=>{c.d(b,{Ac:()=>n,GO:()=>j,X:()=>l,_4:()=>d,cV:()=>k,jL:()=>f,kv:()=>e,oC:()=>m});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={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function j(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function k(a){return g[j(a)]??null}function l(a){return h[j(a)]??null}function m(a){return i[j(a)]??null}function n(a){let b=j(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,{GET:()=>B,POST:()=>x});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(60601),o=c(54968),p=c(93089),q=c(55484),r=a([j,m,o,p]);[j,m,o,p]=r.then?(await r)():r;let C=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store",".git"]),D=[".pyc"],E=new Set(["list","read","download","meta","preview","watch"]),F={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 s(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":F[b.split(".").pop()??""]??"text"}function t(a){let b=a.join("/"),c=(0,j.Nw)(b);return(0,j.uK)(c)?c:"/"+b.replace(/^\/+/,"")}async function u(a){let b,c=t(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})}}function v(a,b){if(!a||"object"!=typeof a)return null;let c=a[b];return"string"==typeof c?c:null}function w(a){return a instanceof p.nf?e.NextResponse.json({error:a.message},{status:(0,p.LO)(a.code)}):e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}async function x(a,{params:b}){try{let{path:d}=await b,f=a.nextUrl.searchParams.get("type")??"upload";if("save"===f){let b=t(d);return(0,o.$)(a,b)}if("create-file"===f||"create-dir"===f||"rename"===f||"move"===f||"copy"===f){let b=await (0,j.mc)(),c=await a.json().catch(()=>null);try{if("rename"===f){let a=t(d),f=v(c,"newName");if(!f)return e.NextResponse.json({error:"newName is required"},{status:400});let g=(0,p.xO)(a,f,b);return e.NextResponse.json({path:g.path,name:g.name})}if("move"===f||"copy"===f){let a=t(d),g=v(c,"targetDirectory");if(!g)return e.NextResponse.json({error:"targetDirectory is required"},{status:400});let h="move"===f?(0,p.cb)(a,g,b):(0,p.ox)(a,g,b);return e.NextResponse.json({path:h.path,name:h.name})}let a=t(d),g=v(c,"name");if(!g)return e.NextResponse.json({error:"name is required"},{status:400});let h="create-file"===f?(0,p.wp)(a,g,b):(0,p.c1)(a,g,b);return e.NextResponse.json({path:h.path,name:h.name},{status:201})}catch(a){return w(a)}}let h=await u(d);if("response"in h)return h.response;let{directory:k}=h;if("upload-check"===f){var c;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,q.SI)(d);if(f)return e.NextResponse.json({error:f},{status:400});return e.NextResponse.json((0,q.Gu)(k,d))}if("upload"!==f)return e.NextResponse.json({error:"Invalid upload request type"},{status:400});let l=(0,q.Ey)(a.nextUrl.searchParams.get("conflict"));if(!l)return e.NextResponse.json({error:"Invalid conflict strategy"},{status:400});let m=Number(a.headers.get("content-length"));if(Number.isFinite(m)&&m>0x6900000)return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413});let n=(await a.formData()).getAll("files").filter(a=>"string"!=typeof a);if(n.some(a=>a.size>0x1900000))return e.NextResponse.json({error:"Each upload must be 25MB or smaller"},{status:413});if(n.reduce((a,b)=>a+b.size,0)>0x6400000)return e.NextResponse.json({error:"Uploads must total 100MB or less"},{status:413});let r=n.map(a=>a.name),s=(0,q.SI)(r);if(s)return e.NextResponse.json({error:s},{status:400});let x=(0,q.Gu)(k,r);if("error"===l&&x.conflicts.length>0)return e.NextResponse.json({error:"One or more files already exist",conflicts:x.conflicts,nonReplaceable:x.nonReplaceable},{status:409});let y=new Set(x.conflicts),z=new Set(x.nonReplaceable),A=[],B=[],C=[];for(let a of n){let b,c=i().join(k,a.name);if(y.has(a.name)&&"skip"===l){B.push(a.name);continue}if(y.has(a.name)&&z.has(a.name)){C.push({name:a.name,error:"Cannot replace a directory or symbolic link"});continue}try{b=Buffer.from(await a.arrayBuffer())}catch(b){C.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}if(y.has(a.name))try{g().unlinkSync(c)}catch(b){C.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}try{g().writeFileSync(c,b,{flag:"wx"}),A.push(a.name)}catch(b){C.push({name:a.name,error:b instanceof Error?b.message:String(b)})}}return e.NextResponse.json({uploaded:A,skipped:B,errors:C},{status:C.length>0?207:200})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}function y(a,b){let c=(0,n.fu)(a),d=g().createReadStream(a,{fd:c,autoClose:!0,...b??{}}),e=!1;return new ReadableStream({start(a){d.on("data",b=>{if(!e)try{a.enqueue(new Uint8Array(b))}catch{e=!0,d.destroy()}}),d.once("end",()=>{if(!e){e=!0;try{a.close()}catch{}}}),d.once("error",b=>{if(!e){e=!0;try{a.error(b)}catch{}}})},cancel(){e=!0,d.destroy()}})}function z(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()}`)}`}function A(a,b,c,d,e=!1){let f={"Content-Type":c,"Cache-Control":"no-cache","Accept-Ranges":"bytes","Content-Disposition":z(a,e)};if(!d)return new Response(y(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,i=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),i=b.size-1}if(!Number.isFinite(h)||!Number.isFinite(i)||h<0||i<h||h>=b.size)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let j=(i=Math.min(i,b.size-1))-h+1;return new Response(y(a,{start:h,end:i}),{status:206,headers:{...f,"Content-Length":String(j),"Content-Range":`bytes ${h}-${i}/${b.size}`}})}async function B(a,{params:b}){try{var d,f,h;let o,q,{path:r}=await b,u=t(r),v=(d=a.nextUrl.searchParams.get("type")??"list",E.has(d)?d:null);if(!v)return e.NextResponse.json({error:"Invalid file request type"},{status:400});let x=a.nextUrl.searchParams.get("sessionId"),y=await (0,j.mc)(),B=(0,j.A$)(u,y),F=!B&&"list"!==v&&await (0,m.Iq)(u,x);if(!B&&!F)return e.NextResponse.json({error:"Access denied"},{status:403});let G=(0,n.iM)(u,y);if("not-found"===G.kind)return e.NextResponse.json({error:"Not found"},{status:404});if("ok"===G.kind)o=G.realPath,q=G.stat;else{if("denied"===G.kind||!F||!(0,n.hI)(u,G.realPath))return e.NextResponse.json({error:"Access denied"},{status:403});o=G.realPath,q=G.stat}if("read"===v){if(!q.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(o);if(b){if(q.size>k.kv)return e.NextResponse.json({error:"Image too large (>10MB)"},{status:413});return A(o,q,b,a.headers.get("range"))}let c=(0,k.X)(o);if(c)return A(o,q,c,a.headers.get("range"));let d=(0,k.oC)(o);if(d)return A(o,q,d,a.headers.get("range"));if(q.size>k._4)return e.NextResponse.json({error:"File too large for preview (>256KB)"},{status:413});let f=(0,n.fu)(o);try{let a=g().readFileSync(f,"utf-8"),b=s(o);return e.NextResponse.json({content:a,language:b,size:q.size,mtimeMs:q.mtimeMs})}finally{g().closeSync(f)}}if("download"===v){if(q.isDirectory())try{let a=(0,p.Wd)(o),b=`${i().basename(o)||"folder"}.tar.gz`;return new Response(a,{headers:{"Content-Type":"application/gzip","Content-Disposition":z(b,!0),"Cache-Control":"no-cache"}})}catch(a){return w(a)}if(!q.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(o)||(0,k.X)(o)||(0,k.oC)(o)||"application/octet-stream";return A(o,q,b,a.headers.get("range"),!0)}if("meta"===v){if(!q.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=(0,k.cV)(o),b=(0,k.X)(o),c=(0,k.oC)(o);return e.NextResponse.json({size:q.size,mtimeMs:q.mtimeMs,language:s(o),mime:a||b||c||"text/plain",previewKind:(0,k.Ac)(o)})}if("preview"===v){if(!q.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});if("docx"!==(0,k.GO)(o))return e.NextResponse.json({error:"Preview not available for this file type"},{status:400});if(q.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:o},{externalFileAccess:!1,convertImage:a.images.dataUri})).value,h=i().basename(o),`<!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")},400:(a,b,c)=>{c.d(b,{OJ:()=>n,Sk:()=>j,j0:()=>l});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(716);let i="true"===process.env.SAVE_FSYNC;class j extends Error{constructor(a,b){super(b),this.code=a}}function k(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function l(a,b,c=k(a)||k(b)){let d=c?g().win32:g(),e=d.resolve(a),f=d.resolve(b),h=c?e.toLowerCase():e,i=c?f.toLowerCase():f;return h!==i&&h.startsWith(i.endsWith(d.sep)?i:i+d.sep)}function m(a,b){let c=a?.code;if("ENOENT"===c)throw new j("not-found",b);if("EACCES"===c||"EPERM"===c)throw new j("forbidden","文件访问被拒绝");throw a}function n(a){let b,c,d,{target:f,cwd:k,allowedRoots:n,content:o,baseline:p}=a,q=function(a,b){if(!Number.isFinite(b?.mtimeMs)||b.mtimeMs<0||!Number.isFinite(b?.size)||b.size<0)throw new j("bad-request","保存请求格式无效");for(let b=0;b<a.length;b+=1){let c=a.charCodeAt(b);if(c>=55296&&c<=57343){if(c<=56319&&b+1<a.length&&a.charCodeAt(b+1)>=56320&&57343>=a.charCodeAt(b+1)){b+=1;continue}throw new j("bad-request","内容包含不可逆 UTF-8 字符")}}return Buffer.from(a,"utf8")}(o,p),r=a.isAllowed??((a,b)=>[...b].some(b=>a===b||a.startsWith(`${b}/`)||a.startsWith(`${b}\\`)));if(!r(f,n))throw new j("forbidden","目标不在授权目录内");try{b=e().lstatSync(f)}catch(a){return m(a,"目标文件不存在")}if(b.isSymbolicLink())throw new j("forbidden","目标不能是符号链接");if(!b.isFile())throw new j("bad-request","目标不是常规文件");try{if(e().realpathSync(k),c=e().realpathSync(f),d=new Set([...n].map(a=>e().realpathSync(a))),!r(c,d))throw new j("forbidden","目标不在授权目录内");for(let a=g().dirname(f);l(a,k);a=g().dirname(a))if(e().lstatSync(a).isSymbolicLink())throw new j("forbidden","目标父目录不能是符号链接")}catch(a){if(a instanceof j)throw a;return m(a,"目标路径不存在")}try{e().statSync(c)}catch(a){return m(a,"目标文件不存在")}let s=g().dirname(c),t=g().join(s,`.pi-save-${process.pid}-${(0,h.randomUUID)()}`);try{if(e().writeFileSync(t,q,{flag:"wx",mode:4095&b.mode}),e().chmodSync(t,4095&b.mode),i){let a=e().openSync(t,"r+");try{e().fsyncSync(a)}finally{e().closeSync(a)}}e().renameSync(t,c)}catch(a){try{e().unlinkSync(t)}catch{}return m(a,"保存目标不存在")}let u=e().statSync(c);return{path:f,size:u.size,mtimeMs:u.mtimeMs}}},716:a=>{a.exports=require("node:crypto")},1060:(a,b,c)=>{c.d(b,{Ac:()=>l,GO:()=>h,X:()=>j,_4:()=>d,cV:()=>i,oC:()=>k});let d=262144,e={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"},f={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"},g={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function h(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function i(a){return e[h(a)]??null}function j(a){return f[h(a)]??null}function k(a){return g[h(a)]??null}function l(a){let b=h(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:()=>z,GET:()=>D,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(74940),m=c(88473),n=c(65630),o=c(60601),p=c(54968),q=c(93089),r=c(55484),s=a([j,n,o,p,q]);[j,n,o,p,q]=s.then?(await s)():s;let E=new Set,F=[],G=new Set(["list","read","download","meta","preview","watch"]),H={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":H[b.split(".").pop()??""]??"text"}function u(a){let b=a.join("/"),c=(0,j.Nw)(b);return(0,j.uK)(c)?c:"/"+b.replace(/^\/+/,"")}async function v(a){let b,c=u(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})}}function w(a,b){if(!a||"object"!=typeof a)return null;let c=a[b];return"string"==typeof c?c:null}function x(a){return a instanceof q.nf?e.NextResponse.json({error:a.message},{status:(0,q.LO)(a.code)}):e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}async function y(a,{params:b}){try{let{path:d}=await b,f=a.nextUrl.searchParams.get("type")??"upload";if("save"===f){let b=u(d);return(0,p.$)(a,b)}if("create-file"===f||"create-dir"===f||"rename"===f||"move"===f||"copy"===f){let b=await (0,j.mc)(),c=await a.json().catch(()=>null);try{if("rename"===f){let a=u(d),f=w(c,"newName");if(!f)return e.NextResponse.json({error:"newName is required"},{status:400});let g=(0,q.xO)(a,f,b);return e.NextResponse.json({path:g.path,name:g.name})}if("move"===f||"copy"===f){let a=u(d),g=w(c,"targetDirectory");if(!g)return e.NextResponse.json({error:"targetDirectory is required"},{status:400});let h="move"===f?(0,q.cb)(a,g,b):(0,q.ox)(a,g,b);return e.NextResponse.json({path:h.path,name:h.name})}let a=u(d),g=w(c,"name");if(!g)return e.NextResponse.json({error:"name is required"},{status:400});let h="create-file"===f?(0,q.wp)(a,g,b):(0,q.c1)(a,g,b);return e.NextResponse.json({path:h.path,name:h.name},{status:201})}catch(a){return x(a)}}let h=await v(d);if("response"in h)return h.response;let{directory:k}=h;if("upload-check"===f){var c;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,r.SI)(d);if(f)return e.NextResponse.json({error:f},{status:400});return e.NextResponse.json((0,r.Gu)(k,d))}if("upload"!==f)return e.NextResponse.json({error:"Invalid upload request type"},{status:400});let l=(0,r.Ey)(a.nextUrl.searchParams.get("conflict"));if(!l)return e.NextResponse.json({error:"Invalid conflict strategy"},{status:400});let m=(await a.formData()).getAll("files").filter(a=>"string"!=typeof a),n=m.map(a=>a.name),o=(0,r.SI)(n);if(o)return e.NextResponse.json({error:o},{status:400});let s=(0,r.Gu)(k,n);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),y=new Set(s.nonReplaceable),z=[],A=[],B=[];for(let a of m){let b,c=i().join(k,a.name);if(t.has(a.name)&&"skip"===l){A.push(a.name);continue}if(t.has(a.name)&&y.has(a.name)){B.push({name:a.name,error:"Cannot replace a directory or symbolic link"});continue}try{b=Buffer.from(await a.arrayBuffer())}catch(b){B.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}if(t.has(a.name))try{g().unlinkSync(c)}catch(b){B.push({name:a.name,error:b instanceof Error?b.message:String(b)});continue}try{g().writeFileSync(c,b,{flag:"wx"}),z.push(a.name)}catch(b){B.push({name:a.name,error:b instanceof Error?b.message:String(b)})}}return e.NextResponse.json({uploaded:z,skipped:A,errors:B},{status:B.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}){try{let a,{path:c}=await b,d=u(c),f=i().parse(d).root;if(d===f||d.replace(/[\\/]+$/,"")===f.replace(/[\\/]+$/,""))return e.NextResponse.json({error:"Cannot delete root"},{status:400});try{a=g().lstatSync(d)}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return e.NextResponse.json({error:"Not found"},{status:404});throw b}return a.isDirectory()?g().rmSync(d,{recursive:!0,force:!1}):g().unlinkSync(d),e.NextResponse.json({ok:!0})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}function A(a,b){let c=(0,o.fu)(a),d=g().createReadStream(a,{fd:c,autoClose:!0,...b??{}}),e=!1;return new ReadableStream({start(a){d.on("data",b=>{if(!e)try{a.enqueue(new Uint8Array(b))}catch{e=!0,d.destroy()}}),d.once("end",()=>{if(!e){e=!0;try{a.close()}catch{}}}),d.once("error",b=>{if(!e){e=!0;try{a.error(b)}catch{}}})},cancel(){e=!0,d.destroy()}})}function B(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()}`)}`}function C(a,b,c,d,e=!1){let f={"Content-Type":c,"Cache-Control":"no-cache","Accept-Ranges":"bytes","Content-Disposition":B(a,e)};if(!d)return new Response(A(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,i=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),i=b.size-1}if(!Number.isFinite(h)||!Number.isFinite(i)||h<0||i<h||h>=b.size)return new Response(null,{status:416,headers:{...f,"Content-Range":`bytes */${b.size}`}});let j=(i=Math.min(i,b.size-1))-h+1;return new Response(A(a,{start:h,end:i}),{status:206,headers:{...f,"Content-Length":String(j),"Content-Range":`bytes ${h}-${i}/${b.size}`}})}async function D(a,{params:b}){try{var d,f,h;let p,r,{path:s}=await b,v=u(s),w=(d=a.nextUrl.searchParams.get("type")??"list",G.has(d)?d:null);if(!w)return e.NextResponse.json({error:"Invalid file request type"},{status:400});let y=a.nextUrl.searchParams.get("sessionId"),z=await (0,j.mc)(),A=(0,j.A$)(v,z),D=!A&&"list"!==w&&await (0,n.Iq)(v,y);if(!A&&!D)return e.NextResponse.json({error:"Access denied"},{status:403});let H=(0,o.iM)(v,z);if("not-found"===H.kind)return e.NextResponse.json({error:"Not found"},{status:404});if("ok"===H.kind)p=H.realPath,r=H.stat;else{if("denied"===H.kind||!D||!(0,o.hI)(v,H.realPath))return e.NextResponse.json({error:"Access denied"},{status:403});p=H.realPath,r=H.stat}if("read"===w){if(!r.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(p);if(b){if(r.size>(0,l.le)().imagePreviewMaxBytes)return e.NextResponse.json({error:"Image too large (>10MB)"},{status:413});return C(p,r,b,a.headers.get("range"))}let c=(0,k.X)(p);if(c)return C(p,r,c,a.headers.get("range"));let d=(0,k.oC)(p);if(d)return C(p,r,d,a.headers.get("range"));if(r.size>(0,l.le)().textPreviewMaxBytes)return e.NextResponse.json({error:"File too large for preview (>256KB)"},{status:413});let f=(0,o.fu)(p);try{let a=g().readFileSync(f,"utf-8"),b=t(p);return e.NextResponse.json({content:a,language:b,size:r.size,mtimeMs:r.mtimeMs})}finally{g().closeSync(f)}}if("download"===w){if(r.isDirectory())try{let a=(0,q.Wd)(p),b=`${i().basename(p)||"folder"}.tar.gz`;return new Response(a,{headers:{"Content-Type":"application/gzip","Content-Disposition":B(b,!0),"Cache-Control":"no-cache"}})}catch(a){return x(a)}if(!r.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let b=(0,k.cV)(p)||(0,k.X)(p)||(0,k.oC)(p)||"application/octet-stream";return C(p,r,b,a.headers.get("range"),!0)}if("meta"===w){if(!r.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.oC)(p);return e.NextResponse.json({size:r.size,mtimeMs:r.mtimeMs,language:t(p),mime:a||b||c||"text/plain",previewKind:(0,k.Ac)(p)})}if("preview"===w){if(!r.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(r.size>(0,l.le)().docxPreviewMaxBytes)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">
@@ -43,7 +43,7 @@
43
43
  ${f}
44
44
  </main>
45
45
  </body>
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"===v){if(!q.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=null,b=q.mtimeMs,c=q.size,d=new ReadableStream({start(d){let e=(a,b)=>{let c=`event: ${a}
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"===w){if(!r.isFile())return e.NextResponse.json({error:"Not a file"},{status:400});let a=null,b=r.mtimeMs,c=r.size,d=new ReadableStream({start(d){let e=(a,b)=>{let c=`event: ${a}
47
47
  data: ${JSON.stringify(b)}
48
48
 
49
- `;try{d.enqueue(new TextEncoder().encode(c))}catch{}};e("connected",{filePath:u});try{(a=g().watch(o,()=>{try{let a=g().statSync(o);if(a.mtimeMs===b&&a.size===c)return;b=a.mtimeMs,c=a.size,e("change",{mtime:a.mtime.toISOString(),size:a.size})}catch{e("change",{mtime:new Date().toISOString(),size:0})}})).on("error",()=>{try{d.close()}catch{}})}catch{e("error",{message:"Failed to watch file"}),d.close()}},cancel(){try{a?.close()}catch{}}});return new Response(d,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}if(!q.isDirectory())return e.NextResponse.json({error:"Not a directory"},{status:400});let H=g().readdirSync(o,{withFileTypes:!0}).filter(a=>!C.has(a.name)&&!D.some(b=>a.name.endsWith(b))).flatMap(a=>{let b=(0,l.w)(a,i().join(o,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:H,path:u})}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")},4984:a=>{a.exports=require("readline")},6954:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(1304),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/files/[...path]/route",pathname:"/api/files/[...path]",filename:"route",bundlePath:"app/api/files/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/files/[...path]/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/files/[...path]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},26238:a=>{a.exports=require("node:stream")},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")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49180:(a,b,c)=>{c.d(b,{ah:()=>f,iX:()=>h,j1:()=>i});var d=c(50593);let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function f(a){return!!a&&e.test(a)}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=(0,d.Nw)(b),e=c.startsWith("/")?[c,`file://${c}`]:[c];for(let b of new Set([(0,d.Nw)(a),(0,d.Nw)((0,d.ex)(a))]))for(let a of e){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&&"bashExecution"===b.message.role&&b.message.fullOutputPath===a)}},54968:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$:()=>l});var e=c(23211),f=c(80547),g=c(1060),h=c(400),i=c(40402),j=c(37594),k=a([f,i,j]);[f,i,j]=k.then?(await k)():k;let m={resolveSessionPath:i.os,requireWritableSession:j.Yz,isReadOnly:j.mB.isReadOnly,readSessionHeader:i.eP,getAllowedFileRoots:f.mc,saveFile:h.OJ,isFilePathAllowed:f.A$,getBinaryMime:a=>(0,g.cV)(a)||(0,g.X)(a)||(0,g.oC)(a)};async function l(a,b,c={}){let d={...m,...c};try{let c=(0,f.Nw)(b);if(!c.startsWith("/")&&!(0,f.uK)(c))return e.NextResponse.json({error:"Save target must be absolute"},{status:400});let g=a.nextUrl.searchParams.get("sessionId");if(!g)return e.NextResponse.json({error:"sessionId is required"},{status:400});let h=await a.json().catch(()=>null);if("string"!=typeof h?.content||"number"!=typeof h.baseline?.mtimeMs||!Number.isFinite(h.baseline.mtimeMs)||h.baseline.mtimeMs<0||"number"!=typeof h.baseline?.size||!Number.isFinite(h.baseline.size)||h.baseline.size<0)return e.NextResponse.json({error:"Invalid save request"},{status:400});let i=await d.resolveSessionPath(g);if(!i)return e.NextResponse.json({error:"Session not found"},{status:404});try{await d.requireWritableSession(g,d.isReadOnly)}catch(a){if(a instanceof j.C9)return e.NextResponse.json({error:a.message},{status:403});throw a}let k=d.readSessionHeader(i);if(!k?.cwd)return e.NextResponse.json({error:"Session cwd not found"},{status:404});let l={target:b,cwd:k.cwd,sourceSessionId:g,allowedRoots:await d.getAllowedFileRoots(),content:h.content,baseline:{mtimeMs:h.baseline.mtimeMs,size:h.baseline.size},isAllowed:d.isFilePathAllowed,getBinaryMime:d.getBinaryMime},m=d.saveFile(l);return e.NextResponse.json({success:!0,...m})}catch(a){if(a instanceof h.Sk){let b={"bad-request":400,forbidden:403,"not-found":404,conflict:409,"too-large":413}[a.code];return"conflict"===a.code?e.NextResponse.json({error:"File changed externally",baseline:JSON.parse(a.message)},{status:b}):e.NextResponse.json({error:a.message},{status:b})}return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},55484:(a,b,c)=>{c.d(b,{Ey:()=>i,Gu:()=>k,SI:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=new Set(["error","overwrite","skip"]);function i(a){let b=a??"error";return h.has(b)?b:null}function j(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 k(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")},60601:(a,b,c)=>{c.d(b,{fu:()=>m,hI:()=>l,iM:()=>j});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(400);function i(a){let b=a?.code;return"ENOENT"===b||"ENOTDIR"===b}function j(a,b){let c,d;try{c=e().realpathSync(a)}catch(a){if(i(a))return{kind:"not-found"};return{kind:"denied"}}try{d=e().statSync(c)}catch(a){if(i(a))return{kind:"not-found"};return{kind:"denied"}}let f=!1;for(let a of b){let b;try{b=e().realpathSync(a)}catch{continue}if(f=!0,c===b||(0,h.j0)(c,b))return{kind:"ok",realPath:c,stat:d}}return f?{kind:"outside-roots",realPath:c,stat:d}:{kind:"denied"}}function k(a){return"win32"===process.platform?a.toLowerCase():a}function l(a,b){try{return k(g().resolve(a))===k(b)}catch{return!1}}function m(a){let b="number"==typeof e().constants.O_NOFOLLOW?e().constants.O_NOFOLLOW:0,c=e().openSync(a,e().constants.O_RDONLY|b);try{if(!e().fstatSync(c).isFile())throw Error("Read path is not a regular file");return c}catch(a){try{e().closeSync(c)}catch{}throw a}}},62228:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},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)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{a.exports=require("node:path")},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}}},89477:a=>{a.exports=require("node:fs")},93089:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LO:()=>y,Wd:()=>x,c1:()=>t,cb:()=>v,nf:()=>A,ox:()=>w,wp:()=>s,xO:()=>u});var e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(95398),j=c(26238),k=c(80547),l=a([k]);k=(l.then?(await l)():l)[0];let z=new Set([".git",".pi",".next","node_modules","dist","build","coverage","__pycache__",".pytest_cache",".mypy_cache",".turbo",".cache","target","vendor"]);class A extends Error{constructor(a,b){super(b),this.code=a}}function m(a){return a instanceof Set?a:new Set(a)}function n(a){return!a||"."===a||".."===a||a.includes("\0")?"Invalid name":a.includes("/")||a.includes("\\")||h().basename(a)!==a?"Name must not contain a path":z.has(a)||a.startsWith(".pi-save-")?"Protected name is not allowed":".env"===a||a.startsWith(".env.")&&".env.example"!==a?"Environment files are not allowed":null}function o(a,b){let c=a?.code;if("ENOENT"===c)throw new A("not-found",b);if("EACCES"===c||"EPERM"===c)throw new A("forbidden","Access denied");if("EEXIST"===c)throw new A("conflict","Already exists");throw a}function p(a){let b=new Set;for(let c of m(a))try{b.add(f().realpathSync(c))}catch{}return b}function q(a,b){let c,d;if(!(0,k.A$)(a,m(b)))throw new A("forbidden","Access denied");try{c=f().statSync(a)}catch(a){return o(a,"Directory not found")}if(!c.isDirectory())throw new A("bad-request","Target is not a directory");try{d=f().realpathSync(a)}catch(a){return o(a,"Directory not found")}if(!(0,k.A$)(d,p(b)))throw new A("forbidden","Access denied");return d}function r(a,b){let c=a;for(;;){let a;try{a=f().lstatSync(c)}catch(a){return o(a,"Path not found")}if(a.isSymbolicLink())throw new A("forbidden","Symbolic links are not allowed");if(c===b)break;let d=h().dirname(c);if(d===c)break;c=d}}function s(a,b,c){let d=n(b);if(d)throw new A("bad-request",d);let e=q(a,c),g=h().join(e,b);if(!(0,k.A$)(g,p(c)))throw new A("forbidden","Access denied");try{f().writeFileSync(g,Buffer.alloc(0),{flag:"wx",mode:420})}catch(a){return o(a,"Failed to create file")}return{path:g,name:b}}function t(a,b,c){let d=n(b);if(d)throw new A("bad-request",d);let e=q(a,c),g=h().join(e,b);if(!(0,k.A$)(g,p(c)))throw new A("forbidden","Access denied");try{f().mkdirSync(g,{recursive:!1,mode:493})}catch(a){return o(a,"Failed to create directory")}return{path:g,name:b}}function u(a,b,c){let d,e,g=n(b);if(g)throw new A("bad-request",g);let i=m(c);if(!(0,k.A$)(a,i))throw new A("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new A("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}let j=p(c);if(!(0,k.A$)(e,j))throw new A("forbidden","Access denied");let l=h().dirname(e);r(l,l);let q=h().join(l,b);if(q===e)return{path:e,name:b};if(!(0,k.A$)(q,j))throw new A("forbidden","Access denied");if(f().existsSync(q))throw new A("conflict","Already exists");try{f().renameSync(e,q)}catch(a){return o(a,"Rename failed")}return{path:q,name:b}}function v(a,b,c){let d,e,g=m(c),i=p(c);if(!(0,k.A$)(a,g))throw new A("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new A("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}if(!(0,k.A$)(e,i))throw new A("forbidden","Access denied");r(h().dirname(e),e);let j=q(b,c),l=h().join(j,h().basename(e));if(l===e)return{path:e,name:h().basename(e)};if(!(0,k.A$)(l,i))throw new A("forbidden","Access denied");if(d.isDirectory()){let a=h().relative(e,j);if(""===a||!a.startsWith("..")&&".."!==a&&!h().isAbsolute(a))throw new A("bad-request","Cannot move a directory into itself")}if(f().existsSync(l))throw new A("conflict","Already exists");try{f().renameSync(e,l)}catch(a){return o(a,"Move failed")}return{path:l,name:h().basename(l)}}function w(a,b,c){let d,e,g=m(c),i=p(c);if(!(0,k.A$)(a,g))throw new A("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new A("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}if(!(0,k.A$)(e,i))throw new A("forbidden","Access denied");r(h().dirname(e),e);let j=q(b,c),l=h().join(j,h().basename(e));if(l===e)throw new A("bad-request","Cannot copy onto itself");if(!(0,k.A$)(l,i))throw new A("forbidden","Access denied");if(f().existsSync(l))throw new A("conflict","Already exists");try{d.isDirectory()?f().cpSync(e,l,{recursive:!0,dereference:!1}):f().copyFileSync(e,l,f().constants.COPYFILE_EXCL)}catch(a){return o(a,"Copy failed")}return{path:l,name:h().basename(l)}}function x(a){let b=h().dirname(a),c=h().basename(a),d=(0,i.spawn)("tar",["-czf","-","-C",b,c],{stdio:["ignore","pipe","pipe"]});if(!d.stdout)throw d.kill(),new A("bad-request","Failed to start archive");return d.stderr?.resume(),d.on("error",()=>{}),j.Readable.toWeb(d.stdout)}function y(a){switch(a){case"bad-request":return 400;case"forbidden":return 403;case"not-found":return 404;case"conflict":return 409;default:return 500}}d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")},95398:a=>{a.exports=require("node:child_process")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,5582,7594],()=>b(b.s=6954));module.exports=c})();
49
+ `;try{d.enqueue(new TextEncoder().encode(c))}catch{}};e("connected",{filePath:v});try{(a=g().watch(p,()=>{try{let a=g().statSync(p);if(a.mtimeMs===b&&a.size===c)return;b=a.mtimeMs,c=a.size,e("change",{mtime:a.mtime.toISOString(),size:a.size})}catch{e("change",{mtime:new Date().toISOString(),size:0})}})).on("error",()=>{try{d.close()}catch{}})}catch{e("error",{message:"Failed to watch file"}),d.close()}},cancel(){try{a?.close()}catch{}}});return new Response(d,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}if(!r.isDirectory())return e.NextResponse.json({error:"Not a directory"},{status:400});let I=g().readdirSync(p,{withFileTypes:!0}).filter(a=>!E.has(a.name)&&!F.some(b=>a.name.endsWith(b))).flatMap(a=>{let b=(0,m.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:I,path:v})}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")},4984:a=>{a.exports=require("readline")},6954:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(1304),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/files/[...path]/route",pathname:"/api/files/[...path]",filename:"route",bundlePath:"app/api/files/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/files/[...path]/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/files/[...path]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},26238:a=>{a.exports=require("node:stream")},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")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49180:(a,b,c)=>{c.d(b,{ah:()=>f,iX:()=>h,j1:()=>i});var d=c(50593);let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function f(a){return!!a&&e.test(a)}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=(0,d.Nw)(b),e=c.startsWith("/")?[c,`file://${c}`]:[c];for(let b of new Set([(0,d.Nw)(a),(0,d.Nw)((0,d.ex)(a))]))for(let a of e){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&&"bashExecution"===b.message.role&&b.message.fullOutputPath===a)}},54968:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$:()=>l});var e=c(23211),f=c(80547),g=c(1060),h=c(400),i=c(40402),j=c(37594),k=a([f,i,j]);[f,i,j]=k.then?(await k)():k;let m={resolveSessionPath:i.os,requireWritableSession:j.Yz,isReadOnly:j.mB.isReadOnly,readSessionHeader:i.eP,getAllowedFileRoots:f.mc,saveFile:h.OJ,isFilePathAllowed:f.A$,getBinaryMime:a=>(0,g.cV)(a)||(0,g.X)(a)||(0,g.oC)(a)};async function l(a,b,c={}){let d={...m,...c};try{let c=(0,f.Nw)(b);if(!c.startsWith("/")&&!(0,f.uK)(c))return e.NextResponse.json({error:"Save target must be absolute"},{status:400});let g=a.nextUrl.searchParams.get("sessionId");if(!g)return e.NextResponse.json({error:"sessionId is required"},{status:400});let h=await a.json().catch(()=>null);if("string"!=typeof h?.content||"number"!=typeof h.baseline?.mtimeMs||!Number.isFinite(h.baseline.mtimeMs)||h.baseline.mtimeMs<0||"number"!=typeof h.baseline?.size||!Number.isFinite(h.baseline.size)||h.baseline.size<0)return e.NextResponse.json({error:"Invalid save request"},{status:400});let i=await d.resolveSessionPath(g);if(!i)return e.NextResponse.json({error:"Session not found"},{status:404});try{await d.requireWritableSession(g,d.isReadOnly)}catch(a){if(a instanceof j.C9)return e.NextResponse.json({error:a.message},{status:403});throw a}let k=d.readSessionHeader(i);if(!k?.cwd)return e.NextResponse.json({error:"Session cwd not found"},{status:404});let l={target:b,cwd:k.cwd,sourceSessionId:g,allowedRoots:await d.getAllowedFileRoots(),content:h.content,baseline:{mtimeMs:h.baseline.mtimeMs,size:h.baseline.size},isAllowed:d.isFilePathAllowed,getBinaryMime:d.getBinaryMime},m=d.saveFile(l);return e.NextResponse.json({success:!0,...m})}catch(a){if(a instanceof h.Sk){let b={"bad-request":400,forbidden:403,"not-found":404,conflict:409,"too-large":413}[a.code];return"conflict"===a.code?e.NextResponse.json({error:"File changed externally",baseline:JSON.parse(a.message)},{status:b}):e.NextResponse.json({error:a.message},{status:b})}return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},55484:(a,b,c)=>{c.d(b,{Ey:()=>i,Gu:()=>k,SI:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=new Set(["error","overwrite","skip"]);function i(a){let b=a??"error";return h.has(b)?b:null}function j(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 k(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")},60601:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{fu:()=>p,hI:()=>o,iM:()=>m});var e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(400),j=c(80547),k=a([j]);function l(a){let b=a?.code;return"ENOENT"===b||"ENOTDIR"===b}function m(a,b){let c,d;try{c=f().realpathSync(a)}catch(a){if(l(a))return{kind:"not-found"};return{kind:"denied"}}try{d=f().statSync(c)}catch(a){if(l(a))return{kind:"not-found"};return{kind:"denied"}}if((0,j.bk)())return{kind:"ok",realPath:c,stat:d};let e=!1;for(let a of b){let b;try{b=f().realpathSync(a)}catch{continue}if(e=!0,c===b||(0,i.j0)(c,b))return{kind:"ok",realPath:c,stat:d}}return e?{kind:"outside-roots",realPath:c,stat:d}:{kind:"denied"}}function n(a){return"win32"===process.platform?a.toLowerCase():a}function o(a,b){try{return n(h().resolve(a))===n(b)}catch{return!1}}function p(a){let b="number"==typeof f().constants.O_NOFOLLOW?f().constants.O_NOFOLLOW:0,c=f().openSync(a,f().constants.O_RDONLY|b);try{if(!f().fstatSync(c).isFile())throw Error("Read path is not a regular file");return c}catch(a){try{f().closeSync(c)}catch{}throw a}}j=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},62228:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},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)}})},74940:(a,b,c)=>{c.d(b,{le:()=>f});var d=c(68524);function e(a,b){return"number"==typeof a&&Number.isFinite(a)&&a>0?Math.floor(a):b}function f(a){var b;let c;return{indexMaxFiles:e((c="object"!=typeof(b=(0,d.rV)(a).fileConfig)||null===b||Array.isArray(b)?{}:b).indexMaxFiles,5e3),indexGitHardCap:e(c.indexGitHardCap,2e5),indexWalkHardCap:e(c.indexWalkHardCap,5e4),indexMaxWalkDepth:e(c.indexMaxWalkDepth,8),atResultLimit:e(c.atResultLimit,20),textPreviewMaxBytes:e(c.textPreviewMaxBytes,0xa00000),imagePreviewMaxBytes:e(c.imagePreviewMaxBytes,0x3200000),docxPreviewMaxBytes:e(c.docxPreviewMaxBytes,0xa00000),browseMaxEntries:e(c.browseMaxEntries,400)}}},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{a.exports=require("node:path")},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}}},89477:a=>{a.exports=require("node:fs")},93089:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LO:()=>y,Wd:()=>x,c1:()=>t,cb:()=>v,nf:()=>z,ox:()=>w,wp:()=>s,xO:()=>u});var e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(95398),j=c(26238),k=c(80547),l=a([k]);k=(l.then?(await l)():l)[0];class z extends Error{constructor(a,b){super(b),this.code=a}}function m(a){return a instanceof Set?a:new Set(a)}function n(a){return!a||"."===a||".."===a||a.includes("\0")?"Invalid name":a.includes("/")||a.includes("\\")||h().basename(a)!==a?"Name must not contain a path":null}function o(a,b){let c=a?.code;if("ENOENT"===c)throw new z("not-found",b);if("EACCES"===c||"EPERM"===c)throw new z("forbidden","Access denied");if("EEXIST"===c)throw new z("conflict","Already exists");throw a}function p(a){let b=new Set;for(let c of m(a))try{b.add(f().realpathSync(c))}catch{}return b}function q(a,b){let c,d;if(!(0,k.A$)(a,m(b)))throw new z("forbidden","Access denied");try{c=f().statSync(a)}catch(a){return o(a,"Directory not found")}if(!c.isDirectory())throw new z("bad-request","Target is not a directory");try{d=f().realpathSync(a)}catch(a){return o(a,"Directory not found")}if(!(0,k.A$)(d,p(b)))throw new z("forbidden","Access denied");return d}function r(a,b){let c=a;for(;;){let a;try{a=f().lstatSync(c)}catch(a){return o(a,"Path not found")}if(a.isSymbolicLink())throw new z("forbidden","Symbolic links are not allowed");if(c===b)break;let d=h().dirname(c);if(d===c)break;c=d}}function s(a,b,c){let d=n(b);if(d)throw new z("bad-request",d);let e=q(a,c),g=h().join(e,b);if(!(0,k.A$)(g,p(c)))throw new z("forbidden","Access denied");try{f().writeFileSync(g,Buffer.alloc(0),{flag:"wx",mode:420})}catch(a){return o(a,"Failed to create file")}return{path:g,name:b}}function t(a,b,c){let d=n(b);if(d)throw new z("bad-request",d);let e=q(a,c),g=h().join(e,b);if(!(0,k.A$)(g,p(c)))throw new z("forbidden","Access denied");try{f().mkdirSync(g,{recursive:!1,mode:493})}catch(a){return o(a,"Failed to create directory")}return{path:g,name:b}}function u(a,b,c){let d,e,g=n(b);if(g)throw new z("bad-request",g);let i=m(c);if(!(0,k.A$)(a,i))throw new z("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new z("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}let j=p(c);if(!(0,k.A$)(e,j))throw new z("forbidden","Access denied");let l=h().dirname(e);r(l,l);let q=h().join(l,b);if(q===e)return{path:e,name:b};if(!(0,k.A$)(q,j))throw new z("forbidden","Access denied");if(f().existsSync(q))throw new z("conflict","Already exists");try{f().renameSync(e,q)}catch(a){return o(a,"Rename failed")}return{path:q,name:b}}function v(a,b,c){let d,e,g=m(c),i=p(c);if(!(0,k.A$)(a,g))throw new z("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new z("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}if(!(0,k.A$)(e,i))throw new z("forbidden","Access denied");r(h().dirname(e),e);let j=q(b,c),l=h().join(j,h().basename(e));if(l===e)return{path:e,name:h().basename(e)};if(!(0,k.A$)(l,i))throw new z("forbidden","Access denied");if(d.isDirectory()){let a=h().relative(e,j);if(""===a||!a.startsWith("..")&&".."!==a&&!h().isAbsolute(a))throw new z("bad-request","Cannot move a directory into itself")}if(f().existsSync(l))throw new z("conflict","Already exists");try{f().renameSync(e,l)}catch(a){return o(a,"Move failed")}return{path:l,name:h().basename(l)}}function w(a,b,c){let d,e,g=m(c),i=p(c);if(!(0,k.A$)(a,g))throw new z("forbidden","Access denied");try{d=f().lstatSync(a)}catch(a){return o(a,"Not found")}if(d.isSymbolicLink())throw new z("forbidden","Symbolic links are not allowed");try{e=f().realpathSync(a)}catch(a){return o(a,"Not found")}if(!(0,k.A$)(e,i))throw new z("forbidden","Access denied");r(h().dirname(e),e);let j=q(b,c),l=h().join(j,h().basename(e));if(l===e)throw new z("bad-request","Cannot copy onto itself");if(!(0,k.A$)(l,i))throw new z("forbidden","Access denied");if(f().existsSync(l))throw new z("conflict","Already exists");try{d.isDirectory()?f().cpSync(e,l,{recursive:!0,dereference:!1}):f().copyFileSync(e,l,f().constants.COPYFILE_EXCL)}catch(a){return o(a,"Copy failed")}return{path:l,name:h().basename(l)}}function x(a){let b=h().dirname(a),c=h().basename(a),d=(0,i.spawn)("tar",["-czf","-","-C",b,c],{stdio:["ignore","pipe","pipe"]});if(!d.stdout)throw d.kill(),new z("bad-request","Failed to start archive");return d.stderr?.resume(),d.on("error",()=>{}),j.Readable.toWeb(d.stdout)}function y(a){switch(a){case"bad-request":return 400;case"forbidden":return 403;case"not-found":return 404;case"conflict":return 409;default:return 500}}d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")},95398:a=>{a.exports=require("node:child_process")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,5582,7594],()=>b(b.s=6954));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=4133,a.ids=[4133],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},716:a=>{a.exports=require("node:crypto")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4984:a=>{a.exports=require("readline")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},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")},43168:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(89516),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/project-assets/route",pathname:"/api/project-assets",filename:"route",bundlePath:"app/api/project-assets/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/project-assets/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/project-assets/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},62228:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.wz)(b),b}function m(a){let b=(a.replace(/\\/g,"/").split("/").pop()??"file").replace(/\0/g,"").replace(/^\.+/,"").trim()||"file";if(b.length<=180)return b;let c=b.lastIndexOf(".");if(c>0&&b.length-c<=20){let a=b.slice(c);return b.slice(0,180-a.length)+a}return b.slice(0,180)}function n(a,b,c=(0,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>q,Nw:()=>j.Nw,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let r=/^[a-zA-Z]:[\\/]/;function o(a){return r.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(a,b){for(let c of b){let b=o(a)||o(c),d=b?h().win32:h(),e=b?"\\":h().sep,f=d.resolve(a),g=d.resolve(c),i=b?f.toLowerCase():f,j=b?g.toLowerCase():g,k=j.endsWith(e)?j:j+e;if(i===j||i.startsWith(k))return!0}return!1}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{a.exports=require("node:path")},89477:a=>{a.exports=require("node:fs")},89516:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m,POST:()=>n,dynamic:()=>o});var e=c(23211),f=c(89477),g=c(86697),h=c(80547),i=a([h]);h=(i.then?(await i)():i)[0];let o="force-dynamic",p=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/;function j(a){return(0,g.join)((0,g.resolve)(a),".agents","skills")}async function k(a){if("string"!=typeof a||!a)return"cwd is required";let b=await (0,h.mc)();return(0,h.A$)(a,b)?null:"cwd is not in allowed roots"}function l(a){try{return(0,f.readFileSync)(a,"utf8")}catch{return""}}async function m(a){try{let b=new URL(a.url).searchParams.get("cwd")??"",c=await k(b);if(c)return e.NextResponse.json({error:c},{status:403});let d=(0,g.join)((0,g.resolve)(b),"AGENTS.md"),h=(0,f.existsSync)(d)?l(d):"",i=function(a){let b,c=j(a);if(!(0,f.existsSync)(c))return[];try{b=(0,f.readdirSync)(c)}catch{return[]}let d=[];for(let a of b){let b=(0,g.join)(c,a);try{if(!(0,f.statSync)(b).isDirectory())continue}catch{continue}let e=(0,g.join)(b,"SKILL.md");if(!(0,f.existsSync)(e))continue;let h=l(e);d.push({name:a,enabled:!/^\s*disable-model-invocation:\s*true\s*$/m.test(h),content:h})}return d.sort((a,b)=>a.name.localeCompare(b.name))}(b);return e.NextResponse.json({rulesPath:d,rulesExists:(0,f.existsSync)(d),rulesContent:h,skills:i},{headers:{"Cache-Control":"no-store"}})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function n(a){try{let b=await a.json().catch(()=>({})),c="string"==typeof b.cwd?b.cwd:"",d=await k(c);if(d)return e.NextResponse.json({error:d},{status:403});let h=b.kind;if("rules"===h){let a=b.content;if("string"!=typeof a)return e.NextResponse.json({error:"content must be a string"},{status:400});if(Buffer.byteLength(a,"utf8")>524288)return e.NextResponse.json({error:"content too large"},{status:413});let d=(0,g.join)((0,g.resolve)(c),"AGENTS.md");(0,f.mkdirSync)((0,g.dirname)(d),{recursive:!0});let h=`${d}.${process.pid}.${Date.now()}.tmp`;try{(0,f.writeFileSync)(h,a,{flag:"wx",mode:420}),(0,f.renameSync)(h,d)}catch(a){try{(0,f.unlinkSync)(h)}catch{}throw a}return e.NextResponse.json({ok:!0})}if("skill"===h){let a,d,h=b.action,i="string"==typeof b.name?b.name.trim():"";if(!i||!p.test(i))return e.NextResponse.json({error:"invalid skill name"},{status:400});let k=(0,g.join)(j(c),i),m=(0,g.join)(k,"SKILL.md");if(a=(0,g.resolve)(c),d=(0,g.relative)(a,(0,g.resolve)(m)),""===d||d.startsWith("..")||(0,g.resolve)(m).startsWith(`${a}${g.sep}`))return e.NextResponse.json({error:"skill path escapes project"},{status:403});if("create"===h){if((0,f.existsSync)(m))return e.NextResponse.json({error:"skill already exists"},{status:409});(0,f.mkdirSync)(k,{recursive:!0});let a=`---
1
+ "use strict";(()=>{var a={};a.id=4133,a.ids=[4133],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},716:a=>{a.exports=require("node:crypto")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4984:a=>{a.exports=require("readline")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},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")},43168:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(89516),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/project-assets/route",pathname:"/api/project-assets",filename:"route",bundlePath:"app/api/project-assets/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/project-assets/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/project-assets/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},62228:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.wz)(b),b}function m(a){let b=(a.replace(/\\/g,"/").split("/").pop()??"file").replace(/\0/g,"").replace(/^\.+/,"").trim()||"file";if(b.length<=180)return b;let c=b.lastIndexOf(".");if(c>0&&b.length-c<=20){let a=b.slice(c);return b.slice(0,180-a.length)+a}return b.slice(0,180)}function n(a,b,c=(0,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>r,Nw:()=>j.Nw,bk:()=>q,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let s=/^[a-zA-Z]:[\\/]/;function o(a){return s.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(){return!0}function r(a,b){return!0}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{a.exports=require("node:path")},89477:a=>{a.exports=require("node:fs")},89516:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m,POST:()=>n,dynamic:()=>o});var e=c(23211),f=c(89477),g=c(86697),h=c(80547),i=a([h]);h=(i.then?(await i)():i)[0];let o="force-dynamic",p=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/;function j(a){return(0,g.join)((0,g.resolve)(a),".agents","skills")}async function k(a){if("string"!=typeof a||!a)return"cwd is required";let b=await (0,h.mc)();return(0,h.A$)(a,b)?null:"cwd is not in allowed roots"}function l(a){try{return(0,f.readFileSync)(a,"utf8")}catch{return""}}async function m(a){try{let b=new URL(a.url).searchParams.get("cwd")??"",c=await k(b);if(c)return e.NextResponse.json({error:c},{status:403});let d=(0,g.join)((0,g.resolve)(b),"AGENTS.md"),h=(0,f.existsSync)(d)?l(d):"",i=function(a){let b,c=j(a);if(!(0,f.existsSync)(c))return[];try{b=(0,f.readdirSync)(c)}catch{return[]}let d=[];for(let a of b){let b=(0,g.join)(c,a);try{if(!(0,f.statSync)(b).isDirectory())continue}catch{continue}let e=(0,g.join)(b,"SKILL.md");if(!(0,f.existsSync)(e))continue;let h=l(e);d.push({name:a,enabled:!/^\s*disable-model-invocation:\s*true\s*$/m.test(h),content:h})}return d.sort((a,b)=>a.name.localeCompare(b.name))}(b);return e.NextResponse.json({rulesPath:d,rulesExists:(0,f.existsSync)(d),rulesContent:h,skills:i},{headers:{"Cache-Control":"no-store"}})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function n(a){try{let b=await a.json().catch(()=>({})),c="string"==typeof b.cwd?b.cwd:"",d=await k(c);if(d)return e.NextResponse.json({error:d},{status:403});let h=b.kind;if("rules"===h){let a=b.content;if("string"!=typeof a)return e.NextResponse.json({error:"content must be a string"},{status:400});if(Buffer.byteLength(a,"utf8")>524288)return e.NextResponse.json({error:"content too large"},{status:413});let d=(0,g.join)((0,g.resolve)(c),"AGENTS.md");(0,f.mkdirSync)((0,g.dirname)(d),{recursive:!0});let h=`${d}.${process.pid}.${Date.now()}.tmp`;try{(0,f.writeFileSync)(h,a,{flag:"wx",mode:420}),(0,f.renameSync)(h,d)}catch(a){try{(0,f.unlinkSync)(h)}catch{}throw a}return e.NextResponse.json({ok:!0})}if("skill"===h){let a,d,h=b.action,i="string"==typeof b.name?b.name.trim():"";if(!i||!p.test(i))return e.NextResponse.json({error:"invalid skill name"},{status:400});let k=(0,g.join)(j(c),i),m=(0,g.join)(k,"SKILL.md");if(a=(0,g.resolve)(c),d=(0,g.relative)(a,(0,g.resolve)(m)),""===d||d.startsWith("..")||(0,g.resolve)(m).startsWith(`${a}${g.sep}`))return e.NextResponse.json({error:"skill path escapes project"},{status:403});if("create"===h){if((0,f.existsSync)(m))return e.NextResponse.json({error:"skill already exists"},{status:409});(0,f.mkdirSync)(k,{recursive:!0});let a=`---
2
2
  name: ${i}
3
3
  description: ${i} skill
4
4
  ---
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=9968,a.ids=[9968],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},400:(a,b,c)=>{"use strict";c.d(b,{OJ:()=>o,Sk:()=>j,j0:()=>m});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(716);let i="true"===process.env.SAVE_FSYNC;class j extends Error{constructor(a,b){super(b),this.code=a}}function k(a){return(a.split(/[\\/]+/).filter(Boolean).pop()??"").startsWith(".pi-save-")?"目标路径包含受保护名称":null}function l(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function m(a,b,c=l(a)||l(b)){let d=c?g().win32:g(),e=d.resolve(a),f=d.resolve(b),h=c?e.toLowerCase():e,i=c?f.toLowerCase():f;return h!==i&&h.startsWith(i.endsWith(d.sep)?i:i+d.sep)}function n(a,b){let c=a?.code;if("ENOENT"===c)throw new j("not-found",b);if("EACCES"===c||"EPERM"===c)throw new j("forbidden","文件访问被拒绝");throw a}function o(a){let b,c,d,{target:f,cwd:l,allowedRoots:o,content:p,baseline:q}=a,r=k(f);if(r)throw new j("forbidden",r);let s=function(a,b){if(!Number.isFinite(b?.mtimeMs)||b.mtimeMs<0||!Number.isFinite(b?.size)||b.size<0)throw new j("bad-request","保存请求格式无效");for(let b=0;b<a.length;b+=1){let c=a.charCodeAt(b);if(c>=55296&&c<=57343){if(c<=56319&&b+1<a.length&&a.charCodeAt(b+1)>=56320&&57343>=a.charCodeAt(b+1)){b+=1;continue}throw new j("bad-request","内容包含不可逆 UTF-8 字符")}}return Buffer.from(a,"utf8")}(p,q),t=a.isAllowed??((a,b)=>[...b].some(b=>a===b||a.startsWith(`${b}/`)||a.startsWith(`${b}\\`)));if(!t(f,o))throw new j("forbidden","目标不在授权目录内");try{b=e().lstatSync(f)}catch(a){return n(a,"目标文件不存在")}if(b.isSymbolicLink())throw new j("forbidden","目标不能是符号链接");if(!b.isFile())throw new j("bad-request","目标不是常规文件");try{if(e().realpathSync(l),c=e().realpathSync(f),d=new Set([...o].map(a=>e().realpathSync(a))),k(c)||!t(c,d))throw new j("forbidden","目标不在授权目录内");for(let a=g().dirname(f);m(a,l);a=g().dirname(a))if(e().lstatSync(a).isSymbolicLink())throw new j("forbidden","目标父目录不能是符号链接")}catch(a){if(a instanceof j)throw a;return n(a,"目标路径不存在")}try{e().statSync(c)}catch(a){return n(a,"目标文件不存在")}let u=g().dirname(c),v=g().join(u,`.pi-save-${process.pid}-${(0,h.randomUUID)()}`);try{if(e().writeFileSync(v,s,{flag:"wx",mode:4095&b.mode}),e().chmodSync(v,4095&b.mode),i){let a=e().openSync(v,"r+");try{e().fsyncSync(a)}finally{e().closeSync(a)}}e().renameSync(v,c)}catch(a){try{e().unlinkSync(v)}catch{}return n(a,"保存目标不存在")}let w=e().statSync(c);return{path:f,size:w.size,mtimeMs:w.mtimeMs}}},716:a=>{"use strict";a.exports=require("node:crypto")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},9209:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>U,patchFetch:()=>T,routeModule:()=>P,serverHooks:()=>S,workAsyncStorage:()=>Q,workUnitAsyncStorage:()=>R});var d={};c.r(d),c.d(d,{DELETE:()=>O,GET:()=>M,PATCH:()=>N,dynamic:()=>L});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(34556),x=c(89477),y=c(62228),z=c(86697),A=c(716),B=c(60396),C=c(60601);function D(a){if(!a||"string"!=typeof a)return!1;try{return(0,x.statSync)(a).isDirectory()}catch{return!1}}class E extends Error{constructor(a,b){super(b),this.code=a}}let F="disable-model-invocation",G={loadSkills:a=>(0,w.y)(a),agentDir:(0,B.$M)(),homeDir:(0,y.homedir)()};function H(a,b,c,d){let e=a=>a.some(a=>{var c;let d,e;try{d=(0,x.realpathSync)(a)}catch{return!1}return c=d,""!==(e=(0,z.relative)((0,z.resolve)(c),(0,z.resolve)(b)))&&".."!==e&&!e.startsWith(`..${z.sep}`)&&!(0,z.isAbsolute)(e)});return e([(0,z.join)(d.agentDir,"skills"),(0,z.join)(d.homeDir,".agents","skills")])?"global":e([(0,z.join)(c,".pi","skills"),(0,z.join)(c,".agents","skills")])?"project":"denied"}function I(a,b){return[(0,z.join)(b.agentDir,"skills"),(0,z.join)(b.homeDir,".agents","skills"),(0,z.join)(a,".pi","skills"),(0,z.join)(a,".agents","skills")]}async function J(a,b=G){let c,d,e,f,{cwd:g,filePath:h,disableModelInvocation:i}=a;if(!g||"string"!=typeof g)throw new E("bad-request","cwd required");if(!h||"string"!=typeof h)throw new E("bad-request","filePath required");if("boolean"!=typeof i)throw new E("bad-request","disableModelInvocation must be boolean");if(!(0,z.isAbsolute)(h))throw new E("bad-request","filePath must be absolute");if(!D(g))throw new E("bad-request","cwd must be an existing directory");let{skills:j}=await b.loadSkills(g);if(!j.find(a=>(0,z.resolve)(a.filePath)===(0,z.resolve)(h)))throw new E("not-found","skill not in loader list for cwd");try{c=(0,x.lstatSync)(h)}catch{throw new E("not-found","file not found")}if(c.isSymbolicLink())throw new E("forbidden","target must not be a symbolic link");if(!c.isFile())throw new E("bad-request","target is not a regular file");try{d=(0,x.realpathSync)(h)}catch{throw new E("forbidden","target path cannot be resolved")}if("denied"===H(h,d,g,b))throw new E("forbidden","skill source is not writable (package/temporary or symlink escape)");!function(a,b){let c=(0,z.dirname)(a);for(;;){let a,d=b.some(a=>(0,z.resolve)(a)===(0,z.resolve)(c));try{a=(0,x.lstatSync)(c)}catch{if(d)throw new E("not-found","file not found");if(c===(0,z.dirname)(c))break;c=(0,z.dirname)(c);continue}if(a.isSymbolicLink())throw new E("forbidden","path component must not be a symbolic link");if(d||c===(0,z.dirname)(c))break;c=(0,z.dirname)(c)}}(h,I(g,b));try{e=(0,C.fu)(d)}catch(a){if("ENOENT"===a?.code)throw new E("not-found","file not found");throw new E("forbidden","target cannot be read safely")}try{f=(0,x.readFileSync)(e,"utf8")}finally{(0,x.closeSync)(e)}let k=function(a,b){let c,d=(c=a.indexOf("\n"))>0&&13===a.charCodeAt(c-1)?"\r\n":"\n",e=function(a){let b=a.indexOf("\n");if(-1===b||"---"!==a.slice(0,b).replace(/\r$/,""))return null;let c=b+1,d=c;for(;d<=a.length;){let b=a.indexOf("\n",d),e=-1===b?a.length:b;if("---"===a.slice(d,e).replace(/\r$/,""))return{start:c,end:d};if(-1===b)break;d=b+1}return null}(a);if(!e)return b?`---${d}${F}: true${d}---${d}${a}`:a;let f=a.slice(e.start,e.end),g=RegExp(`^${F}\\s*:`,"m").test(f);if(b&&!g)return a.slice(0,e.start)+`${F}: true${d}`+a.slice(e.start);if(!b&&g){let b=f.replace(RegExp(`^${F}\\s*:.*(?:\r?
2
- )`,"m"),"");if(b!==f)return a.slice(0,e.start)+b+a.slice(e.end)}return a}(f,i),l=(0,z.dirname)(d),m=(0,z.join)(l,`.pi-skill-${process.pid}-${(0,A.randomUUID)()}`);try{if((0,x.writeFileSync)(m,k,{flag:"wx",mode:4095&c.mode}),(0,x.lstatSync)(l).isSymbolicLink())throw new E("forbidden","target directory must not be a symbolic link");let a=(0,x.lstatSync)(d);if(a.isSymbolicLink())throw new E("forbidden","target must not be a symbolic link");if(!a.isFile())throw new E("bad-request","target is not a regular file");(0,x.renameSync)(m,d)}catch(a){try{(0,x.unlinkSync)(m)}catch{}if(a instanceof E)throw a;if(a?.code==="EACCES"||a?.code==="EPERM")throw new E("forbidden","file write denied");throw a}return{success:!0}}async function K(a,b=G){let c,{cwd:d,filePath:e}=a;if(!d||"string"!=typeof d)throw new E("bad-request","cwd required");if(!e||"string"!=typeof e)throw new E("bad-request","filePath required");if(!(0,z.isAbsolute)(e))throw new E("bad-request","filePath must be absolute");if(!D(d))throw new E("bad-request","cwd must be an existing directory");let{skills:f}=await b.loadSkills(d),g=f.find(a=>(0,z.resolve)(a.filePath)===(0,z.resolve)(e));if(!g)throw new E("not-found","skill not in loader list for cwd");let h=g.baseDir;if(!h||!(0,z.isAbsolute)(h))throw new E("bad-request","skill baseDir invalid");try{c=(0,x.realpathSync)(h)}catch{throw new E("not-found","skill directory not found")}if("denied"===H((0,z.join)(h,"SKILL.md"),(0,z.join)(c,"SKILL.md"),d,b))throw new E("forbidden","skill source is not removable");let i=I(d,b).map(a=>{try{return(0,x.realpathSync)(a)}catch{return(0,z.resolve)(a)}});if(!i.some(a=>c===a||c.startsWith(a+z.sep)))throw new E("forbidden","skill directory outside allowed roots");if(i.some(a=>c===a))throw new E("forbidden","cannot remove skill root");try{(0,x.rmSync)(c,{recursive:!0,force:!1})}catch(a){if(a?.code==="ENOENT")throw new E("not-found","skill directory not found");if(a?.code==="EACCES"||a?.code==="EPERM")throw new E("forbidden","directory remove denied");throw a}return{success:!0}}let L="force-dynamic";async function M(a){let{searchParams:b}=new URL(a.url),c=b.get("cwd");if(!c)return v.NextResponse.json({error:"cwd required"},{status:400});try{return v.NextResponse.json(await (0,w.y)(c))}catch(a){return v.NextResponse.json({error:String(a)},{status:500})}}async function N(a){try{let b=await a.json();return v.NextResponse.json(await J({cwd:b.cwd??"",filePath:b.filePath??"",disableModelInvocation:b.disableModelInvocation??!1}))}catch(a){if(a instanceof E){let b="forbidden"===a.code?403:"not-found"===a.code?404:400;return v.NextResponse.json({error:a.message},{status:b})}return v.NextResponse.json({error:String(a)},{status:500})}}async function O(a){try{let b=await a.json();return v.NextResponse.json(await K({cwd:b.cwd??"",filePath:b.filePath??""}))}catch(a){if(a instanceof E){let b="forbidden"===a.code?403:"not-found"===a.code?404:400;return v.NextResponse.json({error:a.message},{status:b})}return v.NextResponse.json({error:String(a)},{status:500})}}let P=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:"app/api/skills/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/skills/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:Q,workUnitAsyncStorage:R,serverHooks:S}=P;function T(){return(0,g.patchFetch)({workAsyncStorage:Q,workUnitAsyncStorage:R})}async function U(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/skills/route";"/index"===d&&(d="/");let e=await P.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||P.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===P.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),Q=O.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>P.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!I)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await P.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},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")},33873:a=>{"use strict";a.exports=require("path")},34556:(a,b,c)=>{"use strict";c.d(b,{y:()=>p});var d=c(60396),e=c(89477),f=c(62228),g=c(86697);function h(a,b){let c=[];try{var d;let f=(0,e.readFileSync)(a,"utf8"),h=function(a){let b={},c=a.split(/\r?\n/);if(!c[0]||"---"!==c[0].replace(/\r$/,""))return b;for(let a=1;a<c.length;a++){let d=c[a].replace(/\r$/,"");if("---"===d)break;let e=/^([A-Za-z0-9_-]+):\s*(.*)$/.exec(d);e&&(b[e[1]]=e[2].trim())}return b}(f),i=(0,g.dirname)(a);return{skill:{name:h.name||function(a){if("skill.md"===(0,g.basename)(a).toLowerCase())return(0,g.basename)((0,g.dirname)(a));let b=(0,g.basename)(a);return b.endsWith(".md")?b.slice(0,-3):b}(a),description:h.description??"",filePath:a,baseDir:i,disableModelInvocation:(d=h["disable-model-invocation"],void 0!==d&&"true"===d.trim().toLowerCase()),sourceInfo:{source:"local",scope:b}},diagnostics:c}}catch(d){let b=d instanceof Error?d.message:"failed to parse skill file";return c.push({type:"warning",message:b,path:a}),{skill:null,diagnostics:c}}}function i(a,b,c,d=0){let f,j=c??new Set;if(d>16)return{skills:[],diagnostics:[]};try{let b=(0,e.realpathSync)(a);if(j.has(b))return{skills:[],diagnostics:[]};j.add(b)}catch{}let k=[],l=[];try{f=(0,e.readdirSync)(a,{withFileTypes:!0})}catch{return{skills:k,diagnostics:l}}let m=f.find(a=>"SKILL.md"===a.name);if(m){let c=(0,g.join)(a,"SKILL.md");if(function(a,b){if(a.isFile())return!0;if(a.isSymbolicLink())try{return(0,e.statSync)(b).isFile()}catch{}return!1}(m,c)){let a=h(c,b);a.skill&&k.push(a.skill),l.push(...a.diagnostics)}return{skills:k,diagnostics:l}}for(let c of f){if(c.name.startsWith(".")||"node_modules"===c.name)continue;let f=(0,g.join)(a,c.name),m=c.isDirectory(),n=c.isFile();if(c.isSymbolicLink())try{let a=(0,e.statSync)(f);m=a.isDirectory(),n=a.isFile()}catch{continue}if(m){let a=i(f,b,j,d+1);k.push(...a.skills),l.push(...a.diagnostics)}else if(n&&c.name.endsWith(".md")){let a=h(f,b);a.skill&&k.push(a.skill),l.push(...a.diagnostics)}}return{skills:k,diagnostics:l}}var j=c(29021),k=c(21820),l=c(33873);function m(a){try{let b=JSON.parse((0,j.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function n(a,b){let c=(0,l.relative)((0,l.resolve)(b),(0,l.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${l.sep}`)&&!(0,l.isAbsolute)(c)}function o(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}async function p(a){let b=(0,d.$M)(),{skills:c,diagnostics:p}=function(a){let{cwd:b,agentDir:c}=a,d=a.homeDir??(0,f.homedir)(),j=[(0,g.join)(c,"skills"),(0,g.join)(d,".agents","skills")],k=[(0,g.join)(b,".pi","skills"),(0,g.join)(b,".agents","skills"),...function(a,b){let c=[],d=(0,g.resolve)((0,g.join)(b,".agents","skills")),f=(0,g.resolve)(a),h=function(a){let b=(0,g.resolve)(a);for(;;){if((0,e.existsSync)((0,g.join)(b,".git")))return b;let a=(0,g.dirname)(b);if(a===b)return null;b=a}}(f);for(;;){let a=(0,g.join)(f,".agents","skills");if((0,g.resolve)(a)!==d&&c.push(a),h&&f===h)break;let b=(0,g.dirname)(f);if(b===f)break;f=b}return c}(b,d)],l=new Map,m=new Set,n=[],o=a=>{for(let b of(n.push(...a.diagnostics),a.skills)){let a;try{a=(0,e.realpathSync)(b.filePath)}catch{a=(0,g.resolve)(b.filePath)}if(!m.has(a)){if(l.get(b.name)){n.push({type:"collision",message:`name "${b.name}" collision`,path:b.filePath});continue}l.set(b.name,b),m.add(a)}}};for(let a of[...j,...k]){let b=j.some(b=>(0,g.resolve)(b)===(0,g.resolve)(a))?"user":"project";o(i(a,b))}for(let a of function(a){try{let b=JSON.parse((0,e.readFileSync)(a,"utf8")).skills;if(Array.isArray(b))return b.filter(a=>"string"==typeof a);if(b&&"object"==typeof b&&!Array.isArray(b)){let a=b.customDirectories;if(Array.isArray(a))return a.filter(a=>"string"==typeof a)}}catch{}return[]}((0,g.join)(c,"settings.json"))){let c=(0,g.resolve)(b,a);if(!(0,e.existsSync)(c)){n.push({type:"warning",message:"skill path does not exist",path:c});continue}try{let a=(0,e.statSync)(c),b=j.some(a=>(function(a,b){let c=(0,g.resolve)(b);if(a===c)return!0;let d=c.endsWith(g.sep)?c:`${c}${g.sep}`;return a.startsWith(d)})(c,a))?"user":"project";if(a.isDirectory())o(i(c,b));else if(a.isFile()&&c.endsWith(".md")){let a=h(c,b);o({skills:a.skill?[a.skill]:[],diagnostics:a.diagnostics})}else n.push({type:"warning",message:"skill path is not a markdown file",path:c})}catch(b){let a=b instanceof Error?b.message:"failed to read skill path";n.push({type:"warning",message:a,path:c})}}return{skills:Array.from(l.values()),diagnostics:n}}({cwd:a,agentDir:b});return{skills:function(a,{cwd:b,agentDir:c,globalLockPath:d=function({homeDir:a=(0,k.homedir)(),xdgStateHome:b=process.env.XDG_STATE_HOME}={}){return b?(0,l.join)(b,"skills",".skill-lock.json"):(0,l.join)(a,".agents",".skill-lock.json")}(),projectLockPath:e=(0,l.join)(b,"skills-lock.json")}){let f=m(d),g=m(e),h=(0,l.join)(c,"skills"),i=(0,l.join)(b,".pi","skills");return a.map(a=>{if(!(0,j.existsSync)(a.filePath))return a;let b=n(a.filePath,h)?o(f,a.name,"global"):n(a.filePath,i)?o(g,a.name,"project"):void 0;return b?{...a,install:b}:a})}(c,{cwd:a,agentDir:b}),diagnostics:p}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},60396:(a,b,c)=>{"use strict";c.d(b,{$M:()=>f,CZ:()=>h,Mc:()=>g,pA:()=>i});var d=c(62228),e=c(86697);function f(a=process.env){let b=a.PI_CODING_AGENT_DIR?.trim();if(b)return"~"===b?(0,d.homedir)():b.startsWith("~/")||b.startsWith("~\\")?(0,e.join)((0,d.homedir)(),b.slice(2)):b;return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(a=process.env){return(0,e.join)(f(a),"models.json")}function h(a=process.env){return(0,e.join)(f(a),"auth.json")}function i(a=process.env){return(0,e.join)(f(a),"settings.json")}},60601:(a,b,c)=>{"use strict";c.d(b,{fu:()=>m,hI:()=>l,iM:()=>j});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(400);function i(a){let b=a?.code;return"ENOENT"===b||"ENOTDIR"===b}function j(a,b){let c,d;try{c=e().realpathSync(a)}catch(a){if(i(a))return{kind:"not-found"};return{kind:"denied"}}try{d=e().statSync(c)}catch(a){if(i(a))return{kind:"not-found"};return{kind:"denied"}}let f=!1;for(let a of b){let b;try{b=e().realpathSync(a)}catch{continue}if(f=!0,c===b||(0,h.j0)(c,b))return{kind:"ok",realPath:c,stat:d}}return f?{kind:"outside-roots",realPath:c,stat:d}:{kind:"denied"}}function k(a){return"win32"===process.platform?a.toLowerCase():a}function l(a,b){try{return k(g().resolve(a))===k(b)}catch{return!1}}function m(a){let b="number"==typeof e().constants.O_NOFOLLOW?e().constants.O_NOFOLLOW:0,c=e().openSync(a,e().constants.O_RDONLY|b);try{if(!e().fstatSync(c).isFile())throw Error("Read path is not a regular file");return c}catch(a){try{e().closeSync(c)}catch{}throw a}}},62228:a=>{"use strict";a.exports=require("node:os")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{"use strict";a.exports=require("node:path")},89477:a=>{"use strict";a.exports=require("node:fs")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=9209));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=9968,a.ids=[9968],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},400:(a,b,c)=>{c.d(b,{OJ:()=>n,Sk:()=>j,j0:()=>l});var d=c(89477),e=c.n(d),f=c(86697),g=c.n(f),h=c(716);let i="true"===process.env.SAVE_FSYNC;class j extends Error{constructor(a,b){super(b),this.code=a}}function k(a){return/^[a-zA-Z]:[\\/]/.test(a)||a.startsWith("\\\\")||a.startsWith("//")}function l(a,b,c=k(a)||k(b)){let d=c?g().win32:g(),e=d.resolve(a),f=d.resolve(b),h=c?e.toLowerCase():e,i=c?f.toLowerCase():f;return h!==i&&h.startsWith(i.endsWith(d.sep)?i:i+d.sep)}function m(a,b){let c=a?.code;if("ENOENT"===c)throw new j("not-found",b);if("EACCES"===c||"EPERM"===c)throw new j("forbidden","文件访问被拒绝");throw a}function n(a){let b,c,d,{target:f,cwd:k,allowedRoots:n,content:o,baseline:p}=a,q=function(a,b){if(!Number.isFinite(b?.mtimeMs)||b.mtimeMs<0||!Number.isFinite(b?.size)||b.size<0)throw new j("bad-request","保存请求格式无效");for(let b=0;b<a.length;b+=1){let c=a.charCodeAt(b);if(c>=55296&&c<=57343){if(c<=56319&&b+1<a.length&&a.charCodeAt(b+1)>=56320&&57343>=a.charCodeAt(b+1)){b+=1;continue}throw new j("bad-request","内容包含不可逆 UTF-8 字符")}}return Buffer.from(a,"utf8")}(o,p),r=a.isAllowed??((a,b)=>[...b].some(b=>a===b||a.startsWith(`${b}/`)||a.startsWith(`${b}\\`)));if(!r(f,n))throw new j("forbidden","目标不在授权目录内");try{b=e().lstatSync(f)}catch(a){return m(a,"目标文件不存在")}if(b.isSymbolicLink())throw new j("forbidden","目标不能是符号链接");if(!b.isFile())throw new j("bad-request","目标不是常规文件");try{if(e().realpathSync(k),c=e().realpathSync(f),d=new Set([...n].map(a=>e().realpathSync(a))),!r(c,d))throw new j("forbidden","目标不在授权目录内");for(let a=g().dirname(f);l(a,k);a=g().dirname(a))if(e().lstatSync(a).isSymbolicLink())throw new j("forbidden","目标父目录不能是符号链接")}catch(a){if(a instanceof j)throw a;return m(a,"目标路径不存在")}try{e().statSync(c)}catch(a){return m(a,"目标文件不存在")}let s=g().dirname(c),t=g().join(s,`.pi-save-${process.pid}-${(0,h.randomUUID)()}`);try{if(e().writeFileSync(t,q,{flag:"wx",mode:4095&b.mode}),e().chmodSync(t,4095&b.mode),i){let a=e().openSync(t,"r+");try{e().fsyncSync(a)}finally{e().closeSync(a)}}e().renameSync(t,c)}catch(a){try{e().unlinkSync(t)}catch{}return m(a,"保存目标不存在")}let u=e().statSync(c);return{path:f,size:u.size,mtimeMs:u.mtimeMs}}},716:a=>{a.exports=require("node:crypto")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4984:a=>{a.exports=require("readline")},10210:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$v:()=>p,fN:()=>r,uX:()=>q});var e=c(89477),f=c(62228),g=c(86697),h=c(716),i=c(60396),j=c(34556),k=c(60601),l=a([k]);function m(a){if(!a||"string"!=typeof a)return!1;try{return(0,e.statSync)(a).isDirectory()}catch{return!1}}k=(l.then?(await l)():l)[0];class r extends Error{constructor(a,b){super(b),this.code=a}}let s="disable-model-invocation",t={loadSkills:a=>(0,j.y)(a),agentDir:(0,i.$M)(),homeDir:(0,f.homedir)()};function n(a,b,c,d){let f=a=>a.some(a=>{var c;let d,f;try{d=(0,e.realpathSync)(a)}catch{return!1}return c=d,f=(0,g.relative)((0,g.resolve)(c),(0,g.resolve)(b)),""!==f&&".."!==f&&!f.startsWith(`..${g.sep}`)&&!(0,g.isAbsolute)(f)}),h=[(0,g.join)(d.agentDir,"skills"),(0,g.join)(d.homeDir,".agents","skills")];if(f(h))return"global";let i=[(0,g.join)(c,".pi","skills"),(0,g.join)(c,".agents","skills")];return f(i)?"project":"denied"}function o(a,b){return[(0,g.join)(b.agentDir,"skills"),(0,g.join)(b.homeDir,".agents","skills"),(0,g.join)(a,".pi","skills"),(0,g.join)(a,".agents","skills")]}async function p(a,b=t){let c,d,f,i,{cwd:j,filePath:l,disableModelInvocation:q}=a;if(!j||"string"!=typeof j)throw new r("bad-request","cwd required");if(!l||"string"!=typeof l)throw new r("bad-request","filePath required");if("boolean"!=typeof q)throw new r("bad-request","disableModelInvocation must be boolean");if(!(0,g.isAbsolute)(l))throw new r("bad-request","filePath must be absolute");if(!m(j))throw new r("bad-request","cwd must be an existing directory");let{skills:u}=await b.loadSkills(j);if(!u.find(a=>(0,g.resolve)(a.filePath)===(0,g.resolve)(l)))throw new r("not-found","skill not in loader list for cwd");try{c=(0,e.lstatSync)(l)}catch{throw new r("not-found","file not found")}if(c.isSymbolicLink())throw new r("forbidden","target must not be a symbolic link");if(!c.isFile())throw new r("bad-request","target is not a regular file");try{d=(0,e.realpathSync)(l)}catch{throw new r("forbidden","target path cannot be resolved")}let v=n(l,d,j,b);if("denied"===v)throw new r("forbidden","skill source is not writable (package/temporary or symlink escape)");!function(a,b){let c=(0,g.dirname)(a);for(;;){let a,d=b.some(a=>(0,g.resolve)(a)===(0,g.resolve)(c));try{a=(0,e.lstatSync)(c)}catch{if(d)throw new r("not-found","file not found");if(c===(0,g.dirname)(c))break;c=(0,g.dirname)(c);continue}if(a.isSymbolicLink())throw new r("forbidden","path component must not be a symbolic link");if(d||c===(0,g.dirname)(c))break;c=(0,g.dirname)(c)}}(l,o(j,b));try{f=(0,k.fu)(d)}catch(b){let a=b?.code;if("ENOENT"===a)throw new r("not-found","file not found");throw new r("forbidden","target cannot be read safely")}try{i=(0,e.readFileSync)(f,"utf8")}finally{(0,e.closeSync)(f)}let w=function(a,b){let c,d=(c=a.indexOf("\n"))>0&&13===a.charCodeAt(c-1)?"\r\n":"\n",e=function(a){let b=a.indexOf("\n");if(-1===b||"---"!==a.slice(0,b).replace(/\r$/,""))return null;let c=b+1,d=c;for(;d<=a.length;){let b=a.indexOf("\n",d),e=-1===b?a.length:b;if("---"===a.slice(d,e).replace(/\r$/,""))return{start:c,end:d};if(-1===b)break;d=b+1}return null}(a);if(!e)return b?`---${d}${s}: true${d}---${d}${a}`:a;let f=a.slice(e.start,e.end),g=RegExp(`^${s}\\s*:`,"m").test(f);if(b&&!g)return a.slice(0,e.start)+`${s}: true${d}`+a.slice(e.start);if(!b&&g){let b=f.replace(RegExp(`^${s}\\s*:.*(?:\r?
2
+ )`,"m"),"");if(b!==f)return a.slice(0,e.start)+b+a.slice(e.end)}return a}(i,q),x=(0,g.dirname)(d),y=(0,g.join)(x,`.pi-skill-${process.pid}-${(0,h.randomUUID)()}`);try{if((0,e.writeFileSync)(y,w,{flag:"wx",mode:4095&c.mode}),(0,e.lstatSync)(x).isSymbolicLink())throw new r("forbidden","target directory must not be a symbolic link");let a=(0,e.lstatSync)(d);if(a.isSymbolicLink())throw new r("forbidden","target must not be a symbolic link");if(!a.isFile())throw new r("bad-request","target is not a regular file");(0,e.renameSync)(y,d)}catch(a){try{(0,e.unlinkSync)(y)}catch{}if(a instanceof r)throw a;if(a?.code==="EACCES"||a?.code==="EPERM")throw new r("forbidden","file write denied");throw a}return{success:!0}}async function q(a,b=t){let c,{cwd:d,filePath:f}=a;if(!d||"string"!=typeof d)throw new r("bad-request","cwd required");if(!f||"string"!=typeof f)throw new r("bad-request","filePath required");if(!(0,g.isAbsolute)(f))throw new r("bad-request","filePath must be absolute");if(!m(d))throw new r("bad-request","cwd must be an existing directory");let{skills:h}=await b.loadSkills(d),i=h.find(a=>(0,g.resolve)(a.filePath)===(0,g.resolve)(f));if(!i)throw new r("not-found","skill not in loader list for cwd");let j=i.baseDir;if(!j||!(0,g.isAbsolute)(j))throw new r("bad-request","skill baseDir invalid");try{c=(0,e.realpathSync)(j)}catch{throw new r("not-found","skill directory not found")}let k=n((0,g.join)(j,"SKILL.md"),(0,g.join)(c,"SKILL.md"),d,b);if("denied"===k)throw new r("forbidden","skill source is not removable");let l=o(d,b).map(a=>{try{return(0,e.realpathSync)(a)}catch{return(0,g.resolve)(a)}});if(!l.some(a=>c===a||c.startsWith(a+g.sep)))throw new r("forbidden","skill directory outside allowed roots");if(l.some(a=>c===a))throw new r("forbidden","cannot remove skill root");try{(0,e.rmSync)(c,{recursive:!0,force:!1})}catch(a){if(a?.code==="ENOENT")throw new r("not-found","skill directory not found");if(a?.code==="EACCES"||a?.code==="EPERM")throw new r("forbidden","directory remove denied");throw a}return{success:!0}}d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16788:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(45403),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:"app/api/skills/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/skills/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/skills/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},21820:a=>{a.exports=require("os")},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")},34556:(a,b,c)=>{c.d(b,{y:()=>p});var d=c(60396),e=c(89477),f=c(62228),g=c(86697);function h(a,b){let c=[];try{var d;let f=(0,e.readFileSync)(a,"utf8"),h=function(a){let b={},c=a.split(/\r?\n/);if(!c[0]||"---"!==c[0].replace(/\r$/,""))return b;for(let a=1;a<c.length;a++){let d=c[a].replace(/\r$/,"");if("---"===d)break;let e=/^([A-Za-z0-9_-]+):\s*(.*)$/.exec(d);e&&(b[e[1]]=e[2].trim())}return b}(f),i=(0,g.dirname)(a);return{skill:{name:h.name||function(a){if("skill.md"===(0,g.basename)(a).toLowerCase())return(0,g.basename)((0,g.dirname)(a));let b=(0,g.basename)(a);return b.endsWith(".md")?b.slice(0,-3):b}(a),description:h.description??"",filePath:a,baseDir:i,disableModelInvocation:(d=h["disable-model-invocation"],void 0!==d&&"true"===d.trim().toLowerCase()),sourceInfo:{source:"local",scope:b}},diagnostics:c}}catch(d){let b=d instanceof Error?d.message:"failed to parse skill file";return c.push({type:"warning",message:b,path:a}),{skill:null,diagnostics:c}}}function i(a,b,c,d=0){let f,j=c??new Set;if(d>16)return{skills:[],diagnostics:[]};try{let b=(0,e.realpathSync)(a);if(j.has(b))return{skills:[],diagnostics:[]};j.add(b)}catch{}let k=[],l=[];try{f=(0,e.readdirSync)(a,{withFileTypes:!0})}catch{return{skills:k,diagnostics:l}}let m=f.find(a=>"SKILL.md"===a.name);if(m){let c=(0,g.join)(a,"SKILL.md");if(function(a,b){if(a.isFile())return!0;if(a.isSymbolicLink())try{return(0,e.statSync)(b).isFile()}catch{}return!1}(m,c)){let a=h(c,b);a.skill&&k.push(a.skill),l.push(...a.diagnostics)}return{skills:k,diagnostics:l}}for(let c of f){if(c.name.startsWith(".")||"node_modules"===c.name)continue;let f=(0,g.join)(a,c.name),m=c.isDirectory(),n=c.isFile();if(c.isSymbolicLink())try{let a=(0,e.statSync)(f);m=a.isDirectory(),n=a.isFile()}catch{continue}if(m){let a=i(f,b,j,d+1);k.push(...a.skills),l.push(...a.diagnostics)}else if(n&&c.name.endsWith(".md")){let a=h(f,b);a.skill&&k.push(a.skill),l.push(...a.diagnostics)}}return{skills:k,diagnostics:l}}var j=c(29021),k=c(21820),l=c(33873);function m(a){try{let b=JSON.parse((0,j.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function n(a,b){let c=(0,l.relative)((0,l.resolve)(b),(0,l.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${l.sep}`)&&!(0,l.isAbsolute)(c)}function o(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}async function p(a){let b=(0,d.$M)(),{skills:c,diagnostics:p}=function(a){let{cwd:b,agentDir:c}=a,d=a.homeDir??(0,f.homedir)(),j=[(0,g.join)(c,"skills"),(0,g.join)(d,".agents","skills")],k=[(0,g.join)(b,".pi","skills"),(0,g.join)(b,".agents","skills"),...function(a,b){let c=[],d=(0,g.resolve)((0,g.join)(b,".agents","skills")),f=(0,g.resolve)(a),h=function(a){let b=(0,g.resolve)(a);for(;;){if((0,e.existsSync)((0,g.join)(b,".git")))return b;let a=(0,g.dirname)(b);if(a===b)return null;b=a}}(f);for(;;){let a=(0,g.join)(f,".agents","skills");if((0,g.resolve)(a)!==d&&c.push(a),h&&f===h)break;let b=(0,g.dirname)(f);if(b===f)break;f=b}return c}(b,d)],l=new Map,m=new Set,n=[],o=a=>{for(let b of(n.push(...a.diagnostics),a.skills)){let a;try{a=(0,e.realpathSync)(b.filePath)}catch{a=(0,g.resolve)(b.filePath)}if(!m.has(a)){if(l.get(b.name)){n.push({type:"collision",message:`name "${b.name}" collision`,path:b.filePath});continue}l.set(b.name,b),m.add(a)}}};for(let a of[...j,...k]){let b=j.some(b=>(0,g.resolve)(b)===(0,g.resolve)(a))?"user":"project";o(i(a,b))}for(let a of function(a){try{let b=JSON.parse((0,e.readFileSync)(a,"utf8")).skills;if(Array.isArray(b))return b.filter(a=>"string"==typeof a);if(b&&"object"==typeof b&&!Array.isArray(b)){let a=b.customDirectories;if(Array.isArray(a))return a.filter(a=>"string"==typeof a)}}catch{}return[]}((0,g.join)(c,"settings.json"))){let c=(0,g.resolve)(b,a);if(!(0,e.existsSync)(c)){n.push({type:"warning",message:"skill path does not exist",path:c});continue}try{let a=(0,e.statSync)(c),b=j.some(a=>(function(a,b){let c=(0,g.resolve)(b);if(a===c)return!0;let d=c.endsWith(g.sep)?c:`${c}${g.sep}`;return a.startsWith(d)})(c,a))?"user":"project";if(a.isDirectory())o(i(c,b));else if(a.isFile()&&c.endsWith(".md")){let a=h(c,b);o({skills:a.skill?[a.skill]:[],diagnostics:a.diagnostics})}else n.push({type:"warning",message:"skill path is not a markdown file",path:c})}catch(b){let a=b instanceof Error?b.message:"failed to read skill path";n.push({type:"warning",message:a,path:c})}}return{skills:Array.from(l.values()),diagnostics:n}}({cwd:a,agentDir:b});return{skills:function(a,{cwd:b,agentDir:c,globalLockPath:d=function({homeDir:a=(0,k.homedir)(),xdgStateHome:b=process.env.XDG_STATE_HOME}={}){return b?(0,l.join)(b,"skills",".skill-lock.json"):(0,l.join)(a,".agents",".skill-lock.json")}(),projectLockPath:e=(0,l.join)(b,"skills-lock.json")}){let f=m(d),g=m(e),h=(0,l.join)(c,"skills"),i=(0,l.join)(b,".pi","skills");return a.map(a=>{if(!(0,j.existsSync)(a.filePath))return a;let b=n(a.filePath,h)?o(f,a.name,"global"):n(a.filePath,i)?o(g,a.name,"project"):void 0;return b?{...a,install:b}:a})}(c,{cwd:a,agentDir:b}),diagnostics:p}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45403:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>k,GET:()=>i,PATCH:()=>j,dynamic:()=>l});var e=c(23211),f=c(34556),g=c(10210),h=a([g]);g=(h.then?(await h)():h)[0];let l="force-dynamic";async function i(a){let{searchParams:b}=new URL(a.url),c=b.get("cwd");if(!c)return e.NextResponse.json({error:"cwd required"},{status:400});try{return e.NextResponse.json(await (0,f.y)(c))}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}async function j(a){try{let b=await a.json();return e.NextResponse.json(await (0,g.$v)({cwd:b.cwd??"",filePath:b.filePath??"",disableModelInvocation:b.disableModelInvocation??!1}))}catch(a){if(a instanceof g.fN){let b="forbidden"===a.code?403:"not-found"===a.code?404:400;return e.NextResponse.json({error:a.message},{status:b})}return e.NextResponse.json({error:String(a)},{status:500})}}async function k(a){try{let b=await a.json();return e.NextResponse.json(await (0,g.uX)({cwd:b.cwd??"",filePath:b.filePath??""}))}catch(a){if(a instanceof g.fN){let b="forbidden"===a.code?403:"not-found"===a.code?404:400;return e.NextResponse.json({error:a.message},{status:b})}return e.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},60601:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{fu:()=>p,hI:()=>o,iM:()=>m});var e=c(89477),f=c.n(e),g=c(86697),h=c.n(g),i=c(400),j=c(80547),k=a([j]);function l(a){let b=a?.code;return"ENOENT"===b||"ENOTDIR"===b}function m(a,b){let c,d;try{c=f().realpathSync(a)}catch(a){if(l(a))return{kind:"not-found"};return{kind:"denied"}}try{d=f().statSync(c)}catch(a){if(l(a))return{kind:"not-found"};return{kind:"denied"}}if((0,j.bk)())return{kind:"ok",realPath:c,stat:d};let e=!1;for(let a of b){let b;try{b=f().realpathSync(a)}catch{continue}if(e=!0,c===b||(0,i.j0)(c,b))return{kind:"ok",realPath:c,stat:d}}return e?{kind:"outside-roots",realPath:c,stat:d}:{kind:"denied"}}function n(a){return"win32"===process.platform?a.toLowerCase():a}function o(a,b){try{return n(h().resolve(a))===n(b)}catch{return!1}}function p(a){let b="number"==typeof f().constants.O_NOFOLLOW?f().constants.O_NOFOLLOW:0,c=f().openSync(a,f().constants.O_RDONLY|b);try{if(!f().fstatSync(c).isFile())throw Error("Read path is not a regular file");return c}catch(a){try{f().closeSync(c)}catch{}throw a}}j=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},62228:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69835:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>p,Md:()=>o,eq:()=>l,ki:()=>n,qo:()=>k,uF:()=>m});var e=c(29021),f=c(33873),g=c(55511),h=c(60396),i=c(80547),j=a([i]);i=(j.then?(await j)():j)[0];let o=0x1900000,p=0x6400000;function k(a=(0,h.$M)()){return(0,i.Nw)((0,f.join)(a,"pidance-attachments"))}function l(a=(0,h.$M)()){let b=k(a);return(0,e.existsSync)(b)||(0,e.mkdirSync)(b,{recursive:!0,mode:448}),(0,i.wz)(b),b}function m(a){let b=(a.replace(/\\/g,"/").split("/").pop()??"file").replace(/\0/g,"").replace(/^\.+/,"").trim()||"file";if(b.length<=180)return b;let c=b.lastIndexOf(".");if(c>0&&b.length-c<=20){let a=b.slice(c);return b.slice(0,180-a.length)+a}return b.slice(0,180)}function n(a,b,c=(0,h.$M)()){let d=l(c),j=function(a,b=Date.now()){let c=m(a),d=new Date(b).toISOString().replace(/[:.]/g,"-"),e=(0,g.randomUUID)().slice(0,8);return`${d}_${e}_${c}`}(a),k=(0,f.join)(d,j);return(0,e.writeFileSync)(k,b,{flag:"wx",mode:384}),{path:(0,i.Nw)(k),name:m(a),storedName:j,size:b.length}}d()}catch(a){d(a)}})},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>r,Nw:()=>j.Nw,bk:()=>q,mc:()=>p,uK:()=>o,wz:()=>k.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(60396),j=c(50593),k=c(25252),l=c(69835),m=c(40402),n=a([l,m]);[l,m]=n.then?(await n)():n;let s=/^[a-zA-Z]:[\\/]/;function o(a){return s.test(a)||a.startsWith("\\\\")||a.startsWith("//")}async function p(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,m.dQ)(),d=function(a){let b=new Set;for(let c of a)!0!==c.readOnly&&c.cwd&&b.add((0,j.Nw)(c.cwd)),!0!==c.readOnly&&c.projectRoot&&b.add((0,j.Nw)(c.projectRoot));return b}(c);try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,j.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,k.HM)())d.add(a);try{d.add((0,l.qo)((0,i.$M)()))}catch{}return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function q(){return!0}function r(a,b){return!0}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{a.exports=require("node:path")},89477:a=>{a.exports=require("node:fs")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,5582],()=>b(b.s=16788));module.exports=c})();
@@ -1,4 +1,4 @@
1
1
  (()=>{var a={};a.id=7032,a.ids=[7032],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},6950:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y,dynamic:()=>w,maxDuration:()=>x});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(31974);let w="force-dynamic",x=600;async function y(a){let b,c=!1;try{let d=await a.json();"string"==typeof d.version&&d.version.trim()&&(b=d.version.trim()),c=!0===d.stream||1===d.stream||"1"===d.stream}catch{}if((a.headers.get("accept")??"").includes("text/event-stream")&&(c=!0),"1"===new URL(a.url).searchParams.get("stream")&&(c=!0),!c)try{let a=await (0,v.i7)({targetVersion:b}),c="not_supported"===a.status?403:"error"===a.status?500:200;return Response.json(a,{status:c,headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:String(b);return Response.json({ok:!1,status:"error",currentVersion:"?",targetVersion:null,message:a},{status:500})}let d=new TextEncoder;return new Response(new ReadableStream({start(a){let c=b=>{try{a.enqueue(d.encode(`data: ${JSON.stringify(b)}
2
2
 
3
- `))}catch{}};(async()=>{try{let a=await (0,v.i7)({targetVersion:b,onProgress:a=>{c({type:"progress",...a})}});c({type:"result",result:a})}catch(d){let a=d instanceof Error?d.message:String(d);c({type:"result",result:{ok:!1,status:"error",currentVersion:"?",targetVersion:b??null,message:a}})}finally{try{a.close()}catch{}}})()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store, no-cache",Connection:"keep-alive"}})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/update/apply/route",pathname:"/api/update/apply",filename:"route",bundlePath:"app/api/update/apply/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/update/apply/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/update/apply/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31974:(a,b,c)=>{"use strict";c.d(b,{ex:()=>u,i7:()=>v});var d=c(95398),e=c(89477),f=c(86697);let g=(0,c(37418).promisify)(d.execFile),h="@henlii/pidance",i="https://registry.npmjs.org/",j="pidance.service";function k(a,b){return 0===b||"active"===a.trim()}function l(a){if(a.restartOk||a.laterActive)return{restarted:!0};let b=a.restartError?.trim();return{restarted:!1,message:b?`重启 ${j} 失败:${b}`:`重启 ${j} 失败`}}async function m(a,b){try{let c=await a("systemctl",["is-active",j],{timeout:1e4,env:b});return k(String(c.stdout??""),0)}catch(a){return k(function(a){if(a&&"object"==typeof a&&"stdout"in a){let b=a.stdout;if("string"==typeof b)return b;if(Buffer.isBuffer(b))return b.toString("utf8")}return""}(a),function(a){if(a&&"object"==typeof a&&"code"in a){let b=a.code;if("number"==typeof b&&Number.isFinite(b))return b}return null}(a))}}async function n(a){let b=a.execFileImpl??g,c=a.env??process.env,d=a.sleepImpl??(a=>new Promise(b=>{setTimeout(b,a)})),e=a.now??Date.now;try{return await b("systemctl",["restart",j],{timeout:21e4,env:c}),l({restartOk:!0,laterActive:!1})}catch(g){let a=g instanceof Error?g.message:String(g),f=e();if(await m(b,c))return l({restartOk:!1,restartError:a,laterActive:!0});for(;e()-f<6e4;)if(await d(1500),await m(b,c))return l({restartOk:!1,restartError:a,laterActive:!0});return l({restartOk:!1,restartError:a,laterActive:!1})}}function o(a=process.env){let b=(a.PIDANCE_NPM_REGISTRY||a.npm_config_registry||i).trim();return b?b.endsWith("/")?b:`${b}/`:i}function p(a,b){let c=q(a),d=q(b);if(!c||!d)return 0;for(let a=0;a<3;a++){if(c.core[a]>d.core[a])return 1;if(c.core[a]<d.core[a])return -1}return null===c.pre&&null===d.pre?0:null===c.pre?1:null===d.pre||c.pre<d.pre?-1:+(c.pre>d.pre)}function q(a){let b=a.trim().replace(/^v/i,""),c=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(b);return c?{core:[Number(c[1]),Number(c[2]),Number(c[3])],pre:c[4]??null}:null}function r(a,b){let c=(0,f.join)(a,"releases");if(!(0,e.existsSync)(c))return[];let d=new Set(b.map(a=>a.trim()).filter(Boolean));try{let b=(0,e.realpathSync)((0,f.join)(a,"current")),c=/\/releases\/([^/]+)$/.exec(b.replace(/\\/g,"/"));c&&d.add(c[1])}catch{}let g=c;try{g=(0,e.realpathSync)(c)}catch{return[]}let h=[];for(let a of(0,e.readdirSync)(c,{withFileTypes:!0})){let b;if(!a.isDirectory()||a.isSymbolicLink()||"."===a.name||".."===a.name||a.name.includes("/")||a.name.includes("\\")||d.has(a.name))continue;let i=(0,f.join)(c,a.name);try{b=(0,e.realpathSync)(i)}catch{continue}let j=g.endsWith("/")?g:`${g}/`;(b===g||b.startsWith(j))&&((0,e.rmSync)(i,{recursive:!0,force:!0}),h.push(a.name))}return h}async function s(a=o(),b=globalThis.fetch.bind(globalThis)){let c=new URL("@henlii%2Fpidance/latest",a.endsWith("/")?a:`${a}/`).toString();try{let a=await b(c,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(12e3)});if(!a.ok)return null;let d=await a.json();return"string"==typeof d.version&&d.version.trim()?d.version.trim():null}catch{return null}}async function t(a=o(),b=Date.now(),c=globalThis.fetch.bind(globalThis),d=!1){let e=globalThis.__piPidanceLatestCache;if(!d&&e&&b-e.ts<18e5&&e.latest)return e.latest;let f=await s(a,c);return f&&(globalThis.__piPidanceLatestCache={latest:f,ts:b}),f}async function u(a){let b,c=a?.cwd??process.cwd(),d=a?.env??process.env,g=o(d),i=function(a=process.cwd()){for(let b of[(0,f.join)(a,"package.json"),(0,f.join)(a,"node_modules","@henlii","pidance","package.json")])try{if(!(0,e.existsSync)(b))continue;let a=JSON.parse((0,e.readFileSync)(b,"utf8"));if(a.name===h&&"string"==typeof a.version&&a.version.trim())return a.version.trim();let c=a.dependencies?.[h];if("string"==typeof c&&c.trim()&&!c.startsWith("file:"))return c.trim().replace(/^[\^~>=<\s]+/,"")}catch{}let b="0.2.12".trim();return b&&"unknown"!==b?b:"0.0.0"}(c),{mode:j,installRoot:k}=function(a=process.cwd(),b=process.env){let c=function(a,b=process.env){let c=b.PIDANCE_INSTALL_ROOT?.trim();if(c)try{return(0,f.resolve)(c)}catch{return null}let d=a;try{d=(0,e.realpathSync)(a)}catch{d=(0,f.resolve)(a)}let g=d.replace(/\\/g,"/"),h=/^(.*)\/releases\/[^/]+\/node_modules\/@henlii\/pidance$/.exec(g);if(h)return(0,f.resolve)(h[1]);let i=/^(.*)\/releases\/[^/]+$/.exec(g);return i?(0,f.resolve)(i[1]):null}(a,b);if(c)return{mode:"formal-install",installRoot:c};try{let b=(0,f.join)(a,"package.json");if((0,e.existsSync)(b)&&JSON.parse((0,e.readFileSync)(b,"utf8")).name===h)return{mode:"workspace",installRoot:null}}catch{}return{mode:"unknown",installRoot:null}}(c,d),l=await t(g,a?.now,a?.fetchImpl,a?.forceRefresh===!0),m=null!=l&&p(l,i)>0,n=function(a=process.env){return"0"!==a.PIDANCE_ALLOW_SELF_UPGRADE}(d),q=n&&"formal-install"===j&&null!=k;return b=l?m?q?`可升级到 ${l}`:"workspace"===j?"当前为工作区/测试部署,仅提示有新版本;请在正式安装位(31415)一键升级":n?"未检测到正式安装目录,无法一键升级":"已禁用自升级(PIDANCE_ALLOW_SELF_UPGRADE=0)":"已是最新版本":"无法从 npm registry 获取最新版本",{currentVersion:i,latestVersion:l,updateAvailable:m,upgradeSupported:q,upgradeMode:j,installRoot:k,packageName:h,registry:g,reason:b,checkedAt:new Date(a?.now??Date.now()).toISOString()}}async function v(a){let b=a?.cwd??process.cwd(),c=a?.env??process.env,d=a?.execFileImpl??g,i=(b,c,d)=>{try{a?.onProgress?.({phase:b,percent:c,message:d})}catch{}};i("preparing",5,"准备升级…");let k=await u({cwd:b,env:c,fetchImpl:a?.fetchImpl});if(!k.upgradeSupported||!k.installRoot)return i("error",100,k.reason),{ok:!1,status:"not_supported",currentVersion:k.currentVersion,targetVersion:k.latestVersion,message:k.reason};let l=(a?.targetVersion?.trim()||k.latestVersion||"").trim();if(!l)return{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:null,message:"无目标版本"};if(0>=p(l,k.currentVersion)&&!a?.targetVersion)return i("done",100,"已是最新版本"),{ok:!0,status:"already_latest",currentVersion:k.currentVersion,targetVersion:l,message:"已是最新版本"};if(!/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(l))return{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:l,message:"非法版本号"};let m=k.installRoot,o=(0,f.join)(m,"releases",l),q=k.registry;try{i("preparing",12,`创建发布目录 ${l}…`),(0,e.mkdirSync)(o,{recursive:!0});let b={name:`pidance-${l}`,version:"1.0.0",private:!0,dependencies:{[h]:l}};(0,e.writeFileSync)((0,f.join)(o,"package.json"),`${JSON.stringify(b,null,2)}
4
- `,"utf8"),i("downloading",20,"正在从 npm 下载包…"),await d("npm",["install","--omit=dev",`--registry=${q}`,"--no-fund","--no-audit"],{cwd:o,env:{...c,npm_config_registry:q},timeout:6e5,maxBuffer:8388608}),i("installing",82,"校验安装结果…");let g=(0,f.join)(o,"node_modules","@henlii","pidance","package.json");if(!(0,e.existsSync)(g))throw Error("安装后未找到 @henlii/pidance 包");let p=JSON.parse((0,e.readFileSync)(g,"utf8"));if(p.version!==l)throw Error(`安装版本不符:期望 ${l},实际 ${p.version??"?"}`);i("linking",88,"切换 current 符号链接…");let s=(0,f.join)(m,"current"),t=(0,f.join)(m,`.current-tmp-${process.pid}`);try{(0,e.existsSync)(t)&&(0,e.rmSync)(t,{force:!0,recursive:!0})}catch{}(0,e.symlinkSync)(o,t),(0,e.renameSync)(t,s);let u=!1;if(a?.restartService!==!1&&"1"!==c.PIDANCE_SKIP_SERVICE_RESTART){i("restarting",94,"正在重启服务…");let a=await n({execFileImpl:d,env:c});if(u=a.restarted,!a.restarted){let b={ok:!0,status:"upgraded",currentVersion:k.currentVersion,targetVersion:l,message:`已切换到 ${l},但${a.message??`重启 ${j} 失败`}`,restarted:!1};try{r(m,[l,k.currentVersion])}catch{}return i("done",100,b.message),b}}try{r(m,[l,k.currentVersion])}catch{}let v={ok:!0,status:"upgraded",currentVersion:k.currentVersion,targetVersion:l,message:u?`已升级到 ${l} 并重启服务`:`已升级到 ${l}(未重启服务)`,restarted:u};return i("done",100,v.message),v}catch(b){let a=b instanceof Error?b.message:String(b);return i("error",100,`升级失败:${a}`),{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:l,message:`升级失败:${a}`}}}},37418:a=>{"use strict";a.exports=require("node:util")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{"use strict";a.exports=require("node:path")},89477:a=>{"use strict";a.exports=require("node:fs")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},95398:a=>{"use strict";a.exports=require("node:child_process")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=6950));module.exports=c})();
3
+ `))}catch{}};(async()=>{try{let a=await (0,v.i7)({targetVersion:b,onProgress:a=>{c({type:"progress",...a})}});c({type:"result",result:a})}catch(d){let a=d instanceof Error?d.message:String(d);c({type:"result",result:{ok:!1,status:"error",currentVersion:"?",targetVersion:b??null,message:a}})}finally{try{a.close()}catch{}}})()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store, no-cache",Connection:"keep-alive"}})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/update/apply/route",pathname:"/api/update/apply",filename:"route",bundlePath:"app/api/update/apply/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/tmp/pidance-release-build/app/api/update/apply/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/update/apply/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!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(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31974:(a,b,c)=>{"use strict";c.d(b,{ex:()=>t,i7:()=>u});var d=c(95398),e=c(89477),f=c(86697);let g=(0,c(37418).promisify)(d.execFile),h="@henlii/pidance",i="https://registry.npmjs.org/",j="pidance.service";function k(a,b){return 0===b||"active"===a.trim()}function l(a){if(a.restartOk||a.laterActive)return{restarted:!0};let b=a.restartError?.trim();return{restarted:!1,message:b?`重启 ${j} 失败:${b}`:`重启 ${j} 失败`}}async function m(a,b){try{let c=await a("systemctl",["is-active",j],{timeout:1e4,env:b});return k(String(c.stdout??""),0)}catch(a){return k(function(a){if(a&&"object"==typeof a&&"stdout"in a){let b=a.stdout;if("string"==typeof b)return b;if(Buffer.isBuffer(b))return b.toString("utf8")}return""}(a),function(a){if(a&&"object"==typeof a&&"code"in a){let b=a.code;if("number"==typeof b&&Number.isFinite(b))return b}return null}(a))}}async function n(a){let b=a.execFileImpl??g,c=a.env??process.env,d=a.sleepImpl??(a=>new Promise(b=>{setTimeout(b,a)})),e=a.now??Date.now;try{return await b("systemctl",["restart",j],{timeout:21e4,env:c}),l({restartOk:!0,laterActive:!1})}catch(g){let a=g instanceof Error?g.message:String(g),f=e();if(await m(b,c))return l({restartOk:!1,restartError:a,laterActive:!0});for(;e()-f<6e4;)if(await d(1500),await m(b,c))return l({restartOk:!1,restartError:a,laterActive:!0});return l({restartOk:!1,restartError:a,laterActive:!1})}}function o(a=process.env){let b=(a.PIDANCE_NPM_REGISTRY||a.npm_config_registry||i).trim();return b?b.endsWith("/")?b:`${b}/`:i}function p(a,b){let c=q(a),d=q(b);if(!c||!d)return 0;for(let a=0;a<3;a++){if(c.core[a]>d.core[a])return 1;if(c.core[a]<d.core[a])return -1}return null===c.pre&&null===d.pre?0:null===c.pre?1:null===d.pre||c.pre<d.pre?-1:+(c.pre>d.pre)}function q(a){let b=a.trim().replace(/^v/i,""),c=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(b);return c?{core:[Number(c[1]),Number(c[2]),Number(c[3])],pre:c[4]??null}:null}async function r(a=o(),b=globalThis.fetch.bind(globalThis)){let c=new URL("@henlii%2Fpidance/latest",a.endsWith("/")?a:`${a}/`).toString();try{let a=await b(c,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(12e3)});if(!a.ok)return null;let d=await a.json();return"string"==typeof d.version&&d.version.trim()?d.version.trim():null}catch{return null}}async function s(a=o(),b=Date.now(),c=globalThis.fetch.bind(globalThis),d=!1){let e=globalThis.__piPidanceLatestCache;if(!d&&e&&b-e.ts<18e5&&e.latest)return e.latest;let f=await r(a,c);return f&&(globalThis.__piPidanceLatestCache={latest:f,ts:b}),f}async function t(a){let b,c=a?.cwd??process.cwd(),d=a?.env??process.env,g=o(d),i=function(a=process.cwd()){for(let b of[(0,f.join)(a,"package.json"),(0,f.join)(a,"node_modules","@henlii","pidance","package.json")])try{if(!(0,e.existsSync)(b))continue;let a=JSON.parse((0,e.readFileSync)(b,"utf8"));if(a.name===h&&"string"==typeof a.version&&a.version.trim())return a.version.trim();let c=a.dependencies?.[h];if("string"==typeof c&&c.trim()&&!c.startsWith("file:"))return c.trim().replace(/^[\^~>=<\s]+/,"")}catch{}let b="0.2.13".trim();return b&&"unknown"!==b?b:"0.0.0"}(c),{mode:j,installRoot:k}=function(a=process.cwd(),b=process.env){let c=function(a,b=process.env){let c=b.PIDANCE_INSTALL_ROOT?.trim();if(c)try{return(0,f.resolve)(c)}catch{return null}let d=a;try{d=(0,e.realpathSync)(a)}catch{d=(0,f.resolve)(a)}let g=d.replace(/\\/g,"/"),h=/^(.*)\/releases\/[^/]+\/node_modules\/@henlii\/pidance$/.exec(g);if(h)return(0,f.resolve)(h[1]);let i=/^(.*)\/releases\/[^/]+$/.exec(g);return i?(0,f.resolve)(i[1]):null}(a,b);if(c)return{mode:"formal-install",installRoot:c};try{let b=(0,f.join)(a,"package.json");if((0,e.existsSync)(b)&&JSON.parse((0,e.readFileSync)(b,"utf8")).name===h)return{mode:"workspace",installRoot:null}}catch{}return{mode:"unknown",installRoot:null}}(c,d),l=await s(g,a?.now,a?.fetchImpl,a?.forceRefresh===!0),m=null!=l&&p(l,i)>0,n=function(a=process.env){return"0"!==a.PIDANCE_ALLOW_SELF_UPGRADE}(d),q=n&&"formal-install"===j&&null!=k;return b=l?m?q?`可升级到 ${l}`:"workspace"===j?"当前为工作区/测试部署,仅提示有新版本;请在正式安装位(31415)一键升级":n?"未检测到正式安装目录,无法一键升级":"已禁用自升级(PIDANCE_ALLOW_SELF_UPGRADE=0)":"已是最新版本":"无法从 npm registry 获取最新版本",{currentVersion:i,latestVersion:l,updateAvailable:m,upgradeSupported:q,upgradeMode:j,installRoot:k,packageName:h,registry:g,reason:b,checkedAt:new Date(a?.now??Date.now()).toISOString()}}async function u(a){let b=a?.cwd??process.cwd(),c=a?.env??process.env,d=a?.execFileImpl??g,i=(b,c,d)=>{try{a?.onProgress?.({phase:b,percent:c,message:d})}catch{}};i("preparing",5,"准备升级…");let k=await t({cwd:b,env:c,fetchImpl:a?.fetchImpl});if(!k.upgradeSupported||!k.installRoot)return i("error",100,k.reason),{ok:!1,status:"not_supported",currentVersion:k.currentVersion,targetVersion:k.latestVersion,message:k.reason};let l=(a?.targetVersion?.trim()||k.latestVersion||"").trim();if(!l)return{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:null,message:"无目标版本"};if(0>=p(l,k.currentVersion)&&!a?.targetVersion)return i("done",100,"已是最新版本"),{ok:!0,status:"already_latest",currentVersion:k.currentVersion,targetVersion:l,message:"已是最新版本"};if(!/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(l))return{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:l,message:"非法版本号"};let m=k.installRoot,o=(0,f.join)(m,"releases",l),q=k.registry;try{i("preparing",12,`创建发布目录 ${l}…`),(0,e.mkdirSync)(o,{recursive:!0});let b={name:`pidance-${l}`,version:"1.0.0",private:!0,dependencies:{[h]:l}};(0,e.writeFileSync)((0,f.join)(o,"package.json"),`${JSON.stringify(b,null,2)}
4
+ `,"utf8"),i("downloading",20,"正在从 npm 下载包…"),await d("npm",["install","--omit=dev",`--registry=${q}`,"--no-fund","--no-audit"],{cwd:o,env:{...c,npm_config_registry:q},timeout:6e5,maxBuffer:8388608}),i("installing",82,"校验安装结果…");let g=(0,f.join)(o,"node_modules","@henlii","pidance","package.json");if(!(0,e.existsSync)(g))throw Error("安装后未找到 @henlii/pidance 包");let p=JSON.parse((0,e.readFileSync)(g,"utf8"));if(p.version!==l)throw Error(`安装版本不符:期望 ${l},实际 ${p.version??"?"}`);i("linking",88,"切换 current 符号链接…");let r=(0,f.join)(m,"current"),s=(0,f.join)(m,`.current-tmp-${process.pid}`);try{(0,e.existsSync)(s)&&(0,e.rmSync)(s,{force:!0,recursive:!0})}catch{}(0,e.symlinkSync)(o,s),(0,e.renameSync)(s,r);try{!function(a,b){let c=(0,f.join)(a,"releases");if(!(0,e.existsSync)(c))return;let d=new Set(b.map(a=>a.trim()).filter(Boolean));try{let b=(0,e.realpathSync)((0,f.join)(a,"current")),c=/\/releases\/([^/]+)$/.exec(b.replace(/\\/g,"/"));c&&d.add(c[1])}catch{}let g=c;try{g=(0,e.realpathSync)(c)}catch{return[]}let h=[];for(let a of(0,e.readdirSync)(c,{withFileTypes:!0})){let b;if(!a.isDirectory()||a.isSymbolicLink()||"."===a.name||".."===a.name||a.name.includes("/")||a.name.includes("\\")||d.has(a.name))continue;let i=(0,f.join)(c,a.name);try{b=(0,e.realpathSync)(i)}catch{continue}let j=g.endsWith("/")?g:`${g}/`;(b===g||b.startsWith(j))&&((0,e.rmSync)(i,{recursive:!0,force:!0}),h.push(a.name))}}(m,[l,k.currentVersion])}catch{}let t=!1;if(a?.restartService!==!1&&"1"!==c.PIDANCE_SKIP_SERVICE_RESTART){i("restarting",94,"正在重启服务…");let a=await n({execFileImpl:d,env:c});if(t=a.restarted,!a.restarted){let b={ok:!0,status:"upgraded",currentVersion:k.currentVersion,targetVersion:l,message:`已切换到 ${l},但${a.message??`重启 ${j} 失败`}`,restarted:!1};return i("done",100,b.message),b}}let u={ok:!0,status:"upgraded",currentVersion:k.currentVersion,targetVersion:l,message:t?`已升级到 ${l} 并重启服务`:`已升级到 ${l}(未重启服务)`,restarted:t};return i("done",100,u.message),u}catch(b){let a=b instanceof Error?b.message:String(b);return i("error",100,`升级失败:${a}`),{ok:!1,status:"error",currentVersion:k.currentVersion,targetVersion:l,message:`升级失败:${a}`}}}},37418:a=>{"use strict";a.exports=require("node:util")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86697:a=>{"use strict";a.exports=require("node:path")},89477:a=>{"use strict";a.exports=require("node:fs")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},95398:a=>{"use strict";a.exports=require("node:child_process")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=6950));module.exports=c})();