@customize-agent/server 4.2.6 → 4.2.7

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.
Files changed (58) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +24 -24
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/208.js +2 -2
  5. package/.next/server/chunks/2405.js +10 -10
  6. package/.next/server/chunks/2484.js +1 -1
  7. package/.next/server/chunks/4680.js +2 -2
  8. package/.next/server/chunks/5284.js +8 -8
  9. package/.next/server/chunks/5840.js +1 -1
  10. package/.next/server/chunks/8204.js +1 -1
  11. package/.next/server/middleware-build-manifest.js +1 -1
  12. package/.next/server/pages/404.html +1 -1
  13. package/.next/server/pages/500.html +1 -1
  14. package/.next/server/pages/api/template-references.js +1 -1
  15. package/.next/server/pages/asset-library.html +1 -1
  16. package/.next/server/pages/document-roles.html +1 -1
  17. package/.next/server/pages/documents.html +1 -1
  18. package/.next/server/pages/guide.html +1 -1
  19. package/.next/server/pages/index.html +1 -1
  20. package/.next/server/pages/knowledge/file-detail.html +1 -1
  21. package/.next/server/pages/knowledge/files.html +1 -1
  22. package/.next/server/pages/knowledge/manage.html +1 -1
  23. package/.next/server/pages/knowledge.html +1 -1
  24. package/.next/server/pages/models.html +1 -1
  25. package/.next/server/pages/overview.html +1 -1
  26. package/.next/server/pages/prompt.html +1 -1
  27. package/.next/server/pages/settings.html +1 -1
  28. package/.next/server/pages/system/logs.html +1 -1
  29. package/.next/server/pages/template-references.html +1 -1
  30. package/.next/server/pages-manifest.json +27 -27
  31. package/.next/static/aasdR0_3r-G2QH5k8ApZq/_buildManifest.js +1 -0
  32. package/.next/static/chunks/{224-790cf01fcf6820ee.js → 224-0415408fff1d1c8b.js} +1 -1
  33. package/.next/static/chunks/260-580088826d643423.js +1 -0
  34. package/.next/static/chunks/{289-42781fb699646699.js → 289-fc1b25371e004552.js} +1 -1
  35. package/.next/static/chunks/{592-c667dfd191c1ea0c.js → 564-30bfcb28e1d2c309.js} +3 -3
  36. package/.next/static/chunks/788-dca0d550ad6bd8b2.js +1 -0
  37. package/.next/static/chunks/pages/{_app-55467a8f660aa065.js → _app-064a0ba1b894144e.js} +1 -1
  38. package/.next/static/chunks/pages/documents-676b6c8d14dd5fac.js +1 -0
  39. package/.next/static/chunks/pages/knowledge/files-45b40149a6f4a9d5.js +1 -0
  40. package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +1 -0
  41. package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +1 -0
  42. package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +1 -0
  43. package/.next/static/chunks/pages/template-references-e0ab1466f28cc4fc.js +1 -0
  44. package/.next/static/css/71d287d5aa97349c.css +1 -0
  45. package/messages/en-US.json +0 -4
  46. package/messages/zh-CN.json +0 -4
  47. package/package.json +1 -1
  48. package/.next/static/XgGKtqmwpahXYicc2ieXW/_buildManifest.js +0 -1
  49. package/.next/static/chunks/260-244c94eacd903620.js +0 -1
  50. package/.next/static/chunks/788-e98701da4d6ca319.js +0 -1
  51. package/.next/static/chunks/pages/documents-f9880371363a534c.js +0 -1
  52. package/.next/static/chunks/pages/knowledge/files-3ba329d8e6335929.js +0 -1
  53. package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +0 -1
  54. package/.next/static/chunks/pages/prompt-839287c514595765.js +0 -1
  55. package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +0 -1
  56. package/.next/static/chunks/pages/template-references-68b9bd99fc910922.js +0 -1
  57. package/.next/static/css/10c378422f47671a.css +0 -1
  58. /package/.next/static/{XgGKtqmwpahXYicc2ieXW → aasdR0_3r-G2QH5k8ApZq}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- XgGKtqmwpahXYicc2ieXW
1
+ aasdR0_3r-G2QH5k8ApZq
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/XgGKtqmwpahXYicc2ieXW/_buildManifest.js",
9
- "static/XgGKtqmwpahXYicc2ieXW/_ssgManifest.js"
8
+ "static/aasdR0_3r-G2QH5k8ApZq/_buildManifest.js",
9
+ "static/aasdR0_3r-G2QH5k8ApZq/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -23,8 +23,8 @@
23
23
  "static/chunks/webpack-4224e970a97a4a86.js",
24
24
  "static/chunks/framework-161be364fd69a7ce.js",
25
25
  "static/chunks/main-91fb767ebd74c9c1.js",
26
- "static/css/10c378422f47671a.css",
27
- "static/chunks/pages/_app-55467a8f660aa065.js"
26
+ "static/css/71d287d5aa97349c.css",
27
+ "static/chunks/pages/_app-064a0ba1b894144e.js"
28
28
  ],
29
29
  "/_error": [
30
30
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -40,9 +40,9 @@
40
40
  "static/chunks/883-506cbca959974997.js",
41
41
  "static/chunks/69-34d57b77fd2eed20.js",
42
42
  "static/chunks/700-5d29b0475311f590.js",
43
- "static/chunks/224-790cf01fcf6820ee.js",
43
+ "static/chunks/224-0415408fff1d1c8b.js",
44
44
  "static/chunks/102-881dcc464f983c89.js",
45
- "static/chunks/289-42781fb699646699.js",
45
+ "static/chunks/289-fc1b25371e004552.js",
46
46
  "static/chunks/994-241f87efc61005b8.js",
47
47
  "static/chunks/pages/asset-library-f6319fc04559e43d.js"
48
48
  ],
@@ -55,11 +55,11 @@
55
55
  "static/chunks/69-34d57b77fd2eed20.js",
56
56
  "static/chunks/700-5d29b0475311f590.js",
57
57
  "static/chunks/44-d3545eedd5c75ef1.js",
58
- "static/chunks/224-790cf01fcf6820ee.js",
58
+ "static/chunks/224-0415408fff1d1c8b.js",
59
59
  "static/chunks/787-c18af810af3433f6.js",
60
60
  "static/chunks/102-881dcc464f983c89.js",
61
61
  "static/chunks/195-2c0168eacab722d2.js",
62
- "static/chunks/289-42781fb699646699.js",
62
+ "static/chunks/289-fc1b25371e004552.js",
63
63
  "static/chunks/455-e1b41ac4946d2b6f.js",
64
64
  "static/chunks/pages/document-roles-4ccb2db16dc4b63c.js"
65
65
  ],
@@ -72,13 +72,13 @@
72
72
  "static/chunks/69-34d57b77fd2eed20.js",
73
73
  "static/chunks/700-5d29b0475311f590.js",
74
74
  "static/chunks/44-d3545eedd5c75ef1.js",
75
- "static/chunks/224-790cf01fcf6820ee.js",
75
+ "static/chunks/224-0415408fff1d1c8b.js",
76
76
  "static/chunks/787-c18af810af3433f6.js",
77
77
  "static/chunks/195-2c0168eacab722d2.js",
78
78
  "static/chunks/455-e1b41ac4946d2b6f.js",
79
79
  "static/chunks/506-93f730bc149d0dce.js",
80
80
  "static/chunks/930-0436dcaa92fb41f6.js",
81
- "static/chunks/pages/documents-f9880371363a534c.js"
81
+ "static/chunks/pages/documents-676b6c8d14dd5fac.js"
82
82
  ],
83
83
  "/guide": [
84
84
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -105,10 +105,10 @@
105
105
  "static/chunks/69-34d57b77fd2eed20.js",
106
106
  "static/chunks/700-5d29b0475311f590.js",
107
107
  "static/chunks/44-d3545eedd5c75ef1.js",
108
- "static/chunks/224-790cf01fcf6820ee.js",
108
+ "static/chunks/224-0415408fff1d1c8b.js",
109
109
  "static/chunks/787-c18af810af3433f6.js",
110
110
  "static/chunks/102-881dcc464f983c89.js",
111
- "static/chunks/289-42781fb699646699.js",
111
+ "static/chunks/289-fc1b25371e004552.js",
112
112
  "static/chunks/506-93f730bc149d0dce.js",
113
113
  "static/chunks/850-0f48354694fc6b3e.js",
114
114
  "static/css/ad5a592c79d1448b.css",
@@ -123,11 +123,11 @@
123
123
  "static/chunks/69-34d57b77fd2eed20.js",
124
124
  "static/chunks/700-5d29b0475311f590.js",
125
125
  "static/chunks/44-d3545eedd5c75ef1.js",
126
- "static/chunks/224-790cf01fcf6820ee.js",
126
+ "static/chunks/224-0415408fff1d1c8b.js",
127
127
  "static/chunks/102-881dcc464f983c89.js",
128
- "static/chunks/289-42781fb699646699.js",
128
+ "static/chunks/289-fc1b25371e004552.js",
129
129
  "static/css/ad5a592c79d1448b.css",
130
- "static/chunks/pages/knowledge/files-3ba329d8e6335929.js"
130
+ "static/chunks/pages/knowledge/files-45b40149a6f4a9d5.js"
131
131
  ],
132
132
  "/knowledge/manage": [
133
133
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -138,8 +138,8 @@
138
138
  "static/chunks/69-34d57b77fd2eed20.js",
139
139
  "static/chunks/787-c18af810af3433f6.js",
140
140
  "static/chunks/506-93f730bc149d0dce.js",
141
- "static/chunks/788-e98701da4d6ca319.js",
142
- "static/chunks/pages/knowledge/manage-558987c599dc4cd5.js"
141
+ "static/chunks/788-dca0d550ad6bd8b2.js",
142
+ "static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js"
143
143
  ],
144
144
  "/models": [
145
145
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -170,8 +170,8 @@
170
170
  "static/chunks/700-5d29b0475311f590.js",
171
171
  "static/chunks/44-d3545eedd5c75ef1.js",
172
172
  "static/chunks/195-2c0168eacab722d2.js",
173
- "static/chunks/260-244c94eacd903620.js",
174
- "static/chunks/pages/prompt-839287c514595765.js"
173
+ "static/chunks/260-580088826d643423.js",
174
+ "static/chunks/pages/prompt-edc2dfea09aaedc1.js"
175
175
  ],
176
176
  "/settings": [
177
177
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -188,11 +188,11 @@
188
188
  "static/chunks/69-34d57b77fd2eed20.js",
189
189
  "static/chunks/700-5d29b0475311f590.js",
190
190
  "static/chunks/44-d3545eedd5c75ef1.js",
191
- "static/chunks/224-790cf01fcf6820ee.js",
191
+ "static/chunks/224-0415408fff1d1c8b.js",
192
192
  "static/chunks/102-881dcc464f983c89.js",
193
193
  "static/chunks/195-2c0168eacab722d2.js",
194
- "static/chunks/289-42781fb699646699.js",
195
- "static/chunks/pages/system/logs-2e849bcdf371d791.js"
194
+ "static/chunks/289-fc1b25371e004552.js",
195
+ "static/chunks/pages/system/logs-ee67e2c93147dfc3.js"
196
196
  ],
197
197
  "/template-references": [
198
198
  "static/chunks/webpack-4224e970a97a4a86.js",
@@ -204,8 +204,8 @@
204
204
  "static/chunks/787-c18af810af3433f6.js",
205
205
  "static/chunks/102-881dcc464f983c89.js",
206
206
  "static/chunks/195-2c0168eacab722d2.js",
207
- "static/chunks/592-c667dfd191c1ea0c.js",
208
- "static/chunks/pages/template-references-68b9bd99fc910922.js"
207
+ "static/chunks/564-30bfcb28e1d2c309.js",
208
+ "static/chunks/pages/template-references-e0ab1466f28cc4fc.js"
209
209
  ]
210
210
  },
211
211
  "ampFirstPages": []
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "8247d8de2d25216f1bd25fe7b6450dd5",
7
- "previewModeSigningKey": "9ac4b05b926065bbf44a9a490185061aa7c1092ee0a1e548379a3a2c3ef9b033",
8
- "previewModeEncryptionKey": "4f0d9bc49d562376d29fd50cf400e153be988ae99bc7d39874a25b28d60b1bf7"
6
+ "previewModeId": "6535706c6feb6cb4a65f67ce40485e43",
7
+ "previewModeSigningKey": "81c976033fe9128e1966c7a48c6a66fd5fa55e8f412b11e5555b25c191654413",
8
+ "previewModeEncryptionKey": "3c87e9d66bab407d0bc29e0e1c72d410c01da9323bc9132825a7edde1a14ac8d"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=208,exports.ids=[208],exports.modules={2773:(a,b,c)=>{c.d(b,{$b:()=>A,Hh:()=>u,Hz:()=>x,SK:()=>B,W9:()=>v,_W:()=>y,_n:()=>w,qp:()=>t});var d=c(76760),e=c(44533),f=c(70963),g=c(70933),h=c(14070),i=c(51144);let j=["tender_document","bill_of_quantities","drawing","addendum","contract","technical_specification","schedule_document","quality_safety_document","other"],k={tender_document:"招标文件正文",bill_of_quantities:"工程量清单",drawing:"图纸/设计资料",addendum:"补疑/澄清/答疑",contract:"合同资料",technical_specification:"技术规范/技术要求",schedule_document:"工期/进度资料",quality_safety_document:"质量安全文明资料",other:"其他资料"},l={addendum:100,tender_document:90,contract:80,technical_specification:75,bill_of_quantities:70,drawing:65,schedule_document:60,quality_safety_document:60,other:10};function m(a){return k[a]||"其他资料"}function n(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function o(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function p(a){let b=o(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function q(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function r(a,b,c){let d=a.filter(n),e=(b||[]).map(a=>o(a.materialRootPath)).filter(Boolean);if(e.length>0){let a=d.filter(a=>e.some(b=>o(a.relativePath)===b||o(a.relativePath).startsWith(`${b}/`))),b=s(a,c);return{files:b.files,roots:b.roots.length?b.roots:e,warnings:0===a.length?["项目资料包下未找到已完成索引的可用文件。"]:[]}}let f=s(d,c);return f.scoped?{files:f.files,roots:f.roots,warnings:[]}:{files:d,roots:[...new Set(d.map(a=>p(a.relativePath)).filter(Boolean))],warnings:["模板未显式绑定项目资料包,已使用当前知识库全部可用资料。"]}}function s(a,b){let c=(b||"").trim();if(!c)return{files:a,roots:[...new Set(a.map(a=>p(a.relativePath)).filter(Boolean))],scoped:!1};let d=new Map;for(let b of a){let a=p(b.relativePath);a&&d.set(a,[...d.get(a)||[],b])}let e=[...d.entries()].map(([a,b])=>({group:a,groupFiles:b,score:function(a,b){let c=q(a),d=q(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,c)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);return e.length>0&&(1===e.length||e[0].score>e[1].score)?{files:e[0].groupFiles,roots:[e[0].group],scoped:!0}:{files:a,roots:[...d.keys()],scoped:!1}}function t(a){return(a.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:o(a.materialRootPath)}))}function u(a,b,c={}){return r((0,e.Yy)(a),t(b),c.requirement).files.map(a=>a.relativePath)}function v(a,b,c={}){let f=r((0,e.Yy)(a),t(b),c.requirement),g={tender_document:[],bill_of_quantities:[],drawing:[],addendum:[],contract:[],technical_specification:[],schedule_document:[],quality_safety_document:[],other:[]},h=f.files.map(a=>{let b=function(a){let b=o(a).toLowerCase(),c=[],d=(d,e)=>(d.lastIndex=0,(!!d.test(a)||!!d.test(b))&&(c.push(e),!0));return d(/补疑|答疑|澄清|疑问回复|答复|变更|更正|补充通知|addendum|clarification/iu,"补疑/澄清关键词")?{kind:"addendum",confidence:.92,signals:c}:d(/清单|工程量|分部分项|措施项目|项目特征|招标控制价|boq|bill.?of.?quantities/iu,"清单/工程量关键词")?{kind:"bill_of_quantities",confidence:.9,signals:c}:d(/图纸|施工图|建筑图|结构图|安装图|设计图|总平|平面图|立面图|剖面图|节点|dwg|drawing|cad/iu,"图纸/设计关键词")?{kind:"drawing",confidence:.88,signals:c}:d(/招标文件|投标人须知|评标办法|招标公告|招标正文|招标需求|tender|bidding/iu,"招标文件关键词")?{kind:"tender_document",confidence:.9,signals:c}:d(/合同|协议书|专用条款|通用条款|contract/iu,"合同关键词")?{kind:"contract",confidence:.82,signals:c}:d(/技术规范|技术要求|施工规范|验收规范|标准|做法说明|specification|standard/iu,"技术规范关键词")?{kind:"technical_specification",confidence:.8,signals:c}:d(/工期|进度|计划|节点|里程碑|schedule/iu,"工期进度关键词")?{kind:"schedule_document",confidence:.72,signals:c}:d(/质量|安全|文明|环保|危大|验收|quality|safety/iu,"质量安全关键词")?{kind:"quality_safety_document",confidence:.72,signals:c}:{kind:"other",confidence:.35,signals:["未命中明确资料类型,按其他资料处理"]}}(a.relativePath),c={filePath:a.relativePath,fileName:d.basename(a.relativePath),kind:b.kind,confidence:b.confidence,priority:l[b.kind],chunkCount:a.chunkCount,summary:`${m(b.kind)}:${d.basename(a.relativePath)},可用切片 ${a.chunkCount||0} 条。`,keySignals:b.signals};return g[b.kind].push(c),c}).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence),i=(f.roots[0]||p(h[0]?.filePath||"")||"当前知识库项目").replace(/\.(?:pdf|docx?|xlsx?|xls|dwg|zip)$/iu,"").replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").trim(),j=[...f.warnings];return 0===g.tender_document.length&&j.push("未识别到招标文件正文,工程概况、招标响应和评审要求可能不足。"),0===g.bill_of_quantities.length&&j.push("未识别到工程量清单,施工范围、资源配置和主要工程内容可能不足。"),0===g.drawing.length&&j.push("未识别到图纸/设计资料,施工方法、专业接口和构造做法可能不足。"),{projectName:i,materialRoots:f.roots,files:h,groups:g,warnings:j}}function w(a,b,c){let d=c?(0,f.C)(c):"",e=[`本次文档必须围绕项目资料包”${b.projectName}”展开,不得把其他项目资料混入正文。`,"招标文件正文用于确定项目边界、招标响应、工期质量安全目标和评审关注点。","工程量清单用于确定主要工程内容、分部分项、项目特征、资源配置和施工方法依据。","图纸/设计资料用于确定施工对象、空间关系、构造做法、专业接口和重点难点。","补疑/澄清/答疑属于高优先级修正资料,如与原文件冲突,以补疑/澄清/答疑为准。"],g=a.chapters.map(a=>{var d;let e=(d=a.title,/概况|工程|项目|总体/u.test(d)?["tender_document","addendum","bill_of_quantities"]:/部署|组织|平面|准备/u.test(d)?["tender_document","bill_of_quantities","drawing","addendum"]:/施工|工艺|技术|方案|方法|分部分项/u.test(d)?["bill_of_quantities","drawing","technical_specification","addendum"]:/进度|工期/u.test(d)?["tender_document","addendum","schedule_document","bill_of_quantities"]:/质量|验收/u.test(d)?["tender_document","technical_specification","drawing","quality_safety_document","addendum"]:/安全|文明|环保|风险|危大/u.test(d)?["tender_document","quality_safety_document","drawing","addendum"]:/资源|材料|设备|劳动力|机械/u.test(d)?["bill_of_quantities","drawing","tender_document"]:["tender_document","bill_of_quantities","drawing","addendum","technical_specification"]).filter(a=>b.groups[a]?.length>0),f=e.length?e:["tender_document","bill_of_quantities","drawing"].filter(a=>b.groups[a]?.length>0),g=(c?.works||[]).filter(b=>{if(!b.name)return!1;let c=(0,h.C1)(b.name,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b.name,a));return c||d}).map(a=>`${a.name}:${a.scope.slice(0,120)}`),k=(c?.methods||[]).filter(b=>!!b.applicableWorks?.length&&b.applicableWorks.some(b=>{let c=(0,h.C1)(b,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b,a));return c||d})).map(a=>a.name);return{chapterId:a.id,chapterTitle:a.title,writingGoal:`围绕”${a.title}”组织本项目资料事实,优先体现招标要求、清单工程内容、图纸施工对象和补疑修正口径。`,mustUseMaterialKinds:f,evidenceQueries:Object.fromEntries(j.map(b=>[b,function(a,b){let c=(0,i.Cr)(a.sections||[],a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:sections`),d=(0,i.Cr)(a.requiredFacts,a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:facts`),e=c.selected.join(" "),f=d.selected.join(" "),g=`${a.title} ${e} ${f}`.trim();return[...new Set(({tender_document:[g,`${a.title} 招标范围 工期 质量 标准 评审 响应要求`,"项目概况 招标范围 投标文件 技术标 施工组织设计"],bill_of_quantities:[g,`${a.title} 工程量清单 分部分项 项目特征 数量 单位`,"清单 工程内容 主要分部分项 工程量 项目特征"],drawing:[g,`${a.title} 图纸 设计说明 构造做法 施工部位 节点`,"图纸 设计说明 平面 节点 构造 做法 专业接口"],addendum:[g,`${a.title} 补疑 澄清 答疑 变更 修正`,"补疑 澄清 答疑 招标文件 清单 图纸 修正"],contract:[g,`${a.title} 合同 条款 履约 责任 验收`],technical_specification:[g,`${a.title} 技术规范 施工要求 验收标准 控制要点`],schedule_document:[g,`${a.title} 工期 进度 节点 计划 里程碑`],quality_safety_document:[g,`${a.title} 质量 安全 文明 环保 验收 风险`],other:[g]})[b].filter(Boolean))]}(a,b)])),mustCover:[...new Set([a.purpose,...a.sections||[],...a.requiredFacts,...g,...k])].filter(Boolean).slice(0,24),avoidWriting:["不得脱离项目资料泛泛套写通用内容","不得编造资料未确认的项目专属数字、日期、金额、工程量、材料规格;标准规范编号与法规名称属公共知识可正常引用","不得忽略补疑/澄清对原始资料的修正"]}}),k=function(a){let{profile:b}=a,c=j.map(a=>`${m(a)}:${b.groups[a].length?b.groups[a].map(a=>`${a.fileName}(${a.chunkCount||0})`).join("、"):"未识别"}`).join("\n"),d=a.chapterPlans.map((a,b)=>`${b+1}. ${a.chapterTitle}
1
+ "use strict";exports.id=208,exports.ids=[208],exports.modules={2773:(a,b,c)=>{c.d(b,{$b:()=>A,Hh:()=>u,Hz:()=>x,SK:()=>B,W9:()=>v,_W:()=>y,_n:()=>w,qp:()=>t});var d=c(76760),e=c(44533),f=c(70963),g=c(70933),h=c(14070),i=c(51144);let j=["tender_document","bill_of_quantities","drawing","addendum","contract","technical_specification","schedule_document","quality_safety_document","other"],k={tender_document:"招标文件正文",bill_of_quantities:"工程量清单",drawing:"图纸/设计资料",addendum:"补疑/澄清/答疑",contract:"合同资料",technical_specification:"技术规范/技术要求",schedule_document:"工期/进度资料",quality_safety_document:"质量安全文明资料",other:"其他资料"},l={addendum:100,tender_document:90,contract:80,technical_specification:75,bill_of_quantities:70,drawing:65,schedule_document:60,quality_safety_document:60,other:10};function m(a){return k[a]||"其他资料"}function n(a){return"disk"!==a.status&&"error"!==a.status&&Number(a.indexedAt||0)>0&&Number(a.chunkCount||0)>0}function o(a){return a.replace(/\\/gu,"/").replace(/^\/+|\/+$/gu,"")}function p(a){let b=o(a).split("/").filter(Boolean);return b.length>1?b[0]:d.basename(b[0]||"当前项目")}function q(a){return a.replace(/[\s_\-—()()【】、,,.。·]/gu,"").replaceAll("[","").replaceAll("]","").toLowerCase()}function r(a,b,c){let d=a.filter(n),e=(b||[]).map(a=>o(a.materialRootPath)).filter(Boolean);if(e.length>0){let a=d.filter(a=>e.some(b=>o(a.relativePath)===b||o(a.relativePath).startsWith(`${b}/`))),b=s(a,c);return{files:b.files,roots:b.roots.length?b.roots:e,warnings:0===a.length?["项目资料包下未找到已完成索引的可用文件。"]:[]}}let f=s(d,c);return f.scoped?{files:f.files,roots:f.roots,warnings:[]}:{files:d,roots:[...new Set(d.map(a=>p(a.relativePath)).filter(Boolean))],warnings:["模板未显式绑定项目资料包,已使用当前知识库全部可用资料。"]}}function s(a,b){let c=(b||"").trim();if(!c)return{files:a,roots:[...new Set(a.map(a=>p(a.relativePath)).filter(Boolean))],scoped:!1};let d=new Map;for(let b of a){let a=p(b.relativePath);a&&d.set(a,[...d.get(a)||[],b])}let e=[...d.entries()].map(([a,b])=>({group:a,groupFiles:b,score:function(a,b){let c=q(a),d=q(b);if(c.length>=4&&d.includes(c.slice(0,Math.min(16,c.length))))return 100;let e=new Set(["项目","工程","施工","总承包","资料","招标","图纸","清单"]);return a.split(/(?:\s|_|-|—|(|)|\(|\)|【|】|\[|\]|、|,|,|\.)+/u).filter(a=>a.length>=2&&!e.has(a)).reduce((a,c)=>a+(b.includes(c)?Math.min(20,c.length):0),0)}(a,c)})).filter(a=>a.score>0).sort((a,b)=>b.score-a.score);return e.length>0&&(1===e.length||e[0].score>e[1].score)?{files:e[0].groupFiles,roots:[e[0].group],scoped:!0}:{files:a,roots:[...d.keys()],scoped:!1}}function t(a){return(a.projectBindings||[]).filter(a=>a.materialRootPath).map(a=>({materialRootPath:o(a.materialRootPath)}))}function u(a,b,c={}){return r((0,e.Yy)(a),t(b),c.requirement).files.map(a=>a.relativePath)}function v(a,b,c={}){let f=r((0,e.Yy)(a),t(b),c.requirement),g={tender_document:[],bill_of_quantities:[],drawing:[],addendum:[],contract:[],technical_specification:[],schedule_document:[],quality_safety_document:[],other:[]},h=f.files.map(a=>{let b=function(a){let b=o(a).toLowerCase(),c=[],d=(d,e)=>(d.lastIndex=0,(!!d.test(a)||!!d.test(b))&&(c.push(e),!0));return d(/补疑|答疑|澄清|疑问回复|答复|变更|更正|补充通知|addendum|clarification/iu,"补疑/澄清关键词")?{kind:"addendum",confidence:.92,signals:c}:d(/清单|工程量|分部分项|措施项目|项目特征|招标控制价|boq|bill.?of.?quantities/iu,"清单/工程量关键词")?{kind:"bill_of_quantities",confidence:.9,signals:c}:d(/图纸|施工图|建筑图|结构图|安装图|设计图|总平|平面图|立面图|剖面图|节点|dwg|drawing|cad/iu,"图纸/设计关键词")?{kind:"drawing",confidence:.88,signals:c}:d(/招标文件|投标人须知|评标办法|招标公告|招标正文|招标需求|tender|bidding/iu,"招标文件关键词")?{kind:"tender_document",confidence:.9,signals:c}:d(/合同|协议书|专用条款|通用条款|contract/iu,"合同关键词")?{kind:"contract",confidence:.82,signals:c}:d(/技术规范|技术要求|施工规范|验收规范|标准|做法说明|specification|standard/iu,"技术规范关键词")?{kind:"technical_specification",confidence:.8,signals:c}:d(/工期|进度|计划|节点|里程碑|schedule/iu,"工期进度关键词")?{kind:"schedule_document",confidence:.72,signals:c}:d(/质量|安全|文明|环保|危大|验收|quality|safety/iu,"质量安全关键词")?{kind:"quality_safety_document",confidence:.72,signals:c}:{kind:"other",confidence:.35,signals:["未命中明确资料类型,按其他资料处理"]}}(a.relativePath),c={filePath:a.relativePath,fileName:d.basename(a.relativePath),kind:b.kind,confidence:b.confidence,priority:l[b.kind],chunkCount:a.chunkCount,summary:`${m(b.kind)}:${d.basename(a.relativePath)},可用切片 ${a.chunkCount||0} 条。`,keySignals:b.signals};return g[b.kind].push(c),c}).sort((a,b)=>b.priority-a.priority||b.confidence-a.confidence),i=(f.roots[0]||p(h[0]?.filePath||"")||"当前知识库项目").replace(/\.(?:pdf|docx?|xlsx?|xls|dwg|zip)$/iu,"").replace(/^\d+(?:\.\d+)?[-_\s]*/u,"").trim(),j=[...f.warnings];return 0===g.tender_document.length&&j.push("未识别到招标文件正文,工程概况、招标响应和评审要求可能不足。"),0===g.bill_of_quantities.length&&j.push("未识别到工程量清单,施工范围、资源配置和主要工程内容可能不足。"),0===g.drawing.length&&j.push("未识别到图纸/设计资料,施工方法、专业接口和构造做法可能不足。"),{projectName:i,materialRoots:f.roots,files:h,groups:g,warnings:j}}function w(a,b,c){let d=c?(0,f.C)(c):"",e=[`本次文档必须围绕项目资料包”${b.projectName}”展开,不得把其他项目资料混入正文。`,"招标文件正文用于确定项目边界、招标响应、工期质量安全目标和评审关注点。","招标硬性要求必须逐项明确响应:质量标准、计划工期、缺陷责任期与保修、安全文明目标、项目经理及组织机构;工期/质量/保修类承诺可在概况与质量章节落位,不得遗漏。","工程量清单用于确定主要工程内容、分部分项、项目特征、资源配置和施工方法依据。","图纸/设计资料用于确定施工对象、空间关系、构造做法、专业接口和重点难点。","补疑/澄清/答疑属于高优先级修正资料,如与原文件冲突,以补疑/澄清/答疑为准。"],g=a.chapters.map(a=>{var d;let e=(d=a.title,/概况|工程|项目|总体/u.test(d)?["tender_document","addendum","bill_of_quantities"]:/部署|组织|平面|准备/u.test(d)?["tender_document","bill_of_quantities","drawing","addendum"]:/施工|工艺|技术|方案|方法|分部分项/u.test(d)?["bill_of_quantities","drawing","technical_specification","addendum"]:/进度|工期/u.test(d)?["tender_document","addendum","schedule_document","bill_of_quantities"]:/质量|验收/u.test(d)?["tender_document","technical_specification","drawing","quality_safety_document","addendum"]:/安全|文明|环保|风险|危大/u.test(d)?["tender_document","quality_safety_document","drawing","addendum"]:/资源|材料|设备|劳动力|机械/u.test(d)?["bill_of_quantities","drawing","tender_document"]:["tender_document","bill_of_quantities","drawing","addendum","technical_specification"]).filter(a=>b.groups[a]?.length>0),f=e.length?e:["tender_document","bill_of_quantities","drawing"].filter(a=>b.groups[a]?.length>0),g=(c?.works||[]).filter(b=>{if(!b.name)return!1;let c=(0,h.C1)(b.name,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b.name,a));return c||d}).map(a=>`${a.name}:${a.scope.slice(0,120)}`),k=(c?.methods||[]).filter(b=>!!b.applicableWorks?.length&&b.applicableWorks.some(b=>{let c=(0,h.C1)(b,a.title),d=(a.sections||[]).some(a=>(0,h.C1)(b,a));return c||d})).map(a=>a.name);return{chapterId:a.id,chapterTitle:a.title,writingGoal:`围绕”${a.title}”组织本项目资料事实,优先体现招标要求、清单工程内容、图纸施工对象和补疑修正口径。`,mustUseMaterialKinds:f,evidenceQueries:Object.fromEntries(j.map(b=>[b,function(a,b){let c=(0,i.Cr)(a.sections||[],a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:sections`),d=(0,i.Cr)(a.requiredFacts,a=>(0,i.Ox)(a),{maxItems:12,maxChars:600},`queriesForKind:${a.id}:facts`),e=c.selected.join(" "),f=d.selected.join(" "),g=`${a.title} ${e} ${f}`.trim();return[...new Set(({tender_document:[g,`${a.title} 招标范围 工期 质量 标准 评审 响应要求`,"项目概况 招标范围 投标文件 技术标 施工组织设计"],bill_of_quantities:[g,`${a.title} 工程量清单 分部分项 项目特征 数量 单位`,"清单 工程内容 主要分部分项 工程量 项目特征"],drawing:[g,`${a.title} 图纸 设计说明 构造做法 施工部位 节点`,"图纸 设计说明 平面 节点 构造 做法 专业接口"],addendum:[g,`${a.title} 补疑 澄清 答疑 变更 修正`,"补疑 澄清 答疑 招标文件 清单 图纸 修正"],contract:[g,`${a.title} 合同 条款 履约 责任 验收`],technical_specification:[g,`${a.title} 技术规范 施工要求 验收标准 控制要点`],schedule_document:[g,`${a.title} 工期 进度 节点 计划 里程碑`],quality_safety_document:[g,`${a.title} 质量 安全 文明 环保 验收 风险`],other:[g]})[b].filter(Boolean))]}(a,b)])),mustCover:[...new Set([a.purpose,...a.sections||[],...a.requiredFacts,...g,...k])].filter(Boolean).slice(0,24),avoidWriting:["不得脱离项目资料泛泛套写通用内容","不得编造资料未确认的项目专属数字、日期、金额、工程量、材料规格;标准规范编号与法规名称属公共知识可正常引用","不得忽略补疑/澄清对原始资料的修正"]}}),k=function(a){let{profile:b}=a,c=j.map(a=>`${m(a)}:${b.groups[a].length?b.groups[a].map(a=>`${a.fileName}(${a.chunkCount||0})`).join("、"):"未识别"}`).join("\n"),d=a.chapterPlans.map((a,b)=>`${b+1}. ${a.chapterTitle}
2
2
  - 写作目标:${a.writingGoal}
3
3
  - 必用资料类型:${a.mustUseMaterialKinds.map(m).join("、")||"按现有资料综合使用"}
4
4
  - 必须覆盖:${a.mustCover.join("、")||"按章节目标展开"}
@@ -12,7 +12,7 @@ ${d}`;return{chunk:a,index:b,score:.8*h.filter(a=>e.includes(a)).length+ +!!/\d+
12
12
  说明:以下内容仅用于事实覆盖、检索命中和质量检查,不得新增、删除、重排用户或模板章节。
13
13
  建议关注事实:${a.factFields.map(a=>a.name).join("、")}
14
14
  章节内容建议:${a.chapterRules.map(a=>`${a.title}${a.generationHint?`:${a.generationHint.replace(/\s+/gu," ")}`:""}`).join(";")||"以当前模板章节为准"}
15
- 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|\b\d+\s*[×xX]\s*\d+(?:\s*[×xX]\s*\d+)?\b|\b(?:GB|GB\/T|ISO|IEC|IEEE|RFC|API|DB\d*|T\/[A-Z]+)\s*[\w.-]+\b)/giu,e=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|φ\s*\d+|Φ\s*\d+|GB\s*\d+|JGJ\s*\d+/iu,f=/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|IEC|台|套|个|项|批|次|份|人|㎡|日历天|万元|元|型号|规格|数量|单位/iu,g=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+|\d+\s*[×xX]\s*\d+/iu,h=/\d+(?:\.\d+)?\s*(?:mm|MPa|kN|kN\/m²|kPa|℃|%|d|h|min|m\/s|次\/天)|[<>≤≥]\s*\d+(?:\.\d+)?\s*(?:mm|MPa|%|d)|间距[≤<]?\s*\d+|偏差[≤<]?\s*\d+|坡度\s*\d+(?:\.\d+)?(?::\d+|%)|压实度\s*[≥>]?\s*\d+|坍落度|闭水试验|静载试验|拉拔试验|探伤|试验压力|锚固长度|搭接长度|保护层厚度|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu},22157:(a,b,c)=>{c.d(b,{Te:()=>l,Xl:()=>f,c6:()=>j,jf:()=>n,l$:()=>m,lG:()=>k});var d=c(77598),e=c(78217);function f(a,b,c={}){if(!c.fuzzy){let c=g(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||g(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=h(b).replace(/\s+/gu,"").toLowerCase(),f=i(b),g=[],j=-1,k=a=>{if(j<0)return;let b=c.slice(j,a).join("\n").trim();b&&g.push(b),j=-1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,3}\s+/u.test(c[a]))continue;k(a);let b=h(c[a]).replace(/\s+/gu,"").toLowerCase(),e=i(c[a]);(b===d||b.includes(d)||d.includes(b)||e===f||e.includes(f)||f.includes(e))&&(j=a+1)}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function g(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let f=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,g=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=f){g=a;break}}return d.slice(e,g).join("\n")}function h(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function i(a){return h(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"")}function j(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function k(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function l(a){if(a?.aborted)throw Error("用户中止")}async function m(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||function(a){let b=Math.max(1,a.total);return"chapter"===a.kind?b<=3?b:b<=6?Math.min(b,4):b<=10?Math.min(b,6):Math.min(b,8):"search"===a.kind?b<=6?b:Math.min(b,8):"deepRetrieval"===a.kind?Math.min(b,a.highRisk?6:4):"sectionRepair"===a.kind?b<=3?b:b<=8?4:Math.min(b,6):Math.min(b,4)}({total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class n{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},23500:(a,b,c)=>{c.d(b,{bj:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});var d=c(73024),e=c(76760),f=c(48161),g=c(77598),h=c(44533),i=c(25840),j=c(8753),k=c(6444),l=c(85441),m=c(92808),n=c(56942),o=c(2773),p=c(78217),q=c(42484);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(a){let{version:b,updatedAt:c,changeLog:d,...e}=a;return(0,g.createHash)("sha256").update(function a(b){return Array.isArray(b)?`[${b.map(a).join(",")}]`:b&&"object"==typeof b?`{${Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`:JSON.stringify(b)}(e)).digest("hex")}function u(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||"文档",version:Number.isFinite(a.version)&&a.version>0?Math.floor(a.version):1,updatedAt:Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),changeLog:Array.isArray(a.changeLog)?a.changeLog.filter(a=>a&&"object"==typeof a&&Number.isFinite(a.version)&&"string"==typeof a.summary).slice(0,50):[],projectRoleConfigId:a.projectRoleConfigId||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):[],sections:Array.isArray(a.sections)?a.sections.filter(Boolean):[],tableSections:Array.isArray(a.tableSections)?a.tableSections.filter(Boolean):[],tableRequirements:Array.isArray(a.tableRequirements)?a.tableRequirements.filter(Boolean):[],tablePlans:Array.isArray(a.tablePlans)?a.tablePlans:[],pinnedEvidenceFilePaths:Array.isArray(a.pinnedEvidenceFilePaths)?a.pinnedEvidenceFilePaths.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"文档",purpose:a.description||"",queries:[],requiredFacts:[]}],exportSettings:a.exportSettings,generationSettings:a.generationSettings,promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],projectBindings:Array.isArray(a.projectBindings)?a.projectBindings.filter(a=>a.materialRootPath).map(a=>({materialRootPath:a.materialRootPath.replace(/^\/+|\/+$/gu,"")})):(0,o.qp)(a),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"})):[],builtIn:!1}}function v(){try{let a=s();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));if(!Array.isArray(b))return d.renameSync(a,`${a}.corrupt-${Date.now()}`),[];return b.map(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"prompts.json"),"utf-8"));return Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{return[]}}();if(a.startsWith("custom:")){let c=b.find(b=>b.id===a);return c?{id:a,name:c.name,content:c.content,source:"custom"}:void 0}if(a.startsWith("file:")){let b=a.slice(5);if(d.existsSync(b))return{id:a,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8"),source:"file"}}}function A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(a),e=[],f=[];if(b)for(let a of b.promptRoles){let b=c.find(b=>b.id===a.roleId);if(!b){e.push(a.roleId);continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&f.push(a.roleId)}let g=P(d),h=[];for(let a of g){let d=z(a.promptId);if(!d)continue;let e=c.find(b=>b.id===a.roleId),f=b?.promptRoles.find(b=>b.roleId===a.roleId),g=e?.executionType||function(a){var b;return b=a,/extract|extraction|抽取|清单|图纸|品牌/u.test(b)?"fact_extraction":/validation|校验|审查|审核/u.test(b)?"validation":/format|排版/u.test(b)?"formatting":/writer|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(b)?"chapter_generation":"reference"}(a.roleId),i=function(a,b,c=""){let d=`${a} ${b} ${c}`;return/extract|extraction|抽取|清单|图纸|品牌|识别/u.test(d)?"extraction":/format|排版/u.test(d)?"formatting":/总控|writer|施工组织设计总控|写作主控/u.test(d)?"writer":/chapter_generation|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(d)?"chapter":"reference"}(a.roleId,g,d.name),j=`projectRole:${b?.id||"unknown"}:${a.roleId}:order=${f?.order??0}`;h.push({...d,roleId:a.roleId,contentHash:x(d.content),contentPreview:y(d.content),executionType:g,category:i,bindingSource:j,roleConfigId:b?.id,roleName:e?.name,order:f?.order})}return{bindings:g,prompts:h,writerPrompts:h.filter(a=>"writer"===a.category),chapterPrompts:h.filter(a=>"chapter"===a.category),extractionPrompts:h.filter(a=>"extraction"===a.category),formattingPrompts:h.filter(a=>"formatting"===a.category),referencePrompts:h.filter(a=>"reference"===a.category),unresolvedRoles:[...new Set(e)],missingResourceRoles:[...new Set(f)]}}function C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(d)){b=(e.version||0)+1;let a=d.chapters.map(a=>a.title).join("、");c=[{version:b,timestamp:f,summary:a?`章节结构调整:${a.slice(0,80)}${a.length>80?"…":""}`:"模版内容已更新"},...e.changeLog||[]].slice(0,50)}else e?(b=e.version||1,c=e.changeLog||[]):(b=1,c=[{version:1,timestamp:f,summary:"创建模版"}]);let g={...d,version:b,updatedAt:f,changeLog:c},h=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r,s=D(a),t=[];if(!s)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let u=(0,i.XB)("prompt"),v=N(s),w=O(s);v||t.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),v&&!w&&t.push({level:"error",message:`项目角色配置不存在或已删除:${v}`}),s.promptIds?.length&&t.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),s.promptBindings?.length&&t.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let x=Q(s),y=(0,o.qp)(s);w&&0===w.promptRoles.length&&t.push({level:"error",message:"项目角色配置未配置提示词角色。"}),w&&w.promptRoles.length>0&&0===x.length&&t.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let z=e.resolve(b),B=(0,h.Yy)(z),C=function(a,b){if(0===a.length)return[];let c=new Set(b.map(a=>a.relativePath)),d=[],e=new Set;for(let f of a){let a=f.materialRootPath.replace(/^\/+|\/+$/gu,"");for(let f of c.has(a)?[a]:b.filter(b=>{var c;return b.relativePath.startsWith(`${a}/`)&&"disk"!==(c=b).status&&"error"!==c.status&&Number(c.indexedAt||0)>0&&Number(c.chunkCount||0)>0}).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(y,B);if(0===y.length?t.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===C.length&&t.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),s&&(f=(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),0===y.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=t.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&t.splice(a,1)}let E=new Map(B.map(a=>[a.relativePath,a])),G=[],H=C.map(a=>{let b=E.get(a);return b||t.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&G.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&t.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&t.push({level:"warning",message:`知识库文件暂无可检索内容切片:${a}`}),{filePath:a,roleId:"project_material",roleName:"项目资料包",exists:!!b,indexed:!!(b&&b.indexedAt>0&&"disk"!==b.status),chunkCount:b?.chunkCount??0,vectorReady:!!(b&&b.chunkCount>0)}}),I=H.filter(a=>a.exists).length,J=H.filter(a=>a.exists&&!a.indexed).length;I>0&&J===I?t.push({level:"error",message:`模板绑定的项目资料包(${I} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):t.push(...G);let K=A(x),L=new Set(w?.promptRoles.map(a=>a.roleId)||[]);for(let a of w?.promptRoles||[]){let b=u.find(b=>b.id===a.roleId);if(!b){t.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&t.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let M=x.map(a=>{let b=u.find(b=>b.id===a.roleId),c=K.find(b=>b.id===a.promptId);return b||t.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),L.has(a.roleId)||t.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||t.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&t.push({level:"warning",message:`提示词为空:${c.name}`}),{...a,roleName:b?.name,promptTitle:c?.name,promptSource:c?.source,contentLength:c?.content.length??0,contentHash:c?.contentHash,contentPreview:c?.contentPreview,exists:!!c}}),P=(w?.promptRoles||[]).map(a=>{let b=u.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=x.filter(b=>b.roleId===a.roleId).map(a=>a.promptId),e=b?0===c.length?"missing_resource":0===d.length?"missing_prompt":"ok":"role_missing";return{roleId:a.roleId,roleName:b?.name,order:a.order,resourceIds:c,boundPromptIds:d,status:e}});if(K.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(K.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))t.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(s){let a=f||(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),b=function(a,b){let c=function(a,b){let c=[a.name,a.category,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose])].join("\n"),d=new Set(["project_overview","scope_description"]);return/需求|规则|响应|方案|实施|专项|安全|质量|进度|合规|施工组织|技术标/iu.test(c)&&["requirement_document","structured_data"].forEach(a=>d.add(a)),(/安全|质量|进度|工期|文明|环保|验收/iu.test(c)||b.materialInventory.schedule_quality_safety.length>0)&&d.add("schedule_quality_safety"),(/设计|图纸|平面|立面|剖面|做法/iu.test(c)||b.materialInventory.design_specification.length>0)&&d.add("design_specification"),(/风险|重点|难点|约束|现场|危大/iu.test(c)||b.materialInventory.risk_constraints.length>0)&&d.add("risk_constraints"),d}(a,b);return[...new Set([...function(a){let b=[a.name,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose,...a.requiredFacts||[],...a.queries||[]])].join("\n"),c=new Set((0,m.t0)(b,m.hW));return c.add("project_overview"),c.add("scope_description"),[...c]}(a),...c])].map(a=>{let d=b.materialInventory[a]||[],e=c.has(a),f=d.length>0,g=f&&d.length<(e?2:1);return{role:a,required:e,satisfied:f,weak:g,evidenceCount:d.length,filePaths:d.map(a=>a.filePath),reason:f?`已匹配 ${d.length} 个资料文件`:e?"必需资料角色缺失":"可选资料角色缺失"}})}(s,a);for(let c of(g=(0,n.$)({template:s,spec:(0,k.x)(s).spec,summary:a,resolvedRoles:b})).blockingIssues)t.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)t.push({level:"warning",message:a})}try{let a=(0,k.x)(s).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(s,a),f=s.generationSettings||s.exportSettings,g=(0,p.q6)(s.exportSettings||s.generationSettings),h=(0,p.py)(d.requirement||""),i=f?.targetPages?.target||f?.targetPages?.min,l=h.targetChars||(h.targetPages?h.targetPages*g:void 0)||(i?i*g:void 0),m=e.reduce((b,c)=>b+Math.max(a.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.dynamicChapterRule.minWordsPerChapter||0),0),n=Math.round(l||m||1200*e.length),o=C.reduce((a,b)=>a+(E.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:q}=await Promise.all([c.e(4680),c.e(9227)]).then(c.bind(c,79227));j=q({template:s,chapters:e,requirement:d.requirement,materialFileCount:C.length,evidenceCount:o,targetWords:n,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0)})}catch{}try{r=(0,q.ze)({templateName:s.name,chapterTitles:s.chapters.map(a=>a.title)})}catch{}return{templateId:a,projectRoleConfigId:v,configName:w?.name,fileDiagnostics:H,promptDiagnostics:M,roleDiagnostics:P,readiness:g,issues:t,strategyPreview:j,referenceStructureSuggestion:r}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(a),g=(0,h.Yy)(d),i=JSON.stringify({templateId:a,templateVersion:f?.version??0,templateUpdatedAt:f?.updatedAt??0,projectRoot:d,requirement:c.requirement??"",fileCount:g.length,lastFileMtime:g.reduce((a,b)=>Math.max(a,b.mtime),0)}),j=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...b,id:`${b.id}-copy-${c}`,name:`${b.name} Copy`,builtIn:!1,version:1,updatedAt:c,changeLog:[{version:1,timestamp:c,summary:`从 ${b.id} v${b.version||1} 复制`}]}),e=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,j.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(a){let b=new Set,c=[];for(let d of a){let a=`${d.roleId}:${d.promptId}`;!d.promptId||!d.roleId||b.has(a)||(b.add(a),c.push(d))}return c}function Q(a){let b=O(a);if(!b)return[];let c=(0,i.XB)("prompt"),d=[];for(let a of[...b.promptRoles].sort((a,b)=>a.order-b.order)){let b=c.find(b=>b.id===a.roleId),e=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[];b&&0!==e.length&&d.push(...e.map(a=>({promptId:a,roleId:b.id})))}return P(d)}},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},44533:(a,b,c)=>{c.d(b,{NW:()=>l,Qh:()=>m,VS:()=>q,Yy:()=>p,a2:()=>k,aY:()=>o});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(){return g.join(h.homedir(),".customize-agent")}function l(a){return(0,d.getProjectKbPath)(g.resolve(a))}function m(){return j||(j=new d.MultiProjectManager(k())),j}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!n(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!n(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function p(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=l(a);if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function q(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=p(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
15
+ 质量提醒:${a.gateRules.map(a=>a.name).join("、")}`}},14070:(a,b,c)=>{function d(a){let b=a.split(/[,。;:、\s\d()()《》<>【】"“”'‘’\-/\\|,.:;]+/u).filter(Boolean),c=new Set;for(let a of b){let b=a.trim();if(b.length>=2&&c.add(b),b.length>=3)for(let a=0;a<=b.length-2;a++){let d=b.slice(a,a+2);d.length>=2&&!/^[a-zA-Z0-9]+$/u.test(d)&&c.add(d)}}return[...c]}function e(a,b,c=.3){return function(a,b){let c=new Set(d(a)),e=new Set(d(b));if(0===c.size||0===e.size)return 0;let f=0;for(let a of c)if(e.has(a))f+=1;else if(a.length>=2){for(let b of e)if(b.length>=2&&(b.includes(a)||a.includes(b))){f+=.5;break}}return f/Math.max(c.size,1)}(a,b)>=c}c.d(b,{C1:()=>e})},18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,_W:()=>d,aX:()=>h,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)\b|\b\d+\s*[×xX]\s*\d+(?:\s*[×xX]\s*\d+)?\b|\b(?:GB|GB\/T|ISO|IEC|IEEE|RFC|API|DB\d*|T\/[A-Z]+)\s*[\w.-]+\b)/giu,e=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|φ\s*\d+|Φ\s*\d+|GB\s*\d+|JGJ\s*\d+/iu,f=/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|IEC|台|套|个|项|批|次|份|人|㎡|日历天|万元|元|型号|规格|数量|单位/iu,g=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+|\d+\s*[×xX]\s*\d+/iu,h=/\d+(?:\.\d+)?\s*(?:m³|m3|m²|㎡|mm|cm|m\/s|m|km|MPa|kN|kN\/m²|kPa|℃|%|d|h|min|MΩ|t|次\/天)|[MC]\d{1,3}(?:\.\d+)?|[<>≤≥]\s*\d+(?:\.\d+)?\s*(?:mm|MPa|%|d)|间距[≤<]?\s*\d+|偏差[≤<]?\s*\d+|坡度\s*\d+(?:\.\d+)?(?::\d+|%)|压实度\s*[≥>]?\s*\d+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu},22157:(a,b,c)=>{c.d(b,{Te:()=>l,Xl:()=>f,c6:()=>j,jf:()=>n,l$:()=>m,lG:()=>k});var d=c(77598),e=c(78217);function f(a,b,c={}){if(!c.fuzzy){let c=g(a,b,/^###\s+(?:\d+(?:\.\d+)*\s+)?/u);return c||g(a,b,/^#{3,4}\s+(?:\d+(?:\.\d+)*\s+)?/u)}return function(a,b){let c=a.split("\n"),d=h(b).replace(/\s+/gu,"").toLowerCase(),f=i(b),g=[],j=-1,k=a=>{if(j<0)return;let b=c.slice(j,a).join("\n").trim();b&&g.push(b),j=-1};for(let a=0;a<c.length;a+=1){if(!/^\s*#{2,3}\s+/u.test(c[a]))continue;k(a);let b=h(c[a]).replace(/\s+/gu,"").toLowerCase(),e=i(c[a]);(b===d||b.includes(d)||d.includes(b)||e===f||e.includes(f)||f.includes(e))&&(j=a+1)}return k(c.length),g.sort((a,b)=>(0,e.V7)(b)-(0,e.V7)(a))[0]||""}(a,b)}function g(a,b,c){let d=a.split("\n"),e=d.findIndex(a=>c.test(a.trim())&&a.includes(b));if(e<0)return"";let f=/^(#{2,6})\s+/u.exec(d[e].trim())?.[1].length||3,g=d.length;for(let a=e+1;a<d.length;a+=1){let b=/^(#{2,6})\s+/u.exec(d[a].trim());if(b&&b[1].length<=f){g=a;break}}return d.slice(e,g).join("\n")}function h(a){return a.replace(/^\s*#{2,4}\s*/u,"").replace(/^\s*(?:\d+(?:\.\d+)*|[一二三四五六七八九十]+)(?:[、..]|\s+)\s*/u,"").trim()}function i(a){return h(a).replace(/\s+/gu,"").toLowerCase().replace(/施工(?=方案|流程|方法)/gu,"").replace(/专项(?=方案)/gu,"").replace(/项目|工程|主要|重点|技术/gu,"")}function j(a){return(0,d.createHash)("sha1").update(JSON.stringify(a)).digest("hex")}function k(a){if(null==a)return"";if("string"==typeof a)return a;if("number"==typeof a||"boolean"==typeof a)return String(a);try{return JSON.stringify(a)}catch{return String(a)}}function l(a){if(a?.aborted)throw Error("用户中止")}async function m(a,b,c){if(0===a.length)return[];let d=Math.max(1,Math.min(a.length,c.concurrency||function(a){let b=Math.max(1,a.total);return"chapter"===a.kind?b<=3?b:b<=6?Math.min(b,4):b<=10?Math.min(b,6):Math.min(b,8):"search"===a.kind?b<=6?b:Math.min(b,8):"deepRetrieval"===a.kind?Math.min(b,a.highRisk?6:4):"sectionRepair"===a.kind?b<=3?b:b<=8?4:Math.min(b,6):Math.min(b,4)}({total:a.length,kind:c.kind,targetWords:c.targetWords,highRisk:c.highRisk}))),e=Array(a.length),f=0;return await Promise.all(Array.from({length:d},async()=>{for(;f<a.length;){let c=f;f+=1,e[c]=await b(a[c],c)}})),e}class n{constructor(a){this.queue=[],this.available=Math.max(1,Math.floor(a))}async acquire(){if(this.available>0){this.available-=1;return}await new Promise(a=>{this.queue.push(a)})}release(){let a=this.queue.shift();a?a():this.available+=1}async run(a){await this.acquire();try{return await a()}finally{this.release()}}}},23500:(a,b,c)=>{c.d(b,{bj:()=>B,N6:()=>N,h0:()=>J,bV:()=>K,QJ:()=>D,jG:()=>C,dU:()=>A,Bh:()=>E,zY:()=>Q,xm:()=>F,J5:()=>I,C1:()=>M});var d=c(73024),e=c(76760),f=c(48161),g=c(77598),h=c(44533),i=c(25840),j=c(8753),k=c(6444),l=c(85441),m=c(92808),n=c(56942),o=c(2773),p=c(78217),q=c(42484);function r(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function s(){return e.join(r(),"document-templates.json")}function t(a){let{version:b,updatedAt:c,changeLog:d,...e}=a;return(0,g.createHash)("sha256").update(function a(b){return Array.isArray(b)?`[${b.map(a).join(",")}]`:b&&"object"==typeof b?`{${Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`).join(",")}}`:JSON.stringify(b)}(e)).digest("hex")}function u(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||"文档",version:Number.isFinite(a.version)&&a.version>0?Math.floor(a.version):1,updatedAt:Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),changeLog:Array.isArray(a.changeLog)?a.changeLog.filter(a=>a&&"object"==typeof a&&Number.isFinite(a.version)&&"string"==typeof a.summary).slice(0,50):[],projectRoleConfigId:a.projectRoleConfigId||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):[],sections:Array.isArray(a.sections)?a.sections.filter(Boolean):[],tableSections:Array.isArray(a.tableSections)?a.tableSections.filter(Boolean):[],tableRequirements:Array.isArray(a.tableRequirements)?a.tableRequirements.filter(Boolean):[],tablePlans:Array.isArray(a.tablePlans)?a.tablePlans:[],pinnedEvidenceFilePaths:Array.isArray(a.pinnedEvidenceFilePaths)?a.pinnedEvidenceFilePaths.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"文档",purpose:a.description||"",queries:[],requiredFacts:[]}],exportSettings:a.exportSettings,generationSettings:a.generationSettings,promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],projectBindings:Array.isArray(a.projectBindings)?a.projectBindings.filter(a=>a.materialRootPath).map(a=>({materialRootPath:a.materialRootPath.replace(/^\/+|\/+$/gu,"")})):(0,o.qp)(a),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"})):[],builtIn:!1}}function v(){try{let a=s();if(!d.existsSync(a))return[];let b=JSON.parse(d.readFileSync(a,"utf-8"));if(!Array.isArray(b))return d.renameSync(a,`${a}.corrupt-${Date.now()}`),[];return b.map(u)}catch{try{let a=s();d.existsSync(a)&&d.renameSync(a,`${a}.corrupt-${Date.now()}`)}catch{}return[]}}function w(a){d.writeFileSync(s(),JSON.stringify(a.map(u),null,2),"utf-8")}function x(a){return(0,g.createHash)("sha256").update(a).digest("hex").slice(0,12)}function y(a){return a.replace(/\s+/gu," ").trim().slice(0,160)}function z(a){let b=function(){try{let a=JSON.parse(d.readFileSync(e.join(r(),"prompts.json"),"utf-8"));return Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{return[]}}();if(a.startsWith("custom:")){let c=b.find(b=>b.id===a);return c?{id:a,name:c.name,content:c.content,source:"custom"}:void 0}if(a.startsWith("file:")){let b=a.slice(5);if(d.existsSync(b))return{id:a,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8"),source:"file"}}}function A(a=[]){if(0===a.length)return[];let b=[];for(let c of a){let a=z(c.promptId);a&&b.push({...a,roleId:c.roleId,contentHash:x(a.content),contentPreview:y(a.content)})}return b}function B(a){let b=O(a),c=(0,i.XB)("prompt"),d=Q(a),e=[],f=[];if(b)for(let a of b.promptRoles){let b=c.find(b=>b.id===a.roleId);if(!b){e.push(a.roleId);continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&f.push(a.roleId)}let g=P(d),h=[];for(let a of g){let d=z(a.promptId);if(!d)continue;let e=c.find(b=>b.id===a.roleId),f=b?.promptRoles.find(b=>b.roleId===a.roleId),g=e?.executionType||function(a){var b;return b=a,/extract|extraction|抽取|清单|图纸|品牌/u.test(b)?"fact_extraction":/validation|校验|审查|审核/u.test(b)?"validation":/format|排版/u.test(b)?"formatting":/writer|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(b)?"chapter_generation":"reference"}(a.roleId),i=function(a,b,c=""){let d=`${a} ${b} ${c}`;return/extract|extraction|抽取|清单|图纸|品牌|识别/u.test(d)?"extraction":/format|排版/u.test(d)?"formatting":/总控|writer|施工组织设计总控|写作主控/u.test(d)?"writer":/chapter_generation|method|schedule|quality|resource|safety|dangerous|施工|进度|质量|资源|安全|危大/u.test(d)?"chapter":"reference"}(a.roleId,g,d.name),j=`projectRole:${b?.id||"unknown"}:${a.roleId}:order=${f?.order??0}`;h.push({...d,roleId:a.roleId,contentHash:x(d.content),contentPreview:y(d.content),executionType:g,category:i,bindingSource:j,roleConfigId:b?.id,roleName:e?.name,order:f?.order})}return{bindings:g,prompts:h,writerPrompts:h.filter(a=>"writer"===a.category),chapterPrompts:h.filter(a=>"chapter"===a.category),extractionPrompts:h.filter(a=>"extraction"===a.category),formattingPrompts:h.filter(a=>"formatting"===a.category),referencePrompts:h.filter(a=>"reference"===a.category),unresolvedRoles:[...new Set(e)],missingResourceRoles:[...new Set(f)]}}function C(){let a=(0,j.V)().templates,b=v().filter(b=>!a.some(a=>a.id===b.id));return[...a,...b]}function D(a){return C().find(b=>b.id===a)}function E(a){let b,c,d=u(a),e=v().find(a=>a.id===d.id),f=Date.now();if(e&&t(e)!==t(d)){b=(e.version||0)+1;let a=d.chapters.map(a=>a.title).join("、");c=[{version:b,timestamp:f,summary:a?`章节结构调整:${a.slice(0,80)}${a.length>80?"…":""}`:"模版内容已更新"},...e.changeLog||[]].slice(0,50)}else e?(b=e.version||1,c=e.changeLog||[]):(b=1,c=[{version:1,timestamp:f,summary:"创建模版"}]);let g={...d,version:b,updatedAt:f,changeLog:c},h=v().filter(a=>a.id!==d.id);return h.push(g),w(h),g}async function F(a,b=(0,h.aY)(),d={}){let f,g,j,r,s=D(a),t=[];if(!s)return{issues:[{level:"error",message:"文档模板不存在或已删除"}],fileDiagnostics:[],promptDiagnostics:[],roleDiagnostics:[],readiness:void 0,strategyPreview:void 0,config:void 0};let u=(0,i.XB)("prompt"),v=N(s),w=O(s);v||t.push({level:"error",message:"模板未绑定项目角色配置,且未匹配到自动专业角色配置"}),v&&!w&&t.push({level:"error",message:`项目角色配置不存在或已删除:${v}`}),s.promptIds?.length&&t.push({level:"warning",message:"模板存在旧 promptIds 字段残留,该字段已不参与生成,请清理模板历史数据。"}),s.promptBindings?.length&&t.push({level:"warning",message:"模板存在旧 promptBindings 字段残留,该字段已不参与生成,请清理模板历史数据。"});let x=Q(s),y=(0,o.qp)(s);w&&0===w.promptRoles.length&&t.push({level:"error",message:"项目角色配置未配置提示词角色。"}),w&&w.promptRoles.length>0&&0===x.length&&t.push({level:"error",message:"项目角色配置中的提示词角色未绑定任何有效提示词资源。"});let z=e.resolve(b),B=(0,h.Yy)(z),C=function(a,b){if(0===a.length)return[];let c=new Set(b.map(a=>a.relativePath)),d=[],e=new Set;for(let f of a){let a=f.materialRootPath.replace(/^\/+|\/+$/gu,"");for(let f of c.has(a)?[a]:b.filter(b=>{var c;return b.relativePath.startsWith(`${a}/`)&&"disk"!==(c=b).status&&"error"!==c.status&&Number(c.indexedAt||0)>0&&Number(c.chunkCount||0)>0}).map(a=>a.relativePath))e.has(f)||(e.add(f),d.push(f))}return d}(y,B);if(0===y.length?t.push({level:"error",message:"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"}):0===C.length&&t.push({level:"error",message:"模板绑定的项目资料包不存在或没有可用索引文件,请重新选择项目资料包。"}),s&&(f=(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),0===y.length&&!f.source.ambiguous&&f.source.selectedFiles>0)){let a=t.findIndex(a=>"error"===a.level&&"模板未绑定项目资料包,请先选择需要参与生成的项目文件夹。"===a.message);a>=0&&t.splice(a,1)}let E=new Map(B.map(a=>[a.relativePath,a])),G=[],H=C.map(a=>{let b=E.get(a);return b||t.push({level:"error",message:`知识库文件不存在:${a}`}),b&&("disk"===b.status||0===b.indexedAt)&&G.push({level:"warning",message:`知识库文件存在但尚未完成索引:${a}`}),b?.status==="error"&&t.push({level:"warning",message:`知识库文件索引失败:${a}${b.errorMessage?`,${b.errorMessage}`:""}`}),b&&0===b.chunkCount&&t.push({level:"warning",message:`知识库文件暂无可检索内容切片:${a}`}),{filePath:a,roleId:"project_material",roleName:"项目资料包",exists:!!b,indexed:!!(b&&b.indexedAt>0&&"disk"!==b.status),chunkCount:b?.chunkCount??0,vectorReady:!!(b&&b.chunkCount>0)}}),I=H.filter(a=>a.exists).length,J=H.filter(a=>a.exists&&!a.indexed).length;I>0&&J===I?t.push({level:"error",message:`模板绑定的项目资料包(${I} 份文件)均尚未完成解析入库,请等待后台索引完成后再运行模板`}):t.push(...G);let K=A(x),L=new Set(w?.promptRoles.map(a=>a.roleId)||[]);for(let a of w?.promptRoles||[]){let b=u.find(b=>b.id===a.roleId);if(!b){t.push({level:"error",message:`提示词角色不存在:${a.roleId}`});continue}0===(b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]).length&&t.push({level:"error",message:`提示词角色未绑定资源:${b.name}`})}let M=x.map(a=>{let b=u.find(b=>b.id===a.roleId),c=K.find(b=>b.id===a.promptId);return b||t.push({level:"error",message:`提示词角色不存在:${a.roleId}`}),L.has(a.roleId)||t.push({level:"error",message:`提示词绑定不属于当前项目角色配置:${a.roleId}`}),c||t.push({level:"error",message:`提示词不存在:${a.promptId}`}),c&&!c.content.trim()&&t.push({level:"warning",message:`提示词为空:${c.name}`}),{...a,roleName:b?.name,promptTitle:c?.name,promptSource:c?.source,contentLength:c?.content.length??0,contentHash:c?.contentHash,contentPreview:c?.contentPreview,exists:!!c}}),P=(w?.promptRoles||[]).map(a=>{let b=u.find(b=>b.id===a.roleId),c=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[],d=x.filter(b=>b.roleId===a.roleId).map(a=>a.promptId),e=b?0===c.length?"missing_resource":0===d.length?"missing_prompt":"ok":"role_missing";return{roleId:a.roleId,roleName:b?.name,order:a.order,resourceIds:c,boundPromptIds:d,status:e}});if(K.length>1)try{let{detectPromptRuleConflicts:a}=await Promise.resolve().then(c.bind(c,71001));for(let b of a(K.map(a=>({promptId:a.id,name:a.name,roleId:a.roleId,content:a.content}))))t.push({level:b.level,message:`提示词规则冲突:${b.message}`})}catch{}if(s){let a=f||(0,l.P)(z,{requirement:d.requirement,boundFilePaths:C}),b=function(a,b){let c=function(a,b){let c=[a.name,a.category,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose])].join("\n"),d=new Set(["project_overview","scope_description"]);return/需求|规则|响应|方案|实施|专项|安全|质量|进度|合规|施工组织|技术标/iu.test(c)&&["requirement_document","structured_data"].forEach(a=>d.add(a)),(/安全|质量|进度|工期|文明|环保|验收/iu.test(c)||b.materialInventory.schedule_quality_safety.length>0)&&d.add("schedule_quality_safety"),(/设计|图纸|平面|立面|剖面|做法/iu.test(c)||b.materialInventory.design_specification.length>0)&&d.add("design_specification"),(/风险|重点|难点|约束|现场|危大/iu.test(c)||b.materialInventory.risk_constraints.length>0)&&d.add("risk_constraints"),d}(a,b);return[...new Set([...function(a){let b=[a.name,a.description,a.outputTitle,...a.chapters.flatMap(a=>[a.title,a.purpose,...a.requiredFacts||[],...a.queries||[]])].join("\n"),c=new Set((0,m.t0)(b,m.hW));return c.add("project_overview"),c.add("scope_description"),[...c]}(a),...c])].map(a=>{let d=b.materialInventory[a]||[],e=c.has(a),f=d.length>0,g=f&&d.length<(e?2:1);return{role:a,required:e,satisfied:f,weak:g,evidenceCount:d.length,filePaths:d.map(a=>a.filePath),reason:f?`已匹配 ${d.length} 个资料文件`:e?"必需资料角色缺失":"可选资料角色缺失"}})}(s,a);for(let c of(g=(0,n.$)({template:s,spec:(0,k.x)(s).spec,summary:a,resolvedRoles:b})).blockingIssues)t.push({level:"error",message:`生成准备度不足:${c}`});for(let a of g.warnings)t.push({level:"warning",message:a})}try{let a=(0,k.x)(s).spec,{effectiveTemplateChapters:b}=await Promise.resolve().then(c.bind(c,70208)),e=b(s,a),f=s.generationSettings||s.exportSettings,g=(0,p.q6)(s.exportSettings||s.generationSettings),h=(0,p.py)(d.requirement||""),i=f?.targetPages?.target||f?.targetPages?.min,l=h.targetChars||(h.targetPages?h.targetPages*g:void 0)||(i?i*g:void 0),m=e.reduce((b,c)=>b+Math.max(a.chapterRules.find(a=>a.id===c.id||a.title===c.title)?.minWords||0,a.dynamicChapterRule.minWordsPerChapter||0),0),n=Math.round(l||m||1200*e.length),o=C.reduce((a,b)=>a+(E.get(b)?.chunkCount??0),0),{previewGenerationBudgetForTemplate:q}=await Promise.all([c.e(4680),c.e(9227)]).then(c.bind(c,79227));j=q({template:s,chapters:e,requirement:d.requirement,materialFileCount:C.length,evidenceCount:o,targetWords:n,hasVeryLargeExplicitChapter:e.some(a=>(a.sections||[]).filter(Boolean).length>=30),configuredChapterConcurrency:Number(process.env.DOCUMENT_CHAPTER_CONCURRENCY||0)})}catch{}try{r=(0,q.ze)({templateName:s.name,chapterTitles:s.chapters.map(a=>a.title)})}catch{}return{templateId:a,projectRoleConfigId:v,configName:w?.name,fileDiagnostics:H,promptDiagnostics:M,roleDiagnostics:P,readiness:g,issues:t,strategyPreview:j,referenceStructureSuggestion:r}}let G=new Map,H=Math.max(5e3,Number(process.env.DOCUMENT_TEMPLATE_VALIDATION_CACHE_TTL_MS??3e4));async function I(a,b=(0,h.aY)(),c={}){let d=e.resolve(b),f=D(a),g=(0,h.Yy)(d),i=JSON.stringify({templateId:a,templateVersion:f?.version??0,templateUpdatedAt:f?.updatedAt??0,projectRoot:d,requirement:c.requirement??"",fileCount:g.length,lastFileMtime:g.reduce((a,b)=>Math.max(a,b.mtime),0)}),j=G.get(i);if(j&&Date.now()-j.at<H)return j.result;let k=await F(a,d,c);return G.set(i,{at:Date.now(),result:k}),k}function J(a){if(new Set((0,j.V)().templates.map(a=>a.id)).has(a))throw Error("Configured template cannot be deleted");w(v().filter(b=>b.id!==a))}function K(a){let b=D(a);if(!b)throw Error("Document template not found");let c=Date.now(),d=u({...b,id:`${b.id}-copy-${c}`,name:`${b.name} Copy`,builtIn:!1,version:1,updatedAt:c,changeLog:[{version:1,timestamp:c,summary:`从 ${b.id} v${b.version||1} 复制`}]}),e=v();return e.push(d),w(e),d}function L(a,b){try{return RegExp(b,"iu").test(a)}catch{return a.includes(b)}}function M(a,b){return(function(a){let b=`${a.name} ${a.category} ${a.outputTitle} ${a.description}`;return(0,j.V)().chapterTitleFilters.filter(a=>a.templateMatchers.some(a=>L(b,a)))})(b).some(b=>!!b.minLength&&a.length<b.minLength||!!b.maxLength&&a.length>b.maxLength||b.forbiddenPatterns.some(b=>L(a,b)))}function N(a){return a.projectRoleConfigId||void 0}function O(a){let b=N(a);return b?(0,i.Mu)(b):void 0}function P(a){let b=new Set,c=[];for(let d of a){let a=`${d.roleId}:${d.promptId}`;!d.promptId||!d.roleId||b.has(a)||(b.add(a),c.push(d))}return c}function Q(a){let b=O(a);if(!b)return[];let c=(0,i.XB)("prompt"),d=[];for(let a of[...b.promptRoles].sort((a,b)=>a.order-b.order)){let b=c.find(b=>b.id===a.roleId),e=b?b.resourceIds?.length?b.resourceIds:b.resourceId?[b.resourceId]:[]:[];b&&0!==e.length&&d.push(...e.map(a=>({promptId:a,roleId:b.id})))}return P(d)}},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},44533:(a,b,c)=>{c.d(b,{NW:()=>l,Qh:()=>m,VS:()=>q,Yy:()=>p,a2:()=>k,aY:()=>o});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(){return g.join(h.homedir(),".customize-agent")}function l(a){return(0,d.getProjectKbPath)(g.resolve(a))}function m(){return j||(j=new d.MultiProjectManager(k())),j}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!n(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!n(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function p(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=l(a);if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function q(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=p(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
16
16
  ${a.category}
17
17
  ${a.format}
18
18
  ${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await m().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}function f(a){let b=0,c=`${a.key||""}${a.fieldName||""}${a.fieldId||""}`,d="string"==typeof a.value?a.value:"number"==typeof a.value?String(a.value):"";return a.required&&(b+=10),/\d/u.test(d)&&(b+=5),/项目名称|工程名称|项目编号|招标人|建设单位|发包人|建设地点|建设规模|招标范围|施工范围|计划工期|合同工期|质量标准|合同估算|投资估算|最高投标限价/u.test(c)&&(b+=4),/m[23²³]?|mm|cm|km|t|kg|台|套|个|万元|元|%|MPa|日历天/u.test(d)&&(b+=3),/招标文件|招标公告|投标人须知|前附表/u.test(a.fieldId||"")&&(b+=2),b}c.d(b,{Cr:()=>d,Ox:()=>e,rF:()=>f})},56942:(a,b,c)=>{c.d(b,{$:()=>g,R:()=>h});var d=c(92808);function e(a){return[...new Set(a.filter(Boolean))]}function f(a){let b=(0,d.t0)(a,d.hW);return b.length>0?b:["project_overview"]}function g(a){var b,c,d;let g=a.resolvedRoles.filter(a=>a.required&&!a.satisfied).map(a=>a.role),h=a.resolvedRoles.filter(a=>a.weak).map(a=>a.role),i=(b=a.template,c=a.spec,d=a.summary,b.chapters.map(a=>{let b=function(a,b){let c=b.chapterRules.find(b=>b.id===a.id||b.title===a.title),d=(c?.requiredFactIds||[]).map(a=>b.factFields.find(b=>b.id===a)?.name).filter(Boolean);return e([...a.requiredFacts||[],...d])}(a,c),g=e([...f([a.title,a.purpose,...a.queries||[],...a.sections||[]].join("\n")),...b.flatMap(a=>f(a))]),h=g.filter(a=>(d.materialInventory[a]||[]).length>0),i=h.reduce((a,b)=>a+(d.materialInventory[b]||[]).length,0),j=b.filter(a=>f(a).some(a=>h.includes(a))),k=b.filter(a=>!j.includes(a));return{chapterId:a.id,title:a.title,requiredFacts:b,coveredFacts:j,missingFacts:k,requiredRoles:g,satisfiedRoles:h,evidenceCount:i}})),j=[],k=[];0===a.template.chapters.length&&k.push("模板未配置章节,建议通过模板章节或显式 OUTLINE 提供文档结构"),a.template.chapters.some(a=>!a.purpose&&(!a.queries||0===a.queries.length)&&(!a.requiredFacts||0===a.requiredFacts.length))&&k.push("部分模板章节缺少 purpose、queries 或 requiredFacts,生成质量可能不稳定"),a.summary.source.ambiguous&&j.push(a.summary.source.selectionReason),a.summary.fingerprint.confidence<.34&&k.push("材料指纹置信度较低,建议绑定明确的材料文件"),0===a.summary.source.selectedFiles&&j.push("未绑定可用项目资料文件,无法支撑文档生成"),g.length>0&&0===a.summary.source.selectedFiles&&k.push("模板未绑定可用项目资料文件,请先绑定参与生成的资料"),h.length>0&&0===a.summary.source.selectedFiles&&k.push("绑定资料证据较弱,请确认资料已完成索引");let l=i.filter(a=>0===a.evidenceCount);l.length>0&&k.push(`章节级证据覆盖较弱:${l.slice(0,5).map(a=>a.title).join("、")}`);let m=a.summary.coverage.satisfiedRoles,n=a.resolvedRoles.filter(a=>!a.required&&!a.satisfied).map(a=>a.role),o=[`资料范围:${a.summary.source.selectionReason},可用文件 ${a.summary.source.selectedFiles}/${a.summary.source.totalFiles} 份`,`已识别资料类型:${m.join("、")||"无"}`,a.summary.coverage.missingRoles.length?`待补充必需资料类型:${a.summary.coverage.missingRoles.join("、")}`:"必需资料类型已满足",g.length?`模板强相关资料角色缺失:${g.join("、")}`:"模板强相关资料角色已满足",n.length?`可选资料角色未识别:${n.join("、")}`:"",h.length?`证据较弱资料角色:${h.join("、")}`:""].filter(Boolean);return{ready:0===j.length,missingRoles:g,weakRoles:h,diagnostics:o,chapterDiagnostics:i,blockingIssues:j,warnings:k}}function h(a,b={}){let c=a.chapterDiagnostics.filter(a=>0===a.evidenceCount||a.missingFacts.length>0).slice(0,8).map(a=>`${a.title}:证据 ${a.evidenceCount} 条${a.missingFacts.length?`,缺失 ${a.missingFacts.slice(0,6).join("、")}`:""}`);return b.publicSafe?["## 生成事实使用边界",c.length?`章节证据风险: