@customize-agent/server 3.0.15 → 3.0.16
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/prerender-manifest.json +3 -3
- package/.next/server/chunks/3328.js +69 -1
- package/.next/server/chunks/3445.js +45 -3
- package/.next/server/pages/api/documents/roles.js +1 -1
- package/.next/server/pages/api/documents/specs.js +1 -1
- package/.next/server/pages-manifest.json +24 -24
- package/.next/static/customize-agent-dashboard/_buildManifest.js +1 -1
- package/package.json +2 -2
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "1c90d63f9dde1d6619bf46deef8779d6",
|
|
7
|
+
"previewModeSigningKey": "b75765b16f7e6c0d7129271be8fa0d623dc7b102b37523f337af6be5b41a9fe6",
|
|
8
|
+
"previewModeEncryptionKey": "85a02246ff9abbef1637000801806d80f54f4407c9c0b36dbdbf4bf404882326"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -76,7 +76,75 @@
|
|
|
76
76
|
|
|
77
77
|
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、地图图纸说明、实战注意事项。
|
|
78
78
|
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
79
|
-
|
|
79
|
+
导出前检查:不能出现缺失资料占位语;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医;必须引用官方地图工具。`,"文档资料/模板案例-热门干员攻略示例.md":`# 【内置】模板案例:热门干员攻略示例
|
|
80
|
+
|
|
81
|
+
## 示例导语
|
|
82
|
+
本文面向新手和进阶玩家,先给出热门干员选择结论,再说明证据来源、推荐优先级、地图使用和队伍搭配。
|
|
83
|
+
|
|
84
|
+
## 示例章节结构
|
|
85
|
+
1. 攻略目标和适用人群:说明谁适合阅读、解决什么问题。
|
|
86
|
+
2. 热门干员定位速览:用表格列出干员、定位、推荐指数、上手难度。
|
|
87
|
+
3. 队伍搭配建议:把侦察、突击、工程、支援放入真实队伍组合。
|
|
88
|
+
4. 地图图纸和路线理解:只引用知识库检索到的官方地图图纸,不硬插固定地图。
|
|
89
|
+
5. 实战注意事项:列出新手误区、资料缺失和复核建议。
|
|
90
|
+
|
|
91
|
+
## 示例表达方式
|
|
92
|
+
- 先写结论:新手优先露娜 + 蜂医,进阶突破可加入红狼,防守控图可加入牧羊人。
|
|
93
|
+
- 再写依据:引用项目事实文件、推荐表格、官方地图图纸、图片资料和 Word/PDF 附件。
|
|
94
|
+
- 最后写建议:按地图风险、队伍分工和撤离路线给出操作建议。
|
|
95
|
+
|
|
96
|
+
## 示例来源清单写法
|
|
97
|
+
- 规则文件:用于约束写作边界。
|
|
98
|
+
- 项目事实:用于抽取干员定位和玩法事实。
|
|
99
|
+
- 表格数据:用于形成推荐优先级。
|
|
100
|
+
- 图纸文件:用于说明地图和路线。
|
|
101
|
+
- 图片/附件:用于补充视觉和文档依据。`,"文档资料/模板案例-导出样式参考.md":`# 【内置】模板案例:导出样式参考
|
|
102
|
+
|
|
103
|
+
## 标题层级
|
|
104
|
+
- H1:文档标题。
|
|
105
|
+
- H2:章节标题。
|
|
106
|
+
- H3:小节标题,例如“本章结论”“证据依据”“操作建议”。
|
|
107
|
+
|
|
108
|
+
## 表格样式
|
|
109
|
+
表格列建议控制在 4-6 列,列名简短,单元格不要塞入超长段落。
|
|
110
|
+
|
|
111
|
+
## 图片和地图说明
|
|
112
|
+
图片前应说明引用目的,图片后应解释它与章节结论的关系。地图图纸不能作为装饰图,应说明区域、路线、点位或撤离/交战路径。
|
|
113
|
+
|
|
114
|
+
## 来源和缺失说明
|
|
115
|
+
导出前应保留来源清单,并对资料未覆盖的内容标注“建议补充”,不要用确定语气替代缺失事实。`,"文档资料/模板样式-攻略文档排版规范.md":`# 【内置】模板样式:攻略文档排版规范
|
|
116
|
+
|
|
117
|
+
## 结构规范
|
|
118
|
+
- 开头必须有短导语,说明适用对象、使用场景和核心结论。
|
|
119
|
+
- 每章建议包含“本章结论 / 证据依据 / 操作建议 / 资料来源”。
|
|
120
|
+
- 结尾必须包含来源清单、适用范围和资料缺失提醒。
|
|
121
|
+
|
|
122
|
+
## 内容规范
|
|
123
|
+
- 事实来自文件角色;写法来自提示词角色;完整性来自文档规范包。
|
|
124
|
+
- 不把提示词全文、远程临时 URL、内部错误堆栈放入正文。
|
|
125
|
+
- 对冲突事实要提示用户复核。
|
|
126
|
+
|
|
127
|
+
## 导出规范
|
|
128
|
+
- Markdown 标题不跳级。
|
|
129
|
+
- 图片必须有 alt 文本。
|
|
130
|
+
- 表格必须是标准 Markdown 表格。
|
|
131
|
+
- DOCX/PDF 视角下段落不宜过长。`,"文档资料/导出门禁-攻略文档检查清单.md":`# 【内置】导出门禁:攻略文档检查清单
|
|
132
|
+
|
|
133
|
+
## 阻断项
|
|
134
|
+
- 正文包含“资料未提供”等未处理占位语。
|
|
135
|
+
- 必填事实字段缺失,且没有资料缺失说明。
|
|
136
|
+
- 图片、地图或附件引用路径明显无效。
|
|
137
|
+
- 表格语法错误导致 Markdown/DOCX/PDF 无法正常展示。
|
|
138
|
+
- 正文包含提示词全文、内部错误、临时远程生成 URL。
|
|
139
|
+
|
|
140
|
+
## 警告项
|
|
141
|
+
- 章节过短,缺少操作建议。
|
|
142
|
+
- 来源文件列出不完整。
|
|
143
|
+
- 表格字段缺少解释。
|
|
144
|
+
- 图片或地图只有展示,没有说明其用途。
|
|
145
|
+
|
|
146
|
+
## 通过标准
|
|
147
|
+
文档应能说明:使用了哪些文件角色、哪些提示词角色、哪些规范包规则,以及最终导出为什么可以交付。`}))m(g.join(c,a),b);n(g.join(c,"表格数据","表格数据-热门干员推荐.xlsx")),n(g.join(c,"表格数据","表格数据-热门干员推荐.xls")),m(g.join(c,"文档资料","Word资料-队伍搭配说明.doc"),"【内置 DOC 示例】\n队伍搭配建议:露娜负责侦察和路线判断,蜂医负责治疗和救援,红狼负责突破,牧羊人负责防守控场。\n"),function(a,b,c){if(i.existsSync(a)&&i.statSync(a).size>1e3)return;i.mkdirSync(g.dirname(a),{recursive:!0});let d=`import sys,zipfile,html
|
|
80
148
|
out=sys.argv[1]; title=sys.argv[2]; ps=sys.argv[3:]
|
|
81
149
|
def p(t): return '<w:p><w:r><w:t>'+html.escape(t)+'</w:t></w:r></w:p>'
|
|
82
150
|
xml='<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>'+p(title)+''.join(p(x) for x in ps)+'<w:sectPr/></w:body></w:document>'
|
|
@@ -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}},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:"从表格中抽取推荐指数和上手难度。"},{id:"map-drawing",name:"地图图纸",type:"list",required:!0,sourceRoleIds:["delta-drawing-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"]},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:100,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],generationHint:"必须说明官方地图工具来源,并引用至少一个地图图纸瓦片文件名。"}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件",type:"required_file_role",level:"error",target:"delta-drawing-files"},{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:()=>y,OX:()=>aa,R1:()=>ab,bV:()=>A,h0:()=>z,jG:()=>w});var d=c(77598),e=c(73024),f=c(76760),g=c(15751),h=c(48161),i=c(95393),j=c(96770),k=c(23328),l=c(2323),m=c(89952),n=c(57367);let o=[{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:"maps",title:"第五章 官方地图图纸和路线理解",purpose:"引用官方地图工具的地图图纸/底图瓦片,说明热门地图的关键区域和新手路线理解。",requiredFacts:["地图事实","地图图纸"],queries:["三角洲行动 官方地图工具 地图图纸 零号大坝 航天基地 巴克什"]},{id:"tips",title:"第六章 实战注意事项",purpose:"整理实战打法、误区和复盘建议。",requiredFacts:["实战技巧","注意事项"],queries:["三角洲行动 实战 技巧 注意事项 误区"]}],builtIn:!0}];function p(){let a=f.join(h.homedir(),".customize-agent");return e.mkdirSync(a,{recursive:!0}),a}function q(){return f.join(p(),"document-templates.json")}function r(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 s(){try{let a=q();if(!e.existsSync(a))return[];return JSON.parse(e.readFileSync(a,"utf-8")).map(r)}catch{return[]}}function t(a){e.writeFileSync(q(),JSON.stringify(a.map(r),null,2),"utf-8")}let u={"builtin:delta-fact-extraction":{name:"内置|三角洲事实抽取",content:`你是“资料事实抽取员”,任务是把绑定文件角色中的资料转成可追溯、可审查、可用于正式文档生成的事实模型。
|
|
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}},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:"guide-goal",name:"攻略目标",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-case-reference-files"],extractionHint:"抽取本文解决的问题、适用对象和最终交付目标。",validationHint:"正文导语必须能回答“给谁看、解决什么问题”。"},{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。",validationHint:"至少覆盖内置事实文件中的四名热门干员。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。",validationHint:"定位必须和干员名称一一对应。"},{id:"operator-value",name:"核心价值",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取每名干员在队伍中的核心价值和使用场景。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数、上手难度和推荐场景。",validationHint:"推荐指数应以表格形式呈现。"},{id:"team-composition",name:"队伍搭配",type:"table",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取新手稳健队、突破压制队、控图防守队等组合和使用要点。"},{id:"map-drawing",name:"地图图纸",type:"list",required:!0,sourceRoleIds:["delta-drawing-files"],extractionHint:"抽取官方地图工具来源、地图名称和地图图纸文件。",validationHint:"地图图纸必须来自知识库检索资源,不能硬插固定文件。"},{id:"image-reference",name:"图片资源",type:"list",required:!1,sourceRoleIds:["delta-image-files","delta-reference-image-files"],extractionHint:"抽取干员图片、参考图片和可用作配图的本地资源。"},{id:"template-case",name:"模板案例参考",type:"text",required:!0,sourceRoleIds:["delta-case-reference-files"],extractionHint:"抽取模板案例中的结构、来源清单和示例表达方式。"},{id:"style-rule",name:"模板样式规则",type:"text",required:!0,sourceRoleIds:["delta-style-reference-files"],extractionHint:"抽取标题层级、章节结构、表格、图片说明和导出排版规则。"},{id:"export-gate",name:"导出门禁",type:"list",required:!0,sourceRoleIds:["delta-export-gate-files"],extractionHint:"抽取阻断项、警告项和导出通过标准。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:120,requiredFactIds:["guide-goal","template-case"],requiredFileRoleIds:["delta-case-reference-files"],requiredPromptRoleIds:["delta-template-style-prompt"],generationHint:"必须让用户看出这是一个可学习、可复制的内置模板案例。"},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:180,requiredFactIds:["operator-name","operator-role","operator-value"],requiredFileRoleIds:["delta-fact-files"],generationHint:"使用表格或分组清单展示干员、定位、核心价值和适合场景。"},{id:"team",title:"第三章 队伍搭配和实战打法",required:!0,order:2,minWords:160,requiredFactIds:["team-composition"],requiredFileRoleIds:["delta-doc-files","delta-fact-files"],generationHint:"把侦察、突击、工程、支援和队伍组合对应起来。"},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:120,requiredFactIds:["recommend-score"],requiredFileRoleIds:["delta-table-files"],generationHint:"必须把 CSV/XLS/XLSX 的字段转成可读表格,并解释字段含义。"},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:160,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],requiredPromptRoleIds:["delta-resource-evidence-prompt"],generationHint:"必须说明官方地图工具来源,并解释地图图纸与路线、点位或撤离/交战路径的关系。"},{id:"style",title:"第六章 模板样式和导出检查",required:!0,order:5,minWords:140,requiredFactIds:["style-rule","export-gate"],requiredFileRoleIds:["delta-style-reference-files","delta-export-gate-files"],requiredPromptRoleIds:["delta-export-gate-prompt"],generationHint:"说明本模板如何通过规范包、文件角色、提示词角色和导出门禁形成可复用案例。"}],gateRules:[{id:"gate-guide-goal",name:"必须说明攻略目标和适用对象",type:"required_fact",level:"error",target:"攻略目标"},{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-team",name:"必须包含队伍搭配依据",type:"required_fact",level:"warning",target:"队伍搭配"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件角色",type:"required_file_role",level:"error",target:"delta-drawing-files"},{id:"gate-case-reference",name:"必须绑定模板案例参考角色",type:"required_file_role",level:"warning",target:"delta-case-reference-files"},{id:"gate-style-prompt",name:"必须绑定模板样式提示词角色",type:"required_prompt_role",level:"warning",target:"delta-template-style-prompt"},{id:"gate-export-prompt",name:"必须绑定导出门禁提示词角色",type:"required_prompt_role",level:"warning",target:"delta-export-gate-prompt"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"},{id:"gate-no-remote-image-url",name:"正文不能包含远程临时图片生成 URL",type:"forbidden_text",level:"error",value:"text_to_image"}],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:()=>y,OX:()=>aa,R1:()=>ab,bV:()=>A,h0:()=>z,jG:()=>w});var d=c(77598),e=c(73024),f=c(76760),g=c(15751),h=c(48161),i=c(95393),j=c(96770),k=c(23328),l=c(2323),m=c(89952),n=c(57367);let o=[{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:"maps",title:"第五章 官方地图图纸和路线理解",purpose:"引用官方地图工具的地图图纸/底图瓦片,说明热门地图的关键区域和新手路线理解。",requiredFacts:["地图事实","地图图纸"],queries:["三角洲行动 官方地图工具 地图图纸 零号大坝 航天基地 巴克什"]},{id:"style",title:"第六章 模板样式和导出检查",purpose:"说明内置模板案例如何使用模板样式、来源清单和导出门禁形成可复用示例。",requiredFacts:["模板样式规则","导出门禁","实战技巧","注意事项"],queries:["模板案例 导出样式 标题层级 表格 图片 来源 门禁 检查"]}],builtIn:!0}];function p(){let a=f.join(h.homedir(),".customize-agent");return e.mkdirSync(a,{recursive:!0}),a}function q(){return f.join(p(),"document-templates.json")}function r(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 s(){try{let a=q();if(!e.existsSync(a))return[];return JSON.parse(e.readFileSync(a,"utf-8")).map(r)}catch{return[]}}function t(a){e.writeFileSync(q(),JSON.stringify(a.map(r),null,2),"utf-8")}let u={"builtin:delta-fact-extraction":{name:"内置|三角洲事实抽取",content:`你是“资料事实抽取员”,任务是把绑定文件角色中的资料转成可追溯、可审查、可用于正式文档生成的事实模型。
|
|
2
2
|
|
|
3
3
|
工作要求:
|
|
4
4
|
1. 只使用输入资料和知识库证据,不要凭空补充游戏机制、数值、角色技能或地图信息。
|
|
@@ -44,7 +44,49 @@
|
|
|
44
44
|
输出要求:
|
|
45
45
|
- 如果模型支持图片生成:返回适合 SDXL/多模态图片生成的英文 prompt。
|
|
46
46
|
- 如果模型不支持图片生成:返回完整封面生成提示词,并说明可使用参考图片兜底。
|
|
47
|
-
- prompt 应包含 subject、composition、lighting、style、quality、negative constraints。`},"builtin:delta-
|
|
47
|
+
- prompt 应包含 subject、composition、lighting、style、quality、negative constraints。`},"builtin:delta-template-style":{name:"内置|三角洲模板样式规范",content:`你是“模板样式设计师”。你的目标不是重新写事实,而是把生成结果整理成用户一眼能看懂、可复制为自定义模板的优秀示例。
|
|
48
|
+
|
|
49
|
+
样式目标:
|
|
50
|
+
1. 开头必须有“适用对象 + 使用场景 + 本文结论”的短导语,避免直接进入长正文。
|
|
51
|
+
2. 每章采用稳定结构:本章结论、核心依据、操作建议、引用资料。
|
|
52
|
+
3. 重要建议使用清单、表格或引用块,不要堆长段落。
|
|
53
|
+
4. 图片、地图、表格必须有前置说明和后置解释,说明为什么引用该资源。
|
|
54
|
+
5. 来源清单要区分规则文件、事实文件、表格、图纸、图片、附件和模板案例。
|
|
55
|
+
6. 对用户可学习的地方要明显:哪里来自文档规范包,哪里来自文件角色,哪里来自提示词角色。
|
|
56
|
+
7. 适合导出 DOCX/PDF:标题层级稳定、段落短、表格列宽友好、图片说明完整。
|
|
57
|
+
|
|
58
|
+
禁止事项:
|
|
59
|
+
- 不要加入没有证据支持的新事实。
|
|
60
|
+
- 不要把提示词全文渲染进正文。
|
|
61
|
+
- 不要让示例看起来像固定模板;要体现“可按角色和规范包自定义”。`},"builtin:delta-resource-evidence":{name:"内置|三角洲资源证据使用",content:`你是“资源证据编排专家”。你需要把知识库检索到的不同类型文件转成正文可用的信息,而不是只引用文件名。
|
|
62
|
+
|
|
63
|
+
资源使用规则:
|
|
64
|
+
1. 文本/Markdown:提炼规则、结论、注意事项和章节依据。
|
|
65
|
+
2. PDF/Word:提炼正式说明、附件依据、队伍搭配、规则解释和可引用来源。
|
|
66
|
+
3. CSV/XLS/XLSX:转成 Markdown 表格,保留字段含义,形成推荐优先级和对比结论。
|
|
67
|
+
4. 图片:说明图片中的对象、用途、与章节结论的关系;仅在需要时作为配图。
|
|
68
|
+
5. 地图图纸:说明区域、路线、点位、撤离/交战路径和队伍分工,不要当装饰图。
|
|
69
|
+
6. 模板案例:学习结构、表达和来源组织方式,不要照抄无关内容。
|
|
70
|
+
7. 导出门禁文件:用于检查完整性,不应作为正文事实。
|
|
71
|
+
|
|
72
|
+
输出要求:
|
|
73
|
+
- 每次引用资源都要写明“资源类型 + 来源文件 + 用途”。
|
|
74
|
+
- 如果多个来源冲突,必须提示冲突并建议用户确认。
|
|
75
|
+
- 如果资源不足,说明缺口,不要硬插固定文件。`},"builtin:delta-export-gate":{name:"内置|三角洲导出门禁",content:`你是“交付前导出门禁审核员”。你需要从 Markdown/HTML/DOCX/PDF 四种导出视角检查文档。
|
|
76
|
+
|
|
77
|
+
门禁维度:
|
|
78
|
+
1. 结构完整:封面、目录、核心结论、正文章节、表格、图片/地图、来源、缺失说明。
|
|
79
|
+
2. 事实完整:规范包 required facts 已覆盖,且来源角色匹配。
|
|
80
|
+
3. 资源完整:表格可读、图片路径有效、地图图纸不是硬编码、附件来源清楚。
|
|
81
|
+
4. 格式完整:标题不跳级,表格语法正确,图片 alt 文本完整,列表缩进稳定。
|
|
82
|
+
5. 导出安全:正文不包含提示词全文、远程临时生成 URL、内部错误堆栈、空占位符。
|
|
83
|
+
6. 可复核:关键结论能追溯到文件角色、资源证据或章节证据。
|
|
84
|
+
|
|
85
|
+
输出格式:
|
|
86
|
+
- error:必须阻断导出的问题。
|
|
87
|
+
- warning:可导出但建议优化的问题。
|
|
88
|
+
- info:交付提示。
|
|
89
|
+
- 每个问题都要包含定位、原因和修复建议。`},"builtin:delta-review-optimization":{name:"内置|三角洲 LLM 审查优化",content:`你是“文档总审 + 质量优化专家”。你需要在初稿生成后,再次利用文件角色、提示词角色、文档规范包和知识库证据进行二次审查与优化。
|
|
48
90
|
|
|
49
91
|
审查清单:
|
|
50
92
|
1. 角色配置是否被使用:文件角色、提示词角色、文档规范包是否在正文中体现。
|
|
@@ -109,4 +151,4 @@ ${j}`}async function $(a){let b=F(E({id:"review",title:"全文审查",purpose:"
|
|
|
109
151
|
门禁规则:${a.spec.gateRules.map(a=>`${a.name}:${a.type}`).join("、")}`:"未绑定文档规范包。",d=await N(["你是文档质量审查与优化专家。你要基于文件角色、提示词角色、文档规范包和知识库证据,对初稿进行二次审查和优化。","必须保持 Markdown 输出;保留已有图片引用、表格、标题层级和目录;不要删除证据来源;不要编造不存在的事实。","重点检查:标题、封面、目录、章节完整性、事实来源、所有相关文件类型的资源证据使用、表格呈现、表达专业性、导出友好性。",a.promptTexts].filter(Boolean).join("\n\n"),[`模板:${a.template.name}`,a.requirement?`用户要求:${a.requirement}`:"",c,"","知识库证据摘要:",b,"","待审查初稿:",a.markdown,"","请直接返回优化后的完整 Markdown。"].filter(Boolean).join("\n"));return d&&!(d.length<.7*a.markdown.length)&&d.includes("#")?{markdown:d,stage:{type:"llm_review",roleId:"llm-review",status:"success",message:"已完成 LLM 二次审查与优化"}}:{markdown:a.markdown,stage:{type:"llm_review",roleId:"llm-review",status:"skipped",message:"无可用模型或审查结果不可用,保留生成初稿"}}}function _(a){let b=a.assets?.find(a=>"cover"===a.role&&"image"===a.type);return['<div class="document-cover">',`# ${a.title}`,"","delta-force-hot-operators-guide"===a.templateId?X(b?.path||"图片素材/干员图片/露娜.png","三角洲行动攻略封面图"):"","",`**文档版本**:V1.0 `,`**生成时间**:${new Date(a.generatedAt).toLocaleString("zh-CN")} `,`**文档类型**:内置模板生成的生产级示例文档 `,a.requirement?`**生成要求**:${a.requirement} `:"","</div>","",'<div class="page-break"></div>',"","## 目录","",...a.chapters.map((a,b)=>`${b+1}. ${a.title}`),"",'<div class="page-break"></div>',"","## 核心结论","","delta-force-hot-operators-guide"===a.templateId?"- 新手优先选择“露娜 + 蜂医”建立信息和续航基础。\n- 需要主动突破时加入红狼,需要稳守关键点时加入牧羊人。\n- 地图章节使用官方完整地图图纸,不使用单个瓦片截图。":Object.keys(a.facts).length>0?["| 事实项 | 依据 |","|---|---|",...Object.entries(a.facts).slice(0,12).map(([a,b])=>`| ${a} | ${b.replace(/\|/gu," ").slice(0,160)} |`)].join("\n"):"未抽取到明确事实,需人工确认。","",...a.chapters.flatMap(a=>[a.content,""]),"## 资料来源清单","","| 文件 | 引用次数 |","|---|---:|",...a.sources.map(a=>`| ${a.filePath} | ${a.count} |`),"",..."delta-force-hot-operators-guide"===a.templateId?[]:["## 缺失项与需确认事项","",...a.missingItems.length>0?a.missingItems.map(a=>`- ${a}`):["- 暂未发现完全缺失章节;仍需人工复核关键数据。"],"","## 校验结果","",...a.validation.warnings.map(a=>`- 警告:${a}`),...a.validation.errors.map(a=>`- 错误:${a}`),"","## 严格校验清单","",...a.validationIssues.map(a=>`- ${a.level.toUpperCase()}:${a.message}${a.suggestion?`(建议:${a.suggestion})`:""}`)]].join("\n")}async function aa(a){let b=x(a.templateId);if(!b)throw Error("Document template not found");let c=(0,k.T4)(a.projectRoot||(0,k.aY)());if(!c)throw Error("No knowledge base project found");let d=(0,k.Qh)(),h=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),i=J(b),j=K(b),l=(0,n.py)(b.documentSpecId),o=v(i).map(a=>`## [${a.roleId}] ${a.name}
|
|
110
152
|
${a.content}`).join("\n\n"),p=a=>[a,f.isAbsolute(a)?f.relative(c,a):f.join(c,a)],q=new Set(j.flatMap(a=>p(a.filePath))),r=(0,m.XB)("file"),s=new Map(j.flatMap(a=>p(a.filePath).map(b=>[b,a.roleId]))),t=new Map(j.flatMap(a=>p(a.filePath).map(b=>[b,r.find(b=>b.id===a.roleId)?.processingType||"reference"]))),u=await d.getProject(c);await u.incrementalIndex();let w=[],y=[],z=[],A=[];for(let e of b.chapters){var D;let f=[];for(let a of e.queries.length>0?e.queries:[b.name,b.outputTitle,e.title,...j.map(a=>a.filePath)]){let b=await d.search(c,a,{scope:"project",limit:Math.max(h,q.size>0?30:h),weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});f.push(...b.results.filter(a=>0===q.size||q.has(a.filePath)).map(a=>({chapterId:e.id,filePath:a.filePath,score:a.score,content:a.content,roleId:s.get(a.filePath),processingType:t.get(a.filePath),sectionTitle:a.sectionTitle,source:a.source})))}for(let a of q){let b=u.getFileDetail(a);if(!b){f.push(...C(a,s.get(a),t.get(a),e.id,c));continue}f.push(...b.chunks.slice(0,Math.max(h,20)).map(a=>({chapterId:e.id,filePath:b.file.relativePath,score:1,content:a.content,roleId:s.get(b.file.relativePath),processingType:t.get(b.file.relativePath),sectionTitle:a.sectionTitle,source:"bound-file"})))}for(let a of j)f.push(...C(a.filePath,a.roleId,r.find(b=>b.id===a.roleId)?.processingType||"reference",e.id,c));let g=B(f,h);y.push(...g);let k=e.requiredFacts.filter(a=>!g.some(b=>G(b,a)));for(let a of(0===g.length&&z.push(`${e.title}:未检索到明确资料依据`),k))z.push(`${e.title}:${a} 未检索到明确依据`);let l=await Z(b,e,g,k,o,a.requirement),m=l||(D=b.id,"delta-force-hot-operators-guide"===D?function(a,b,c){var d;let e=function(a){let b=a.find(a=>a.filePath.endsWith(".csv")&&a.content.includes("干员名称"));if(!b)return"";let c=b.content.trim().split(/\r?\n/u).filter(Boolean);return c.length<2?"":["| 干员 | 定位 | 推荐指数 | 上手难度 | 推荐场景 |","|---|---|---:|---|---|",...c.slice(1).map(a=>a.split(",").map(a=>a.trim())).map(a=>`| ${a[0]||""} | ${a[1]||""} | ${a[2]||""} | ${a[3]||""} | ${a[4]||""} |`)].join("\n")}(b),f=E(a,b),g=0===(d=f.resources).length?"- 未从知识库检索到可引用资源。":d.slice(0,12).map(a=>`- ${a.semanticTitle}(${a.kind}):${a.filePath};用途:${a.contentUse}`).join("\n"),h=Y(f.resources,"map"),i=Y(f.resources,"image"),j={overview:[`## ${a.title}`,"","这份攻略面向刚开始接触《三角洲行动》的玩家,以及想快速理解队伍分工的进阶玩家。核心目标是:先知道热门干员各自负责什么,再根据地图和队伍需求选择合适组合。","","建议阅读方式:先看推荐表,再看队伍搭配,最后结合官方完整地图图纸理解路线。"],operators:[`## ${a.title}`,"",e||"| 干员 | 定位 | 推荐场景 |\n|---|---|---|\n| 露娜 | 侦察 | 信息侦察和路线判断 |\n| 红狼 | 突击 | 突破和正面交火 |\n| 牧羊人 | 工程 | 防守控场和区域封锁 |\n| 蜂医 | 支援 | 治疗救援和续航 |","","### 干员配图","",i||[["露娜","图片素材/干员图片/露娜.png"],["红狼","图片素材/干员图片/红狼.png"],["牧羊人","图片素材/干员图片/牧羊人.png"],["蜂医","图片素材/干员图片/蜂医.png"]].map(([a,b])=>`### ${a}
|
|
111
153
|
|
|
112
|
-
${X(b,`${a}干员形象`)}`).join("\n\n"),"","- 露娜:适合先手获取信息,帮队伍判断推进方向。","- 红狼:适合打开突破口,但不要脱离队伍单人深入。","- 牧羊人:适合守点、卡入口和限制敌方推进。","- 蜂医:适合新手优先练习,能显著提高队伍容错。"],loadout:[`## ${a.title}`,"","推荐新手队伍至少包含一名侦察和一名支援。侦察负责信息,支援负责救援和续航。需要主动进攻时加入红狼,需要防守或卡点时加入牧羊人。","","常见组合:露娜 + 蜂医 + 红狼,适合主动推进;露娜 + 蜂医 + 牧羊人,适合稳扎稳打和守关键区域。"],tables:[`## ${a.title}`,"",e||"推荐表暂未生成,请检查表格数据。","","推荐指数用于新手决策参考,不代表绝对强度。实际选择还要结合地图、队友位置和任务目标。"],maps:[`## ${a.title}`,"","本章不会硬插固定地图,而是根据知识库检索到的地图、图片、表格、文档附件等资源证据组织内容。","",g,"",h?"### 官方完整地图图纸预览":"","",h,"","使用建议:先在完整地图上确认主要区域和撤离/交战路线,再决定侦察位观察点、突击位推进线、工程位控场点和支援位救援路线。"],tips:[`## ${a.title}`,"","- 不要只看干员强度,先看队伍缺什么位置。","- 新手优先保证“侦察信息 + 支援续航”,再考虑高风险突破。","- 推进前先用地图确认路线,避免全队挤在同一入口。","- 防守时让工程位处理关键入口,支援位保持在能救人的安全距离。"]}[a.id]||[`## ${a.title}`,"",b.length?`本章根据已绑定知识库资料整理:${a.purpose}`:"本章缺少明确资料。"];return c.length>0&&j.push("","### 需人工复核",...c.map(a=>`- ${a}`)),j.join("\n")}(e,g,k):[`## ${e.title}`,"",g.length>0?`本章根据知识库资料整理:${e.purpose}`:"模板绑定资料未检索到明确内容,需进一步确认。","",...g.slice(0,5).map(a=>`- ${a.filePath}:${a.content.replace(/\s+/gu," ").slice(0,180)}`),...k.length>0?["","### 待确认事项",...k.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)]:[]].join("\n"));A.push({type:"chapter_generation",roleId:"chapter_generation",promptId:i.find(a=>"chapter_generation"===a.roleId)?.promptId,status:l?"success":"fallback",message:l?`${e.title} 已由大模型生成`:`${e.title} 使用本地专业兜底生成`}),w.push({id:e.id,title:e.title,content:m,evidence:g,missingFacts:k})}let F=await P(c,y);for(let a of F.notes)y.push({chapterId:"multimodal-file-understanding",filePath:"多模态模型文件理解结果",score:1,content:a,roleId:"multimodal-files",processingType:"reference",source:"multimodal"});let L=function(a,b,c){let d={};for(let e of H(a,c)){let a=b.find(a=>I(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}(b,y,l),M=function(a,b,c){let d=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u],["攻略目标",/攻略目标[::\s]+([^\n]+)/u],["适用人群",/适用人群[::\s]+([^\n]+)/u],["干员名称",/(?:热门干员|干员)[::\s\n-]+([^\n]+)/u],["定位",/(?:定位|职责)[::\s]+([^\n,。;;]+)/u],["推荐指数",/推荐指数[::\s,,]+([^\n,。;;]+)/u],["实战技巧",/实战技巧[::\s]+([^\n]+)/u]],e=H(b,c).map(a=>({field:a,pattern:function(a){let b=a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return RegExp(`${b}[::\\s]+([^\\n,。;;]+)`,"u")}(a.name)})),f=[];for(let b of a){for(let{field:a,pattern:c}of e){if(!I(b,a))continue;let d=b.content.match(c)||[void 0,b.content.replace(/\s+/gu," ").slice(0,220)],e=d?.[1]?.trim();e&&!f.some(b=>b.fieldId===a.id&&b.value===e)&&f.push({key:a.name,fieldId:a.id,fieldName:a.name,value:e.slice(0,300),sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}for(let[a,c]of d){let d=b.content.match(c);d?.[1]&&!f.some(b=>b.key===a&&b.value===d[1].trim())&&f.push({key:a,value:d[1].trim().slice(0,300),sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}}return f}(y,b,l),N=await Q(y,o,b,l),O=[...M,...N.facts],R=function(a){let b=[],c=new Set;for(let d of a.filter(a=>"table"===a.processingType)){if(c.has(d.filePath))continue;c.add(d.filePath);let a=(0,k.aY)(),h=f.isAbsolute(d.filePath)?d.filePath:e.existsSync(f.join(a,"knowledgeBase",d.filePath))?f.join(a,"knowledgeBase",d.filePath):f.join(a,d.filePath),i=f.extname(d.filePath).toLowerCase();if(e.existsSync(h)&&[".xlsx",".xls",".csv"].includes(i))try{let a=g.readFile(h,{cellDates:!0,sheetStubs:!1});for(let c of a.SheetNames){let e=a.Sheets[c],f=g.utils.sheet_to_json(e,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(f.length<2)continue;let h=f.findIndex(a=>a.filter(Boolean).length>=2);if(h<0)continue;let i=f[h].filter(Boolean),j=f.slice(h+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==j.length&&b.push({tableType:d.roleId||"table",sheet:c,headers:i,rows:j.slice(0,200),sourceFile:d.filePath,sourceRange:e["!ref"]})}continue}catch{}let j=d.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let l=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",m=j.map(a=>a.split(l).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);m.length<2||b.push({tableType:d.roleId||"table",headers:m[0],rows:m.slice(1,80),sourceFile:d.filePath,sourceRange:d.sectionTitle})}return b}(y);for(let a of O)L[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let S=new Map;for(let a of y)S.set(a.filePath,(S.get(a.filePath)??0)+1);let T=[...S.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),U=function(a,b=[],c=[],d){let e=b=>a.filter(a=>b.some(b=>a.key.includes(b))),f=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:e(["工程名称","工程地点","建设单位","施工范围","攻略目标","适用人群","干员名称","定位","推荐指数"]),schedule:e(["工期","开工","竣工","节点"]),quality:e(["质量"]),safety:e(["安全"]),resources:e(["劳动力","材料","机械","设备"]),tables:b,drawings:f("drawing"),rules:f("rule"),specifications:f("specification"),schemaFacts:function(a,b){let c={};for(let d of b?.factFields||[])c[d.id]=a.filter(a=>a.fieldId===d.id||a.key===d.name||a.fieldName===d.name);return c}(a,d),missing:[...new Set(c)],conflicts:function(a,b){let c=b?.factFields.map(a=>a.name)||[...new Set(a.map(a=>a.key))],d=[];for(let b of c){let c=a.filter(a=>a.key===b||a.fieldName===b),e=new Map;for(let a of c){let b=a.value.replace(/\s+/gu,"").replace(/[,。,.;;::]/gu,"").toLowerCase();b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].map(a=>`${a[0].value}(${a.map(a=>a.sourceFile).join("、")})`).join(" vs ");d.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return d}(a,d)}}(O,R,z,l),V=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);if(!d?.documentSpecId)for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===K(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===J(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(w,L,O,b),aa=function(a,b,c,d){let e=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return d?.documentSpecId||0!==b.project.length||e.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&e.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&e.push(...b.conflicts.map(a=>({level:"error",message:a}))),e}(V,U,w,b),ab="delta-force-hot-operators-guide"===b.id?[await W(b,i,y,c)]:[],ac=[{type:"role_binding",roleId:b.projectRoleConfigId||"none",status:j.length>0?"success":"fallback",message:`已绑定 ${j.length} 个文件角色、${i.length} 个提示词角色`},{type:"knowledge_retrieval",roleId:"knowledge-base",status:y.length>0?"success":"fallback",message:`已检索/绑定 ${y.length} 条证据`},F.stage,...N.stages,...A,...ab.map(a=>({type:"asset_generation",roleId:"delta-cover-image-prompt",status:"fallback"===a.status?"fallback":"success",message:a.message})),{type:"validation",roleId:"document-workflow",status:V.errors.length>0?"failed":"success",message:`错误 ${V.errors.length},警告 ${V.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"},{type:"export_ready",roleId:"document-workflow",status:V.errors.length>0?"failed":"success",message:V.errors.length>0?"导出门禁存在阻断项":"已准备好导出 Markdown/HTML/DOCX/PDF"}],ad={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||"",facts:L,structuredFacts:O,factsModel:U,chapters:w,sources:T,missingItems:[...new Set(z)],validation:V,validationIssues:aa,executionStages:ac,exportGate:{passed:!0,blockingIssues:[],checklist:[]},assets:ab,generatedAt:Date.now()},ae=_(ad),af=await $({template:b,spec:l,markdown:ae,evidence:y,promptTexts:o,requirement:a.requirement}),ag=[...ac,af.stage],ah=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(aa=function(a,b,c,d,e,f,g){if(!a)return b;let h=[...b],i=[...c.project,...c.schedule,...c.quality,...c.safety,...c.resources,...Object.values(c.schemaFacts).flat()],j=new Set([...i.map(a=>a.key),...i.map(a=>a.fieldName).filter(Boolean),...c.tables.flatMap(a=>[...a.headers,...a.rows.flat()])]),k=new Set(d.map(a=>a.title));for(let b of a.factFields.filter(a=>a.required)){let a=c.schemaFacts[b.id]||[],e=d.some(a=>!a.missingFacts.includes(b.name)&&a.evidence.some(a=>I(a,b))),f=!b.sourceRoleIds?.length||a.some(a=>b.sourceRoleIds?.includes(a.roleId))||d.some(a=>a.evidence.some(a=>I(a,b)));0!==a.length||j.has(b.name)||e||h.push({level:"error",message:`必需事实缺失:${b.name}`,suggestion:b.extractionHint||"请补充资料或调整事实字段配置。"}),f||h.push({level:"error",message:`必需事实来源角色不匹配:${b.name}`,suggestion:`请确认该事实来自角色:${b.sourceRoleIds?.join("、")}`})}for(let b of a.chapterRules.filter(a=>a.required)){k.has(b.title)||h.push({level:"error",message:`必需章节缺失:${b.title}`,suggestion:"请在模板或规范包章节规则中补齐章节。"});let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&h.push({level:"warning",message:`章节内容低于最低字数:${b.title}`,suggestion:`建议不少于 ${b.minWords} 字。`})}for(let b of a.gateRules){let a=b.level;"required_fact"===b.type&&b.target&&!j.has(b.target)&&h.push({level:a,message:`${b.name}:缺少事实 ${b.target}`}),"required_chapter"===b.type&&b.target&&!k.has(b.target)&&h.push({level:a,message:`${b.name}:缺少章节 ${b.target}`}),"required_file_role"===b.type&&b.target&&!f.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少文件角色 ${b.target}`}),"required_prompt_role"===b.type&&b.target&&!g.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少提示词角色 ${b.target}`}),"forbidden_text"===b.type&&b.value&&e.includes(b.value)&&h.push({level:a,message:`${b.name}:出现禁用文本 ${b.value}`}),"table_required"===b.type&&0===c.tables.length&&h.push({level:a,message:`${b.name}:缺少结构化表格`}),"source_required"===b.type&&[...c.project,...c.schedule,...c.quality,...c.safety].some(a=>!a.sourceFile)&&h.push({level:a,message:`${b.name}:存在无来源事实`})}return h}(l,aa,U,w,af.markdown,j,i),U,w),ai={...ad,validationIssues:aa,exportGate:ah,executionStages:ag},aj=af.markdown===ae?_(ai):af.markdown;return{...ai,markdown:aj}}async function ab(a){let b=x(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,k.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,k.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let h=B(g,f),i=c.requiredFacts.filter(a=>!h.some(b=>G(b,a))),j=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",h.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"建议补充更多资料后复核。","",h.length>0?"### 资料依据":"",...h.map(D),"",i.length>0?"### 待确认事项":"",...i.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:j,evidence:h,missingFacts:i}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、地图和打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv","表格数据/表格数据-热门干员推荐.xlsx","表格数据/表格数据-热门干员推荐.xls"]},{id:"delta-drawing-files",name:"三角洲官方地图图纸文件",description:"大白话:绑定官方地图工具里的真实地图底图/图纸瓦片,用来在攻略和 PDF 中展示地图,并说明地图来源。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-官方地图图纸来源.md","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-巴克什-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-AZ3-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方完整地图图纸.jpg"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-doc-files",name:"三角洲 Word/PDF 附件资料",description:"大白话:覆盖 PDF、DOC、DOCX 等常见文档格式,验证用户上传文档类资料也能参与生成。",type:"file",processingType:"reference",resourceIds:["文档资料/PDF资料-官方攻略摘录.pdf","文档资料/Word资料-队伍搭配说明.doc","文档资料/Word资料-队伍搭配说明.docx"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md","图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/牧羊人.png","图片素材/干员图片/蜂医.png"]},{id:"delta-reference-image-files",name:"三角洲参考图片文件角色",description:"大白话:把封面参考、干员图、地图截图作为多模态模型可理解的参考图片。",type:"file",processingType:"reference",resourceIds:["图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-cover-image-prompt",name:"三角洲封面图片生成提示词",description:"指导多模态模型生成专业封面图,要求主题、构图、氛围、比例和不可出现的信息。",type:"prompt",executionType:"reference",resourceIds:["builtin:delta-cover-image-generation"]},{id:"delta-review-prompt",name:"三角洲 LLM 审查优化提示词",description:"生成后再次使用文件角色、提示词角色和文档规范包审查初稿并优化。",type:"prompt",executionType:"llm_review",resourceIds:["builtin:delta-review-optimization"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-doc-files",order:5},{roleId:"delta-image-files",order:6},{roleId:"delta-reference-image-files",order:7}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-cover-image-prompt",order:2},{roleId:"delta-review-prompt",order:3},{roleId:"delta-validation-prompt",order:4},{roleId:"delta-formatting-prompt",order:5}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"llm_review"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};
|
|
154
|
+
${X(b,`${a}干员形象`)}`).join("\n\n"),"","- 露娜:适合先手获取信息,帮队伍判断推进方向。","- 红狼:适合打开突破口,但不要脱离队伍单人深入。","- 牧羊人:适合守点、卡入口和限制敌方推进。","- 蜂医:适合新手优先练习,能显著提高队伍容错。"],loadout:[`## ${a.title}`,"","推荐新手队伍至少包含一名侦察和一名支援。侦察负责信息,支援负责救援和续航。需要主动进攻时加入红狼,需要防守或卡点时加入牧羊人。","","常见组合:露娜 + 蜂医 + 红狼,适合主动推进;露娜 + 蜂医 + 牧羊人,适合稳扎稳打和守关键区域。"],tables:[`## ${a.title}`,"",e||"推荐表暂未生成,请检查表格数据。","","推荐指数用于新手决策参考,不代表绝对强度。实际选择还要结合地图、队友位置和任务目标。"],maps:[`## ${a.title}`,"","本章不会硬插固定地图,而是根据知识库检索到的地图、图片、表格、文档附件等资源证据组织内容。","",g,"",h?"### 官方完整地图图纸预览":"","",h,"","使用建议:先在完整地图上确认主要区域和撤离/交战路线,再决定侦察位观察点、突击位推进线、工程位控场点和支援位救援路线。"],tips:[`## ${a.title}`,"","- 不要只看干员强度,先看队伍缺什么位置。","- 新手优先保证“侦察信息 + 支援续航”,再考虑高风险突破。","- 推进前先用地图确认路线,避免全队挤在同一入口。","- 防守时让工程位处理关键入口,支援位保持在能救人的安全距离。"]}[a.id]||[`## ${a.title}`,"",b.length?`本章根据已绑定知识库资料整理:${a.purpose}`:"本章缺少明确资料。"];return c.length>0&&j.push("","### 需人工复核",...c.map(a=>`- ${a}`)),j.join("\n")}(e,g,k):[`## ${e.title}`,"",g.length>0?`本章根据知识库资料整理:${e.purpose}`:"模板绑定资料未检索到明确内容,需进一步确认。","",...g.slice(0,5).map(a=>`- ${a.filePath}:${a.content.replace(/\s+/gu," ").slice(0,180)}`),...k.length>0?["","### 待确认事项",...k.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)]:[]].join("\n"));A.push({type:"chapter_generation",roleId:"chapter_generation",promptId:i.find(a=>"chapter_generation"===a.roleId)?.promptId,status:l?"success":"fallback",message:l?`${e.title} 已由大模型生成`:`${e.title} 使用本地专业兜底生成`}),w.push({id:e.id,title:e.title,content:m,evidence:g,missingFacts:k})}let F=await P(c,y);for(let a of F.notes)y.push({chapterId:"multimodal-file-understanding",filePath:"多模态模型文件理解结果",score:1,content:a,roleId:"multimodal-files",processingType:"reference",source:"multimodal"});let L=function(a,b,c){let d={};for(let e of H(a,c)){let a=b.find(a=>I(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}(b,y,l),M=function(a,b,c){let d=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u],["攻略目标",/攻略目标[::\s]+([^\n]+)/u],["适用人群",/适用人群[::\s]+([^\n]+)/u],["干员名称",/(?:热门干员|干员)[::\s\n-]+([^\n]+)/u],["定位",/(?:定位|职责)[::\s]+([^\n,。;;]+)/u],["推荐指数",/推荐指数[::\s,,]+([^\n,。;;]+)/u],["实战技巧",/实战技巧[::\s]+([^\n]+)/u]],e=H(b,c).map(a=>({field:a,pattern:function(a){let b=a.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&");return RegExp(`${b}[::\\s]+([^\\n,。;;]+)`,"u")}(a.name)})),f=[];for(let b of a){for(let{field:a,pattern:c}of e){if(!I(b,a))continue;let d=b.content.match(c)||[void 0,b.content.replace(/\s+/gu," ").slice(0,220)],e=d?.[1]?.trim();e&&!f.some(b=>b.fieldId===a.id&&b.value===e)&&f.push({key:a.name,fieldId:a.id,fieldName:a.name,value:e.slice(0,300),sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}for(let[a,c]of d){let d=b.content.match(c);d?.[1]&&!f.some(b=>b.key===a&&b.value===d[1].trim())&&f.push({key:a,value:d[1].trim().slice(0,300),sourceFile:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,confidence:b.score,sourceRef:{filePath:b.filePath,roleId:b.roleId||"unknown",processingType:b.processingType,sectionTitle:b.sectionTitle}})}}return f}(y,b,l),N=await Q(y,o,b,l),O=[...M,...N.facts],R=function(a){let b=[],c=new Set;for(let d of a.filter(a=>"table"===a.processingType)){if(c.has(d.filePath))continue;c.add(d.filePath);let a=(0,k.aY)(),h=f.isAbsolute(d.filePath)?d.filePath:e.existsSync(f.join(a,"knowledgeBase",d.filePath))?f.join(a,"knowledgeBase",d.filePath):f.join(a,d.filePath),i=f.extname(d.filePath).toLowerCase();if(e.existsSync(h)&&[".xlsx",".xls",".csv"].includes(i))try{let a=g.readFile(h,{cellDates:!0,sheetStubs:!1});for(let c of a.SheetNames){let e=a.Sheets[c],f=g.utils.sheet_to_json(e,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(f.length<2)continue;let h=f.findIndex(a=>a.filter(Boolean).length>=2);if(h<0)continue;let i=f[h].filter(Boolean),j=f.slice(h+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==j.length&&b.push({tableType:d.roleId||"table",sheet:c,headers:i,rows:j.slice(0,200),sourceFile:d.filePath,sourceRange:e["!ref"]})}continue}catch{}let j=d.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let l=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",m=j.map(a=>a.split(l).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);m.length<2||b.push({tableType:d.roleId||"table",headers:m[0],rows:m.slice(1,80),sourceFile:d.filePath,sourceRange:d.sectionTitle})}return b}(y);for(let a of O)L[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let S=new Map;for(let a of y)S.set(a.filePath,(S.get(a.filePath)??0)+1);let T=[...S.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),U=function(a,b=[],c=[],d){let e=b=>a.filter(a=>b.some(b=>a.key.includes(b))),f=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:e(["工程名称","工程地点","建设单位","施工范围","攻略目标","适用人群","干员名称","定位","推荐指数"]),schedule:e(["工期","开工","竣工","节点"]),quality:e(["质量"]),safety:e(["安全"]),resources:e(["劳动力","材料","机械","设备"]),tables:b,drawings:f("drawing"),rules:f("rule"),specifications:f("specification"),schemaFacts:function(a,b){let c={};for(let d of b?.factFields||[])c[d.id]=a.filter(a=>a.fieldId===d.id||a.key===d.name||a.fieldName===d.name);return c}(a,d),missing:[...new Set(c)],conflicts:function(a,b){let c=b?.factFields.map(a=>a.name)||[...new Set(a.map(a=>a.key))],d=[];for(let b of c){let c=a.filter(a=>a.key===b||a.fieldName===b),e=new Map;for(let a of c){let b=a.value.replace(/\s+/gu,"").replace(/[,。,.;;::]/gu,"").toLowerCase();b&&e.set(b,[...e.get(b)||[],a])}if(e.size>1){let a=[...e.values()].map(a=>`${a[0].value}(${a.map(a=>a.sourceFile).join("、")})`).join(" vs ");d.push(`事实冲突:${b} 存在多个来源值:${a}`)}}return d}(a,d)}}(O,R,z,l),V=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);if(!d?.documentSpecId)for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===K(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===J(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(w,L,O,b),aa=function(a,b,c,d){let e=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return d?.documentSpecId||0!==b.project.length||e.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&e.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&e.push(...b.conflicts.map(a=>({level:"error",message:a}))),e}(V,U,w,b),ab="delta-force-hot-operators-guide"===b.id?[await W(b,i,y,c)]:[],ac=[{type:"role_binding",roleId:b.projectRoleConfigId||"none",status:j.length>0?"success":"fallback",message:`已绑定 ${j.length} 个文件角色、${i.length} 个提示词角色`},{type:"knowledge_retrieval",roleId:"knowledge-base",status:y.length>0?"success":"fallback",message:`已检索/绑定 ${y.length} 条证据`},F.stage,...N.stages,...A,...ab.map(a=>({type:"asset_generation",roleId:"delta-cover-image-prompt",status:"fallback"===a.status?"fallback":"success",message:a.message})),{type:"validation",roleId:"document-workflow",status:V.errors.length>0?"failed":"success",message:`错误 ${V.errors.length},警告 ${V.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"},{type:"export_ready",roleId:"document-workflow",status:V.errors.length>0?"failed":"success",message:V.errors.length>0?"导出门禁存在阻断项":"已准备好导出 Markdown/HTML/DOCX/PDF"}],ad={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||"",facts:L,structuredFacts:O,factsModel:U,chapters:w,sources:T,missingItems:[...new Set(z)],validation:V,validationIssues:aa,executionStages:ac,exportGate:{passed:!0,blockingIssues:[],checklist:[]},assets:ab,generatedAt:Date.now()},ae=_(ad),af=await $({template:b,spec:l,markdown:ae,evidence:y,promptTexts:o,requirement:a.requirement}),ag=[...ac,af.stage],ah=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(aa=function(a,b,c,d,e,f,g){if(!a)return b;let h=[...b],i=[...c.project,...c.schedule,...c.quality,...c.safety,...c.resources,...Object.values(c.schemaFacts).flat()],j=new Set([...i.map(a=>a.key),...i.map(a=>a.fieldName).filter(Boolean),...c.tables.flatMap(a=>[...a.headers,...a.rows.flat()])]),k=new Set(d.map(a=>a.title));for(let b of a.factFields.filter(a=>a.required)){let a=c.schemaFacts[b.id]||[],e=d.some(a=>!a.missingFacts.includes(b.name)&&a.evidence.some(a=>I(a,b))),f=!b.sourceRoleIds?.length||a.some(a=>b.sourceRoleIds?.includes(a.roleId))||d.some(a=>a.evidence.some(a=>I(a,b)));0!==a.length||j.has(b.name)||e||h.push({level:"error",message:`必需事实缺失:${b.name}`,suggestion:b.extractionHint||"请补充资料或调整事实字段配置。"}),f||h.push({level:"error",message:`必需事实来源角色不匹配:${b.name}`,suggestion:`请确认该事实来自角色:${b.sourceRoleIds?.join("、")}`})}for(let b of a.chapterRules.filter(a=>a.required)){k.has(b.title)||h.push({level:"error",message:`必需章节缺失:${b.title}`,suggestion:"请在模板或规范包章节规则中补齐章节。"});let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&h.push({level:"warning",message:`章节内容低于最低字数:${b.title}`,suggestion:`建议不少于 ${b.minWords} 字。`})}for(let b of a.gateRules){let a=b.level;"required_fact"===b.type&&b.target&&!j.has(b.target)&&h.push({level:a,message:`${b.name}:缺少事实 ${b.target}`}),"required_chapter"===b.type&&b.target&&!k.has(b.target)&&h.push({level:a,message:`${b.name}:缺少章节 ${b.target}`}),"required_file_role"===b.type&&b.target&&!f.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少文件角色 ${b.target}`}),"required_prompt_role"===b.type&&b.target&&!g.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少提示词角色 ${b.target}`}),"forbidden_text"===b.type&&b.value&&e.includes(b.value)&&h.push({level:a,message:`${b.name}:出现禁用文本 ${b.value}`}),"table_required"===b.type&&0===c.tables.length&&h.push({level:a,message:`${b.name}:缺少结构化表格`}),"source_required"===b.type&&[...c.project,...c.schedule,...c.quality,...c.safety].some(a=>!a.sourceFile)&&h.push({level:a,message:`${b.name}:存在无来源事实`})}return h}(l,aa,U,w,af.markdown,j,i),U,w),ai={...ad,validationIssues:aa,exportGate:ah,executionStages:ag},aj=af.markdown===ae?_(ai):af.markdown;return{...ai,markdown:aj}}async function ab(a){let b=x(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,k.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,k.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let h=B(g,f),i=c.requiredFacts.filter(a=>!h.some(b=>G(b,a))),j=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",h.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"建议补充更多资料后复核。","",h.length>0?"### 资料依据":"",...h.map(D),"",i.length>0?"### 待确认事项":"",...i.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:j,evidence:h,missingFacts:i}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、地图和打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv","表格数据/表格数据-热门干员推荐.xlsx","表格数据/表格数据-热门干员推荐.xls"]},{id:"delta-drawing-files",name:"三角洲官方地图图纸文件",description:"大白话:绑定官方地图工具里的真实地图底图/图纸瓦片,用来在攻略和 PDF 中展示地图,并说明地图来源。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-官方地图图纸来源.md","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-巴克什-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-AZ3-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方完整地图图纸.jpg"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-doc-files",name:"三角洲 Word/PDF 附件资料",description:"大白话:覆盖 PDF、DOC、DOCX 等常见文档格式,验证用户上传文档类资料也能参与生成。",type:"file",processingType:"reference",resourceIds:["文档资料/PDF资料-官方攻略摘录.pdf","文档资料/Word资料-队伍搭配说明.doc","文档资料/Word资料-队伍搭配说明.docx"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md","图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/牧羊人.png","图片素材/干员图片/蜂医.png"]},{id:"delta-reference-image-files",name:"三角洲参考图片文件角色",description:"大白话:把封面参考、干员图、地图截图作为多模态模型可理解的参考图片。",type:"file",processingType:"reference",resourceIds:["图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg"]},{id:"delta-case-reference-files",name:"三角洲模板案例参考文件",description:"大白话:作为内置模板案例参考,告诉用户一篇合格示例应如何组织结论、章节、表格、来源和提醒。",type:"file",processingType:"reference",resourceIds:["文档资料/模板案例-热门干员攻略示例.md","文档资料/模板案例-导出样式参考.md"]},{id:"delta-style-reference-files",name:"三角洲模板样式参考文件",description:"大白话:提供模板样式、标题层级、表格写法、图片说明、来源清单和导出排版参考。",type:"file",processingType:"specification",resourceIds:["文档资料/模板样式-攻略文档排版规范.md","文档资料/规范文件-攻略结构规范.md"]},{id:"delta-export-gate-files",name:"三角洲导出门禁参考文件",description:"大白话:说明 Markdown、HTML、DOCX、PDF 导出前需要满足的完整性、来源和格式检查项。",type:"file",processingType:"rule",resourceIds:["文档资料/导出门禁-攻略文档检查清单.md"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-cover-image-prompt",name:"三角洲封面图片生成提示词",description:"指导多模态模型生成专业封面图,要求主题、构图、氛围、比例和不可出现的信息。",type:"prompt",executionType:"reference",resourceIds:["builtin:delta-cover-image-generation"]},{id:"delta-template-style-prompt",name:"三角洲模板样式提示词",description:"规范内置模板案例的标题层级、导语、卡片式结论、表格、图片说明、来源清单和导出样式。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-template-style"]},{id:"delta-resource-evidence-prompt",name:"三角洲资源证据使用提示词",description:"指导模型把文本、表格、PDF/Word、图片、地图图纸和附件正确转化为章节内容。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-resource-evidence"]},{id:"delta-export-gate-prompt",name:"三角洲导出门禁提示词",description:"按 Markdown/HTML/DOCX/PDF 交付要求检查结构、来源、图片、表格和阻断项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-export-gate"]},{id:"delta-review-prompt",name:"三角洲 LLM 审查优化提示词",description:"生成后再次使用文件角色、提示词角色和文档规范包审查初稿并优化。",type:"prompt",executionType:"llm_review",resourceIds:["builtin:delta-review-optimization"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-doc-files",order:5},{roleId:"delta-image-files",order:6},{roleId:"delta-reference-image-files",order:7},{roleId:"delta-case-reference-files",order:8},{roleId:"delta-style-reference-files",order:9},{roleId:"delta-export-gate-files",order:10}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-resource-evidence-prompt",order:2},{roleId:"delta-cover-image-prompt",order:3},{roleId:"delta-template-style-prompt",order:4},{roleId:"delta-review-prompt",order:5},{roleId:"delta-export-gate-prompt",order:6},{roleId:"delta-validation-prompt",order:7},{roleId:"delta-formatting-prompt",order:8}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"llm_review"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9029,a.ids=[9029],a.modules={48161:a=>{a.exports=require("node:os")},55258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(89952);function j(a){return"file"===a||"prompt"===a?a:void 0}function k(a,b){try{if("GET"===a.method)return b.status(200).json({roles:(0,i.XB)(j(a.query.type)),configs:(0,i.DZ)()});if("POST"===a.method||"PUT"===a.method){let c="config"===a.query.mode?"config":"role";if("config"===c){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"config id and name required"});return b.status(200).json({config:(0,i.NR)(c),roles:(0,i.XB)(),configs:(0,i.DZ)()})}let d=a.body;if(!d?.id||!d.name||!j(d.type))return b.status(400).json({error:"role id, name and type required"});return b.status(200).json({role:(0,i.dg)(d),roles:(0,i.XB)(),configs:(0,i.DZ)()})}if("DELETE"===a.method){let c="config"===a.query.mode?"config":"role",d=String(a.query.id||"");if(!d)return b.status(400).json({error:"id required"});if("config"===c)return(0,i.dw)(d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()});let e=j(a.query.type);if(!e)return b.status(400).json({error:"type required"});return(0,i.FV)(e,d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/roles",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/roles",pathname:"/api/documents/roles",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/roles"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/roles",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},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")},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、地图和打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv","表格数据/表格数据-热门干员推荐.xlsx","表格数据/表格数据-热门干员推荐.xls"]},{id:"delta-drawing-files",name:"三角洲官方地图图纸文件",description:"大白话:绑定官方地图工具里的真实地图底图/图纸瓦片,用来在攻略和 PDF 中展示地图,并说明地图来源。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-官方地图图纸来源.md","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-巴克什-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-AZ3-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方完整地图图纸.jpg"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-doc-files",name:"三角洲 Word/PDF 附件资料",description:"大白话:覆盖 PDF、DOC、DOCX 等常见文档格式,验证用户上传文档类资料也能参与生成。",type:"file",processingType:"reference",resourceIds:["文档资料/PDF资料-官方攻略摘录.pdf","文档资料/Word资料-队伍搭配说明.doc","文档资料/Word资料-队伍搭配说明.docx"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md","图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/牧羊人.png","图片素材/干员图片/蜂医.png"]},{id:"delta-reference-image-files",name:"三角洲参考图片文件角色",description:"大白话:把封面参考、干员图、地图截图作为多模态模型可理解的参考图片。",type:"file",processingType:"reference",resourceIds:["图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-cover-image-prompt",name:"三角洲封面图片生成提示词",description:"指导多模态模型生成专业封面图,要求主题、构图、氛围、比例和不可出现的信息。",type:"prompt",executionType:"reference",resourceIds:["builtin:delta-cover-image-generation"]},{id:"delta-review-prompt",name:"三角洲 LLM 审查优化提示词",description:"生成后再次使用文件角色、提示词角色和文档规范包审查初稿并优化。",type:"prompt",executionType:"llm_review",resourceIds:["builtin:delta-review-optimization"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-doc-files",order:5},{roleId:"delta-image-files",order:6},{roleId:"delta-reference-image-files",order:7}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-cover-image-prompt",order:2},{roleId:"delta-review-prompt",order:3},{roleId:"delta-validation-prompt",order:4},{roleId:"delta-formatting-prompt",order:5}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"llm_review"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=55258));module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9029,a.ids=[9029],a.modules={48161:a=>{a.exports=require("node:os")},55258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(89952);function j(a){return"file"===a||"prompt"===a?a:void 0}function k(a,b){try{if("GET"===a.method)return b.status(200).json({roles:(0,i.XB)(j(a.query.type)),configs:(0,i.DZ)()});if("POST"===a.method||"PUT"===a.method){let c="config"===a.query.mode?"config":"role";if("config"===c){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"config id and name required"});return b.status(200).json({config:(0,i.NR)(c),roles:(0,i.XB)(),configs:(0,i.DZ)()})}let d=a.body;if(!d?.id||!d.name||!j(d.type))return b.status(400).json({error:"role id, name and type required"});return b.status(200).json({role:(0,i.dg)(d),roles:(0,i.XB)(),configs:(0,i.DZ)()})}if("DELETE"===a.method){let c="config"===a.query.mode?"config":"role",d=String(a.query.id||"");if(!d)return b.status(400).json({error:"id required"});if("config"===c)return(0,i.dw)(d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()});let e=j(a.query.type);if(!e)return b.status(400).json({error:"type required"});return(0,i.FV)(e,d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/roles",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/roles",pathname:"/api/documents/roles",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/roles"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/roles",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},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")},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、地图和打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv","表格数据/表格数据-热门干员推荐.xlsx","表格数据/表格数据-热门干员推荐.xls"]},{id:"delta-drawing-files",name:"三角洲官方地图图纸文件",description:"大白话:绑定官方地图工具里的真实地图底图/图纸瓦片,用来在攻略和 PDF 中展示地图,并说明地图来源。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-官方地图图纸来源.md","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-巴克什-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-AZ3-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方完整地图图纸.jpg"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-doc-files",name:"三角洲 Word/PDF 附件资料",description:"大白话:覆盖 PDF、DOC、DOCX 等常见文档格式,验证用户上传文档类资料也能参与生成。",type:"file",processingType:"reference",resourceIds:["文档资料/PDF资料-官方攻略摘录.pdf","文档资料/Word资料-队伍搭配说明.doc","文档资料/Word资料-队伍搭配说明.docx"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md","图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/牧羊人.png","图片素材/干员图片/蜂医.png"]},{id:"delta-reference-image-files",name:"三角洲参考图片文件角色",description:"大白话:把封面参考、干员图、地图截图作为多模态模型可理解的参考图片。",type:"file",processingType:"reference",resourceIds:["图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg"]},{id:"delta-case-reference-files",name:"三角洲模板案例参考文件",description:"大白话:作为内置模板案例参考,告诉用户一篇合格示例应如何组织结论、章节、表格、来源和提醒。",type:"file",processingType:"reference",resourceIds:["文档资料/模板案例-热门干员攻略示例.md","文档资料/模板案例-导出样式参考.md"]},{id:"delta-style-reference-files",name:"三角洲模板样式参考文件",description:"大白话:提供模板样式、标题层级、表格写法、图片说明、来源清单和导出排版参考。",type:"file",processingType:"specification",resourceIds:["文档资料/模板样式-攻略文档排版规范.md","文档资料/规范文件-攻略结构规范.md"]},{id:"delta-export-gate-files",name:"三角洲导出门禁参考文件",description:"大白话:说明 Markdown、HTML、DOCX、PDF 导出前需要满足的完整性、来源和格式检查项。",type:"file",processingType:"rule",resourceIds:["文档资料/导出门禁-攻略文档检查清单.md"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-cover-image-prompt",name:"三角洲封面图片生成提示词",description:"指导多模态模型生成专业封面图,要求主题、构图、氛围、比例和不可出现的信息。",type:"prompt",executionType:"reference",resourceIds:["builtin:delta-cover-image-generation"]},{id:"delta-template-style-prompt",name:"三角洲模板样式提示词",description:"规范内置模板案例的标题层级、导语、卡片式结论、表格、图片说明、来源清单和导出样式。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-template-style"]},{id:"delta-resource-evidence-prompt",name:"三角洲资源证据使用提示词",description:"指导模型把文本、表格、PDF/Word、图片、地图图纸和附件正确转化为章节内容。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-resource-evidence"]},{id:"delta-export-gate-prompt",name:"三角洲导出门禁提示词",description:"按 Markdown/HTML/DOCX/PDF 交付要求检查结构、来源、图片、表格和阻断项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-export-gate"]},{id:"delta-review-prompt",name:"三角洲 LLM 审查优化提示词",description:"生成后再次使用文件角色、提示词角色和文档规范包审查初稿并优化。",type:"prompt",executionType:"llm_review",resourceIds:["builtin:delta-review-optimization"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-doc-files",order:5},{roleId:"delta-image-files",order:6},{roleId:"delta-reference-image-files",order:7},{roleId:"delta-case-reference-files",order:8},{roleId:"delta-style-reference-files",order:9},{roleId:"delta-export-gate-files",order:10}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-resource-evidence-prompt",order:2},{roleId:"delta-cover-image-prompt",order:3},{roleId:"delta-template-style-prompt",order:4},{roleId:"delta-review-prompt",order:5},{roleId:"delta-export-gate-prompt",order:6},{roleId:"delta-validation-prompt",order:7},{roleId:"delta-formatting-prompt",order:8}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"llm_review"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=55258));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=1282,a.ids=[1282],a.modules={48161:a=>{a.exports=require("node:os")},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:"
|
|
1
|
+
"use strict";(()=>{var a={};a.id=1282,a.ids=[1282],a.modules={48161:a=>{a.exports=require("node:os")},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:"guide-goal",name:"攻略目标",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-case-reference-files"],extractionHint:"抽取本文解决的问题、适用对象和最终交付目标。",validationHint:"正文导语必须能回答“给谁看、解决什么问题”。"},{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。",validationHint:"至少覆盖内置事实文件中的四名热门干员。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。",validationHint:"定位必须和干员名称一一对应。"},{id:"operator-value",name:"核心价值",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取每名干员在队伍中的核心价值和使用场景。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数、上手难度和推荐场景。",validationHint:"推荐指数应以表格形式呈现。"},{id:"team-composition",name:"队伍搭配",type:"table",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取新手稳健队、突破压制队、控图防守队等组合和使用要点。"},{id:"map-drawing",name:"地图图纸",type:"list",required:!0,sourceRoleIds:["delta-drawing-files"],extractionHint:"抽取官方地图工具来源、地图名称和地图图纸文件。",validationHint:"地图图纸必须来自知识库检索资源,不能硬插固定文件。"},{id:"image-reference",name:"图片资源",type:"list",required:!1,sourceRoleIds:["delta-image-files","delta-reference-image-files"],extractionHint:"抽取干员图片、参考图片和可用作配图的本地资源。"},{id:"template-case",name:"模板案例参考",type:"text",required:!0,sourceRoleIds:["delta-case-reference-files"],extractionHint:"抽取模板案例中的结构、来源清单和示例表达方式。"},{id:"style-rule",name:"模板样式规则",type:"text",required:!0,sourceRoleIds:["delta-style-reference-files"],extractionHint:"抽取标题层级、章节结构、表格、图片说明和导出排版规则。"},{id:"export-gate",name:"导出门禁",type:"list",required:!0,sourceRoleIds:["delta-export-gate-files"],extractionHint:"抽取阻断项、警告项和导出通过标准。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:120,requiredFactIds:["guide-goal","template-case"],requiredFileRoleIds:["delta-case-reference-files"],requiredPromptRoleIds:["delta-template-style-prompt"],generationHint:"必须让用户看出这是一个可学习、可复制的内置模板案例。"},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:180,requiredFactIds:["operator-name","operator-role","operator-value"],requiredFileRoleIds:["delta-fact-files"],generationHint:"使用表格或分组清单展示干员、定位、核心价值和适合场景。"},{id:"team",title:"第三章 队伍搭配和实战打法",required:!0,order:2,minWords:160,requiredFactIds:["team-composition"],requiredFileRoleIds:["delta-doc-files","delta-fact-files"],generationHint:"把侦察、突击、工程、支援和队伍组合对应起来。"},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:120,requiredFactIds:["recommend-score"],requiredFileRoleIds:["delta-table-files"],generationHint:"必须把 CSV/XLS/XLSX 的字段转成可读表格,并解释字段含义。"},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:160,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],requiredPromptRoleIds:["delta-resource-evidence-prompt"],generationHint:"必须说明官方地图工具来源,并解释地图图纸与路线、点位或撤离/交战路径的关系。"},{id:"style",title:"第六章 模板样式和导出检查",required:!0,order:5,minWords:140,requiredFactIds:["style-rule","export-gate"],requiredFileRoleIds:["delta-style-reference-files","delta-export-gate-files"],requiredPromptRoleIds:["delta-export-gate-prompt"],generationHint:"说明本模板如何通过规范包、文件角色、提示词角色和导出门禁形成可复用案例。"}],gateRules:[{id:"gate-guide-goal",name:"必须说明攻略目标和适用对象",type:"required_fact",level:"error",target:"攻略目标"},{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-team",name:"必须包含队伍搭配依据",type:"required_fact",level:"warning",target:"队伍搭配"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件角色",type:"required_file_role",level:"error",target:"delta-drawing-files"},{id:"gate-case-reference",name:"必须绑定模板案例参考角色",type:"required_file_role",level:"warning",target:"delta-case-reference-files"},{id:"gate-style-prompt",name:"必须绑定模板样式提示词角色",type:"required_prompt_role",level:"warning",target:"delta-template-style-prompt"},{id:"gate-export-prompt",name:"必须绑定导出门禁提示词角色",type:"required_prompt_role",level:"warning",target:"delta-export-gate-prompt"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"},{id:"gate-no-remote-image-url",name:"正文不能包含远程临时图片生成 URL",type:"forbidden_text",level:"error",value:"text_to_image"}],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))}},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")},81296:(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(57367);function j(a,b){try{if("GET"===a.method)return b.status(200).json({specs:(0,i.Co)()});if("POST"===a.method||"PUT"===a.method){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"spec id and name required"});return b.status(200).json({spec:(0,i.EK)(c),specs:(0,i.Co)()})}if("DELETE"===a.method){let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});return(0,i.ER)(c),b.status(200).json({success:!0,specs:(0,i.Co)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/specs",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/specs",pathname:"/api/documents/specs",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/specs"});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/specs",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=81296));module.exports=c})();
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_app": "pages/_app.js",
|
|
3
3
|
"/_error": "pages/_error.js",
|
|
4
|
+
"/api/assets/generated": "pages/api/assets/generated.js",
|
|
5
|
+
"/api/config/embedding/healthCheck": "pages/api/config/embedding/healthCheck.js",
|
|
4
6
|
"/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
|
|
5
7
|
"/api/config/models": "pages/api/config/models.js",
|
|
6
8
|
"/api/context": "pages/api/context.js",
|
|
7
|
-
"/api/assets/generated": "pages/api/assets/generated.js",
|
|
8
9
|
"/api/documents/chapter/regenerate": "pages/api/documents/chapter/regenerate.js",
|
|
9
|
-
"/api/documents/export": "pages/api/documents/export.js",
|
|
10
10
|
"/api/documents/drafts": "pages/api/documents/drafts.js",
|
|
11
|
-
"/api/documents/
|
|
11
|
+
"/api/documents/export": "pages/api/documents/export.js",
|
|
12
12
|
"/api/documents/generated/[id]": "pages/api/documents/generated/[id].js",
|
|
13
|
-
"/api/
|
|
14
|
-
"/api/documents/templates": "pages/api/documents/templates.js",
|
|
15
|
-
"/api/documents/specs": "pages/api/documents/specs.js",
|
|
16
|
-
"/api/documents/roles": "pages/api/documents/roles.js",
|
|
13
|
+
"/api/documents/generate": "pages/api/documents/generate.js",
|
|
17
14
|
"/api/documents/generated": "pages/api/documents/generated.js",
|
|
18
|
-
"/api/
|
|
15
|
+
"/api/documents/roles": "pages/api/documents/roles.js",
|
|
16
|
+
"/api/documents/specs": "pages/api/documents/specs.js",
|
|
17
|
+
"/api/documents/templates": "pages/api/documents/templates.js",
|
|
19
18
|
"/api/kb/categories": "pages/api/kb/categories.js",
|
|
20
|
-
"/api/kb/features": "pages/api/kb/features.js",
|
|
21
19
|
"/api/kb/duplicates": "pages/api/kb/duplicates.js",
|
|
20
|
+
"/api/health": "pages/api/health.js",
|
|
22
21
|
"/api/kb/files/detail": "pages/api/kb/files/detail.js",
|
|
22
|
+
"/api/kb/files": "pages/api/kb/files.js",
|
|
23
|
+
"/api/kb/features": "pages/api/kb/features.js",
|
|
23
24
|
"/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
|
|
24
25
|
"/api/kb/files/open": "pages/api/kb/files/open.js",
|
|
25
26
|
"/api/kb/ignore": "pages/api/kb/ignore.js",
|
|
26
|
-
"/api/kb/files": "pages/api/kb/files.js",
|
|
27
27
|
"/api/kb/search": "pages/api/kb/search.js",
|
|
28
|
-
"/api/kb/reindex": "pages/api/kb/reindex.js",
|
|
29
28
|
"/api/kb/operations": "pages/api/kb/operations.js",
|
|
30
|
-
"/api/kb/
|
|
29
|
+
"/api/kb/reindex": "pages/api/kb/reindex.js",
|
|
31
30
|
"/api/kb/stats": "pages/api/kb/stats.js",
|
|
32
|
-
"/api/kb/
|
|
31
|
+
"/api/kb/tags": "pages/api/kb/tags.js",
|
|
33
32
|
"/api/prompt": "pages/api/prompt.js",
|
|
34
|
-
"/api/
|
|
35
|
-
"/document-roles": "pages/document-roles.html",
|
|
36
|
-
"/asset-library": "pages/asset-library.html",
|
|
33
|
+
"/api/kb/upload/progress": "pages/api/kb/upload/progress.js",
|
|
37
34
|
"/context/long-term": "pages/context/long-term.html",
|
|
35
|
+
"/asset-library": "pages/asset-library.html",
|
|
38
36
|
"/context/short-term": "pages/context/short-term.html",
|
|
37
|
+
"/document-roles": "pages/document-roles.html",
|
|
38
|
+
"/api/system/stats": "pages/api/system/stats.js",
|
|
39
39
|
"/document-specs": "pages/document-specs.html",
|
|
40
|
+
"/": "pages/index.html",
|
|
40
41
|
"/guide": "pages/guide.html",
|
|
41
|
-
"/documents": "pages/documents.html",
|
|
42
|
-
"/knowledge": "pages/knowledge.html",
|
|
43
42
|
"/knowledge/file-detail": "pages/knowledge/file-detail.html",
|
|
44
|
-
"/
|
|
43
|
+
"/documents": "pages/documents.html",
|
|
45
44
|
"/knowledge/search": "pages/knowledge/search.html",
|
|
45
|
+
"/knowledge": "pages/knowledge.html",
|
|
46
46
|
"/knowledge/files": "pages/knowledge/files.html",
|
|
47
|
-
"/": "pages/
|
|
48
|
-
"/overview": "pages/overview.html",
|
|
47
|
+
"/knowledge/manage": "pages/knowledge/manage.html",
|
|
49
48
|
"/models": "pages/models.html",
|
|
50
|
-
"/api/config/
|
|
49
|
+
"/api/config/healthCheck": "pages/api/config/healthCheck.js",
|
|
51
50
|
"/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
|
|
51
|
+
"/api/config/embedding": "pages/api/config/embedding.js",
|
|
52
52
|
"/settings": "pages/settings.html",
|
|
53
|
-
"/api/config/providers": "pages/api/config/providers.js",
|
|
54
|
-
"/api/config/healthCheck": "pages/api/config/healthCheck.js",
|
|
55
53
|
"/api/kb/files/preview-pdf-page": "pages/api/kb/files/preview-pdf-page.js",
|
|
54
|
+
"/api/config/providers": "pages/api/config/providers.js",
|
|
56
55
|
"/prompt": "pages/prompt.html",
|
|
56
|
+
"/overview": "pages/overview.html",
|
|
57
57
|
"/api/kb/upload": "pages/api/kb/upload.js",
|
|
58
58
|
"/_document": "pages/_document.js",
|
|
59
59
|
"/404": "pages/404.html"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(s,e,t,c,a,n,i,d,u,f,b,
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,e,t,c,a,n,i,d,u,o,f,b,r,k,h,g,l,j,m,p,_,w,x,I,v){return{__rewrites:{afterFiles:[],beforeFiles:[{has:j,source:"/_next/static/:buildId/_buildManifest.js",destination:"/_next/static/customize-agent-dashboard/_buildManifest.js"},{has:j,source:"/_next/static/:buildId/_ssgManifest.js",destination:"/_next/static/customize-agent-dashboard/_ssgManifest.js"}],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:p,bitArray:[]},__routerFilterDynamic:{numItems:k,errorRate:1e-4,numBits:k,numHashes:p,bitArray:[]},"/":["static/chunks/pages/index-c5e0758e6b31deee.js"],"/_error":["static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":[s,e,t,c,a,n,d,u,b,h,"static/chunks/881-a1eb917222b66f09.js","static/chunks/pages/asset-library-0f607b74fa016470.js"],"/context/long-term":[s,e,t,c,a,i,n,d,u,o,f,r,_,"static/chunks/pages/context/long-term-09e23b06634b08d9.js"],"/context/short-term":[s,e,t,c,a,i,n,d,u,o,f,r,_,"static/chunks/pages/context/short-term-2f5fd8531e87b5bd.js"],"/document-roles":[s,e,t,c,a,i,n,d,u,f,h,"static/chunks/pages/document-roles-077fc7159c88e89e.js"],"/document-specs":[s,e,t,c,a,i,n,d,u,f,h,g,"static/chunks/pages/document-specs-fb5b8a89cff6d1e3.js"],"/documents":[s,e,t,c,a,i,n,d,u,f,b,h,w,"static/chunks/617-68a9e848c380f9c3.js","static/chunks/pages/documents-38320ae2fd50be35.js"],"/guide":[s,e,t,b,w,"static/chunks/969-5d5ff5a3ed74f52b.js","static/chunks/pages/guide-acf32d66a6df6e5a.js"],"/knowledge":["static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":[s,e,t,c,a,i,n,d,o,r,b,x,"static/chunks/80-96429163e5c103a8.js",l,"static/chunks/pages/knowledge/file-detail-ad1dc61c1413db0c.js"],"/knowledge/files":[s,e,t,c,a,i,n,d,o,r,I,l,"static/chunks/pages/knowledge/files-896c058f2da5e907.js"],"/knowledge/manage":[s,e,t,c,a,n,d,o,r,v,"static/chunks/935-daa0026982d7fa8d.js","static/chunks/pages/knowledge/manage-6da10158f75718cf.js"],"/knowledge/search":[s,e,t,c,i,n,b,g,x,l,"static/chunks/pages/knowledge/search-3fd704d2afa1af3e.js"],"/models":[s,e,t,c,a,i,u,o,f,g,"static/css/0e153583d22cc52e.css","static/chunks/pages/models-7bdf24068811ae91.js"],"/overview":[s,e,I,v,"static/chunks/224-9a7074031493793b.js","static/chunks/pages/overview-572bba4876e617f5.js"],"/prompt":[s,e,t,c,i,u,o,"static/chunks/pages/prompt-c9bc7884a44d3767.js"],"/settings":[s,"static/css/82b6ddff0ef364fe.css","static/chunks/pages/settings-68f0d05bf95d12da.js"],sortedPages:["/","/_app","/_error","/asset-library","/context/long-term","/context/short-term","/document-roles","/document-specs","/documents","/guide","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/search","/models","/overview","/prompt","/settings"]}}("static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/628-27424ba8ca9ca8ce.js","static/chunks/271-39045be4cdbd6af1.js","static/chunks/700-5d29b0475311f590.js","static/chunks/576-fd55b302cb0c9a48.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/400-1fa1899b7c3f0bb4.js",0,"static/chunks/951-8ecf8af33ab36369.js","static/chunks/20-8968ee2d4013a5b8.js","static/css/d284a7454d6f6b06.css",void 0,1e-4,NaN,"static/chunks/257-e4ebae17a8ee8412.js","static/chunks/858-5e6982e2b239d4b7.js","static/chunks/350-8c5e13c0577a38c3.js","static/chunks/15-4683808cb8db7005.js","static/chunks/577-5b2691f0c8f17187.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@customize-agent/server",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.16",
|
|
4
4
|
"description": "Customize Agent Web 管理控制台",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json"
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"react-dom": "^19.0.0",
|
|
47
47
|
"tesseract.js": "^7.0.0",
|
|
48
48
|
"xlsx": "^0.18.5",
|
|
49
|
-
"@customize-agent/llm": "^3.0.3",
|
|
50
49
|
"@customize-agent/knowledge": "^3.0.10",
|
|
50
|
+
"@customize-agent/llm": "^3.0.3",
|
|
51
51
|
"@customize-agent/runtime": "^3.0.5"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|