@customize-agent/server 3.0.12 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +7 -7
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/3445.js +29 -11
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/documents/export.js +14 -1
- package/.next/server/pages/api/documents/roles.js +1 -1
- package/.next/server/pages/api/documents/specs.js +1 -1
- package/.next/server/pages/api/kb/categories.js +24 -6
- package/.next/server/pages/api/kb/duplicates.js +24 -6
- package/.next/server/pages/api/kb/files/detail.js +24 -6
- package/.next/server/pages/api/kb/files/open.js +24 -6
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +24 -6
- package/.next/server/pages/api/kb/files/reindex.js +24 -6
- package/.next/server/pages/api/kb/files.js +24 -6
- package/.next/server/pages/api/kb/ignore.js +24 -6
- package/.next/server/pages/api/kb/operations.js +24 -6
- package/.next/server/pages/api/kb/reindex.js +24 -6
- package/.next/server/pages/api/kb/search.js +24 -6
- package/.next/server/pages/api/kb/stats.js +24 -6
- package/.next/server/pages/api/kb/tags.js +24 -6
- package/.next/server/pages/api/kb/upload.js +24 -6
- package/.next/server/pages/api/prompt.js +1 -1
- package/.next/server/pages/context/long-term.html +1 -1
- package/.next/server/pages/context/short-term.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/document-specs.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/search.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages-manifest.json +21 -21
- package/.next/static/{ZG2x_4BgDtQoIcW28iwgH → HrpIpnt5wstKoy1Bjfffe}/_buildManifest.js +1 -1
- package/.next/static/chunks/pages/{document-roles-653f01136b58197b.js → document-roles-0f24b162cfd49513.js} +1 -1
- package/.next/static/chunks/pages/document-specs-991368925b27ceda.js +1 -0
- package/.next/static/chunks/pages/{guide-b495954d18d56b33.js → guide-414134ce66270eb0.js} +1 -1
- package/.next/static/chunks/pages/knowledge/files-1662e995b81e79aa.js +1 -0
- package/.next/static/chunks/pages/prompt-aa556d7a438117f1.js +1 -0
- package/package.json +2 -2
- package/.next/static/chunks/400-ba996d76e74a7368.js +0 -78
- package/.next/static/chunks/740-cd38299e151d3ffc.js +0 -16
- package/.next/static/chunks/804-b11aef99b57308a3.js +0 -11
- package/.next/static/chunks/958-0793922b6b146891.js +0 -1
- package/.next/static/chunks/pages/_error-49c333927e615faa.js +0 -1
- package/.next/static/chunks/pages/document-specs-120681be3e183b9e.js +0 -1
- package/.next/static/chunks/pages/documents-a72286e23487eaf7.js +0 -1
- package/.next/static/chunks/pages/guide-f6ad48fc4e564c1c.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-a3a4bbc49c980b46.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-5d501503e54b4424.js +0 -1
- package/.next/static/chunks/pages/overview-9fbf5907184af472.js +0 -1
- package/.next/static/chunks/pages/prompt-d9996cf322de0125.js +0 -1
- package/.next/static/he1VpXuNk12nGqt9mP7Jd/_buildManifest.js +0 -1
- package/.next/static/he1VpXuNk12nGqt9mP7Jd/_ssgManifest.js +0 -1
- /package/.next/static/{ZG2x_4BgDtQoIcW28iwgH → HrpIpnt5wstKoy1Bjfffe}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
HrpIpnt5wstKoy1Bjfffe
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js",
|
|
9
|
+
"static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [],
|
|
12
12
|
"rootMainFilesTree": {},
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"static/chunks/492-62671486700ed3f9.js",
|
|
84
84
|
"static/chunks/455-e31becaaf948f868.js",
|
|
85
85
|
"static/chunks/846-fed995f7c83fc6c3.js",
|
|
86
|
-
"static/chunks/pages/document-roles-
|
|
86
|
+
"static/chunks/pages/document-roles-0f24b162cfd49513.js"
|
|
87
87
|
],
|
|
88
88
|
"/document-specs": [
|
|
89
89
|
"static/chunks/webpack-77d10b4726f13aa5.js",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"static/chunks/992-ea93dfa182a02a8e.js",
|
|
103
103
|
"static/chunks/846-fed995f7c83fc6c3.js",
|
|
104
104
|
"static/chunks/746-120983153bceeea6.js",
|
|
105
|
-
"static/chunks/pages/document-specs-
|
|
105
|
+
"static/chunks/pages/document-specs-991368925b27ceda.js"
|
|
106
106
|
],
|
|
107
107
|
"/documents": [
|
|
108
108
|
"static/chunks/webpack-77d10b4726f13aa5.js",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"static/chunks/292-c2888a94068fae74.js",
|
|
134
134
|
"static/chunks/730-727fe4b055c78dc2.js",
|
|
135
135
|
"static/chunks/804-e654a1589d9adc65.js",
|
|
136
|
-
"static/chunks/pages/guide-
|
|
136
|
+
"static/chunks/pages/guide-414134ce66270eb0.js"
|
|
137
137
|
],
|
|
138
138
|
"/knowledge": [
|
|
139
139
|
"static/chunks/webpack-77d10b4726f13aa5.js",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"static/chunks/400-f06f00619f22421e.js",
|
|
178
178
|
"static/chunks/15-289cb38b53bafa4a.js",
|
|
179
179
|
"static/css/d284a7454d6f6b06.css",
|
|
180
|
-
"static/chunks/pages/knowledge/files-
|
|
180
|
+
"static/chunks/pages/knowledge/files-1662e995b81e79aa.js"
|
|
181
181
|
],
|
|
182
182
|
"/knowledge/manage": [
|
|
183
183
|
"static/chunks/webpack-77d10b4726f13aa5.js",
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
"static/chunks/668-662b7bc81e4ad48f.js",
|
|
252
252
|
"static/chunks/492-62671486700ed3f9.js",
|
|
253
253
|
"static/chunks/446-0591221372df7d49.js",
|
|
254
|
-
"static/chunks/pages/prompt-
|
|
254
|
+
"static/chunks/pages/prompt-aa556d7a438117f1.js"
|
|
255
255
|
],
|
|
256
256
|
"/settings": [
|
|
257
257
|
"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": "5c1431bd625bb80519e6f7f54a847e32",
|
|
7
|
+
"previewModeSigningKey": "1fdc07da32e7c87234674e1e18224f18955f88206de3359e38b680ce183e7d88",
|
|
8
|
+
"previewModeEncryptionKey": "7bcde352a18bbdc990782806ca54e0e7d0a5a99daa13f4dc56e69c69977e1c4f"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
- 面向新手和进阶玩家,语言要直白。
|
|
7
7
|
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
8
|
- 不能把没有来源的数据写成确定结论。
|
|
9
|
-
- 表格中的推荐指数只能作为示例参考。`,"
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"文档资料/项目事实-热门干员资料.md":`# 【内置】三角洲热门干员资料
|
|
10
10
|
|
|
11
11
|
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
12
|
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
@@ -17,26 +17,44 @@
|
|
|
17
17
|
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
18
|
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
19
|
|
|
20
|
-
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据/表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
21
|
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
22
|
红狼,突击,5,中高,突破和正面交火
|
|
23
23
|
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
-
蜂医,支援,5,低,治疗救援和续航`,"
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件/图纸文件-战术路线示意.md":`# 【内置】战术路线示意
|
|
25
25
|
|
|
26
26
|
示意说明:
|
|
27
27
|
- 侦察位优先观察主通道和侧翼。
|
|
28
28
|
- 突击位沿掩体推进,不要单独深入。
|
|
29
29
|
- 工程位在关键入口布置控场手段。
|
|
30
|
-
- 支援位保持在队伍中后段,优先保证救援路线。`,"
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"文档资料/规范文件-攻略结构规范.md":`# 【内置】攻略结构规范
|
|
31
31
|
|
|
32
32
|
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
33
|
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
导出前检查:不能出现缺失资料占位语;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let d=g.join(b,a);i.mkdirSync(g.dirname(d),{recursive:!0}),i.writeFileSync(d,c,"utf-8")}let c=g.join(b,"文档资料","PDF资料-三角洲干员攻略摘要.pdf"),d=g.join(b,"文档资料","Word资料-三角洲干员打法说明.docx"),e=g.join(b,"文档资料","Word资料-队伍搭配说明.doc");i.mkdirSync(g.dirname(c),{recursive:!0}),function(a,b,c){if(i.existsSync(a)&&i.statSync(a).size>0)return;let d=`${b}
|
|
35
|
+
${c}`.replace(/[()]/gu,""),e=`%PDF-1.4
|
|
36
|
+
1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj
|
|
37
|
+
2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj
|
|
38
|
+
3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595 842] /Contents 4 0 R /Resources << /Font << /F1 5 0 R >> >> >> endobj
|
|
39
|
+
4 0 obj << /Length ${d.length+80} >> stream
|
|
40
|
+
BT /F1 18 Tf 50 780 Td (${d.slice(0,900)}) Tj ET
|
|
41
|
+
endstream endobj
|
|
42
|
+
5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica >> endobj
|
|
43
|
+
xref
|
|
44
|
+
0 6
|
|
45
|
+
0000000000 65535 f
|
|
46
|
+
trailer << /Root 1 0 R /Size 6 >>
|
|
47
|
+
startxref
|
|
48
|
+
0
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:要求攻略必须包含干员名称、定位、推荐指数、热门干员章节和表格数据。",factFields:[{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73445:(a,b,c)=>{c.d(b,{Bh:()=>v,OX:()=>G,R1:()=>H,bV:()=>x,h0:()=>w,jG:()=>t});var d=c(73024),e=c(76760),f=c(15751),g=c(48161),h=c(95393),i=c(23328),j=c(2323),k=c(89952),l=c(57367);let m=[{id:"delta-force-hot-operators-guide",name:"三角洲热门干员攻略",description:"内置全流程示例:基于示例攻略资料、表格、规则和规范包生成热门干员攻略文档。",category:"游戏攻略",outputTitle:"三角洲热门干员攻略",projectRoleConfigId:"delta-force-demo-config",documentSpecId:"delta-force-demo-spec",chapters:[{id:"overview",title:"第一章 攻略目标和适用人群",purpose:"说明攻略面向的新手/进阶玩家和使用场景。",requiredFacts:["攻略目标","适用人群"],queries:["三角洲行动 干员 攻略 适用 新手 进阶"]},{id:"operators",title:"第二章 热门干员定位速览",purpose:"汇总热门干员定位、技能和推荐场景。",requiredFacts:["干员名称","定位","技能"],queries:["三角洲行动 干员 定位 技能 露娜 红狼 牧羊人 蜂医"]},{id:"loadout",title:"第三章 干员搭配和队伍分工",purpose:"按突击、侦察、支援、工程等职责给出队伍搭配。",requiredFacts:["队伍分工","搭配建议"],queries:["三角洲行动 干员 搭配 队伍 分工 突击 侦察 支援 工程"]},{id:"tables",title:"第四章 数据表和推荐优先级",purpose:"引用表格数据生成优先级和推荐清单。",requiredFacts:["推荐指数","上手难度"],queries:["干员 推荐指数 上手难度 表格 优先级"]},{id:"tips",title:"第五章 实战注意事项",purpose:"整理实战打法、误区和复盘建议。",requiredFacts:["实战技巧","注意事项"],queries:["三角洲行动 实战 技巧 注意事项 误区"]}],builtIn:!0}];function n(){let a=e.join(g.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function o(){return e.join(n(),"document-templates.json")}function p(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"业务文档",projectRoleConfigId:a.projectRoleConfigId||void 0,documentSpecId:a.documentSpecId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"业务文档",purpose:a.description||"",queries:[],requiredFacts:[]}],promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],boundFilePaths:Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean):[],promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],fileBindings:Array.isArray(a.fileBindings)?a.fileBindings.filter(a=>a.filePath&&a.roleId):Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean).map(a=>({filePath:a,roleId:"project_fact"})):[],builtIn:!1}}function q(){try{let a=o();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(p)}catch{return[]}}function r(a){d.writeFileSync(o(),JSON.stringify(a.map(p),null,2),"utf-8")}let s={"builtin:delta-fact-extraction":{name:"内置|三角洲事实抽取",content:"请从资料中抽取干员名称、定位、技能、推荐指数、上手难度、推荐场景,输出结构化事实,不要编造。"},"builtin:delta-chapter-generation":{name:"内置|三角洲章节生成",content:"请用新手能看懂的大白话生成攻略,先给结论,再解释原因,最后给实战建议。必须引用表格数据和来源资料。"},"builtin:delta-validation":{name:"内置|三角洲攻略校验",content:"检查是否覆盖露娜、红狼、牧羊人、蜂医;是否有推荐表格;是否出现缺失资料占位语;是否有来源。"},"builtin:delta-formatting":{name:"内置|三角洲攻略格式化",content:"整理标题、列表、表格和结尾提醒,让攻略更适合正式导出。"}};function t(){return[...m,...q()]}function u(a){return t().find(b=>b.id===a)}function v(a){let b=p(a);if(m.some(a=>a.id===b.id))throw Error("Built-in template cannot be overwritten");let c=q().filter(a=>a.id!==b.id);return c.push(b),r(c),b}function w(a){if(m.some(b=>b.id===a))throw Error("Built-in template cannot be deleted");r(q().filter(b=>b.id!==a))}function x(a){let b=u(a);if(!b)throw Error("Document template not found");let c=p({...b,id:`${b.id}-copy-${Date.now()}`,name:`${b.name} Copy`,builtIn:!1}),d=q();return d.push(c),r(d),c}function y(a,b){let c=new Set;return a.map(a=>({...a,content:function(a,b){let c=e.extname(a).toLowerCase();return[".pdf",".doc",".docx",".png",".jpg",".jpeg",".webp"].includes(c)?`资料文件:${e.basename(a)},文件类型:${c}。该文件作为来源附件参与生成,正文只引用其文件名、类型和角色,不直接混入二进制内容。`:[...b].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").slice(0,4e3)}(a.filePath,a.content)})).sort((a,b)=>b.score-a.score).filter(a=>{let b=`${a.filePath}:${a.content.slice(0,100)}`;return!c.has(b)&&(c.add(b),!0)}).slice(0,b)}function z(a,b,c,f,g){let h=e.isAbsolute(a)?a:d.existsSync(e.join(g,"knowledgeBase",a))?e.join(g,"knowledgeBase",a):e.join(g,a);if(!d.existsSync(h)||d.statSync(h).isDirectory())return[];let i=e.extname(h).toLowerCase();return(([".pdf",".doc",".docx",".png",".jpg",".jpeg",".webp"].includes(i)?`内置示例资料文件:${e.basename(a)},用于三角洲热门干员攻略生成,文件类型:${i}。`:d.readFileSync(h,"utf-8")).match(/[\s\S]{1,1800}/gu)||[]).slice(0,12).map((d,e)=>({chapterId:f,filePath:a,score:1,content:d,roleId:b,processingType:c,sectionTitle:`文件片段 ${e+1}`,source:"bound-file-direct"}))}function A(a){return`- ${a.filePath}(score=${a.score.toFixed(3)}):${a.content.replace(/\s+/gu," ").slice(0,260)}`}function B(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("prompt");if(b)return[...b.promptRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({promptId:b,roleId:a.id})))}return a.promptBindings?.length?a.promptBindings:(a.promptIds??[]).map(a=>({promptId:a,roleId:"chapter_generation"}))}function C(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("file");if(b)return[...b.fileRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({filePath:b,roleId:a.id})))}return a.fileBindings?.length?a.fileBindings:(a.boundFilePaths??[]).map(a=>({filePath:a,roleId:"project_fact"}))}async function D(a,b){try{let c=(0,j.I)().load(),d=c.models.reasoning.active||c.models.action.active||c.models.reader.active,e=[...c.models.reasoning.list,...c.models.action.list,...c.models.reader.list].find(a=>a.name===d);if(!e)return;let f=c.providers[e.provider];if(!f)return;let g=(0,h.createProvider)(e.provider,{baseUrl:f.baseUrl,apiKey:f.apiKey,modelName:e.name}),i=(await g.chat([{role:"system",content:`${a}
|
|
53
|
+
只返回 JSON,不要返回 markdown。`},{role:"user",content:b}],{temperature:0})).content.trim().replace(/^```json\s*/u,"").replace(/^```\s*/u,"").replace(/```$/u,"").trim();return JSON.parse(i)}catch{return}}async function E(a,b){let c=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],d=a.slice(0,20).map(a=>`文件:${a.filePath}
|
|
36
54
|
角色:${a.roleId||""}
|
|
37
55
|
处理:${a.processingType||""}
|
|
38
|
-
内容:${a.content.slice(0,1200)}`).join("\n\n---\n\n");if(!d.trim())return{facts:[],stages:c};let e=await
|
|
56
|
+
内容:${a.content.slice(0,1200)}`).join("\n\n---\n\n");if(!d.trim())return{facts:[],stages:c};let e=await D(b||"你是工程文档事实抽取器。",`请从资料中抽取工程文档结构化事实,返回 {"facts":[{"key":"工程名称","value":"...","sourceFile":"...","roleId":"...","processingType":"project_fact","confidence":0.8}]}。
|
|
39
57
|
|
|
40
|
-
${d}`);return e?.facts?.length?{facts:e.facts.filter(a=>a.key&&a.value).map(a=>({key:a.key,value:a.value,sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}})),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 抽取 ${e.facts.length} 条事实`}]}:{facts:[],stages:c}}function
|
|
41
|
-
${a.content}`).join("\n\n"),q=a=>[a,e.isAbsolute(a)?e.relative(c,a):e.join(c,a)],r=new Set(m.flatMap(a=>q(a.filePath))),t=(0,k.XB)("file"),v=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,a.roleId]))),w=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,t.find(b=>b.id===a.roleId)?.processingType||"reference"]))),x=await g.getProject(c);await x.incrementalIndex();let
|
|
42
|
-
${p.slice(0,3e3)}`:"","",e.length>0?`本章根据模板绑定资料围绕“${a.purpose||b.description}”整理。`:"模板绑定资料未检索到明确内容,需进一步确认。","",e.length>0?"### 资料依据":"",...e.map(z),"",f.length>0?"### 待确认事项":"",...f.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");C.push({id:a.id,title:a.title,content:i,evidence:e,missingFacts:f})}let H=function(a,b){let c={};for(let d of[...new Set(a.chapters.flatMap(a=>a.requiredFacts))]){let a=b.find(a=>a.content.includes(d.replace(/要求|计划|目标|标准/gu,""))||a.content.includes(d));a&&(c[d]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath})`)}return c}(b,F),I=function(a){let b=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u]],c=[];for(let d of a)for(let[a,e]of b){let b=d.content.match(e);b?.[1]&&!c.some(c=>c.key===a&&c.value===b[1].trim())&&c.push({key:a,value:b[1].trim().slice(0,300),sourceFile:d.filePath,roleId:d.roleId||"unknown",processingType:d.processingType,confidence:d.score})}return c}(F),J=await D(F,p),K=[...I,...J.facts],L=function(a){let b=[],c=new Set;for(let g of a.filter(a=>"table"===a.processingType)){if(c.has(g.filePath))continue;c.add(g.filePath);let a=e.isAbsolute(g.filePath)?g.filePath:e.join((0,i.aY)(),g.filePath),h=e.extname(g.filePath).toLowerCase();if(d.existsSync(a)&&[".xlsx",".xls",".csv"].includes(h))try{let c=f.readFile(a,{cellDates:!0,sheetStubs:!1});for(let a of c.SheetNames){let d=c.Sheets[a],e=f.utils.sheet_to_json(d,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(e.length<2)continue;let h=e.findIndex(a=>a.filter(Boolean).length>=2);if(h<0)continue;let i=e[h].filter(Boolean),j=e.slice(h+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==j.length&&b.push({tableType:g.roleId||"table",sheet:a,headers:i,rows:j.slice(0,200),sourceFile:g.filePath,sourceRange:d["!ref"]})}continue}catch{}let j=g.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let k=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",l=j.map(a=>a.split(k).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);l.length<2||b.push({tableType:g.roleId||"table",headers:l[0],rows:l.slice(1,80),sourceFile:g.filePath,sourceRange:g.sectionTitle})}return b}(F);for(let a of K)H[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let M=new Map;for(let a of F)M.set(a.filePath,(M.get(a.filePath)??0)+1);let N=[...M.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),O=function(a,b=[],c=[]){let d=b=>a.filter(a=>b.some(b=>a.key.includes(b))),e=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:d(["工程名称","工程地点","建设单位","施工范围"]),schedule:d(["工期","开工","竣工","节点"]),quality:d(["质量"]),safety:d(["安全"]),resources:d(["劳动力","材料","机械","设备"]),tables:b,drawings:e("drawing"),rules:e("rule"),specifications:e("specification"),missing:[...new Set(c)],conflicts:[]}}(K,L,G),P=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===B(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===A(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(C,H,K,b),Q=function(a,b,c){let d=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return 0===b.project.length&&d.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&d.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&d.push(...b.conflicts.map(a=>({level:"error",message:a}))),d}(P,O,C),R=[...J.stages,{type:"chapter_generation",roleId:"document-workflow",status:"success",message:`生成 ${C.length} 个章节`},{type:"validation",roleId:"document-workflow",status:P.errors.length>0?"failed":"success",message:`错误 ${P.errors.length},警告 ${P.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"}],S={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||(j.length?`使用模板绑定提示词:${j.map(a=>`${a.promptId}(${a.roleId})`).join(", ")}`:""),facts:H,structuredFacts:K,factsModel:O,chapters:C,sources:N,missingItems:[...new Set(G)],validation:P,validationIssues:Q,executionStages:R,exportGate:{passed:!0,blockingIssues:[],checklist:[]},generatedAt:Date.now()},T=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(Q=function(a,b,c,d,e,f,g){if(!a)return b;let h=[...b],i=new Set([...c.project,...c.schedule,...c.quality,...c.safety,...c.resources].map(a=>a.key)),j=new Set(d.map(a=>a.title));for(let b of a.factFields.filter(a=>a.required))i.has(b.name)||h.push({level:"error",message:`必需事实缺失:${b.name}`,suggestion:b.extractionHint||"请补充资料或调整事实字段配置。"});for(let b of a.chapterRules.filter(a=>a.required)){j.has(b.title)||h.push({level:"error",message:`必需章节缺失:${b.title}`,suggestion:"请在模板或规范包章节规则中补齐章节。"});let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&h.push({level:"warning",message:`章节内容低于最低字数:${b.title}`,suggestion:`建议不少于 ${b.minWords} 字。`})}for(let b of a.gateRules){let a=b.level;"required_fact"===b.type&&b.target&&!i.has(b.target)&&h.push({level:a,message:`${b.name}:缺少事实 ${b.target}`}),"required_chapter"===b.type&&b.target&&!j.has(b.target)&&h.push({level:a,message:`${b.name}:缺少章节 ${b.target}`}),"required_file_role"===b.type&&b.target&&!f.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少文件角色 ${b.target}`}),"required_prompt_role"===b.type&&b.target&&!g.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少提示词角色 ${b.target}`}),"forbidden_text"===b.type&&b.value&&e.includes(b.value)&&h.push({level:a,message:`${b.name}:出现禁用文本 ${b.value}`}),"table_required"===b.type&&0===c.tables.length&&h.push({level:a,message:`${b.name}:缺少结构化表格`}),"source_required"===b.type&&[...c.project,...c.schedule,...c.quality,...c.safety].some(a=>!a.sourceFile)&&h.push({level:a,message:`${b.name}:存在无来源事实`})}return h}(o,Q,O,C,E(S),m,j),O,C);return{...S,validationIssues:Q,exportGate:T,markdown:E({...S,validationIssues:Q,exportGate:T})}}async function G(a){let b=u(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,i.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,i.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let h=y(g,f),j=c.requiredFacts.filter(a=>!h.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a))),k=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",h.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"资料未提供,需进一步确认。","",h.length>0?"### 资料依据":"",...h.map(z),"",j.length>0?"### 待确认事项":"",...j.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:k,evidence:h,missingFacts:j}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>s,FV:()=>r,Mu:()=>t,NR:()=>u,XB:()=>p,dg:()=>q,dw:()=>v});var d=c(73024),e=c(48161),f=c(76760);let g=f.join(e.homedir(),".customize-agent","demo-project"),h=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:[f.join(g,"规则文件-攻略写作要求.md")]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、技能、打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:[f.join(g,"项目事实-热门干员资料.md")]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:[f.join(g,"表格数据-热门干员推荐.csv")]},{id:"delta-drawing-files",name:"三角洲战术示意图文件",description:"大白话:没有真实 CAD 图纸时,用路线/阵型/站位说明代替图纸资料。",type:"file",processingType:"drawing",resourceIds:[f.join(g,"图纸文件-战术路线示意.md")]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:[f.join(g,"规范文件-攻略结构规范.md")]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]}],i={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-validation-prompt",order:2}]};function j(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function k(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function l(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:k(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function m(a){return{id:k(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function n(){try{let a=j();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(l),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(l):[],configs:Array.isArray(b.configs)?b.configs.map(m):[]}}catch{return{roles:[],configs:[]}}}function o(a){d.writeFileSync(j(),JSON.stringify({roles:a.roles.map(l),configs:a.configs.map(m)},null,2),"utf-8")}function p(a){let b=[...new Map([...h,...n().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function q(a){let b=l(a),c=n();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),o(c),b}function r(a,b){if(h.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=n();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),o(c)}function s(){return[...new Map([i,...n().configs].map(a=>[a.id,a])).values()]}function t(a){return a===i.id?i:n().configs.find(b=>b.id===a)}function u(a){let b=m(a),c=n();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),o(c),b}function v(a){if(a===i.id)throw Error("Built-in demo config cannot be deleted");let b=n();b.configs=b.configs.filter(b=>b.id!==a),o(b)}}};
|
|
58
|
+
${d}`);return e?.facts?.length?{facts:e.facts.filter(a=>a.key&&a.value).map(a=>({key:a.key,value:a.value,sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}})),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 抽取 ${e.facts.length} 条事实`}]}:{facts:[],stages:c}}function F(a){return['<div class="document-cover">',`# ${a.title}`,"",`**文档版本**:V1.0 `,`**生成时间**:${new Date(a.generatedAt).toLocaleString("zh-CN")} `,`**生成要求**:${a.requirement||"未填写"} `,"</div>","",'<div class="page-break"></div>',"","## 目录","",...a.chapters.map((a,b)=>`${b+1}. ${a.title}`),"",'<div class="page-break"></div>',"","## 结构化事实表","",Object.keys(a.facts).length>0?["| 事实项 | 依据 |","|---|---|",...Object.entries(a.facts).map(([a,b])=>`| ${a} | ${b.replace(/\|/gu," ")} |`)].join("\n"):"未抽取到明确事实,需人工确认。","",...a.chapters.flatMap(a=>[a.content,""]),"## 资料来源清单","","| 文件 | 引用次数 |","|---|---:|",...a.sources.map(a=>`| ${a.filePath} | ${a.count} |`),"","## 缺失项与需确认事项","",...a.missingItems.length>0?a.missingItems.map(a=>`- ${a}`):["- 暂未发现完全缺失章节;仍需人工复核关键数据。"],"","## 校验结果","",...a.validation.warnings.map(a=>`- 警告:${a}`),...a.validation.errors.map(a=>`- 错误:${a}`),"","## 严格校验清单","",...a.validationIssues.map(a=>`- ${a.level.toUpperCase()}:${a.message}${a.suggestion?`(建议:${a.suggestion})`:""}`)].join("\n")}async function G(a){let b=u(a.templateId);if(!b)throw Error("Document template not found");let c=a.projectRoot||(0,i.aY)();if(!c)throw Error("No knowledge base project found");let g=(0,i.Qh)(),h=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),j=B(b),m=C(b),o=(0,l.py)(b.documentSpecId),p=(function(a=[]){let b;if(0===a.length)return[];let c=[];try{let a=JSON.parse(d.readFileSync(e.join(n(),"prompts.json"),"utf-8"));b=Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{b=[]}for(let f of a){let a=f.promptId;if(a.startsWith("builtin:")){let b=s[a];b&&c.push({id:a,roleId:f.roleId,name:b.name,content:b.content});continue}if(a.startsWith("custom:")){let d=b.find(b=>b.id===a);d&&c.push({id:a,roleId:f.roleId,name:d.name,content:d.content});continue}if(a.startsWith("file:")){let b=a.slice(5);d.existsSync(b)&&c.push({id:a,roleId:f.roleId,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8")})}}return c})(j).map(a=>`## [${a.roleId}] ${a.name}
|
|
59
|
+
${a.content}`).join("\n\n"),q=a=>[a,e.isAbsolute(a)?e.relative(c,a):e.join(c,a)],r=new Set(m.flatMap(a=>q(a.filePath))),t=(0,k.XB)("file"),v=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,a.roleId]))),w=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,t.find(b=>b.id===a.roleId)?.processingType||"reference"]))),x=await g.getProject(c);await x.incrementalIndex();let D=[],G=[],H=[];for(let a of b.chapters){let d=[];for(let e of a.queries.length>0?a.queries:[b.name,b.outputTitle,a.title,...m.map(a=>a.filePath)]){let b=await g.search(c,e,{scope:"project",limit:Math.max(h,r.size>0?30:h),weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});d.push(...b.results.filter(a=>0===r.size||r.has(a.filePath)).map(b=>({chapterId:a.id,filePath:b.filePath,score:b.score,content:b.content,roleId:v.get(b.filePath),processingType:w.get(b.filePath),sectionTitle:b.sectionTitle,source:b.source})))}for(let b of r){let e=x.getFileDetail(b);if(!e){d.push(...z(b,v.get(b),w.get(b),a.id,c));continue}d.push(...e.chunks.slice(0,Math.max(h,20)).map(b=>({chapterId:a.id,filePath:e.file.relativePath,score:1,content:b.content,roleId:v.get(e.file.relativePath),processingType:w.get(e.file.relativePath),sectionTitle:b.sectionTitle,source:"bound-file"})))}for(let b of m)d.push(...z(b.filePath,b.roleId,t.find(a=>a.id===b.roleId)?.processingType||"reference",a.id,c));let e=y(d,h);G.push(...e);let f=a.requiredFacts.filter(a=>!e.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a)));for(let b of(0===e.length&&H.push(`${a.title}:未检索到明确资料依据`),f))H.push(`${a.title}:${b} 未检索到明确依据`);let i=[`## ${a.title}`,"",p?`### 模板绑定提示词规则
|
|
60
|
+
${p.slice(0,3e3)}`:"","",e.length>0?`本章根据模板绑定资料围绕“${a.purpose||b.description}”整理。`:"模板绑定资料未检索到明确内容,需进一步确认。","",e.length>0?"### 资料依据":"",...e.map(A),"",f.length>0?"### 待确认事项":"",...f.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)].filter(Boolean).join("\n");D.push({id:a.id,title:a.title,content:i,evidence:e,missingFacts:f})}let I=function(a,b){let c={};for(let d of[...new Set(a.chapters.flatMap(a=>a.requiredFacts))]){let a=b.find(a=>a.content.includes(d.replace(/要求|计划|目标|标准/gu,""))||a.content.includes(d));a&&(c[d]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath})`)}return c}(b,G),J=function(a){let b=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u],["攻略目标",/攻略目标[::\s]+([^\n]+)/u],["适用人群",/适用人群[::\s]+([^\n]+)/u],["干员名称",/(?:热门干员|干员)[::\s\n-]+([^\n]+)/u],["定位",/(?:定位|职责)[::\s]+([^\n,。;;]+)/u],["推荐指数",/推荐指数[::\s,,]+([^\n,。;;]+)/u],["实战技巧",/实战技巧[::\s]+([^\n]+)/u]],c=[];for(let d of a)for(let[a,e]of b){let b=d.content.match(e);b?.[1]&&!c.some(c=>c.key===a&&c.value===b[1].trim())&&c.push({key:a,value:b[1].trim().slice(0,300),sourceFile:d.filePath,roleId:d.roleId||"unknown",processingType:d.processingType,confidence:d.score})}return c}(G),K=await E(G,p),L=[...J,...K.facts],M=function(a){let b=[],c=new Set;for(let g of a.filter(a=>"table"===a.processingType)){if(c.has(g.filePath))continue;c.add(g.filePath);let a=(0,i.aY)(),h=e.isAbsolute(g.filePath)?g.filePath:d.existsSync(e.join(a,"knowledgeBase",g.filePath))?e.join(a,"knowledgeBase",g.filePath):e.join(a,g.filePath),j=e.extname(g.filePath).toLowerCase();if(d.existsSync(h)&&[".xlsx",".xls",".csv"].includes(j))try{let a=f.readFile(h,{cellDates:!0,sheetStubs:!1});for(let c of a.SheetNames){let d=a.Sheets[c],e=f.utils.sheet_to_json(d,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(e.length<2)continue;let h=e.findIndex(a=>a.filter(Boolean).length>=2);if(h<0)continue;let i=e[h].filter(Boolean),j=e.slice(h+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==j.length&&b.push({tableType:g.roleId||"table",sheet:c,headers:i,rows:j.slice(0,200),sourceFile:g.filePath,sourceRange:d["!ref"]})}continue}catch{}let k=g.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(k.length<2)continue;let l=k[0].includes("|")?"|":k[0].includes(" ")?" ":",",m=k.map(a=>a.split(l).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);m.length<2||b.push({tableType:g.roleId||"table",headers:m[0],rows:m.slice(1,80),sourceFile:g.filePath,sourceRange:g.sectionTitle})}return b}(G);for(let a of L)I[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let N=new Map;for(let a of G)N.set(a.filePath,(N.get(a.filePath)??0)+1);let O=[...N.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),P=function(a,b=[],c=[]){let d=b=>a.filter(a=>b.some(b=>a.key.includes(b))),e=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:d(["工程名称","工程地点","建设单位","施工范围","攻略目标","适用人群","干员名称","定位","推荐指数"]),schedule:d(["工期","开工","竣工","节点"]),quality:d(["质量"]),safety:d(["安全"]),resources:d(["劳动力","材料","机械","设备"]),tables:b,drawings:e("drawing"),rules:e("rule"),specifications:e("specification"),missing:[...new Set(c)],conflicts:[]}}(L,M,H),Q=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);if(!d?.documentSpecId)for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===C(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===B(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(D,I,L,b),R=function(a,b,c,d){let e=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return d?.documentSpecId||0!==b.project.length||e.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&e.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&e.push(...b.conflicts.map(a=>({level:"error",message:a}))),e}(Q,P,D,b),S=[...K.stages,{type:"chapter_generation",roleId:"document-workflow",status:"success",message:`生成 ${D.length} 个章节`},{type:"validation",roleId:"document-workflow",status:Q.errors.length>0?"failed":"success",message:`错误 ${Q.errors.length},警告 ${Q.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"}],T={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||(j.length?`使用模板绑定提示词:${j.map(a=>`${a.promptId}(${a.roleId})`).join(", ")}`:""),facts:I,structuredFacts:L,factsModel:P,chapters:D,sources:O,missingItems:[...new Set(H)],validation:Q,validationIssues:R,executionStages:S,exportGate:{passed:!0,blockingIssues:[],checklist:[]},generatedAt:Date.now()},U=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(R=function(a,b,c,d,e,f,g){if(!a)return b;let h=[...b],i=new Set([...[...c.project,...c.schedule,...c.quality,...c.safety,...c.resources].map(a=>a.key),...c.tables.flatMap(a=>[...a.headers,...a.rows.flat()])]),j=new Set(d.map(a=>a.title));for(let b of a.factFields.filter(a=>a.required))i.has(b.name)||h.push({level:"error",message:`必需事实缺失:${b.name}`,suggestion:b.extractionHint||"请补充资料或调整事实字段配置。"});for(let b of a.chapterRules.filter(a=>a.required)){j.has(b.title)||h.push({level:"error",message:`必需章节缺失:${b.title}`,suggestion:"请在模板或规范包章节规则中补齐章节。"});let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&h.push({level:"warning",message:`章节内容低于最低字数:${b.title}`,suggestion:`建议不少于 ${b.minWords} 字。`})}for(let b of a.gateRules){let a=b.level;"required_fact"===b.type&&b.target&&!i.has(b.target)&&h.push({level:a,message:`${b.name}:缺少事实 ${b.target}`}),"required_chapter"===b.type&&b.target&&!j.has(b.target)&&h.push({level:a,message:`${b.name}:缺少章节 ${b.target}`}),"required_file_role"===b.type&&b.target&&!f.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少文件角色 ${b.target}`}),"required_prompt_role"===b.type&&b.target&&!g.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少提示词角色 ${b.target}`}),"forbidden_text"===b.type&&b.value&&e.includes(b.value)&&h.push({level:a,message:`${b.name}:出现禁用文本 ${b.value}`}),"table_required"===b.type&&0===c.tables.length&&h.push({level:a,message:`${b.name}:缺少结构化表格`}),"source_required"===b.type&&[...c.project,...c.schedule,...c.quality,...c.safety].some(a=>!a.sourceFile)&&h.push({level:a,message:`${b.name}:存在无来源事实`})}return h}(o,R,P,D,F(T),m,j),P,D);return{...T,validationIssues:R,exportGate:U,markdown:F({...T,validationIssues:R,exportGate:U})}}async function H(a){let b=u(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,i.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,i.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let h=y(g,f),j=c.requiredFacts.filter(a=>!h.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a))),k=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",h.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"建议补充更多资料后复核。","",h.length>0?"### 资料依据":"",...h.map(A),"",j.length>0?"### 待确认事项":"",...j.map(a=>`- ${a}:建议人工复核或补充更明确资料。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:k,evidence:h,missingFacts:j}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、技能、打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md","文档资料/PDF资料-三角洲干员攻略摘要.pdf","文档资料/Word资料-三角洲干员打法说明.docx","文档资料/Word资料-队伍搭配说明.doc"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv"]},{id:"delta-drawing-files",name:"三角洲战术示意图文件",description:"大白话:没有真实 CAD 图纸时,用路线/阵型/站位说明代替图纸资料。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-战术路线示意.md"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-image-files",order:5}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-validation-prompt",order:2},{roleId:"delta-formatting-prompt",order:3}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/pages/index-505bd438c95ec0e8.js"],"/_app":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/css/5237c5e3358f3282.css","static/chunks/pages/_app-725afbb7d3371a13.js"],"/_error":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/pages/_error-18decb9cd478883d.js"],"/context/long-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/257-ba16dfe16a27f417.js","static/chunks/pages/context/long-term-dba1d735f2b5e12b.js"],"/context/short-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/257-ba16dfe16a27f417.js","static/chunks/pages/context/short-term-7cc72881b42b74fb.js"],"/document-roles":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/846-fed995f7c83fc6c3.js","static/chunks/pages/document-roles-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/pages/index-505bd438c95ec0e8.js"],"/_app":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/css/5237c5e3358f3282.css","static/chunks/pages/_app-725afbb7d3371a13.js"],"/_error":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/pages/_error-18decb9cd478883d.js"],"/context/long-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/257-ba16dfe16a27f417.js","static/chunks/pages/context/long-term-dba1d735f2b5e12b.js"],"/context/short-term":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/257-ba16dfe16a27f417.js","static/chunks/pages/context/short-term-7cc72881b42b74fb.js"],"/document-roles":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/846-fed995f7c83fc6c3.js","static/chunks/pages/document-roles-0f24b162cfd49513.js"],"/document-specs":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/992-ea93dfa182a02a8e.js","static/chunks/846-fed995f7c83fc6c3.js","static/chunks/746-120983153bceeea6.js","static/chunks/pages/document-specs-991368925b27ceda.js"],"/documents":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/292-c2888a94068fae74.js","static/chunks/846-fed995f7c83fc6c3.js","static/chunks/730-727fe4b055c78dc2.js","static/chunks/pages/documents-93e638518deec9b5.js"],"/guide":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/292-c2888a94068fae74.js","static/chunks/730-727fe4b055c78dc2.js","static/chunks/804-e654a1589d9adc65.js","static/chunks/pages/guide-414134ce66270eb0.js"],"/knowledge":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/pages/knowledge-81fd1e907a6fcb84.js"],"/knowledge/file-detail":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/292-c2888a94068fae74.js","static/chunks/969-8843874536e7fd83.js","static/chunks/517-f43787133528ba48.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/file-detail-793d12234ccddac1.js"],"/knowledge/files":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/15-289cb38b53bafa4a.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/files-1662e995b81e79aa.js"],"/knowledge/manage":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/227-442963c7b630eade.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/174-e7df14600b457a5c.js","static/chunks/446-0591221372df7d49.js","static/chunks/400-f06f00619f22421e.js","static/chunks/958-66e2dcf301fb3c3f.js","static/chunks/891-b6a172e1df7ab8c1.js","static/chunks/pages/knowledge/manage-64ad6cdce068edb1.js"],"/knowledge/search":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/227-442963c7b630eade.js","static/chunks/292-c2888a94068fae74.js","static/chunks/992-ea93dfa182a02a8e.js","static/chunks/969-8843874536e7fd83.js","static/css/d284a7454d6f6b06.css","static/chunks/pages/knowledge/search-fe148477dfe05966.js"],"/models":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/740-2bcba39d841f2b16.js","static/chunks/492-62671486700ed3f9.js","static/chunks/455-e31becaaf948f868.js","static/chunks/992-ea93dfa182a02a8e.js","static/css/0e153583d22cc52e.css","static/chunks/pages/models-0fb086e70387dde1.js"],"/overview":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/227-442963c7b630eade.js","static/chunks/15-289cb38b53bafa4a.js","static/chunks/958-66e2dcf301fb3c3f.js","static/chunks/851-1190cb42a0630eef.js","static/chunks/pages/overview-db5df4f0bec2a77c.js"],"/prompt":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/chunks/167-9f45623d7ea7ab43.js","static/chunks/382-dd7535429e16931b.js","static/chunks/201-b16b4788042ed1aa.js","static/chunks/668-662b7bc81e4ad48f.js","static/chunks/492-62671486700ed3f9.js","static/chunks/446-0591221372df7d49.js","static/chunks/pages/prompt-aa556d7a438117f1.js"],"/settings":["static/chunks/webpack-77d10b4726f13aa5.js","static/chunks/framework-b5223c1542334872.js","static/chunks/main-1a03005b3754c708.js","static/chunks/260-7a7a65a3ca8539ba.js","static/css/82b6ddff0ef364fe.css","static/chunks/pages/settings-88f50b9cafc389e0.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
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"HrpIpnt5wstKoy1Bjfffe","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/pages/_error-18decb9cd478883d.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_buildManifest.js" defer=""></script><script src="/_next/static/HrpIpnt5wstKoy1Bjfffe/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"HrpIpnt5wstKoy1Bjfffe","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>s,default:()=>r,handler:()=>u});var d={};c.r(d),c.d(d,{default:()=>o});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j);function l(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function m(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${l(a)}</w:t></w:r></w:p>`).join("")}async function n(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,l(a)).replace(/\{\{content\}\}/gu,m(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${l(a)}</w:t></w:r></w:p>${m(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function o(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let{title:e="document",markdown:f="",format:g="markdown",enforceGate:h=!1,exportGate:i,wordTemplatePath:j}=a.body;if(h&&i&&!i.passed)return b.status(422).json({error:"Export gate failed",issues:i.blockingIssues??[]});let k=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===g)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(f);if("docx"===g){let a=await n(e,f,j);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:
|
|
1
|
+
"use strict";(()=>{var a={};a.id=8644,a.ids=[8644],a.modules={73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},83142:a=>{a.exports=import("marked")},83237:a=>{a.exports=import("playwright")},89529:(a,b,c)=>{c.r(b),c.d(b,{config:()=>s,default:()=>r,handler:()=>u});var d={};c.r(d),c.d(d,{default:()=>o});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(73024);let j=require("jszip");var k=c.n(j);function l(a){return a.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function m(a){return a.replace(/<[^>]+>/gu,"").split("\n").map(a=>`<w:p><w:r><w:t xml:space="preserve">${l(a)}</w:t></w:r></w:p>`).join("")}async function n(a,b,c){if(c&&i.existsSync(c)){let d=await k().loadAsync(i.readFileSync(c)),e=d.file("word/document.xml");if(e){let c=await e.async("string");return d.file("word/document.xml",c.replace(/\{\{title\}\}/gu,l(a)).replace(/\{\{content\}\}/gu,m(b))),d.generateAsync({type:"nodebuffer"})}}let d=new(k());return d.file("[Content_Types].xml",'<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>'),d.folder("_rels")?.file(".rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>'),d.folder("word")?.folder("_rels")?.file("document.xml.rels",'<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"/>'),d.folder("word")?.file("document.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body><w:p><w:r><w:t>${l(a)}</w:t></w:r></w:p>${m(b)}<w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></w:body></w:document>`),d.generateAsync({type:"nodebuffer"})}async function o(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{var d;let{title:e="document",markdown:f="",format:g="markdown",enforceGate:h=!1,exportGate:i,wordTemplatePath:j}=a.body;if(h&&i&&!i.passed)return b.status(422).json({error:"Export gate failed",issues:i.blockingIssues??[]});let k=e.replace(/[\\/:*?"<>|]/gu,"-").slice(0,80)||"document";if("markdown"===g)return b.setHeader("Content-Type","text/markdown; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.md`)}`),b.status(200).send(f);if("docx"===g){let a=await n(e,f,j);return b.setHeader("Content-Type","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.docx`)}`),b.status(200).send(a)}let{marked:m}=await Promise.resolve().then(c.bind(c,83142)),o=(d=m.parse(f,{async:!1}),`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${l(e)}</title><style>@page{size:A4;margin:24mm 18mm 22mm 18mm}body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;line-height:1.75;color:#111827;font-size:14px}h1{text-align:center;font-size:28px;margin-top:80px}h2{border-bottom:1px solid #d1d5db;padding-bottom:6px;margin-top:28px;page-break-after:avoid}h3{margin-top:20px}table{width:100%;border-collapse:collapse;page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #6b7280;padding:6px 8px;vertical-align:top}th{background:#f3f4f6}pre{white-space:pre-wrap}.document-cover{min-height:720px;display:flex;flex-direction:column;justify-content:center}.document-cover h1{margin-top:0}.page-break{page-break-after:always;height:0}</style></head><body>${d}</body></html>`);if("html"===g)return b.setHeader("Content-Type","text/html; charset=utf-8"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.html`)}`),b.status(200).send(o);try{let{chromium:a}=await Promise.resolve().then(c.bind(c,83237)),d=await a.launch({headless:!0,args:["--no-sandbox","--disable-setuid-sandbox"]});try{let a=await d.newPage({locale:"zh-CN"});await a.setContent(o,{waitUntil:"load"}),await a.emulateMedia({media:"print"});let c=await a.pdf({format:"A4",printBackground:!0,preferCSSPageSize:!0,margin:{top:"24mm",right:"18mm",bottom:"22mm",left:"18mm"},displayHeaderFooter:!0,headerTemplate:"<div></div>",footerTemplate:'<div style="font-size:9px;width:100%;text-align:center;color:#666;">第 <span class="pageNumber"></span> 页 / 共 <span class="totalPages"></span> 页</div>'});return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(Buffer.from(c))}finally{await d.close()}}catch{let a=function(a,b){let c=[a,"",...b.replace(/<[^>]+>/gu,"").replace(/!\[[^\]]*\]\([^)]*\)/gu,"").replace(/\[([^\]]+)\]\([^)]*\)/gu,"$1").replace(/[#*_`>|-]/gu,"").replace(/\n{3,}/gu,"\n\n").trim().split("\n")].flatMap(a=>a.length>34?a.match(/.{1,34}/gu)||[]:[a]).slice(0,900),d=[];for(let a=0;a<c.length;a+=34)d.push(c.slice(a,a+34));let e=[],f=a=>(e.push(a),e.length),g=f(""),h=f(""),i=f("<< /Type /Font /Subtype /Type0 /BaseFont /STSong-Light /Encoding /UniGB-UCS2-H /DescendantFonts [<< /Type /Font /Subtype /CIDFontType0 /BaseFont /STSong-Light /CIDSystemInfo << /Registry (Adobe) /Ordering (GB1) /Supplement 2 >> >>] >>"),j=[];for(let a of d){let b=a.map((a,b)=>`BT /F1 ${0===b?18:11} Tf 50 ${790-22*b} Td <${Buffer.from(`\uFEFF${a}`,"utf16le").swap16().toString("hex").toUpperCase()}> Tj ET`).join("\n"),c=f(`<< /Length ${Buffer.byteLength(b)} >>
|
|
2
|
+
stream
|
|
3
|
+
${b}
|
|
4
|
+
endstream`);j.push(f(`<< /Type /Page /Parent ${h} 0 R /MediaBox [0 0 595 842] /Resources << /Font << /F1 ${i} 0 R >> >> /Contents ${c} 0 R >>`))}e[g-1]=`<< /Type /Catalog /Pages ${h} 0 R >>`,e[h-1]=`<< /Type /Pages /Kids [${j.map(a=>`${a} 0 R`).join(" ")}] /Count ${j.length} >>`;let k="%PDF-1.4\n",l=[0];e.forEach((a,b)=>{l.push(Buffer.byteLength(k)),k+=`${b+1} 0 obj
|
|
5
|
+
${a}
|
|
6
|
+
endobj
|
|
7
|
+
`});let m=Buffer.byteLength(k);return k+=`xref
|
|
8
|
+
0 ${e.length+1}
|
|
9
|
+
0000000000 65535 f
|
|
10
|
+
${l.slice(1).map(a=>`${String(a).padStart(10,"0")} 00000 n `).join("\n")}
|
|
11
|
+
trailer << /Root ${g} 0 R /Size ${e.length+1} >>
|
|
12
|
+
startxref
|
|
13
|
+
${m}
|
|
14
|
+
%%EOF`,Buffer.from(k,"binary")}(e,f);return b.setHeader("Content-Type","application/pdf"),b.setHeader("Content-Disposition",`attachment; filename*=UTF-8''${encodeURIComponent(`${k}.pdf`)}`),b.status(200).send(a)}}catch(a){console.error("[api] documents/export",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var p=c(68970),q=c(50296);let r=(0,h.M)(d,"default"),s=(0,h.M)(d,"config"),t=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/export",pathname:"/api/documents/export",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function u(a,b,c){let d=await t.prepare(a,b,{srcPage:"/api/documents/export"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,p.getTracer)(),e=d.getActiveScopeSpan(),j=t.instrumentationOnRequestError.bind(t),k=async e=>t.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:t.isDev,page:"/api/documents/export",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==q.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(q.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:p.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(t.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=89529));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9029,a.ids=[9029],a.modules={48161:a=>{a.exports=require("node:os")},55258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(89952);function j(a){return"file"===a||"prompt"===a?a:void 0}function k(a,b){try{if("GET"===a.method)return b.status(200).json({roles:(0,i.XB)(j(a.query.type)),configs:(0,i.DZ)()});if("POST"===a.method||"PUT"===a.method){let c="config"===a.query.mode?"config":"role";if("config"===c){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"config id and name required"});return b.status(200).json({config:(0,i.NR)(c),roles:(0,i.XB)(),configs:(0,i.DZ)()})}let d=a.body;if(!d?.id||!d.name||!j(d.type))return b.status(400).json({error:"role id, name and type required"});return b.status(200).json({role:(0,i.dg)(d),roles:(0,i.XB)(),configs:(0,i.DZ)()})}if("DELETE"===a.method){let c="config"===a.query.mode?"config":"role",d=String(a.query.id||"");if(!d)return b.status(400).json({error:"id required"});if("config"===c)return(0,i.dw)(d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()});let e=j(a.query.type);if(!e)return b.status(400).json({error:"type required"});return(0,i.FV)(e,d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/roles",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/roles",pathname:"/api/documents/roles",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/roles"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/roles",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},89952:(a,b,c)=>{c.d(b,{DZ:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9029,a.ids=[9029],a.modules={48161:a=>{a.exports=require("node:os")},55258:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(89952);function j(a){return"file"===a||"prompt"===a?a:void 0}function k(a,b){try{if("GET"===a.method)return b.status(200).json({roles:(0,i.XB)(j(a.query.type)),configs:(0,i.DZ)()});if("POST"===a.method||"PUT"===a.method){let c="config"===a.query.mode?"config":"role";if("config"===c){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"config id and name required"});return b.status(200).json({config:(0,i.NR)(c),roles:(0,i.XB)(),configs:(0,i.DZ)()})}let d=a.body;if(!d?.id||!d.name||!j(d.type))return b.status(400).json({error:"role id, name and type required"});return b.status(200).json({role:(0,i.dg)(d),roles:(0,i.XB)(),configs:(0,i.DZ)()})}if("DELETE"===a.method){let c="config"===a.query.mode?"config":"role",d=String(a.query.id||"");if(!d)return b.status(400).json({error:"id required"});if("config"===c)return(0,i.dw)(d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()});let e=j(a.query.type);if(!e)return b.status(400).json({error:"type required"});return(0,i.FV)(e,d),b.status(200).json({success:!0,roles:(0,i.XB)(),configs:(0,i.DZ)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/roles",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/roles",pathname:"/api/documents/roles",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/documents/roles"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/documents/roles",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},89952:(a,b,c)=>{c.d(b,{DZ:()=>r,FV:()=>q,Mu:()=>s,NR:()=>t,XB:()=>o,dg:()=>p,dw:()=>u});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:["文档资料/规则文件-攻略写作要求.md"]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、技能、打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:["文档资料/项目事实-热门干员资料.md","文档资料/PDF资料-三角洲干员攻略摘要.pdf","文档资料/Word资料-三角洲干员打法说明.docx","文档资料/Word资料-队伍搭配说明.doc"]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:["表格数据/表格数据-热门干员推荐.csv"]},{id:"delta-drawing-files",name:"三角洲战术示意图文件",description:"大白话:没有真实 CAD 图纸时,用路线/阵型/站位说明代替图纸资料。",type:"file",processingType:"drawing",resourceIds:["图纸文件/图纸文件-战术路线示意.md"]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:["文档资料/规范文件-攻略结构规范.md"]},{id:"delta-image-files",name:"三角洲干员图片资料",description:"大白话:存放干员图片来源和本地图片文件,生成攻略时用于说明配图来源。",type:"file",processingType:"reference",resourceIds:["图片素材/图片文件-干员图片来源.md"]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]},{id:"delta-formatting-prompt",name:"三角洲收尾润色提示词",description:"对最终攻略进行格式整理、标题优化和结尾收束。",type:"prompt",executionType:"formatting",resourceIds:["builtin:delta-formatting"]}].map(a=>({...a,builtIn:!0})),h={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4},{roleId:"delta-image-files",order:5}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-validation-prompt",order:2},{roleId:"delta-formatting-prompt",order:3}]};function i(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function j(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function k(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:j(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function l(a){return{id:j(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function m(){try{let a=i();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(k),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(k):[],configs:Array.isArray(b.configs)?b.configs.map(l):[]}}catch{return{roles:[],configs:[]}}}function n(a){d.writeFileSync(i(),JSON.stringify({roles:a.roles.map(k),configs:a.configs.map(l)},null,2),"utf-8")}function o(a){let b=[...new Map([...g,...m().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function p(a){let b=k(a),c=m();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),n(c),b}function q(a,b){if(g.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=m();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),n(c)}function r(){return[...new Map([h,...m().configs].map(a=>[a.id,a])).values()]}function s(a){return a===h.id?h:m().configs.find(b=>b.id===a)}function t(a){let b=l(a),c=m();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),n(c),b}function u(a){if(a===h.id)throw Error("Built-in demo config cannot be deleted");let b=m();b.configs=b.configs.filter(b=>b.id!==a),n(b)}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=55258));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=1282,a.ids=[1282],a.modules={48161:a=>{a.exports=require("node:os")},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:要求攻略必须包含干员名称、定位、推荐指数、热门干员章节和表格数据。",factFields:[{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"
|
|
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:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},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})();
|