@customize-agent/server 4.0.80 → 4.0.82

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 (52) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/6315.js +126 -0
  5. package/.next/server/chunks/7899.js +1 -1
  6. package/.next/server/chunks/8204.js +1 -1
  7. package/.next/server/chunks/8661.js +5 -0
  8. package/.next/server/middleware-build-manifest.js +1 -1
  9. package/.next/server/pages/404.html +1 -1
  10. package/.next/server/pages/500.html +1 -1
  11. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  13. package/.next/server/pages/api/assets/generated.js +1 -1
  14. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  15. package/.next/server/pages/api/context.js +7 -7
  16. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  17. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  18. package/.next/server/pages/api/documents/export.js +3 -3
  19. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  20. package/.next/server/pages/api/documents/generate.js +2 -2
  21. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  22. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  23. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  24. package/.next/server/pages/api/documents/generated.js +1 -1
  25. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  26. package/.next/server/pages/api/documents/templates.js +1 -1
  27. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  28. package/.next/server/pages/asset-library.html +1 -1
  29. package/.next/server/pages/context/long-term.html +1 -1
  30. package/.next/server/pages/context/short-term.html +1 -1
  31. package/.next/server/pages/document-roles.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 -1
  45. package/.next/server/pages-manifest.json +25 -25
  46. package/.next/static/chunks/pages/{_app-81e53de6324ebe2c.js → _app-e1434faf3490a025.js} +1 -1
  47. package/.next/static/chunks/pages/documents-19de2ee3e879a1c1.js +1 -0
  48. package/.next/static/{hSZ3eA-QJORXhijuTDZ7C → oulV5zCgHIbTysc-FmHKM}/_buildManifest.js +1 -1
  49. package/package.json +2 -2
  50. package/.next/server/chunks/5247.js +0 -124
  51. package/.next/static/chunks/pages/documents-9209f54ac7717b41.js +0 -1
  52. /package/.next/static/{hSZ3eA-QJORXhijuTDZ7C → oulV5zCgHIbTysc-FmHKM}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={15751:a=>{a.exports=require("xlsx")},16006:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(91879);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")},48661:(a,b,c)=>{c.d(b,{BH:()=>F,Gl:()=>q,JU:()=>I,Jz:()=>J,M$:()=>z,QG:()=>E,SE:()=>u,YL:()=>M,a6:()=>C,r:()=>D,v7:()=>A,yE:()=>H});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(35247),i=c(19898),j=c(44533);function k(a,b){return a?.map(a=>"running"===a.status?{...a,status:"failed",message:b}:a)}function l(...a){let b=new Map;for(let c of a)for(let a of c||[])a.id&&a.content?.trim()&&b.set(a.id,a);return[...b.values()]}let m=new Map,n=Math.max(6e5,Number(process.env.DOCUMENT_TASK_TIMEOUT_MS??72e5)),o=Math.max(6e4,Number(process.env.DOCUMENT_TASK_STALE_MS??3e5)),p=Math.max(3e5,Number(process.env.DOCUMENT_TASK_NO_PROGRESS_MS??9e5));function q(a=(0,j.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,j.aY)()){return(0,i.computeProjectId)(g.resolve(a))}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function r(a=(0,j.aY)()){return g.join(q(a),"index.json")}function s(a=(0,j.aY)()){return g.join(q(a),"assets.json")}function t(a,b=(0,j.aY)()){return g.join(q(b),"drafts",`${a}.json`)}function u(a,b=(0,j.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(q(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function v(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function w(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function x(a){for(let b of m.values())if(b.documentId===a)return b;return null}function y(a,b=(0,j.aY)()){if("generating"!==a.status||x(a.id)||Date.now()-a.updatedAt<o)return a;let c=Date.now();return B({...a,status:"failed",error:"生成任务已失联,请点击重新生成",executionStages:k(a.executionStages,"生成任务已失联,请点击重新生成"),completedAt:c},b)}function z(a=(0,j.aY)()){return v(r(a),[]).map(b=>y(b,a)).sort((a,b)=>b.updatedAt-a.updatedAt)}function A(a,b=(0,j.aY)()){let c=v(t(a,b),null);return c?y(c,b):null}function B(a,b=(0,j.aY)()){let c=Date.now(),d={...a,updatedAt:c};w(t(d.id,b),d);let e=v(r(b),[]).filter(a=>a.id!==d.id);return e.unshift(d),w(r(b),e.map(a=>({...a,draft:void 0,executionStages:a.executionStages,partialChapters:a.partialChapters,checkpointChapters:a.checkpointChapters,reviewMetadata:a.reviewMetadata}))),d}function C(a,b,c=(0,j.aY)()){let d=A(a,c);return d?B({...d,...b,id:a},c):null}function D(a,b=(0,j.aY)()){let c=A(a,b);if(!c)return null;if("generating"!==c.status)return c;for(let[b,c]of m)c.documentId===a&&(c.status="aborted",c.controller.abort(),K(c),m.delete(b));return B({...c,status:"aborted",error:"用户中止",executionStages:k(c.executionStages,"用户中止"),completedAt:Date.now()},b)}function E(a,b=(0,j.aY)()){try{e.rmSync(t(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}w(r(b),z(b).filter(b=>b.id!==a))}function F(a=(0,j.aY)()){return v(s(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function G(a,b,c=(0,j.aY)()){let d=Date.now(),e=[...F(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 w(s(c),e),e}function H(a,b=(0,j.aY)()){return F(b).find(b=>b.id===a)||null}function I(a,b=(0,j.aY)()){let c=H(a,b);if(!c)return!1;let d=u(c,b);if(d&&d.startsWith(q(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return w(s(b),F(b).filter(b=>b.id!==a)),!0}function J(a,b,c=(0,j.aY)()){let d=H(a,c);if(!d)return null;let f=u(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function K(a){a.timeoutTimer&&clearTimeout(a.timeoutTimer),a.progressTimer&&clearInterval(a.progressTimer)}function L(a,b){let c=A(a.documentId,b);return c&&"generating"===c.status?{taskId:a.id,documentId:a.documentId,record:c}:null}function M(a,b=(0,j.aY)()){let c=g.resolve(b),f=(0,i.computeProjectId)(c),o=Date.now(),r=a.resumeDocumentId?A(a.resumeDocumentId,c):null;if(r){let a=x(r.id),b=a?L(a,c):null;if(b)return b}if(!r)for(let b of m.values()){let d=L(b,c);if(d&&d.record.templateId===a.templateId&&d.record.projectRoot===c)return d}let s=r?.id||`doc-${o}-${d.randomBytes(4).toString("hex")}`,t=`task-${o}-${d.randomBytes(4).toString("hex")}`,u=r?{...r,taskId:t,status:"generating",error:void 0,completedAt:void 0,executionStages:[...r.executionStages||[],{type:"validation",roleId:"resume-generation",status:"running",message:"已从上次结果继续生成,系统将自动复用可用章节缓存和进度数据"}],updatedAt:o}:{id:s,taskId:t,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",projectRoot:c,projectId:f,knowledgeBasePath:g.join(c,"knowledgeBase"),markdown:"",status:"generating",assets:[],createdAt:o,updatedAt:o};B(u,c);let v=new AbortController,w={},y=a=>{v.abort(),w.current&&K(w.current),function(a,b,c){let d=A(a,b);d&&"generating"===d.status&&B({...d,status:"failed",error:c,executionStages:k(d.executionStages,c),completedAt:Date.now()},b)}(s,c,a),m.delete(t)},z=l(r?.draft?.chapters,r?.checkpointChapters),C=0,D="",E=Math.max(1e3,Math.min(15e3,Number(process.env.DOCUMENT_PROGRESS_SAVE_INTERVAL_MS??5e3))),F=(0,h.OXS)({...a,projectRoot:c,resumeChapters:z,signal:v.signal,onProgress:(a,b)=>{try{w.current&&(w.current.lastProgressAt=Date.now());let d=Date.now(),e=JSON.stringify({stages:a.map(a=>({type:a.type,roleId:a.roleId,status:a.status,message:a.message,progress:a.progress})),checkpoint:b?.chapters?.map(a=>[a.id,a.content.length,a.sections?.length||0])||[]});if(!b?.chapters&&e===D&&d-C<E)return;let f=A(s,c);if(f&&"generating"===f.status){let g=b?.chapters?l(f.checkpointChapters,b.chapters):f.checkpointChapters;B({...f,executionStages:a,checkpointChapters:g,partialChapters:b?.chapters?(g||[]).map(a=>({id:a.id,title:a.title,chars:a.content.length,status:a.content.trim().length>0?"completed":"failed",updatedAt:Date.now()})):f.partialChapters},c),C=d,D=e,console.log(`[gen] progress saved: ${a.length} stages, checkpoint=${g?.length||0}, doc=${s}`)}}catch(a){console.error("[gen] progress save error:",a)}}}).then(async a=>{let b=A(s,c);if(!b||"generating"!==b.status)return b??u;let d=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message);a.exportGate.passed||0!==d.length||d.push("导出门禁未通过:存在未完成的检查项");let f=B(function(a){let b=a=>({...a,content:a.content.slice(0,500)}),c=a.draft?{...a.draft,chapters:a.draft.chapters.map(a=>({...a,evidence:a.evidence.map(b)}))}:a.draft;return{...a,draft:c}}({...b,templateName:a.templateName,title:a.title,markdown:a.markdown,status:d.length>0?"warning":"completed",draft:a,executionStages:a.executionStages,partialChapters:a.partialChapters,checkpointChapters:a.chapters,reviewMetadata:a.reviewMetadata,assets:a.assets||[],completedAt:Date.now(),warningIssues:d}),c);return!function(a,b=(0,j.aY)()){Date.now();let c=`generatedDocuments/assets/${a.title.replace(/[\\/:*?"<>|]/gu,"_").slice(0,120)||"generated-document"}-${a.id}.md`,d=g.join(q(b),c.replace(/^generatedDocuments\//u,""));e.mkdirSync(g.dirname(d),{recursive:!0}),e.writeFileSync(d,a.editedMarkdown||a.markdown,"utf8");let f={id:`document-${a.id}`,type:"file",role:"generated",path:c,status:"generated",message:"模板运行生成的 Markdown 文档,仅登记到生成资源,不进入知识库"};G([f],a.id,b).find(a=>a.id===f.id)}(f,c),G(a.assets||[],s,c),f}).catch(a=>{let b=A(s,c);if(!b||"generating"!==b.status)return b??u;let d=a instanceof Error?a.message:String(a),e=a instanceof Error&&/用户中止|aborted|abort/i.test(a.message)?"aborted":"failed";return B({...b,status:e,error:d,executionStages:k(b.executionStages,d),completedAt:Date.now()},c)}).finally(()=>{w.current&&K(w.current),m.delete(t)}),H={id:t,documentId:s,status:"generating",controller:v,promise:F,startedAt:o,lastProgressAt:o};return w.current=H,H.timeoutTimer=setTimeout(()=>y("生成任务超时,请点击继续生成或重新生成"),n),H.progressTimer=setInterval(()=>{Date.now()-H.lastProgressAt>p&&y("生成任务长时间无进度,请点击继续生成或重新生成")},Math.min(6e4,p)),m.set(t,H),{taskId:t,documentId:s,record:u}}},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")},83258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>aa,default:()=>_,handler:()=>ac});var d={};c.r(d),c.d(d,{__documentExportTest__:()=>X,config:()=>u,default:()=>Y});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(73024),k=c(48161),l=c(76760);let m=require("node:url"),n=require("node:util"),o=require("jszip");var p=c.n(o),q=c(48661),r=c(44533),s=c(91879),t=c(16006);let u={api:{bodyParser:{sizeLimit:"50mb"},responseLimit:!1}};function v(a){return a.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;")}let w=(0,n.promisify)(i.execFile),x={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml"};function y(a){return x[l.extname(a).toLowerCase()]||""}function z(a,b){let c=l.relative(b,a);return!!c&&!c.startsWith("..")&&!l.isAbsolute(c)}function A(a,b=(0,r.aY)()){if(!a||/^(?:https?:|data:|file:|blob:|#)/iu.test(a))return null;let c=function(a){try{return decodeURIComponent(a.split(/[?#]/u)[0]||a)}catch{return""}}(a);if(!c||l.isAbsolute(c))return null;let d=l.resolve(b,"knowledgeBase"),e=l.resolve((0,q.Gl)(b),"assets");return[c.startsWith("generatedDocuments/assets/")?l.resolve(e,c.replace(/^generatedDocuments\/assets\//u,"")):"",l.resolve(d,c)].filter(Boolean).find(a=>{let b=l.resolve(a);return(z(b,d)||z(b,e))&&!!y(b)&&j.existsSync(b)&&j.statSync(b).isFile()})||null}function B(a,b=(0,r.aY)()){let c=new Map,d=0;return a.replace(/<img\b([^>]*?)\bsrc=["']([^"']+)["']([^>]*)>/giu,(a,e,f,g)=>{let h=A(f,b);if(!h)return a;let i=j.statSync(h);if(i.size>8388608||d+i.size>0x2000000)return a;let k=c.get(h);return k||(k=`data:${y(h)};base64,${j.readFileSync(h).toString("base64")}`,c.set(h,k),d+=i.size),`<img${e}src="${k}"${g}>`})}function C(a){return(function(a){let b=a.trim(),c=/^```(?:markdown|md)?\s*\n([\s\S]*?)\n```\s*$/iu.exec(b);return c?c[1].trim():a})(a).replace(/m\s*<sup>\s*2\s*<\/sup>/giu,"m\xb2").replace(/m\s*<sup>\s*3\s*<\/sup>/giu,"m\xb3").replace(/m\s*\^\s*2/giu,"m\xb2").replace(/m\s*\^\s*3/giu,"m\xb3").replace(/㎡/gu,"m\xb2").replace(/㎥/gu,"m\xb3").replace(/(?<=\d)m\s*2(?![\p{L}\p{N}_])/giu,"m\xb2").replace(/(?<=\d)m\s*3(?![\p{L}\p{N}_])/giu,"m\xb3").replace(/(?<![\p{L}\p{N}_])m\s*2(?![\p{L}\p{N}_])/giu,"m\xb2").replace(/(?<![\p{L}\p{N}_])m\s*3(?![\p{L}\p{N}_])/giu,"m\xb3")}function D(a){return C(a).replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[*_`]/gu,"").replace(/<br\s*\/?>/giu,"\n").replace(/<[^>]+>/gu,"").trim()}function E(a,b){let c=/([\d.]+)\s*(pt|px)?/iu.exec(a||"");if(!c)return b;let d=Number(c[1]);return Number.isFinite(d)?c[2]?.toLowerCase()==="px"?.75*d:d:b}function F(a,b){return`${E(a,b)}pt`}function G(a,b){let c=/([\d.]+)\s*(cm|mm|in|pt)?/iu.exec(a||"");if(!c)return Math.round(567*b);let d=Number(c[1]);if(!Number.isFinite(d))return Math.round(567*b);let e=(c[2]||"cm").toLowerCase();return"mm"===e?Math.round(56.7*d):"in"===e?Math.round(1440*d):"pt"===e?Math.round(20*d):Math.round(567*d)}function H(a){let b=M(a),c=E(b.bodySize,14),d=E(b.titleSize,16),e=E(b.lineHeight,22);return{...b,bodyPt:c,titlePt:d,linePt:e,bodyHalfPoints:Math.round(2*c),titleHalfPoints:Math.round(2*d),lineTwips:Math.round(20*e),fontEastAsia:"宋体",fontAscii:"SimSun",bodyCss:`${c}pt`,titleCss:`${d}pt`,lineCss:`${e}pt`}}function I(a,b={}){if(b.pageBreak)return'<w:p><w:r><w:br w:type="page"/></w:r></w:p>';let c=[b.indentLeft?`w:left="${b.indentLeft}"`:"",b.firstLine?`w:firstLine="${b.firstLine}"`:"",b.hanging?`w:hanging="${b.hanging}"`:""].filter(Boolean).join(" "),d=[b.styleId?`<w:pStyle w:val="${v(b.styleId)}"/>`:"",b.numbering?`<w:numPr><w:ilvl w:val="${b.numbering.level}"/><w:numId w:val="${b.numbering.numId}"/></w:numPr>`:"",b.keepNext?"<w:keepNext/>":"",`<w:spacing w:line="${b.line??440}" w:lineRule="exact" w:before="${b.spacingBefore??0}" w:after="${b.spacingAfter??120}"/>`,c?`<w:ind ${c}/>`:"",b.align?`<w:jc w:val="${b.align}"/>`:"","number"==typeof b.outlineLevel?`<w:outlineLvl w:val="${b.outlineLevel}"/>`:""].filter(Boolean).join("");return`<w:p><w:pPr>${d}</w:pPr>${function(a,b={}){let c=b.fontEastAsia||"宋体",d=b.fontAscii||"SimSun",e=[`<w:rFonts w:ascii="${v(d)}" w:hAnsi="${v(d)}" w:eastAsia="${v(c)}" w:cs="${v(d)}"/>`,b.bold?"<w:b/>":"",b.size?`<w:sz w:val="${b.size}"/><w:szCs w:val="${b.size}"/>`:""].filter(Boolean).join("");return`<w:r><w:rPr>${e}</w:rPr><w:t xml:space="preserve">${v(a)}</w:t></w:r>`}(a,b)}</w:p>`}async function J(a,b,c,d=[]){a.folder("word")?.file("styles.xml",function(a){let b=H(a),c=`w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"`,d=(a,d,e,f,g,h,i)=>`<w:style w:type="paragraph" w:styleId="${a}"><w:name w:val="${d}"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:uiPriority w:val="${9+f}"/><w:qFormat/><w:rPr><w:b/><w:rFonts ${c}/><w:sz w:val="${e}"/><w:szCs w:val="${e}"/></w:rPr><w:pPr><w:keepNext/><w:keepLines/><w:outlineLvl w:val="${f}"/><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:before="${g}" w:after="${h}"/>${i?`<w:jc w:val="${i}"/>`:""}</w:pPr></w:style>`;return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts ${c}/><w:sz w:val="${b.bodyHalfPoints}"/><w:szCs w:val="${b.bodyHalfPoints}"/></w:rPr></w:rPrDefault><w:pPrDefault><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr></w:pPrDefault></w:docDefaults><w:style w:type="paragraph" w:default="1" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/><w:rPr><w:rFonts ${c}/><w:sz w:val="${b.bodyHalfPoints}"/><w:szCs w:val="${b.bodyHalfPoints}"/></w:rPr><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr></w:style>${d("Heading1","heading 1",Math.max(b.titleHalfPoints+4,36),0,260,180,"center")}${d("Heading2","heading 2",Math.max(b.titleHalfPoints,32),1,180,100)}${d("Heading3","heading 3",Math.max(b.bodyHalfPoints,28),2,120,80)}<w:style w:type="paragraph" w:styleId="ListParagraph"><w:name w:val="List Paragraph"/><w:basedOn w:val="Normal"/><w:uiPriority w:val="34"/><w:qFormat/><w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:style></w:styles>`}(c)),a.folder("word")?.file("numbering.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:numbering xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:abstractNum w:abstractNumId="1"><w:multiLevelType w:val="hybridMultilevel"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1."/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1.%2"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="1080" w:hanging="420"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1.%2.%3"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="1440" w:hanging="480"/></w:pPr></w:lvl></w:abstractNum><w:num w:numId="1"><w:abstractNumId w:val="1"/></w:num></w:numbering>'),a.folder("word")?.file("settings.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:updateFields w:val="true"/><w:compat><w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="15"/></w:compat></w:settings>'),a.folder("word")?.file("fontTable.xml",function(a){let b=H(a);return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:fonts xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:font w:name="${v(b.fontEastAsia)}"><w:charset w:val="86"/><w:family w:val="roman"/></w:font><w:font w:name="${v(b.fontAscii)}"><w:family w:val="roman"/></w:font></w:fonts>`}(c)),a.folder("docProps")?.file("core.xml",function(a){let b=new Date().toISOString();return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:title>${v(a)}</dc:title><dc:creator>Customize Agent</dc:creator><cp:lastModifiedBy>Customize Agent</cp:lastModifiedBy><dcterms:created xsi:type="dcterms:W3CDTF">${b}</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">${b}</dcterms:modified></cp:coreProperties>`}(b)),a.folder("docProps")?.file("app.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Customize Agent</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><Company></Company><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>1.0</AppVersion></Properties>');let e=a.folder("word")?.folder("media");for(let a of d)e?.file(a.fileName,a.buffer);let f=a.file("word/_rels/document.xml.rels"),g=f?await f.async("string"):'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"></Relationships>';for(let[a,b,c]of[["rStyle","http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles","styles.xml"],["rNumbering","http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering","numbering.xml"],["rSettings","http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings","settings.xml"],["rFontTable","http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable","fontTable.xml"]])g.includes(b)||(g=g.replace("</Relationships>",`<Relationship Id="${a}" Type="${b}" Target="${c}"/></Relationships>`));for(let a of d)g.includes(`Id="${a.relationshipId}"`)||(g=g.replace("</Relationships>",`<Relationship Id="${a.relationshipId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/${a.fileName}"/></Relationships>`));a.folder("word")?.folder("_rels")?.file("document.xml.rels",g);let h=a.file("_rels/.rels"),i=h?await h.async("string"):'<?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>';i.includes("metadata/core-properties")||(i=i.replace("</Relationships>",'<Relationship Id="rCore" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>')),i.includes("extended-properties")||(i=i.replace("</Relationships>",'<Relationship Id="rApp" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/></Relationships>')),a.folder("_rels")?.file(".rels",i);let j=a.file("[Content_Types].xml"),k=j?await j.async("string"):'<?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>';for(let a of new Set(d.map(a=>l.extname(a.fileName).slice(1).toLowerCase()).filter(Boolean))){let b="jpg"===a||"jpeg"===a?"image/jpeg":"png"===a?"image/png":void 0;b&&!k.includes(`Extension="${a}"`)&&(k=k.replace("</Types>",`<Default Extension="${a}" ContentType="${b}"/></Types>`))}for(let[a,b]of[["/word/styles.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"],["/word/numbering.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"],["/word/settings.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"],["/word/fontTable.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"],["/docProps/core.xml","application/vnd.openxmlformats-package.core-properties+xml"],["/docProps/app.xml","application/vnd.openxmlformats-officedocument.extended-properties+xml"]])k.includes(`PartName="${a}"`)||(k=k.replace("</Types>",`<Override PartName="${a}" ContentType="${b}"/></Types>`));a.file("[Content_Types].xml",k)}async function K(a,b,c,d,e=process.cwd()){let f={projectRoot:e,images:[]},g=function(a,b,c){let d=H(b),e=d.titleHalfPoints,f=d.bodyHalfPoints,g=C(a).replace(/<div class="page-break"><\/div>/gu,"\n[[PAGE_BREAK]]\n").split("\n"),h=[],i=!1,k=!1,m=!1;for(let a=0;a<g.length;){var n;let b=g[a].trim();if(!b){a+=1;continue}if(/<div\s+class=["']document-cover["']\s*>/iu.test(b)){k=!0,a+=1;continue}if(k&&/^<\/div>$/iu.test(b)){k=!1,a+=1;continue}if("[[PAGE_BREAK]]"===b){i=!1,k=!1,h.push(I("",{pageBreak:!0})),a+=1;continue}if(k){let c=D(b.replace(/^#\s+/u,""));c&&h.push(I(c,{bold:!0,size:Math.max(e+8,44),line:Math.round(1.15*d.lineTwips),fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"center",spacingBefore:360,spacingAfter:220})),a+=1;continue}let o=c?function(a,b){let c=/!\[([^\]]*)\]\(([^)]+)\)/u.exec(a);if(!c)return null;let d=A(c[2].trim(),b.projectRoot);if(!d)return null;let e=j.readFileSync(d),f=y(d);if(!f||"image/svg+xml"===f||e.length>8388608)return null;let g=b.images.length+1,h=l.extname(d).toLowerCase()||".png",i=function(a,b){if("image/png"===b&&a.length>=24&&"PNG"===a.toString("ascii",1,4))return{width:a.readUInt32BE(16),height:a.readUInt32BE(20)};if("image/jpeg"===b){let b=2;for(;b+9<a.length&&255===a[b];){let c=a[b+1],d=a.readUInt16BE(b+2);if(c>=192&&c<=195)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};b+=2+d}}return{width:640,height:360}}(e,f),k=Math.min(1,620/Math.max(i.width,1)),m={relationshipId:`rImage${g}`,fileName:`image${g}${h}`,buffer:e,contentType:f,widthEmu:Math.round(i.width*k*9525),heightEmu:Math.round(i.height*k*9525),altText:c[1]||`image${g}`};return b.images.push(m),m}(b,c):null;if(o){h.push(`<w:p><w:pPr><w:jc w:val="center"/><w:spacing w:after="120"/></w:pPr><w:r><w:drawing><wp:inline xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"><wp:extent cx="${o.widthEmu}" cy="${o.heightEmu}"/><wp:docPr id="${o.relationshipId.replace(/\D/gu,"")||"1"}" name="${v(o.altText||o.fileName)}"/><a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:nvPicPr><pic:cNvPr id="0" name="${v(o.fileName)}"/><pic:cNvPicPr/></pic:nvPicPr><pic:blipFill><a:blip r:embed="${o.relationshipId}" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/><a:stretch><a:fillRect/></a:stretch></pic:blipFill><pic:spPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="${o.widthEmu}" cy="${o.heightEmu}"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></pic:spPr></pic:pic></a:graphicData></a:graphic></wp:inline></w:drawing></w:r></w:p>`),a+=1;continue}let p=function(a,b){if(b+1>=a.length||!/^\s*\|?.+\|\s*$/u.test(a[b])||!/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a[b+1]))return null;let c=[],d=b;for(;d<a.length&&/^\s*\|?.+\|\s*$/u.test(a[d]);)d!==b+1&&c.push(a[d].trim().replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(a=>D(a))),d+=1;return{rows:c,next:d}}(g,a);if(p){h.push(function(a,b){let c=Math.max(1,...a.map(a=>a.length)),d=Math.floor(9638/c),e=Array.from({length:c},(a,b)=>b===c-1?9638-d*(c-1):d),f=`<w:tblGrid>${e.map(a=>`<w:gridCol w:w="${a}"/>`).join("")}</w:tblGrid>`;return`<w:tbl><w:tblPr><w:tblW w:w="9638" w:type="dxa"/><w:tblLook w:firstRow="1" w:noHBand="0"/><w:tblBorders><w:top w:val="single" w:sz="6" w:color="666666"/><w:left w:val="single" w:sz="6" w:color="666666"/><w:bottom w:val="single" w:sz="6" w:color="666666"/><w:right w:val="single" w:sz="6" w:color="666666"/><w:insideH w:val="single" w:sz="4" w:color="666666"/><w:insideV w:val="single" w:sz="4" w:color="666666"/></w:tblBorders></w:tblPr>${f}${a.map((a,c)=>`<w:tr>${e.map((d,e)=>{let f=a[e]||"";return`<w:tc><w:tcPr><w:tcW w:w="${d}" w:type="dxa"/><w:tcMar><w:top w:w="80" w:type="dxa"/><w:left w:w="120" w:type="dxa"/><w:bottom w:w="80" w:type="dxa"/><w:right w:w="120" w:type="dxa"/></w:tcMar>${0===c?'<w:shd w:val="clear" w:fill="F3F4F6"/>':""}</w:tcPr>${I(f,{bold:0===c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:0,align:0===c?"center":"left"})}</w:tc>`}).join("")}</w:tr>`).join("")}</w:tbl>`}(p.rows,d),I("",{spacingAfter:80,line:d.lineTwips})),a=p.next;continue}let q=/^(#{1,4})\s+(.+)$/u.exec(b);if(q){let b=D(q[2]);i="目录"===b,h.push((n=q[1].length,2===n?I(b,{styleId:"Heading1",outlineLevel:0,bold:!0,size:Math.max(d.titleHalfPoints+4,36),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"center",spacingBefore:260,spacingAfter:180,keepNext:!0}):3===n?I(b,{styleId:"Heading2",outlineLevel:1,bold:!0,size:Math.max(d.titleHalfPoints,32),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,spacingBefore:180,spacingAfter:100,keepNext:!0}):I(b,{styleId:"Heading3",outlineLevel:2,bold:!0,size:Math.max(d.bodyHalfPoints,28),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,spacingBefore:120,spacingAfter:80,keepNext:!0}))),i&&!m&&(h.push(`<w:p><w:pPr><w:spacing w:line="${d.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr><w:r><w:fldChar w:fldCharType="begin"/></w:r><w:r><w:instrText xml:space="preserve">TOC \\o &quot;1-3&quot; \\h \\z \\u</w:instrText></w:r><w:r><w:fldChar w:fldCharType="separate"/></w:r><w:r><w:t>请在 Word 中右键更新目录</w:t></w:r><w:r><w:fldChar w:fldCharType="end"/></w:r></w:p>`),m=!0),a+=1;continue}let r=D(b),s=function(a){let b=/^\s*(\d+(?:\.\d+){0,2})[.、]\s+(.+)$/u.exec(a);return b?{level:Math.min(b[1].split(".").length-1,2),text:D(b[2])}:null}(b),t=function(a){let b=/^\s*[-*+]\s+(.+)$/u.exec(a);return b?D(b[1]):null}(b);if(!i&&s){h.push(I(s.text,{styleId:"ListParagraph",numbering:{numId:1,level:s.level},size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,spacingAfter:60})),a+=1;continue}if(!i&&t){h.push(I(`• ${t}`,{styleId:"ListParagraph",size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,indentLeft:720,hanging:360,spacingAfter:60})),a+=1;continue}let u=/^\*\*[^*]+\*\*\s*[::]?\s*$/u.test(b)||/^([一二三四五六七八九十]+)/u.test(r)||/^[一二三四五六七八九十]+、/u.test(r);h.push(i?function(a,b){let c=/^\s*\d+\.\d+\s+\S/u.test(a);return I(D(a),{bold:!c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:c?30:80,indentLeft:420*!!c,align:"left"})}(b,d):I(r,{bold:u,size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"both",firstLine:560*!u,spacingBefore:80*!!u})),a+=1}return h.join("")}(b,c,f);if(d&&j.existsSync(d)){let b=await p().loadAsync(j.readFileSync(d)),e=b.file("word/document.xml");if(e){let d=await e.async("string");return b.file("word/document.xml",d.replace(/\{\{title\}\}/gu,v(a)).replace(/\{\{content\}\}/gu,g)),await J(b,a,c,f.images),b.generateAsync({type:"nodebuffer"})}}let h=c?.page||{},i=new(p());return i.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>${g}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="${G(h.marginTop,2.5)}" w:right="${G(h.marginRight,2)}" w:bottom="${G(h.marginBottom,2)}" w:left="${G(h.marginLeft,2)}"/></w:sectPr></w:body></w:document>`),await J(i,a,c,f.images),i.generateAsync({type:"nodebuffer"})}function L(a,b){return a&&/^[\w\s\u4e00-\u9fa5,"'().-]+$/u.test(a)?a:b}function M(a){let b=a?.page||{},c=a?.typography||{},d=L(b.paper,"A4"),e=L(b.marginTop,"24mm"),f=L(b.marginRight,"18mm"),g=L(b.marginBottom,"22mm"),h=L(b.marginLeft,"18mm"),i=L(c.fontFamily,"SimSun, 宋体, serif"),j=F(c.lineHeight,22);return{paper:d,marginTop:e,marginRight:f,marginBottom:g,marginLeft:h,fontFamily:i,lineHeight:j,titleSize:F(c.titleSize,16),bodySize:F(c.bodySize,14)}}function N(a){return a.replace(/(<h2[^>]*>\s*目录\s*<\/h2>)([\s\S]*?)(<div class="page-break"><\/div>)/u,(a,b,c,d)=>{let e=c.replace(/<ol>\s*([\s\S]*?)\s*<\/ol>/u,(a,b)=>b).replace(/<li>\s*([^<]+?)\s*<\/li>/gu,"<p>$1</p>").replace(/<p>(?:\s|&nbsp;|&#160;)*(\d+\.\d+\s+[^<]+)<\/p>/giu,'<p class="toc-section">$1</p>').replace(/<p>(?!(?:\s|&nbsp;|&#160;)*<\/p>|(?:\s|&nbsp;|&#160;)*\d+\.\d+\s)([\s\S]*?)<\/p>/giu,'<p class="toc-chapter">$1</p>');return`<section class="document-toc">${b}${e}</section>${d}`})}function O(a){let b=a.message.trim();return!/^(事实冲突|必需章节缺失):/u.test(b)&&/出现禁用文本\s*(资料未提供|占位|TODO|TBD)|正文包含.*(资料未提供|占位)|图片、地图或附件引用路径明显无效|无效路径|表格语法错误|临时远程生成 URL|提示词全文|内部错误|生成未完成|低于目标页数|低于目标字数|文档预算未达成|正文篇幅低于目标|缺少配置小节|缺少必要的正式表格|正文缺少章节标题/iu.test(b)}function P(a){return{chars:a.trim().length,h2:(a.match(/^##\s+/gmu)||[]).length,h3:(a.match(/^###\s+/gmu)||[]).length,tables:(a.match(/\n\s*\|\s*:?-{3,}/gu)||[]).length}}function Q(a,b){let c=P(a),d=b?P(b):void 0,e=[];c.chars<200&&e.push("导出内容为空或过短"),d&&d.chars>1e3&&c.chars<.8*d.chars&&e.push("导出内容明显少于服务端生成记录"),d&&d.h3>0&&0===c.h3&&e.push("导出内容缺少服务端生成记录中的二级小节"),d&&d.tables>0&&0===c.tables&&e.push("导出内容缺少服务端生成记录中的表格");let f=a.split(/\r?\n/u).map(a=>/^(#{2,4})\s+(.+)$/u.exec(a.trim())).filter(a=>!!a).map(a=>({level:a[1].length,title:D(a[2])})).filter(a=>a.title&&"目录"!==a.title);0===f.length&&e.push("正文缺少章节标题"),f.some((a,b)=>b>0&&a.level-f[b-1].level>1)&&e.push("标题层级存在跳级,可能影响导出目录和导航");let g=f.map(a=>a.title.replace(/^第[一二三四五六七八九十百]+章\s*/u,"").replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[\s::.。]+$/gu,"").trim()).filter(Boolean).filter((a,b,c)=>c.indexOf(a)!==b);g.length>0&&e.push(`存在重复标题:${[...new Set(g)].slice(0,3).join("、")}`);let h=a.split(/\r?\n/u).map(a=>D(a)).filter(a=>a.length>0&&!/^#+\s/u.test(a));h.some(a=>a.length<=1)&&e.push("正文存在孤立字或残缺段落"),h.some(a=>/[,、;:和与在为对将]$/u.test(a)||/(通过|包括|如下|主要包括)$/u.test(a))&&e.push("正文存在疑似截断句或未完结段落"),h.some(a=>a.length>380)&&e.push("正文存在过长段落,建议拆分以改善导出版式");let i=function(a){let b=new Map,c=[];for(let d of a.split(/\n{2,}/u).map(a=>D(a)).filter(a=>a.length>=45&&!/^#+\s/u.test(a))){let a=d.replace(/\s+/gu,"").slice(0,90),e=(b.get(a)||0)+1;b.set(a,e),2===e&&c.push(d.slice(0,60))}return c}(a);return i.length>0&&e.push(`正文存在重复段落:${i.slice(0,2).join(";")}`),e}function R(a,b){let c=C(a),d=C(b||"");return{markdown:c,baselineMarkdown:d,issues:Q(c,d)}}async function S(a,b,d,e){let{marked:f}=await Promise.resolve().then(c.bind(c,83142));return B(function(a,b,c){let d=H(c),e=N(b);return`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${v(a)}</title><style>
1
+ "use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={15751:a=>{a.exports=require("xlsx")},16006:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(91879);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")},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")},83258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>ae,default:()=>ad,handler:()=>ag});var d={};c.r(d),c.d(d,{__documentExportTest__:()=>_,config:()=>u,default:()=>aa});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(73024),k=c(48161),l=c(76760);let m=require("node:url"),n=require("node:util"),o=require("jszip");var p=c.n(o),q=c(48661),r=c(44533),s=c(91879),t=c(16006);let u={api:{bodyParser:{sizeLimit:"50mb"},responseLimit:!1}};function v(a){return a.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;")}let w=(0,n.promisify)(i.execFile),x={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml"};function y(a){return x[l.extname(a).toLowerCase()]||""}function z(a,b){let c=l.relative(b,a);return!!c&&!c.startsWith("..")&&!l.isAbsolute(c)}function A(a,b=(0,r.aY)()){if(!a||/^(?:https?:|data:|file:|blob:|#)/iu.test(a))return null;let c=function(a){try{return decodeURIComponent(a.split(/[?#]/u)[0]||a)}catch{return""}}(a);if(!c||l.isAbsolute(c))return null;let d=l.resolve(b,"knowledgeBase"),e=l.resolve((0,q.Gl)(b),"assets");return[c.startsWith("generatedDocuments/assets/")?l.resolve(e,c.replace(/^generatedDocuments\/assets\//u,"")):"",l.resolve(d,c)].filter(Boolean).find(a=>{let b=l.resolve(a);return(z(b,d)||z(b,e))&&!!y(b)&&j.existsSync(b)&&j.statSync(b).isFile()})||null}function B(a,b=(0,r.aY)()){let c=new Map,d=0;return a.replace(/<img\b([^>]*?)\bsrc=["']([^"']+)["']([^>]*)>/giu,(a,e,f,g)=>{let h=A(f,b);if(!h)return a;let i=j.statSync(h);if(i.size>8388608||d+i.size>0x2000000)return a;let k=c.get(h);return k||(k=`data:${y(h)};base64,${j.readFileSync(h).toString("base64")}`,c.set(h,k),d+=i.size),`<img${e}src="${k}"${g}>`})}function C(a){return/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u.test(a.trim())}function D(a){let b=a.trim();if(!b||/^#{1,6}\s+/u.test(b)||C(b))return!1;let c=(b.match(/\|/gu)||[]).length;return c>=2||c>=1&&/^\s*\|/u.test(b)||c>=1&&/\|\s*$/u.test(b)}function E(a){return a.trim().replace(/^\|/u,"").replace(/\|$/u,"").trim().split("|").map(a=>a.trim())}function F(a,b){let c=a.slice(0,b);for(;c.length<b;)c.push("");return`| ${c.join(" | ")} |`}function G(a){return function(a){let b=a.replace(/\r?\n/gu,"\n").split("\n"),c=[];for(let a=0;a<b.length;){let d=b[a]||"",e=d.replace(/([^|\n])\|\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/u,"$1"),f=b[a+1]?.trim()===""?a+2:a+1,g=b[f];if(D(d)&&void 0!==g&&C(g)){let e=E(d),h=E(g).length,i=Math.max(2,e.length,h);for(c.length>0&&c[c.length-1]?.trim()&&c.push(""),c.push(F(e,i)),c.push(`| ${Array.from({length:i},()=>"---").join(" | ")} |`),a=f+1;a<b.length;){let d=b[a]||"";if(!D(d))break;c.push(F(E(d),i)),a+=1}a<b.length&&b[a]?.trim()&&c.push("");continue}c.push(e),a+=1}return c.join("\n").replace(/\n{3,}/gu,"\n\n")}((function(a){let b=a.trim(),c=/^```(?:markdown|md)?\s*\n([\s\S]*?)\n```\s*$/iu.exec(b);return c?c[1].trim():a})(a).replace(/m\s*<sup>\s*2\s*<\/sup>/giu,"m\xb2").replace(/m\s*<sup>\s*3\s*<\/sup>/giu,"m\xb3").replace(/m\s*\^\s*2/giu,"m\xb2").replace(/m\s*\^\s*3/giu,"m\xb3").replace(/㎡/gu,"m\xb2").replace(/㎥/gu,"m\xb3").replace(/(?<=\d)m\s*2(?![\p{L}\p{N}_])/giu,"m\xb2").replace(/(?<=\d)m\s*3(?![\p{L}\p{N}_])/giu,"m\xb3").replace(/(?<![\p{L}\p{N}_])m\s*2(?![\p{L}\p{N}_])/giu,"m\xb2").replace(/(?<![\p{L}\p{N}_])m\s*3(?![\p{L}\p{N}_])/giu,"m\xb3"))}function H(a){return G(a).replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[*_`]/gu,"").replace(/<br\s*\/?>/giu,"\n").replace(/<[^>]+>/gu,"").trim()}function I(a,b){let c=/([\d.]+)\s*(pt|px)?/iu.exec(a||"");if(!c)return b;let d=Number(c[1]);return Number.isFinite(d)?c[2]?.toLowerCase()==="px"?.75*d:d:b}function J(a,b){return`${I(a,b)}pt`}function K(a,b){let c=/([\d.]+)\s*(cm|mm|in|pt)?/iu.exec(a||"");if(!c)return Math.round(567*b);let d=Number(c[1]);if(!Number.isFinite(d))return Math.round(567*b);let e=(c[2]||"cm").toLowerCase();return"mm"===e?Math.round(56.7*d):"in"===e?Math.round(1440*d):"pt"===e?Math.round(20*d):Math.round(567*d)}function L(a){let b=Q(a),c=I(b.bodySize,14),d=I(b.titleSize,16),e=I(b.lineHeight,22);return{...b,bodyPt:c,titlePt:d,linePt:e,bodyHalfPoints:Math.round(2*c),titleHalfPoints:Math.round(2*d),lineTwips:Math.round(20*e),fontEastAsia:"宋体",fontAscii:"SimSun",bodyCss:`${c}pt`,titleCss:`${d}pt`,lineCss:`${e}pt`}}function M(a,b={}){if(b.pageBreak)return'<w:p><w:r><w:br w:type="page"/></w:r></w:p>';let c=[b.indentLeft?`w:left="${b.indentLeft}"`:"",b.firstLine?`w:firstLine="${b.firstLine}"`:"",b.hanging?`w:hanging="${b.hanging}"`:""].filter(Boolean).join(" "),d=[b.styleId?`<w:pStyle w:val="${v(b.styleId)}"/>`:"",b.numbering?`<w:numPr><w:ilvl w:val="${b.numbering.level}"/><w:numId w:val="${b.numbering.numId}"/></w:numPr>`:"",b.keepNext?"<w:keepNext/>":"",`<w:spacing w:line="${b.line??440}" w:lineRule="exact" w:before="${b.spacingBefore??0}" w:after="${b.spacingAfter??120}"/>`,c?`<w:ind ${c}/>`:"",b.align?`<w:jc w:val="${b.align}"/>`:"","number"==typeof b.outlineLevel?`<w:outlineLvl w:val="${b.outlineLevel}"/>`:""].filter(Boolean).join("");return`<w:p><w:pPr>${d}</w:pPr>${function(a,b={}){let c=b.fontEastAsia||"宋体",d=b.fontAscii||"SimSun",e=[`<w:rFonts w:ascii="${v(d)}" w:hAnsi="${v(d)}" w:eastAsia="${v(c)}" w:cs="${v(d)}"/>`,b.bold?"<w:b/>":"",b.size?`<w:sz w:val="${b.size}"/><w:szCs w:val="${b.size}"/>`:""].filter(Boolean).join("");return`<w:r><w:rPr>${e}</w:rPr><w:t xml:space="preserve">${v(a)}</w:t></w:r>`}(a,b)}</w:p>`}async function N(a,b,c,d=[]){a.folder("word")?.file("styles.xml",function(a){let b=L(a),c=`w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"`,d=(a,d,e,f,g,h,i)=>`<w:style w:type="paragraph" w:styleId="${a}"><w:name w:val="${d}"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:uiPriority w:val="${9+f}"/><w:qFormat/><w:rPr><w:b/><w:rFonts ${c}/><w:sz w:val="${e}"/><w:szCs w:val="${e}"/></w:rPr><w:pPr><w:keepNext/><w:keepLines/><w:outlineLvl w:val="${f}"/><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:before="${g}" w:after="${h}"/>${i?`<w:jc w:val="${i}"/>`:""}</w:pPr></w:style>`;return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts ${c}/><w:sz w:val="${b.bodyHalfPoints}"/><w:szCs w:val="${b.bodyHalfPoints}"/></w:rPr></w:rPrDefault><w:pPrDefault><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr></w:pPrDefault></w:docDefaults><w:style w:type="paragraph" w:default="1" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/><w:rPr><w:rFonts ${c}/><w:sz w:val="${b.bodyHalfPoints}"/><w:szCs w:val="${b.bodyHalfPoints}"/></w:rPr><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr></w:style>${d("Heading1","heading 1",Math.max(b.titleHalfPoints+4,36),0,260,180,"center")}${d("Heading2","heading 2",Math.max(b.titleHalfPoints,32),1,180,100)}${d("Heading3","heading 3",Math.max(b.bodyHalfPoints,28),2,120,80)}<w:style w:type="paragraph" w:styleId="ListParagraph"><w:name w:val="List Paragraph"/><w:basedOn w:val="Normal"/><w:uiPriority w:val="34"/><w:qFormat/><w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:style></w:styles>`}(c)),a.folder("word")?.file("numbering.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:numbering xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:abstractNum w:abstractNumId="1"><w:multiLevelType w:val="hybridMultilevel"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1."/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1.%2"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="1080" w:hanging="420"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1.%2.%3"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="1440" w:hanging="480"/></w:pPr></w:lvl></w:abstractNum><w:num w:numId="1"><w:abstractNumId w:val="1"/></w:num></w:numbering>'),a.folder("word")?.file("settings.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:updateFields w:val="true"/><w:compat><w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="15"/></w:compat></w:settings>'),a.folder("word")?.file("fontTable.xml",function(a){let b=L(a);return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:fonts xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:font w:name="${v(b.fontEastAsia)}"><w:charset w:val="86"/><w:family w:val="roman"/></w:font><w:font w:name="${v(b.fontAscii)}"><w:family w:val="roman"/></w:font></w:fonts>`}(c)),a.folder("docProps")?.file("core.xml",function(a){let b=new Date().toISOString();return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:title>${v(a)}</dc:title><dc:creator>Customize Agent</dc:creator><cp:lastModifiedBy>Customize Agent</cp:lastModifiedBy><dcterms:created xsi:type="dcterms:W3CDTF">${b}</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">${b}</dcterms:modified></cp:coreProperties>`}(b)),a.folder("docProps")?.file("app.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Customize Agent</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><Company></Company><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>1.0</AppVersion></Properties>');let e=a.folder("word")?.folder("media");for(let a of d)e?.file(a.fileName,a.buffer);let f=a.file("word/_rels/document.xml.rels"),g=f?await f.async("string"):'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"></Relationships>';for(let[a,b,c]of[["rStyle","http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles","styles.xml"],["rNumbering","http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering","numbering.xml"],["rSettings","http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings","settings.xml"],["rFontTable","http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable","fontTable.xml"]])g.includes(b)||(g=g.replace("</Relationships>",`<Relationship Id="${a}" Type="${b}" Target="${c}"/></Relationships>`));for(let a of d)g.includes(`Id="${a.relationshipId}"`)||(g=g.replace("</Relationships>",`<Relationship Id="${a.relationshipId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/${a.fileName}"/></Relationships>`));a.folder("word")?.folder("_rels")?.file("document.xml.rels",g);let h=a.file("_rels/.rels"),i=h?await h.async("string"):'<?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>';i.includes("metadata/core-properties")||(i=i.replace("</Relationships>",'<Relationship Id="rCore" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>')),i.includes("extended-properties")||(i=i.replace("</Relationships>",'<Relationship Id="rApp" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/></Relationships>')),a.folder("_rels")?.file(".rels",i);let j=a.file("[Content_Types].xml"),k=j?await j.async("string"):'<?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>';for(let a of new Set(d.map(a=>l.extname(a.fileName).slice(1).toLowerCase()).filter(Boolean))){let b="jpg"===a||"jpeg"===a?"image/jpeg":"png"===a?"image/png":void 0;b&&!k.includes(`Extension="${a}"`)&&(k=k.replace("</Types>",`<Default Extension="${a}" ContentType="${b}"/></Types>`))}for(let[a,b]of[["/word/styles.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"],["/word/numbering.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"],["/word/settings.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"],["/word/fontTable.xml","application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"],["/docProps/core.xml","application/vnd.openxmlformats-package.core-properties+xml"],["/docProps/app.xml","application/vnd.openxmlformats-officedocument.extended-properties+xml"]])k.includes(`PartName="${a}"`)||(k=k.replace("</Types>",`<Override PartName="${a}" ContentType="${b}"/></Types>`));a.file("[Content_Types].xml",k)}async function O(a,b,c,d,e=process.cwd()){let f={projectRoot:e,images:[]},g=function(a,b,c){let d=L(b),e=d.titleHalfPoints,f=d.bodyHalfPoints,g=G(a).replace(/<div class="page-break"><\/div>/gu,"\n[[PAGE_BREAK]]\n").split("\n"),h=[],i=!1,k=!1,m=!1;for(let a=0;a<g.length;){var n;let b=g[a].trim();if(!b){a+=1;continue}if(/<div\s+class=["']document-cover["']\s*>/iu.test(b)){k=!0,a+=1;continue}if(k&&/^<\/div>$/iu.test(b)){k=!1,a+=1;continue}if("[[PAGE_BREAK]]"===b){i=!1,k=!1,h.push(M("",{pageBreak:!0})),a+=1;continue}if(k){let c=H(b.replace(/^#\s+/u,""));c&&h.push(M(c,{bold:!0,size:Math.max(e+8,44),line:Math.round(1.15*d.lineTwips),fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"center",spacingBefore:360,spacingAfter:220})),a+=1;continue}let o=c?function(a,b){let c=/!\[([^\]]*)\]\(([^)]+)\)/u.exec(a);if(!c)return null;let d=A(c[2].trim(),b.projectRoot);if(!d)return null;let e=j.readFileSync(d),f=y(d);if(!f||"image/svg+xml"===f||e.length>8388608)return null;let g=b.images.length+1,h=l.extname(d).toLowerCase()||".png",i=function(a,b){if("image/png"===b&&a.length>=24&&"PNG"===a.toString("ascii",1,4))return{width:a.readUInt32BE(16),height:a.readUInt32BE(20)};if("image/jpeg"===b){let b=2;for(;b+9<a.length&&255===a[b];){let c=a[b+1],d=a.readUInt16BE(b+2);if(c>=192&&c<=195)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};b+=2+d}}return{width:640,height:360}}(e,f),k=Math.min(1,620/Math.max(i.width,1)),m={relationshipId:`rImage${g}`,fileName:`image${g}${h}`,buffer:e,contentType:f,widthEmu:Math.round(i.width*k*9525),heightEmu:Math.round(i.height*k*9525),altText:c[1]||`image${g}`};return b.images.push(m),m}(b,c):null;if(o){h.push(`<w:p><w:pPr><w:jc w:val="center"/><w:spacing w:after="120"/></w:pPr><w:r><w:drawing><wp:inline xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"><wp:extent cx="${o.widthEmu}" cy="${o.heightEmu}"/><wp:docPr id="${o.relationshipId.replace(/\D/gu,"")||"1"}" name="${v(o.altText||o.fileName)}"/><a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"><pic:nvPicPr><pic:cNvPr id="0" name="${v(o.fileName)}"/><pic:cNvPicPr/></pic:nvPicPr><pic:blipFill><a:blip r:embed="${o.relationshipId}" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/><a:stretch><a:fillRect/></a:stretch></pic:blipFill><pic:spPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="${o.widthEmu}" cy="${o.heightEmu}"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></pic:spPr></pic:pic></a:graphicData></a:graphic></wp:inline></w:drawing></w:r></w:p>`),a+=1;continue}let p=function(a,b){let c=a[b+1]?.trim()===""?b+2:b+1;if(c>=a.length||!D(a[b]||"")||!C(a[c]||""))return null;let d=E(a[b]||"").map(a=>H(a)),e=E(a[c]||"").length,f=Math.max(2,d.length,e),g=[d],h=c+1;for(;h<a.length&&D(a[h]||"");){let b=E(a[h]||"").map(a=>H(a)).slice(0,f);for(;b.length<f;)b.push("");g.push(b),h+=1}return{rows:g,next:h}}(g,a);if(p){h.push(function(a,b){let c=Math.max(1,...a.map(a=>a.length)),d=Math.floor(9638/c),e=Array.from({length:c},(a,b)=>b===c-1?9638-d*(c-1):d),f=`<w:tblGrid>${e.map(a=>`<w:gridCol w:w="${a}"/>`).join("")}</w:tblGrid>`;return`<w:tbl><w:tblPr><w:tblW w:w="9638" w:type="dxa"/><w:tblLook w:firstRow="1" w:noHBand="0"/><w:tblBorders><w:top w:val="single" w:sz="6" w:color="666666"/><w:left w:val="single" w:sz="6" w:color="666666"/><w:bottom w:val="single" w:sz="6" w:color="666666"/><w:right w:val="single" w:sz="6" w:color="666666"/><w:insideH w:val="single" w:sz="4" w:color="666666"/><w:insideV w:val="single" w:sz="4" w:color="666666"/></w:tblBorders></w:tblPr>${f}${a.map((a,c)=>`<w:tr>${e.map((d,e)=>{let f=a[e]||"";return`<w:tc><w:tcPr><w:tcW w:w="${d}" w:type="dxa"/><w:tcMar><w:top w:w="80" w:type="dxa"/><w:left w:w="120" w:type="dxa"/><w:bottom w:w="80" w:type="dxa"/><w:right w:w="120" w:type="dxa"/></w:tcMar>${0===c?'<w:shd w:val="clear" w:fill="F3F4F6"/>':""}</w:tcPr>${M(f,{bold:0===c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:0,align:0===c?"center":"left"})}</w:tc>`}).join("")}</w:tr>`).join("")}</w:tbl>`}(p.rows,d),M("",{spacingAfter:80,line:d.lineTwips})),a=p.next;continue}let q=/^(#{1,4})\s+(.+)$/u.exec(b);if(q){let b=H(q[2]);i="目录"===b,h.push((n=q[1].length,2===n?M(b,{styleId:"Heading1",outlineLevel:0,bold:!0,size:Math.max(d.titleHalfPoints+4,36),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"center",spacingBefore:260,spacingAfter:180,keepNext:!0}):3===n?M(b,{styleId:"Heading2",outlineLevel:1,bold:!0,size:Math.max(d.titleHalfPoints,32),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,spacingBefore:180,spacingAfter:100,keepNext:!0}):M(b,{styleId:"Heading3",outlineLevel:2,bold:!0,size:Math.max(d.bodyHalfPoints,28),line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,spacingBefore:120,spacingAfter:80,keepNext:!0}))),i&&!m&&(h.push(`<w:p><w:pPr><w:spacing w:line="${d.lineTwips}" w:lineRule="exact" w:after="120"/></w:pPr><w:r><w:fldChar w:fldCharType="begin"/></w:r><w:r><w:instrText xml:space="preserve">TOC \\o &quot;1-3&quot; \\h \\z \\u</w:instrText></w:r><w:r><w:fldChar w:fldCharType="separate"/></w:r><w:r><w:t>请在 Word 中右键更新目录</w:t></w:r><w:r><w:fldChar w:fldCharType="end"/></w:r></w:p>`),m=!0),a+=1;continue}let r=H(b),s=function(a){let b=/^\s*(\d+(?:\.\d+){0,2})([.、])\s+(.+)$/u.exec(a);return b?{level:Math.min(b[1].split(".").length-1,2),marker:`${b[1]}${b[2]}`,text:H(b[3])}:null}(b),t=function(a){let b=/^\s*[-*+]\s+(.+)$/u.exec(a);return b?H(b[1]):null}(b);if(!i&&s){let b=0===s.level?720:1===s.level?1080:1440,c=0===s.level?360:1===s.level?420:480;h.push(M(`${s.marker} ${s.text}`,{styleId:"ListParagraph",size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,indentLeft:b,hanging:c,spacingAfter:60})),a+=1;continue}if(!i&&t){h.push(M(`• ${t}`,{styleId:"ListParagraph",size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,indentLeft:720,hanging:360,spacingAfter:60})),a+=1;continue}let u=/^\*\*[^*]+\*\*\s*[::]?\s*$/u.test(b)||/^([一二三四五六七八九十]+)/u.test(r)||/^[一二三四五六七八九十]+、/u.test(r);h.push(i?function(a,b){let c=/^\s*\d+\.\d+\s+\S/u.test(a);return M(H(a),{bold:!c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:c?30:80,indentLeft:420*!!c,align:"left"})}(b,d):M(r,{bold:u,size:f,line:d.lineTwips,fontEastAsia:d.fontEastAsia,fontAscii:d.fontAscii,align:"both",firstLine:560*!u,spacingBefore:80*!!u})),a+=1}return h.join("")}(b,c,f);if(d&&j.existsSync(d)){let b=await p().loadAsync(j.readFileSync(d)),e=b.file("word/document.xml");if(e){let d=await e.async("string");return b.file("word/document.xml",d.replace(/\{\{title\}\}/gu,v(a)).replace(/\{\{content\}\}/gu,g)),await N(b,a,c,f.images),b.generateAsync({type:"nodebuffer"})}}let h=c?.page||{},i=new(p());return i.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>${g}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="${K(h.marginTop,2.5)}" w:right="${K(h.marginRight,2)}" w:bottom="${K(h.marginBottom,2)}" w:left="${K(h.marginLeft,2)}"/></w:sectPr></w:body></w:document>`),await N(i,a,c,f.images),i.generateAsync({type:"nodebuffer"})}function P(a,b){return a&&/^[\w\s\u4e00-\u9fa5,"'().-]+$/u.test(a)?a:b}function Q(a){let b=a?.page||{},c=a?.typography||{},d=P(b.paper,"A4"),e=P(b.marginTop,"24mm"),f=P(b.marginRight,"18mm"),g=P(b.marginBottom,"22mm"),h=P(b.marginLeft,"18mm"),i=P(c.fontFamily,"SimSun, 宋体, serif"),j=J(c.lineHeight,22);return{paper:d,marginTop:e,marginRight:f,marginBottom:g,marginLeft:h,fontFamily:i,lineHeight:j,titleSize:J(c.titleSize,16),bodySize:J(c.bodySize,14)}}function R(a){return a.replace(/(<h2[^>]*>\s*目录\s*<\/h2>)([\s\S]*?)(<div class="page-break"><\/div>)/u,(a,b,c,d)=>{let e=c.replace(/<ol>\s*([\s\S]*?)\s*<\/ol>/u,(a,b)=>b).replace(/<li>\s*([^<]+?)\s*<\/li>/gu,"<p>$1</p>").replace(/<p>(?:\s|&nbsp;|&#160;)*(\d+\.\d+\s+[^<]+)<\/p>/giu,'<p class="toc-section">$1</p>').replace(/<p>(?!(?:\s|&nbsp;|&#160;)*<\/p>|(?:\s|&nbsp;|&#160;)*\d+\.\d+\s)([\s\S]*?)<\/p>/giu,'<p class="toc-chapter">$1</p>');return`<section class="document-toc">${b}${e}</section>${d}`})}function S(a){let b=a.message.trim();return!/^(事实冲突|必需章节缺失):/u.test(b)&&/出现禁用文本\s*(资料未提供|占位|TODO|TBD)|正文包含.*(资料未提供|占位)|图片、地图或附件引用路径明显无效|无效路径|表格语法错误|临时远程生成 URL|提示词全文|内部错误|生成未完成|低于目标页数|低于目标字数|文档预算未达成|正文篇幅低于目标|缺少配置小节|缺少必要的正式表格|正文缺少章节标题/iu.test(b)}function T(a){return{chars:a.trim().length,h2:(a.match(/^##\s+/gmu)||[]).length,h3:(a.match(/^###\s+/gmu)||[]).length,tables:(a.match(/\n\s*\|\s*:?-{3,}/gu)||[]).length}}function U(a,b){let c=T(a),d=b?T(b):void 0,e=[];c.chars<200&&e.push("导出内容为空或过短"),d&&d.chars>1e3&&c.chars<.8*d.chars&&e.push("导出内容明显少于服务端生成记录"),d&&d.h3>0&&0===c.h3&&e.push("导出内容缺少服务端生成记录中的二级小节"),d&&d.tables>0&&0===c.tables&&e.push("导出内容缺少服务端生成记录中的表格");let f=a.split(/\r?\n/u).map(a=>/^(#{2,4})\s+(.+)$/u.exec(a.trim())).filter(a=>!!a).map(a=>({level:a[1].length,title:H(a[2])})).filter(a=>a.title&&"目录"!==a.title);0===f.length&&e.push("正文缺少章节标题"),f.some((a,b)=>b>0&&a.level-f[b-1].level>1)&&e.push("标题层级存在跳级,可能影响导出目录和导航");let g=f.map(a=>a.title.replace(/^第[一二三四五六七八九十百]+章\s*/u,"").replace(/^\d+(?:\.\d+)*\s*/u,"").replace(/[\s::.。]+$/gu,"").trim()).filter(Boolean).filter((a,b,c)=>c.indexOf(a)!==b);g.length>0&&e.push(`存在重复标题:${[...new Set(g)].slice(0,3).join("、")}`);let h=a.split(/\r?\n/u).map(a=>H(a)).filter(a=>a.length>0&&!/^#+\s/u.test(a));h.some(a=>a.length<=1)&&e.push("正文存在孤立字或残缺段落"),h.some(a=>/[,、;:和与在为对将]$/u.test(a)||/(通过|包括|如下|主要包括)$/u.test(a))&&e.push("正文存在疑似截断句或未完结段落"),h.some(a=>a.length>380)&&e.push("正文存在过长段落,建议拆分以改善导出版式");let i=function(a){let b=new Map,c=[];for(let d of a.split(/\n{2,}/u).map(a=>H(a)).filter(a=>a.length>=45&&!/^#+\s/u.test(a))){let a=d.replace(/\s+/gu,"").slice(0,90),e=(b.get(a)||0)+1;b.set(a,e),2===e&&c.push(d.slice(0,60))}return c}(a);return i.length>0&&e.push(`正文存在重复段落:${i.slice(0,2).join(";")}`),e}function V(a,b){let c=G(a),d=G(b||"");return{markdown:c,baselineMarkdown:d,issues:U(c,d)}}async function W(a,b,d,e){let{marked:f}=await Promise.resolve().then(c.bind(c,83142));return B(function(a,b,c){let d=L(c),e=R(b);return`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${v(a)}</title><style>
2
2
  @page{size:${d.paper};margin:${d.marginTop} ${d.marginRight} ${d.marginBottom} ${d.marginLeft}}
3
3
  *{box-sizing:border-box}
4
4
  html,body{margin:0;padding:0;background:#fff}
@@ -22,5 +22,5 @@ th,td{font-family:${d.fontFamily};font-size:${d.bodyCss};line-height:${d.lineCss
22
22
  th{background:#f3f4f6;font-weight:700;text-align:center}
23
23
  pre{white-space:pre-wrap;font-family:${d.fontFamily};font-size:${d.bodyCss};line-height:${d.lineCss};page-break-inside:avoid;break-inside:avoid}.page-break{page-break-after:always;break-after:page;height:0}
24
24
  @media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact}a{text-decoration:none;color:#111827}}
25
- </style></head><body>${e}</body></html>`}(a,f.parse(b,{async:!1}),d),e)}function T(){let a=[process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH,process.env.CHROME_PATH].filter(Boolean),b=k.homedir();return[...new Set([...a,..."darwin"===process.platform?["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",l.join(b,"Applications/Google Chrome.app/Contents/MacOS/Google Chrome"),l.join(b,"Applications/Chromium.app/Contents/MacOS/Chromium")]:"win32"===process.platform?[l.join(process.env.PROGRAMFILES||"C:\\Program Files","Google/Chrome/Application/chrome.exe"),l.join(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Google/Chrome/Application/chrome.exe"),l.join(process.env.LOCALAPPDATA||"","Google/Chrome/Application/chrome.exe"),l.join(process.env.PROGRAMFILES||"C:\\Program Files","Microsoft/Edge/Application/msedge.exe")]:["/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser","/snap/bin/chromium","/usr/bin/microsoft-edge"]].filter(a=>a&&j.existsSync(a)))]}async function U(a,b,c){let d=j.mkdtempSync(l.join(k.tmpdir(),"customize-agent-pdf-")),e=l.join(d,"document.html"),f=l.join(d,"document.pdf"),g=l.join(d,"profile");j.writeFileSync(e,a,"utf-8");try{let a=M(c),d=(0,m.pathToFileURL)(e).href,h=["--disable-gpu","--no-sandbox","--disable-setuid-sandbox",`--user-data-dir=${g}`,`--print-to-pdf=${f}`,`--print-to-pdf-page-size=${a.paper}`,d],i=[];for(let a of["--headless=new","--headless"])try{if(await w(b,[a,...h],{timeout:3e4,maxBuffer:1048576}),j.existsSync(f)&&j.statSync(f).size>=1024)return j.readFileSync(f);i.push(`${a}: browser command did not produce a valid PDF`)}catch(b){i.push(`${a}: ${b instanceof Error?b.message:String(b)}`)}throw Error(i.join("\n"))}finally{j.rmSync(d,{recursive:!0,force:!0})}}async function V(a,b){let{chromium:d}=await Promise.resolve().then(c.bind(c,83237)),e=[{label:"playwright-bundled-chromium",options:{headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},{label:"system-chrome-channel",options:{channel:"chrome",headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},{label:"system-msedge-channel",options:{channel:"msedge",headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},...T().map(a=>({label:a,options:{executablePath:a,headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}}))],f=[];for(let c of e)try{let e=await d.launch(c.options);try{let c=await e.newPage({locale:"zh-CN"});await c.setContent(a,{waitUntil:"load"}),await c.waitForFunction(()=>Array.from(document.images).every(a=>a.complete),void 0,{timeout:1e4}).catch(()=>void 0),await c.emulateMedia({media:"print"});let d=H(b),f=await c.pdf({format:d.paper,printBackground:!0,preferCSSPageSize:!0,margin:{top:d.marginTop,right:d.marginRight,bottom:d.marginBottom,left:d.marginLeft},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:`<div style="font-family:${d.fontFamily};font-size:10.5pt;line-height:12pt;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>`});return Buffer.from(f)}finally{await e.close()}}catch(a){f.push(`${c.label}: ${a instanceof Error?a.message:String(a)}`)}for(let c of T())try{return await U(a,c,b)}catch(a){f.push(`browser-command ${c}: ${a instanceof Error?a.message:String(a)}`)}throw Error(f.join("\n"))}async function W(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let c=a.body,d=c.documentId?(0,q.v7)(c.documentId):null;if(c.documentId&&!d)return b.status(404).json({error:"Document not found"});let e=c.title||d?.title||"document",f=(0,r.aY)(),g=d?.draft?.exportSettings,h=d?.editedMarkdown||d?.markdown||d?.draft?.markdown||"",i=R(c.useClientMarkdown&&"string"==typeof c.markdown?c.markdown:h||c.markdown||"",d?.draft?.markdown||d?.markdown||""),{markdown:j}=i,k=c.format;if(!k||!["markdown","html","pdf","docx"].includes(k))return b.status(400).json({error:"INVALID_EXPORT_FORMAT",message:"请选择有效的导出格式。"});i.issues.length>0&&b.setHeader("X-Export-Content-Issues",encodeURIComponent(JSON.stringify(i.issues.slice(0,20))));let l=d?.draft?.exportGate||c.exportGate,m=l?.blockingIssues?.filter(O)||[],n=l?.passed===!1&&0===m.length?[{message:"导出门禁未通过:存在未完成的检查项"}]:[],o=[...m,...n];b.setHeader("X-Export-Gate-Passed",0===o.length?"true":"false"),o.length>0&&b.setHeader("X-Export-Gate-Issues",encodeURIComponent(JSON.stringify(o.map(a=>a.message).slice(0,20))));let p=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===k)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.md`)}`),b.status(200).send(j);if("docx"===k){let a=await K(e,j,g,c.wordTemplatePath,f);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.docx`)}`),b.status(200).send(a)}let t=await S(e,j,g,f);if("html"===k)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.html`)}`),b.status(200).send(t);try{let a=await V(t,g),c=function(a){let b=a.toString("latin1").match(/\/Type\s*\/Page\b/gu);return b?.length||void 0}(a);return b.setHeader("Content-Type","application/pdf"),c&&b.setHeader("X-PDF-Page-Count",String(c)),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.pdf`)}`),b.status(200).send(a)}catch(c){return(0,s.wF)({level:"error",source:"api/documents/export",functionName:"pdfExportChromium",error:c,req:a,meta:{fallback:"system-browser-attempted"}}),b.status(500).json({error:"PDF_RENDER_FAILED",message:"PDF 渲染失败:未找到或无法启动可用的 Chrome/Chromium/Edge。请安装 Chrome,或设置 PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH 后重试。"})}}let X={inlineLocalImages:B,resolveLocalImagePath:A,normalizeExportUnits:C,prepareExportMarkdown:R,stripInlineMarkdown:D,enhanceTocHtml:N,buildExportHtml:S,buildDocx:K,validateExportMarkdown:Q},Y=(0,t.j)("api/documents/export",W);var Z=c(68970),$=c(50296);let _=(0,h.M)(d,"default"),aa=(0,h.M)(d,"config"),ab=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 ac(a,b,c){let d=await ab.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,Z.getTracer)(),e=d.getActiveScopeSpan(),j=ab.instrumentationOnRequestError.bind(ab),k=async e=>ab.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:ab.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")!==$.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($.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:Z.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(ab.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},87550:a=>{a.exports=require("better-sqlite3")},91879:(a,b,c)=>{c.d(b,{hH:()=>p,mG:()=>r,cW:()=>o,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h);let j=require("crypto");var 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)}
26
- `)}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)}))}},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,7899,5247],()=>b(b.s=83258));module.exports=c})();
25
+ </style></head><body>${e}</body></html>`}(a,f.parse(b,{async:!1}),d),e)}function X(){let a=[process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH,process.env.CHROME_PATH].filter(Boolean),b=k.homedir();return[...new Set([...a,..."darwin"===process.platform?["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",l.join(b,"Applications/Google Chrome.app/Contents/MacOS/Google Chrome"),l.join(b,"Applications/Chromium.app/Contents/MacOS/Chromium")]:"win32"===process.platform?[l.join(process.env.PROGRAMFILES||"C:\\Program Files","Google/Chrome/Application/chrome.exe"),l.join(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Google/Chrome/Application/chrome.exe"),l.join(process.env.LOCALAPPDATA||"","Google/Chrome/Application/chrome.exe"),l.join(process.env.PROGRAMFILES||"C:\\Program Files","Microsoft/Edge/Application/msedge.exe")]:["/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser","/snap/bin/chromium","/usr/bin/microsoft-edge"]].filter(a=>a&&j.existsSync(a)))]}async function Y(a,b,c){let d=j.mkdtempSync(l.join(k.tmpdir(),"customize-agent-pdf-")),e=l.join(d,"document.html"),f=l.join(d,"document.pdf"),g=l.join(d,"profile");j.writeFileSync(e,a,"utf-8");try{let a=Q(c),d=(0,m.pathToFileURL)(e).href,h=["--disable-gpu","--no-sandbox","--disable-setuid-sandbox",`--user-data-dir=${g}`,`--print-to-pdf=${f}`,`--print-to-pdf-page-size=${a.paper}`,d],i=[];for(let a of["--headless=new","--headless"])try{if(await w(b,[a,...h],{timeout:3e4,maxBuffer:1048576}),j.existsSync(f)&&j.statSync(f).size>=1024)return j.readFileSync(f);i.push(`${a}: browser command did not produce a valid PDF`)}catch(b){i.push(`${a}: ${b instanceof Error?b.message:String(b)}`)}throw Error(i.join("\n"))}finally{j.rmSync(d,{recursive:!0,force:!0})}}async function Z(a,b){let{chromium:d}=await Promise.resolve().then(c.bind(c,83237)),e=[{label:"playwright-bundled-chromium",options:{headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},{label:"system-chrome-channel",options:{channel:"chrome",headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},{label:"system-msedge-channel",options:{channel:"msedge",headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}},...X().map(a=>({label:a,options:{executablePath:a,headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]}}))],f=[];for(let c of e)try{let e=await d.launch(c.options);try{let c=await e.newPage({locale:"zh-CN"});await c.setContent(a,{waitUntil:"load"}),await c.waitForFunction(()=>Array.from(document.images).every(a=>a.complete),void 0,{timeout:1e4}).catch(()=>void 0),await c.emulateMedia({media:"print"});let d=L(b),f=await c.pdf({format:d.paper,printBackground:!0,preferCSSPageSize:!0,margin:{top:d.marginTop,right:d.marginRight,bottom:d.marginBottom,left:d.marginLeft},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:`<div style="font-family:${d.fontFamily};font-size:10.5pt;line-height:12pt;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>`});return Buffer.from(f)}finally{await e.close()}}catch(a){f.push(`${c.label}: ${a instanceof Error?a.message:String(a)}`)}for(let c of X())try{return await Y(a,c,b)}catch(a){f.push(`browser-command ${c}: ${a instanceof Error?a.message:String(a)}`)}throw Error(f.join("\n"))}async function $(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let c=a.body,d=c.documentId?(0,q.v7)(c.documentId):null;if(c.documentId&&!d)return b.status(404).json({error:"Document not found"});let e=c.title||d?.title||"document",f=(0,r.aY)(),g=d?.draft?.exportSettings,h=d?.editedMarkdown||d?.markdown||d?.draft?.markdown||"",i=V(c.useClientMarkdown&&"string"==typeof c.markdown?c.markdown:h||c.markdown||"",d?.draft?.markdown||d?.markdown||""),{markdown:j}=i,k=c.format;if(!k||!["markdown","html","pdf","docx"].includes(k))return b.status(400).json({error:"INVALID_EXPORT_FORMAT",message:"请选择有效的导出格式。"});i.issues.length>0&&b.setHeader("X-Export-Content-Issues",encodeURIComponent(JSON.stringify(i.issues.slice(0,20))));let l=d?.draft?.exportGate||c.exportGate,m=l?.blockingIssues?.filter(S)||[],n=l?.passed===!1&&0===m.length?[{message:"导出门禁未通过:存在未完成的检查项"}]:[],o=[...m,...n];b.setHeader("X-Export-Gate-Passed",0===o.length?"true":"false"),o.length>0&&b.setHeader("X-Export-Gate-Issues",encodeURIComponent(JSON.stringify(o.map(a=>a.message).slice(0,20))));let p=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===k)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.md`)}`),b.status(200).send(j);if("docx"===k){let a=await O(e,j,g,c.wordTemplatePath,f);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.docx`)}`),b.status(200).send(a)}let t=await W(e,j,g,f);if("html"===k)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.html`)}`),b.status(200).send(t);try{let a=await Z(t,g),c=function(a){let b=a.toString("latin1").match(/\/Type\s*\/Page\b/gu);return b?.length||void 0}(a);return b.setHeader("Content-Type","application/pdf"),c&&b.setHeader("X-PDF-Page-Count",String(c)),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${p}.pdf`)}`),b.status(200).send(a)}catch(c){return(0,s.wF)({level:"error",source:"api/documents/export",functionName:"pdfExportChromium",error:c,req:a,meta:{fallback:"system-browser-attempted"}}),b.status(500).json({error:"PDF_RENDER_FAILED",message:"PDF 渲染失败:未找到或无法启动可用的 Chrome/Chromium/Edge。请安装 Chrome,或设置 PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH 后重试。"})}}let _={inlineLocalImages:B,resolveLocalImagePath:A,normalizeExportUnits:G,prepareExportMarkdown:V,stripInlineMarkdown:H,enhanceTocHtml:R,buildExportHtml:W,buildDocx:O,validateExportMarkdown:U},aa=(0,t.j)("api/documents/export",$);var ab=c(68970),ac=c(50296);let ad=(0,h.M)(d,"default"),ae=(0,h.M)(d,"config"),af=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 ag(a,b,c){let d=await af.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,ab.getTracer)(),e=d.getActiveScopeSpan(),j=af.instrumentationOnRequestError.bind(af),k=async e=>af.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:af.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")!==ac.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(ac.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:ab.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(af.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},87550:a=>{a.exports=require("better-sqlite3")},91879:(a,b,c)=>{c.d(b,{hH:()=>p,mG:()=>r,cW:()=>o,wF:()=>n});var d=c(29021),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h);let j=require("crypto");var 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)}
26
+ `)}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)}))}},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,7899,6315,8661],()=>b(b.s=83258));module.exports=c})();