@customize-agent/server 3.0.22 → 3.0.24

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 (139) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +248 -222
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/required-server-files.json +0 -14
  5. package/.next/routes-manifest.json +7 -12
  6. package/.next/server/chunks/3445.js +15 -9
  7. package/.next/server/chunks/774.js +8 -8
  8. package/.next/server/chunks/8204.js +1 -1
  9. package/.next/server/middleware-build-manifest.js +1 -1
  10. package/.next/server/pages/404.html +1 -1
  11. package/.next/server/pages/500.html +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  13. package/.next/server/pages/api/assets/generated/test-generate.js +1 -0
  14. package/.next/server/pages/api/assets/generated/test-generate.js.nft.json +1 -0
  15. package/.next/server/pages/api/assets/generated.js +1 -1
  16. package/.next/server/pages/api/config/healthCheck.js +2 -1
  17. package/.next/server/pages/api/config/providers/[provider].js +1 -1
  18. package/.next/server/pages/api/config/providers.js +2 -1
  19. package/.next/server/pages/api/documents/export.js +3 -2
  20. package/.next/server/pages/api/documents/generate.js +2 -1
  21. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  22. package/.next/server/pages/api/documents/generated.js +1 -1
  23. package/.next/server/pages/api/kb/files.js +2 -1
  24. package/.next/server/pages/api/kb/upload.js +1 -1
  25. package/.next/server/pages/api/system/logs.js +2 -0
  26. package/.next/server/pages/api/system/logs.js.nft.json +1 -0
  27. package/.next/server/pages/asset-library.html +1 -1
  28. package/.next/server/pages/context/long-term.html +1 -1
  29. package/.next/server/pages/context/short-term.html +1 -1
  30. package/.next/server/pages/document-roles.html +1 -1
  31. package/.next/server/pages/document-specs.html +1 -1
  32. package/.next/server/pages/documents.html +1 -1
  33. package/.next/server/pages/guide.html +1 -1
  34. package/.next/server/pages/index.html +1 -1
  35. package/.next/server/pages/knowledge/file-detail.html +1 -1
  36. package/.next/server/pages/knowledge/files.html +1 -1
  37. package/.next/server/pages/knowledge/manage.html +1 -1
  38. package/.next/server/pages/knowledge/search.html +1 -1
  39. package/.next/server/pages/knowledge.html +1 -1
  40. package/.next/server/pages/models.html +1 -1
  41. package/.next/server/pages/overview.html +1 -1
  42. package/.next/server/pages/prompt.html +1 -1
  43. package/.next/server/pages/settings.html +1 -1
  44. package/.next/server/pages/system/logs.html +1 -0
  45. package/.next/server/pages/system/logs.js.nft.json +1 -0
  46. package/.next/server/pages-manifest.json +25 -22
  47. package/.next/static/8xsL1jpKns40nCUZXfzdc/_buildManifest.js +1 -0
  48. package/.next/static/chunks/1054-0bc42843b140e120.js +1 -0
  49. package/.next/static/chunks/1539-4cbefe760ca0ae2c.js +1 -0
  50. package/.next/static/chunks/1830-cabd00b9e865a498.js +4 -0
  51. package/.next/static/chunks/2700-03ae5530fdc95014.js +1 -0
  52. package/.next/static/chunks/2856-ac8dbcb84c6960e4.js +1 -0
  53. package/.next/static/chunks/288-304992fa705244a2.js +6 -0
  54. package/.next/static/chunks/{969-5d5ff5a3ed74f52b.js → 2969-2b1c9dec09863c33.js} +3 -3
  55. package/.next/static/chunks/4020-964ab4dd1c8bc8dc.js +1 -0
  56. package/.next/static/chunks/4260-18140c66386111a7.js +28 -0
  57. package/.next/static/chunks/4696-8675ea601a3cf725.js +1 -0
  58. package/.next/static/chunks/5174-963b6343ef5d5628.js +10 -0
  59. package/.next/static/chunks/{292-f0a2c92861c304e6.js → 5292-860654c8ecbfa554.js} +1 -1
  60. package/.next/static/chunks/6288-afb4a972f5ec0f8c.js +1 -0
  61. package/.next/static/chunks/6474-e99853dc4b0b4f37.js +1 -0
  62. package/.next/static/chunks/6985-c62a7a9c8c9ce25d.js +4 -0
  63. package/.next/static/chunks/7167-3194cd6d7b0156e9.js +1 -0
  64. package/.next/static/chunks/{271-39045be4cdbd6af1.js → 7271-0d4dab9994570a7c.js} +1 -1
  65. package/.next/static/chunks/{576-fd55b302cb0c9a48.js → 7576-e1b7b82dcd20a6dc.js} +1 -1
  66. package/.next/static/chunks/8332-df14c832a569ee70.js +1 -0
  67. package/.next/static/chunks/861-91cbdd34b8e23151.js +1 -0
  68. package/.next/static/chunks/8628-3438dc642afd4462.js +1 -0
  69. package/.next/static/chunks/{15-4683808cb8db7005.js → 9015-eb03937bff81f42d.js} +1 -1
  70. package/.next/static/chunks/{382-6ab5f41cd91edad0.js → 9382-2be85f64a2a04466.js} +1 -1
  71. package/.next/static/chunks/9400-3f253e755a16dd1a.js +78 -0
  72. package/.next/static/chunks/9958-4f828ecf03e2f16c.js +1 -0
  73. package/.next/static/chunks/9969-01dc77acd9935a57.js +1 -0
  74. package/.next/static/chunks/9978-ef33e50fc2b65303.js +1 -0
  75. package/.next/static/chunks/framework-fbc6f575b16f07d7.js +1 -0
  76. package/.next/static/chunks/main-105db6ecf7f64ff3.js +1 -0
  77. package/.next/static/chunks/pages/{_app-b1f31c6bbc0bb7b1.js → _app-d769a06b2dd2bbe2.js} +12 -12
  78. package/.next/static/chunks/pages/_error-c01b6fb772028676.js +1 -0
  79. package/.next/static/chunks/pages/asset-library-764f3ad063f40fff.js +1 -0
  80. package/.next/static/chunks/pages/context/long-term-3b59c9386df2b218.js +1 -0
  81. package/.next/static/chunks/pages/context/short-term-b1ab1b56112896bf.js +1 -0
  82. package/.next/static/chunks/pages/document-roles-0288a3e6e00e6e02.js +1 -0
  83. package/.next/static/chunks/pages/document-specs-e2337e693c352897.js +1 -0
  84. package/.next/static/chunks/pages/documents-cd370a6de9223124.js +1 -0
  85. package/.next/static/chunks/pages/guide-8cee9c05d4b3e9ec.js +1 -0
  86. package/.next/static/chunks/pages/index-cc55686ed0309a22.js +1 -0
  87. package/.next/static/chunks/pages/knowledge/file-detail-9d493b7de07860dc.js +1 -0
  88. package/.next/static/chunks/pages/knowledge/files-f15c37b88e8329b9.js +1 -0
  89. package/.next/static/chunks/pages/knowledge/manage-1e8b62ae3c336814.js +1 -0
  90. package/.next/static/chunks/pages/knowledge/search-50b40e01b826e035.js +1 -0
  91. package/.next/static/chunks/pages/knowledge-55e4c53985e79449.js +1 -0
  92. package/.next/static/chunks/pages/models-58d14888232c7212.js +1 -0
  93. package/.next/static/chunks/pages/overview-5c5f37e743f251c9.js +1 -0
  94. package/.next/static/chunks/pages/prompt-ecb8772b12e5a7e0.js +1 -0
  95. package/.next/static/chunks/pages/{settings-68f0d05bf95d12da.js → settings-af3b67f0b96364b5.js} +1 -1
  96. package/.next/static/chunks/pages/system/logs-7a90a654d4931f5f.js +1 -0
  97. package/.next/static/chunks/{webpack-77d10b4726f13aa5.js → webpack-689755a4ff6d1f93.js} +1 -1
  98. package/next.config.ts +0 -11
  99. package/package.json +6 -4
  100. package/scripts/verify-next-static.js +33 -0
  101. package/.next/static/chunks/167-d4f384b289ecb70c.js +0 -1
  102. package/.next/static/chunks/174-51b6d64f21e9b976.js +0 -10
  103. package/.next/static/chunks/183-8da0232dd30cdc81.js +0 -1
  104. package/.next/static/chunks/20-8968ee2d4013a5b8.js +0 -1
  105. package/.next/static/chunks/232-813af4932a145fdc.js +0 -6
  106. package/.next/static/chunks/260-cec84dc6c353e104.js +0 -28
  107. package/.next/static/chunks/350-8c5e13c0577a38c3.js +0 -1
  108. package/.next/static/chunks/400-1fa1899b7c3f0bb4.js +0 -78
  109. package/.next/static/chunks/577-5b2691f0c8f17187.js +0 -1
  110. package/.next/static/chunks/617-68a9e848c380f9c3.js +0 -1
  111. package/.next/static/chunks/628-27424ba8ca9ca8ce.js +0 -1
  112. package/.next/static/chunks/700-5d29b0475311f590.js +0 -1
  113. package/.next/static/chunks/80-96429163e5c103a8.js +0 -1
  114. package/.next/static/chunks/858-5e6982e2b239d4b7.js +0 -1
  115. package/.next/static/chunks/881-a1eb917222b66f09.js +0 -4
  116. package/.next/static/chunks/935-daa0026982d7fa8d.js +0 -1
  117. package/.next/static/chunks/951-8ecf8af33ab36369.js +0 -1
  118. package/.next/static/chunks/985-4b4a3ed36ada16eb.js +0 -4
  119. package/.next/static/chunks/framework-161be364fd69a7ce.js +0 -1
  120. package/.next/static/chunks/main-ed4abb3bb200c815.js +0 -1
  121. package/.next/static/chunks/pages/_error-282257fbdcc167b4.js +0 -1
  122. package/.next/static/chunks/pages/asset-library-82606363f9142bad.js +0 -1
  123. package/.next/static/chunks/pages/context/long-term-f2a550bc848ec1a3.js +0 -1
  124. package/.next/static/chunks/pages/context/short-term-1de28da82d2b6276.js +0 -1
  125. package/.next/static/chunks/pages/document-roles-54a1cc04116e8c18.js +0 -1
  126. package/.next/static/chunks/pages/document-specs-723dee6883949a17.js +0 -1
  127. package/.next/static/chunks/pages/documents-47516fed70f892dc.js +0 -1
  128. package/.next/static/chunks/pages/guide-8b0f474da04fc9f1.js +0 -1
  129. package/.next/static/chunks/pages/index-c5e0758e6b31deee.js +0 -1
  130. package/.next/static/chunks/pages/knowledge/file-detail-7a1a3d4352ecfa0a.js +0 -1
  131. package/.next/static/chunks/pages/knowledge/files-f0e05583bf7c57d9.js +0 -1
  132. package/.next/static/chunks/pages/knowledge/manage-8acff53019eb6cc1.js +0 -1
  133. package/.next/static/chunks/pages/knowledge/search-1f3bd8fcb7af3e4d.js +0 -1
  134. package/.next/static/chunks/pages/knowledge-905248d8dcb15453.js +0 -1
  135. package/.next/static/chunks/pages/models-11533caad3723009.js +0 -1
  136. package/.next/static/chunks/pages/overview-f80672c242d9aa32.js +0 -1
  137. package/.next/static/chunks/pages/prompt-c9bc7884a44d3767.js +0 -1
  138. package/.next/static/customize-agent-dashboard/_buildManifest.js +0 -1
  139. /package/.next/static/{customize-agent-dashboard → 8xsL1jpKns40nCUZXfzdc}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=3647,a.ids=[3647],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},47265:(a,b,c)=>{c.r(b),c.d(b,{config:()=>y,default:()=>x,handler:()=>A});var d={};c.r(d),c.d(d,{default:()=>u});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(55511),j=c.n(i),k=c(29021),l=c.n(k),m=c(21820),n=c.n(m),o=c(33873),p=c.n(o),q=c(67461),r=c(23328);let s=new Set(["e330cd023298a812503e10a067a3f88e1cbc094f37f6fd2a88fdb6799495b37e"]);async function t(a,b){let c=await fetch(`https://coresg-normal.trae.ai/api/ide/v1/text_to_image?prompt=${encodeURIComponent(a)}&image_size=${b}`,{signal:AbortSignal.timeout(6e4)}),d=c.headers.get("content-type")||"",e=Buffer.from(await c.arrayBuffer()),f=j().createHash("sha256").update(e).digest("hex");if(!c.ok)throw Error(`图片生成接口失败:${c.status} ${e.toString("utf8").slice(0,120)}`);if(!d.startsWith("image/")||!(e.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10]))||e.subarray(0,3).equals(Buffer.from([255,216,255]))||"RIFF"===e.subarray(0,4).toString("ascii")))throw Error(`图片生成接口未返回有效图片:${d||"unknown"} ${e.toString("utf8").slice(0,120)}`);return{contentType:d,buffer:e,hash:f,staticPlaceholder:s.has(f)}}async function u(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c="string"==typeof a.body?.prompt&&a.body.prompt.trim()?a.body.prompt.trim():"professional document cover, blue tactical map blueprint, realistic, clean website hero image, 16:9",d="string"==typeof a.body?.imageSize?a.body.imageSize:"landscape_16_9",e=(0,r.aY)(),{contentType:f,buffer:g,hash:h,staticPlaceholder:i}=await t(c,d),k=`test-cover-${Date.now()}.${f.includes("jpeg")||f.includes("jpg")?"jpg":f.includes("webp")?"webp":"png"}`,m=function(a,b,c){let d=j().createHash("sha1").update(p().resolve(a)).digest("hex").slice(0,12),e=p().join(n().homedir(),".customize-agent","projects",d,"generatedDocuments","assets");return l().mkdirSync(e,{recursive:!0}),l().writeFileSync(p().join(e,b),c),`generatedDocuments/assets/${b}`}(e,k,g),o={id:`asset-test-${Date.now()}`,type:"image",role:"generated",path:m,prompt:c,status:"generated",message:i?`测试生成返回固定图片:${f},${g.length} 字节,sha256=${h}`:`测试生成成功:${f},${g.length} 字节,sha256=${h}`};return(0,q.wq)([o],`test-${Date.now()}`,e),b.status(200).json({asset:o,contentType:f,bytes:g.length,hash:h,staticPlaceholder:i})}catch(a){return console.error("[api] assets/generated/test-generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var v=c(68970),w=c(50296);let x=(0,h.M)(d,"default"),y=(0,h.M)(d,"config"),z=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated/test-generate",pathname:"/api/assets/generated/test-generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function A(a,b,c){let d=await z.prepare(a,b,{srcPage:"/api/assets/generated/test-generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,v.getTracer)(),e=d.getActiveScopeSpan(),j=z.instrumentationOnRequestError.bind(z),k=async e=>z.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:z.isDev,page:"/api/assets/generated/test-generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==w.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(w.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:v.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(z.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},55511:a=>{a.exports=require("crypto")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>z,Jz:()=>B,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>C,a6:()=>u,uc:()=>A,v7:()=>s,wq:()=>x,yE:()=>y});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return q(m(c),e),e}function y(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function z(a,b=(0,i.aY)()){let c=y(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function A(a,b=(0,i.aY)()){let c=y(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function B(a,b,c=(0,i.aY)()){let d=y(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function C(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,g={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(g,b);let k=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...g,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return x(a.assets||[],e,b),d}).catch(a=>t({...g,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:k}),{taskId:f,documentId:e,record:g}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=47265));module.exports=c})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/package.json","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.stat","../../../../../../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/run-parallel","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/package.json","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.scandir","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.js","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/package.json","../../../../../../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/fastq","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/.pnpm/better-sqlite3@12.10.0/node_modules/bindings","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/package.json","../../../../../../../../node_modules/.pnpm/bindings@1.5.0/node_modules/file-uri-to-path","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/index.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/compile.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/constants.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/expand.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/parse.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/stringify.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/utils.js","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/package.json","../../../../../../../../node_modules/.pnpm/braces@3.0.3/node_modules/fill-range","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/@nodelib/fs.stat","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/@nodelib/fs.walk","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/index.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/managers/tasks.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/async.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/deep.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/entry.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/error.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/matchers/matcher.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/matchers/partial.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/provider.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/stream.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/sync.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/transformers/entry.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/async.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/reader.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/stream.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/sync.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/settings.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/errno.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/fs.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/index.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/path.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/pattern.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/stream.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/string.js","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/package.json","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/glob-parent","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/merge2","../../../../../../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/micromatch","../../../../../../../../node_modules/.pnpm/fastq@1.20.1/node_modules/fastq/package.json","../../../../../../../../node_modules/.pnpm/fastq@1.20.1/node_modules/fastq/queue.js","../../../../../../../../node_modules/.pnpm/fastq@1.20.1/node_modules/reusify","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/.pnpm/fill-range@7.1.1/node_modules/fill-range/index.js","../../../../../../../../node_modules/.pnpm/fill-range@7.1.1/node_modules/fill-range/package.json","../../../../../../../../node_modules/.pnpm/fill-range@7.1.1/node_modules/to-regex-range","../../../../../../../../node_modules/.pnpm/glob-parent@5.1.2/node_modules/glob-parent/index.js","../../../../../../../../node_modules/.pnpm/glob-parent@5.1.2/node_modules/glob-parent/package.json","../../../../../../../../node_modules/.pnpm/glob-parent@5.1.2/node_modules/is-glob","../../../../../../../../node_modules/.pnpm/is-extglob@2.1.1/node_modules/is-extglob/index.js","../../../../../../../../node_modules/.pnpm/is-extglob@2.1.1/node_modules/is-extglob/package.json","../../../../../../../../node_modules/.pnpm/is-glob@4.0.3/node_modules/is-extglob","../../../../../../../../node_modules/.pnpm/is-glob@4.0.3/node_modules/is-glob/index.js","../../../../../../../../node_modules/.pnpm/is-glob@4.0.3/node_modules/is-glob/package.json","../../../../../../../../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js","../../../../../../../../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/package.json","../../../../../../../../node_modules/.pnpm/merge2@1.4.1/node_modules/merge2/index.js","../../../../../../../../node_modules/.pnpm/merge2@1.4.1/node_modules/merge2/package.json","../../../../../../../../node_modules/.pnpm/micromatch@4.0.8/node_modules/braces","../../../../../../../../node_modules/.pnpm/micromatch@4.0.8/node_modules/micromatch/index.js","../../../../../../../../node_modules/.pnpm/micromatch@4.0.8/node_modules/micromatch/package.json","../../../../../../../../node_modules/.pnpm/micromatch@4.0.8/node_modules/picomatch","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/next-server/pages-api.runtime.prod.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/raw-body/index.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/compiled/raw-body/package.json","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/.pnpm/next@15.5.19_react-dom@19.2.7_react@19.2.7__react@19.2.7_sass@1.101.0/node_modules/next/package.json","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/_vendor/partial-json-parser/parser.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/auth/workload-identity-auth.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/azure.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/bedrock.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/client.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/api-promise.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/error.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/pagination.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/resource.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/streaming.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/core/uploads.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/error.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/index.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/decoders/line.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/detect-platform.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/errors.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/headers.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/parse.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/qs/formats.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/qs/stringify.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/qs/utils.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/request-options.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/shims.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/to-file.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/tslib.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/uploads.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/base64.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/bytes.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/env.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/log.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/path.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/query.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/sleep.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/uuid.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/internal/utils/values.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/AbstractChatCompletionRunner.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/AssistantStream.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/ChatCompletionRunner.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/ChatCompletionStream.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/ChatCompletionStreamingRunner.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/EventStream.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/ResponsesParser.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/RunnableFunction.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/Util.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/chatCompletionUtils.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/parser.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/lib/responses/ResponseStream.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/package.json","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/admin.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/admin-api-keys.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/audit-logs.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/certificates.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/data-retention.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/groups/groups.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/groups/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/groups/users.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/invites.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/organization.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/api-keys.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/certificates.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/data-retention.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/groups/groups.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/groups/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/model-permissions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/projects.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/rate-limits.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/service-accounts.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/spend-alerts.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/users/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/projects/users/users.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/spend-alerts.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/usage.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/users/roles.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/admin/organization/users/users.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/audio/audio.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/audio/speech.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/audio/transcriptions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/audio/translations.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/batches.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/assistants.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/beta.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/chatkit/chatkit.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/chatkit/sessions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/chatkit/threads.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/realtime/realtime.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/realtime/sessions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/realtime/transcription-sessions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/threads/messages.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/threads/runs/runs.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/threads/runs/steps.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/beta/threads/threads.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/chat/chat.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/chat/completions/completions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/chat/completions/index.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/chat/completions/messages.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/chat/index.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/completions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/containers/containers.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/containers/files/content.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/containers/files/files.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/conversations/conversations.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/conversations/items.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/embeddings.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/evals/evals.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/evals/runs/output-items.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/evals/runs/runs.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/files.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/alpha/alpha.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/alpha/graders.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/fine-tuning.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/jobs/jobs.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/fine-tuning/methods.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/graders/grader-models.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/graders/graders.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/images.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/index.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/models.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/moderations.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/realtime/calls.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/realtime/client-secrets.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/realtime/realtime.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/responses/input-items.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/responses/input-tokens.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/responses/responses.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/shared.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/skills/content.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/skills/skills.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/skills/versions/content.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/skills/versions/versions.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/uploads/parts.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/uploads/uploads.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/vector-stores/file-batches.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/vector-stores/files.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/vector-stores/vector-stores.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/videos.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/webhooks.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/webhooks/index.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/resources/webhooks/webhooks.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/streaming.js","../../../../../../../../node_modules/.pnpm/openai@6.42.0_ws@8.21.0_zod@4.4.3/node_modules/openai/version.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/index.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/constants.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/parse.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/picomatch.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/scan.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/utils.js","../../../../../../../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/package.json","../../../../../../../../node_modules/.pnpm/queue-microtask@1.2.3/node_modules/queue-microtask/index.js","../../../../../../../../node_modules/.pnpm/queue-microtask@1.2.3/node_modules/queue-microtask/package.json","../../../../../../../../node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/package.json","../../../../../../../../node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js","../../../../../../../../node_modules/.pnpm/run-parallel@1.2.0/node_modules/queue-microtask","../../../../../../../../node_modules/.pnpm/run-parallel@1.2.0/node_modules/run-parallel/index.js","../../../../../../../../node_modules/.pnpm/run-parallel@1.2.0/node_modules/run-parallel/package.json","../../../../../../../../node_modules/.pnpm/sqlite-vec@0.1.9/node_modules/sqlite-vec/index.cjs","../../../../../../../../node_modules/.pnpm/sqlite-vec@0.1.9/node_modules/sqlite-vec/index.mjs","../../../../../../../../node_modules/.pnpm/sqlite-vec@0.1.9/node_modules/sqlite-vec/package.json","../../../../../../../../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/is-number","../../../../../../../../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js","../../../../../../../../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/package.json","../../../../../../../../node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/dist/cpexcel.js","../../../../../../../../node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/package.json","../../../../../../../../node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/xlsx.js","../../../../../../../../package.json","../../../../../../../../packages/knowledge/dist/chunking/text-chunker.js","../../../../../../../../packages/knowledge/dist/classification/classifier.js","../../../../../../../../packages/knowledge/dist/constants.js","../../../../../../../../packages/knowledge/dist/core/change-tracker.js","../../../../../../../../packages/knowledge/dist/core/file-scanner.js","../../../../../../../../packages/knowledge/dist/core/index-state-store.js","../../../../../../../../packages/knowledge/dist/core/knowledge-base-manager.js","../../../../../../../../packages/knowledge/dist/core/multi-project-manager.js","../../../../../../../../packages/knowledge/dist/core/project-config.js","../../../../../../../../packages/knowledge/dist/core/project-id.js","../../../../../../../../packages/knowledge/dist/core/project-registry.js","../../../../../../../../packages/knowledge/dist/dedup/dedup-engine.js","../../../../../../../../packages/knowledge/dist/dedup/relationship-detector.js","../../../../../../../../packages/knowledge/dist/embedding/embedding-provider.js","../../../../../../../../packages/knowledge/dist/extraction/content-extractor.js","../../../../../../../../packages/knowledge/dist/extraction/external-extractor.js","../../../../../../../../packages/knowledge/dist/extraction/module-resolver.js","../../../../../../../../packages/knowledge/dist/index.js","../../../../../../../../packages/knowledge/dist/search/federation-search.js","../../../../../../../../packages/knowledge/dist/vector/collection-manager.js","../../../../../../../../packages/knowledge/dist/vector/sqlite-vec-store.js","../../../../../../../../packages/knowledge/dist/vector/vector-indexer.js","../../../../../../../../packages/knowledge/node_modules/better-sqlite3","../../../../../../../../packages/knowledge/node_modules/fast-glob","../../../../../../../../packages/knowledge/node_modules/sqlite-vec","../../../../../../../../packages/knowledge/package.json","../../../../../../../../packages/llm/dist/index.js","../../../../../../../../packages/llm/dist/interface.js","../../../../../../../../packages/llm/dist/providers/anthropic.js","../../../../../../../../packages/llm/dist/providers/deepseek.js","../../../../../../../../packages/llm/dist/providers/google.js","../../../../../../../../packages/llm/dist/providers/ollama.js","../../../../../../../../packages/llm/dist/providers/openai-base.js","../../../../../../../../packages/llm/dist/providers/openai.js","../../../../../../../../packages/llm/dist/providers/openrouter.js","../../../../../../../../packages/llm/dist/retry.js","../../../../../../../../packages/llm/dist/utils/messages.js","../../../../../../../../packages/llm/dist/utils/pricing.js","../../../../../../../../packages/llm/dist/utils/response.js","../../../../../../../../packages/llm/dist/utils/tokens.js","../../../../../../../../packages/llm/node_modules/openai","../../../../../../../../packages/llm/package.json","../../../../../../../../packages/runtime/dist/config-store.js","../../../../../../../../packages/runtime/dist/index.js","../../../../../../../../packages/runtime/dist/telemetry/audit-logger.js","../../../../../../../../packages/runtime/node_modules/@customize-agent/types","../../../../../../../../packages/runtime/package.json","../../../../../../../../packages/types/dist/constants.js","../../../../../../../../packages/types/dist/errors.js","../../../../../../../../packages/types/dist/index.js","../../../../../../../../packages/types/dist/session.js","../../../../../../../../packages/types/dist/task.js","../../../../../../../../packages/types/package.json","../../../../../../node_modules/@customize-agent/knowledge","../../../../../../node_modules/@customize-agent/llm","../../../../../../node_modules/@customize-agent/runtime","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../node_modules/xlsx","../../../../../../package.json","../../../../../package.json","../../../../chunks/3328.js","../../../../chunks/3445.js","../../../../chunks/9705.js","../../../../webpack-api-runtime.js"]}
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=6334,a.ids=[6334],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55883:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(48161),k=c(67461);async function l(a,b){try{if("GET"===a.method)return b.status(200).json({assets:(0,k.BH)()});if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,k.JU)(c),b.status(200).json({ok:!0,assets:(0,k.BH)()})}if("POST"===a.method){let{id:c,action:d,target:e="file"}=a.body;if(!c||!d)return b.status(400).json({error:"id and action required"});if("index"===d){let a=await (0,k.uc)(c);if(!a)return b.status(404).json({error:"asset not found"});return b.status(200).json({asset:a,assets:(0,k.BH)()})}if("open"===d){let a=(0,k.Jz)(c,e);if(!a)return b.status(404).json({error:"asset file not found"});return(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(a).unref(),b.status(200).json({ok:!0})}}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] assets/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated",pathname:"/api/assets/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/assets/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/assets/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=55883));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6334,a.ids=[6334],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55883:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(48161),k=c(67461);async function l(a,b){try{if("GET"===a.method)return b.status(200).json({assets:(0,k.BH)()});if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,k.JU)(c),b.status(200).json({ok:!0,assets:(0,k.BH)()})}if("POST"===a.method){let{id:c,action:d,target:e="file"}=a.body;if(!c||!d)return b.status(400).json({error:"id and action required"});if("index"===d){let a=await (0,k.uc)(c);if(!a)return b.status(404).json({error:"asset not found"});return b.status(200).json({asset:a,assets:(0,k.BH)()})}if("open"===d){let a=(0,k.Jz)(c,e);if(!a)return b.status(404).json({error:"asset file not found"});return(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(a).unref(),b.status(200).json({ok:!0})}}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] assets/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated",pathname:"/api/assets/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/assets/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/assets/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>z,Jz:()=>B,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>C,a6:()=>u,uc:()=>A,v7:()=>s,wq:()=>x,yE:()=>y});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return q(m(c),e),e}function y(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function z(a,b=(0,i.aY)()){let c=y(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function A(a,b=(0,i.aY)()){let c=y(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function B(a,b,c=(0,i.aY)()){let d=y(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function C(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,g={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(g,b);let k=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...g,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return x(a.assets||[],e,b),d}).catch(a=>t({...g,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:k}),{taskId:f,documentId:e,record:g}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=55883));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=1266,a.ids=[1266],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},52084:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(95393),k=c(96770);async function l(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{provider:c}=a.body;if(!c)return b.status(400).json({success:!1,message:"Provider name required"});let d=(0,i.I)().getProvider(c),e=Date.now();try{let a=(0,j.createProvider)(function(a,b){let c=(0,k.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":"openai"===c?["deepseek","openai","openrouter","ollama"].includes(a)?a:"openai":a}(c,d),{apiKey:d?.apiKey,baseUrl:d?.baseUrl,modelName:c});await a.chat([{role:"user",content:"ping"}],{maxTokens:1,temperature:0}),b.status(200).json({success:!0,message:"连接成功",latencyMs:Date.now()-e})}catch(a){console.error("[api] config/healthCheck (inner)",a),b.status(200).json({success:!1,message:"Health check failed",latencyMs:Date.now()-e})}}catch(a){console.error("[api] config/healthCheck",a),b.status(500).json({error:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/healthCheck",pathname:"/api/config/healthCheck",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/config/healthCheck"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/config/healthCheck",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=52084));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=1266,a.ids=[1266],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},9461:(a,b,c)=>{c.d(b,{cW:()=>o,hH:()=>p,mG:()=>r,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(55511),k=c.n(j);let l=i().join(g().homedir(),".customize-agent","logs"),m=i().join(l,"errors.jsonl");function n(a){let{message:b,stack:c}=function(a){if(a instanceof Error)return{message:a.message,stack:a.stack};if("string"==typeof a)return{message:a};try{return{message:JSON.stringify(a)}}catch{return{message:String(a)}}}(a.error),d={id:`err_${Date.now()}_${k().randomBytes(4).toString("hex")}`,level:a.level||"error",source:a.source,functionName:a.functionName,message:b,stack:c,request:a.req?{method:a.req.method,url:a.req.url,query:a.req.query}:void 0,meta:a.meta,createdAt:Date.now()};try{e().mkdirSync(l,{recursive:!0}),function(){try{if(e().statSync(m).size<=2097152)return;e().renameSync(m,i().join(l,`errors-${Date.now()}.jsonl`))}catch{}}(),e().appendFileSync(m,`${JSON.stringify(d)}
2
+ `)}catch(a){console.error("[errorLogService] failed to write error log",a)}return d}function o(a=200){try{return e().readFileSync(m,"utf8").split("\n").filter(Boolean).slice(-a).reverse().map(a=>JSON.parse(a))}catch{return[]}}function p(){try{e().rmSync(m,{force:!0})}catch{}}let q=!1;function r(){q||(q=!0,process.on("uncaughtException",a=>{n({source:"process",functionName:"uncaughtException",error:a}),console.error("[process] uncaughtException",a)}),process.on("unhandledRejection",a=>{n({source:"process",functionName:"unhandledRejection",error:a}),console.error("[process] unhandledRejection",a)}))}},17496:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(9461);function e(a,b){return async function(c,e){try{await b(c,e)}catch(g){let f=(0,d.wF)({source:a,functionName:b.name||"anonymous",error:g,req:c});console.error(`[${a}]`,f.id,g),e.headersSent||e.status(500).json({error:g instanceof Error?g.message:"Internal server error",requestId:f.id})}}}(0,d.mG)()},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},52084:(a,b,c)=>{c.r(b),c.d(b,{config:()=>r,default:()=>q,handler:()=>t});var d={};c.r(d),c.d(d,{default:()=>n});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(95393),k=c(96770),l=c(9461);async function m(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let{provider:c}=a.body;if(!c)return b.status(400).json({success:!1,message:"Provider name required"});let d=(0,i.I)().getProvider(c),e=Date.now();try{let a=(0,j.createProvider)(function(a,b){let c=(0,k.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":"openai"===c?["deepseek","openai","openrouter","ollama"].includes(a)?a:"openai":a}(c,d),{apiKey:d?.apiKey,baseUrl:d?.baseUrl,modelName:c,directEndpoint:d?.directEndpoint});await a.chat([{role:"user",content:"ping"}],{maxTokens:1,temperature:0}),b.status(200).json({success:!0,message:"连接成功",latencyMs:Date.now()-e})}catch(f){let d=(0,l.wF)({level:"warn",source:"api/config/healthCheck",functionName:"providerHealthCheck",error:f,req:a,meta:{providerName:c}});b.status(200).json({success:!1,message:f instanceof Error?f.message:"Health check failed",latencyMs:Date.now()-e,requestId:d.id})}}let n=(0,c(17496).j)("api/config/healthCheck",m);var o=c(68970),p=c(50296);let q=(0,h.M)(d,"default"),r=(0,h.M)(d,"config"),s=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/healthCheck",pathname:"/api/config/healthCheck",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function t(a,b,c){let d=await s.prepare(a,b,{srcPage:"/api/config/healthCheck"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,o.getTracer)(),e=d.getActiveScopeSpan(),j=s.instrumentationOnRequestError.bind(s),k=async e=>s.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:s.isDev,page:"/api/config/healthCheck",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(p.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:o.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(s.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},55511:a=>{a.exports=require("crypto")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=52084));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=4900,a.ids=[4900],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},56669:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(96770);function k(a,b){if(!["GET","DELETE"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c=a.query.provider,d=(0,i.I)(),e=d.getProvider(c);if(!e)return b.status(404).json({error:"Not found"});if("DELETE"===a.method){let a=d.load();for(let b of(delete a.providers[c],["reader","reasoning","action"])){let d=a.models[b];d.list=d.list.filter(a=>a.provider!==c),d.list.every(a=>a.name!==d.active)&&(d.active=d.list[0]?.name??"")}return d.save(a),b.status(200).json({success:!0})}b.status(200).json({name:c,apiKey:e.apiKey?"••••"+e.apiKey.slice(-4):void 0,baseUrl:e.baseUrl,protocol:e.protocol,detectedProtocol:(0,j.detectProtocol)(c),hasApiKey:!!e.apiKey,capabilities:e.capabilities??{}})}catch(a){console.error("[api] config/providers/[provider]",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/providers/[provider]",pathname:"/api/config/providers/[provider]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/config/providers/[provider]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/config/providers/[provider]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=56669));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=4900,a.ids=[4900],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},56669:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(96770);function k(a,b){if(!["GET","DELETE"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c=a.query.provider,d=(0,i.I)(),e=d.getProvider(c);if(!e)return b.status(404).json({error:"Not found"});if("DELETE"===a.method){let a=d.load();for(let b of(delete a.providers[c],["reader","reasoning","action"])){let d=a.models[b];d.list=d.list.filter(a=>a.provider!==c),d.list.every(a=>a.name!==d.active)&&(d.active=d.list[0]?.name??"")}return d.save(a),b.status(200).json({success:!0})}b.status(200).json({name:c,apiKey:e.apiKey?"••••"+e.apiKey.slice(-4):void 0,baseUrl:e.baseUrl,protocol:e.protocol,directEndpoint:!0===e.directEndpoint,detectedProtocol:(0,j.detectProtocol)(c),hasApiKey:!!e.apiKey,capabilities:e.capabilities??{}})}catch(a){console.error("[api] config/providers/[provider]",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/providers/[provider]",pathname:"/api/config/providers/[provider]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/config/providers/[provider]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/config/providers/[provider]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=56669));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=6350,a.ids=[6350],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},89572:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(96770);async function k(a,b){if(!["GET","POST"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c=(0,i.I)();if("POST"===a.method){let{name:d,apiKey:e,baseUrl:f,protocol:g,capabilities:h,oldName:i}=a.body;if(!d)return b.status(400).json({error:"Provider name required"});let j=String(d),k=i?String(i):j;if(k!==j){let a=c.load(),b=a.providers[k]??{};for(let c of(a.providers[j]={...b,...a.providers[j]},delete a.providers[k],["reader","reasoning","action"])){let b=a.models[c];b.list=b.list.map(a=>a.provider===k?{...a,provider:j,name:a.name===k?j:a.name}:a),b.active===k&&(b.active=j)}c.save(a)}return c.ensureProvider(j),void 0!==e&&c.setProviderKey(j,e),void 0!==f&&c.setProviderUrl(j,f),void 0!==g&&c.setProviderProtocol(j,g),void 0!==h&&"object"==typeof h&&c.setProviderCapabilities(j,{imageGeneration:!0===h.imageGeneration,imageUnderstanding:!0===h.imageUnderstanding,fileUnderstanding:!0===h.fileUnderstanding,audio:!0===h.audio,video:!0===h.video}),c.load().models.action.list.some(a=>a.provider===j&&a.name===j)||c.addModel("action",{provider:j,name:j}),b.status(200).json({success:!0})}let d=c.load();b.status(200).json(Object.entries(d.providers).map(([a,b])=>({name:a,apiKey:b.apiKey?"••••"+b.apiKey.slice(-4):void 0,baseUrl:b.baseUrl,protocol:b.protocol,detectedProtocol:(0,j.detectProtocol)(a),hasApiKey:!!b.apiKey,capabilities:b.capabilities??{}})))}catch(c){let a=c instanceof Error?c.message:String(c);console.error("[api] config/providers",c),b.status(500).json({error:a||"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/providers",pathname:"/api/config/providers",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/config/providers"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/config/providers",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=89572));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6350,a.ids=[6350],a.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},9461:(a,b,c)=>{c.d(b,{cW:()=>o,hH:()=>p,mG:()=>r,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(55511),k=c.n(j);let l=i().join(g().homedir(),".customize-agent","logs"),m=i().join(l,"errors.jsonl");function n(a){let{message:b,stack:c}=function(a){if(a instanceof Error)return{message:a.message,stack:a.stack};if("string"==typeof a)return{message:a};try{return{message:JSON.stringify(a)}}catch{return{message:String(a)}}}(a.error),d={id:`err_${Date.now()}_${k().randomBytes(4).toString("hex")}`,level:a.level||"error",source:a.source,functionName:a.functionName,message:b,stack:c,request:a.req?{method:a.req.method,url:a.req.url,query:a.req.query}:void 0,meta:a.meta,createdAt:Date.now()};try{e().mkdirSync(l,{recursive:!0}),function(){try{if(e().statSync(m).size<=2097152)return;e().renameSync(m,i().join(l,`errors-${Date.now()}.jsonl`))}catch{}}(),e().appendFileSync(m,`${JSON.stringify(d)}
2
+ `)}catch(a){console.error("[errorLogService] failed to write error log",a)}return d}function o(a=200){try{return e().readFileSync(m,"utf8").split("\n").filter(Boolean).slice(-a).reverse().map(a=>JSON.parse(a))}catch{return[]}}function p(){try{e().rmSync(m,{force:!0})}catch{}}let q=!1;function r(){q||(q=!0,process.on("uncaughtException",a=>{n({source:"process",functionName:"uncaughtException",error:a}),console.error("[process] uncaughtException",a)}),process.on("unhandledRejection",a=>{n({source:"process",functionName:"unhandledRejection",error:a}),console.error("[process] unhandledRejection",a)}))}},17496:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(9461);function e(a,b){return async function(c,e){try{await b(c,e)}catch(g){let f=(0,d.wF)({source:a,functionName:b.name||"anonymous",error:g,req:c});console.error(`[${a}]`,f.id,g),e.headersSent||e.status(500).json({error:g instanceof Error?g.message:"Internal server error",requestId:f.id})}}}(0,d.mG)()},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},55511:a=>{a.exports=require("crypto")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},89572:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(2323),j=c(96770);async function k(a,b){if(!["GET","POST"].includes(a.method))return b.status(405).json({error:"Method not allowed"});let c=(0,i.I)();if("POST"===a.method){let{name:d,apiKey:e,baseUrl:f,protocol:g,directEndpoint:h,capabilities:i,oldName:j}=a.body;if(!d)return b.status(400).json({error:"Provider name required"});let k=String(d),l=j?String(j):k;if(l!==k){let a=c.load(),b=a.providers[l]??{};for(let c of(a.providers[k]={...b,...a.providers[k]},delete a.providers[l],["reader","reasoning","action"])){let b=a.models[c];b.list=b.list.map(a=>a.provider===l?{...a,provider:k,name:a.name===l?k:a.name}:a),b.active===l&&(b.active=k)}c.save(a)}return c.ensureProvider(k),void 0!==e&&c.setProviderKey(k,e),void 0!==f&&c.setProviderUrl(k,f),void 0!==g&&c.setProviderProtocol(k,g),void 0!==h&&c.setProviderDirectEndpoint(k,!0===h),void 0!==i&&"object"==typeof i&&c.setProviderCapabilities(k,{imageGeneration:!0===i.imageGeneration,imageUnderstanding:!0===i.imageUnderstanding,fileUnderstanding:!0===i.fileUnderstanding,audio:!0===i.audio,video:!0===i.video}),c.load().models.action.list.some(a=>a.provider===k&&a.name===k)||c.addModel("action",{provider:k,name:k}),b.status(200).json({success:!0})}let d=c.load();b.status(200).json(Object.entries(d.providers).map(([a,b])=>({name:a,apiKey:b.apiKey?"••••"+b.apiKey.slice(-4):void 0,baseUrl:b.baseUrl,protocol:b.protocol,directEndpoint:!0===b.directEndpoint,detectedProtocol:(0,j.detectProtocol)(a),hasApiKey:!!b.apiKey,capabilities:b.capabilities??{}})))}let l=(0,c(17496).j)("api/config/providers",k);var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/config/providers",pathname:"/api/config/providers",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/config/providers"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/config/providers",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=89572));module.exports=c})();
@@ -1,4 +1,5 @@
1
- "use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},87550:a=>{a.exports=require("better-sqlite3")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>t,default:()=>s,handler:()=>v});var d={};c.r(d),c.d(d,{default:()=>p});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j),l=c(67461);function m(a){return a.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;")}function n(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${m(a)}</w:t></w:r></w:p>`).join("")}async function o(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,m(a)).replace(/\{\{content\}\}/gu,n(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${m(a)}</w:t></w:r></w:p>${n(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function p(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let e=a.body,f=e.documentId?(0,l.v7)(e.documentId):null;if(e.documentId&&!f)return b.status(404).json({error:"Document not found"});let g=f?.title||e.title||"document",h=f?.editedMarkdown||f?.markdown||e.markdown||"",i=e.format||"markdown",j=f?.draft?.exportGate||e.exportGate;if(e.enforceGate&&j?.blockingIssues?.length)return b.status(422).json({error:"Export gate failed",issues:j.blockingIssues});let k=g.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===i)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(h);if("docx"===i){let a=await o(g,h,e.wordTemplatePath);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:n}=await Promise.resolve().then(c.bind(c,83142)),p=(d=n.parse(h,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${m(g)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===i)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.html`)}`),b.status(200).send(p);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(p,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch{let a=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
1
+ "use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={9461:(a,b,c)=>{c.d(b,{cW:()=>o,hH:()=>p,mG:()=>r,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(55511),k=c.n(j);let l=i().join(g().homedir(),".customize-agent","logs"),m=i().join(l,"errors.jsonl");function n(a){let{message:b,stack:c}=function(a){if(a instanceof Error)return{message:a.message,stack:a.stack};if("string"==typeof a)return{message:a};try{return{message:JSON.stringify(a)}}catch{return{message:String(a)}}}(a.error),d={id:`err_${Date.now()}_${k().randomBytes(4).toString("hex")}`,level:a.level||"error",source:a.source,functionName:a.functionName,message:b,stack:c,request:a.req?{method:a.req.method,url:a.req.url,query:a.req.query}:void 0,meta:a.meta,createdAt:Date.now()};try{e().mkdirSync(l,{recursive:!0}),function(){try{if(e().statSync(m).size<=2097152)return;e().renameSync(m,i().join(l,`errors-${Date.now()}.jsonl`))}catch{}}(),e().appendFileSync(m,`${JSON.stringify(d)}
2
+ `)}catch(a){console.error("[errorLogService] failed to write error log",a)}return d}function o(a=200){try{return e().readFileSync(m,"utf8").split("\n").filter(Boolean).slice(-a).reverse().map(a=>JSON.parse(a))}catch{return[]}}function p(){try{e().rmSync(m,{force:!0})}catch{}}let q=!1;function r(){q||(q=!0,process.on("uncaughtException",a=>{n({source:"process",functionName:"uncaughtException",error:a}),console.error("[process] uncaughtException",a)}),process.on("unhandledRejection",a=>{n({source:"process",functionName:"unhandledRejection",error:a}),console.error("[process] unhandledRejection",a)}))}},15751:a=>{a.exports=require("xlsx")},17496:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(9461);function e(a,b){return async function(c,e){try{await b(c,e)}catch(g){let f=(0,d.wF)({source:a,functionName:b.name||"anonymous",error:g,req:c});console.error(`[${a}]`,f.id,g),e.headersSent||e.status(500).json({error:g instanceof Error?g.message:"Internal server error",requestId:f.id})}}}(0,d.mG)()},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55511:a=>{a.exports=require("crypto")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>z,Jz:()=>B,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>C,a6:()=>u,uc:()=>A,v7:()=>s,wq:()=>x,yE:()=>y});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return q(m(c),e),e}function y(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function z(a,b=(0,i.aY)()){let c=y(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function A(a,b=(0,i.aY)()){let c=y(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function B(a,b,c=(0,i.aY)()){let d=y(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function C(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,g={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(g,b);let k=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...g,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return x(a.assets||[],e,b),d}).catch(a=>t({...g,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:k}),{taskId:f,documentId:e,record:g}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},87550:a=>{a.exports=require("better-sqlite3")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>w,default:()=>v,handler:()=>y});var d={};c.r(d),c.d(d,{default:()=>s});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j),l=c(67461),m=c(9461);function n(a){return a.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;")}function o(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${n(a)}</w:t></w:r></w:p>`).join("")}async function p(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,n(a)).replace(/\{\{content\}\}/gu,o(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${n(a)}</w:t></w:r></w:p>${o(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}function q(a){let b=a.message.trim();return!/^(事实冲突|必需章节缺失):/u.test(b)&&/出现禁用文本\s*(资料未提供|占位|TODO|TBD)|正文包含.*(资料未提供|占位)|图片、地图或附件引用路径明显无效|无效路径|表格语法错误|临时远程生成 URL|提示词全文|内部错误/iu.test(b)}async function r(a,b){var d;if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let e=a.body,f=e.documentId?(0,l.v7)(e.documentId):null;if(e.documentId&&!f)return b.status(404).json({error:"Document not found"});let g=f?.title||e.title||"document",h=f?.editedMarkdown||f?.markdown||e.markdown||"",i=e.format||"markdown",j=f?.draft?.exportGate||e.exportGate,k=j?.blockingIssues?.filter(q)||[];if(e.enforceGate&&k.length)return b.status(422).json({error:"Export gate failed",issues:k});let o=g.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===i)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${o}.md`)}`),b.status(200).send(h);if("docx"===i){let a=await p(g,h,e.wordTemplatePath);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${o}.docx`)}`),b.status(200).send(a)}let{marked:r}=await Promise.resolve().then(c.bind(c,83142)),s=(d=r.parse(h,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${n(g)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===i)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${o}.html`)}`),b.status(200).send(s);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(s,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${o}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch(d){(0,m.wF)({level:"warn",source:"api/documents/export",functionName:"pdfExportChromium",error:d,req:a,meta:{fallback:"minimal-pdf"}});let c=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
2
3
  stream
3
4
  ${b}
4
5
  endstream`);j.push(f(`<< /Type /Page /Parent ${h} 0 R /MediaBox [0 0 595 842] /Resources << /Font << /F1 ${i} 0 R >> >> /Contents ${c} 0 R >>`))}e[g-1]=`<< /Type /Catalog /Pages ${h} 0 R >>`,e[h-1]=`<< /Type /Pages /Kids [${j.map(a=>`${a} 0 R`).join(" ")}] /Count ${j.length} >>`;let k="%PDF-1.4\n",l=[0];e.forEach((a,b)=>{l.push(Buffer.byteLength(k)),k+=`${b+1} 0 obj
@@ -11,4 +12,4 @@ ${l.slice(1).map(a=>`${String(a).padStart(10,"0")} 00000 n `).join("\n")}
11
12
  trailer << /Root ${g} 0 R /Size ${e.length+1} >>
12
13
  startxref
13
14
  ${m}
14
- %%EOF`,Buffer.from(k,"binary")}(g,h);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(a)}}catch(a){console.error("[api] documents/export",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var q=c(68970),r=c(50296);let s=(0,h.M)(d,"default"),t=(0,h.M)(d,"config"),u=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/export",pathname:"/api/documents/export",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function v(a,b,c){let d=await u.prepare(a,b,{srcPage:"/api/documents/export"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,q.getTracer)(),e=d.getActiveScopeSpan(),j=u.instrumentationOnRequestError.bind(u),k=async e=>u.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:u.isDev,page:"/api/documents/export",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==r.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(r.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:q.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(u.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=89529));module.exports=c})();
15
+ %%EOF`,Buffer.from(k,"binary")}(g,h);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${o}.pdf`)}`),b.status(200).send(c)}}let s=(0,c(17496).j)("api/documents/export",r);var t=c(68970),u=c(50296);let v=(0,h.M)(d,"default"),w=(0,h.M)(d,"config"),x=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/export",pathname:"/api/documents/export",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function y(a,b,c){let d=await x.prepare(a,b,{srcPage:"/api/documents/export"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,t.getTracer)(),e=d.getActiveScopeSpan(),j=x.instrumentationOnRequestError.bind(x),k=async e=>x.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:x.isDev,page:"/api/documents/export",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(u.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:t.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(x.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=89529));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445),j=c(67461);async function k(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f,sync:g=!1}=a.body;if(!c)return b.status(400).json({error:"templateId required"});if(g){let a=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});return b.status(200).json({draft:a})}let h=(0,j.YL)({templateId:c,requirement:d,maxEvidencePerChapter:e},f);b.status(202).json(h)}catch(a){console.error("[api] documents/generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=28630));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={9461:(a,b,c)=>{c.d(b,{cW:()=>o,hH:()=>p,mG:()=>r,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(55511),k=c.n(j);let l=i().join(g().homedir(),".customize-agent","logs"),m=i().join(l,"errors.jsonl");function n(a){let{message:b,stack:c}=function(a){if(a instanceof Error)return{message:a.message,stack:a.stack};if("string"==typeof a)return{message:a};try{return{message:JSON.stringify(a)}}catch{return{message:String(a)}}}(a.error),d={id:`err_${Date.now()}_${k().randomBytes(4).toString("hex")}`,level:a.level||"error",source:a.source,functionName:a.functionName,message:b,stack:c,request:a.req?{method:a.req.method,url:a.req.url,query:a.req.query}:void 0,meta:a.meta,createdAt:Date.now()};try{e().mkdirSync(l,{recursive:!0}),function(){try{if(e().statSync(m).size<=2097152)return;e().renameSync(m,i().join(l,`errors-${Date.now()}.jsonl`))}catch{}}(),e().appendFileSync(m,`${JSON.stringify(d)}
2
+ `)}catch(a){console.error("[errorLogService] failed to write error log",a)}return d}function o(a=200){try{return e().readFileSync(m,"utf8").split("\n").filter(Boolean).slice(-a).reverse().map(a=>JSON.parse(a))}catch{return[]}}function p(){try{e().rmSync(m,{force:!0})}catch{}}let q=!1;function r(){q||(q=!0,process.on("uncaughtException",a=>{n({source:"process",functionName:"uncaughtException",error:a}),console.error("[process] uncaughtException",a)}),process.on("unhandledRejection",a=>{n({source:"process",functionName:"unhandledRejection",error:a}),console.error("[process] unhandledRejection",a)}))}},15751:a=>{a.exports=require("xlsx")},17496:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(9461);function e(a,b){return async function(c,e){try{await b(c,e)}catch(g){let f=(0,d.wF)({source:a,functionName:b.name||"anonymous",error:g,req:c});console.error(`[${a}]`,f.id,g),e.headersSent||e.status(500).json({error:g instanceof Error?g.message:"Internal server error",requestId:f.id})}}}(0,d.mG)()},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445),j=c(67461);async function k(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f,sync:g=!1}=a.body;if(!c)return b.status(400).json({error:"templateId required"});if(g){let a=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});return b.status(200).json({draft:a})}let h=(0,j.YL)({templateId:c,requirement:d,maxEvidencePerChapter:e},f);b.status(202).json(h)}let l=(0,c(17496).j)("api/documents/generate",k);var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55511:a=>{a.exports=require("crypto")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>z,Jz:()=>B,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>C,a6:()=>u,uc:()=>A,v7:()=>s,wq:()=>x,yE:()=>y});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return q(m(c),e),e}function y(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function z(a,b=(0,i.aY)()){let c=y(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function A(a,b=(0,i.aY)()){let c=y(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function B(a,b,c=(0,i.aY)()){let d=y(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function C(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,g={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(g,b);let k=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...g,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return x(a.assets||[],e,b),d}).catch(a=>t({...g,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:k}),{taskId:f,documentId:e,record:g}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=28630));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=8889,a.ids=[8889],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},38765:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});if("GET"===a.method){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}if("PUT"===a.method){let d=(0,i.a6)(c,a.body||{});if(!d)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:d})}if("DELETE"===a.method)return(0,i.QG)(c),b.status(200).json({ok:!0});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated/[id]",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated/[id]",pathname:"/api/documents/generated/[id]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated/[id]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated/[id]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=38765));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=8889,a.ids=[8889],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},38765:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});if("GET"===a.method){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}if("PUT"===a.method){let d=(0,i.a6)(c,a.body||{});if(!d)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:d})}if("DELETE"===a.method)return(0,i.QG)(c),b.status(200).json({ok:!0});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated/[id]",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated/[id]",pathname:"/api/documents/generated/[id]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated/[id]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated/[id]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>z,Jz:()=>B,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>C,a6:()=>u,uc:()=>A,v7:()=>s,wq:()=>x,yE:()=>y});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}return q(m(c),e),e}function y(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function z(a,b=(0,i.aY)()){let c=y(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function A(a,b=(0,i.aY)()){let c=y(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function B(a,b,c=(0,i.aY)()){let d=y(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function C(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,g={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(g,b);let k=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...g,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return x(a.assets||[],e,b),d}).catch(a=>t({...g,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:k}),{taskId:f,documentId:e,record:g}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=38765));module.exports=c})();