@customize-agent/server 3.0.13 → 3.0.14
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 +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/3445.js +5 -9
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/export.js +14 -1
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/kb/categories.js +5 -9
- package/.next/server/pages/api/kb/duplicates.js +5 -9
- package/.next/server/pages/api/kb/files/detail.js +5 -9
- package/.next/server/pages/api/kb/files/open.js +5 -9
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +5 -9
- package/.next/server/pages/api/kb/files/reindex.js +5 -9
- package/.next/server/pages/api/kb/files.js +5 -9
- package/.next/server/pages/api/kb/ignore.js +5 -9
- package/.next/server/pages/api/kb/operations.js +5 -9
- package/.next/server/pages/api/kb/reindex.js +5 -9
- package/.next/server/pages/api/kb/search.js +5 -9
- package/.next/server/pages/api/kb/stats.js +5 -9
- package/.next/server/pages/api/kb/tags.js +5 -9
- package/.next/server/pages/api/kb/upload.js +5 -9
- 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/document-specs.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-manifest.json +23 -23
- package/package.json +2 -2
- /package/.next/static/{yL_ilPc9XJWtNmN2W4Njc → HrpIpnt5wstKoy1Bjfffe}/_buildManifest.js +0 -0
- /package/.next/static/{yL_ilPc9XJWtNmN2W4Njc → HrpIpnt5wstKoy1Bjfffe}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
HrpIpnt5wstKoy1Bjfffe
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js",
|
|
9
|
+
"static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [],
|
|
12
12
|
"rootMainFilesTree": {},
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "5c1431bd625bb80519e6f7f54a847e32",
|
|
7
|
+
"previewModeSigningKey": "1fdc07da32e7c87234674e1e18224f18955f88206de3359e38b680ce183e7d88",
|
|
8
|
+
"previewModeEncryptionKey": "7bcde352a18bbdc990782806ca54e0e7d0a5a99daa13f4dc56e69c69977e1c4f"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,14 +46,10 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
with zipfile.ZipFile(file,'w') as z:
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.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>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:要求攻略必须包含干员名称、定位、推荐指数、热门干员章节和表格数据。",factFields:[{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73445:(a,b,c)=>{c.d(b,{Bh:()=>v,OX:()=>G,R1:()=>H,bV:()=>x,h0:()=>w,jG:()=>t});var d=c(73024),e=c(76760),f=c(15751),g=c(48161),h=c(95393),i=c(23328),j=c(2323),k=c(89952),l=c(57367);let m=[{id:"delta-force-hot-operators-guide",name:"三角洲热门干员攻略",description:"内置全流程示例:基于示例攻略资料、表格、规则和规范包生成热门干员攻略文档。",category:"游戏攻略",outputTitle:"三角洲热门干员攻略",projectRoleConfigId:"delta-force-demo-config",documentSpecId:"delta-force-demo-spec",chapters:[{id:"overview",title:"第一章 攻略目标和适用人群",purpose:"说明攻略面向的新手/进阶玩家和使用场景。",requiredFacts:["攻略目标","适用人群"],queries:["三角洲行动 干员 攻略 适用 新手 进阶"]},{id:"operators",title:"第二章 热门干员定位速览",purpose:"汇总热门干员定位、技能和推荐场景。",requiredFacts:["干员名称","定位","技能"],queries:["三角洲行动 干员 定位 技能 露娜 红狼 牧羊人 蜂医"]},{id:"loadout",title:"第三章 干员搭配和队伍分工",purpose:"按突击、侦察、支援、工程等职责给出队伍搭配。",requiredFacts:["队伍分工","搭配建议"],queries:["三角洲行动 干员 搭配 队伍 分工 突击 侦察 支援 工程"]},{id:"tables",title:"第四章 数据表和推荐优先级",purpose:"引用表格数据生成优先级和推荐清单。",requiredFacts:["推荐指数","上手难度"],queries:["干员 推荐指数 上手难度 表格 优先级"]},{id:"tips",title:"第五章 实战注意事项",purpose:"整理实战打法、误区和复盘建议。",requiredFacts:["实战技巧","注意事项"],queries:["三角洲行动 实战 技巧 注意事项 误区"]}],builtIn:!0}];function n(){let a=e.join(g.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function o(){return e.join(n(),"document-templates.json")}function p(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"业务文档",projectRoleConfigId:a.projectRoleConfigId||void 0,documentSpecId:a.documentSpecId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"业务文档",purpose:a.description||"",queries:[],requiredFacts:[]}],promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],boundFilePaths:Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean):[],promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],fileBindings:Array.isArray(a.fileBindings)?a.fileBindings.filter(a=>a.filePath&&a.roleId):Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean).map(a=>({filePath:a,roleId:"project_fact"})):[],builtIn:!1}}function q(){try{let a=o();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(p)}catch{return[]}}function r(a){d.writeFileSync(o(),JSON.stringify(a.map(p),null,2),"utf-8")}let s={"builtin:delta-fact-extraction":{name:"内置|三角洲事实抽取",content:"请从资料中抽取干员名称、定位、技能、推荐指数、上手难度、推荐场景,输出结构化事实,不要编造。"},"builtin:delta-chapter-generation":{name:"内置|三角洲章节生成",content:"请用新手能看懂的大白话生成攻略,先给结论,再解释原因,最后给实战建议。必须引用表格数据和来源资料。"},"builtin:delta-validation":{name:"内置|三角洲攻略校验",content:"检查是否覆盖露娜、红狼、牧羊人、蜂医;是否有推荐表格;是否出现缺失资料占位语;是否有来源。"},"builtin:delta-formatting":{name:"内置|三角洲攻略格式化",content:"整理标题、列表、表格和结尾提醒,让攻略更适合正式导出。"}};function t(){return[...m,...q()]}function u(a){return t().find(b=>b.id===a)}function v(a){let b=p(a);if(m.some(a=>a.id===b.id))throw Error("Built-in template cannot be overwritten");let c=q().filter(a=>a.id!==b.id);return c.push(b),r(c),b}function w(a){if(m.some(b=>b.id===a))throw Error("Built-in template cannot be deleted");r(q().filter(b=>b.id!==a))}function x(a){let b=u(a);if(!b)throw Error("Document template not found");let c=p({...b,id:`${b.id}-copy-${Date.now()}`,name:`${b.name} Copy`,builtIn:!1}),d=q();return d.push(c),r(d),c}function y(a,b){let c=new Set;return a.sort((a,b)=>b.score-a.score).filter(a=>{let b=`${a.filePath}:${a.content.slice(0,100)}`;return!c.has(b)&&(c.add(b),!0)}).slice(0,b)}function z(a,b,c,f,g){let h=e.isAbsolute(a)?a:d.existsSync(e.join(g,"knowledgeBase",a))?e.join(g,"knowledgeBase",a):e.join(g,a);if(!d.existsSync(h)||d.statSync(h).isDirectory())return[];let i=e.extname(h).toLowerCase();return(([".pdf",".doc",".docx",".png",".jpg",".jpeg",".webp"].includes(i)?`内置示例资料文件:${e.basename(a)},用于三角洲热门干员攻略生成,文件类型:${i}。`:d.readFileSync(h,"utf-8")).match(/[\s\S]{1,1800}/gu)||[]).slice(0,12).map((d,e)=>({chapterId:f,filePath:a,score:1,content:d,roleId:b,processingType:c,sectionTitle:`文件片段 ${e+1}`,source:"bound-file-direct"}))}function A(a){return`- ${a.filePath}(score=${a.score.toFixed(3)}):${a.content.replace(/\s+/gu," ").slice(0,260)}`}function B(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("prompt");if(b)return[...b.promptRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({promptId:b,roleId:a.id})))}return a.promptBindings?.length?a.promptBindings:(a.promptIds??[]).map(a=>({promptId:a,roleId:"chapter_generation"}))}function C(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("file");if(b)return[...b.fileRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({filePath:b,roleId:a.id})))}return a.fileBindings?.length?a.fileBindings:(a.boundFilePaths??[]).map(a=>({filePath:a,roleId:"project_fact"}))}async function D(a,b){try{let c=(0,j.I)().load(),d=c.models.reasoning.active||c.models.action.active||c.models.reader.active,e=[...c.models.reasoning.list,...c.models.action.list,...c.models.reader.list].find(a=>a.name===d);if(!e)return;let f=c.providers[e.provider];if(!f)return;let g=(0,h.createProvider)(e.provider,{baseUrl:f.baseUrl,apiKey:f.apiKey,modelName:e.name}),i=(await g.chat([{role:"system",content:`${a}
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:要求攻略必须包含干员名称、定位、推荐指数、热门干员章节和表格数据。",factFields:[{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73445:(a,b,c)=>{c.d(b,{Bh:()=>v,OX:()=>G,R1:()=>H,bV:()=>x,h0:()=>w,jG:()=>t});var d=c(73024),e=c(76760),f=c(15751),g=c(48161),h=c(95393),i=c(23328),j=c(2323),k=c(89952),l=c(57367);let m=[{id:"delta-force-hot-operators-guide",name:"三角洲热门干员攻略",description:"内置全流程示例:基于示例攻略资料、表格、规则和规范包生成热门干员攻略文档。",category:"游戏攻略",outputTitle:"三角洲热门干员攻略",projectRoleConfigId:"delta-force-demo-config",documentSpecId:"delta-force-demo-spec",chapters:[{id:"overview",title:"第一章 攻略目标和适用人群",purpose:"说明攻略面向的新手/进阶玩家和使用场景。",requiredFacts:["攻略目标","适用人群"],queries:["三角洲行动 干员 攻略 适用 新手 进阶"]},{id:"operators",title:"第二章 热门干员定位速览",purpose:"汇总热门干员定位、技能和推荐场景。",requiredFacts:["干员名称","定位","技能"],queries:["三角洲行动 干员 定位 技能 露娜 红狼 牧羊人 蜂医"]},{id:"loadout",title:"第三章 干员搭配和队伍分工",purpose:"按突击、侦察、支援、工程等职责给出队伍搭配。",requiredFacts:["队伍分工","搭配建议"],queries:["三角洲行动 干员 搭配 队伍 分工 突击 侦察 支援 工程"]},{id:"tables",title:"第四章 数据表和推荐优先级",purpose:"引用表格数据生成优先级和推荐清单。",requiredFacts:["推荐指数","上手难度"],queries:["干员 推荐指数 上手难度 表格 优先级"]},{id:"tips",title:"第五章 实战注意事项",purpose:"整理实战打法、误区和复盘建议。",requiredFacts:["实战技巧","注意事项"],queries:["三角洲行动 实战 技巧 注意事项 误区"]}],builtIn:!0}];function n(){let a=e.join(g.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function o(){return e.join(n(),"document-templates.json")}function p(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"业务文档",projectRoleConfigId:a.projectRoleConfigId||void 0,documentSpecId:a.documentSpecId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"业务文档",purpose:a.description||"",queries:[],requiredFacts:[]}],promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],boundFilePaths:Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean):[],promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],fileBindings:Array.isArray(a.fileBindings)?a.fileBindings.filter(a=>a.filePath&&a.roleId):Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean).map(a=>({filePath:a,roleId:"project_fact"})):[],builtIn:!1}}function q(){try{let a=o();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(p)}catch{return[]}}function r(a){d.writeFileSync(o(),JSON.stringify(a.map(p),null,2),"utf-8")}let s={"builtin:delta-fact-extraction":{name:"内置|三角洲事实抽取",content:"请从资料中抽取干员名称、定位、技能、推荐指数、上手难度、推荐场景,输出结构化事实,不要编造。"},"builtin:delta-chapter-generation":{name:"内置|三角洲章节生成",content:"请用新手能看懂的大白话生成攻略,先给结论,再解释原因,最后给实战建议。必须引用表格数据和来源资料。"},"builtin:delta-validation":{name:"内置|三角洲攻略校验",content:"检查是否覆盖露娜、红狼、牧羊人、蜂医;是否有推荐表格;是否出现缺失资料占位语;是否有来源。"},"builtin:delta-formatting":{name:"内置|三角洲攻略格式化",content:"整理标题、列表、表格和结尾提醒,让攻略更适合正式导出。"}};function t(){return[...m,...q()]}function u(a){return t().find(b=>b.id===a)}function v(a){let b=p(a);if(m.some(a=>a.id===b.id))throw Error("Built-in template cannot be overwritten");let c=q().filter(a=>a.id!==b.id);return c.push(b),r(c),b}function w(a){if(m.some(b=>b.id===a))throw Error("Built-in template cannot be deleted");r(q().filter(b=>b.id!==a))}function x(a){let b=u(a);if(!b)throw Error("Document template not found");let c=p({...b,id:`${b.id}-copy-${Date.now()}`,name:`${b.name} Copy`,builtIn:!1}),d=q();return d.push(c),r(d),c}function y(a,b){let c=new Set;return a.map(a=>({...a,content:function(a,b){let c=e.extname(a).toLowerCase();return[".pdf",".doc",".docx",".png",".jpg",".jpeg",".webp"].includes(c)?`资料文件:${e.basename(a)},文件类型:${c}。该文件作为来源附件参与生成,正文只引用其文件名、类型和角色,不直接混入二进制内容。`:[...b].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").slice(0,4e3)}(a.filePath,a.content)})).sort((a,b)=>b.score-a.score).filter(a=>{let b=`${a.filePath}:${a.content.slice(0,100)}`;return!c.has(b)&&(c.add(b),!0)}).slice(0,b)}function z(a,b,c,f,g){let h=e.isAbsolute(a)?a:d.existsSync(e.join(g,"knowledgeBase",a))?e.join(g,"knowledgeBase",a):e.join(g,a);if(!d.existsSync(h)||d.statSync(h).isDirectory())return[];let i=e.extname(h).toLowerCase();return(([".pdf",".doc",".docx",".png",".jpg",".jpeg",".webp"].includes(i)?`内置示例资料文件:${e.basename(a)},用于三角洲热门干员攻略生成,文件类型:${i}。`:d.readFileSync(h,"utf-8")).match(/[\s\S]{1,1800}/gu)||[]).slice(0,12).map((d,e)=>({chapterId:f,filePath:a,score:1,content:d,roleId:b,processingType:c,sectionTitle:`文件片段 ${e+1}`,source:"bound-file-direct"}))}function A(a){return`- ${a.filePath}(score=${a.score.toFixed(3)}):${a.content.replace(/\s+/gu," ").slice(0,260)}`}function B(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("prompt");if(b)return[...b.promptRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({promptId:b,roleId:a.id})))}return a.promptBindings?.length?a.promptBindings:(a.promptIds??[]).map(a=>({promptId:a,roleId:"chapter_generation"}))}function C(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("file");if(b)return[...b.fileRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({filePath:b,roleId:a.id})))}return a.fileBindings?.length?a.fileBindings:(a.boundFilePaths??[]).map(a=>({filePath:a,roleId:"project_fact"}))}async function D(a,b){try{let c=(0,j.I)().load(),d=c.models.reasoning.active||c.models.action.active||c.models.reader.active,e=[...c.models.reasoning.list,...c.models.action.list,...c.models.reader.list].find(a=>a.name===d);if(!e)return;let f=c.providers[e.provider];if(!f)return;let g=(0,h.createProvider)(e.provider,{baseUrl:f.baseUrl,apiKey:f.apiKey,modelName:e.name}),i=(await g.chat([{role:"system",content:`${a}
|
|
57
53
|
只返回 JSON,不要返回 markdown。`},{role:"user",content:b}],{temperature:0})).content.trim().replace(/^```json\s*/u,"").replace(/^```\s*/u,"").replace(/```$/u,"").trim();return JSON.parse(i)}catch{return}}async function E(a,b){let c=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],d=a.slice(0,20).map(a=>`文件:${a.filePath}
|
|
58
54
|
角色:${a.roleId||""}
|
|
59
55
|
处理:${a.processingType||""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"HrpIpnt5wstKoy1Bjfffe","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"HrpIpnt5wstKoy1Bjfffe","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8714,a.ids=[8714],a.modules={15751:a=>{a.exports=require("xlsx")},17203:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,chapterId:d,requirement:e,maxEvidencePerChapter:f,projectRoot:g}=a.body;if(!c||!d)return b.status(400).json({error:"templateId and chapterId required"});let h=await (0,i.R1)({templateId:c,chapterId:d,requirement:e,maxEvidencePerChapter:f,projectRoot:g});b.status(200).json({chapter:h})}catch(a){console.error("[api] documents/chapter/regenerate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/chapter/regenerate",pathname:"/api/documents/chapter/regenerate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/chapter/regenerate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/chapter/regenerate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},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")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8714,a.ids=[8714],a.modules={15751:a=>{a.exports=require("xlsx")},17203:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,chapterId:d,requirement:e,maxEvidencePerChapter:f,projectRoot:g}=a.body;if(!c||!d)return b.status(400).json({error:"templateId and chapterId required"});let h=await (0,i.R1)({templateId:c,chapterId:d,requirement:e,maxEvidencePerChapter:f,projectRoot:g});b.status(200).json({chapter:h})}catch(a){console.error("[api] documents/chapter/regenerate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/chapter/regenerate",pathname:"/api/documents/chapter/regenerate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/chapter/regenerate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/chapter/regenerate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},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")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3445],()=>b(b.s=17203));module.exports=c})();
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>s,default:()=>r,handler:()=>u});var d={};c.r(d),c.d(d,{default:()=>o});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j);function l(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function m(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${l(a)}</w:t></w:r></w:p>`).join("")}async function n(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,l(a)).replace(/\{\{content\}\}/gu,m(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${l(a)}</w:t></w:r></w:p>${m(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function o(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let{title:e="document",markdown:f="",format:g="markdown",enforceGate:h=!1,exportGate:i,wordTemplatePath:j}=a.body;if(h&&i&&!i.passed)return b.status(422).json({error:"Export gate failed",issues:i.blockingIssues??[]});let k=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===g)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(f);if("docx"===g){let a=await n(e,f,j);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>s,default:()=>r,handler:()=>u});var d={};c.r(d),c.d(d,{default:()=>o});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j);function l(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function m(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${l(a)}</w:t></w:r></w:p>`).join("")}async function n(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,l(a)).replace(/\{\{content\}\}/gu,m(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${l(a)}</w:t></w:r></w:p>${m(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function o(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let{title:e="document",markdown:f="",format:g="markdown",enforceGate:h=!1,exportGate:i,wordTemplatePath:j}=a.body;if(h&&i&&!i.passed)return b.status(422).json({error:"Export gate failed",issues:i.blockingIssues??[]});let k=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===g)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(f);if("docx"===g){let a=await n(e,f,j);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:m}=await Promise.resolve().then(c.bind(c,83142)),o=(d=m.parse(f,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${l(e)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===g)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.html`)}`),b.status(200).send(o);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(o,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch{let a=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
|
|
2
|
+
stream
|
|
3
|
+
${b}
|
|
4
|
+
endstream`);j.push(f(`<< /Type /Page /Parent ${h} 0 R /MediaBox [0 0 595 842] /Resources << /Font << /F1 ${i} 0 R >> >> /Contents ${c} 0 R >>`))}e[g-1]=`<< /Type /Catalog /Pages ${h} 0 R >>`,e[h-1]=`<< /Type /Pages /Kids [${j.map(a=>`${a} 0 R`).join(" ")}] /Count ${j.length} >>`;let k="%PDF-1.4\n",l=[0];e.forEach((a,b)=>{l.push(Buffer.byteLength(k)),k+=`${b+1} 0 obj
|
|
5
|
+
${a}
|
|
6
|
+
endobj
|
|
7
|
+
`});let m=Buffer.byteLength(k);return k+=`xref
|
|
8
|
+
0 ${e.length+1}
|
|
9
|
+
0000000000 65535 f
|
|
10
|
+
${l.slice(1).map(a=>`${String(a).padStart(10,"0")} 00000 n `).join("\n")}
|
|
11
|
+
trailer << /Root ${g} 0 R /Size ${e.length+1} >>
|
|
12
|
+
startxref
|
|
13
|
+
${m}
|
|
14
|
+
%%EOF`,Buffer.from(k,"binary")}(e,f);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(a)}}catch(a){console.error("[api] documents/export",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var p=c(68970),q=c(50296);let r=(0,h.M)(d,"default"),s=(0,h.M)(d,"config"),t=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 u(a,b,c){let d=await t.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,p.getTracer)(),e=d.getActiveScopeSpan(),j=t.instrumentationOnRequestError.bind(t),k=async e=>t.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:t.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")!==q.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(q.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:p.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(t.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=89529));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f}=a.body;if(!c)return b.status(400).json({error:"templateId required"});let g=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});b.status(200).json({draft:g})}catch(a){console.error("[api] documents/generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},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")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f}=a.body;if(!c)return b.status(400).json({error:"templateId required"});let g=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});b.status(200).json({draft:g})}catch(a){console.error("[api] documents/generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},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")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3445],()=>b(b.s=28630));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9027,a.ids=[9027],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},56878:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);function j(a,b){try{if("GET"===a.method)return b.status(200).json({templates:(0,i.jG)()});if("POST"===a.method||"PUT"===a.method){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"template id and name required"});return b.status(200).json({template:(0,i.Bh)(c),templates:(0,i.jG)()})}if("DELETE"===a.method){let c=String(a.query.templateId||"");if(!c)return b.status(400).json({error:"templateId required"});return(0,i.h0)(c),b.status(200).json({success:!0,templates:(0,i.jG)()})}if("PATCH"===a.method){let{templateId:c}=a.body;if(!c)return b.status(400).json({error:"templateId required"});return b.status(200).json({template:(0,i.bV)(c),templates:(0,i.jG)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/templates",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/templates",pathname:"/api/documents/templates",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/templates"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/templates",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},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")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9027,a.ids=[9027],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},56878:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445);function j(a,b){try{if("GET"===a.method)return b.status(200).json({templates:(0,i.jG)()});if("POST"===a.method||"PUT"===a.method){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"template id and name required"});return b.status(200).json({template:(0,i.Bh)(c),templates:(0,i.jG)()})}if("DELETE"===a.method){let c=String(a.query.templateId||"");if(!c)return b.status(400).json({error:"templateId required"});return(0,i.h0)(c),b.status(200).json({success:!0,templates:(0,i.jG)()})}if("PATCH"===a.method){let{templateId:c}=a.body;if(!c)return b.status(400).json({error:"templateId required"});return b.status(200).json({template:(0,i.bV)(c),templates:(0,i.jG)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/templates",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/templates",pathname:"/api/documents/templates",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/templates"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/templates",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},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")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3445],()=>b(b.s=56878));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=5167,a.ids=[5167],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=5167,a.ids=[5167],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.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>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},86666:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=(0,i.Qh)(),d=a.query.projectRoot||(0,i.aY)();if(!d)return b.status(200).json([]);let e=(await c.getProject(d)).listFiles(),f={};for(let a of e){let b=a.category||"other";f[b]||(f[b]={fileCount:0,totalSize:0}),f[b].fileCount++,f[b].totalSize+=a.fileSize||0}let g=Object.entries(f).map(([a,b])=>({category:a,...b}));b.status(200).json(g)}catch(a){console.error("[api] kb/categories",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/categories",pathname:"/api/kb/categories",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/categories"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/categories",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=86666));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},86666:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=(0,i.Qh)(),d=a.query.projectRoot||(0,i.aY)();if(!d)return b.status(200).json([]);let e=(await c.getProject(d)).listFiles(),f={};for(let a of e){let b=a.category||"other";f[b]||(f[b]={fileCount:0,totalSize:0}),f[b].fileCount++,f[b].totalSize+=a.fileSize||0}let g=Object.entries(f).map(([a,b])=>({category:a,...b}));b.status(200).json(g)}catch(a){console.error("[api] kb/categories",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/categories",pathname:"/api/kb/categories",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/categories"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/categories",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=86666));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8837,a.ids=[8837],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8837,a.ids=[8837],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.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>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},49914:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=(await (0,i.Qh)().getProject(c)).listFiles(),e=new Map;for(let a of d){let b=e.get(a.contentHash);b?b.push(a):e.set(a.contentHash,[a])}b.status(200).json([...e.entries()].filter(([,a])=>a.length>1).map(([a,b])=>({contentHash:a,files:b.map(a=>({projectId:"",projectRoot:c,relativePath:a.relativePath}))})))}catch(a){console.error("[api] kb/duplicates",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/duplicates",pathname:"/api/kb/duplicates",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/duplicates"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/duplicates",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=49914));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},49914:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=(await (0,i.Qh)().getProject(c)).listFiles(),e=new Map;for(let a of d){let b=e.get(a.contentHash);b?b.push(a):e.set(a.contentHash,[a])}b.status(200).json([...e.entries()].filter(([,a])=>a.length>1).map(([a,b])=>({contentHash:a,files:b.map(a=>({projectId:"",projectRoot:c,relativePath:a.relativePath}))})))}catch(a){console.error("[api] kb/duplicates",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/duplicates",pathname:"/api/kb/duplicates",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/duplicates"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/duplicates",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=49914));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8684,a.ids=[8684],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8684,a.ids=[8684],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.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>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87550:a=>{a.exports=require("better-sqlite3")},96313:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)(),d=a.query.relativePath;if(!c||!d)return b.status(400).json({error:"projectRoot and relativePath are required"});let e=(await (0,i.Qh)().getProject(c)).getFileDetail(d);if(!e)return b.status(404).json({error:"file not found"});b.status(200).json(e)}catch(a){console.error("[api] kb/files/detail",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/detail",pathname:"/api/kb/files/detail",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/files/detail"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/files/detail",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=96313));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")},96313:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)(),d=a.query.relativePath;if(!c||!d)return b.status(400).json({error:"projectRoot and relativePath are required"});let e=(await (0,i.Qh)().getProject(c)).getFileDetail(d);if(!e)return b.status(404).json({error:"file not found"});b.status(200).json(e)}catch(a){console.error("[api] kb/files/detail",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/detail",pathname:"/api/kb/files/detail",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/files/detail"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/files/detail",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=96313));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=7963,a.ids=[7963],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=7963,a.ids=[7963],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.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>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},58162:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(79646),j=c(21820),k=c(23328);async function l(a,b){if("POST"!==a.method)return b.status(405).json({error:"method not allowed"});try{let c=a.body?.projectRoot||(0,k.aY)(),d=a.body?.relativePath,e=a.body?.target;if(!c||!d||!e)return b.status(400).json({error:"projectRoot, relativePath and target are required"});let f=(await (0,k.Qh)().getProject(c)).getFileDetail(d);if(!f)return b.status(404).json({error:"file not found"});let g="directory"===e?f.directory:f.absolutePath;if(!g)return b.status(404).json({error:"target path not found"});(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(g).unref(),b.status(200).json({success:!0})}catch(a){console.error("[api] kb/files/open",a),b.status(500).json({error:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/open",pathname:"/api/kb/files/open",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/kb/files/open"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/kb/files/open",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=58162));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},77755:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513);let i=require("child_process");var j=c(21820),k=c(23328);async function l(a,b){if("POST"!==a.method)return b.status(405).json({error:"method not allowed"});try{let c=a.body?.projectRoot||(0,k.aY)(),d=a.body?.relativePath,e=a.body?.target;if(!c||!d||!e)return b.status(400).json({error:"projectRoot, relativePath and target are required"});let f=(await (0,k.Qh)().getProject(c)).getFileDetail(d);if(!f)return b.status(404).json({error:"file not found"});let g="directory"===e?f.directory:f.absolutePath;if(!g)return b.status(404).json({error:"target path not found"});(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(g).unref(),b.status(200).json({success:!0})}catch(a){console.error("[api] kb/files/open",a),b.status(500).json({error:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/open",pathname:"/api/kb/files/open",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/kb/files/open"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/kb/files/open",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=77755));module.exports=c})();
|