@customize-agent/server 3.0.17 → 3.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/build-manifest.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/3445.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/documents/export.js +2 -2
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/specs.js +1 -1
- package/.next/server/pages/api/prompt.js +97 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages-manifest.json +23 -23
- package/.next/static/chunks/pages/documents-cf8bb78fbcc70bb1.js +1 -0
- package/.next/static/customize-agent-dashboard/_buildManifest.js +1 -1
- package/package.json +1 -1
- package/.next/static/chunks/pages/documents-c1a01ae631b42488.js +0 -1
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"static/chunks/951-8ecf8af33ab36369.js",
|
|
139
139
|
"static/chunks/858-5e6982e2b239d4b7.js",
|
|
140
140
|
"static/chunks/617-68a9e848c380f9c3.js",
|
|
141
|
-
"static/chunks/pages/documents-
|
|
141
|
+
"static/chunks/pages/documents-cf8bb78fbcc70bb1.js"
|
|
142
142
|
],
|
|
143
143
|
"/guide": [
|
|
144
144
|
"static/chunks/webpack-77d10b4726f13aa5.js",
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "319b56c6154f2f472f0dda890a7f15bc",
|
|
7
|
+
"previewModeSigningKey": "07a47b8ba03f489856d512b90e8aeaa0893bb3fa89c313367c496989155276b4",
|
|
8
|
+
"previewModeEncryptionKey": "3c58ec9d577dc1c865f76f41668b9ebbbf106a1b2c5f27fd51c7ec38251bfe81"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},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:`你是“资料事实抽取员”,任务是把绑定文件角色中的资料转成可追溯、可审查、可用于正式文档生成的事实模型。
|
|
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:"warning",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. 只使用输入资料和知识库证据,不要凭空补充游戏机制、数值、角色技能或地图信息。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/index-c5e0758e6b31deee.js"],"/_app":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/css/9af88fe8ee791d26.css","static/chunks/pages/_app-b1f31c6bbc0bb7b1.js"],"/_error":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/881-a1eb917222b66f09.js","static/chunks/pages/asset-library-82606363f9142bad.js"],"/context/long-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/257-e4ebae17a8ee8412.js","static/chunks/pages/context/long-term-f2a550bc848ec1a3.js"],"/context/short-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/257-e4ebae17a8ee8412.js","static/chunks/pages/context/short-term-1de28da82d2b6276.js"],"/document-roles":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/pages/document-roles-54a1cc04116e8c18.js"],"/document-specs":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/20-8968ee2d4013a5b8.js","static/chunks/pages/document-specs-723dee6883949a17.js"],"/documents":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/858-5e6982e2b239d4b7.js","static/chunks/617-68a9e848c380f9c3.js","static/chunks/pages/documents-c1a01ae631b42488.js"],"/guide":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/858-5e6982e2b239d4b7.js","static/chunks/969-5d5ff5a3ed74f52b.js","static/chunks/pages/guide-acf32d66a6df6e5a.js"],"/knowledge":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/350-8c5e13c0577a38c3.js","static/chunks/80-96429163e5c103a8.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/file-detail-7a1a3d4352ecfa0a.js"],"/knowledge/files":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/15-4683808cb8db7005.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/files-f0e05583bf7c57d9.js"],"/knowledge/manage":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/577-5b2691f0c8f17187.js","static/chunks/935-daa0026982d7fa8d.js","static/chunks/pages/knowledge/manage-8acff53019eb6cc1.js"],"/knowledge/search":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/628-27424ba8ca9ca8ce.js","static/chunks/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/20-8968ee2d4013a5b8.js","static/chunks/350-8c5e13c0577a38c3.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/search-1f3bd8fcb7af3e4d.js"],"/models":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/20-8968ee2d4013a5b8.js","static/css/0e153583d22cc52e.css","static/chunks/pages/models-11533caad3723009.js"],"/overview":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/15-4683808cb8db7005.js","static/chunks/577-5b2691f0c8f17187.js","static/chunks/224-9a7074031493793b.js","static/chunks/pages/overview-f80672c242d9aa32.js"],"/prompt":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/628-27424ba8ca9ca8ce.js","static/chunks/576-fd55b302cb0c9a48.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/pages/prompt-c9bc7884a44d3767.js"],"/settings":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/css/82b6ddff0ef364fe.css","static/chunks/pages/settings-68f0d05bf95d12da.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/index-c5e0758e6b31deee.js"],"/_app":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/css/9af88fe8ee791d26.css","static/chunks/pages/_app-b1f31c6bbc0bb7b1.js"],"/_error":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/881-a1eb917222b66f09.js","static/chunks/pages/asset-library-82606363f9142bad.js"],"/context/long-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/257-e4ebae17a8ee8412.js","static/chunks/pages/context/long-term-f2a550bc848ec1a3.js"],"/context/short-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/257-e4ebae17a8ee8412.js","static/chunks/pages/context/short-term-1de28da82d2b6276.js"],"/document-roles":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/pages/document-roles-54a1cc04116e8c18.js"],"/document-specs":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/20-8968ee2d4013a5b8.js","static/chunks/pages/document-specs-723dee6883949a17.js"],"/documents":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/232-813af4932a145fdc.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/951-8ecf8af33ab36369.js","static/chunks/858-5e6982e2b239d4b7.js","static/chunks/617-68a9e848c380f9c3.js","static/chunks/pages/documents-cf8bb78fbcc70bb1.js"],"/guide":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/858-5e6982e2b239d4b7.js","static/chunks/969-5d5ff5a3ed74f52b.js","static/chunks/pages/guide-acf32d66a6df6e5a.js"],"/knowledge":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/350-8c5e13c0577a38c3.js","static/chunks/80-96429163e5c103a8.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/file-detail-7a1a3d4352ecfa0a.js"],"/knowledge/files":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/15-4683808cb8db7005.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/files-f0e05583bf7c57d9.js"],"/knowledge/manage":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/174-51b6d64f21e9b976.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/400-1fa1899b7c3f0bb4.js","static/chunks/577-5b2691f0c8f17187.js","static/chunks/935-daa0026982d7fa8d.js","static/chunks/pages/knowledge/manage-8acff53019eb6cc1.js"],"/knowledge/search":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/628-27424ba8ca9ca8ce.js","static/chunks/576-fd55b302cb0c9a48.js","static/chunks/700-5d29b0475311f590.js","static/chunks/292-f0a2c92861c304e6.js","static/chunks/20-8968ee2d4013a5b8.js","static/chunks/350-8c5e13c0577a38c3.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/search-1f3bd8fcb7af3e4d.js"],"/models":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","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/576-fd55b302cb0c9a48.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/232-813af4932a145fdc.js","static/chunks/20-8968ee2d4013a5b8.js","static/css/0e153583d22cc52e.css","static/chunks/pages/models-11533caad3723009.js"],"/overview":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/15-4683808cb8db7005.js","static/chunks/577-5b2691f0c8f17187.js","static/chunks/224-9a7074031493793b.js","static/chunks/pages/overview-f80672c242d9aa32.js"],"/prompt":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/chunks/167-d4f384b289ecb70c.js","static/chunks/382-6ab5f41cd91edad0.js","static/chunks/628-27424ba8ca9ca8ce.js","static/chunks/576-fd55b302cb0c9a48.js","static/chunks/183-8da0232dd30cdc81.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/pages/prompt-c9bc7884a44d3767.js"],"/settings":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-161be364fd69a7ce.js","static/chunks/main-ed4abb3bb200c815.js","static/chunks/260-cec84dc6c353e104.js","static/css/82b6ddff0ef364fe.css","static/chunks/pages/settings-68f0d05bf95d12da.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=1883,a.ids=[1883],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),
|
|
1
|
+
"use strict";(()=>{var a={};a.id=1883,a.ids=[1883],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")},99942:(a,b,c)=>{c.r(b),c.d(b,{config:()=>q,default:()=>p,handler:()=>s});var d={};c.r(d),c.d(d,{default:()=>m});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024),j=c(76760),k=c(67461),l=c(23328);function m(a,b){try{let c="string"==typeof a.query.id?a.query.id:"";if(!c)return b.status(400).json({error:"id required"});let d=(0,l.aY)(),e=(0,k.yE)(c,d);if(!e?.path)return b.status(404).json({error:"asset not found"});let f=(0,k.SE)(e,d);if(!f||!i.existsSync(f))return b.status(404).json({error:"file not found"});let g=i.readFileSync(f);if(!(g.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10]))||g.subarray(0,3).equals(Buffer.from([255,216,255]))||"RIFF"===g.subarray(0,4).toString("ascii")))return b.status(422).json({error:"asset file is not a valid image"});return b.setHeader("Content-Type",function(a){let b=j.extname(a).toLowerCase();return".jpg"===b||".jpeg"===b?"image/jpeg":".webp"===b?"image/webp":"image/png"}(f)),b.setHeader("Cache-Control","no-store"),b.status(200).send(g)}catch(a){console.error("[api] assets/generated/preview",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var n=c(68970),o=c(50296);let p=(0,h.M)(d,"default"),q=(0,h.M)(d,"config"),r=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated/preview",pathname:"/api/assets/generated/preview",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function s(a,b,c){let d=await r.prepare(a,b,{srcPage:"/api/assets/generated/preview"});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,n.getTracer)(),e=d.getActiveScopeSpan(),j=r.instrumentationOnRequestError.bind(r),k=async e=>r.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:r.isDev,page:"/api/assets/generated/preview",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")!==o.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(o.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:n.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(r.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,3328,3445],()=>b(b.s=99942));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6334,a.ids=[6334],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55883:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(48161),k=c(67461);async function l(a,b){try{if("GET"===a.method)return b.status(200).json({assets:(0,k.BH)()});if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,k.JU)(c),b.status(200).json({ok:!0,assets:(0,k.BH)()})}if("POST"===a.method){let{id:c,action:d,target:e="file"}=a.body;if(!c||!d)return b.status(400).json({error:"id and action required"});if("index"===d){let a=await (0,k.uc)(c);if(!a)return b.status(404).json({error:"asset not found"});return b.status(200).json({asset:a,assets:(0,k.BH)()})}if("open"===d){let a=(0,k.Jz)(c,e);if(!a)return b.status(404).json({error:"asset file not found"});return(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(a).unref(),b.status(200).json({ok:!0})}}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] assets/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated",pathname:"/api/assets/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/assets/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/assets/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6334,a.ids=[6334],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},55883:(a,b,c)=>{c.r(b),c.d(b,{config:()=>p,default:()=>o,handler:()=>r});var d={};c.r(d),c.d(d,{default:()=>l});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(31421),j=c(48161),k=c(67461);async function l(a,b){try{if("GET"===a.method)return b.status(200).json({assets:(0,k.BH)()});if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,k.JU)(c),b.status(200).json({ok:!0,assets:(0,k.BH)()})}if("POST"===a.method){let{id:c,action:d,target:e="file"}=a.body;if(!c||!d)return b.status(400).json({error:"id and action required"});if("index"===d){let a=await (0,k.uc)(c);if(!a)return b.status(404).json({error:"asset not found"});return b.status(200).json({asset:a,assets:(0,k.BH)()})}if("open"===d){let a=(0,k.Jz)(c,e);if(!a)return b.status(404).json({error:"asset file not found"});return(function(a){let b=(0,j.platform)();return"darwin"===b?(0,i.spawn)("open",[a],{detached:!0,stdio:"ignore"}):"win32"===b?(0,i.spawn)("cmd",["/c","start","",a],{detached:!0,stdio:"ignore",windowsHide:!0}):(0,i.spawn)("xdg-open",[a],{detached:!0,stdio:"ignore"})})(a).unref(),b.status(200).json({ok:!0})}}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] assets/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var m=c(68970),n=c(50296);let o=(0,h.M)(d,"default"),p=(0,h.M)(d,"config"),q=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/assets/generated",pathname:"/api/assets/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function r(a,b,c){let d=await q.prepare(a,b,{srcPage:"/api/assets/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,m.getTracer)(),e=d.getActiveScopeSpan(),j=q.instrumentationOnRequestError.bind(q),k=async e=>q.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:q.isDev,page:"/api/assets/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(n.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:m.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(q.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=55883));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),c}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},87550:a=>{a.exports=require("better-sqlite3")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>t,default:()=>s,handler:()=>v});var d={};c.r(d),c.d(d,{default:()=>p});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j),l=c(67461);function m(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function n(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${m(a)}</w:t></w:r></w:p>`).join("")}async function o(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,m(a)).replace(/\{\{content\}\}/gu,n(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${m(a)}</w:t></w:r></w:p>${n(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function p(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let e=a.body,f=e.documentId?(0,l.v7)(e.documentId):null;if(e.documentId&&!f)return b.status(404).json({error:"Document not found"});let g=f?.title||e.title||"document",h=f?.editedMarkdown||f?.markdown||e.markdown||"",i=e.format||"markdown",j=f?.draft?.exportGate||e.exportGate;if(e.enforceGate&&j&&!j.passed)return b.status(422).json({error:"Export gate failed",issues:j.blockingIssues??[]});let k=g.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===i)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(h);if("docx"===i){let a=await o(g,h,e.wordTemplatePath);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:n}=await Promise.resolve().then(c.bind(c,83142)),p=(d=n.parse(h,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${m(g)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===i)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.html`)}`),b.status(200).send(p);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(p,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch{let a=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},87550:a=>{a.exports=require("better-sqlite3")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>t,default:()=>s,handler:()=>v});var d={};c.r(d),c.d(d,{default:()=>p});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j),l=c(67461);function m(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function n(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${m(a)}</w:t></w:r></w:p>`).join("")}async function o(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,m(a)).replace(/\{\{content\}\}/gu,n(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${m(a)}</w:t></w:r></w:p>${n(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function p(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let e=a.body,f=e.documentId?(0,l.v7)(e.documentId):null;if(e.documentId&&!f)return b.status(404).json({error:"Document not found"});let g=f?.title||e.title||"document",h=f?.editedMarkdown||f?.markdown||e.markdown||"",i=e.format||"markdown",j=g.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===i)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${j}.md`)}`),b.status(200).send(h);if("docx"===i){let a=await o(g,h,e.wordTemplatePath);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${j}.docx`)}`),b.status(200).send(a)}let{marked:k}=await Promise.resolve().then(c.bind(c,83142)),n=(d=k.parse(h,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${m(g)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===i)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${j}.html`)}`),b.status(200).send(n);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(n,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${j}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch{let a=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
|
|
2
2
|
stream
|
|
3
3
|
${b}
|
|
4
4
|
endstream`);j.push(f(`<< /Type /Page /Parent ${h} 0 R /MediaBox [0 0 595 842] /Resources << /Font << /F1 ${i} 0 R >> >> /Contents ${c} 0 R >>`))}e[g-1]=`<< /Type /Catalog /Pages ${h} 0 R >>`,e[h-1]=`<< /Type /Pages /Kids [${j.map(a=>`${a} 0 R`).join(" ")}] /Count ${j.length} >>`;let k="%PDF-1.4\n",l=[0];e.forEach((a,b)=>{l.push(Buffer.byteLength(k)),k+=`${b+1} 0 obj
|
|
@@ -11,4 +11,4 @@ ${l.slice(1).map(a=>`${String(a).padStart(10,"0")} 00000 n `).join("\n")}
|
|
|
11
11
|
trailer << /Root ${g} 0 R /Size ${e.length+1} >>
|
|
12
12
|
startxref
|
|
13
13
|
${m}
|
|
14
|
-
%%EOF`,Buffer.from(k,"binary")}(g,h);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${
|
|
14
|
+
%%EOF`,Buffer.from(k,"binary")}(g,h);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${j}.pdf`)}`),b.status(200).send(a)}}catch(a){console.error("[api] documents/export",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var q=c(68970),r=c(50296);let s=(0,h.M)(d,"default"),t=(0,h.M)(d,"config"),u=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/export",pathname:"/api/documents/export",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function v(a,b,c){let d=await u.prepare(a,b,{srcPage:"/api/documents/export"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,q.getTracer)(),e=d.getActiveScopeSpan(),j=u.instrumentationOnRequestError.bind(u),k=async e=>u.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:u.isDev,page:"/api/documents/export",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==r.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(r.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:q.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(u.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=89529));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445),j=c(67461);async function k(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f,sync:g=!1}=a.body;if(!c)return b.status(400).json({error:"templateId required"});if(g){let a=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});return b.status(200).json({draft:a})}let h=(0,j.YL)({templateId:c,requirement:d,maxEvidencePerChapter:e},f);b.status(202).json(h)}catch(a){console.error("[api] documents/generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6011,a.ids=[6011],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},28630:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73445),j=c(67461);async function k(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f,sync:g=!1}=a.body;if(!c)return b.status(400).json({error:"templateId required"});if(g){let a=await (0,i.OX)({templateId:c,requirement:d,maxEvidencePerChapter:e,projectRoot:f});return b.status(200).json({draft:a})}let h=(0,j.YL)({templateId:c,requirement:d,maxEvidencePerChapter:e},f);b.status(202).json(h)}catch(a){console.error("[api] documents/generate",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generate",pathname:"/api/documents/generate",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/generate"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/generate",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=28630));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8889,a.ids=[8889],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},38765:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});if("GET"===a.method){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}if("PUT"===a.method){let d=(0,i.a6)(c,a.body||{});if(!d)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:d})}if("DELETE"===a.method)return(0,i.QG)(c),b.status(200).json({ok:!0});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated/[id]",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated/[id]",pathname:"/api/documents/generated/[id]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated/[id]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated/[id]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8889,a.ids=[8889],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},38765:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});if("GET"===a.method){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}if("PUT"===a.method){let d=(0,i.a6)(c,a.body||{});if(!d)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:d})}if("DELETE"===a.method)return(0,i.QG)(c),b.status(200).json({ok:!0});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated/[id]",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated/[id]",pathname:"/api/documents/generated/[id]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated/[id]"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated/[id]",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=38765));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)()})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let e=(0,i.a6)(c,d);if(!e)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:e})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),
|
|
1
|
+
"use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)()})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let e=(0,i.a6)(c,d);if(!e)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:e})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=36583));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:"内置示例规范包:演示如何用事实字段、章节规则、文件角色、提示词角色和导出门禁共同约束一篇可交付攻略文档。",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:"
|
|
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:"warning",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 +1,97 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=1289,a.ids=[1289],a.modules={21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},52201:(a,b,c)=>{c.r(b),c.d(b,{config:()=>D,default:()=>C,handler:()=>F});var d={};c.r(d),c.d(d,{default:()=>z});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(29021),j=c(33873),k=c(21820),l=c(87550),m=c.n(l);let n=j.join(k.homedir(),".customize-agent"),o=j.join(n,"projects","registry.db"),p=j.join(n,"prompts.json");function q(a){return j.resolve(a)}function r(a){let b=q(a),c=q(j.join(k.homedir(),".customize-agent")),d=b.split(j.sep);return b!==j.resolve(j.join(k.homedir(),".customize-agent","demo-project"))&&(b===c||b.endsWith(`${j.sep}apps${j.sep}server`)||b.endsWith(`${j.sep}apps${j.sep}cli`)||d.includes(".customize-agent"))}function s(a){return i.existsSync(o)?new(m())(o,{readonly:a}):null}function t(a){let b=q(a);return"CUSTOMIZE.md"===j.basename(b)&&(function(){let a=new Set,b=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd());r(b)||a.add(b);let c=s(!0);if(!c)return a;try{for(let b of c.prepare("SELECT project_root FROM project_registry").all()){let c=q(String(b.project_root));r(c)||a.add(c)}}finally{c.close()}return a})().has(q(j.dirname(b)))}let u=[{id:"builtin:delta-fact-extraction",name:"内置|三角洲事实抽取提示词",content
|
|
1
|
+
"use strict";(()=>{var a={};a.id=1289,a.ids=[1289],a.modules={21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},52201:(a,b,c)=>{c.r(b),c.d(b,{config:()=>D,default:()=>C,handler:()=>F});var d={};c.r(d),c.d(d,{default:()=>z});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(29021),j=c(33873),k=c(21820),l=c(87550),m=c.n(l);let n=j.join(k.homedir(),".customize-agent"),o=j.join(n,"projects","registry.db"),p=j.join(n,"prompts.json");function q(a){return j.resolve(a)}function r(a){let b=q(a),c=q(j.join(k.homedir(),".customize-agent")),d=b.split(j.sep);return b!==j.resolve(j.join(k.homedir(),".customize-agent","demo-project"))&&(b===c||b.endsWith(`${j.sep}apps${j.sep}server`)||b.endsWith(`${j.sep}apps${j.sep}cli`)||d.includes(".customize-agent"))}function s(a){return i.existsSync(o)?new(m())(o,{readonly:a}):null}function t(a){let b=q(a);return"CUSTOMIZE.md"===j.basename(b)&&(function(){let a=new Set,b=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd());r(b)||a.add(b);let c=s(!0);if(!c)return a;try{for(let b of c.prepare("SELECT project_root FROM project_registry").all()){let c=q(String(b.project_root));r(c)||a.add(c)}}finally{c.close()}return a})().has(q(j.dirname(b)))}let u=[{id:"builtin:delta-fact-extraction",name:"内置|三角洲事实抽取提示词",content:`你是“结构化事实抽取专家”。请从知识库资料中抽取可追溯事实,并严格服务于文档规范包。
|
|
2
|
+
|
|
3
|
+
抽取范围:
|
|
4
|
+
1. 干员名称、定位、核心价值、技能特点、推荐指数、上手难度、推荐场景。
|
|
5
|
+
2. 队伍搭配、地图图纸、图片资源、表格字段、模板案例、样式规则、导出门禁。
|
|
6
|
+
3. 每条事实必须保留来源文件、文件角色、处理类型和置信度。
|
|
7
|
+
|
|
8
|
+
规则:
|
|
9
|
+
- 只抽取资料明确支持的内容,不能编造。
|
|
10
|
+
- 如果多个来源冲突,要保留冲突来源,不能擅自合并。
|
|
11
|
+
- 如果规范包字段指定 sourceRoleIds,优先从对应文件角色中抽取。
|
|
12
|
+
- 表格类事实要保留字段含义,不能只输出一句摘要。
|
|
13
|
+
|
|
14
|
+
输出建议:
|
|
15
|
+
- 按字段输出 key/value/sourceFile/roleId/processingType/confidence。
|
|
16
|
+
- 对缺失字段给出“缺失原因”和“建议补充资料”。`},{id:"builtin:delta-chapter-generation",name:"内置|三角洲章节生成提示词",content:`你是“可交付文档章节作者”。请基于结构化事实、资源证据和文档规范包生成章节。
|
|
17
|
+
|
|
18
|
+
章节写法:
|
|
19
|
+
1. 先写本章结论,再写依据,最后给操作建议。
|
|
20
|
+
2. 每章至少说明 2 类来源:事实文件、表格、文档附件、图片、地图图纸或模板案例。
|
|
21
|
+
3. 表格资源要转成可读 Markdown 表格;地图图纸要说明路线/点位/撤离或交战用途;图片要说明与结论的关系。
|
|
22
|
+
4. 章节要适合导出 DOCX/PDF:标题稳定、段落短、列表清晰、来源明确。
|
|
23
|
+
|
|
24
|
+
禁止:
|
|
25
|
+
- 不要硬插固定地图或图片。
|
|
26
|
+
- 不要把提示词全文写入正文。
|
|
27
|
+
- 不要把“资料未提供”当最终结论。
|
|
28
|
+
- 不要用没有证据的确定语气。`},{id:"builtin:delta-resource-evidence",name:"内置|三角洲资源证据使用提示词",content:`你是“资源证据编排专家”。请把不同文件类型转化成正文可用证据。
|
|
29
|
+
|
|
30
|
+
文件类型使用方式:
|
|
31
|
+
- 文本/Markdown:抽取规则、结论和注意事项。
|
|
32
|
+
- PDF/Word:抽取正式说明、附件依据和规范约束。
|
|
33
|
+
- CSV/XLS/XLSX:形成表格、排序、对比和推荐优先级。
|
|
34
|
+
- 图片:说明对象、视觉用途和章节关系。
|
|
35
|
+
- 地图图纸:说明区域、路线、点位、撤离/交战路径和队伍分工。
|
|
36
|
+
- 模板案例:学习结构、来源清单和表达方式,不能照抄无关内容。
|
|
37
|
+
- 导出门禁:只用于检查,不作为正文事实。
|
|
38
|
+
|
|
39
|
+
引用资源时必须写明:资源类型、来源文件、正文用途。`},{id:"builtin:delta-template-style",name:"内置|三角洲模板样式提示词",content:`你是“模板样式设计师”。请把生成结果整理成用户能学习、能复用、能导出的内置模板案例。
|
|
40
|
+
|
|
41
|
+
样式要求:
|
|
42
|
+
1. 开头有短导语:适用对象、使用场景、核心结论。
|
|
43
|
+
2. 每章采用“本章结论 / 证据依据 / 操作建议 / 资料来源”。
|
|
44
|
+
3. 重要建议使用表格、清单、引用块,不堆长段落。
|
|
45
|
+
4. 图片和地图必须有说明文字,不做装饰图。
|
|
46
|
+
5. 来源清单要区分规则文件、事实文件、表格、图纸、图片、附件和模板案例。
|
|
47
|
+
6. 明确体现文档规范包、文件角色、提示词角色如何共同工作。
|
|
48
|
+
|
|
49
|
+
导出要求:标题不跳级、表格语法正确、图片 alt 完整、正文无提示词全文。`},{id:"builtin:delta-cover-image-generation",name:"内置|三角洲封面图生成提示词",content:`你是“封面视觉提示词设计师”。请为三角洲行动热门干员攻略生成适合网站和文档封面的图片提示词。
|
|
50
|
+
|
|
51
|
+
画面要求:
|
|
52
|
+
- 主题:战术小队、热门干员、现代战场、科技感 UI。
|
|
53
|
+
- 构图:横版封面,中心主体清晰,留出标题空间。
|
|
54
|
+
- 风格:真实感、电影级光影、游戏攻略封面质感。
|
|
55
|
+
- 禁止:文字水印、Logo、乱码文字、血腥暴力、低清截图。
|
|
56
|
+
|
|
57
|
+
输出只给图片生成 prompt,不要把 prompt 写入正式正文。`},{id:"builtin:delta-review-optimization",name:"内置|三角洲 LLM 审查优化提示词",content:`你是“交付审查专家”。请审查生成文档是否满足规范包、文件角色、提示词角色和导出要求。
|
|
58
|
+
|
|
59
|
+
审查维度:
|
|
60
|
+
1. 事实是否有来源,来源角色是否匹配。
|
|
61
|
+
2. 章节是否覆盖规范包必填章节和必填事实。
|
|
62
|
+
3. 表格、图片、地图、PDF/Word、附件是否被正确使用。
|
|
63
|
+
4. 是否存在冲突事实、缺失事实、无证据结论。
|
|
64
|
+
5. 是否包含提示词全文、远程临时图片 URL、内部错误、占位语。
|
|
65
|
+
6. 是否适合导出 Markdown/HTML/DOCX/PDF。
|
|
66
|
+
|
|
67
|
+
处理方式:
|
|
68
|
+
- 可修复的问题直接优化正文。
|
|
69
|
+
- 不能确定的问题写成“需要复核”,不要阻断生成。
|
|
70
|
+
- 输出优化后的 Markdown,并保留来源和复核提示。`},{id:"builtin:delta-validation",name:"内置|三角洲校验提示词",content:`你是“规范包校验员”。请按文档规范包检查生成文档。
|
|
71
|
+
|
|
72
|
+
检查项:
|
|
73
|
+
- 必填事实:攻略目标、干员名称、定位、核心价值、推荐指数、队伍搭配、地图图纸、模板样式规则、导出门禁。
|
|
74
|
+
- 必填章节:目标、干员速览、队伍搭配、推荐优先级、地图路线、模板样式和导出检查。
|
|
75
|
+
- 必填角色:事实文件、表格文件、图纸文件、模板案例、样式参考、导出门禁、模板样式提示词。
|
|
76
|
+
- 禁止内容:提示词全文、临时生成 URL、内部错误、未处理占位语。
|
|
77
|
+
|
|
78
|
+
输出 error/warning/info,并给出原因和修复建议。warning 不阻断导出,但必须展示给用户。`},{id:"builtin:delta-export-gate",name:"内置|三角洲导出门禁提示词",content:`你是“导出门禁审核员”。请从 Markdown、HTML、DOCX、PDF 四种格式检查文档。
|
|
79
|
+
|
|
80
|
+
门禁维度:
|
|
81
|
+
1. 结构完整:封面、目录、章节、表格、图片/地图、来源和复核提示。
|
|
82
|
+
2. 事实完整:必填事实有来源,冲突事实有提示。
|
|
83
|
+
3. 资源完整:图片路径有效,地图图纸来自知识库,表格语法正确。
|
|
84
|
+
4. 格式完整:标题层级稳定,列表缩进正确,图片 alt 文本完整。
|
|
85
|
+
5. 安全完整:无提示词全文、无内部错误、无远程临时生成 URL。
|
|
86
|
+
|
|
87
|
+
注意:门禁用于提示和复核,不应直接禁止用户导出。`},{id:"builtin:delta-formatting",name:"内置|三角洲格式化提示词",content:`你是“正式文档排版编辑”。请整理生成内容,使其适合网页预览和多格式导出。
|
|
88
|
+
|
|
89
|
+
排版要求:
|
|
90
|
+
- H1 只出现一次;H2 对应章节;H3 用于本章结论、证据依据、操作建议。
|
|
91
|
+
- 表格使用标准 Markdown 表格,列数控制合理。
|
|
92
|
+
- 图片和地图使用 Markdown 图片语法,并补充说明。
|
|
93
|
+
- 来源清单统一放在文末,按文件角色分类。
|
|
94
|
+
- 复核提示独立成节,不混入正文结论。
|
|
95
|
+
- 删除重复标题、空章节、空列表和无意义占位。
|
|
96
|
+
|
|
97
|
+
不得改写事实来源,不得删除 warning 复核原因。`}],v=new Set(u.map(a=>a.id));function w(a){return`file:${q(a)}`}function x(){try{let a=JSON.parse(i.readFileSync(p,"utf-8"));return{selectedIds:Array.isArray(a.selectedIds)?a.selectedIds.map(String).filter(a=>!v.has(a)):[],customPrompts:Array.isArray(a.customPrompts)?a.customPrompts:[]}}catch{return{selectedIds:[],customPrompts:[]}}}function y(a){i.mkdirSync(j.dirname(p),{recursive:!0});let b={...a,selectedIds:a.selectedIds.filter(a=>!v.has(a))};i.writeFileSync(p,JSON.stringify(b,null,2),"utf-8")}function z(a,b){try{if("GET"===a.method){let a=[],c=[],d=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd()),e=x(),f=w(j.join(d,"CUSTOMIZE.md")),g=i.existsSync(p)&&e.selectedIds.length>0?e.selectedIds:[f],h=s(!0);if(h)try{for(let b of h.prepare("SELECT project_id, project_root, project_name FROM project_registry ORDER BY last_opened_at DESC").all()){let e=q(String(b.project_root));if(r(e)){c.push(String(b.project_id));continue}let f=j.join(e,"CUSTOMIZE.md"),h=i.existsSync(f),k=w(f);a.push({id:k,projectId:String(b.project_id),projectRoot:e,projectName:String(b.project_name||j.basename(e)||e),customizePath:f,content:h?i.readFileSync(f,"utf-8"):"",mtime:h?i.statSync(f).mtime.toISOString():"",hasFile:h,isCurrent:e===d,selected:g.includes(k),source:e===d?"current":"project"})}}finally{h.close()}let k=j.join(d,"CUSTOMIZE.md");if(!r(d)&&!a.some(a=>a.projectRoot===d)){let b=i.existsSync(k);a.unshift({id:f,projectId:"current",projectRoot:d,projectName:j.basename(d)||d,customizePath:k,content:b?i.readFileSync(k,"utf-8"):"",mtime:b?i.statSync(k).mtime.toISOString():"",hasFile:b,isCurrent:!0,selected:g.includes(f),source:"current"})}for(let b of u)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:"",hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});for(let b of e.customPrompts)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:b.updatedAt,hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});return!function(a){if(0===a.length)return;let b=s(!1);if(b)try{let c=b.prepare("DELETE FROM project_registry WHERE project_id = ?");for(let b of a)c.run(b)}catch(a){}finally{b.close()}}(c),b.status(200).json(a)}if("POST"===a.method){let{action:c,projectRoot:d,content:e,name:f,selectedIds:g}=a.body,h=x();if("createCustom"===c){let a=new Date().toISOString(),c=`custom:${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;return h.customPrompts.push({id:c,name:String(f||"自定义提示词"),content:"string"==typeof e?e:"",createdAt:a,updatedAt:a}),y(h),b.status(200).json({success:!0,id:c})}if("select"===c)return h.selectedIds=Array.isArray(g)?g.map(String).filter(a=>!v.has(a)):[],y(h),b.status(200).json({success:!0});let k=q(String(d||""));if(!k||r(k)||!i.existsSync(k))return b.status(403).json({error:"Invalid project root"});let l=j.join(k,"CUSTOMIZE.md");if("create"===c)return i.existsSync(l)||i.writeFileSync(l,"string"==typeof e?e:"","utf-8"),h.selectedIds=Array.from(new Set([...h.selectedIds,w(l)])),y(h),b.status(200).json({success:!0,customizePath:l,mtime:i.statSync(l).mtime.toISOString()});return b.status(400).json({error:"Invalid action"})}if("PUT"===a.method){let{filePath:c,content:d,name:e}=a.body;if(!c||"string"!=typeof d)return b.status(400).json({error:"filePath and content required"});let f=String(c);if(f.startsWith("custom:")){let a=x(),c=a.customPrompts.find(a=>a.id===f);if(!c)return b.status(404).json({error:"Prompt not found"});return c.content=d,"string"==typeof e&&e.trim()&&(c.name=e.trim()),c.updatedAt=new Date().toISOString(),y(a),b.status(200).json({success:!0,mtime:c.updatedAt})}let g=q(f);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});let h=j.dirname(g);if(!i.existsSync(h))return b.status(404).json({error:"Project directory not found"});return i.writeFileSync(g,d,"utf-8"),b.status(200).json({success:!0,mtime:i.statSync(g).mtime.toISOString()})}if("DELETE"===a.method){let{projectId:c,filePath:d}=a.body;if(!d)return b.status(400).json({error:"filePath required"});let e=String(d),f=x();if(e.startsWith("custom:"))return f.customPrompts=f.customPrompts.filter(a=>a.id!==e),f.selectedIds=f.selectedIds.filter(a=>a!==e),y(f),b.status(200).json({success:!0});let g=q(e);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});if(i.existsSync(g)&&i.unlinkSync(g),f.selectedIds=f.selectedIds.filter(a=>a!==w(g)),y(f),c&&"current"!==c){let a=s(!1);try{a?.prepare("DELETE FROM project_registry WHERE project_id = ?").run(String(c))}finally{a?.close()}}return b.status(200).json({success:!0})}b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] prompt",a),b.status(500).json({error:"Internal server error"})}}var A=c(68970),B=c(50296);let C=(0,h.M)(d,"default"),D=(0,h.M)(d,"config"),E=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/prompt",pathname:"/api/prompt",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function F(a,b,c){let d=await E.prepare(a,b,{srcPage:"/api/prompt"});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,A.getTracer)(),e=d.getActiveScopeSpan(),j=E.instrumentationOnRequestError.bind(E),k=async e=>E.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:E.isDev,page:"/api/prompt",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")!==B.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(B.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:A.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(E.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=52201));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/576-fd55b302cb0c9a48.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/232-813af4932a145fdc.js" defer=""></script><script src="/_next/static/chunks/292-f0a2c92861c304e6.js" defer=""></script><script src="/_next/static/chunks/951-8ecf8af33ab36369.js" defer=""></script><script src="/_next/static/chunks/858-5e6982e2b239d4b7.js" defer=""></script><script src="/_next/static/chunks/617-68a9e848c380f9c3.js" defer=""></script><script src="/_next/static/chunks/pages/documents-c1a01ae631b42488.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>总览</span></div></a><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span>知识库</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/documents"><div class="sidebarItem sidebarItemActive"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>角色配置</span></div></a><a href="/document-specs"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span>学习说明</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span>模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span>提示词管理</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div class="space-y-6 animateFadeIn"><div class="ant-card ant-card-bordered cardGlass css-1pi45l5 css-var-_R_16_"><div class="ant-card-body" style="padding:24px"><div class="flex items-center justify-between gap-4 flex-wrap"><div><h1 class="pageTitle mb-1">生成编辑</h1><p class="pageDesc mb-0">基于模板库和本地知识库生成、编辑、校验业务文档</p></div><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid ant-btn-lg"><span class="ant-btn-icon"><span role="img" aria-label="plus" class="anticon anticon-plus"><svg viewBox="64 64 896 896" focusable="false" data-icon="plus" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"></path><path d="M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"></path></svg></span></span><span>新建模板</span></button></div></div></div><div class="ant-row ant-row-top css-1pi45l5 css-var-_R_16_" style="margin-inline:-8px;row-gap:16px"><div style="padding-inline:8px" class="ant-col ant-col-xs-24 ant-col-lg-8 css-1pi45l5 css-var-_R_16_"><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">模板库</div></div></div><div class="ant-card-body"><div class="ant-list ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无数据</div></div></div></div></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small mt-4 css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">草稿历史</div></div></div><div class="ant-card-body"><div class="ant-list ant-list-sm ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无数据</div></div></div></div></div></div></div></div></div><div style="padding-inline:8px" class="ant-col ant-col-xs-24 ant-col-lg-16 css-1pi45l5 css-var-_R_16_"><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">模板工作流</div></div></div><div class="ant-card-body"><div class="ant-space css-1pi45l5 ant-space-vertical ant-space-gap-row-middle ant-space-gap-col-middle w-full css-var-_R_16_"><div class="ant-space-item"><div><span class="block mb-1">模板</span><div class="ant-select ant-select-outlined w-full css-var-_R_16_ ant-select-css-var css-1pi45l5 ant-select-single ant-select-show-arrow"><div class="ant-select-content ant-select-content-has-value" title="construction-organization-design">construction-organization-design<input id="_R_4islqf6_" type="text" readOnly="" autoComplete="new-password" class="ant-select-input" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-autocomplete="list" value=""/></div><div class="ant-select-suffix"><span role="img" aria-label="down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></div></div></div></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid ant-btn-lg ant-btn-block" disabled=""><span class="ant-btn-icon"><span role="img" aria-label="thunderbolt" class="anticon anticon-thunderbolt"><svg viewBox="64 64 896 896" focusable="false" data-icon="thunderbolt" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"></path></svg></span></span><span>开始生成</span></button></div></div></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">生成 / 编辑器</div><div class="ant-card-extra"></div></div></div><div class="ant-card-body"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">请选择模板并生成草稿</div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/documents","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/576-fd55b302cb0c9a48.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/232-813af4932a145fdc.js" defer=""></script><script src="/_next/static/chunks/292-f0a2c92861c304e6.js" defer=""></script><script src="/_next/static/chunks/951-8ecf8af33ab36369.js" defer=""></script><script src="/_next/static/chunks/858-5e6982e2b239d4b7.js" defer=""></script><script src="/_next/static/chunks/617-68a9e848c380f9c3.js" defer=""></script><script src="/_next/static/chunks/pages/documents-cf8bb78fbcc70bb1.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>总览</span></div></a><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span>知识库</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/documents"><div class="sidebarItem sidebarItemActive"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>角色配置</span></div></a><a href="/document-specs"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span>学习说明</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span>模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span>提示词管理</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div class="space-y-6 animateFadeIn"><div class="ant-card ant-card-bordered cardGlass css-1pi45l5 css-var-_R_16_"><div class="ant-card-body" style="padding:24px"><div class="flex items-center justify-between gap-4 flex-wrap"><div><h1 class="pageTitle mb-1">生成编辑</h1><p class="pageDesc mb-0">基于模板库和本地知识库生成、编辑、校验业务文档</p></div><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid ant-btn-lg"><span class="ant-btn-icon"><span role="img" aria-label="plus" class="anticon anticon-plus"><svg viewBox="64 64 896 896" focusable="false" data-icon="plus" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"></path><path d="M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"></path></svg></span></span><span>新建模板</span></button></div></div></div><div class="ant-row ant-row-top css-1pi45l5 css-var-_R_16_" style="margin-inline:-8px;row-gap:16px"><div style="padding-inline:8px" class="ant-col ant-col-xs-24 ant-col-lg-8 css-1pi45l5 css-var-_R_16_"><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">模板库</div></div></div><div class="ant-card-body"><div class="ant-list ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无数据</div></div></div></div></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small mt-4 css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">草稿历史</div></div></div><div class="ant-card-body"><div class="ant-list ant-list-sm ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无数据</div></div></div></div></div></div></div></div></div><div style="padding-inline:8px" class="ant-col ant-col-xs-24 ant-col-lg-16 css-1pi45l5 css-var-_R_16_"><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">模板工作流</div></div></div><div class="ant-card-body"><div class="ant-space css-1pi45l5 ant-space-vertical ant-space-gap-row-middle ant-space-gap-col-middle w-full css-var-_R_16_"><div class="ant-space-item"><div><span class="block mb-1">模板</span><div class="ant-select ant-select-outlined w-full css-var-_R_16_ ant-select-css-var css-1pi45l5 ant-select-single ant-select-show-arrow"><div class="ant-select-content ant-select-content-has-value" title="construction-organization-design">construction-organization-design<input id="_R_4islqf6_" type="text" readOnly="" autoComplete="new-password" class="ant-select-input" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-autocomplete="list" value=""/></div><div class="ant-select-suffix"><span role="img" aria-label="down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></div></div></div></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid ant-btn-lg ant-btn-block" disabled=""><span class="ant-btn-icon"><span role="img" aria-label="thunderbolt" class="anticon anticon-thunderbolt"><svg viewBox="64 64 896 896" focusable="false" data-icon="thunderbolt" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"></path></svg></span></span><span>开始生成</span></button></div></div></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-head"><div class="ant-card-head-wrapper"><div class="ant-card-head-title">生成 / 编辑器</div><div class="ant-card-extra"></div></div></div><div class="ant-card-body"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">请选择模板并生成草稿</div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/documents","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_app": "pages/_app.js",
|
|
3
|
+
"/_error": "pages/_error.js",
|
|
3
4
|
"/api/assets/generated": "pages/api/assets/generated.js",
|
|
4
|
-
"/api/config/models": "pages/api/config/models.js",
|
|
5
5
|
"/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
|
|
6
6
|
"/api/config/embedding/healthCheck": "pages/api/config/embedding/healthCheck.js",
|
|
7
|
-
"/api/
|
|
7
|
+
"/api/config/models": "pages/api/config/models.js",
|
|
8
8
|
"/api/context": "pages/api/context.js",
|
|
9
9
|
"/api/documents/chapter/regenerate": "pages/api/documents/chapter/regenerate.js",
|
|
10
|
+
"/api/documents/export": "pages/api/documents/export.js",
|
|
10
11
|
"/api/documents/drafts": "pages/api/documents/drafts.js",
|
|
11
|
-
"/api/documents/generate": "pages/api/documents/generate.js",
|
|
12
|
-
"/api/documents/specs": "pages/api/documents/specs.js",
|
|
13
12
|
"/api/documents/generated/[id]": "pages/api/documents/generated/[id].js",
|
|
14
|
-
"/api/documents/roles": "pages/api/documents/roles.js",
|
|
15
13
|
"/api/documents/generated": "pages/api/documents/generated.js",
|
|
16
14
|
"/api/documents/templates": "pages/api/documents/templates.js",
|
|
15
|
+
"/api/documents/roles": "pages/api/documents/roles.js",
|
|
16
|
+
"/api/documents/specs": "pages/api/documents/specs.js",
|
|
17
17
|
"/api/health": "pages/api/health.js",
|
|
18
|
-
"/api/kb/features": "pages/api/kb/features.js",
|
|
19
|
-
"/api/kb/duplicates": "pages/api/kb/duplicates.js",
|
|
20
18
|
"/api/kb/categories": "pages/api/kb/categories.js",
|
|
21
19
|
"/api/kb/files/detail": "pages/api/kb/files/detail.js",
|
|
22
|
-
"/api/kb/
|
|
20
|
+
"/api/kb/features": "pages/api/kb/features.js",
|
|
21
|
+
"/api/kb/duplicates": "pages/api/kb/duplicates.js",
|
|
23
22
|
"/api/kb/files": "pages/api/kb/files.js",
|
|
24
|
-
"/api/kb/operations": "pages/api/kb/operations.js",
|
|
25
|
-
"/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
|
|
26
23
|
"/api/kb/files/open": "pages/api/kb/files/open.js",
|
|
27
|
-
"/api/kb/reindex": "pages/api/kb/reindex.js",
|
|
28
|
-
"/api/kb/
|
|
24
|
+
"/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
|
|
25
|
+
"/api/kb/ignore": "pages/api/kb/ignore.js",
|
|
29
26
|
"/api/kb/search": "pages/api/kb/search.js",
|
|
30
27
|
"/api/kb/stats": "pages/api/kb/stats.js",
|
|
31
|
-
"/
|
|
28
|
+
"/api/documents/generate": "pages/api/documents/generate.js",
|
|
29
|
+
"/api/kb/operations": "pages/api/kb/operations.js",
|
|
30
|
+
"/api/kb/tags": "pages/api/kb/tags.js",
|
|
32
31
|
"/api/kb/upload/progress": "pages/api/kb/upload/progress.js",
|
|
33
|
-
"/
|
|
32
|
+
"/api/kb/reindex": "pages/api/kb/reindex.js",
|
|
34
33
|
"/api/prompt": "pages/api/prompt.js",
|
|
35
|
-
"/context/short-term": "pages/context/short-term.html",
|
|
36
34
|
"/api/system/stats": "pages/api/system/stats.js",
|
|
37
35
|
"/context/long-term": "pages/context/long-term.html",
|
|
36
|
+
"/context/short-term": "pages/context/short-term.html",
|
|
37
|
+
"/asset-library": "pages/asset-library.html",
|
|
38
38
|
"/document-roles": "pages/document-roles.html",
|
|
39
|
-
"/documents": "pages/documents.html",
|
|
40
|
-
"/guide": "pages/guide.html",
|
|
41
39
|
"/document-specs": "pages/document-specs.html",
|
|
40
|
+
"/guide": "pages/guide.html",
|
|
41
|
+
"/documents": "pages/documents.html",
|
|
42
42
|
"/": "pages/index.html",
|
|
43
43
|
"/knowledge/file-detail": "pages/knowledge/file-detail.html",
|
|
44
|
-
"/knowledge": "pages/knowledge.html",
|
|
45
44
|
"/knowledge/files": "pages/knowledge/files.html",
|
|
45
|
+
"/knowledge": "pages/knowledge.html",
|
|
46
46
|
"/knowledge/manage": "pages/knowledge/manage.html",
|
|
47
47
|
"/knowledge/search": "pages/knowledge/search.html",
|
|
48
|
-
"/models": "pages/models.html",
|
|
49
|
-
"/api/config/embedding": "pages/api/config/embedding.js",
|
|
50
|
-
"/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
|
|
51
48
|
"/overview": "pages/overview.html",
|
|
52
|
-
"/
|
|
53
|
-
"/api/config/providers": "pages/api/config/providers.js",
|
|
49
|
+
"/models": "pages/models.html",
|
|
54
50
|
"/prompt": "pages/prompt.html",
|
|
55
51
|
"/settings": "pages/settings.html",
|
|
52
|
+
"/api/config/healthCheck": "pages/api/config/healthCheck.js",
|
|
53
|
+
"/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
|
|
54
|
+
"/api/config/embedding": "pages/api/config/embedding.js",
|
|
55
|
+
"/api/config/providers": "pages/api/config/providers.js",
|
|
56
56
|
"/api/kb/files/preview-pdf-page": "pages/api/kb/files/preview-pdf-page.js",
|
|
57
57
|
"/api/kb/upload": "pages/api/kb/upload.js",
|
|
58
58
|
"/_document": "pages/_document.js",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{6578:(e,t,n)=>{"use strict";async function s(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function o(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return s("/api/kb/stats".concat(t))}async function i(e){var t,n;let o=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&o.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&o.set("category",e.category),(null==e?void 0:e.page)&&o.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&o.set("limit",String(null!=(n=e.limit)?n:50)),s("/api/kb/files?".concat(o))}async function a(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),s("/api/kb/files/detail?".concat(n))}async function r(e,t){return s("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function c(e,t,n){return s("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let s=new FileReader;s.onload=()=>{let e=s.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},s.onerror=n,s.readAsDataURL(e)})}async function d(e,t,n){return s("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return s("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),s("/api/kb/operations?".concat(t))}async function m(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),s("/api/kb/operations?".concat(t),{method:"DELETE"})}async function h(e,t){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function y(e,t){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return s("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return s("/api/kb/features")}async function j(e,t){var n,o,i,a,r;let c=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&c.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&c.set("category",t.category),(null==t?void 0:t.limit)&&c.set("limit",String(null!=(r=t.limit)?r:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&c.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(o=t.weights)?void 0:o.vector)!=null&&c.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&c.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(a=t.weights)?void 0:a.hybridBonus)!=null&&c.set("hybridBonus",String(t.weights.hybridBonus)),s("/api/kb/search?".concat(c))}async function w(){return s("/api/prompt")}async function v(e){return s("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function A(e){return s("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return s("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function S(e){return s("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return s("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function I(){return s("/api/documents/specs")}async function C(e){return s("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function T(e){return s("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function E(){return s("/api/documents/templates")}async function R(e){return s("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function P(e){return s("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function N(e){return s("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function O(e){return s("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function _(){return s("/api/documents/generated")}async function L(e){return s("/api/documents/generated/".concat(encodeURIComponent(e)))}async function D(e,t){return s("/api/documents/generated/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function U(e){return s("/api/documents/generated/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function J(){return s("/api/assets/generated")}async function M(e){return s("/api/assets/generated?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function F(e){return s("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"index"})})}async function z(e,t){return s("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"open",target:t})})}async function q(e){return s("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function G(e,t){return s("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function H(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function W(){return s("/api/config/providers")}async function K(e,t){return s("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function Q(e){return s("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function V(){return s("/api/config/models")}async function X(e){return s("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function B(){return s("/api/config/embedding")}async function Z(e){return s("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function $(){return s("/api/config/embedding/healthCheck",{method:"POST"})}async function Y(e){return s("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function ee(){return s("/api/system/stats")}async function et(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return s("/api/context".concat(n))}async function en(e){return s("/api/context?type=".concat(e,"&stats=1"))}async function es(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function eo(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function ei(e){return s("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function ea(e,t){return s("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function er(e){return s("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>G,Bh:()=>er,Dl:()=>E,E:()=>eo,EK:()=>C,ER:()=>T,FC:()=>ee,FV:()=>b,H1:()=>g,H7:()=>m,HC:()=>r,HT:()=>i,II:()=>B,JU:()=>M,NR:()=>S,OX:()=>O,PH:()=>es,QG:()=>U,QT:()=>u,Qx:()=>p,R1:()=>q,SJ:()=>y,UE:()=>H,VW:()=>x,W2:()=>j,X8:()=>f,Z3:()=>W,_m:()=>K,a6:()=>D,aP:()=>X,bV:()=>N,bZ:()=>Y,c1:()=>d,cQ:()=>_,dd:()=>Z,dg:()=>A,dw:()=>k,dx:()=>w,f$:()=>J,h0:()=>P,h1:()=>Q,hc:()=>o,hn:()=>et,l2:()=>R,lv:()=>v,mx:()=>I,oS:()=>z,p:()=>en,tn:()=>c,u6:()=>$,uc:()=>F,v7:()=>L,xC:()=>a,xq:()=>h,xw:()=>ei,zo:()=>ea,zr:()=>V})},16403:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return n(19562)}])},19562:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>V});var s=n(65321),o=n(97109),i=n(7576),a=n(35292),r=n(17807),c=n(63455),l=n(68787),d=n(85114),u=n(2256),p=n(38770),m=n(38332),h=n(84253),y=n(26171),f=n(33442),g=n(11702),x=n(57271),j=n(9730),w=n(58569),v=n(25258),A=n(26631),b=n(23216),S=n(26619),k=n(8263),I=n(16285),C=n(8579),T=n(75548),E=n(7851),R=n(84742),P=n(29071),N=n(63552),O=n(76830),_=n(83914),L=n(58209),D=n(54746),U=n(93051),J=n(99650),M=n(67547),F=n(99811),z=n(6578),q=n(13014);let{TextArea:G}=i.A,{Paragraph:H,Text:W}=a.A,K=null;function Q(){null==K||K.listeners.forEach(e=>e())}function V(){var e,t,n;let a=(0,q.Vr)(),{message:V}=r.A.useApp(),[X]=c.A.useForm(),[B,Z]=(0,o.useState)([]),[$,Y]=(0,o.useState)("construction-organization-design"),[ee,et]=(0,o.useState)([]),[en,es]=(0,o.useState)([]),[eo,ei]=(0,o.useState)([]),[ea,er]=(0,o.useState)(!1),[ec,el]=(0,o.useState)(null),[ed,eu]=(0,o.useState)(""),[ep,em]=(0,o.useState)([]),[eh,ey]=(0,o.useState)(null),[ef,eg]=(0,o.useState)(!1),[ex,ej]=(0,o.useState)(null),[ew,ev]=(0,o.useState)(!1),[eA,eb]=(0,o.useState)([]),[eS,ek]=(0,o.useState)(null),eI=async()=>{try{em((await (0,z.cQ)()).documents)}catch(e){em([])}};(0,o.useEffect)(()=>{let e=()=>{K&&(eb(K.flowSteps),ek(K.activeFlowKey),er(K.loading),K.draft&&el(K.draft),void 0!==K.content&&eu(K.content))};return null==K||K.listeners.add(e),e(),()=>{null==K||K.listeners.delete(e)}},[]),(0,o.useEffect)(()=>{(0,z.Dl)().then(e=>{var t,n;Z(e.templates),Y(null!=(n=null==(t=e.templates[0])?void 0:t.id)?n:"construction-organization-design")}).catch(()=>V.error(a("common.error"))),(0,z.lv)().then(e=>{et(e.roles),es(e.configs)}).catch(()=>{et([]),es([])}),(0,z.mx)().then(e=>ei(e.specs)).catch(()=>ei([])),eI()},[V,a]);let eC=(0,o.useMemo)(()=>B.find(e=>e.id===$),[B,$]),eT=en.map(e=>({label:e.name,value:e.id})),eE=eo.map(e=>({label:e.name,value:e.id})),eR=Math.max(0,eA.findIndex(e=>e.key===eS)),eP=e=>e.map((e,t)=>({key:"sub-".concat(t),title:e,status:"wait"})),eN=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eC,t=eo.find(t=>t.id===(null==e?void 0:e.documentSpecId)),n=en.find(t=>t.id===(null==e?void 0:e.projectRoleConfigId)),o=((null==n?void 0:n.fileRoles)||[]).map(e=>{var t;return(null==(t=ee.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId}),i=((null==n?void 0:n.promptRoles)||[]).map(e=>{var t;return(null==(t=ee.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId}),r=(null==t?void 0:t.factFields.map(e=>e.name))||(null==e?void 0:e.chapters.flatMap(e=>e.requiredFacts))||[],c=(null==e?void 0:e.chapters.map(e=>e.title))||[],l=i.some(e=>/封面|图片|资源|cover|image/iu.test(e));return[{key:"prepare",title:a("documents.flowPrepare"),description:"读取“".concat((null==e?void 0:e.name)||"当前模板","”并创建后台生成任务"),status:"process",icon:(0,s.jsx)(A.A,{}),subSteps:eP(["读取模板参数",(null==e?void 0:e.documentSpecId)?"加载规范包:".concat((null==t?void 0:t.name)||e.documentSpecId):"未绑定规范包,使用模板章节要求","创建后台生成任务"])},{key:"role_binding",title:"动态角色配置绑定",description:"绑定 ".concat(o.length," 个文件角色、").concat(i.length," 个提示词角色"),status:"wait",icon:(0,s.jsx)(b.A,{}),subSteps:eP([...o.length?o.map(e=>"文件角色:".concat(e)):["没有文件角色,使用模板绑定文件"],...i.length?i.map(e=>"提示词角色:".concat(e)):["没有提示词角色,使用默认生成策略"]].slice(0,10))},{key:"knowledge_retrieval",title:"知识库证据检索",description:"按 ".concat(c.length," 个章节检索文本、文档、表格、图片、图纸和附件"),status:"wait",icon:(0,s.jsx)(S.A,{}),subSteps:eP(c.length?c.slice(0,10).map(e=>"检索章节:".concat(e)):["按模板标题检索证据"])},{key:"file_understanding",title:"多类型文件理解",description:"按文件角色处理文本、PDF/Word、表格、图片、图纸和附件",status:"wait",icon:(0,s.jsx)(k.A,{}),subSteps:eP(["识别文件类型和角色","构建结构化资源证据包","必要时调用多模态文件理解"])},{key:"fact_extraction",title:"动态 schema 事实抽取",description:"按 ".concat(r.length," 个规范/章节事实字段抽取并检测冲突"),status:"wait",icon:(0,s.jsx)(I.A,{}),subSteps:eP(r.length?r.slice(0,10).map(e=>"抽取事实:".concat(e)):["抽取模板要求的事实","合并来源和角色","检测事实冲突"])},{key:"chapter_generation",title:"章节生成",description:"按 ".concat(c.length," 个模板章节逐章生成"),status:"wait",icon:(0,s.jsx)(C.A,{}),subSteps:eP(c.length?c.slice(0,10).map(e=>"生成:".concat(e)):["构造章节提示词","等待 LLM 生成","整理章节证据"])},...l?[{key:"asset_generation",title:"生成资源处理",description:"根据资源/图片提示词生成或登记本地资源",status:"wait",icon:(0,s.jsx)(T.A,{}),subSteps:eP(["生成资源提示词","保存到 generatedDocuments/assets","登记资源元数据"])}]:[],{key:"validation",title:"规范包与门禁校验",description:t?"执行 ".concat(t.gateRules.length," 条门禁规则"):"执行模板基础校验",status:"wait",icon:(0,s.jsx)(E.A,{}),subSteps:eP([...(null==t?void 0:t.factFields.filter(e=>e.required).map(e=>"必填事实:".concat(e.name)))||[],...(null==t?void 0:t.gateRules.map(e=>"门禁:".concat(e.name)))||["检查章节证据","检查缺失项","检查导出门禁"]].slice(0,10))},{key:"formatting",title:a("documents.flowFormatting"),description:"整理标题、表格、图片、附件引用和正式 Markdown",status:"wait",icon:(0,s.jsx)(R.A,{}),subSteps:eP(["整理标题层级","整理多类型资源引用","生成正式 Markdown"])},{key:"llm_review",title:"LLM 审查优化",description:"再次使用动态 schema、角色和结构化证据审查优化初稿",status:"wait",icon:(0,s.jsx)(P.A,{}),subSteps:eP(["构造审查提示词","检查事实来源和冲突","回填优化后的 Markdown"])},{key:"export_ready",title:"导出就绪",description:"确认 Markdown/HTML/DOCX/PDF 可导出",status:"wait",icon:(0,s.jsx)(N.A,{}),subSteps:eP(["生成导出检查清单","确认阻断项","准备导出格式"])},{key:"done",title:a("documents.flowDone"),description:a("documents.flowDoneDesc"),status:"wait",icon:(0,s.jsx)(O.A,{}),subSteps:eP(["展示生成结果","允许编辑正文","允许导出文件"])}]},eO=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ea;(null==K?void 0:K.loading)&&(K.flowSteps=e,K.activeFlowKey=t,K.loading=n,Q())},e_=(e,t)=>{if("wait"===t)return e.subSteps.map(e=>({...e,status:"wait"}));if("finish"===t)return e.subSteps.map(e=>({...e,status:"finish"}));if("error"===t)return e.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}));let n=e.subSteps.findIndex(e=>"wait"===e.status);return e.subSteps.map((e,t)=>t<n||-1===n?{...e,status:"finish"}:t===n?{...e,status:"process"}:e)},eL=(e,t,n)=>{ek(e),eb(s=>{let o=s.map(s=>s.key===e?{...s,status:t,description:n||s.description,subSteps:e_(s,t)}:s);return eO(o,e),o})};(0,o.useEffect)(()=>{if(!ea||!eS)return;let e=window.setInterval(()=>{eb(e=>{let t=e.map(e=>{if(e.key!==eS||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),n=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<n?{...e,status:"finish"}:t===n?{...e,status:"process"}:{...e,status:"wait"})}});return eO(t,eS),t})},1400);return()=>window.clearInterval(e)},[eS,ea]);let eD=e=>{eb(t=>{let n=t.findIndex(t=>t.key===e),s=t.map((e,t)=>t<n&&"error"!==e.status?{...e,status:"finish",subSteps:e_(e,"finish")}:e);return eO(s,e),s})},eU=e=>{X.setFieldsValue(null!=e?e:{id:"custom-template-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,documentSpecId:void 0,chapters:[]}),ev(!0)},eJ=async()=>{try{let e=await X.validateFields(),t=await (0,z.l2)(e);Z(t.templates),Y(t.template.id),ev(!1),await eI(),V.success(a("common.success"))}catch(e){e instanceof Error&&V.error(e.message)}},eM=async e=>{try{let t=await (0,z.bV)(e);Z(t.templates),Y(t.template.id),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eF=async e=>{try{var t,n;let s=await (0,z.h0)(e);Z(s.templates),Y(null!=(n=null==(t=s.templates[0])?void 0:t.id)?n:""),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},ez=async e=>{try{await (0,z.QG)(e),eh===e&&(ey(null),el(null),eu("")),await eI(),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eq=async e=>{let t=[{key:"chapter_generation",message:"后台任务已创建,正在轮询等待 LLM 章节生成完成…"},{key:"asset_generation",message:"正在轮询等待封面和生成资源写入本地记录…"},{key:"validation",message:"正在轮询等待校验、导出门禁和格式化完成…"},{key:"llm_review",message:"正在轮询等待 LLM 审查优化完成…"}],n=0;for(;;){let{document:s}=await (0,z.v7)(e);if(("completed"===s.status||"warning"===s.status)&&s.draft)return s;if("failed"===s.status)throw Error(s.error||"生成失败");let o=t[Math.min(n,t.length-1)];eD(o.key),eL(o.key,"process",o.message),n+=1,await new Promise(e=>window.setTimeout(e,1500))}},eG=async()=>{if(!$)return;if(null==K?void 0:K.loading){eb(K.flowSteps),ek(K.activeFlowKey),er(!0);return}er(!0);let e=eN(B.find(e=>e.id===$)||eC),t=(0,z.OX)({templateId:$});K={id:Date.now(),templateId:$,loading:!0,flowSteps:e,activeFlowKey:"prepare",promise:t,listeners:new Set},eb(e),ek("prepare");let n=[{key:"role_binding",message:"正在读取模板、文件角色、提示词角色和文档规范包…"},{key:"knowledge_retrieval",message:"正在从知识库检索章节证据、表格、图片和附件…"},{key:"file_understanding",message:"正在准备多模态文件理解;如果模型支持图片/文件理解,会等待模型返回…"},{key:"fact_extraction",message:"正在等待 LLM 事实抽取和后续章节生成结果,请不要关闭页面…"}].map((e,t)=>window.setTimeout(()=>{eD(e.key),eL(e.key,"process",e.message)},600+900*t));try{let e=await t,s=e.documentId?await eq(e.documentId):void 0,o=e.draft||(null==s?void 0:s.draft);if(!o)throw Error("生成结果为空");(e.documentId||(null==s?void 0:s.id))&&ey(e.documentId||s.id),n.forEach(e=>window.clearTimeout(e)),eD("done"),el(o),eu((null==s?void 0:s.editedMarkdown)||(null==s?void 0:s.markdown)||o.markdown),(null==K?void 0:K.promise)===t&&(K.draft=o,K.content=(null==s?void 0:s.editedMarkdown)||(null==s?void 0:s.markdown)||o.markdown),eb(e=>{let t=e.map(e=>{let t=o.executionStages.find(t=>t.type===e.key);if("prepare"===e.key)return{...e,status:"finish",description:a("documents.flowPrepareDone"),subSteps:e_(e,"finish")};if("done"===e.key){var n;let t=o.validationIssues.some(e=>"error"===e.level||"warning"===e.level)||!o.exportGate.passed,s=t?"warning":"finish",i=null==(n=o.validationIssues.find(e=>"error"===e.level||"warning"===e.level))?void 0:n.message;return{...e,status:s,description:t?"生成完成,但需要复核:".concat(i||a("documents.flowGateFailed")):a("documents.flowDoneDesc"),subSteps:e_(e,s)}}if(!t)return"process"===e.status?{...e,status:"finish",subSteps:e_(e,"finish")}:e;let s="failed"===t.status?"error":"finish";return{...e,status:s,description:"".concat(t.status.toUpperCase(),":").concat(t.message||e.description),subSteps:e_(e,s)}});return eO(t,"done",!1),t}),ek("done"),(null==K?void 0:K.promise)===t&&(K.activeFlowKey="done",K.loading=!1,Q()),await eI(),V.success(a("common.success"))}catch(n){let e=n instanceof Error?n.message:a("common.error");eb(t=>{let n=t.map(t=>"process"===t.status?{...t,status:"error",description:e,subSteps:e_(t,"error")}:t);return eO(n,eS,!1),n}),(null==K?void 0:K.promise)===t&&(K.loading=!1,K.error=e,Q()),V.error(e)}finally{n.forEach(e=>window.clearTimeout(e)),er(!1),(null==K?void 0:K.promise)===t&&(K.loading=!1,Q())}},eH=async e=>{if(ec){eg(!0);try{let o=null==(t=eo.find(e=>e.id===(null==eC?void 0:eC.documentSpecId)))?void 0:t.wordTemplatePath;var t,n=await (0,z.UE)({documentId:eh||void 0,title:ec.title,markdown:ed,format:e,enforceGate:!1,exportGate:ec.exportGate,wordTemplatePath:o}),s="".concat(ec.title,".").concat("markdown"===e?"md":e);let i=URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=s,a.click(),URL.revokeObjectURL(i)}catch(e){V.error(a("common.error"))}finally{eg(!1)}}},eW=async()=>{if(ec)try{if(eh)await (0,z.a6)(eh,{editedMarkdown:ed,markdown:ed});else{let e=await (0,z.Af)({...ec,markdown:ed});el(e.draft)}await eI(),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eK=async e=>{if(ec){ej(e.id);try{var t;let n=await (0,z.R1)({templateId:ec.templateId,chapterId:e.id}),s=ec.chapters.map(t=>t.id===e.id?n.chapter:t);el({...ec,chapters:s}),t=n.chapter,eu(n=>n.includes(e.content)?n.replace(e.content,t.content):"".concat(n,"\n\n").concat(t.content)),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}finally{ej(null)}}};return(0,s.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,s.jsx)(l.A,{className:"cardGlass",styles:{body:{padding:24}},children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"pageTitle mb-1",children:a("documents.title")}),(0,s.jsx)("p",{className:"pageDesc mb-0",children:a("documents.description")})]}),(0,s.jsx)(d.Ay,{type:"primary",size:"large",icon:(0,s.jsx)(D.A,{}),onClick:()=>eU(),children:a("documents.newTemplate")})]})}),(0,s.jsxs)(u.A,{gutter:[16,16],align:"top",children:[(0,s.jsxs)(p.A,{xs:24,lg:8,children:[(0,s.jsx)(l.A,{size:"small",title:a("documents.templateLibrary"),children:(0,s.jsx)(m.A,{dataSource:B,locale:{emptyText:(0,s.jsx)(h.A,{description:a("common.noData")})},renderItem:e=>(0,s.jsx)(m.A.Item,{onClick:()=>Y(e.id),className:"cursor-pointer",actions:[(0,s.jsx)(d.Ay,{size:"small",type:"text",icon:(0,s.jsx)(U.A,{}),onClick:t=>{t.stopPropagation(),eM(e.id)}},"copy"),(0,s.jsx)(d.Ay,{size:"small",type:"text",icon:(0,s.jsx)(J.A,{}),disabled:e.builtIn,onClick:t=>{t.stopPropagation(),eU(e)}},"edit"),(0,s.jsx)(y.A,{title:a("documents.deleteTemplateConfirm"),disabled:e.builtIn,onConfirm:t=>{null==t||t.stopPropagation(),eF(e.id)},children:(0,s.jsx)(d.Ay,{size:"small",type:"text",danger:!0,icon:(0,s.jsx)(L.A,{}),disabled:e.builtIn,onClick:e=>e.stopPropagation()})},"delete")],children:(0,s.jsx)(m.A.Item.Meta,{avatar:(0,s.jsx)(A.A,{}),title:(0,s.jsxs)(f.A,{children:[(0,s.jsx)("span",{children:e.name}),e.builtIn&&(0,s.jsx)(g.A,{children:a("documents.builtIn")}),$===e.id&&(0,s.jsx)(g.A,{color:"blue",children:a("documents.selected")})]}),description:(0,s.jsxs)(f.A,{direction:"vertical",size:2,children:[(0,s.jsx)("span",{children:e.description}),(0,s.jsx)(g.A,{children:e.category})]})})})})}),(0,s.jsx)(l.A,{className:"mt-4",size:"small",title:a("documents.draftHistory"),children:(0,s.jsx)(m.A,{size:"small",dataSource:ep.slice(0,8),locale:{emptyText:(0,s.jsx)(h.A,{description:a("common.noData")})},renderItem:e=>{var t,n,o;return(0,s.jsx)(m.A.Item,{onClick:()=>{(async()=>{ey(e.id),Y(e.templateId);let{document:t}=await (0,z.v7)(e.id);el(t.draft||null),eu(t.editedMarkdown||t.markdown)})()},className:"cursor-pointer",actions:[(0,s.jsx)(y.A,{title:"确认删除这条生成记录?",onConfirm:t=>{null==t||t.stopPropagation(),ez(e.id)},children:(0,s.jsx)(d.Ay,{size:"small",type:"text",danger:!0,icon:(0,s.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})},"delete")],children:(0,s.jsx)(m.A.Item.Meta,{title:(0,s.jsxs)(f.A,{children:[(0,s.jsx)("span",{children:e.title}),(0,s.jsx)(g.A,{color:"completed"===e.status?"success":"warning"===e.status?"warning":"failed"===e.status?"error":"processing",children:"warning"===e.status?"warning":e.status})]}),description:(0,s.jsxs)(f.A,{direction:"vertical",size:0,children:[(0,s.jsx)("span",{children:new Date(e.updatedAt).toLocaleString()}),"warning"===e.status&&(0,s.jsx)(W,{type:"warning",ellipsis:!0,children:(null==(t=e.warningIssues)?void 0:t[0])||(null==(o=e.draft)||null==(n=o.validationIssues.find(e=>"error"===e.level||"warning"===e.level))?void 0:n.message)||"生成完成,但存在需要复核的问题"})]})})})}})})]}),(0,s.jsx)(p.A,{xs:24,lg:16,children:(0,s.jsx)(l.A,{size:"small",title:a("documents.workflow"),children:(0,s.jsxs)(f.A,{direction:"vertical",className:"w-full",size:"middle",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"block mb-1",children:a("documents.template")}),(0,s.jsx)(x.A,{className:"w-full",value:$,onChange:Y,options:B.map(e=>({label:e.name,value:e.id}))})]}),eC&&(0,s.jsxs)(l.A,{size:"small",type:"inner",title:eC.outputTitle,children:[(0,s.jsx)(H,{children:eC.description}),(0,s.jsxs)(f.A,{wrap:!0,children:[eC.projectRoleConfigId?(0,s.jsx)(g.A,{color:"geekblue",children:(null==(e=en.find(e=>e.id===eC.projectRoleConfigId))?void 0:e.name)||eC.projectRoleConfigId}):(0,s.jsx)(g.A,{color:"warning",children:a("documents.noRoleConfig")}),eC.documentSpecId?(0,s.jsx)(g.A,{color:"cyan",children:(null==(t=eo.find(e=>e.id===eC.documentSpecId))?void 0:t.name)||eC.documentSpecId}):null]})]}),eC&&(0,s.jsx)(f.A,{direction:"vertical",size:4,children:(0,s.jsxs)("span",{children:[a("documents.projectRoleConfig"),": ",(null==(n=en.find(e=>e.id===eC.projectRoleConfigId))?void 0:n.name)||a("documents.noRoleConfig")]})}),(0,s.jsx)(d.Ay,{type:"primary",size:"large",block:!0,icon:(0,s.jsx)(P.A,{}),loading:ea,disabled:!(null==eC?void 0:eC.projectRoleConfigId),onClick:()=>{eG()},children:a("documents.generate")}),eA.length>0&&(0,s.jsx)(l.A,{size:"small",type:"inner",title:a("documents.executionStatus"),children:(0,s.jsx)(j.A,{direction:"vertical",size:"small",current:eR,items:eA.map(e=>{let t;return{title:e.title,description:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("div",{children:e.description}),(0,s.jsx)("div",{className:"space-y-0.5",children:e.subSteps.map(e=>{var t;return(0,s.jsxs)("div",{className:"flex items-center gap-1 text-xs text-[var(--colorTextSecondary)]",children:["process"===(t=e.status)?(0,s.jsx)(_.A,{}):"finish"===t?(0,s.jsx)(R.A,{}):"warning"===t?(0,s.jsx)(E.A,{className:"text-[var(--colorWarning)]"}):"error"===t?(0,s.jsx)(L.A,{}):(0,s.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-[var(--colorTextTertiary)]"}),(0,s.jsx)("span",{children:e.title})]},e.key)})})]}),status:"warning"===(t=e.status)?"finish":t,icon:"process"===e.status?(0,s.jsx)(_.A,{}):"warning"===e.status?(0,s.jsx)(E.A,{className:"text-[var(--colorWarning)]"}):e.icon}})})})]})})})]}),(0,s.jsx)(l.A,{size:"small",title:a("documents.editor"),extra:(0,s.jsx)(f.A,{wrap:!0,children:ec&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.Ay,{icon:(0,s.jsx)(M.A,{}),onClick:()=>{eW()},children:a("documents.saveDraft")}),(0,s.jsx)(d.Ay,{icon:(0,s.jsx)(O.A,{}),loading:ef,onClick:()=>{eH("markdown")},children:a("documents.downloadMarkdown")}),(0,s.jsx)(d.Ay,{loading:ef,onClick:()=>{eH("html")},children:a("documents.exportHtml")}),(0,s.jsx)(d.Ay,{loading:ef,onClick:()=>{eH("docx")},children:a("documents.exportDocx")}),(0,s.jsx)(d.Ay,{type:"primary",loading:ef,onClick:()=>{eH("pdf")},children:a("documents.exportPdf")})]})}),children:ec?(0,s.jsx)(w.A,{items:[{key:"edit",label:a("documents.edit"),children:(0,s.jsx)(G,{rows:26,value:ed,onChange:e=>eu(e.target.value)})},{key:"chapters",label:a("documents.chapters"),children:(0,s.jsx)(m.A,{dataSource:ec.chapters,renderItem:e=>(0,s.jsx)(m.A.Item,{actions:[(0,s.jsx)(d.Ay,{size:"small",icon:(0,s.jsx)(F.A,{}),loading:ex===e.id,onClick:()=>{eK(e)},children:a("documents.regenerateChapter")},"regen")],children:(0,s.jsx)(m.A.Item.Meta,{title:e.title,description:(0,s.jsxs)(f.A,{direction:"vertical",children:[(0,s.jsxs)("span",{children:[a("documents.evidenceCount"),": ",e.evidence.length]}),(0,s.jsxs)("span",{children:[a("documents.missingCount"),": ",e.missingFacts.length]})]})})})})},{key:"facts",label:a("documents.structuredFacts"),children:(0,s.jsx)(m.A,{dataSource:ec.structuredFacts,renderItem:e=>{var t;return(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)(m.A.Item.Meta,{title:"".concat(e.key,": ").concat(e.value),description:"".concat(e.sourceFile," \xb7 ").concat((null==(t=ee.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId)}),(0,s.jsx)(g.A,{children:e.confidence.toFixed(2)})]})}})},{key:"sources",label:a("documents.sources"),children:(0,s.jsx)(m.A,{dataSource:ec.sources,renderItem:e=>(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)("span",{children:e.filePath}),(0,s.jsx)(g.A,{children:e.count})]})})},{key:"missing",label:a("documents.missingItems"),children:0===ec.missingItems.length?(0,s.jsx)(h.A,{description:a("common.noData")}):(0,s.jsx)(m.A,{dataSource:ec.missingItems,renderItem:e=>(0,s.jsx)(m.A.Item,{children:e})})},{key:"validation",label:a("documents.validation"),children:(0,s.jsx)(f.A,{direction:"vertical",className:"w-full",children:ec.validationIssues.map(e=>(0,s.jsxs)(g.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:[e.message,e.suggestion?":".concat(e.suggestion):""]},e.message))})},{key:"gate",label:a("documents.exportGate"),children:(0,s.jsx)(m.A,{dataSource:ec.exportGate.checklist,renderItem:e=>(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)("span",{children:e.label}),(0,s.jsx)(g.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})},{key:"stages",label:a("documents.executionStages"),children:(0,s.jsx)(m.A,{dataSource:ec.executionStages,renderItem:e=>{var t,n;return(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)(m.A.Item.Meta,{avatar:(t=e.type,({role_binding:(0,s.jsx)(b.A,{}),knowledge_retrieval:(0,s.jsx)(S.A,{}),file_understanding:(0,s.jsx)(k.A,{}),fact_extraction:(0,s.jsx)(I.A,{}),chapter_generation:(0,s.jsx)(C.A,{}),asset_generation:(0,s.jsx)(T.A,{}),validation:(0,s.jsx)(E.A,{}),formatting:(0,s.jsx)(R.A,{}),llm_review:(0,s.jsx)(P.A,{}),export_ready:(0,s.jsx)(N.A,{}),reference:(0,s.jsx)(T.A,{})})[t]||(0,s.jsx)(A.A,{})),title:"".concat({role_binding:"角色配置绑定",knowledge_retrieval:"知识库检索",file_understanding:"多模态文件理解",fact_extraction:"LLM 事实抽取",chapter_generation:"LLM 章节生成",asset_generation:"多模态资源生成",validation:"规则校验",formatting:"格式化排版",llm_review:"LLM 审查优化",export_ready:"导出就绪",reference:"参考资源处理"}[n=e.type]||n," \xb7 ").concat(e.roleId),description:e.message}),(0,s.jsx)(g.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"skipped"===e.status?"default":"warning",children:e.status})]})}})}]}):(0,s.jsx)(h.A,{description:a("documents.noDraft")})}),(0,s.jsx)(v.A,{maskClosable:!1,title:a("documents.templateEditor"),open:ew,onOk:()=>{eJ()},onCancel:()=>ev(!1),width:760,centered:!0,okText:a("common.save"),children:(0,s.jsxs)(c.A,{form:X,layout:"vertical",requiredMark:"optional",children:[(0,s.jsxs)(u.A,{gutter:12,children:[(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,s.jsx)(i.A,{disabled:!0})})}),(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"name",label:a("documents.templateName"),rules:[{required:!0}],children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"category",label:a("documents.templateCategory"),children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:12,children:(0,s.jsx)(c.A.Item,{name:"outputTitle",label:a("documents.outputTitle"),children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:12,children:(0,s.jsx)(c.A.Item,{name:"description",label:a("documents.templateDescription"),children:(0,s.jsx)(i.A,{})})})]}),(0,s.jsx)(c.A.Item,{name:"projectRoleConfigId",label:a("documents.projectRoleConfig"),rules:[{required:!0,message:a("documents.projectRoleConfigRequired")}],children:(0,s.jsx)(x.A,{showSearch:!0,placeholder:a("documents.projectRoleConfigRequired"),options:eT})}),(0,s.jsx)(c.A.Item,{name:"documentSpecId",label:a("documents.documentSpec"),children:(0,s.jsx)(x.A,{allowClear:!0,showSearch:!0,placeholder:a("documents.documentSpecPlaceholder"),options:eE})})]})})]})}}},e=>{e.O(0,[260,167,382,628,271,576,700,174,183,232,292,951,858,617,636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(s,e,t,c,a,d,
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,e,t,c,a,n,d,i,u,o,b,r,k,f,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:f,errorRate:1e-4,numBits:f,numHashes:p,bitArray:[]},"/":["static/chunks/pages/index-c5e0758e6b31deee.js"],"/_error":["static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":[s,e,t,c,a,n,i,u,r,h,"static/chunks/881-a1eb917222b66f09.js","static/chunks/pages/asset-library-82606363f9142bad.js"],"/context/long-term":[s,e,t,c,a,d,n,i,u,o,b,k,_,"static/chunks/pages/context/long-term-f2a550bc848ec1a3.js"],"/context/short-term":[s,e,t,c,a,d,n,i,u,o,b,k,_,"static/chunks/pages/context/short-term-1de28da82d2b6276.js"],"/document-roles":[s,e,t,c,a,d,n,i,u,b,h,"static/chunks/pages/document-roles-54a1cc04116e8c18.js"],"/document-specs":[s,e,t,c,a,d,n,i,u,b,h,g,"static/chunks/pages/document-specs-723dee6883949a17.js"],"/documents":[s,e,t,c,a,d,n,i,u,b,r,h,w,"static/chunks/617-68a9e848c380f9c3.js","static/chunks/pages/documents-cf8bb78fbcc70bb1.js"],"/guide":[s,e,t,r,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,d,n,i,o,k,r,x,"static/chunks/80-96429163e5c103a8.js",l,"static/chunks/pages/knowledge/file-detail-7a1a3d4352ecfa0a.js"],"/knowledge/files":[s,e,t,c,a,d,n,i,o,k,I,l,"static/chunks/pages/knowledge/files-f0e05583bf7c57d9.js"],"/knowledge/manage":[s,e,t,c,a,n,i,o,k,v,"static/chunks/935-daa0026982d7fa8d.js","static/chunks/pages/knowledge/manage-8acff53019eb6cc1.js"],"/knowledge/search":[s,e,t,c,d,n,r,g,x,l,"static/chunks/pages/knowledge/search-1f3bd8fcb7af3e4d.js"],"/models":[s,e,t,c,a,d,u,o,b,g,"static/css/0e153583d22cc52e.css","static/chunks/pages/models-11533caad3723009.js"],"/overview":[s,e,I,v,"static/chunks/224-9a7074031493793b.js","static/chunks/pages/overview-f80672c242d9aa32.js"],"/prompt":[s,e,t,c,d,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 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{6578:(e,t,n)=>{"use strict";async function s(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function o(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return s("/api/kb/stats".concat(t))}async function i(e){var t,n;let o=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&o.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&o.set("category",e.category),(null==e?void 0:e.page)&&o.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&o.set("limit",String(null!=(n=e.limit)?n:50)),s("/api/kb/files?".concat(o))}async function a(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),s("/api/kb/files/detail?".concat(n))}async function r(e,t){return s("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function c(e,t,n){return s("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let s=new FileReader;s.onload=()=>{let e=s.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},s.onerror=n,s.readAsDataURL(e)})}async function d(e,t,n){return s("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return s("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),s("/api/kb/operations?".concat(t))}async function m(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),s("/api/kb/operations?".concat(t),{method:"DELETE"})}async function h(e,t){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function y(e,t){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return s("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return s("/api/kb/features")}async function j(e,t){var n,o,i,a,r;let c=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&c.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&c.set("category",t.category),(null==t?void 0:t.limit)&&c.set("limit",String(null!=(r=t.limit)?r:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&c.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(o=t.weights)?void 0:o.vector)!=null&&c.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&c.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(a=t.weights)?void 0:a.hybridBonus)!=null&&c.set("hybridBonus",String(t.weights.hybridBonus)),s("/api/kb/search?".concat(c))}async function w(){return s("/api/prompt")}async function A(e){return s("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function v(e){return s("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return s("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function S(e){return s("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return s("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function I(){return s("/api/documents/specs")}async function C(e){return s("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function T(e){return s("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function E(){return s("/api/documents/templates")}async function R(e){return s("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function P(e){return s("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function N(e){return s("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function O(e){return s("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function _(){return s("/api/documents/generated")}async function L(e){return s("/api/documents/generated/".concat(encodeURIComponent(e)))}async function D(e,t){return s("/api/documents/generated/".concat(encodeURIComponent(e)),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function U(e){return s("/api/documents/generated/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function J(){return s("/api/assets/generated")}async function M(e){return s("/api/assets/generated?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function F(e){return s("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"index"})})}async function z(e,t){return s("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"open",target:t})})}async function G(e){return s("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function q(e,t){return s("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function H(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function K(){return s("/api/config/providers")}async function Q(e,t){return s("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function V(e){return s("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function W(){return s("/api/config/models")}async function X(e){return s("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function B(){return s("/api/config/embedding")}async function Z(e){return s("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function $(){return s("/api/config/embedding/healthCheck",{method:"POST"})}async function Y(e){return s("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function ee(){return s("/api/system/stats")}async function et(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return s("/api/context".concat(n))}async function en(e){return s("/api/context?type=".concat(e,"&stats=1"))}async function es(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function eo(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function ei(e){return s("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function ea(e,t){return s("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function er(e){return s("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>q,Bh:()=>er,Dl:()=>E,E:()=>eo,EK:()=>C,ER:()=>T,FC:()=>ee,FV:()=>b,H1:()=>g,H7:()=>m,HC:()=>r,HT:()=>i,II:()=>B,JU:()=>M,NR:()=>S,OX:()=>O,PH:()=>es,QG:()=>U,QT:()=>u,Qx:()=>p,R1:()=>G,SJ:()=>y,UE:()=>H,VW:()=>x,W2:()=>j,X8:()=>f,Z3:()=>K,_m:()=>Q,a6:()=>D,aP:()=>X,bV:()=>N,bZ:()=>Y,c1:()=>d,cQ:()=>_,dd:()=>Z,dg:()=>v,dw:()=>k,dx:()=>w,f$:()=>J,h0:()=>P,h1:()=>V,hc:()=>o,hn:()=>et,l2:()=>R,lv:()=>A,mx:()=>I,oS:()=>z,p:()=>en,tn:()=>c,u6:()=>$,uc:()=>F,v7:()=>L,xC:()=>a,xq:()=>h,xw:()=>ei,zo:()=>ea,zr:()=>W})},16403:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return n(19562)}])},19562:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>V});var s=n(65321),o=n(97109),i=n(7576),a=n(35292),r=n(17807),c=n(63455),l=n(68787),d=n(85114),u=n(2256),p=n(38770),m=n(38332),h=n(84253),y=n(26171),f=n(33442),g=n(11702),x=n(57271),j=n(9730),w=n(58569),A=n(25258),v=n(26631),b=n(23216),S=n(26619),k=n(8263),I=n(16285),C=n(8579),T=n(75548),E=n(7851),R=n(84742),P=n(29071),N=n(63552),O=n(76830),_=n(83914),L=n(58209),D=n(54746),U=n(93051),J=n(99650),M=n(67547),F=n(99811),z=n(6578),G=n(13014);let{TextArea:q}=i.A,{Paragraph:H}=a.A,K=null;function Q(){null==K||K.listeners.forEach(e=>e())}function V(){var e,t,n;let a=(0,G.Vr)(),{message:V}=r.A.useApp(),[W]=c.A.useForm(),[X,B]=(0,o.useState)([]),[Z,$]=(0,o.useState)("construction-organization-design"),[Y,ee]=(0,o.useState)([]),[et,en]=(0,o.useState)([]),[es,eo]=(0,o.useState)([]),[ei,ea]=(0,o.useState)(!1),[er,ec]=(0,o.useState)(null),[el,ed]=(0,o.useState)(""),[eu,ep]=(0,o.useState)([]),[em,eh]=(0,o.useState)(null),[ey,ef]=(0,o.useState)(!1),[eg,ex]=(0,o.useState)(null),[ej,ew]=(0,o.useState)(!1),[eA,ev]=(0,o.useState)([]),[eb,eS]=(0,o.useState)(null),ek=async()=>{try{ep((await (0,z.cQ)()).documents)}catch(e){ep([])}};(0,o.useEffect)(()=>{let e=()=>{K&&(ev(K.flowSteps),eS(K.activeFlowKey),ea(K.loading),K.draft&&ec(K.draft),void 0!==K.content&&ed(K.content))};return null==K||K.listeners.add(e),e(),()=>{null==K||K.listeners.delete(e)}},[]),(0,o.useEffect)(()=>{(0,z.Dl)().then(e=>{var t,n;B(e.templates),$(null!=(n=null==(t=e.templates[0])?void 0:t.id)?n:"construction-organization-design")}).catch(()=>V.error(a("common.error"))),(0,z.lv)().then(e=>{ee(e.roles),en(e.configs)}).catch(()=>{ee([]),en([])}),(0,z.mx)().then(e=>eo(e.specs)).catch(()=>eo([])),ek()},[V,a]);let eI=(0,o.useMemo)(()=>X.find(e=>e.id===Z),[X,Z]),eC=et.map(e=>({label:e.name,value:e.id})),eT=es.map(e=>({label:e.name,value:e.id})),eE=Math.max(0,eA.findIndex(e=>e.key===eb)),eR=e=>e.map((e,t)=>({key:"sub-".concat(t),title:e,status:"wait"})),eP=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eI,t=es.find(t=>t.id===(null==e?void 0:e.documentSpecId)),n=et.find(t=>t.id===(null==e?void 0:e.projectRoleConfigId)),o=((null==n?void 0:n.fileRoles)||[]).map(e=>{var t;return(null==(t=Y.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId}),i=((null==n?void 0:n.promptRoles)||[]).map(e=>{var t;return(null==(t=Y.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId}),r=(null==t?void 0:t.factFields.map(e=>e.name))||(null==e?void 0:e.chapters.flatMap(e=>e.requiredFacts))||[],c=(null==e?void 0:e.chapters.map(e=>e.title))||[],l=i.some(e=>/封面|图片|资源|cover|image/iu.test(e));return[{key:"prepare",title:a("documents.flowPrepare"),description:"读取“".concat((null==e?void 0:e.name)||"当前模板","”并创建后台生成任务"),status:"process",icon:(0,s.jsx)(v.A,{}),subSteps:eR(["读取模板参数",(null==e?void 0:e.documentSpecId)?"加载规范包:".concat((null==t?void 0:t.name)||e.documentSpecId):"未绑定规范包,使用模板章节要求","创建后台生成任务"])},{key:"role_binding",title:"动态角色配置绑定",description:"绑定 ".concat(o.length," 个文件角色、").concat(i.length," 个提示词角色"),status:"wait",icon:(0,s.jsx)(b.A,{}),subSteps:eR([...o.length?o.map(e=>"文件角色:".concat(e)):["没有文件角色,使用模板绑定文件"],...i.length?i.map(e=>"提示词角色:".concat(e)):["没有提示词角色,使用默认生成策略"]].slice(0,10))},{key:"knowledge_retrieval",title:"知识库证据检索",description:"按 ".concat(c.length," 个章节检索文本、文档、表格、图片、图纸和附件"),status:"wait",icon:(0,s.jsx)(S.A,{}),subSteps:eR(c.length?c.slice(0,10).map(e=>"检索章节:".concat(e)):["按模板标题检索证据"])},{key:"file_understanding",title:"多类型文件理解",description:"按文件角色处理文本、PDF/Word、表格、图片、图纸和附件",status:"wait",icon:(0,s.jsx)(k.A,{}),subSteps:eR(["识别文件类型和角色","构建结构化资源证据包","必要时调用多模态文件理解"])},{key:"fact_extraction",title:"动态 schema 事实抽取",description:"按 ".concat(r.length," 个规范/章节事实字段抽取并检测冲突"),status:"wait",icon:(0,s.jsx)(I.A,{}),subSteps:eR(r.length?r.slice(0,10).map(e=>"抽取事实:".concat(e)):["抽取模板要求的事实","合并来源和角色","检测事实冲突"])},{key:"chapter_generation",title:"章节生成",description:"按 ".concat(c.length," 个模板章节逐章生成"),status:"wait",icon:(0,s.jsx)(C.A,{}),subSteps:eR(c.length?c.slice(0,10).map(e=>"生成:".concat(e)):["构造章节提示词","等待 LLM 生成","整理章节证据"])},...l?[{key:"asset_generation",title:"生成资源处理",description:"根据资源/图片提示词生成或登记本地资源",status:"wait",icon:(0,s.jsx)(T.A,{}),subSteps:eR(["生成资源提示词","保存到 generatedDocuments/assets","登记资源元数据"])}]:[],{key:"validation",title:"规范包与门禁校验",description:t?"执行 ".concat(t.gateRules.length," 条门禁规则"):"执行模板基础校验",status:"wait",icon:(0,s.jsx)(E.A,{}),subSteps:eR([...(null==t?void 0:t.factFields.filter(e=>e.required).map(e=>"必填事实:".concat(e.name)))||[],...(null==t?void 0:t.gateRules.map(e=>"门禁:".concat(e.name)))||["检查章节证据","检查缺失项","检查导出门禁"]].slice(0,10))},{key:"formatting",title:a("documents.flowFormatting"),description:"整理标题、表格、图片、附件引用和正式 Markdown",status:"wait",icon:(0,s.jsx)(R.A,{}),subSteps:eR(["整理标题层级","整理多类型资源引用","生成正式 Markdown"])},{key:"llm_review",title:"LLM 审查优化",description:"再次使用动态 schema、角色和结构化证据审查优化初稿",status:"wait",icon:(0,s.jsx)(P.A,{}),subSteps:eR(["构造审查提示词","检查事实来源和冲突","回填优化后的 Markdown"])},{key:"export_ready",title:"导出就绪",description:"确认 Markdown/HTML/DOCX/PDF 可导出",status:"wait",icon:(0,s.jsx)(N.A,{}),subSteps:eR(["生成导出检查清单","确认阻断项","准备导出格式"])},{key:"done",title:a("documents.flowDone"),description:a("documents.flowDoneDesc"),status:"wait",icon:(0,s.jsx)(O.A,{}),subSteps:eR(["展示生成结果","允许编辑正文","允许导出文件"])}]},eN=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ei;(null==K?void 0:K.loading)&&(K.flowSteps=e,K.activeFlowKey=t,K.loading=n,Q())},eO=(e,t)=>{if("wait"===t)return e.subSteps.map(e=>({...e,status:"wait"}));if("finish"===t)return e.subSteps.map(e=>({...e,status:"finish"}));if("error"===t)return e.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}));let n=e.subSteps.findIndex(e=>"wait"===e.status);return e.subSteps.map((e,t)=>t<n||-1===n?{...e,status:"finish"}:t===n?{...e,status:"process"}:e)},e_=(e,t,n)=>{eS(e),ev(s=>{let o=s.map(s=>s.key===e?{...s,status:t,description:n||s.description,subSteps:eO(s,t)}:s);return eN(o,e),o})};(0,o.useEffect)(()=>{if(!ei||!eb)return;let e=window.setInterval(()=>{ev(e=>{let t=e.map(e=>{if(e.key!==eb||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),n=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<n?{...e,status:"finish"}:t===n?{...e,status:"process"}:{...e,status:"wait"})}});return eN(t,eb),t})},1400);return()=>window.clearInterval(e)},[eb,ei]);let eL=e=>{ev(t=>{let n=t.findIndex(t=>t.key===e),s=t.map((e,t)=>t<n&&"error"!==e.status?{...e,status:"finish",subSteps:eO(e,"finish")}:e);return eN(s,e),s})},eD=e=>{W.setFieldsValue(null!=e?e:{id:"custom-template-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,documentSpecId:void 0,chapters:[]}),ew(!0)},eU=async()=>{try{let e=await W.validateFields(),t=await (0,z.l2)(e);B(t.templates),$(t.template.id),ew(!1),await ek(),V.success(a("common.success"))}catch(e){e instanceof Error&&V.error(e.message)}},eJ=async e=>{try{let t=await (0,z.bV)(e);B(t.templates),$(t.template.id),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eM=async e=>{try{var t,n;let s=await (0,z.h0)(e);B(s.templates),$(null!=(n=null==(t=s.templates[0])?void 0:t.id)?n:""),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eF=async e=>{try{await (0,z.QG)(e),em===e&&(eh(null),ec(null),ed("")),await ek(),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},ez=async e=>{let t=[{key:"chapter_generation",message:"后台任务已创建,正在轮询等待 LLM 章节生成完成…"},{key:"asset_generation",message:"正在轮询等待封面和生成资源写入本地记录…"},{key:"validation",message:"正在轮询等待校验、导出门禁和格式化完成…"},{key:"llm_review",message:"正在轮询等待 LLM 审查优化完成…"}],n=0;for(;;){let{document:s}=await (0,z.v7)(e);if("completed"===s.status&&s.draft)return s;if("failed"===s.status)throw Error(s.error||"生成失败");let o=t[Math.min(n,t.length-1)];eL(o.key),e_(o.key,"process",o.message),n+=1,await new Promise(e=>window.setTimeout(e,1500))}},eG=async()=>{if(!Z)return;if(null==K?void 0:K.loading){ev(K.flowSteps),eS(K.activeFlowKey),ea(!0);return}ea(!0);let e=eP(X.find(e=>e.id===Z)||eI),t=(0,z.OX)({templateId:Z});K={id:Date.now(),templateId:Z,loading:!0,flowSteps:e,activeFlowKey:"prepare",promise:t,listeners:new Set},ev(e),eS("prepare");let n=[{key:"role_binding",message:"正在读取模板、文件角色、提示词角色和文档规范包…"},{key:"knowledge_retrieval",message:"正在从知识库检索章节证据、表格、图片和附件…"},{key:"file_understanding",message:"正在准备多模态文件理解;如果模型支持图片/文件理解,会等待模型返回…"},{key:"fact_extraction",message:"正在等待 LLM 事实抽取和后续章节生成结果,请不要关闭页面…"}].map((e,t)=>window.setTimeout(()=>{eL(e.key),e_(e.key,"process",e.message)},600+900*t));try{let e=await t,s=e.documentId?await ez(e.documentId):void 0,o=e.draft||(null==s?void 0:s.draft);if(!o)throw Error("生成结果为空");(e.documentId||(null==s?void 0:s.id))&&eh(e.documentId||s.id),n.forEach(e=>window.clearTimeout(e)),eL("done"),ec(o),ed((null==s?void 0:s.editedMarkdown)||(null==s?void 0:s.markdown)||o.markdown),(null==K?void 0:K.promise)===t&&(K.draft=o,K.content=(null==s?void 0:s.editedMarkdown)||(null==s?void 0:s.markdown)||o.markdown),ev(e=>{let t=e.map(e=>{let t=o.executionStages.find(t=>t.type===e.key);if("prepare"===e.key)return{...e,status:"finish",description:a("documents.flowPrepareDone"),subSteps:eO(e,"finish")};if("done"===e.key){let t=o.exportGate.passed?"finish":"error";return{...e,status:t,description:o.exportGate.passed?a("documents.flowDoneDesc"):a("documents.flowGateFailed"),subSteps:eO(e,t)}}if(!t)return"process"===e.status?{...e,status:"finish",subSteps:eO(e,"finish")}:e;let n="failed"===t.status?"error":"finish";return{...e,status:n,description:"".concat(t.status.toUpperCase(),":").concat(t.message||e.description),subSteps:eO(e,n)}});return eN(t,"done",!1),t}),eS("done"),(null==K?void 0:K.promise)===t&&(K.activeFlowKey="done",K.loading=!1,Q()),await ek(),V.success(a("common.success"))}catch(n){let e=n instanceof Error?n.message:a("common.error");ev(t=>{let n=t.map(t=>"process"===t.status?{...t,status:"error",description:e,subSteps:eO(t,"error")}:t);return eN(n,eb,!1),n}),(null==K?void 0:K.promise)===t&&(K.loading=!1,K.error=e,Q()),V.error(e)}finally{n.forEach(e=>window.clearTimeout(e)),ea(!1),(null==K?void 0:K.promise)===t&&(K.loading=!1,Q())}},eq=async e=>{if(er){ef(!0);try{let o=null==(t=es.find(e=>e.id===(null==eI?void 0:eI.documentSpecId)))?void 0:t.wordTemplatePath;var t,n=await (0,z.UE)({documentId:em||void 0,title:er.title,markdown:el,format:e,enforceGate:"pdf"===e||"docx"===e,exportGate:er.exportGate,wordTemplatePath:o}),s="".concat(er.title,".").concat("markdown"===e?"md":e);let i=URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=s,a.click(),URL.revokeObjectURL(i)}catch(e){V.error(a("common.error"))}finally{ef(!1)}}},eH=async()=>{if(er)try{if(em)await (0,z.a6)(em,{editedMarkdown:el,markdown:el});else{let e=await (0,z.Af)({...er,markdown:el});ec(e.draft)}await ek(),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}},eK=async e=>{if(er){ex(e.id);try{var t;let n=await (0,z.R1)({templateId:er.templateId,chapterId:e.id}),s=er.chapters.map(t=>t.id===e.id?n.chapter:t);ec({...er,chapters:s}),t=n.chapter,ed(n=>n.includes(e.content)?n.replace(e.content,t.content):"".concat(n,"\n\n").concat(t.content)),V.success(a("common.success"))}catch(e){V.error(a("common.error"))}finally{ex(null)}}};return(0,s.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,s.jsx)(l.A,{className:"cardGlass",styles:{body:{padding:24}},children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"pageTitle mb-1",children:a("documents.title")}),(0,s.jsx)("p",{className:"pageDesc mb-0",children:a("documents.description")})]}),(0,s.jsx)(d.Ay,{type:"primary",size:"large",icon:(0,s.jsx)(D.A,{}),onClick:()=>eD(),children:a("documents.newTemplate")})]})}),(0,s.jsxs)(u.A,{gutter:[16,16],align:"top",children:[(0,s.jsxs)(p.A,{xs:24,lg:8,children:[(0,s.jsx)(l.A,{size:"small",title:a("documents.templateLibrary"),children:(0,s.jsx)(m.A,{dataSource:X,locale:{emptyText:(0,s.jsx)(h.A,{description:a("common.noData")})},renderItem:e=>(0,s.jsx)(m.A.Item,{onClick:()=>$(e.id),className:"cursor-pointer",actions:[(0,s.jsx)(d.Ay,{size:"small",type:"text",icon:(0,s.jsx)(U.A,{}),onClick:t=>{t.stopPropagation(),eJ(e.id)}},"copy"),(0,s.jsx)(d.Ay,{size:"small",type:"text",icon:(0,s.jsx)(J.A,{}),disabled:e.builtIn,onClick:t=>{t.stopPropagation(),eD(e)}},"edit"),(0,s.jsx)(y.A,{title:a("documents.deleteTemplateConfirm"),disabled:e.builtIn,onConfirm:t=>{null==t||t.stopPropagation(),eM(e.id)},children:(0,s.jsx)(d.Ay,{size:"small",type:"text",danger:!0,icon:(0,s.jsx)(L.A,{}),disabled:e.builtIn,onClick:e=>e.stopPropagation()})},"delete")],children:(0,s.jsx)(m.A.Item.Meta,{avatar:(0,s.jsx)(v.A,{}),title:(0,s.jsxs)(f.A,{children:[(0,s.jsx)("span",{children:e.name}),e.builtIn&&(0,s.jsx)(g.A,{children:a("documents.builtIn")}),Z===e.id&&(0,s.jsx)(g.A,{color:"blue",children:a("documents.selected")})]}),description:(0,s.jsxs)(f.A,{direction:"vertical",size:2,children:[(0,s.jsx)("span",{children:e.description}),(0,s.jsx)(g.A,{children:e.category})]})})})})}),(0,s.jsx)(l.A,{className:"mt-4",size:"small",title:a("documents.draftHistory"),children:(0,s.jsx)(m.A,{size:"small",dataSource:eu.slice(0,8),locale:{emptyText:(0,s.jsx)(h.A,{description:a("common.noData")})},renderItem:e=>(0,s.jsx)(m.A.Item,{onClick:()=>{(async()=>{eh(e.id),$(e.templateId);let{document:t}=await (0,z.v7)(e.id);ec(t.draft||null),ed(t.editedMarkdown||t.markdown)})()},className:"cursor-pointer",actions:[(0,s.jsx)(y.A,{title:"确认删除这条生成记录?",onConfirm:t=>{null==t||t.stopPropagation(),eF(e.id)},children:(0,s.jsx)(d.Ay,{size:"small",type:"text",danger:!0,icon:(0,s.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})},"delete")],children:(0,s.jsx)(m.A.Item.Meta,{title:(0,s.jsxs)(f.A,{children:[(0,s.jsx)("span",{children:e.title}),(0,s.jsx)(g.A,{color:"completed"===e.status?"success":"failed"===e.status?"error":"processing",children:e.status})]}),description:new Date(e.updatedAt).toLocaleString()})})})})]}),(0,s.jsx)(p.A,{xs:24,lg:16,children:(0,s.jsx)(l.A,{size:"small",title:a("documents.workflow"),children:(0,s.jsxs)(f.A,{direction:"vertical",className:"w-full",size:"middle",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"block mb-1",children:a("documents.template")}),(0,s.jsx)(x.A,{className:"w-full",value:Z,onChange:$,options:X.map(e=>({label:e.name,value:e.id}))})]}),eI&&(0,s.jsxs)(l.A,{size:"small",type:"inner",title:eI.outputTitle,children:[(0,s.jsx)(H,{children:eI.description}),(0,s.jsxs)(f.A,{wrap:!0,children:[eI.projectRoleConfigId?(0,s.jsx)(g.A,{color:"geekblue",children:(null==(e=et.find(e=>e.id===eI.projectRoleConfigId))?void 0:e.name)||eI.projectRoleConfigId}):(0,s.jsx)(g.A,{color:"warning",children:a("documents.noRoleConfig")}),eI.documentSpecId?(0,s.jsx)(g.A,{color:"cyan",children:(null==(t=es.find(e=>e.id===eI.documentSpecId))?void 0:t.name)||eI.documentSpecId}):null]})]}),eI&&(0,s.jsx)(f.A,{direction:"vertical",size:4,children:(0,s.jsxs)("span",{children:[a("documents.projectRoleConfig"),": ",(null==(n=et.find(e=>e.id===eI.projectRoleConfigId))?void 0:n.name)||a("documents.noRoleConfig")]})}),(0,s.jsx)(d.Ay,{type:"primary",size:"large",block:!0,icon:(0,s.jsx)(P.A,{}),loading:ei,disabled:!(null==eI?void 0:eI.projectRoleConfigId),onClick:()=>{eG()},children:a("documents.generate")}),eA.length>0&&(0,s.jsx)(l.A,{size:"small",type:"inner",title:a("documents.executionStatus"),children:(0,s.jsx)(j.A,{direction:"vertical",size:"small",current:eE,items:eA.map(e=>({title:e.title,description:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("div",{children:e.description}),(0,s.jsx)("div",{className:"space-y-0.5",children:e.subSteps.map(e=>{var t;return(0,s.jsxs)("div",{className:"flex items-center gap-1 text-xs text-[var(--colorTextSecondary)]",children:["process"===(t=e.status)?(0,s.jsx)(_.A,{}):"finish"===t?(0,s.jsx)(R.A,{}):"error"===t?(0,s.jsx)(L.A,{}):(0,s.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-[var(--colorTextTertiary)]"}),(0,s.jsx)("span",{children:e.title})]},e.key)})})]}),status:e.status,icon:"process"===e.status?(0,s.jsx)(_.A,{}):e.icon}))})})]})})})]}),(0,s.jsx)(l.A,{size:"small",title:a("documents.editor"),extra:(0,s.jsx)(f.A,{wrap:!0,children:er&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.Ay,{icon:(0,s.jsx)(M.A,{}),onClick:()=>{eH()},children:a("documents.saveDraft")}),(0,s.jsx)(d.Ay,{icon:(0,s.jsx)(O.A,{}),loading:ey,onClick:()=>{eq("markdown")},children:a("documents.downloadMarkdown")}),(0,s.jsx)(d.Ay,{loading:ey,onClick:()=>{eq("html")},children:a("documents.exportHtml")}),(0,s.jsx)(d.Ay,{loading:ey,onClick:()=>{eq("docx")},children:a("documents.exportDocx")}),(0,s.jsx)(d.Ay,{type:"primary",loading:ey,onClick:()=>{eq("pdf")},children:a("documents.exportPdf")})]})}),children:er?(0,s.jsx)(w.A,{items:[{key:"edit",label:a("documents.edit"),children:(0,s.jsx)(q,{rows:26,value:el,onChange:e=>ed(e.target.value)})},{key:"chapters",label:a("documents.chapters"),children:(0,s.jsx)(m.A,{dataSource:er.chapters,renderItem:e=>(0,s.jsx)(m.A.Item,{actions:[(0,s.jsx)(d.Ay,{size:"small",icon:(0,s.jsx)(F.A,{}),loading:eg===e.id,onClick:()=>{eK(e)},children:a("documents.regenerateChapter")},"regen")],children:(0,s.jsx)(m.A.Item.Meta,{title:e.title,description:(0,s.jsxs)(f.A,{direction:"vertical",children:[(0,s.jsxs)("span",{children:[a("documents.evidenceCount"),": ",e.evidence.length]}),(0,s.jsxs)("span",{children:[a("documents.missingCount"),": ",e.missingFacts.length]})]})})})})},{key:"facts",label:a("documents.structuredFacts"),children:(0,s.jsx)(m.A,{dataSource:er.structuredFacts,renderItem:e=>{var t;return(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)(m.A.Item.Meta,{title:"".concat(e.key,": ").concat(e.value),description:"".concat(e.sourceFile," \xb7 ").concat((null==(t=Y.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId)}),(0,s.jsx)(g.A,{children:e.confidence.toFixed(2)})]})}})},{key:"sources",label:a("documents.sources"),children:(0,s.jsx)(m.A,{dataSource:er.sources,renderItem:e=>(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)("span",{children:e.filePath}),(0,s.jsx)(g.A,{children:e.count})]})})},{key:"missing",label:a("documents.missingItems"),children:0===er.missingItems.length?(0,s.jsx)(h.A,{description:a("common.noData")}):(0,s.jsx)(m.A,{dataSource:er.missingItems,renderItem:e=>(0,s.jsx)(m.A.Item,{children:e})})},{key:"validation",label:a("documents.validation"),children:(0,s.jsx)(f.A,{direction:"vertical",className:"w-full",children:er.validationIssues.map(e=>(0,s.jsxs)(g.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:[e.message,e.suggestion?":".concat(e.suggestion):""]},e.message))})},{key:"gate",label:a("documents.exportGate"),children:(0,s.jsx)(m.A,{dataSource:er.exportGate.checklist,renderItem:e=>(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)("span",{children:e.label}),(0,s.jsx)(g.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})},{key:"stages",label:a("documents.executionStages"),children:(0,s.jsx)(m.A,{dataSource:er.executionStages,renderItem:e=>{var t,n;return(0,s.jsxs)(m.A.Item,{children:[(0,s.jsx)(m.A.Item.Meta,{avatar:(t=e.type,({role_binding:(0,s.jsx)(b.A,{}),knowledge_retrieval:(0,s.jsx)(S.A,{}),file_understanding:(0,s.jsx)(k.A,{}),fact_extraction:(0,s.jsx)(I.A,{}),chapter_generation:(0,s.jsx)(C.A,{}),asset_generation:(0,s.jsx)(T.A,{}),validation:(0,s.jsx)(E.A,{}),formatting:(0,s.jsx)(R.A,{}),llm_review:(0,s.jsx)(P.A,{}),export_ready:(0,s.jsx)(N.A,{}),reference:(0,s.jsx)(T.A,{})})[t]||(0,s.jsx)(v.A,{})),title:"".concat({role_binding:"角色配置绑定",knowledge_retrieval:"知识库检索",file_understanding:"多模态文件理解",fact_extraction:"LLM 事实抽取",chapter_generation:"LLM 章节生成",asset_generation:"多模态资源生成",validation:"规则校验",formatting:"格式化排版",llm_review:"LLM 审查优化",export_ready:"导出就绪",reference:"参考资源处理"}[n=e.type]||n," \xb7 ").concat(e.roleId),description:e.message}),(0,s.jsx)(g.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"skipped"===e.status?"default":"warning",children:e.status})]})}})}]}):(0,s.jsx)(h.A,{description:a("documents.noDraft")})}),(0,s.jsx)(A.A,{maskClosable:!1,title:a("documents.templateEditor"),open:ej,onOk:()=>{eU()},onCancel:()=>ew(!1),width:760,centered:!0,okText:a("common.save"),children:(0,s.jsxs)(c.A,{form:W,layout:"vertical",requiredMark:"optional",children:[(0,s.jsxs)(u.A,{gutter:12,children:[(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,s.jsx)(i.A,{disabled:!0})})}),(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"name",label:a("documents.templateName"),rules:[{required:!0}],children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:8,children:(0,s.jsx)(c.A.Item,{name:"category",label:a("documents.templateCategory"),children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:12,children:(0,s.jsx)(c.A.Item,{name:"outputTitle",label:a("documents.outputTitle"),children:(0,s.jsx)(i.A,{})})}),(0,s.jsx)(p.A,{xs:24,md:12,children:(0,s.jsx)(c.A.Item,{name:"description",label:a("documents.templateDescription"),children:(0,s.jsx)(i.A,{})})})]}),(0,s.jsx)(c.A.Item,{name:"projectRoleConfigId",label:a("documents.projectRoleConfig"),rules:[{required:!0,message:a("documents.projectRoleConfigRequired")}],children:(0,s.jsx)(x.A,{showSearch:!0,placeholder:a("documents.projectRoleConfigRequired"),options:eC})}),(0,s.jsx)(c.A.Item,{name:"documentSpecId",label:a("documents.documentSpec"),children:(0,s.jsx)(x.A,{allowClear:!0,showSearch:!0,placeholder:a("documents.documentSpecPlaceholder"),options:eT})})]})})]})}}},e=>{e.O(0,[260,167,382,628,271,576,700,174,183,232,292,951,858,617,636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
|