@customize-agent/server 4.0.71 → 4.0.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +22 -22
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/5247.js +44 -44
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +2 -2
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files.js +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/context/long-term.html +1 -1
- package/.next/server/pages/context/short-term.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/search.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +22 -22
- package/.next/static/{G2viAcdgjbPEipVUbf4jw → FRXU8sqe4rxv-3Oans9xU}/_buildManifest.js +1 -1
- package/.next/static/chunks/375-f731e5ec66ab942c.js +1 -0
- package/.next/static/chunks/496-ceb2d8197d6335cf.js +1 -0
- package/.next/static/chunks/63-47dff441816f712f.js +4 -0
- package/.next/static/chunks/642-b325b80d595ec100.js +8 -0
- package/.next/static/chunks/694-b6ab4967c35bbcee.js +1 -0
- package/.next/static/chunks/{317-18aac52df5551e76.js → 767-4f3b0ae7bff68fde.js} +1 -1
- package/.next/static/chunks/788-db05269178a28c20.js +1 -0
- package/.next/static/chunks/795-262a7ef599d655f4.js +1 -0
- package/.next/static/chunks/pages/{_app-dd841161c7d0b39e.js → _app-1eef3e5fadd36ac2.js} +1 -1
- package/.next/static/chunks/pages/asset-library-37f844cb358f5457.js +1 -0
- package/.next/static/chunks/pages/document-roles-00219c0a0871daec.js +1 -0
- package/.next/static/chunks/pages/documents-e82261d18dfafc62.js +1 -0
- package/.next/static/chunks/pages/guide-c45dc4e0a02247c9.js +1 -0
- package/package.json +2 -2
- package/scripts/verify-next-static.js +20 -1
- package/.next/server/chunks/8661.js +0 -1
- package/.next/static/chunks/375-4a1c73eb22d653d2.js +0 -1
- package/.next/static/chunks/496-4fb9a063790e65ff.js +0 -1
- package/.next/static/chunks/63-dd8eeb8edd766bae.js +0 -4
- package/.next/static/chunks/642-708b928fbafc6c20.js +0 -8
- package/.next/static/chunks/694-2d545cfbb9779f2c.js +0 -1
- package/.next/static/chunks/788-7f7359a830e3f4fd.js +0 -1
- package/.next/static/chunks/795-d8fb7a0420512701.js +0 -1
- package/.next/static/chunks/pages/asset-library-91bd2baa09727e0a.js +0 -1
- package/.next/static/chunks/pages/document-roles-fd02980db151650c.js +0 -1
- package/.next/static/chunks/pages/documents-9209f54ac7717b41.js +0 -1
- package/.next/static/chunks/pages/guide-61bea94f27710467.js +0 -1
- /package/.next/static/{G2viAcdgjbPEipVUbf4jw → FRXU8sqe4rxv-3Oans9xU}/_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")},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:()=>Z,default:()=>Y,handler:()=>_});var d={};c.r(d),c.d(d,{__documentExportTest__:()=>U,config:()=>u,default:()=>V});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,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}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}"`:""].filter(Boolean).join(" "),d=[b.keepNext?"<w:keepNext/>":"",b.align?`<w:jc w:val="${b.align}"/>`:"",c?`<w:ind ${c}/>`:"",`<w:spacing w:line="${b.line??440}" w:lineRule="exact" w:before="${b.spacingBefore??0}" w:after="${b.spacingAfter??120}"/>`].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>`}function J(a){let b=H(a);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 w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><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 w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><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><w:style w:type="paragraph" w:styleId="Heading1"><w:name w:val="heading 1"/><w:basedOn w:val="Normal"/><w:qFormat/><w:rPr><w:b/><w:rFonts w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><w:sz w:val="${b.titleHalfPoints}"/><w:szCs w:val="${b.titleHalfPoints}"/></w:rPr><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="160"/></w:pPr></w:style></w:styles>`}async function K(a,b,c,d){let e=function(a,b){let c=H(b),d=c.titleHalfPoints,e=c.bodyHalfPoints,f=C(a).replace(/<div class="page-break"><\/div>/gu,"\n[[PAGE_BREAK]]\n").split("\n"),g=[],h=!1,i=!1;for(let a=0;a<f.length;){let b=f[a].trim();if(!b){a+=1;continue}if(/<div\s+class=["']document-cover["']\s*>/iu.test(b)){i=!0,a+=1;continue}if(i&&/^<\/div>$/iu.test(b)){i=!1,a+=1;continue}if("[[PAGE_BREAK]]"===b){h=!1,i=!1,g.push(I("",{pageBreak:!0})),a+=1;continue}if(i){let e=D(b.replace(/^#\s+/u,""));e&&g.push(I(e,{bold:!0,size:Math.max(d+8,44),line:Math.round(1.15*c.lineTwips),fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,align:"center",spacingBefore:360,spacingAfter:220})),a+=1;continue}let k=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}}(f,a);if(k){g.push(function(a,b){return`<w:tbl><w:tblPr><w:tblW w:w="5000" w:type="pct"/><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>${a.map((a,c)=>`<w:tr>${a.map(a=>`<w:tc><w:tcPr><w:tcW w:w="0" w:type="auto"/><w:tcMar><w:top w:w="80" w:type="dxa"/><w:left w:w="100" w:type="dxa"/><w:bottom w:w="80" w:type="dxa"/><w:right w:w="100" w:type="dxa"/></w:tcMar>${0===c?'<w:shd w:fill="F3F4F6"/>':""}</w:tcPr>${I(a,{bold:0===c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:0,align:0===c?"center":void 0})}</w:tc>`).join("")}</w:tr>`).join("")}</w:tbl>`}(k.rows,c),I("",{spacingAfter:80,line:c.lineTwips})),a=k.next;continue}let l=/^(#{1,4})\s+(.+)$/u.exec(b);if(l){var j;let b=D(l[2]);h="目录"===b,g.push((j=l[1].length,2===j?I(b,{bold:!0,size:Math.max(c.titleHalfPoints+4,36),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,align:"center",spacingBefore:260,spacingAfter:180,keepNext:!0}):3===j?I(b,{bold:!0,size:Math.max(c.titleHalfPoints,32),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,spacingBefore:180,spacingAfter:100,keepNext:!0}):I(b,{bold:!0,size:Math.max(c.bodyHalfPoints,28),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,spacingBefore:120,spacingAfter:80,keepNext:!0}))),a+=1;continue}let m=D(b),n=/^\*\*[^*]+\*\*\s*[::]?\s*$/u.test(b)||/^([一二三四五六七八九十]+)/u.test(m)||/^[一二三四五六七八九十]+、/u.test(m);g.push(h?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,c):I(m,{bold:n,size:e,line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,firstLine:560*!n,spacingBefore:80*!!n})),a+=1}return g.join("")}(b,c);if(d&&j.existsSync(d)){let b=await p().loadAsync(j.readFileSync(d)),f=b.file("word/document.xml");if(f){let d=await f.async("string");b.file("word/document.xml",d.replace(/\{\{title\}\}/gu,v(a)).replace(/\{\{content\}\}/gu,e)),b.file("word/styles.xml",J(c));let g="word/_rels/document.xml.rels",h=b.file(g);if(h){let a=await h.async("string");a.includes("officeDocument/2006/relationships/styles")||b.file(g,a.replace("</Relationships>",'<Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'))}else b.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>');let i=b.file("[Content_Types].xml");if(i){let a=await i.async("string");a.includes("/word/styles.xml")||b.file("[Content_Types].xml",a.replace("</Types>",'<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/></Types>'))}return b.generateAsync({type:"nodebuffer"})}}let f=c?.page||{},g=new(p());return g.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"/><Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/></Types>'),g.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>'),g.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'),g.folder("word")?.file("styles.xml",J(c)),g.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>${e}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="${G(f.marginTop,2.5)}" w:right="${G(f.marginRight,2)}" w:bottom="${G(f.marginBottom,2)}" w:left="${G(f.marginLeft,2)}"/></w:sectPr></w:body></w:document>`),g.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| | )*(\d+\.\d+\s+[^<]+)<\/p>/giu,'<p class="toc-section">$1</p>').replace(/<p>(?!(?:\s| | )*<\/p>|(?:\s| | )*\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(){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 R(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 S(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"]}},...Q().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 Q())try{return await R(a,c,b)}catch(a){f.push(`browser-command ${c}: ${a instanceof Error?a.message:String(a)}`)}throw Error(f.join("\n"))}async function T(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let d=a.body,e=d.documentId?(0,q.v7)(d.documentId):null;if(d.documentId&&!e)return b.status(404).json({error:"Document not found"});let f=d.title||e?.title||"document",g=e?.editedMarkdown||e?.markdown||e?.draft?.markdown||"",h=C(d.useClientMarkdown&&"string"==typeof d.markdown?d.markdown:g||d.markdown||""),i=d.format;if(!i||!["markdown","html","pdf","docx"].includes(i))return b.status(400).json({error:"INVALID_EXPORT_FORMAT",message:"请选择有效的导出格式。"});let j=function(a,b){let c=P(a),d=b?P(b):void 0,e=[];return 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("导出内容缺少服务端生成记录中的表格"),e}(h,C(e?.draft?.markdown||e?.markdown||""));j.length>0&&b.setHeader("X-Export-Content-Issues",encodeURIComponent(JSON.stringify(j.slice(0,20))));let k=e?.draft?.exportGate||d.exportGate,l=k?.blockingIssues?.filter(O)||[],m=k?.passed===!1&&0===l.length?[{message:"导出门禁未通过:存在未完成的检查项"}]:[],n=[...l,...m];b.setHeader("X-Export-Gate-Passed",0===n.length?"true":"false"),n.length>0&&b.setHeader("X-Export-Gate-Issues",encodeURIComponent(JSON.stringify(n.map(a=>a.message).slice(0,20))));let o=f.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 K(f,h,e?.draft?.exportSettings,d.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:p}=await Promise.resolve().then(c.bind(c,83142)),t=(0,r.aY)(),u=e?.draft?.exportSettings,w=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")},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:()=>Z,default:()=>Y,handler:()=>_});var d={};c.r(d),c.d(d,{__documentExportTest__:()=>U,config:()=>u,default:()=>V});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,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}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}"`:""].filter(Boolean).join(" "),d=[b.keepNext?"<w:keepNext/>":"",b.align?`<w:jc w:val="${b.align}"/>`:"",c?`<w:ind ${c}/>`:"",`<w:spacing w:line="${b.line??440}" w:lineRule="exact" w:before="${b.spacingBefore??0}" w:after="${b.spacingAfter??120}"/>`].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>`}function J(a){let b=H(a);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 w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><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 w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><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><w:style w:type="paragraph" w:styleId="Heading1"><w:name w:val="heading 1"/><w:basedOn w:val="Normal"/><w:qFormat/><w:rPr><w:b/><w:rFonts w:ascii="${v(b.fontAscii)}" w:hAnsi="${v(b.fontAscii)}" w:eastAsia="${v(b.fontEastAsia)}" w:cs="${v(b.fontAscii)}"/><w:sz w:val="${b.titleHalfPoints}"/><w:szCs w:val="${b.titleHalfPoints}"/></w:rPr><w:pPr><w:spacing w:line="${b.lineTwips}" w:lineRule="exact" w:after="160"/></w:pPr></w:style></w:styles>`}async function K(a,b,c,d){let e=function(a,b){let c=H(b),d=c.titleHalfPoints,e=c.bodyHalfPoints,f=C(a).replace(/<div class="page-break"><\/div>/gu,"\n[[PAGE_BREAK]]\n").split("\n"),g=[],h=!1,i=!1;for(let a=0;a<f.length;){let b=f[a].trim();if(!b){a+=1;continue}if(/<div\s+class=["']document-cover["']\s*>/iu.test(b)){i=!0,a+=1;continue}if(i&&/^<\/div>$/iu.test(b)){i=!1,a+=1;continue}if("[[PAGE_BREAK]]"===b){h=!1,i=!1,g.push(I("",{pageBreak:!0})),a+=1;continue}if(i){let e=D(b.replace(/^#\s+/u,""));e&&g.push(I(e,{bold:!0,size:Math.max(d+8,44),line:Math.round(1.15*c.lineTwips),fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,align:"center",spacingBefore:360,spacingAfter:220})),a+=1;continue}let k=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}}(f,a);if(k){g.push(function(a,b){return`<w:tbl><w:tblPr><w:tblW w:w="5000" w:type="pct"/><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>${a.map((a,c)=>`<w:tr>${a.map(a=>`<w:tc><w:tcPr><w:tcW w:w="0" w:type="auto"/><w:tcMar><w:top w:w="80" w:type="dxa"/><w:left w:w="100" w:type="dxa"/><w:bottom w:w="80" w:type="dxa"/><w:right w:w="100" w:type="dxa"/></w:tcMar>${0===c?'<w:shd w:fill="F3F4F6"/>':""}</w:tcPr>${I(a,{bold:0===c,size:b.bodyHalfPoints,line:b.lineTwips,fontEastAsia:b.fontEastAsia,fontAscii:b.fontAscii,spacingAfter:0,align:0===c?"center":void 0})}</w:tc>`).join("")}</w:tr>`).join("")}</w:tbl>`}(k.rows,c),I("",{spacingAfter:80,line:c.lineTwips})),a=k.next;continue}let l=/^(#{1,4})\s+(.+)$/u.exec(b);if(l){var j;let b=D(l[2]);h="目录"===b,g.push((j=l[1].length,2===j?I(b,{bold:!0,size:Math.max(c.titleHalfPoints+4,36),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,align:"center",spacingBefore:260,spacingAfter:180,keepNext:!0}):3===j?I(b,{bold:!0,size:Math.max(c.titleHalfPoints,32),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,spacingBefore:180,spacingAfter:100,keepNext:!0}):I(b,{bold:!0,size:Math.max(c.bodyHalfPoints,28),line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,spacingBefore:120,spacingAfter:80,keepNext:!0}))),a+=1;continue}let m=D(b),n=/^\*\*[^*]+\*\*\s*[::]?\s*$/u.test(b)||/^([一二三四五六七八九十]+)/u.test(m)||/^[一二三四五六七八九十]+、/u.test(m);g.push(h?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,c):I(m,{bold:n,size:e,line:c.lineTwips,fontEastAsia:c.fontEastAsia,fontAscii:c.fontAscii,firstLine:560*!n,spacingBefore:80*!!n})),a+=1}return g.join("")}(b,c);if(d&&j.existsSync(d)){let b=await p().loadAsync(j.readFileSync(d)),f=b.file("word/document.xml");if(f){let d=await f.async("string");b.file("word/document.xml",d.replace(/\{\{title\}\}/gu,v(a)).replace(/\{\{content\}\}/gu,e)),b.file("word/styles.xml",J(c));let g="word/_rels/document.xml.rels",h=b.file(g);if(h){let a=await h.async("string");a.includes("officeDocument/2006/relationships/styles")||b.file(g,a.replace("</Relationships>",'<Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'))}else b.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>');let i=b.file("[Content_Types].xml");if(i){let a=await i.async("string");a.includes("/word/styles.xml")||b.file("[Content_Types].xml",a.replace("</Types>",'<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/></Types>'))}return b.generateAsync({type:"nodebuffer"})}}let f=c?.page||{},g=new(p());return g.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"/><Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/></Types>'),g.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>'),g.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rStyle" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'),g.folder("word")?.file("styles.xml",J(c)),g.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>${e}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="${G(f.marginTop,2.5)}" w:right="${G(f.marginRight,2)}" w:bottom="${G(f.marginBottom,2)}" w:left="${G(f.marginLeft,2)}"/></w:sectPr></w:body></w:document>`),g.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| | )*(\d+\.\d+\s+[^<]+)<\/p>/giu,'<p class="toc-section">$1</p>').replace(/<p>(?!(?:\s| | )*<\/p>|(?:\s| | )*\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(){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 R(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 S(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"]}},...Q().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 Q())try{return await R(a,c,b)}catch(a){f.push(`browser-command ${c}: ${a instanceof Error?a.message:String(a)}`)}throw Error(f.join("\n"))}async function T(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let d=a.body,e=d.documentId?(0,q.v7)(d.documentId):null;if(d.documentId&&!e)return b.status(404).json({error:"Document not found"});let f=d.title||e?.title||"document",g=e?.editedMarkdown||e?.markdown||e?.draft?.markdown||"",h=C(d.useClientMarkdown&&"string"==typeof d.markdown?d.markdown:g||d.markdown||""),i=d.format;if(!i||!["markdown","html","pdf","docx"].includes(i))return b.status(400).json({error:"INVALID_EXPORT_FORMAT",message:"请选择有效的导出格式。"});let j=function(a,b){let c=P(a),d=b?P(b):void 0,e=[];return 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("导出内容缺少服务端生成记录中的表格"),e}(h,C(e?.draft?.markdown||e?.markdown||""));j.length>0&&b.setHeader("X-Export-Content-Issues",encodeURIComponent(JSON.stringify(j.slice(0,20))));let k=e?.draft?.exportGate||d.exportGate,l=k?.blockingIssues?.filter(O)||[],m=k?.passed===!1&&0===l.length?[{message:"导出门禁未通过:存在未完成的检查项"}]:[],n=[...l,...m];b.setHeader("X-Export-Gate-Passed",0===n.length?"true":"false"),n.length>0&&b.setHeader("X-Export-Gate-Issues",encodeURIComponent(JSON.stringify(n.map(a=>a.message).slice(0,20))));let o=f.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 K(f,h,e?.draft?.exportSettings,d.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:p}=await Promise.resolve().then(c.bind(c,83142)),t=(0,r.aY)(),u=e?.draft?.exportSettings,w=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>
|
|
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}
|
|
@@ -23,4 +23,4 @@ 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
25
|
</style></head><body>${e}</body></html>`}(f,p.parse(h,{async:!1}),u),t);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(w);try{let a=await S(w,u),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(`${o}.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 U={inlineLocalImages:B,resolveLocalImagePath:A,normalizeExportUnits:C,stripInlineMarkdown:D,enhanceTocHtml:N},V=(0,t.j)("api/documents/export",T);var W=c(68970),X=c(50296);let Y=(0,h.M)(d,"default"),Z=(0,h.M)(d,"config"),$=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 _(a,b,c){let d=await $.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,W.getTracer)(),e=d.getActiveScopeSpan(),j=$.instrumentationOnRequestError.bind($),k=async e=>$.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:$.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")!==X.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(X.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:W.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if($.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
|
|
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})();
|