@customize-agent/server 4.59.1 → 4.59.2

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 (96) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +15 -15
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/1928.js +1 -1
  5. package/.next/server/chunks/{5547.js → 4435.js} +8 -8
  6. package/.next/server/chunks/6321.js +1 -1
  7. package/.next/server/chunks/8204.js +1 -1
  8. package/.next/server/middleware-build-manifest.js +1 -1
  9. package/.next/server/pages/404.html +1 -1
  10. package/.next/server/pages/500.html +1 -1
  11. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  13. package/.next/server/pages/api/assets/generated.js +1 -1
  14. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  15. package/.next/server/pages/api/documents/canvas/[id].js +1 -1
  16. package/.next/server/pages/api/documents/canvas/[id].js.nft.json +1 -1
  17. package/.next/server/pages/api/documents/export.js +1 -1
  18. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  19. package/.next/server/pages/api/documents/generate/preview.js +1 -1
  20. package/.next/server/pages/api/documents/generate/preview.js.nft.json +1 -1
  21. package/.next/server/pages/api/documents/generate.js +1 -1
  22. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  23. package/.next/server/pages/api/documents/generated/[id]/events.js +1 -1
  24. package/.next/server/pages/api/documents/generated/[id]/events.js.nft.json +1 -1
  25. package/.next/server/pages/api/documents/generated/[id]/figure/[name].js +1 -1
  26. package/.next/server/pages/api/documents/generated/[id]/figure/[name].js.nft.json +1 -1
  27. package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js +1 -1
  28. package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js.nft.json +1 -1
  29. package/.next/server/pages/api/documents/generated/[id]/nodes.js +1 -1
  30. package/.next/server/pages/api/documents/generated/[id]/nodes.js.nft.json +1 -1
  31. package/.next/server/pages/api/documents/generated/[id]/pause.js +1 -1
  32. package/.next/server/pages/api/documents/generated/[id]/pause.js.nft.json +1 -1
  33. package/.next/server/pages/api/documents/generated/[id]/preview.js +1 -1
  34. package/.next/server/pages/api/documents/generated/[id]/preview.js.nft.json +1 -1
  35. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -1
  36. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js.nft.json +1 -1
  37. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js +1 -1
  38. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js.nft.json +1 -1
  39. package/.next/server/pages/api/documents/generated/[id]/repair.js +1 -1
  40. package/.next/server/pages/api/documents/generated/[id]/repair.js.nft.json +1 -1
  41. package/.next/server/pages/api/documents/generated/[id]/resume-generate.js +1 -1
  42. package/.next/server/pages/api/documents/generated/[id]/resume-generate.js.nft.json +1 -1
  43. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  44. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  45. package/.next/server/pages/api/documents/generated.js +1 -1
  46. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  47. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  48. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  49. package/.next/server/pages/api/kb/intelligence.js +1 -1
  50. package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
  51. package/.next/server/pages/api/kb/reindex.js +1 -1
  52. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  53. package/.next/server/pages/api/kb/upload/complete.js +1 -1
  54. package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
  55. package/.next/server/pages/api/kb/upload.js +1 -1
  56. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  57. package/.next/server/pages/api/skills/[id].js +1 -1
  58. package/.next/server/pages/api/skills/[id].js.nft.json +1 -1
  59. package/.next/server/pages/api/skills/validate.js +1 -1
  60. package/.next/server/pages/api/skills/validate.js.nft.json +1 -1
  61. package/.next/server/pages/api/skills.js +1 -1
  62. package/.next/server/pages/api/skills.js.nft.json +1 -1
  63. package/.next/server/pages/api/system/data-health.js +2 -0
  64. package/.next/server/pages/api/system/data-health.js.nft.json +1 -0
  65. package/.next/server/pages/canvas/[id].html +1 -1
  66. package/.next/server/pages/canvas.html +1 -1
  67. package/.next/server/pages/documents.html +1 -1
  68. package/.next/server/pages/guide.html +1 -1
  69. package/.next/server/pages/index.html +1 -1
  70. package/.next/server/pages/knowledge/file-detail.html +1 -1
  71. package/.next/server/pages/knowledge/files.html +1 -1
  72. package/.next/server/pages/knowledge/manage.html +1 -1
  73. package/.next/server/pages/knowledge.html +1 -1
  74. package/.next/server/pages/models.html +1 -1
  75. package/.next/server/pages/overview.html +1 -1
  76. package/.next/server/pages/prompt.html +1 -1
  77. package/.next/server/pages/settings.html +1 -1
  78. package/.next/server/pages/skills.html +1 -1
  79. package/.next/server/pages/system/logs.html +1 -1
  80. package/.next/server/pages-manifest.json +33 -32
  81. package/.next/static/{4xQDkixSretJDM503EzIq → 2MjosIoMmZUcFnY_P02ZD}/_buildManifest.js +1 -1
  82. package/.next/static/chunks/{289-0cccd8131332e041.js → 289-136ebb30e0f6723a.js} +3 -3
  83. package/.next/static/chunks/{426-22c4cedb04b0d45d.js → 426-90638907336adcb8.js} +1 -1
  84. package/.next/static/chunks/530-df2ce692cf0fa512.js +1 -0
  85. package/.next/static/chunks/795-81a3e3973fc43791.js +1 -0
  86. package/.next/static/chunks/pages/{_app-ebb535779b63fd5d.js → _app-c560816f0a8a0815.js} +1 -1
  87. package/.next/static/chunks/pages/knowledge-ca8ad5501faed486.js +1 -0
  88. package/.next/static/chunks/pages/prompt-dd9a9f9105216e2b.js +1 -0
  89. package/.next/static/chunks/pages/system/logs-9deb1217739490af.js +1 -0
  90. package/package.json +1 -1
  91. package/.next/static/chunks/530-6f3f5848c6f702ae.js +0 -1
  92. package/.next/static/chunks/795-9e0cb0bb11e8c89f.js +0 -1
  93. package/.next/static/chunks/pages/knowledge-09dde24cdce1b195.js +0 -1
  94. package/.next/static/chunks/pages/prompt-6a224562d194cb45.js +0 -1
  95. package/.next/static/chunks/pages/system/logs-70790bee46e5a08d.js +0 -1
  96. /package/.next/static/{4xQDkixSretJDM503EzIq → 2MjosIoMmZUcFnY_P02ZD}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- 4xQDkixSretJDM503EzIq
1
+ 2MjosIoMmZUcFnY_P02ZD
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/4xQDkixSretJDM503EzIq/_buildManifest.js",
9
- "static/4xQDkixSretJDM503EzIq/_ssgManifest.js"
8
+ "static/2MjosIoMmZUcFnY_P02ZD/_buildManifest.js",
9
+ "static/2MjosIoMmZUcFnY_P02ZD/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -16,7 +16,7 @@
16
16
  "static/chunks/framework-4b565b3ddc94cdac.js",
17
17
  "static/chunks/main-0c91f573696223ca.js",
18
18
  "static/chunks/880-64d8a15c524106d2.js",
19
- "static/chunks/795-9e0cb0bb11e8c89f.js",
19
+ "static/chunks/795-81a3e3973fc43791.js",
20
20
  "static/chunks/pages/index-cb27bfa36c212ab5.js"
21
21
  ],
22
22
  "/_app": [
@@ -24,7 +24,7 @@
24
24
  "static/chunks/framework-4b565b3ddc94cdac.js",
25
25
  "static/chunks/main-0c91f573696223ca.js",
26
26
  "static/css/85c434f8fd3a17ae.css",
27
- "static/chunks/pages/_app-ebb535779b63fd5d.js"
27
+ "static/chunks/pages/_app-c560816f0a8a0815.js"
28
28
  ],
29
29
  "/_error": [
30
30
  "static/chunks/webpack-6224d37324e372cb.js",
@@ -40,7 +40,7 @@
40
40
  "static/chunks/700-5d29b0475311f590.js",
41
41
  "static/chunks/174-1bc48f295d7dd075.js",
42
42
  "static/chunks/243-03eba51d5d737e98.js",
43
- "static/chunks/530-6f3f5848c6f702ae.js",
43
+ "static/chunks/530-df2ce692cf0fa512.js",
44
44
  "static/chunks/pages/canvas-323d44fe56d685a7.js"
45
45
  ],
46
46
  "/canvas/[id]": [
@@ -55,7 +55,7 @@
55
55
  "static/chunks/243-03eba51d5d737e98.js",
56
56
  "static/chunks/506-93f730bc149d0dce.js",
57
57
  "static/chunks/709-a7c652953ccd3b4b.js",
58
- "static/chunks/530-6f3f5848c6f702ae.js",
58
+ "static/chunks/530-df2ce692cf0fa512.js",
59
59
  "static/chunks/pages/canvas/[id]-515edd3e72acaf82.js"
60
60
  ],
61
61
  "/documents": [
@@ -83,9 +83,9 @@
83
83
  "static/chunks/914-292edce0ba2a212d.js",
84
84
  "static/chunks/174-1bc48f295d7dd075.js",
85
85
  "static/chunks/189-3f4f4e237056adaf.js",
86
- "static/chunks/289-0cccd8131332e041.js",
86
+ "static/chunks/289-136ebb30e0f6723a.js",
87
87
  "static/css/ad5a592c79d1448b.css",
88
- "static/chunks/pages/knowledge-09dde24cdce1b195.js"
88
+ "static/chunks/pages/knowledge-ca8ad5501faed486.js"
89
89
  ],
90
90
  "/knowledge/file-detail": [
91
91
  "static/chunks/webpack-6224d37324e372cb.js",
@@ -96,7 +96,7 @@
96
96
  "static/chunks/914-292edce0ba2a212d.js",
97
97
  "static/chunks/174-1bc48f295d7dd075.js",
98
98
  "static/chunks/189-3f4f4e237056adaf.js",
99
- "static/chunks/289-0cccd8131332e041.js",
99
+ "static/chunks/289-136ebb30e0f6723a.js",
100
100
  "static/chunks/569-2bfdde9e402af5b2.js",
101
101
  "static/chunks/787-207289f4bb577708.js",
102
102
  "static/chunks/506-93f730bc149d0dce.js",
@@ -131,7 +131,7 @@
131
131
  "static/chunks/framework-4b565b3ddc94cdac.js",
132
132
  "static/chunks/main-0c91f573696223ca.js",
133
133
  "static/chunks/880-64d8a15c524106d2.js",
134
- "static/chunks/795-9e0cb0bb11e8c89f.js",
134
+ "static/chunks/795-81a3e3973fc43791.js",
135
135
  "static/chunks/pages/overview-8713b5d37af0eeb3.js"
136
136
  ],
137
137
  "/prompt": [
@@ -141,8 +141,8 @@
141
141
  "static/chunks/310-6c678cb70e4ba2d6.js",
142
142
  "static/chunks/700-5d29b0475311f590.js",
143
143
  "static/chunks/189-3f4f4e237056adaf.js",
144
- "static/chunks/426-22c4cedb04b0d45d.js",
145
- "static/chunks/pages/prompt-6a224562d194cb45.js"
144
+ "static/chunks/426-90638907336adcb8.js",
145
+ "static/chunks/pages/prompt-dd9a9f9105216e2b.js"
146
146
  ],
147
147
  "/settings": [
148
148
  "static/chunks/webpack-6224d37324e372cb.js",
@@ -159,7 +159,7 @@
159
159
  "static/chunks/914-292edce0ba2a212d.js",
160
160
  "static/chunks/174-1bc48f295d7dd075.js",
161
161
  "static/chunks/189-3f4f4e237056adaf.js",
162
- "static/chunks/289-0cccd8131332e041.js",
162
+ "static/chunks/289-136ebb30e0f6723a.js",
163
163
  "static/chunks/569-2bfdde9e402af5b2.js",
164
164
  "static/chunks/787-207289f4bb577708.js",
165
165
  "static/chunks/445-d12731f107978b10.js",
@@ -175,8 +175,8 @@
175
175
  "static/chunks/914-292edce0ba2a212d.js",
176
176
  "static/chunks/174-1bc48f295d7dd075.js",
177
177
  "static/chunks/189-3f4f4e237056adaf.js",
178
- "static/chunks/289-0cccd8131332e041.js",
179
- "static/chunks/pages/system/logs-70790bee46e5a08d.js"
178
+ "static/chunks/289-136ebb30e0f6723a.js",
179
+ "static/chunks/pages/system/logs-9deb1217739490af.js"
180
180
  ]
181
181
  },
182
182
  "ampFirstPages": []
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "3df2cdf95efb8a81474f518ac9f12e2c",
7
- "previewModeSigningKey": "c1b90a8c26e6bed76e02276b2a2fea9532d43c8a3f0d85a723a43748ac4fae7d",
8
- "previewModeEncryptionKey": "028c746d3ace3d313640a517b6b454e8e3a641507f6f2119d25e6f7dd0deb573"
6
+ "previewModeId": "c4a237e87db087dffe69d177a5a2fd6d",
7
+ "previewModeSigningKey": "5c00043b1f346d4cc0632353b3f3020a74608295158553d9ecbb42a70d8e3478",
8
+ "previewModeEncryptionKey": "d57399c30d4e1512e5c90700f6e1a01894a3b64cd793d4b95d79494be65f4c5d"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -1 +1 @@
1
- "use strict";exports.id=1928,exports.ids=[1928],exports.modules={18463:(a,b,c)=>{c.d(b,{Zk:()=>f,dh:()=>g,wD:()=>e});var d=c(8732);c(82015);let e="rounded-xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] hover:shadow-[var(--shadowSurfaceHover)] transition-shadow";function f({title:a,count:b,description:c,extra:e,className:f,children:g}){return(0,d.jsxs)("section",{className:`rounded-2xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] p-6 animateFadeIn ${f??""}`,children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between gap-3 mb-5",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("h2",{className:"text-base font-semibold text-[var(--colorText)] tracking-wide flex items-center gap-2 m-0",children:[a,void 0!==b&&(0,d.jsx)("span",{className:"text-[var(--colorTextTertiary)] font-normal text-sm",children:b})]}),c&&(0,d.jsx)("p",{className:"text-xs text-[var(--colorTextTertiary)] mt-1.5 mb-0 leading-relaxed max-w-3xl",children:c})]}),e]}),g]})}function g({children:a}){return(0,d.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider mb-2 text-[var(--colorTextTertiary)]",children:a})}},61928:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o});var e=c(8732),f=c(82015),g=c(94487),h=c(60056),i=c(79270),j=c(22147),k=c(89668),l=c(18463),m=a([g]);function n({title:a,value:b,subtext:c,icon:d,colorClass:f,animationClass:g}){return(0,e.jsxs)("div",{className:`p-4 ${l.wD} flex flex-col justify-between animateFadeIn ${g||""}`,style:{opacity:0},children:[(0,e.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,e.jsx)("div",{className:"text-xs font-semibold text-[var(--colorTextSecondary)] tracking-wide uppercase",children:a}),d&&(0,e.jsx)("div",{className:f,style:{opacity:.7},children:d})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-3xl font-bold tracking-tight",children:b}),c&&(0,e.jsx)("div",{className:"text-xs mt-1 truncate font-medium",style:{color:"var(--colorTextTertiary)"},children:c})]})]})}function o(){let a=(0,g.Vr)(),{locale:b}=(0,g.x_)(),[c,d]=(0,f.useState)(null),[m,o]=(0,f.useState)(!0),[p,q]=(0,f.useState)(0),[r,s]=(0,f.useState)(0),[t,u]=(0,f.useState)(0),[v,w]=(0,f.useState)(0),[x,y]=(0,f.useState)(null),[z,A]=(0,f.useState)(null),B=(0,f.useCallback)(async()=>{o(!0);try{let[a,b,c,e,f,g]=await Promise.all([(0,j.FC)(),(0,j.Z3)().catch(()=>[]),(0,j.dx)().catch(()=>[]),(0,j.cQ)().catch(()=>({documents:[]})),(0,j.II)().catch(()=>null),(0,j.BO)().catch(()=>[])]);d(a),q(Array.isArray(b)?b.length:0),s(Array.isArray(c)?c.length:0),u(Array.isArray(e.documents)?e.documents.length:0),w(Array.isArray(g)?g.filter(a=>a.fileCount>0).length:0),y(f),A(Date.now())}catch{}finally{o(!1)}},[]),C=c?.tasks.total?Math.round(c.tasks.success/c.tasks.total*100):null,D=c?.models?.[0],E=c?.logs.latestAt?(0,k.fw)(new Date(c.logs.latestAt).getTime(),b):a("overview.noLogs");return(0,e.jsxs)("div",{className:"space-y-6",children:[(0,e.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end justify-between gap-4 pb-6 border-b border-[var(--borderColor)]",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h1",{className:"text-3xl font-extrabold tracking-tight text-[var(--colorText)] mb-2",children:a("overview.title")}),(0,e.jsx)("p",{className:"text-sm text-[var(--colorTextSecondary)]",children:a("overview.description")})]}),(0,e.jsxs)(h.$x,{children:[(0,e.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--colorTextTertiary)"},children:[a("overview.updated"),": ",z?new Date(z).toLocaleTimeString(b):"—"]}),(0,e.jsx)(h.$n,{type:"text",icon:(0,e.jsx)(i.ReloadOutlined,{spin:m}),onClick:()=>{B()}})]})]}),(0,e.jsx)(l.Zk,{title:a("overview.coreMetrics"),description:a("overview.coreMetricsDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[(0,e.jsx)(n,{title:a("overview.uptime"),value:(0,k.a3)(c?.serviceUptimeSeconds??0,b),subtext:`${a("overview.processUptime")} ${(0,k.a3)(c?.uptime??0,b)}`,icon:(0,e.jsx)(i.ApiOutlined,{size:16}),colorClass:"text-[var(--colorBrand)]",animationClass:"stagger-1"}),(0,e.jsx)(n,{title:a("overview.tokensUsed"),value:(c?.tokens.total??0).toLocaleString(),subtext:`P ${c?.tokens.prompt??0} / C ${c?.tokens.completion??0}`,icon:(0,e.jsx)(i.ThunderboltOutlined,{size:16}),colorClass:"text-[var(--colorWarn)]",animationClass:"stagger-2"}),(0,e.jsx)(n,{title:a("overview.tasksTotal"),value:(c?.tasks.total??0).toLocaleString(),subtext:`✓ ${c?.tasks.success??0} | ✗ ${c?.tasks.failed??0} | ↻ ${c?.tasks.running??0}`,icon:(0,e.jsx)(i.FileTextOutlined,{size:16}),colorClass:"text-[var(--colorInfo)]",animationClass:"stagger-3"}),(0,e.jsx)(n,{title:a("overview.successRate"),value:null===C?"—":`${C}%`,subtext:null===C?a("overview.noDataAvailable"):void 0,icon:null!==C&&C>80?(0,e.jsx)(i.CheckCircleOutlined,{size:16}):(0,e.jsx)(i.CloseCircleOutlined,{size:16}),colorClass:null!==C&&C>80?"text-[var(--colorOk)]":"text-[var(--colorDanger)]",animationClass:"stagger-4"})]})}),(0,e.jsx)(l.Zk,{title:a("overview.systemResources"),description:a("overview.systemResourcesDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:[(0,e.jsx)(n,{title:a("overview.materialUnderstanding"),value:v>0?String(v):"—",subtext:a(v>0?"overview.materialKinds":"common.noData"),animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.prompts"),value:r,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.templateCount"),value:t,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.semanticModel"),value:x?.provider==="openai-compatible"?a("overview.external"):x?a("overview.local"):"—",subtext:x?.model??a("overview.notConfigured"),animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.modelProviders"),value:p,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.auditLogs"),value:c?.logs.events??0,subtext:`${a("overview.lastActivity")} ${E}`,animationClass:"stagger-5"})]})}),(0,e.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,e.jsx)(l.Zk,{title:a("overview.hardwareUsage"),description:a("overview.hardwareUsageDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,e.jsxs)("div",{className:`flex items-center gap-4 p-4 ${l.wD}`,children:[(0,e.jsx)(h.ke,{type:"dashboard",percent:c?.cpu.usagePercent??0,size:64,strokeColor:(c?.cpu.usagePercent??0)>80?"var(--colorDanger)":"var(--colorText)",strokeWidth:10}),(0,e.jsxs)("div",{className:"min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[var(--colorTextSecondary)]",children:a("overview.cpuUsage")}),(0,e.jsxs)("div",{className:"text-xl font-bold",children:[c?.cpu.usagePercent?.toFixed(1)??"0.0","%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[c?.cpu.cores??0," ",a("overview.cores")]})]})]}),(0,e.jsxs)("div",{className:`flex items-center gap-4 p-4 ${l.wD}`,children:[(0,e.jsx)(h.ke,{type:"dashboard",percent:c?.memory.usagePercent??0,size:64,strokeColor:(c?.memory.usagePercent??0)>80?"var(--colorDanger)":"var(--colorTextSecondary)",strokeWidth:10}),(0,e.jsxs)("div",{className:"min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[var(--colorTextSecondary)]",children:a("overview.memoryUsage")}),(0,e.jsxs)("div",{className:"text-xl font-bold",children:[c?.memory.usagePercent??0,"%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[c?.memory.processMB??0," MB / ",c?.memory.totalMB??0," MB"]})]})]})]})}),(0,e.jsx)(l.Zk,{title:a("overview.activityContext"),description:a("overview.activityContextDesc"),children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsxs)("div",{className:`p-4 ${l.wD}`,children:[(0,e.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)] mb-2",children:a("overview.topModel")}),D?(0,e.jsxs)("div",{className:"font-semibold flex items-center gap-2 min-w-0",children:[(0,e.jsx)(i.RobotOutlined,{className:"text-[var(--colorTextSecondary)] shrink-0"}),(0,e.jsx)("span",{className:"truncate",children:D.model}),(0,e.jsxs)("span",{className:"font-normal text-[var(--colorTextTertiary)] text-sm shrink-0",children:["@",D.provider]})]}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("overview.noDataAvailable")})]}),(0,e.jsxs)("div",{className:`p-4 ${l.wD}`,children:[(0,e.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)] mb-3",children:a("overview.recentTaskTypes")}),c?.tasks.types&&Object.keys(c.tasks.types).length>0?(0,e.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(c.tasks.types).sort((a,b)=>b[1]-a[1]).map(([a,b])=>(0,e.jsxs)("div",{className:"px-2 py-1 rounded-lg text-xs font-mono bg-[var(--colorFillAlter)] text-[var(--colorTextSecondary)]",children:[a.slice(0,30)," ",(0,e.jsx)("span",{className:"ml-2 font-bold text-[var(--colorText)]",children:b})]},a))}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("common.noData")})]})]})})]})]})}g=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},89668:(a,b,c)=>{function d(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024)),c=a/Math.pow(1024,b);return`${c.toFixed(+(0!==b))} ${["B","KB","MB","GB","TB"][b]}`}function e(a,b="zh-CN"){let c=Math.max(0,Math.floor(a)),d=Math.floor(c/86400),f=Math.floor(c%86400/3600),g=Math.floor(c%3600/60),h="en-US"===b;return d>0?h?`${d}d ${f}h`:`${d} 天 ${f} 小时`:f>0?h?`${f}h ${g}m`:`${f} 小时 ${g} 分`:g>0?h?`${g}m`:`${g} 分`:h?"Just now":"刚刚"}function f(a,b="zh-CN"){if(!a||a<=0)return"en-US"===b?"Never":"从未";let c=Math.floor(Math.floor((Date.now()-a)/1e3)/60),d=Math.floor(c/60),e=Math.floor(d/24);return e>30?new Date(a).toLocaleDateString(b):"en-US"===b?e>0?`${e}d ago`:d>0?`${d}h ago`:c>0?`${c}m ago`:"Just now":e>0?`${e} 天前`:d>0?`${d} 小时前`:c>0?`${c} 分钟前`:"刚刚"}c.d(b,{Jm:()=>i,a3:()=>e,fw:()=>f,mc:()=>j,z3:()=>d});let g={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},h={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function i(a,b="zh-CN"){return("en-US"===b?h:g)[a]??a}let j={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}}};
1
+ "use strict";exports.id=1928,exports.ids=[1928],exports.modules={18463:(a,b,c)=>{c.d(b,{Zk:()=>f,dh:()=>g,wD:()=>e});var d=c(8732);c(82015);let e="rounded-xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] hover:shadow-[var(--shadowSurfaceHover)] transition-shadow";function f({title:a,count:b,description:c,extra:e,className:f,children:g}){return(0,d.jsxs)("section",{className:`rounded-2xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] p-6 animateFadeIn ${f??""}`,children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between gap-3 mb-5",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("h2",{className:"text-base font-semibold text-[var(--colorText)] tracking-wide flex items-center gap-2 m-0",children:[a,void 0!==b&&(0,d.jsx)("span",{className:"text-[var(--colorTextTertiary)] font-normal text-sm",children:b})]}),c&&(0,d.jsx)("p",{className:"text-xs text-[var(--colorTextTertiary)] mt-1.5 mb-0 leading-relaxed max-w-3xl",children:c})]}),e]}),g]})}function g({children:a}){return(0,d.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider mb-2 text-[var(--colorTextTertiary)]",children:a})}},61928:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o});var e=c(8732),f=c(82015),g=c(94487),h=c(60056),i=c(79270),j=c(22147),k=c(89668),l=c(18463),m=a([g]);function n({title:a,value:b,subtext:c,icon:d,colorClass:f,animationClass:g}){return(0,e.jsxs)("div",{className:`p-4 ${l.wD} flex flex-col justify-between animateFadeIn ${g||""}`,style:{opacity:0},children:[(0,e.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,e.jsx)("div",{className:"text-xs font-semibold text-[var(--colorTextSecondary)] tracking-wide uppercase",children:a}),d&&(0,e.jsx)("div",{className:f,style:{opacity:.7},children:d})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-3xl font-bold tracking-tight",children:b}),c&&(0,e.jsx)("div",{className:"text-xs mt-1 truncate font-medium",style:{color:"var(--colorTextTertiary)"},children:c})]})]})}function o(){let a=(0,g.Vr)(),{locale:b}=(0,g.x_)(),[c,d]=(0,f.useState)(null),[m,o]=(0,f.useState)(!0),[p,q]=(0,f.useState)(0),[r,s]=(0,f.useState)(0),[t,u]=(0,f.useState)(0),[v,w]=(0,f.useState)(0),[x,y]=(0,f.useState)(null),[z,A]=(0,f.useState)(null),[B,C]=(0,f.useState)(null),[D,E]=(0,f.useState)(!1),[F,G]=(0,f.useState)([]),[H,I]=(0,f.useState)(!1),[J,K]=(0,f.useState)(null),L=(0,f.useCallback)(async()=>{o(!0);try{let[a,b,c,e,f,g]=await Promise.all([(0,j.FC)(),(0,j.Z3)().catch(()=>[]),(0,j.dx)().catch(()=>[]),(0,j.cQ)().catch(()=>({documents:[]})),(0,j.II)().catch(()=>null),(0,j.BO)().catch(()=>[])]);d(a),q(Array.isArray(b)?b.length:0),s(Array.isArray(c)?c.length:0),u(Array.isArray(e.documents)?e.documents.length:0),w(Array.isArray(g)?g.filter(a=>a.fileCount>0).length:0),y(f),C(await (0,j.nn)().catch(()=>null)),A(Date.now())}catch{}finally{o(!1)}},[]),M=c?.tasks.total?Math.round(c.tasks.success/c.tasks.total*100):null,N=c?.models?.[0],O=c?.logs.latestAt?(0,k.fw)(new Date(c.logs.latestAt).getTime(),b):a("overview.noLogs");return(0,e.jsxs)("div",{className:"space-y-6",children:[(0,e.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end justify-between gap-4 pb-6 border-b border-[var(--borderColor)]",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("h1",{className:"text-3xl font-extrabold tracking-tight text-[var(--colorText)] mb-2",children:a("overview.title")}),(0,e.jsx)("p",{className:"text-sm text-[var(--colorTextSecondary)]",children:a("overview.description")})]}),(0,e.jsxs)(h.$x,{children:[(0,e.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--colorTextTertiary)"},children:[a("overview.updated"),": ",z?new Date(z).toLocaleTimeString(b):"—"]}),(0,e.jsx)(h.$n,{type:"text",icon:(0,e.jsx)(i.ReloadOutlined,{spin:m}),onClick:()=>{L()}})]})]}),(0,e.jsx)(l.Zk,{title:a("overview.coreMetrics"),description:a("overview.coreMetricsDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[(0,e.jsx)(n,{title:a("overview.uptime"),value:(0,k.a3)(c?.serviceUptimeSeconds??0,b),subtext:`${a("overview.processUptime")} ${(0,k.a3)(c?.uptime??0,b)}`,icon:(0,e.jsx)(i.ApiOutlined,{size:16}),colorClass:"text-[var(--colorBrand)]",animationClass:"stagger-1"}),(0,e.jsx)(n,{title:a("overview.tokensUsed"),value:(c?.tokens.total??0).toLocaleString(),subtext:`P ${c?.tokens.prompt??0} / C ${c?.tokens.completion??0}`,icon:(0,e.jsx)(i.ThunderboltOutlined,{size:16}),colorClass:"text-[var(--colorWarn)]",animationClass:"stagger-2"}),(0,e.jsx)(n,{title:a("overview.tasksTotal"),value:(c?.tasks.total??0).toLocaleString(),subtext:`✓ ${c?.tasks.success??0} | ✗ ${c?.tasks.failed??0} | ↻ ${c?.tasks.running??0}`,icon:(0,e.jsx)(i.FileTextOutlined,{size:16}),colorClass:"text-[var(--colorInfo)]",animationClass:"stagger-3"}),(0,e.jsx)(n,{title:a("overview.successRate"),value:null===M?"—":`${M}%`,subtext:null===M?a("overview.noDataAvailable"):void 0,icon:null!==M&&M>80?(0,e.jsx)(i.CheckCircleOutlined,{size:16}):(0,e.jsx)(i.CloseCircleOutlined,{size:16}),colorClass:null!==M&&M>80?"text-[var(--colorOk)]":"text-[var(--colorDanger)]",animationClass:"stagger-4"})]})}),(0,e.jsx)(l.Zk,{title:a("overview.systemResources"),description:a("overview.systemResourcesDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:[(0,e.jsx)(n,{title:a("overview.materialUnderstanding"),value:v>0?String(v):"—",subtext:a(v>0?"overview.materialKinds":"common.noData"),animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.prompts"),value:r,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.templateCount"),value:t,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.semanticModel"),value:x?.provider==="openai-compatible"?a("overview.external"):x?a("overview.local"):"—",subtext:x?.model??a("overview.notConfigured"),animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.modelProviders"),value:p,animationClass:"stagger-5"}),(0,e.jsx)(n,{title:a("overview.auditLogs"),value:c?.logs.events??0,subtext:`${a("overview.lastActivity")} ${O}`,animationClass:"stagger-5"})]})}),(0,e.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,e.jsx)(l.Zk,{title:a("overview.hardwareUsage"),description:a("overview.hardwareUsageDesc"),children:(0,e.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,e.jsxs)("div",{className:`flex items-center gap-4 p-4 ${l.wD}`,children:[(0,e.jsx)(h.ke,{type:"dashboard",percent:c?.cpu.usagePercent??0,size:64,strokeColor:(c?.cpu.usagePercent??0)>80?"var(--colorDanger)":"var(--colorText)",strokeWidth:10}),(0,e.jsxs)("div",{className:"min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[var(--colorTextSecondary)]",children:a("overview.cpuUsage")}),(0,e.jsxs)("div",{className:"text-xl font-bold",children:[c?.cpu.usagePercent?.toFixed(1)??"0.0","%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[c?.cpu.cores??0," ",a("overview.cores")]})]})]}),(0,e.jsxs)("div",{className:`flex items-center gap-4 p-4 ${l.wD}`,children:[(0,e.jsx)(h.ke,{type:"dashboard",percent:c?.memory.usagePercent??0,size:64,strokeColor:(c?.memory.usagePercent??0)>80?"var(--colorDanger)":"var(--colorTextSecondary)",strokeWidth:10}),(0,e.jsxs)("div",{className:"min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-[var(--colorTextSecondary)]",children:a("overview.memoryUsage")}),(0,e.jsxs)("div",{className:"text-xl font-bold",children:[c?.memory.usagePercent??0,"%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[c?.memory.processMB??0," MB / ",c?.memory.totalMB??0," MB"]})]})]})]})}),(0,e.jsx)(l.Zk,{title:a("overview.activityContext"),description:a("overview.activityContextDesc"),children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsxs)("div",{className:`p-4 ${l.wD}`,children:[(0,e.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)] mb-2",children:a("overview.topModel")}),N?(0,e.jsxs)("div",{className:"font-semibold flex items-center gap-2 min-w-0",children:[(0,e.jsx)(i.RobotOutlined,{className:"text-[var(--colorTextSecondary)] shrink-0"}),(0,e.jsx)("span",{className:"truncate",children:N.model}),(0,e.jsxs)("span",{className:"font-normal text-[var(--colorTextTertiary)] text-sm shrink-0",children:["@",N.provider]})]}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("overview.noDataAvailable")})]}),(0,e.jsxs)("div",{className:`p-4 ${l.wD}`,children:[(0,e.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--colorTextTertiary)] mb-3",children:a("overview.recentTaskTypes")}),c?.tasks.types&&Object.keys(c.tasks.types).length>0?(0,e.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(c.tasks.types).sort((a,b)=>b[1]-a[1]).map(([a,b])=>(0,e.jsxs)("div",{className:"px-2 py-1 rounded-lg text-xs font-mono bg-[var(--colorFillAlter)] text-[var(--colorTextSecondary)]",children:[a.slice(0,30)," ",(0,e.jsx)("span",{className:"ml-2 font-bold text-[var(--colorText)]",children:b})]},a))}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("common.noData")})]})]})})]}),(0,e.jsx)(l.Zk,{title:"数据体检与清理",description:"升级后旧数据会不会碍事、占了多少地方——先看清,再决定清什么",children:B?(0,e.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:`存储根 ${B.storageRoot}|工作流版本 ${B.workflowVersion}`}),(0,e.jsx)("div",{className:"flex flex-col gap-2",children:B.scopes.map(a=>(0,e.jsx)("div",{className:`p-3 flex items-start gap-3 ${l.wD}`,children:(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,e.jsx)("span",{className:"text-sm font-medium",children:a.label}),a.deletable?(0,e.jsx)(h.vw,{color:"blue",children:"可清理"}):(0,e.jsx)(h.vw,{children:"只体检"}),(0,e.jsx)("span",{className:"text-xs text-[var(--colorTextTertiary)]",children:`${a.files} 项|${(a.bytes/1048576).toFixed(1)} MB`})]}),(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mt-1",children:a.note})]})},a.key))}),(0,e.jsxs)("div",{className:"p-3 flex flex-col gap-1",style:{background:"var(--colorFillQuaternary)",borderRadius:8},children:[(0,e.jsx)("div",{className:"text-sm",children:`历史类型残留:${B.legacy.recordsWithLegacyTypes}/${B.legacy.totalRecords} 条记录含已删除的节点类型(共 ${B.legacy.legacyNodes} 个节点)`}),(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:B.legacy.note})]}),(0,e.jsxs)(h.$x,{children:[(0,e.jsx)(h.$n,{size:"small",disabled:B.scopes.every(a=>!a.deletable),onClick:()=>{G([]),K(null),E(!0)},children:"清理可重建数据…"}),(0,e.jsx)(h.$n,{size:"small",type:"text",onClick:()=>{L()},children:"重新体检"})]}),J&&(0,e.jsx)(h.o5.Text,{type:"success",style:{fontSize:12},children:J})]}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("common.noData")})}),(0,e.jsx)(h.aF,{title:"清理可重建数据",open:D,onCancel:()=>E(!1),okText:H?"清理中…":"确认清理",okButtonProps:{disabled:0===F.length||H,danger:!0},onOk:()=>{I(!0),(0,j.fc)(F).then(a=>{let b=a.removed.reduce((a,b)=>a+b.bytes,0);K(`已清理 ${a.removed.length} 项,释放 ${(b/1048576).toFixed(1)} MB`),C(a.report),E(!1)}).catch(a=>K(`清理失败:${a instanceof Error?a.message:String(a)}`)).finally(()=>I(!1))},children:(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsxs)(h.o5.Text,{type:"secondary",style:{fontSize:12},children:["只列**可重建**的数据:缓存键含内容与判据指纹,删掉只是下次重算。",(0,e.jsx)("br",{}),"生成记录、节点日志、技能库、知识库**不在清理范围**(那是你的资产)。"]}),(B?.scopes??[]).filter(a=>a.deletable).map(a=>(0,e.jsxs)("label",{className:"flex items-start gap-2 cursor-pointer",children:[(0,e.jsx)("input",{type:"checkbox",checked:F.includes(a.key),onChange:b=>G(c=>b.target.checked?[...c,a.key]:c.filter(b=>b!==a.key))}),(0,e.jsxs)("span",{className:"min-w-0",children:[(0,e.jsx)("span",{className:"text-sm",children:`${a.label}(${a.files} 项|${(a.bytes/1048576).toFixed(1)} MB)`}),(0,e.jsx)("span",{className:"block text-xs text-[var(--colorTextTertiary)]",children:a.note})]})]},a.key))]})})]})}g=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},89668:(a,b,c)=>{function d(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024)),c=a/Math.pow(1024,b);return`${c.toFixed(+(0!==b))} ${["B","KB","MB","GB","TB"][b]}`}function e(a,b="zh-CN"){let c=Math.max(0,Math.floor(a)),d=Math.floor(c/86400),f=Math.floor(c%86400/3600),g=Math.floor(c%3600/60),h="en-US"===b;return d>0?h?`${d}d ${f}h`:`${d} 天 ${f} 小时`:f>0?h?`${f}h ${g}m`:`${f} 小时 ${g} 分`:g>0?h?`${g}m`:`${g} 分`:h?"Just now":"刚刚"}function f(a,b="zh-CN"){if(!a||a<=0)return"en-US"===b?"Never":"从未";let c=Math.floor(Math.floor((Date.now()-a)/1e3)/60),d=Math.floor(c/60),e=Math.floor(d/24);return e>30?new Date(a).toLocaleDateString(b):"en-US"===b?e>0?`${e}d ago`:d>0?`${d}h ago`:c>0?`${c}m ago`:"Just now":e>0?`${e} 天前`:d>0?`${d} 小时前`:c>0?`${c} 分钟前`:"刚刚"}c.d(b,{Jm:()=>i,a3:()=>e,fw:()=>f,mc:()=>j,z3:()=>d});let g={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},h={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function i(a,b="zh-CN"){return("en-US"===b?h:g)[a]??a}let j={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5547,exports.ids=[5547],exports.modules={1218:(a,b,c)=>{c.d(b,{B2:()=>t,De:()=>i.De,GK:()=>ac,N2:()=>B,OQ:()=>C,PP:()=>ah,R7:()=>K,W_:()=>L,ZR:()=>V,Zg:()=>z,d6:()=>S,d7:()=>aj,de:()=>H,hn:()=>w,iG:()=>I,ir:()=>ag,ji:()=>aa,n9:()=>ab,qG:()=>v,rC:()=>$,wj:()=>G});var d=c(73024),e=c(76760),f=c(15751),g=c(44533),h=c(73859),i=c(11628),j=c(19898),k=c(91977),l=c(11248),m=c(99956),n=c(18274),o=c(22157),p=c(37047),q=c(71678),r=c(82437),s=c(80572);function t(a,b,c){let d={};for(let e of(0,k.Uy)(a,c)){let a=b.find(a=>(0,k.I2)(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ")}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}let u=new Map;function v(a){let b=[],c=[],h=new Set;for(let i of a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType)){if(h.has(i.filePath))continue;h.add(i.filePath);let a=(0,g.aY)(),k=(0,g.NW)(a),l=e.isAbsolute(i.filePath)?i.filePath:d.existsSync(e.join(k,i.filePath))?e.join(k,i.filePath):e.join(a,i.filePath),m=e.extname(i.filePath).toLowerCase();if(d.existsSync(l)&&[".xlsx",".xls",".csv"].includes(m))try{c.push(...function(a,b){let c=d.statSync(a),e=`${a}:${b.roleId||"table"}`,g=u.get(e);if(g&&g.mtimeMs===c.mtimeMs&&g.size===c.size)return g.tables;let h=function(a,b){let c=f.readFile(a,{cellDates:!0,sheetStubs:!1}),d=[];for(let a of c.SheetNames){let e=c.Sheets[a],g=f.utils.sheet_to_json(e,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(g.length<2)continue;let h=(0,j.detectSmartTableHeader)(g),i=h.headers,k=g.slice(h.headerIndex+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==k.length&&d.push({tableType:b.roleId||"table",sheet:a,headers:i,rows:k,sourceFile:b.filePath,sourceRange:e["!ref"]})}return d}(a,b);return u.size>500&&u.clear(),u.set(e,{mtimeMs:c.mtimeMs,size:c.size,tables:h}),h}(l,i));continue}catch(a){b.push(`${i.filePath}:${a instanceof Error?a.message:String(a)}`)}let n=i.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(n.length<2)continue;let o=n[0].includes("|")?"|":n[0].includes(" ")?" ":",",p=n.map(a=>a.split(o).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);p.length<2||c.push({tableType:i.roleId||"table",headers:p[0],rows:p.slice(1),sourceFile:i.filePath,sourceRange:i.sectionTitle})}return b.length>0&&console.warn(`[facts] 工作簿解析失败 ${b.length} 份,已回退文本猜表(保真度下降):${b.slice(0,5).join(";")}`),c}function w(a){let b=[],c=/工程名称|序号|项目编码|项目名称|项目特征|计量\s*单位|工程量|金额|综合单价|合价|人工费|机械费|暂估价|分部小计|本页|续表|合计|汇总/u;for(let d of a){let a=(0,j.locateTableColumns)(d.headers);if((a.name??-1)<0&&(a.feature??-1)<0)continue;let e=(a.seq??-1)>=0;for(let f of d.rows){let g=e?(f[a.seq??0]||"").trim():"",h=(a.name??-1)>=0?(f[a.name??0]||"").trim():"",i=(a.feature??-1)>=0?(f[a.feature??0]||"").trim():"",j=(a.unit??-1)>=0?(f[a.unit??0]||"").trim():"",k=(a.quantity??-1)>=0?(f[a.quantity??0]||"").trim():"";if(e&&!/^\d+$/.test(g)||!h||!i||c.test(`${h}${i}`))continue;let l=k&&j?`${k}${j}`:k||j;b.push({key:`清单条目:${h}`,fieldName:"清单条目",fieldId:"bill_item",objectName:/(?:部位|位置)[::]\s*([^\s,。;、||()()]{1,20})/u.exec(i)?.[1]?.trim()||h,value:`${i.slice(0,160)}${l?`|工程量:${l}`:""}`,sourceFile:d.sourceFile,roleId:"bill_of_quantities",processingType:"bill_of_quantities",confidence:.92,sourceRef:{filePath:d.sourceFile,roleId:"bill_of_quantities",processingType:"bill_of_quantities",sectionTitle:d.sheet}})}}return b}let x=["混凝土强度等级","砂浆强度等级","抗渗等级","钢筋牌号","钢筋级别","砖规格","砌块强度等级","混凝土种类","砂浆种类","垫层材料种类","找平层厚度","保护层厚度","防水层厚度","卷材厚度","镀锌层厚度","保温层厚度","垫层厚度","找坡层厚度","防水等级","抗裂等级","耐火等级","强度等级"],y=/(?<![A-Za-z0-9])C\d{2,3}(?!\d)|M\d+(?:\.\d+)?|P\d{1,2}|HRB\d{3,4}|HPB\d{3}|Q\d{3}|MU\d+|A\d+(?:\.\d+)?|B\d+(?:\.\d+)?|\d+(?:\.\d+)?\s*mm/u;function z(a){let b=/^C(\d{2,3})$/u.exec(String(a||"").trim());if(!b)return!0;let c=Number(b[1]);return Number.isFinite(c)&&c>=15&&c<=80}function A(a){return!function(a){let b=/^C(\d{2,3})$/u.exec(a);if(b){let a=Number(b[1]);return Number.isFinite(a)&&a>=15&&a<=80}return!0}(a)?"":/^C\d{2,3}$/.test(a)?"混凝土强度等级":/^M\d/.test(a)?"砂浆强度等级":/^P\d/.test(a)?"抗渗等级":/mm$/.test(a)?"厚度规格":/^HRB/.test(a)||/^HPB/.test(a)?"钢筋牌号":/^MU/.test(a)?"砌块强度等级":"规格"}function B(a,b,c){let d=(0,k.Uy)(b,c).filter(a=>a.required);return 0===d.length?a.filter(a=>a.confidence>=.75&&(0,o.lG)(a.value).trim().length>=2).length<12:d.filter(b=>a.some(a=>(function(a,b){let c=(0,o.lG)(a.value).trim();if(!c||c.length<2||c.length>220&&a.confidence<.8)return!1;let d=`${a.fieldId||""} ${a.fieldName||""} ${a.key}`.toLowerCase();return!!(d.includes(b.id.toLowerCase())||d.includes(b.name.toLowerCase()))&&("project_basic_fact"===a.roleId||a.roleId?.startsWith("role-")||a.sourceRef?.filePath?a.confidence>=.55:a.confidence>=.75)})(a,b))).length/d.length<.9}async function C(a,b,c,d,e,f){let g=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],h=Math.max(12e3,Math.floor((0,s.z)().factExtractionMaxChars??45e3)),i=Math.max(800,Math.floor(h/Math.max(8,Math.floor((0,s.z)().factExtractionMaxItems??48)))),j=[...a].sort((a,b)=>b.score-a.score),l=(0,k.Uy)(c,d),n=l.map(a=>`- id=${a.id} name=${a.name} type=auto required=${a.required} sourceRoleIds=${a.sourceRoleIds.join(",")||"不限"} hint=${a.extractionHint||"无"}`).join("\n"),p=b||"你是文档事实抽取器。",q=[],r=new Map;if(0===j.length)return{facts:[],stages:g};let t=[],u=[],v=0;for(let a of j){let b=G((0,o.lG)(a.content)).replace(/\s+/gu," ").slice(0,i),c=b.length+a.filePath.length+64;u.length>0&&v+c>h&&(t.push(u),u=[],v=0),u.push({item:a,content:b}),v+=c}u.length>0&&t.push(u);let w=0;for(let a of t){(0,o.Te)(e);let b=a.map(({item:a,content:b})=>{w+=1;let c=`E${w}`;return r.set(c,a),`[${c}] 文件:${a.filePath}
1
+ "use strict";exports.id=4435,exports.ids=[4435],exports.modules={1218:(a,b,c)=>{c.d(b,{B2:()=>t,De:()=>i.De,GK:()=>ac,N2:()=>B,OQ:()=>C,PP:()=>ah,R7:()=>K,W_:()=>L,ZR:()=>V,Zg:()=>z,d6:()=>S,d7:()=>aj,de:()=>H,hn:()=>w,iG:()=>I,ir:()=>ag,ji:()=>aa,n9:()=>ab,qG:()=>v,rC:()=>$,wj:()=>G});var d=c(73024),e=c(76760),f=c(15751),g=c(44533),h=c(73859),i=c(11628),j=c(19898),k=c(91977),l=c(11248),m=c(99956),n=c(18274),o=c(22157),p=c(37047),q=c(71678),r=c(82437),s=c(80572);function t(a,b,c){let d={};for(let e of(0,k.Uy)(a,c)){let a=b.find(a=>(0,k.I2)(a,e));a&&(d[e.name]=`${a.content.replace(/\s+/gu," ")}(来源:${a.filePath},角色:${a.roleId||"未标注"})`)}return d}let u=new Map;function v(a){let b=[],c=[],h=new Set;for(let i of a.filter(a=>"table"===a.processingType||"structured_data"===a.processingType||"bill_of_quantities"===a.processingType)){if(h.has(i.filePath))continue;h.add(i.filePath);let a=(0,g.aY)(),k=(0,g.NW)(a),l=e.isAbsolute(i.filePath)?i.filePath:d.existsSync(e.join(k,i.filePath))?e.join(k,i.filePath):e.join(a,i.filePath),m=e.extname(i.filePath).toLowerCase();if(d.existsSync(l)&&[".xlsx",".xls",".csv"].includes(m))try{c.push(...function(a,b){let c=d.statSync(a),e=`${a}:${b.roleId||"table"}`,g=u.get(e);if(g&&g.mtimeMs===c.mtimeMs&&g.size===c.size)return g.tables;let h=function(a,b){let c=f.readFile(a,{cellDates:!0,sheetStubs:!1}),d=[];for(let a of c.SheetNames){let e=c.Sheets[a],g=f.utils.sheet_to_json(e,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(g.length<2)continue;let h=(0,j.detectSmartTableHeader)(g),i=h.headers,k=g.slice(h.headerIndex+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==k.length&&d.push({tableType:b.roleId||"table",sheet:a,headers:i,rows:k,sourceFile:b.filePath,sourceRange:e["!ref"]})}return d}(a,b);return u.size>500&&u.clear(),u.set(e,{mtimeMs:c.mtimeMs,size:c.size,tables:h}),h}(l,i));continue}catch(a){b.push(`${i.filePath}:${a instanceof Error?a.message:String(a)}`)}let n=i.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(n.length<2)continue;let o=n[0].includes("|")?"|":n[0].includes(" ")?" ":",",p=n.map(a=>a.split(o).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);p.length<2||c.push({tableType:i.roleId||"table",headers:p[0],rows:p.slice(1),sourceFile:i.filePath,sourceRange:i.sectionTitle})}return b.length>0&&console.warn(`[facts] 工作簿解析失败 ${b.length} 份,已回退文本猜表(保真度下降):${b.slice(0,5).join(";")}`),c}function w(a){let b=[],c=/工程名称|序号|项目编码|项目名称|项目特征|计量\s*单位|工程量|金额|综合单价|合价|人工费|机械费|暂估价|分部小计|本页|续表|合计|汇总/u;for(let d of a){let a=(0,j.locateTableColumns)(d.headers);if((a.name??-1)<0&&(a.feature??-1)<0)continue;let e=(a.seq??-1)>=0;for(let f of d.rows){let g=e?(f[a.seq??0]||"").trim():"",h=(a.name??-1)>=0?(f[a.name??0]||"").trim():"",i=(a.feature??-1)>=0?(f[a.feature??0]||"").trim():"",j=(a.unit??-1)>=0?(f[a.unit??0]||"").trim():"",k=(a.quantity??-1)>=0?(f[a.quantity??0]||"").trim():"";if(e&&!/^\d+$/.test(g)||!h||!i||c.test(`${h}${i}`))continue;let l=k&&j?`${k}${j}`:k||j;b.push({key:`清单条目:${h}`,fieldName:"清单条目",fieldId:"bill_item",objectName:/(?:部位|位置)[::]\s*([^\s,。;、||()()]{1,20})/u.exec(i)?.[1]?.trim()||h,value:`${i.slice(0,160)}${l?`|工程量:${l}`:""}`,sourceFile:d.sourceFile,roleId:"bill_of_quantities",processingType:"bill_of_quantities",confidence:.92,sourceRef:{filePath:d.sourceFile,roleId:"bill_of_quantities",processingType:"bill_of_quantities",sectionTitle:d.sheet}})}}return b}let x=["混凝土强度等级","砂浆强度等级","抗渗等级","钢筋牌号","钢筋级别","砖规格","砌块强度等级","混凝土种类","砂浆种类","垫层材料种类","找平层厚度","保护层厚度","防水层厚度","卷材厚度","镀锌层厚度","保温层厚度","垫层厚度","找坡层厚度","防水等级","抗裂等级","耐火等级","强度等级"],y=/(?<![A-Za-z0-9])C\d{2,3}(?!\d)|M\d+(?:\.\d+)?|P\d{1,2}|HRB\d{3,4}|HPB\d{3}|Q\d{3}|MU\d+|A\d+(?:\.\d+)?|B\d+(?:\.\d+)?|\d+(?:\.\d+)?\s*mm/u;function z(a){let b=/^C(\d{2,3})$/u.exec(String(a||"").trim());if(!b)return!0;let c=Number(b[1]);return Number.isFinite(c)&&c>=15&&c<=80}function A(a){return!function(a){let b=/^C(\d{2,3})$/u.exec(a);if(b){let a=Number(b[1]);return Number.isFinite(a)&&a>=15&&a<=80}return!0}(a)?"":/^C\d{2,3}$/.test(a)?"混凝土强度等级":/^M\d/.test(a)?"砂浆强度等级":/^P\d/.test(a)?"抗渗等级":/mm$/.test(a)?"厚度规格":/^HRB/.test(a)||/^HPB/.test(a)?"钢筋牌号":/^MU/.test(a)?"砌块强度等级":"规格"}function B(a,b,c){let d=(0,k.Uy)(b,c).filter(a=>a.required);return 0===d.length?a.filter(a=>a.confidence>=.75&&(0,o.lG)(a.value).trim().length>=2).length<12:d.filter(b=>a.some(a=>(function(a,b){let c=(0,o.lG)(a.value).trim();if(!c||c.length<2||c.length>220&&a.confidence<.8)return!1;let d=`${a.fieldId||""} ${a.fieldName||""} ${a.key}`.toLowerCase();return!!(d.includes(b.id.toLowerCase())||d.includes(b.name.toLowerCase()))&&("project_basic_fact"===a.roleId||a.roleId?.startsWith("role-")||a.sourceRef?.filePath?a.confidence>=.55:a.confidence>=.75)})(a,b))).length/d.length<.9}async function C(a,b,c,d,e,f){let g=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],h=Math.max(12e3,Math.floor((0,s.z)().factExtractionMaxChars??45e3)),i=Math.max(800,Math.floor(h/Math.max(8,Math.floor((0,s.z)().factExtractionMaxItems??48)))),j=[...a].sort((a,b)=>b.score-a.score),l=(0,k.Uy)(c,d),n=l.map(a=>`- id=${a.id} name=${a.name} type=auto required=${a.required} sourceRoleIds=${a.sourceRoleIds.join(",")||"不限"} hint=${a.extractionHint||"无"}`).join("\n"),p=b||"你是文档事实抽取器。",q=[],r=new Map;if(0===j.length)return{facts:[],stages:g};let t=[],u=[],v=0;for(let a of j){let b=G((0,o.lG)(a.content)).replace(/\s+/gu," ").slice(0,i),c=b.length+a.filePath.length+64;u.length>0&&v+c>h&&(t.push(u),u=[],v=0),u.push({item:a,content:b}),v+=c}u.length>0&&t.push(u);let w=0;for(let a of t){(0,o.Te)(e);let b=a.map(({item:a,content:b})=>{w+=1;let c=`E${w}`;return r.set(c,a),`[${c}] 文件:${a.filePath}
2
2
  角色:${a.roleId||""}
3
3
  处理:${a.processingType||""}
4
4
  内容:${b}`}).join("\n\n---\n\n");if(!b.trim())continue;let c=await (0,m.bb)(p,`请严格按下面的动态事实 schema 从资料中抽取事实。只抽取资料明确支持的内容;如果字段限定 sourceRoleIds,必须优先来自对应文件角色;事实取舍和冲突处理遵循规范包字段说明、文件角色和提示词角色配置。
@@ -228,14 +228,14 @@ ${a.content}`).join("\n\n")||"",j=O(c,d,g,e.executionStages),k=ab(aw({...e,title
228
228
  只返回 JSON,不要返回 markdown。`,i={type:"object",required:["judgments"],properties:{judgments:{type:"array",minItems:1,items:{type:"object",properties:{id:{type:"string",minLength:1,required:!0},conclusion:{type:"string",minLength:1,required:!0},rationale:{type:"string",minLength:1,maxLength:300,required:!0}}}}}};function j(a,b,c=0){let d=Math.max(a.lastIndexOf("。",Math.max(0,b-1)),a.lastIndexOf("\n",Math.max(0,b-1)))+1,e=Math.max(a.lastIndexOf("。",Math.max(0,d-1)),a.lastIndexOf("\n",Math.max(0,d-1)))+1,f=a.lastIndexOf("\n\n",b),g=a.indexOf("。",b);-1===g&&(g=a.length);let h=a.indexOf("\n",b);-1===h&&(h=a.length);let i=Math.max(-1===f?0:f+2,e,b-220),k=Math.max(Math.min(g,h)+1,b+c);return a.slice(i,k).trim()}function k(a){return[a.kind,a.subject,a.value,a.unit,a.authority,a.facts?.join("|")??"",(0,d.c6)(a.sentence)].join("\xa7")}async function l(a,b={}){let c,d=new Map,j=[];for(let b of a){let a=f.get(k(b));a?d.set(b.id,{...a,id:b.id}):j.push(b)}if(0===j.length)return{records:d};let m=b.invokeJson??((a,c)=>(0,e.bb)(a,c,{temperature:0,diagnostics:b.diagnostics,signal:b.signal,schema:i,prefixKey:"citation-adjudication"}));for(let a=0;a<j.length;a+=40){let b,e=j.slice(a,a+40);try{b=await m(h,function(a){let b=a.map(a=>JSON.stringify({id:a.id,数据类型:g[a.kind],数据主体:a.subject,权威值:`${a.authority}${a.unit}`,正文引用值:`${a.value}${a.unit}`,所在句:a.sentence,...a.facts&&a.facts.length>0?{判定辅助事实:a.facts}:{}}));return`逐条裁决以下 ${a.length} 条正文引用候选是否以该项目级数据口径陈述该数值:
229
229
  ${b.join("\n")}
230
230
  只输出 JSON:{"judgments":[{"id":"...","conclusion":"consistent|conflict|uncertain","rationale":"不超过 60 字的依据"}]};每条候选必须给出结论,不得遗漏。`}(e))}catch(a){c=`语义判定调用异常:${a instanceof Error?a.message:String(a)}`,b=void 0}if(!b||!Array.isArray(b.judgments)){for(let a of(c=c??"语义判定调用失败(模型未返回有效 JSON)",e))d.set(a.id,{id:a.id,conclusion:"uncertain",rationale:c});continue}let i=new Map;for(let a of b.judgments)a&&"string"==typeof a.id&&i.set(a.id,a);for(let a of e){let b=i.get(a.id),c="string"==typeof b?.rationale&&b.rationale.trim()?b.rationale.trim().slice(0,120):b?"模型未给出判定依据":"模型输出缺少该候选的判定",e=b?.conclusion==="consistent"||b?.conclusion==="conflict"||b?.conclusion==="uncertain"?b.conclusion:"uncertain";"conflict"===e&&function(a){let b=/不冲突|并非冲突|不存在冲突|不予冲突|无冲突|(?:未|不|没有|不曾|从未|并非)(?:构成|形成|产生|发生|视为|属于|存在|发现|出现|检出|识别)[^,。;;、]{0,10}?(?:冲突|不一致)|非[^,。;;、]{0,12}?(?:口径|数值|陈述)/u;if(!b.test(a))return!1;let c=a.replace(RegExp(b.source,"gu"),"");return!/冲突|不一致/u.test(c)}(c)&&(e="consistent");let g={id:a.id,conclusion:e,rationale:c};d.set(a.id,g),b&&(f.size>=4e3&&f.clear(),f.set(k(a),g))}}return{records:d,unavailable:c}}let m=(a,b)=>l(a,b)},56963:(a,b,c)=>{c.d(b,{E7:()=>m,RT:()=>h,Rk:()=>o,fw:()=>f});var d=c(13145),e=c(91943);function f(a,b){if(!b)return"";let c=a.split(/\r?\n/u);for(let a=0;a<c.length;a+=1){if(!/^\s*\|/u.test(c[a])||!c[a].includes(b))continue;let d=a;for(;d>0&&/^\s*\|/u.test(c[d-1]);)d-=1;let e=a;for(;e+1<c.length&&/^\s*\|/u.test(c[e+1]);)e+=1;return c.slice(d,e+1).join("\n")}return""}function g(a){let b=a.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>(0,d.jG)(a.trim())));if(b.length<2)return{lines:a,removed:0};let c=b.length>1&&b[1].length>0&&b[1].every(a=>/^:?-{2,}:?$/u.test(a))?1:0,e=()=>Math.max(...b.map(a=>a.length)),f=0,g=!1,h=b[0],i=b.slice(c+1);if(i.length>0&&/表$/u.test(h[0]||"")&&i.every(a=>a.length>0&&""===a[a.length-1])&&i.some(a=>""!==a[0])){b[0]=h.slice(1);for(let a=c+1;a<b.length;a+=1)b[a]=b[a].slice(0,b[a].length-1);g=!0,f+=1}if(b.length>c+1){let a=[];for(let d=0;d<e();d+=1)b.slice(c+1).every(a=>""===(a[d]||""))&&a.push(d);if(a.length>0){for(let c of b)for(let b=a.length-1;b>=0;b-=1)c.splice(a[b],1);g=!0,f+=1}}return(b.length<=c+1&&(b.splice(0,b.length),g=!0,f+=1),g)?{lines:b.map((a,b)=>b===c?`| ${a.map(()=>"---").join(" | ")} |`:`| ${a.join(" | ")} |`),removed:f}:{lines:a,removed:0}}function h(a,b){let c=f(a,b);if(!c)return{content:a,removed:0};let d=g(c.split(/\r?\n/u));return d.removed>0?{content:a.replace(c,d.lines.join("\n")),removed:d.removed}:{content:a,removed:0}}let i=["上述要求与后续安排配套执行,执行情况由责任岗位登记归档。","下列要求应在上述安排基础上逐项落实,相关记录经复核后留存备查。","各项安排与上述要求同步执行,执行结果纳入日常台账统一管理。"],j={管控点位:["检查项目","管控事项","检查要点"],检查项目:["检查内容","检查要点","管控事项"],序号:["项次","编号","序次"]};function k(a){return a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>(0,d.jG)(a.trim()))}function l(a){let b=k(a);return b.length>=2&&b.every(a=>/^:?-{2,}:?$/u.test(a))}function m(a){let b=a.split(/\r?\n/u),c=[],d=0;for(;d<b.length;){if(!/^\s*\|/u.test(b[d])){c.push({kind:"text",line:b[d]}),d+=1;continue}let a=d;for(;a+1<b.length&&/^\s*\|/u.test(b[a+1]);)a+=1;c.push({kind:"table",parts:function(a){let b=[];for(let c=2;c<a.length;c+=1){if(!l(a[c])||l(a[c-1]))continue;let d=k(a[c-1]);!d[0]||d.every(a=>""===a)||b.push(c-1)}if(0===b.length)return[a];let c=[],d=0;for(let e of b)c.push(a.slice(d,e)),d=e;return c.push(a.slice(d)),c}(b.slice(d,a+1))}),d=a+1}let e=new Map;for(let a of c)if("table"===a.kind)for(let b of a.parts){if(!b.some(a=>l(a)))continue;let a=function(a){let b=a.trim(),c=b.startsWith("|")?b.slice(1):b;return(c.endsWith("|")?c.slice(0,-1):c).split("|").map(a=>a.split("**").join("").trim()).filter(a=>a.length>0).join("|")}(b[0]||"");if(!a)continue;let c=e.get(a);c?c.push(b):e.set(a,[b])}let f=0;for(let a of e.values())if(!(a.length<3))for(let b=1;b<a.length;b+=1){let c=j[function(a){let b=a.trim(),c=b.startsWith("|")?b.slice(1):b;for(let a of(c.endsWith("|")?c.slice(0,-1):c).split("|")){let b=a.split("**").join("").trim();if(b.length>0)return b}return""}(a[b][0]||"")];c&&0!==c.length&&(a[b][0]=function(a,b){let c=a.trim(),d=c.startsWith("|")?c.slice(1):c,e=(d.endsWith("|")?d.slice(0,-1):d).split("|"),f=e.findIndex(a=>a.trim().length>0);return f<0?a:(e[f]=` ${e[f].includes("**")?`**${b}**`:b} `,`|${e.join("|")}|`)}(a[b][0]||"",c[(b-1)%c.length]),f+=1)}let h=[],m=0,n=0,o=0;for(let a of c){if("text"===a.kind){h.push(a.line);continue}a.parts.length>1&&(n+=a.parts.length-1);let b=!1;for(let c of a.parts){let a=g(c);a.removed>0&&(m+=1),0!==a.lines.length&&(b&&(h.push("",i[o%i.length],""),o+=1),h.push(...a.lines),b=!0)}}return{markdown:h.join("\n"),removed:m,splitCount:n,variantCount:f}}function n(a){return(0,d.jG)(a).replace(/[\s*_`<>#]/gu,"")}function o(a,b){let c=a.replace(/\r\n?/gu,"\n").split("\n"),f=[],g=0,h=0;for(;h<c.length;){if(!/^\s*\|/u.test(c[h])){f.push(c[h]),h+=1;continue}let a=h;for(;a+1<c.length&&/^\s*\|/u.test(c[a+1]);)a+=1;let i=function(a,b,c){let f=a.map(a=>a.trim().replace(/^\|/u,"").replace(/\|$/u,"").split(/(?<!\\)\|/u).map(a=>(0,d.jG)(a.trim())));if(f.length<2)return;let g=f[1];if(!(g.length>0&&g.every(a=>/^:?-{2,}:?$/u.test(a))))return;let h=f[0],i=(h[0]||"").replace(/[\s*_]/gu,"");if(h.length<3||!/表$/u.test(i)||(i.match(/[\u4e00-\u9fa5]/gu)||[]).length<e.dM)return;let j=(h[0]||"").trim(),k=[...c].reverse().find(a=>a.trim());if(k&&n(k.replace(/^#{1,6}\s+/u,""))===n(j))return;let l=f.slice(2);if(l.length>0&&l.every(a=>a.length>0&&""===(a[a.length-1]||"").trim())&&l.some(a=>""!==(a[0]||"").trim())){let a=h.slice(1);return[j,"",`| ${a.join(" | ")} |`,`| ${a.map(()=>"---").join(" | ")} |`,...l.map(a=>`| ${a.slice(0,-1).join(" | ")} |`)]}let m=(b||[]).find(a=>a.title&&n(a.title)===n(j)),o=m?.fields?.[0]?.name?(0,d.jG)(m.fields[0].name).replace(/[\s\u3000]/gu,""):"";if(o)return[j,"",`| ${[o,...h.slice(1)].join(" | ")} |`,...a.slice(1)]}(c.slice(h,a+1),b,f);i?(f.push(...i),g+=1):f.push(...c.slice(h,a+1)),h=a+1}return{markdown:f.join("\n"),normalized:g}}},59424:(a,b,c)=>{c.d(b,{h:()=>h});var d=c(37047);let e=["计划总工期为300日历天","合同工期为300日历天","施工总工期为300日历天","招标控制价为6000万元","合同估算价为6000万元","投资估算为6000万元","总建筑面积为28000平方米","总用地面积为15000平方米","总占地面积为15000平方米","建设规模为28000平方米"],f=["专项应急演练4次","每日巡查2次","每周检查1次","每月安全培训2次","监理旁站24小时","三级安全教育培训20学时"];function g(a,b){let c=Math.min(a.length,b.length),d=0;for(let e=0;e<c;e+=1)d+=a[e]*b[e];return d}async function h(){let a=(0,d.VN)(),[b,c]=await Promise.all([a.embedDocuments([...e]),a.embedDocuments([...f])]);if(b.length!==e.length||c.length!==f.length)throw Error(`本地语义模型锚点嵌入数量不一致:范围锚点 ${b.length}/${e.length},计数锚点 ${c.length}/${f.length}`);return{async batchClassify(d){if(0===d.length)return[];let e=await a.embedDocuments(d);return d.map((a,d)=>{let f=e[d];if(!f||0===f.length)return"other";let h=Math.max(...b.map(a=>g(f,a))),i=Math.max(...c.map(a=>g(f,a)));return i>=.62&&i>h?"other":h>=.6?"scope":"other"})}}}},59873:(a,b,c)=>{c.d(b,{h:()=>g,z:()=>h});var d=c(99956),e=c(52922),f=c(40299);function g(a){return"heavy"===a.level||a.vagueHitCount>0||a.difficultyHeavyTemplated}async function h(a){if(!g(a.templating))return{issues:[],reviewed:!1};let b=(0,e.T4)(a.markdown),c=[`确定性检测信号:模板化等级=${a.templating.level},套话句占比=${(100*a.templating.fillerRatio).toFixed(1)}%,模糊应答词命中=${a.templating.vagueHitCount}(${a.templating.vaguePhrases.join("、")||"无"}),重难点归因+量化双达标占比=${(100*a.templating.difficultyCountermeasureRatio).toFixed(0)}%,跨项目残留=${a.templating.crossProjectResidue.join("、")||"无"}${b.found.length?`,四新技术命中=${b.found.join("、")}`:""}`,`待复核正文(节选):
231
- ${function(a,b=6e3){return[a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n[\s\S]{0,3500}/u)?.[0]||"",a.replace(/#{1,6}\s+[^\n]*\n/gu,"").replace(/\s+/gu," ").slice(0,b)].filter(Boolean).join("\n\n").slice(0,b+4e3)}(a.markdown)}`,'返回 JSON:{"issues":["问题1","问题2"]}'];try{let b=await (0,d.bb)((0,f.y4)('你是招标技术标评审专家。对施工组织设计做语义级复核,只报告确定性规则覆盖不到的语义问题。\n复核维度(按《施工组织设计全维度校验提示词》判定标尺):\n1. 重难点三级判定:识别精准性(是否点明本项目真实难点而非泛泛而谈)→ 归因合理性(是否说明难点成因/风险来源)→ 对策匹配度(对策是否针对该难点的成因,而非通用措施堆砌);\n2. 术语等效性:同一对象是否前后术语一致(如"砼"与"混凝土"混用需统一),是否出现词面不同但概念等效的双重标准表述;\n3. 四新技术升级价值:若正文声称采用四新技术,其价值表述是否停留在"提升效率"式套话,缺少可对标官方推广目录或替代落后工艺的实质说明。\n每条问题必须包含:问题所在内容简述+判定依据(对应上面哪条维度)+一句话改进建议。\n只报告真实存在的问题,正文无问题时返回空数组;不得编造问题。只返回 JSON。'),c.join("\n\n"),{maxTokens:1200,temperature:0,signal:a.signal,diagnostics:a.diagnostics,taskKind:(0,d.TO)()});return{issues:Array.isArray(b?.issues)?b.issues.filter(a=>"string"==typeof a&&a.length>0):[],reviewed:!0}}catch(a){return{issues:[`⚠ 语义级模板化复核未完成(模型调用失败,本项未复核):${a instanceof Error?a.message:String(a)}`],reviewed:!1}}}},62521:(a,b,c)=>{c.d(b,{Cv:()=>t,MH:()=>y,QM:()=>A,SF:()=>r,SO:()=>B,XR:()=>v,Y5:()=>s,YD:()=>n,an:()=>p,gF:()=>o,iY:()=>q,j7:()=>z,pX:()=>w,wd:()=>i,z1:()=>u});var d=c(38115),e=c(22157),f=c(3063),g=c(21702),h=c(35008);let i=6,j=h.mE.min,k=h.mE.max,l=h.mE.hardMax,m={core:1.5,general:1,brief:.6},n=350,o=2400,p=.75;function q(a,b){let c=a.replace(/工程$/u,""),f=[],g=new Map;for(let a of b){let b=(0,e.Ld)(a.title),c=g.get(b);void 0===c&&(c=f.length,g.set(b,c),f.push({label:b,points:[]})),f[c].points.push(a)}let h=[];for(let a of f)for(let b=0;b<a.points.length;b+=i){let e=a.points.slice(b,b+i),f=0===b?(0,d.UW)(c,a.label):(0,d.UW)(c,e[0].title);h.push({title:f,subPoints:e,facts:[],targetWords:0})}return h}function r(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(b),e=[...c(a)];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function s(a){return/工期|进度|节点|计划|纠偏|预警/u.test(a)?"工期进度":/质量|验收|三检|样板|隐蔽|复试|实测|通病/u.test(a)?"质量验收":/安全|危大|风险|隐患|应急|临边|洞口|消防|临电/u.test(a)?"安全风险":/文明|扬尘|噪声|绿色|废水|垃圾|环保|智慧/u.test(a)?"文明绿色":/劳务|工资|实名|银行|考勤|人员|岗位|组织|职责/u.test(a)?"组织劳务":/资源|材料|设备|机械|人材机|调配/u.test(a)?"资源保障":/施工|工艺|流程|顺序|穿插|部署|区段|流水/u.test(a)?"施工组织":"综合管理"}function t(a){return/^(?:确保\s*)?[人材机](?:员|力|料|械|工)?\s*的保障体系与措施$/u.test(a)}function u(a,b){let c=a.replace(/\s+/gu,""),d=b.replace(/\s+/gu,"");return c===d||c.includes(d)||d.includes(c)}function v(a,b,c={}){let d=[];if(0===a.length)return;let e=Math.max(0,Math.round(b)),f=a.reduce((a,b)=>a+Math.max(1,b.subPoints.length),0),g=Math.max(1,Math.floor(e/j)),h=a;if(h.length>g){let a=[],b=Math.max(1,Math.ceil(f/g)),d=[],e=0;for(let f of h){if(w(f.title)||y(f.title)||(c.barrierTitles||[]).some(a=>u(f.title,a))){d.length>0&&(a.push(d),d=[],e=0),a.push([f]);continue}let h=Math.max(1,f.subPoints.length);d.length>0&&(e+h>i||a.length<g-1&&e+h>b)&&(a.push(d),d=[],e=0),d.push(f),e+=h}d.length>0&&a.push(d),h=a.map(a=>1===a.length?a[0]:{title:(a.find(a=>w(a.title))||a[0]).title,subPoints:a.flatMap(a=>a.subPoints),facts:[...new Set(a.flatMap(a=>a.facts))],targetWords:0})}for(let a=0;a<64&&h.length<g;a+=1){let a=h.map(a=>Math.max(.5,a.subPoints.reduce((a,b)=>a+m[b.tier||"general"],0))),b=a.reduce((a,b)=>a+b,0)||h.length,c=-1,d=k;if(h.forEach((f,g)=>{let h=Math.floor(e*a[g]/b);f.subPoints.length>=2&&h>d&&(c=g,d=h)}),c<0)break;let f=h[c],g=Math.ceil(f.subPoints.length/2);h.splice(c,1,{...f,subPoints:f.subPoints.slice(0,g),targetWords:0},{...f,subPoints:f.subPoints.slice(g),targetWords:0})}let n=h.map(a=>Math.max(.5,a.subPoints.reduce((a,b)=>a+m[b.tier||"general"],0))),o=n.reduce((a,b)=>a+b,0)||h.length,p=Math.min(j,Math.floor(e/Math.max(1,h.length))),q=h.map((a,b)=>Math.max(p,Math.floor(e*n[b]/o))),r=q.reduce((a,b)=>a+b,0)-e;if(r>0){let a=q.map(a=>a-p),b=a.reduce((a,b)=>a+b,0);if(b>0){let c=0;q.forEach((d,e)=>{let f=Math.min(a[e],Math.floor(r*a[e]/b));q[e]=d-f,c+=f});for(let a=r-c;a>0;a-=1){let a=-1;if(q.forEach((b,c)=>{!(b<=p)&&(a<0||b>q[a])&&(a=c)}),a<0)break;q[a]=q[a]-1}}}let s=q.reduce((a,b)=>a+b,0);if(s<e){let a=0;q.forEach((b,c)=>{b>q[a]&&(a=c)}),q[a]=q[a]+(e-s)}for(let a of(h.forEach((a,b)=>{a.targetWords=Math.max(1,Math.min(q[b],l))}),h.forEach(a=>{let b=Math.max(1,Math.floor(a.targetWords/300));if(a.subPoints.length<=b)return;let c=a.subPoints.length,e=a.subPoints.slice(0,b-1),f=a.subPoints.slice(b-1);a.subPoints=[...e,{title:"其他分部分项工程施工要点",sources:[...new Set(f.flatMap(a=>a.sources))],tier:"brief"}];let g=`块「${a.title}」超密度守卫:要点数 ${c} → ${a.subPoints.length}(块预算 ${a.targetWords} 字,密度上限 ${b} 要点,${f.length} 个要点合并为概览要点,细节丢失)`;console.warn(`[blueprint] ${g}`),d.push(g)}),h)){if(0===a.subPoints.length)continue;let b=a.subPoints.map(a=>m[a.tier||"general"]),c=b.reduce((a,b)=>a+b,0)||a.subPoints.length,d=b.map(b=>Math.max(100,Math.floor(a.targetWords*b/c))),e=d.reduce((a,b)=>a+b,0);if(e>a.targetWords){let d=a.targetWords;a.subPoints.forEach((e,f)=>{let g=f===a.subPoints.length-1?Math.max(1,d):Math.max(1,Math.floor(a.targetWords*b[f]/c));e.quotaWords=g,d-=g});continue}let f=b.reduce((a,c,d)=>c>b[a]?d:a,0),g=a.targetWords-e;a.subPoints.forEach((a,b)=>{a.quotaWords=d[b]+(b===f?g:0)})}h!==a&&(a.length=0,a.push(...h)),a.densityMergeWarnings=d}function w(a){return f.Yp.test(a)||f.gG.test(a)}let x=/^(特殊时段|异常气候|恶劣气候|恶劣天气|极端气候|极端天气|雨季|雨期|冬期|冬季|汛期|台风|高温|寒潮|全天候|节假日施工|夜间施工)/u;function y(a){let b=a.replace(/^[一二三四五六七八九十百\d]+[、..\s::-]+/u,"").trim();return x.test(b)}function z(a,b){let c=[];for(let d of a){let a=d.trim(),e=a.replace(/\s+/gu,"");if(!(!e||/^其他$|^其它$|^其他工程$|^其余/u.test(e))&&!c.some(a=>{let b=a.replace(/\s+/gu,"");return b.includes(e)||e.includes(b)})&&(c.push(a),c.length>=b))break}return c}function A(a){let b=a=>a.trim().toLowerCase().replace(/\s+/gu,""),c=a=>{let c=new Set;for(let d of a??[]){let a=b(String(d??""));a&&c.add(a)}return c},d=c(a.blueprintParams),e=c(a.billSpecs),f=c(a.evidenceTokens),g=c(a.factValues),h=new Set([...d,...e,...f,...g]).size;return{blueprint:d.size,bill:e.size,evidence:f.size,factNeeds:g.size,total:h}}function B(a){var b;let c=Math.max(0,Math.round(a.targetWords)),d=Math.max(0,Math.round(a.availableParameters)),e=c>0?d/c*1e3:0,f=Math.ceil(c/1e3*g.J5),h=Math.max(0,f-d),i=0===c||0===h,j=(b=a.supplyChannels)?`可用参数来源:蓝图 must_cite ${b.blueprint} 个、本章责任清单行规格 ${b.bill} 个、本章证据精确 token ${b.evidence} 个、本章需求解析事实值 ${b.factNeeds} 个(按归一化 token 去重后共 ${b.total} 个)。`:"",k=i?[]:[`本章目标 ${c} 字,可用量化参数 ${d} 个(${e.toFixed(2)}/千字),低于本条要求线 ${g.J5}/千字(与块质检/构造审计同值),缺 ${h} 个。`,...j?[j]:[],`二选一(端点必须一起动,只动一端会重新制造「要不到料却照常扣分」):① 扩供给——把本章责任清单行/证据的取用优先级提前、放宽本章参数配额上限;② 同步下调——把本章目标字数降到 ${Math.floor(d/g.J5*1e3)} 字 附近,使供给与要求对齐(目标字数与密度要求必须一起改)。`];return{chapterTitle:a.chapterTitle,targetWords:c,availableParameters:d,densityPer1000:e,requiredDensityPer1000:g.J5,sufficient:i,requiredParameters:f,parameterShortfall:h,remediation:k,supplyChannels:a.supplyChannels}}},63516:(a,b,c)=>{c.d(b,{DO:()=>aS,E:()=>az,E6:()=>aq,FR:()=>at,HF:()=>as,JX:()=>aA,Mf:()=>aT,Mx:()=>s,NT:()=>x,NY:()=>aM,Sf:()=>aj,T3:()=>ay,TX:()=>aR,U1:()=>aO,Uk:()=>ap,VX:()=>ax,Vf:()=>aC,_D:()=>aB,e_:()=>am,ey:()=>ar,jl:()=>al,l:()=>ao,mg:()=>ad,o0:()=>aJ,tH:()=>aQ,zD:()=>an});var d=c(73024),e=c(76760),f=c(31920),g=c(99956),h=c(48661),i=c(1218),j=c(37047),k=c(35547),l=c(22157),m=c(19898),n=c(71678),o=c(30111),p=c(40299),q=c(95294),r=c(18292);function s(a=!1){return{entries:[],excluded:[],structureRequirements:[],reconciliation:{clauseCount:0,entryCount:0,excludedCount:0,undecidedCount:0,mergedCount:0,batchCount:0,retriedBatches:0,structureCount:0},extracted:a}}let t=/^(?:☑?\s*无|无)\s*[。;;]?\s*$|:\s*(?:☑)?\s*无\s*[。;;]?\s*$|:\s*见\s*《?[^》]{2,40}》?\s*[。;;]?\s*$/u;function u(a){let b=a.trim();if(!b||/^#{0,6}\s*\d+(?:[.-]\d+)*\s*[^\s。;;::]{1,24}$/u.test(b)||/☑\s*无/u.test(b)||/□有[^。;;!?!?]{0,40}具体要求如下[::]\s*\/?\s*$/u.test(b))return!0;let c=b.split(":").pop()?.trim()||b;return!!t.test(c)}let v=/^(?:回复|答复|答疑|答|澄清|释义)[::]\s*[。;;、/]?\s*$/u;function w(a){return String(a??"").replace(/^\s*[((]?\d+(?:[..]\d+)*[))]?\s*[、..;;::]?\s*/u,"").replace(/^[、..;;::\-\s]+/u,"").trim()}function x(a){return a.trim().replace(/^#{2,4}\s+/u,"").replace(/^\d+(?:\.\d+)*[\s、.]+/u,"").trim()}let y=[/^第[零一二三四五六七八九十百千\d]{1,6}[条章节款项]/u,/^[((][一二三四五六七八九十\d]{1,3}[))]/u,/^[一二三四五六七八九十]{1,3}[、..](?!\d)/u,/^\d{1,2}(?:[..]\d{1,2}){1,3}(?:[、..]|\s)/u,/^\d{1,2}[、..]\s*(?![\d%])/u],z=m.BID_OBLIGATION_CARRIERS;function A(a){return a.length<=300&&/[::]/u.test(a)&&!/[。;;]/u.test(a.slice(0,a.search(/[::]/u)))}let B=/^(?:问题|疑问|提问|咨询|质疑|问)[一二三四五六七八九十\d]{0,3}[::]|[??]\s*$/u,C=/^(?:回复|答复|答疑|答|澄清|释义)[::]/u;function D(a){return/[。!?!?;;))】」》”]$/u.test(a.trim())}let E=/[的其不或在和与及等被把将为以对从向就但而则即如若因所该本此录]$/u,F=/[\p{Script=Han}A-Za-z]{2,}/u,G={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},isRequirement:{type:"boolean",required:!0},inScope:{type:"boolean",required:!0},reason:{type:"string",maxLength:32},policy:{type:"string",maxLength:16},coreTerms:{type:"array",items:{type:"string",maxLength:24}},category:{type:"string",maxLength:16},structures:{type:"array",items:{type:"object",properties:{element:{type:"string",maxLength:24},form:{type:"string",maxLength:16}}}}}}}}},H=(()=>{let a=Number(process.env.AGENT_CLAUSE_BATCH_CONCURRENCY);return!Number.isFinite(a)||a<1?6:Math.min(8,Math.floor(a))})(),I=[(0,p.y4)("你是招标文件条款判定器。"),'输入是从招标资料(招标文件/补疑/答疑等)中按原文顺序切分的条款单元(含全局序号与来源)。\n对每一条独立完成判定,且必须为每一条给出结果(不得遗漏任何序号)。\n\n1. isRequirement:该条是否构成对投标人的实质要求(需写入正文响应或必须遵守)?\n - true:明确的目标/等级/标准/参数/义务/禁止性要求(确保、达到、不低于、不得、严禁、必须、应当等约束语义)\n - false:目录、章节导语、说明性/解释性文字、空白表头、格式模板、无约束力的描述\n - 边界判例(格式模板 vs 结构呈现要求):表格填写/签章格式/装订份数类模板说明 → false;\n 「组织机构以框图方式表示」「采用文字并结合图表形式编制」「附网络图、横道图」等呈现形态要求 → true(呈现信息同时进入 structures 通道)\n - 孤立碎片(无问题上下文的「回复:\xd7\xd7」「答:\xd7\xd7」、表格残片、无法独立理解的半截句)→ false(reason="non_requirement")\n - 问答对(「问题:\xd7\xd7 … 回复:\xd7\xd7」):答复含实质要求(指标/标准/义务/禁止性内容)→ true(按答复内容给出 policy/coreTerms);纯程序性答复(「按招标文件执行」「详见补遗」)→ false\n - 条款值被明确标注「无」「☑无」「不适用」「/」时 → isRequirement=false(reason="no_value")\n - 工程量清单条目、项目特征描述、工程量数据不是本通道要求(由清单蓝图通道处理)→ false\n2. inScope:该条是否属于施工组织设计正文的职责范围?\n - true:质量/工期/安全/环保目标、创优奖项、绿色建筑/智慧工地/装配式等级、体系基准(六个百分百/四节一环保等)、\n 工期与进度约束、人员配置与分包限制、材料工艺与验收标准、禁止性事项、必须遵守的技术约束\n - false:纯投标程序事务(开标时间地点/保证金账户信息/递交解密方式/评标委员会组成)、投标资格条件\n (营业执照/资质证书/业绩要求)、评标否决规则(否决其投标/废标情形)、商务纪律承诺(廉洁承诺)、格式签章要求、\n 商务与造价条款(付款/进度款/工程款/结算/保证金/违约金/保函/预付款/税金/税率/报价/综合单价/暂列金额/暂估价/限价/调差等,\n 属商务标响应内容,技术标正文不出现)、\n 合同履约管理程序条款(施工合同通用/专用条款及合同附件的程序性与责任性约定:资料报送/审批/备案期限、\n 违约责任与违约金罚款明细、人员请假/更换/离场批准程序、保险投保办理程序、工程质量保修书程序与保修期限明细、\n 试验条件自理、工程照管责任起止、治安保卫程序、分包审批程序、采购与评标程序——属合同管理范畴,技术标正文不逐条抄写;\n 但质量/安全/文明/工期目标、人员资格与配置、技术工艺与验收标准类实质要求仍按 true 判定)\n3. policy(isRequirement 且 inScope 时必填,其余省略):\n - "respond":必须在正文显性写出的要求(创优目标/奖项、质量目标、等级指标、体系基准、技术工艺条款、人员与分包约束、验收标准)\n - "comply":不逐条抄写但全文必须遵守的约束(以开工令为准的日期约束、工期总日历天数基准、全局禁止性事项)\n4. coreTerms:2-4 个用于正文核对的核心词(专有名词/等级名/体系名/关键数字参数,如「\xd7\xd7杯」「二星级」「六个百分百」「300万元」);\n 数字参数必须保留数字与单位;不要泛化词(「施工」「工程」类不能作为核心词);\n 必须是正文中可自然逐字出现的完整词/短语(括号/标点保持原文形态),不得使用去标点拼接的短语碎片或合同填空语言(如「承包人自理」);\n 不得取条目的名目/评价维度词(如「技术能力」「其他内容」「针对性」「可行性」「主要人员」)与引用性空话\n (如「按设计图纸要求」「详见招标文件」「满足设计要求」)——正文响应写的是实质内容与数据,\n 条目名与空话在正文中必然不落位,取作核心词会把「已按实响应」判成未响应(4.59 R-C4 实机:\n 这两类核心词是「招标要求部分响应/未响应」误报的主要成分)\n5. category:按招标语义命名类别(如「质量创优」「工期进度」「安全文明」「绿色施工」「人员管理」「商务支付」「禁止性要求」),\n 同类要求使用同一类别名\n6. structures:该条是否明文要求内容的呈现形态?命中时输出数组(element 呈现对象名 + form 形态),无呈现要求时省略该字段:\n - form 枚举:“org_chart”(框图/组织机构图/组织结构图)、“diagram”(网络图/横道图/平面布置图/进度计划图)、“table”(表格/组成表)、“chart_text”(文字结合图表/图表形式编制)\n - element:呈现对象的名词短语(如「项目管理机构」「施工总平面布置」「施工进度计划」),不得与原文无关\n - 边界判例:「组织机构以框图方式表示」→ [{element:"项目管理机构",form:"org_chart"}];「采用文字并结合图表形式编制」→ [{element:"施工组织设计",form:"chart_text"}];\n 纯格式填写说明/签章装订要求(按给定格式填写并盖章/正副本份数)→ 不输出 structures\n - 呈现要求与 isRequirement/inScope 判定相互独立:即使本条因程序/格式原因被判排除,structures 仍须输出\n\nisRequirement=false 或 inScope=false 时须给出 reason(枚举):\n- "non_requirement":非约束性内容(目录/导语/说明/描述)\n- "out_of_scope":超出施组职责(投标程序/资格/评标规则/纪律/格式/商务与造价/合同履约管理程序)\n- "no_value":条款值为「无」或不适用\n\n输出 JSON 结构(覆盖全部序号,每序号必出结果):\n{ "results": [\n { "index": 0, "isRequirement": true, "inScope": true, "policy": "respond", "coreTerms": ["\xd7\xd7杯", "300万元"], "category": "质量创优" },\n { "index": 1, "isRequirement": false, "inScope": false, "reason": "out_of_scope" },\n { "index": 2, "isRequirement": false, "inScope": false, "reason": "out_of_scope", "structures": [{ "element": "项目管理机构", "form": "org_chart" }] }\n] }\n只返回 JSON。'].join("\n");function J(a){return"no_value"===a.reason||"out_of_scope"===a.reason||"non_requirement"===a.reason?a.reason:!0===a.isRequirement&&!1===a.inScope?"out_of_scope":"non_requirement"}let K=[{form:"org_chart",formRe:/框图|组织机构图|组织结构图|组织架构图/u,elementRules:[{re:/项目管理机构|项目经理部|项目班子|管理机构|组织机构|管理部门/u,element:"项目管理机构"}],fallbackElement:"组织机构"},{form:"diagram",formRe:/网络图/u,elementRules:[{re:/进度|工期|计划/u,element:"施工进度计划网络图"}],fallbackElement:"网络图"},{form:"diagram",formRe:/横道图|甘特图/u,elementRules:[{re:/进度|工期|计划/u,element:"施工进度计划横道图"}],fallbackElement:"横道图"},{form:"diagram",formRe:/总平面布置图|施工总平面图|总平面图|平面布置图|临时设施图|施工总平面布置/u,elementRules:[],fallbackElement:"施工总平面布置图"},{form:"table",formRe:/组成表|机构设置表|人员配备表|一览表/u,elementRules:[{re:/机械设备|施工机械|设备/u,element:"施工机械设备表"},{re:/劳动力|用工/u,element:"劳动力安排计划表"},{re:/项目管理机构|机构|人员/u,element:"项目管理机构人员组成表"}],fallbackElement:"要求表格"},{form:"chart_text",formRe:/结合图表|图表形式|图文并茂/u,elementRules:[{re:/施工组织设计/u,element:"施工组织设计"}],fallbackElement:"图表呈现"}];function L(a,b){let c=function(a){let b=[],c=a.trim();if(!c)return b;for(let a of K){if(!a.formRe.test(c))continue;let d=a.fallbackElement;for(let b of a.elementRules)if(b.re.test(c)){d=b.element;break}b.push({element:d,form:a.form,sourceText:c})}return b}(a.text);for(let d of b?.structures||[]){let b=function(a){let b=(a||"").trim().toLowerCase();return"org_chart"===b||"orgchart"===b||"框图"===b||"组织机构图"===b?"org_chart":"diagram"===b||"图"===b||"网络图"===b||"横道图"===b?"diagram":"table"===b||"表格"===b?"table":"chart_text"===b||"charttext"===b||"图表"===b||"文字结合图表"===b?"chart_text":void 0}(d?.form),e=(d?.element||"").trim().slice(0,24);b&&!(e.length<2)&&(c.some(a=>a.form===b&&a.element===e)||c.push({element:e,form:b,sourceText:a.text.trim()}))}return c}let M=/(?:我(?:公司|方|单位|们)[^。;;]{0,24}(?:对|就)(?:该|本|上述|所填)?(?:表|清单|资料)[^。;;]{0,32}(?:均属|均为|真实|属实|可靠|有效|无误))|(?:(?:以上|上述|该表|所填报?)[^。;;]{0,20}(?:内容|资料)[^。;;]{0,20}(?:均属|均为|真实|属实|可靠|有效|无误))/u;function N(a){return M.test(a)}let O=/开工令|开工日期|竣工日期|不得.{0,12}(?:自定|自行确定|编造|设定)/u;function P(a){let b=[a.section,a.clauseNo?`条款${a.clauseNo}`:""].filter(Boolean).join("\xb7");return[a.file,b].filter(Boolean).join("|")||void 0}async function Q(a,b,c){let d=Array(a.length),e=0;return await Promise.all(Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e;if(e+=1,b>=a.length)return;d[b]=await c(a[b],b)}})),d}async function R(a,b,c={}){let d=a.map((a,c)=>{let d=P(a);return`【条款 ${b+c}】${d?`来源:${d}`:""}
232
- ${a.text}`}).join("\n\n"),e=new Set(a.map((a,c)=>b+c)),f=new Map;for(let a=0;a<2;a+=1){let b=await (0,g.bb)(I,d,{maxTokens:8e3,temperature:0,signal:c.signal,diagnostics:c.diagnostics,schema:G,taskKind:(0,g.TO)()});for(let a of(f=new Map,b?.results||[]))"number"==typeof a.index&&e.has(a.index)&&f.set(a.index,a);if(f.size===e.size)return{judgments:f,retried:a>0}}return{judgments:f,retried:!0}}let S=q.uW;function T(a){let b=a.replace(/\s+/gu,"");return b.length<=10&&!/\d/u.test(b)&&!S.test(b)}function U(a){let b=a.trim().replace(/\s+/gu,"");return!!b&&!!(/(?:回复|答复)[::]/u.test(b)||/(?:^|[。;;\n])\s*(?:答|答复|回复|答疑|提问|问)\s*[::]/u.test(b)||/扣\d+(?:\.\d+)?分|总分\d+分|百分制|考核(?:办法|评分|结果|得分|扣分|奖惩)/u.test(b)||/质量保修|保修范围|派人保修|保修通知|保修期如下/u.test(b)||/本表(?:应|须|不|需|作)/u.test(b)||/投标文件(?:应|须|应当)[^。;]{0,40}(?:响应|作出响应|包含|包括)/u.test(b)||/我方拟派|无在岗项目|拟分包项目情况表/u.test(b)||/^[((、..\d]{0,8}☑/u.test(b)||(0,q.MO)(b))}let V=/(保修|安全生产合同|承包人职责|承包人的一般义务|承包人人员|监理人的一般规定|不合格工程的处理|样品的报送|开工准备|承包人文件|人员及职责|终身责任制承诺|投标文件格式|考核表|督查|管养|养护管理|景观设施维护|地被养护)/u;function W(a){let b=(a||"").replace(/\s+/gu,"");return b.length>0&&V.test(b)}function X(a){let b=a.replace(/\s+/gu,"");return!(b.length<4)&&(/〔\d{4}〕/u.test(b)||/(?:办法|通知|规定|条例|细则)$/u.test(b))}let Y=/^(?:Φ|φ|Ø|ø)?-?(?:HPB|HRB|HRBF|RRB|CRB|Q|MU|C)\d{1,4}[A-Z]?$/u;function Z(a){return Y.test(a.replace(/\s+/gu,"").toUpperCase())}let $=/^(?:按|依据|见|详见|参见|遵照|参照|执行|满足|符合)(?:设计图纸|设计文件|图纸|图集|规范|标准|招标文件|合同|国家现行标准|现行标准|相关规范|有关规定|设计要求)(?:的)?(?:要求|规定|执行|施工|做法|标准|为准)?\s*[。;;]?\s*$/u,_=/[\s。;;,,、::()()]/gu,aa=/^(?:按|依据|见|详见|参见|遵照|参照|执行|满足|符合)(?:设计图纸|设计文件|图纸|图集|规范|标准|招标文件|合同|国家现行标准|现行标准|相关规范|有关规定|设计要求)(?:的)?(?:要求|规定|执行|施工|做法|标准|为准)?$/u;function ab(a){let b=(a||[]).map(a=>(a||"").trim()).filter(a=>a.length>=2);return b.length>0&&b.every(X)}async function ac(a,b={}){let c=[],d=[],e=[],f=[];if(0===a.length)return{entries:c,excluded:d,undecided:e,structureRequirements:[],batchCount:0,retriedBatches:0};let g=[];for(let b=0;b<a.length;b+=40)g.push(a.slice(b,b+40));let h=0,i=await Q(g,H,(a,c)=>R(a,40*c,b).then(a=>(h+=1,b.onBatch?.(h,g.length),a))),j=0;return i.forEach((a,b)=>{a.retried&&(j+=1),g[b].forEach((g,h)=>{var i,j;let k=a.judgments.get(40*b+h);if(f.push(...L(g,k)),!k)return void e.push(g);if(!k.isRequirement||!k.inScope)return void d.push({text:g.text,source:P(g),reason:J(k)});if(T(g.text))return void d.push({text:g.text,source:P(g),reason:"non_requirement"});if(t.test(g.text)||u(g.text))return void d.push({text:g.text,source:P(g),reason:"no_value"});if(v.test(g.text)||N(g.text))return void d.push({text:g.text,source:P(g),reason:"non_requirement"});if((0,l.hh)(g.text)||(0,n.dn)(g.text)||(0,l.DI)(g.text)||(0,n.Hf)(g.text))return void d.push({text:g.text,source:P(g),reason:"out_of_scope"});let m=(0,o.m)(g.text);if("technical"!==m&&"commercial"!==m)return void d.push({text:g.text,source:P(g),reason:(0,o.C)(g.text)?"credit_scoring":"out_of_scope"});if(W(g.section)||ab(k.coreTerms))return void d.push({text:g.text,source:P(g),reason:"out_of_scope"});if(U(g.text)){let a=(0,q.MO)(g.text);d.push({text:g.text,source:P(g),reason:a?"noise":"non_requirement"});return}if(aP(g.text))return void d.push({text:g.text,source:P(g),reason:"commercial_scope"});let p="comply"===(i=k.policy)?i:"respond";c.push({text:g.text,coreTerms:Array.isArray(j=k.coreTerms)?j.map(a=>(a||"").trim()).filter(a=>a.length>=2&&a.length<=24).slice(0,4):[],sources:[function(a){let b=[a.section,a.clauseNo?`条款${a.clauseNo}`:""].filter(Boolean).join("\xb7");return{file:a.file||void 0,location:b||void 0}}(g)],category:function(a){let b=(a||"").trim();return!b||b.length>16?"其他要求":b}(k.category),policy:p,global:!!("comply"===p&&O.test(g.text))||void 0,carrier:g.carrier,clauseNo:g.clauseNo})})}),{entries:c,excluded:d,undecided:e,structureRequirements:function(a){let b=new Map;for(let c of a){let a=`${c.form}|${c.element}`;b.has(a)||b.set(a,c)}return[...b.values()]}(f),batchCount:g.length,retriedBatches:j}}async function ad(a,b={}){let c=s(!1);if(!a||0===a.length)return c;let d=function(a){let b=[];for(let c of a){let a,d=c.content||"";if(!d.trim())continue;let e=(0,m.refineEvaluationCarrier)((0,m.resolveCarrier)({kind:c.roleId||"other",section:c.sectionTitle}),c.sectionTitle??"",d.slice(0,200));if(!z.has(e))continue;let f=c.filePath||void 0,g=c.sectionTitle?.trim()||void 0,h=[],j={fragment:null},k=(a,c)=>{let d=function(a){if(a.length<=2e3)return[a];let b=a.split(/(?<=[。;;!?!?])/u),c=[],d="";for(let a of b)d&&d.length+a.length>2e3&&(c.push(d),d=""),d+=a;return d&&c.push(d),c.length>0?c:[a]}(a);d.forEach((a,h)=>{b.push({file:f,section:g,clauseNo:c?d.length>1?`${c}-${h+1}`:c:void 0,text:a,carrier:e})})},l=()=>{var b;let c=h.join("\n").trim(),d=a;if(h=[],a=void 0,!c)return;let e=j.fragment?.clauseNo||d;if(j.fragment&&(c=`${j.fragment.text}
233
- ${c}`,j.fragment=null),(b=c).length<=8&&!/[。;;!?!?]/u.test(b)&&!/\d/u.test(b)){j.fragment={text:c,clauseNo:e};return}k(c,e)};for(let b of d.split(/\r?\n/u)){let c=b.trim();if(/^#{1,6}\s/u.test(c)){let a=(0,i.wj)(c).trim();if(!a)continue;if(!(!a||/(?:\.{3,}|…)/u.test(a)||/^(?:PDF 第 \d+ 页|PDF 表格区域)/u.test(a))&&(!(!/[☑□■☐☒√×]/u.test(a)&&(!(a.length<=3)||/^\d/u.test(a)))||!(/^第[一二三四五六七八九十\d]+[章节部分条编]/u.test(a)&&a.length<=40&&!/[::,,]/u.test(a)||/^(?:目录|附录|附件)/u.test(a)&&a.length<=30&&!/[::,,]/u.test(a)||/^\d+(?:[..]\d+)*[..、]?\s*\S/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a)&&!E.test(a)&&F.test(a.replace(/^\d+(?:[..]\d+)*[..、]?\s*\d*\s*/u,""))||/^[一二三四五六七八九十]{1,3}[、..](?!\d)/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a)&&F.test(a.replace(/^[一二三四五六七八九十]{1,3}[、..\s]*/u,""))||/^[((][一二三四五六七八九十\d]{1,3}[))]/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a.replace(/^[((][一二三四五六七八九十\d]{1,3}[))]/u,""))&&F.test(a.replace(/^[((][一二三四五六七八九十\d]{1,3}[))]\s*\d*\s*/u,"")))&&1)){if(/^\d{1,3}$/u.test(a))continue;if(A(a)){if(h.length>0&&!D(h[h.length-1])){h.push(a);continue}h.length>0&&l(),h.push(a),!B.test(a)&&D(a)&&l();continue}h.push(a);continue}h.length>0&&l(),g=a;continue}let d=(0,i.wj)(c).trim();if(!d){h.length>0&&D(h[h.length-1])&&l();continue}if(/^\d{1,3}$/u.test(d))continue;if(C.test(d)){h.push(d),1===h.length&&l();continue}let e=function(a){for(let b of y){let c=b.exec(a);if(c)return c[0].trim().replace(/[、..\s]$/u,"")}}(d);if(e){h.length>0&&l(),a=e,h.push(d);continue}if(A(d)){if(h.length>0&&!D(h[h.length-1])){h.push(d);continue}h.length>0&&l(),h.push(d),!B.test(d)&&D(d)&&l();continue}h.push(d)}h.length>0&&l(),j.fragment&&(k(j.fragment.text,j.fragment.clauseNo),j.fragment=null)}return b}(a);if(0===d.length)return c;b.onPhase?.(`条款化完成:${d.length} 条单元(全文穷举切分,不预筛不剔除)`,[`来源文件:${[...new Set(d.map(a=>a.file).filter(Boolean))].join("、")||"—"}`,"逐条判定进行中(每批 40 条,序号严格对齐)"]);let e=await ac(d,{signal:b.signal,diagnostics:b.diagnostics,onBatch:(a,c)=>b.onProgress?.(a,c)}),f=function(a){let b=new Map,c=0;for(let d of a){let a=d.text.replace(/[\s,。;、::..()()「」“”"'`·]/gu,""),e=b.get(a);if(e){for(let a of d.sources)e.sources.some(b=>b.file===a.file&&b.location===a.location)||e.sources.push(a);e.coreTerms=[...new Set([...e.coreTerms,...d.coreTerms])].slice(0,4),c+=1;continue}b.set(a,d)}return{entries:[...b.values()],mergedCount:c}}(e.entries);b.onPhase?.(`逐条判定完成:要求 ${f.entries.length} + 排除 ${e.excluded.length}${f.mergedCount>0?` + 合并 ${f.mergedCount}`:""} + 未判定 ${e.undecided.length}${e.structureRequirements.length>0?`;结构/呈现要求 ${e.structureRequirements.length}`:""}`,0===e.undecided.length?["对账闭合:全部条款已判定"]:[`未判定 ${e.undecided.length} 条(LLM 输出缺号且重试后仍缺),对账未闭合,缓存不落盘`]);let g=e.entries.length>0||e.excluded.length>0;return{entries:f.entries,excluded:e.excluded,structureRequirements:e.structureRequirements,reconciliation:{clauseCount:d.length,entryCount:f.entries.length,excludedCount:e.excluded.length,undecidedCount:e.undecided.length,mergedCount:f.mergedCount,batchCount:e.batchCount,retriedBatches:e.retriedBatches,structureCount:e.structureRequirements.length},extracted:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(a.map(a=>`${a.filePath||""}|${a.sectionTitle||""}|${a.content||""}`).join("\n"))}}let ae=/履约保证金|质量保证金|保证金账户|中标金额|中标价|进度款|工程款|付款|结清|结算|违约金|贷款市场报价利率|LPR|最高投标限价|工程结算价款|预付款|支付担保|保函|暂列金额|暂估价|结算核减|造价咨询费|工程量.*异议|增值税|异地纳税人|报价明细|综合单价|清单合价|预留金|投标报价|异常低价|评标基准价|总价包干|总价合同|调差|可调整价差|市场询价|报价计入|赔偿/u,af=/工艺试验|工艺评定|试验段|复垦|土地复垦|表土剥离|耕作层|占地恢复|场地恢复|植被恢复|绿化恢复|清表|清杂|移植|取土场|弃土场|临时占地|临时用地/u,ag=[T,o.m,o.C,t,u,v,N,l.hh,n.dn,l.DI,n.Hf,W,ab,X,U,q.MO,q.hH,q.sP,q.OK,q.uW,aP,ae,af,J,O,L,K,M,V];function ah(a){return"function"==typeof a||a instanceof RegExp?String(a):a&&"object"==typeof a?JSON.stringify(a,(a,b)=>"function"==typeof b||b instanceof RegExp?String(b):b)??String(a):String(a)}function ai(a){let b=e.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,l.c6)(a||"default"));return d.mkdirSync(b,{recursive:!0}),b}function aj(a){return(0,l.c6)({version:"tender-requirements-extraction-v14",judgeFingerprint:function(a=ag){return(0,l.c6)(a.map(ah).join("\n"))}(),collection:a.collectionEvidence.map(a=>({filePath:a.filePath||"",sectionTitle:a.sectionTitle||"",contentHash:(0,l.c6)(a.content||""),roleId:a.roleId||""})).sort((a,b)=>`${a.filePath}|${a.sectionTitle}`.localeCompare(`${b.filePath}|${b.sectionTitle}`))})}function ak(a){if(!a||!Array.isArray(a.entries)||!Array.isArray(a.excluded)||!a.reconciliation)return!1;let b=a.reconciliation;return"number"==typeof b.clauseCount&&"number"==typeof b.entryCount&&"number"==typeof b.excludedCount&&"number"==typeof b.mergedCount&&"number"==typeof b.undecidedCount&&0===b.undecidedCount&&b.clauseCount===b.entryCount+b.excludedCount+b.mergedCount}function al(a,b){try{let c=e.join(ai(a),`tender-requirements-${b}.json`),f=JSON.parse(d.readFileSync(c,"utf8"));if(!f?.extracted||!ak(f))return;return f}catch{return}}function am(a,b,c){if(c?.extracted&&ak(c))try{d.writeFileSync(e.join(ai(a),`tender-requirements-${b}.json`),JSON.stringify(c,null,2))}catch{}}function an(a){if(!a)return[];let b=[],c=a.reconciliation;if(a.extracted){let a=[`要求 ${c.entryCount}`,`排除 ${c.excludedCount}`];c.mergedCount>0&&a.push(`合并 ${c.mergedCount}(来源已聚合)`),a.push(`未判定 ${c.undecidedCount}`),b.push(`条款对账:切分 ${c.clauseCount} = ${a.join(" + ")}${0===c.undecidedCount?"(闭合)":"(未闭合)"}`)}let d=new Map;for(let b of a.entries){let a=d.get(b.category)||[];a.push(b.text),d.set(b.category,a)}for(let[a,c]of d)b.push(`${a} ${c.length} 条:${c.join("、")}`);let e=a.excluded.filter(a=>"commercial_scope"===a.reason).length;e>0&&b.push(`商务域排除 ${e} 条(付款/保证金/结算/报价/税金等,技术标正文零商务句)`);let f=a.excluded.filter(a=>"credit_scoring"===a.reason).length,g=a.excluded.filter(a=>"out_of_scope"===a.reason).length;(g>0||f>0)&&b.push(`技术标准入闸排除 ${g+f} 条(投标人资格与资信/招标程序与评标纪律/合同条件——非施工组织设计响应义务,响应由资格文件或商务标承接)`),f>0&&b.push(`其中资信加分项 ${f} 条(业绩/获奖/认证类):按招标要求以承诺句或证明材料清单形态另行处理,不得编成施工小节;暗标项目一律剔除`);let h=a.structureRequirements||[];if(h.length>0){let a={diagram:"图",org_chart:"框图",table:"表格",chart_text:"结合图表"};b.push(`结构/呈现要求 ${h.length} 项:${h.map(b=>`${b.element}(以${a[b.form]}呈现)`).join("、")}`)}return c.undecidedCount>0&&b.push(`未判定条款 ${c.undecidedCount} 条:对账未闭合(LLM 输出缺号且重试后仍缺),请检查 LLM 可用性`),a.extracted||b.push("招标要求未提取(无绑定资料或模型不可用),验收自动跳过"),b}function ao(a){return!!(a?.extracted&&a.entries.length>0)}function ap(a){return a?a.entries.map(a=>({kind:a.category,item:a})):[]}function aq(a){return a.coreTerms.length>0?a.coreTerms.join(" "):a.text}function ar(a){if(!a?.extracted)return"";let b=[];for(let c of a.entries)c.global&&b.push(`全局遵守:${c.text}(全文任何章节不得违反,禁止自行设定该类数据)`);return b.push("本章分配到的招标要求(见「本章必须处理的招标要求」清单)必须逐条处理:显性响应类须写入正文并配套保证措施;遵守类须全文一致遵守。奖项名称、等级指标、数字参数必须与招标文件原文逐字一致,禁止替换、降级或省略。商务域条款(付款/保证金/结算等)不在技术标响应范围——正文不得出现任何商务内容。"),`【招标要求全局口径红线(全文档适用)】
231
+ ${function(a,b=6e3){return[a.match(/#{2,3}\s*[^\n]*(?:重难点|重点难点|工程难点|难点分析)[^\n]*\n[\s\S]{0,3500}/u)?.[0]||"",a.replace(/#{1,6}\s+[^\n]*\n/gu,"").replace(/\s+/gu," ").slice(0,b)].filter(Boolean).join("\n\n").slice(0,b+4e3)}(a.markdown)}`,'返回 JSON:{"issues":["问题1","问题2"]}'];try{let b=await (0,d.bb)((0,f.y4)('你是招标技术标评审专家。对施工组织设计做语义级复核,只报告确定性规则覆盖不到的语义问题。\n复核维度(按《施工组织设计全维度校验提示词》判定标尺):\n1. 重难点三级判定:识别精准性(是否点明本项目真实难点而非泛泛而谈)→ 归因合理性(是否说明难点成因/风险来源)→ 对策匹配度(对策是否针对该难点的成因,而非通用措施堆砌);\n2. 术语等效性:同一对象是否前后术语一致(如"砼"与"混凝土"混用需统一),是否出现词面不同但概念等效的双重标准表述;\n3. 四新技术升级价值:若正文声称采用四新技术,其价值表述是否停留在"提升效率"式套话,缺少可对标官方推广目录或替代落后工艺的实质说明。\n每条问题必须包含:问题所在内容简述+判定依据(对应上面哪条维度)+一句话改进建议。\n只报告真实存在的问题,正文无问题时返回空数组;不得编造问题。只返回 JSON。'),c.join("\n\n"),{maxTokens:1200,temperature:0,signal:a.signal,diagnostics:a.diagnostics,taskKind:(0,d.TO)()});return{issues:Array.isArray(b?.issues)?b.issues.filter(a=>"string"==typeof a&&a.length>0):[],reviewed:!0}}catch(a){return{issues:[`⚠ 语义级模板化复核未完成(模型调用失败,本项未复核):${a instanceof Error?a.message:String(a)}`],reviewed:!1}}}},62521:(a,b,c)=>{c.d(b,{Cv:()=>t,MH:()=>y,QM:()=>A,SF:()=>r,SO:()=>B,XR:()=>v,Y5:()=>s,YD:()=>n,an:()=>p,gF:()=>o,iY:()=>q,j7:()=>z,pX:()=>w,wd:()=>i,z1:()=>u});var d=c(38115),e=c(22157),f=c(3063),g=c(21702),h=c(35008);let i=6,j=h.mE.min,k=h.mE.max,l=h.mE.hardMax,m={core:1.5,general:1,brief:.6},n=350,o=2400,p=.75;function q(a,b){let c=a.replace(/工程$/u,""),f=[],g=new Map;for(let a of b){let b=(0,e.Ld)(a.title),c=g.get(b);void 0===c&&(c=f.length,g.set(b,c),f.push({label:b,points:[]})),f[c].points.push(a)}let h=[];for(let a of f)for(let b=0;b<a.points.length;b+=i){let e=a.points.slice(b,b+i),f=0===b?(0,d.UW)(c,a.label):(0,d.UW)(c,e[0].title);h.push({title:f,subPoints:e,facts:[],targetWords:0})}return h}function r(a,b){let c=a=>{let b=new Set;for(let c=0;c<a.length-1;c+=1)b.add(a.slice(c,c+2));return b},d=c(b),e=[...c(a)];return 0===e.length?0:e.filter(a=>d.has(a)).length/e.length}function s(a){return/工期|进度|节点|计划|纠偏|预警/u.test(a)?"工期进度":/质量|验收|三检|样板|隐蔽|复试|实测|通病/u.test(a)?"质量验收":/安全|危大|风险|隐患|应急|临边|洞口|消防|临电/u.test(a)?"安全风险":/文明|扬尘|噪声|绿色|废水|垃圾|环保|智慧/u.test(a)?"文明绿色":/劳务|工资|实名|银行|考勤|人员|岗位|组织|职责/u.test(a)?"组织劳务":/资源|材料|设备|机械|人材机|调配/u.test(a)?"资源保障":/施工|工艺|流程|顺序|穿插|部署|区段|流水/u.test(a)?"施工组织":"综合管理"}function t(a){return/^(?:确保\s*)?[人材机](?:员|力|料|械|工)?\s*的保障体系与措施$/u.test(a)}function u(a,b){let c=a.replace(/\s+/gu,""),d=b.replace(/\s+/gu,"");return c===d||c.includes(d)||d.includes(c)}function v(a,b,c={}){let d=[];if(0===a.length)return;let e=Math.max(0,Math.round(b)),f=a.reduce((a,b)=>a+Math.max(1,b.subPoints.length),0),g=Math.max(1,Math.floor(e/j)),h=a;if(h.length>g){let a=[],b=Math.max(1,Math.ceil(f/g)),d=[],e=0;for(let f of h){if(w(f.title)||y(f.title)||(c.barrierTitles||[]).some(a=>u(f.title,a))){d.length>0&&(a.push(d),d=[],e=0),a.push([f]);continue}let h=Math.max(1,f.subPoints.length);d.length>0&&(e+h>i||a.length<g-1&&e+h>b)&&(a.push(d),d=[],e=0),d.push(f),e+=h}d.length>0&&a.push(d),h=a.map(a=>1===a.length?a[0]:{title:(a.find(a=>w(a.title))||a[0]).title,subPoints:a.flatMap(a=>a.subPoints),facts:[...new Set(a.flatMap(a=>a.facts))],targetWords:0})}for(let a=0;a<64&&h.length<g;a+=1){let a=h.map(a=>Math.max(.5,a.subPoints.reduce((a,b)=>a+m[b.tier||"general"],0))),b=a.reduce((a,b)=>a+b,0)||h.length,c=-1,d=k;if(h.forEach((f,g)=>{let h=Math.floor(e*a[g]/b);f.subPoints.length>=2&&h>d&&(c=g,d=h)}),c<0)break;let f=h[c],g=Math.ceil(f.subPoints.length/2);h.splice(c,1,{...f,subPoints:f.subPoints.slice(0,g),targetWords:0},{...f,subPoints:f.subPoints.slice(g),targetWords:0})}let n=h.map(a=>Math.max(.5,a.subPoints.reduce((a,b)=>a+m[b.tier||"general"],0))),o=n.reduce((a,b)=>a+b,0)||h.length,p=Math.min(j,Math.floor(e/Math.max(1,h.length))),q=h.map((a,b)=>Math.max(p,Math.floor(e*n[b]/o))),r=q.reduce((a,b)=>a+b,0)-e;if(r>0){let a=q.map(a=>a-p),b=a.reduce((a,b)=>a+b,0);if(b>0){let c=0;q.forEach((d,e)=>{let f=Math.min(a[e],Math.floor(r*a[e]/b));q[e]=d-f,c+=f});for(let a=r-c;a>0;a-=1){let a=-1;if(q.forEach((b,c)=>{!(b<=p)&&(a<0||b>q[a])&&(a=c)}),a<0)break;q[a]=q[a]-1}}}let s=q.reduce((a,b)=>a+b,0);if(s<e){let a=0;q.forEach((b,c)=>{b>q[a]&&(a=c)}),q[a]=q[a]+(e-s)}for(let a of(h.forEach((a,b)=>{a.targetWords=Math.max(1,Math.min(q[b],l))}),h.forEach(a=>{let b=Math.max(1,Math.floor(a.targetWords/300));if(a.subPoints.length<=b)return;let c=a.subPoints.length,e=a.subPoints.slice(0,b-1),f=a.subPoints.slice(b-1);a.subPoints=[...e,{title:"其他分部分项工程施工要点",sources:[...new Set(f.flatMap(a=>a.sources))],tier:"brief"}];let g=`块「${a.title}」超密度守卫:要点数 ${c} → ${a.subPoints.length}(块预算 ${a.targetWords} 字,密度上限 ${b} 要点,${f.length} 个要点合并为概览要点,细节丢失)`;console.warn(`[blueprint] ${g}`),d.push(g)}),h)){if(0===a.subPoints.length)continue;let b=a.subPoints.map(a=>m[a.tier||"general"]),c=b.reduce((a,b)=>a+b,0)||a.subPoints.length,d=b.map(b=>Math.max(100,Math.floor(a.targetWords*b/c))),e=d.reduce((a,b)=>a+b,0);if(e>a.targetWords){let d=a.targetWords;a.subPoints.forEach((e,f)=>{let g=f===a.subPoints.length-1?Math.max(1,d):Math.max(1,Math.floor(a.targetWords*b[f]/c));e.quotaWords=g,d-=g});continue}let f=b.reduce((a,c,d)=>c>b[a]?d:a,0),g=a.targetWords-e;a.subPoints.forEach((a,b)=>{a.quotaWords=d[b]+(b===f?g:0)})}h!==a&&(a.length=0,a.push(...h)),a.densityMergeWarnings=d}function w(a){return f.Yp.test(a)||f.gG.test(a)}let x=/^(特殊时段|异常气候|恶劣气候|恶劣天气|极端气候|极端天气|雨季|雨期|冬期|冬季|汛期|台风|高温|寒潮|全天候|节假日施工|夜间施工)/u;function y(a){let b=a.replace(/^[一二三四五六七八九十百\d]+[、..\s::-]+/u,"").trim();return x.test(b)}function z(a,b){let c=[];for(let d of a){let a=d.trim(),e=a.replace(/\s+/gu,"");if(!(!e||/^其他$|^其它$|^其他工程$|^其余/u.test(e))&&!c.some(a=>{let b=a.replace(/\s+/gu,"");return b.includes(e)||e.includes(b)})&&(c.push(a),c.length>=b))break}return c}function A(a){let b=a=>a.trim().toLowerCase().replace(/\s+/gu,""),c=a=>{let c=new Set;for(let d of a??[]){let a=b(String(d??""));a&&c.add(a)}return c},d=c(a.blueprintParams),e=c(a.billSpecs),f=c(a.evidenceTokens),g=c(a.factValues),h=new Set([...d,...e,...f,...g]).size;return{blueprint:d.size,bill:e.size,evidence:f.size,factNeeds:g.size,total:h}}function B(a){var b;let c=Math.max(0,Math.round(a.targetWords)),d=Math.max(0,Math.round(a.availableParameters)),e=c>0?d/c*1e3:0,f=Math.ceil(c/1e3*g.J5),h=Math.max(0,f-d),i=0===c||0===h,j=(b=a.supplyChannels)?`可用参数来源:蓝图 must_cite ${b.blueprint} 个、本章责任清单行规格 ${b.bill} 个、本章证据精确 token ${b.evidence} 个、本章需求解析事实值 ${b.factNeeds} 个(按归一化 token 去重后共 ${b.total} 个)。`:"",k=i?[]:[`本章目标 ${c} 字,可用量化参数 ${d} 个(${e.toFixed(2)}/千字),低于本条要求线 ${g.J5}/千字(与块质检/构造审计同值),缺 ${h} 个。`,...j?[j]:[],`二选一(端点必须一起动,只动一端会重新制造「要不到料却照常扣分」):① 扩供给——把本章责任清单行/证据的取用优先级提前、放宽本章参数配额上限;② 同步下调——把本章目标字数降到 ${Math.floor(d/g.J5*1e3)} 字 附近,使供给与要求对齐(目标字数与密度要求必须一起改)。`];return{chapterTitle:a.chapterTitle,targetWords:c,availableParameters:d,densityPer1000:e,requiredDensityPer1000:g.J5,sufficient:i,requiredParameters:f,parameterShortfall:h,remediation:k,supplyChannels:a.supplyChannels}}},63516:(a,b,c)=>{c.d(b,{DO:()=>aU,E:()=>aB,E6:()=>as,FR:()=>av,HF:()=>au,JX:()=>aC,Mf:()=>aV,Mx:()=>s,NT:()=>x,NY:()=>aO,Sf:()=>al,T3:()=>aA,TX:()=>aT,U1:()=>aQ,Uk:()=>ar,VX:()=>az,Vf:()=>aE,_D:()=>aD,e_:()=>ao,ey:()=>at,jl:()=>an,l:()=>aq,mg:()=>af,o0:()=>aL,tH:()=>aS,zD:()=>ap});var d=c(73024),e=c(76760),f=c(31920),g=c(99956),h=c(48661),i=c(1218),j=c(37047),k=c(35547),l=c(22157),m=c(19898),n=c(71678),o=c(30111),p=c(40299),q=c(95294),r=c(18292);function s(a=!1){return{entries:[],excluded:[],structureRequirements:[],reconciliation:{clauseCount:0,entryCount:0,excludedCount:0,undecidedCount:0,mergedCount:0,batchCount:0,retriedBatches:0,structureCount:0},extracted:a}}let t=/^(?:☑?\s*无|无)\s*[。;;]?\s*$|:\s*(?:☑)?\s*无\s*[。;;]?\s*$|:\s*见\s*《?[^》]{2,40}》?\s*[。;;]?\s*$/u;function u(a){let b=a.trim();if(!b||/^#{0,6}\s*\d+(?:[.-]\d+)*\s*[^\s。;;::]{1,24}$/u.test(b)||/☑\s*无/u.test(b)||/□有[^。;;!?!?]{0,40}具体要求如下[::]\s*\/?\s*$/u.test(b))return!0;let c=b.split(":").pop()?.trim()||b;return!!t.test(c)}let v=/^(?:回复|答复|答疑|答|澄清|释义)[::]\s*[。;;、/]?\s*$/u;function w(a){return String(a??"").replace(/^\s*[((]?\d+(?:[..]\d+)*[))]?\s*[、..;;::]?\s*/u,"").replace(/^[、..;;::\-\s]+/u,"").trim()}function x(a){return a.trim().replace(/^#{2,4}\s+/u,"").replace(/^\d+(?:\.\d+)*[\s、.]+/u,"").trim()}let y=[/^第[零一二三四五六七八九十百千\d]{1,6}[条章节款项]/u,/^[((][一二三四五六七八九十\d]{1,3}[))]/u,/^[一二三四五六七八九十]{1,3}[、..](?!\d)/u,/^\d{1,2}(?:[..]\d{1,2}){1,3}(?:[、..]|\s)/u,/^\d{1,2}[、..]\s*(?![\d%])/u],z=m.BID_OBLIGATION_CARRIERS;function A(a){return a.length<=300&&/[::]/u.test(a)&&!/[。;;]/u.test(a.slice(0,a.search(/[::]/u)))}let B=/^(?:问题|疑问|提问|咨询|质疑|问)[一二三四五六七八九十\d]{0,3}[::]|[??]\s*$/u,C=/^(?:回复|答复|答疑|答|澄清|释义)[::]/u;function D(a){return/[。!?!?;;))】」》”]$/u.test(a.trim())}let E=/[的其不或在和与及等被把将为以对从向就但而则即如若因所该本此录]$/u,F=/[\p{Script=Han}A-Za-z]{2,}/u,G={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},isRequirement:{type:"boolean",required:!0},inScope:{type:"boolean",required:!0},reason:{type:"string",maxLength:32},policy:{type:"string",maxLength:16},coreTerms:{type:"array",items:{type:"string",maxLength:24}},category:{type:"string",maxLength:16},structures:{type:"array",items:{type:"object",properties:{element:{type:"string",maxLength:24},form:{type:"string",maxLength:16}}}}}}}}},H=(()=>{let a=Number(process.env.AGENT_CLAUSE_BATCH_CONCURRENCY);return!Number.isFinite(a)||a<1?6:Math.min(8,Math.floor(a))})(),I=[(0,p.y4)("你是招标文件条款判定器。"),'输入是从招标资料(招标文件/补疑/答疑等)中按原文顺序切分的条款单元(含全局序号与来源)。\n对每一条独立完成判定,且必须为每一条给出结果(不得遗漏任何序号)。\n\n1. isRequirement:该条是否构成对投标人的实质要求(需写入正文响应或必须遵守)?\n - true:明确的目标/等级/标准/参数/义务/禁止性要求(确保、达到、不低于、不得、严禁、必须、应当等约束语义)\n - false:目录、章节导语、说明性/解释性文字、空白表头、格式模板、无约束力的描述\n - 边界判例(格式模板 vs 结构呈现要求):表格填写/签章格式/装订份数类模板说明 → false;\n 「组织机构以框图方式表示」「采用文字并结合图表形式编制」「附网络图、横道图」等呈现形态要求 → true(呈现信息同时进入 structures 通道)\n - 孤立碎片(无问题上下文的「回复:\xd7\xd7」「答:\xd7\xd7」、表格残片、无法独立理解的半截句)→ false(reason="non_requirement")\n - 问答对(「问题:\xd7\xd7 … 回复:\xd7\xd7」):答复含实质要求(指标/标准/义务/禁止性内容)→ true(按答复内容给出 policy/coreTerms);纯程序性答复(「按招标文件执行」「详见补遗」)→ false\n - 条款值被明确标注「无」「☑无」「不适用」「/」时 → isRequirement=false(reason="no_value")\n - 工程量清单条目、项目特征描述、工程量数据不是本通道要求(由清单蓝图通道处理)→ false\n2. inScope:该条是否属于施工组织设计正文的职责范围?\n - true:质量/工期/安全/环保目标、创优奖项、绿色建筑/智慧工地/装配式等级、体系基准(六个百分百/四节一环保等)、\n 工期与进度约束、人员配置与分包限制、材料工艺与验收标准、禁止性事项、必须遵守的技术约束\n - false:纯投标程序事务(开标时间地点/保证金账户信息/递交解密方式/评标委员会组成)、投标资格条件\n (营业执照/资质证书/业绩要求)、评标否决规则(否决其投标/废标情形)、商务纪律承诺(廉洁承诺)、格式签章要求、\n 商务与造价条款(付款/进度款/工程款/结算/保证金/违约金/保函/预付款/税金/税率/报价/综合单价/暂列金额/暂估价/限价/调差等,\n 属商务标响应内容,技术标正文不出现)、\n 合同履约管理程序条款(施工合同通用/专用条款及合同附件的程序性与责任性约定:资料报送/审批/备案期限、\n 违约责任与违约金罚款明细、人员请假/更换/离场批准程序、保险投保办理程序、工程质量保修书程序与保修期限明细、\n 试验条件自理、工程照管责任起止、治安保卫程序、分包审批程序、采购与评标程序——属合同管理范畴,技术标正文不逐条抄写;\n 但质量/安全/文明/工期目标、人员资格与配置、技术工艺与验收标准类实质要求仍按 true 判定)\n3. policy(isRequirement 且 inScope 时必填,其余省略):\n - "respond":必须在正文显性写出的要求(创优目标/奖项、质量目标、等级指标、体系基准、技术工艺条款、人员与分包约束、验收标准)\n - "comply":不逐条抄写但全文必须遵守的约束(以开工令为准的日期约束、工期总日历天数基准、全局禁止性事项)\n4. coreTerms:2-4 个用于正文核对的核心词(专有名词/等级名/体系名/关键数字参数,如「\xd7\xd7杯」「二星级」「六个百分百」「300万元」);\n 数字参数必须保留数字与单位;不要泛化词(「施工」「工程」类不能作为核心词);\n 必须是正文中可自然逐字出现的完整词/短语(括号/标点保持原文形态),不得使用去标点拼接的短语碎片或合同填空语言(如「承包人自理」);\n 不得取条目的名目/评价维度词(如「技术能力」「其他内容」「针对性」「可行性」「主要人员」)与引用性空话\n (如「按设计图纸要求」「详见招标文件」「满足设计要求」)——正文响应写的是实质内容与数据,\n 条目名与空话在正文中必然不落位,取作核心词会把「已按实响应」判成未响应(4.59 R-C4 实机:\n 这两类核心词是「招标要求部分响应/未响应」误报的主要成分)\n5. category:按招标语义命名类别(如「质量创优」「工期进度」「安全文明」「绿色施工」「人员管理」「商务支付」「禁止性要求」),\n 同类要求使用同一类别名\n6. structures:该条是否明文要求内容的呈现形态?命中时输出数组(element 呈现对象名 + form 形态),无呈现要求时省略该字段:\n - form 枚举:“org_chart”(框图/组织机构图/组织结构图)、“diagram”(网络图/横道图/平面布置图/进度计划图)、“table”(表格/组成表)、“chart_text”(文字结合图表/图表形式编制)\n - element:呈现对象的名词短语(如「项目管理机构」「施工总平面布置」「施工进度计划」),不得与原文无关\n - 边界判例:「组织机构以框图方式表示」→ [{element:"项目管理机构",form:"org_chart"}];「采用文字并结合图表形式编制」→ [{element:"施工组织设计",form:"chart_text"}];\n 纯格式填写说明/签章装订要求(按给定格式填写并盖章/正副本份数)→ 不输出 structures\n - 呈现要求与 isRequirement/inScope 判定相互独立:即使本条因程序/格式原因被判排除,structures 仍须输出\n\nisRequirement=false 或 inScope=false 时须给出 reason(枚举):\n- "non_requirement":非约束性内容(目录/导语/说明/描述)\n- "out_of_scope":超出施组职责(投标程序/资格/评标规则/纪律/格式/商务与造价/合同履约管理程序)\n- "no_value":条款值为「无」或不适用\n\n输出 JSON 结构(覆盖全部序号,每序号必出结果):\n{ "results": [\n { "index": 0, "isRequirement": true, "inScope": true, "policy": "respond", "coreTerms": ["\xd7\xd7杯", "300万元"], "category": "质量创优" },\n { "index": 1, "isRequirement": false, "inScope": false, "reason": "out_of_scope" },\n { "index": 2, "isRequirement": false, "inScope": false, "reason": "out_of_scope", "structures": [{ "element": "项目管理机构", "form": "org_chart" }] }\n] }\n只返回 JSON。'].join("\n");function J(a){return"no_value"===a.reason||"out_of_scope"===a.reason||"non_requirement"===a.reason?a.reason:!0===a.isRequirement&&!1===a.inScope?"out_of_scope":"non_requirement"}let K=[{form:"org_chart",formRe:/框图|组织机构图|组织结构图|组织架构图/u,elementRules:[{re:/项目管理机构|项目经理部|项目班子|管理机构|组织机构|管理部门/u,element:"项目管理机构"}],fallbackElement:"组织机构"},{form:"diagram",formRe:/网络图/u,elementRules:[{re:/进度|工期|计划/u,element:"施工进度计划网络图"}],fallbackElement:"网络图"},{form:"diagram",formRe:/横道图|甘特图/u,elementRules:[{re:/进度|工期|计划/u,element:"施工进度计划横道图"}],fallbackElement:"横道图"},{form:"diagram",formRe:/总平面布置图|施工总平面图|总平面图|平面布置图|临时设施图|施工总平面布置/u,elementRules:[],fallbackElement:"施工总平面布置图"},{form:"table",formRe:/组成表|机构设置表|人员配备表|一览表/u,elementRules:[{re:/机械设备|施工机械|设备/u,element:"施工机械设备表"},{re:/劳动力|用工/u,element:"劳动力安排计划表"},{re:/项目管理机构|机构|人员/u,element:"项目管理机构人员组成表"}],fallbackElement:"要求表格"},{form:"chart_text",formRe:/结合图表|图表形式|图文并茂/u,elementRules:[{re:/施工组织设计/u,element:"施工组织设计"}],fallbackElement:"图表呈现"}];function L(a){let b=[],c=a.trim();if(!c)return b;for(let a of K){if(!a.formRe.test(c))continue;let d=a.fallbackElement;for(let b of a.elementRules)if(b.re.test(c)){d=b.element;break}b.push({element:d,form:a.form,sourceText:c})}return b}function M(a,b){let c=L(a.text);for(let d of b?.structures||[]){let b=function(a){let b=(a||"").trim().toLowerCase();return"org_chart"===b||"orgchart"===b||"框图"===b||"组织机构图"===b?"org_chart":"diagram"===b||"图"===b||"网络图"===b||"横道图"===b?"diagram":"table"===b||"表格"===b?"table":"chart_text"===b||"charttext"===b||"图表"===b||"文字结合图表"===b?"chart_text":void 0}(d?.form),e=(d?.element||"").trim().slice(0,24);b&&!(e.length<2)&&(c.some(a=>a.form===b&&a.element===e)||c.push({element:e,form:b,sourceText:a.text.trim()}))}return c}let N=/(?:我(?:公司|方|单位|们)[^。;;]{0,24}(?:对|就)(?:该|本|上述|所填)?(?:表|清单|资料)[^。;;]{0,32}(?:均属|均为|真实|属实|可靠|有效|无误))|(?:(?:以上|上述|该表|所填报?)[^。;;]{0,20}(?:内容|资料)[^。;;]{0,20}(?:均属|均为|真实|属实|可靠|有效|无误))/u;function O(a){return N.test(a)}let P=/开工令|开工日期|竣工日期|不得.{0,12}(?:自定|自行确定|编造|设定)/u;function Q(a){let b=[a.section,a.clauseNo?`条款${a.clauseNo}`:""].filter(Boolean).join("\xb7");return[a.file,b].filter(Boolean).join("|")||void 0}async function R(a,b,c){let d=Array(a.length),e=0;return await Promise.all(Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e;if(e+=1,b>=a.length)return;d[b]=await c(a[b],b)}})),d}async function S(a,b,c={}){let d=a.map((a,c)=>{let d=Q(a);return`【条款 ${b+c}】${d?`来源:${d}`:""}
232
+ ${a.text}`}).join("\n\n"),e=new Set(a.map((a,c)=>b+c)),f=new Map;for(let a=0;a<2;a+=1){let b=await (0,g.bb)(I,d,{maxTokens:8e3,temperature:0,signal:c.signal,diagnostics:c.diagnostics,schema:G,taskKind:(0,g.TO)()});for(let a of(f=new Map,b?.results||[]))"number"==typeof a.index&&e.has(a.index)&&f.set(a.index,a);if(f.size===e.size)return{judgments:f,retried:a>0}}return{judgments:f,retried:!0}}let T=q.uW;function U(a){let b=a.replace(/\s+/gu,"");return b.length<=10&&!/\d/u.test(b)&&!T.test(b)}function V(a){let b=a.trim().replace(/\s+/gu,"");return!!b&&!!(/(?:回复|答复)[::]/u.test(b)||/(?:^|[。;;\n])\s*(?:答|答复|回复|答疑|提问|问)\s*[::]/u.test(b)||/扣\d+(?:\.\d+)?分|总分\d+分|百分制|考核(?:办法|评分|结果|得分|扣分|奖惩)/u.test(b)||/质量保修|保修范围|派人保修|保修通知|保修期如下/u.test(b)||/本表(?:应|须|不|需|作)/u.test(b)||/投标文件(?:应|须|应当)[^。;]{0,40}(?:响应|作出响应|包含|包括)/u.test(b)||/我方拟派|无在岗项目|拟分包项目情况表/u.test(b)||/^[((、..\d]{0,8}☑/u.test(b)||(0,q.MO)(b))}let W=/(保修|安全生产合同|承包人职责|承包人的一般义务|承包人人员|监理人的一般规定|不合格工程的处理|样品的报送|开工准备|承包人文件|人员及职责|终身责任制承诺|投标文件格式|考核表|督查|管养|养护管理|景观设施维护|地被养护)/u;function X(a){let b=(a||"").replace(/\s+/gu,"");return b.length>0&&W.test(b)}function Y(a){let b=a.replace(/\s+/gu,"");return!(b.length<4)&&(/〔\d{4}〕/u.test(b)||/(?:办法|通知|规定|条例|细则)$/u.test(b))}let Z=/^(?:Φ|φ|Ø|ø)?-?(?:HPB|HRB|HRBF|RRB|CRB|Q|MU|C)\d{1,4}[A-Z]?$/u;function $(a){return Z.test(a.replace(/\s+/gu,"").toUpperCase())}let _=/^(?:按|依据|见|详见|参见|遵照|参照|执行|满足|符合)(?:设计图纸|设计文件|图纸|图集|规范|标准|招标文件|合同|国家现行标准|现行标准|相关规范|有关规定|设计要求)(?:的)?(?:要求|规定|执行|施工|做法|标准|为准)?\s*[。;;]?\s*$/u,aa=/[\s。;;,,、::()()]/gu,ab=/^(?:按|依据|见|详见|参见|遵照|参照|执行|满足|符合)(?:设计图纸|设计文件|图纸|图集|规范|标准|招标文件|合同|国家现行标准|现行标准|相关规范|有关规定|设计要求)(?:的)?(?:要求|规定|执行|施工|做法|标准|为准)?$/u;function ac(a){let b=(a||[]).map(a=>(a||"").trim()).filter(a=>a.length>=2);return b.length>0&&b.every(Y)}function ad(a){let b=a.text;if(U(b))return"non_requirement";if(t.test(b)||u(b))return"no_value";if(v.test(b)||O(b))return"non_requirement";if((0,l.hh)(b)||(0,n.dn)(b)||(0,l.DI)(b)||(0,n.Hf)(b))return"out_of_scope";let c=(0,o.m)(b);return"technical"!==c&&"commercial"!==c?(0,o.C)(b)?"credit_scoring":"out_of_scope":X(a.section)?"out_of_scope":V(b)?(0,q.MO)(b)?"noise":"non_requirement":aR(b)?"commercial_scope":void 0}async function ae(a,b={}){let c=[],d=[],e=[],f=[];if(0===a.length)return{entries:c,excluded:d,undecided:e,structureRequirements:[],batchCount:0,retriedBatches:0};let g=a=>ad(a),h=[];for(let b of a){f.push(...M(b,void 0));let a=g(b);if(a){d.push({text:b.text,source:Q(b),reason:a,prefiltered:!0});continue}h.push(b)}if(0===h.length)return{entries:c,excluded:d,undecided:e,structureRequirements:f,batchCount:0,retriedBatches:0};let i=[];for(let a=0;a<h.length;a+=40)i.push(h.slice(a,a+40));let j=0,k=await R(i,H,(a,c)=>S(a,40*c,b).then(a=>(j+=1,b.onBatch?.(j,i.length),a))),m=0;return k.forEach((a,b)=>{a.retried&&(m+=1),i[b].forEach((g,h)=>{var i,j;let k=a.judgments.get(40*b+h);if(f.push(...M(g,k)),!k)return void e.push(g);if(!k.isRequirement||!k.inScope)return void d.push({text:g.text,source:Q(g),reason:J(k)});if(U(g.text))return void d.push({text:g.text,source:Q(g),reason:"non_requirement"});if(t.test(g.text)||u(g.text))return void d.push({text:g.text,source:Q(g),reason:"no_value"});if(v.test(g.text)||O(g.text))return void d.push({text:g.text,source:Q(g),reason:"non_requirement"});if((0,l.hh)(g.text)||(0,n.dn)(g.text)||(0,l.DI)(g.text)||(0,n.Hf)(g.text))return void d.push({text:g.text,source:Q(g),reason:"out_of_scope"});let m=(0,o.m)(g.text);if("technical"!==m&&"commercial"!==m)return void d.push({text:g.text,source:Q(g),reason:(0,o.C)(g.text)?"credit_scoring":"out_of_scope"});if(X(g.section)||ac(k.coreTerms))return void d.push({text:g.text,source:Q(g),reason:"out_of_scope"});if(V(g.text)){let a=(0,q.MO)(g.text);d.push({text:g.text,source:Q(g),reason:a?"noise":"non_requirement"});return}if(aR(g.text))return void d.push({text:g.text,source:Q(g),reason:"commercial_scope"});let p="comply"===(i=k.policy)?i:"respond";c.push({text:g.text,coreTerms:Array.isArray(j=k.coreTerms)?j.map(a=>(a||"").trim()).filter(a=>a.length>=2&&a.length<=24).slice(0,4):[],sources:[function(a){let b=[a.section,a.clauseNo?`条款${a.clauseNo}`:""].filter(Boolean).join("\xb7");return{file:a.file||void 0,location:b||void 0}}(g)],category:function(a){let b=(a||"").trim();return!b||b.length>16?"其他要求":b}(k.category),policy:p,global:!!("comply"===p&&P.test(g.text))||void 0,carrier:g.carrier,clauseNo:g.clauseNo})})}),{entries:c,excluded:d,undecided:e,structureRequirements:function(a){let b=new Map;for(let c of a){let a=`${c.form}|${c.element}`;b.has(a)||b.set(a,c)}return[...b.values()]}(f),batchCount:i.length,retriedBatches:m}}async function af(a,b={}){let c=s(!1);if(!a||0===a.length)return c;let d=function(a){let b=[];for(let c of a){let a,d=c.content||"";if(!d.trim())continue;let e=(0,m.refineEvaluationCarrier)((0,m.resolveCarrier)({kind:c.roleId||"other",section:c.sectionTitle}),c.sectionTitle??"",d.slice(0,200));if(!z.has(e))continue;let f=c.filePath||void 0,g=c.sectionTitle?.trim()||void 0,h=[],j={fragment:null},k=(a,c)=>{let d=function(a){if(a.length<=2e3)return[a];let b=a.split(/(?<=[。;;!?!?])/u),c=[],d="";for(let a of b)d&&d.length+a.length>2e3&&(c.push(d),d=""),d+=a;return d&&c.push(d),c.length>0?c:[a]}(a);d.forEach((a,h)=>{b.push({file:f,section:g,clauseNo:c?d.length>1?`${c}-${h+1}`:c:void 0,text:a,carrier:e})})},l=()=>{var b;let c=h.join("\n").trim(),d=a;if(h=[],a=void 0,!c)return;let e=j.fragment?.clauseNo||d;if(j.fragment&&(c=`${j.fragment.text}
233
+ ${c}`,j.fragment=null),(b=c).length<=8&&!/[。;;!?!?]/u.test(b)&&!/\d/u.test(b)){j.fragment={text:c,clauseNo:e};return}k(c,e)};for(let b of d.split(/\r?\n/u)){let c=b.trim();if(/^#{1,6}\s/u.test(c)){let a=(0,i.wj)(c).trim();if(!a)continue;if(!(!a||/(?:\.{3,}|…)/u.test(a)||/^(?:PDF 第 \d+ 页|PDF 表格区域)/u.test(a))&&(!(!/[☑□■☐☒√×]/u.test(a)&&(!(a.length<=3)||/^\d/u.test(a)))||!(/^第[一二三四五六七八九十\d]+[章节部分条编]/u.test(a)&&a.length<=40&&!/[::,,]/u.test(a)||/^(?:目录|附录|附件)/u.test(a)&&a.length<=30&&!/[::,,]/u.test(a)||/^\d+(?:[..]\d+)*[..、]?\s*\S/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a)&&!E.test(a)&&F.test(a.replace(/^\d+(?:[..]\d+)*[..、]?\s*\d*\s*/u,""))||/^[一二三四五六七八九十]{1,3}[、..](?!\d)/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a)&&F.test(a.replace(/^[一二三四五六七八九十]{1,3}[、..\s]*/u,""))||/^[((][一二三四五六七八九十\d]{1,3}[))]/u.test(a)&&a.length<=24&&!/[::,,。;;()]/u.test(a.replace(/^[((][一二三四五六七八九十\d]{1,3}[))]/u,""))&&F.test(a.replace(/^[((][一二三四五六七八九十\d]{1,3}[))]\s*\d*\s*/u,"")))&&1)){if(/^\d{1,3}$/u.test(a))continue;if(A(a)){if(h.length>0&&!D(h[h.length-1])){h.push(a);continue}h.length>0&&l(),h.push(a),!B.test(a)&&D(a)&&l();continue}h.push(a);continue}h.length>0&&l(),g=a;continue}let d=(0,i.wj)(c).trim();if(!d){h.length>0&&D(h[h.length-1])&&l();continue}if(/^\d{1,3}$/u.test(d))continue;if(C.test(d)){h.push(d),1===h.length&&l();continue}let e=function(a){for(let b of y){let c=b.exec(a);if(c)return c[0].trim().replace(/[、..\s]$/u,"")}}(d);if(e){h.length>0&&l(),a=e,h.push(d);continue}if(A(d)){if(h.length>0&&!D(h[h.length-1])){h.push(d);continue}h.length>0&&l(),h.push(d),!B.test(d)&&D(d)&&l();continue}h.push(d)}h.length>0&&l(),j.fragment&&(k(j.fragment.text,j.fragment.clauseNo),j.fragment=null)}return b}(a);if(0===d.length)return c;b.onPhase?.(`条款化完成:${d.length} 条单元(全文穷举切分,不预筛不剔除)`,[`来源文件:${[...new Set(d.map(a=>a.file).filter(Boolean))].join("、")||"—"}`,"逐条判定进行中(每批 40 条,序号严格对齐)"]);let e=await ae(d,{signal:b.signal,diagnostics:b.diagnostics,onBatch:(a,c)=>b.onProgress?.(a,c)}),f=function(a){let b=new Map,c=0;for(let d of a){let a=d.text.replace(/[\s,。;、::..()()「」“”"'`·]/gu,""),e=b.get(a);if(e){for(let a of d.sources)e.sources.some(b=>b.file===a.file&&b.location===a.location)||e.sources.push(a);e.coreTerms=[...new Set([...e.coreTerms,...d.coreTerms])].slice(0,4),c+=1;continue}b.set(a,d)}return{entries:[...b.values()],mergedCount:c}}(e.entries);b.onPhase?.(`逐条判定完成:要求 ${f.entries.length} + 排除 ${e.excluded.length}${f.mergedCount>0?` + 合并 ${f.mergedCount}`:""} + 未判定 ${e.undecided.length}${e.structureRequirements.length>0?`;结构/呈现要求 ${e.structureRequirements.length}`:""}`,0===e.undecided.length?["对账闭合:全部条款已判定"]:[`未判定 ${e.undecided.length} 条(LLM 输出缺号且重试后仍缺),对账未闭合,缓存不落盘`]);let g=e.entries.length>0||e.excluded.length>0;return{entries:f.entries,excluded:e.excluded,structureRequirements:e.structureRequirements,reconciliation:{clauseCount:d.length,entryCount:f.entries.length,excludedCount:e.excluded.length,undecidedCount:e.undecided.length,mergedCount:f.mergedCount,batchCount:e.batchCount,retriedBatches:e.retriedBatches,structureCount:e.structureRequirements.length},extracted:g,sourceHash:function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193);return(b>>>0).toString(16)}(a.map(a=>`${a.filePath||""}|${a.sectionTitle||""}|${a.content||""}`).join("\n"))}}let ag=/履约保证金|质量保证金|保证金账户|中标金额|中标价|进度款|工程款|付款|结清|结算|违约金|贷款市场报价利率|LPR|最高投标限价|工程结算价款|预付款|支付担保|保函|暂列金额|暂估价|结算核减|造价咨询费|工程量.*异议|增值税|异地纳税人|报价明细|综合单价|清单合价|预留金|投标报价|异常低价|评标基准价|总价包干|总价合同|调差|可调整价差|市场询价|报价计入|赔偿/u,ah=/工艺试验|工艺评定|试验段|复垦|土地复垦|表土剥离|耕作层|占地恢复|场地恢复|植被恢复|绿化恢复|清表|清杂|移植|取土场|弃土场|临时占地|临时用地/u,ai=[ad,U,o.m,o.C,t,u,v,O,l.hh,n.dn,l.DI,n.Hf,X,ac,Y,V,L,M,q.MO,q.hH,q.sP,q.OK,q.uW,aR,ag,ah,J,P,M,K,N,W];function aj(a){return"function"==typeof a||a instanceof RegExp?String(a):a&&"object"==typeof a?JSON.stringify(a,(a,b)=>"function"==typeof b||b instanceof RegExp?String(b):b)??String(a):String(a)}function ak(a){let b=e.join(process.env.HOME||process.cwd(),".customize-agent","cache","document-workflow",(0,l.c6)(a||"default"));return d.mkdirSync(b,{recursive:!0}),b}function al(a){return(0,l.c6)({version:"tender-requirements-extraction-v14",judgeFingerprint:function(a=ai){return(0,l.c6)(a.map(aj).join("\n"))}(),collection:a.collectionEvidence.map(a=>({filePath:a.filePath||"",sectionTitle:a.sectionTitle||"",contentHash:(0,l.c6)(a.content||""),roleId:a.roleId||""})).sort((a,b)=>`${a.filePath}|${a.sectionTitle}`.localeCompare(`${b.filePath}|${b.sectionTitle}`))})}function am(a){if(!a||!Array.isArray(a.entries)||!Array.isArray(a.excluded)||!a.reconciliation)return!1;let b=a.reconciliation;return"number"==typeof b.clauseCount&&"number"==typeof b.entryCount&&"number"==typeof b.excludedCount&&"number"==typeof b.mergedCount&&"number"==typeof b.undecidedCount&&0===b.undecidedCount&&b.clauseCount===b.entryCount+b.excludedCount+b.mergedCount}function an(a,b){try{let c=e.join(ak(a),`tender-requirements-${b}.json`),f=JSON.parse(d.readFileSync(c,"utf8"));if(!f?.extracted||!am(f))return;return f}catch{return}}function ao(a,b,c){if(c?.extracted&&am(c))try{d.writeFileSync(e.join(ak(a),`tender-requirements-${b}.json`),JSON.stringify(c,null,2))}catch{}}function ap(a){if(!a)return[];let b=[],c=a.reconciliation;if(a.extracted){let a=[`要求 ${c.entryCount}`,`排除 ${c.excludedCount}`];c.mergedCount>0&&a.push(`合并 ${c.mergedCount}(来源已聚合)`),a.push(`未判定 ${c.undecidedCount}`),b.push(`条款对账:切分 ${c.clauseCount} = ${a.join(" + ")}${0===c.undecidedCount?"(闭合)":"(未闭合)"}`)}let d=new Map;for(let b of a.entries){let a=d.get(b.category)||[];a.push(b.text),d.set(b.category,a)}for(let[a,c]of d)b.push(`${a} ${c.length} 条:${c.join("、")}`);let e=a.excluded.filter(a=>"commercial_scope"===a.reason).length;e>0&&b.push(`商务域排除 ${e} 条(付款/保证金/结算/报价/税金等,技术标正文零商务句)`);let f=a.excluded.filter(a=>"credit_scoring"===a.reason).length,g=a.excluded.filter(a=>"out_of_scope"===a.reason).length;(g>0||f>0)&&b.push(`技术标准入闸排除 ${g+f} 条(投标人资格与资信/招标程序与评标纪律/合同条件——非施工组织设计响应义务,响应由资格文件或商务标承接)`),f>0&&b.push(`其中资信加分项 ${f} 条(业绩/获奖/认证类):按招标要求以承诺句或证明材料清单形态另行处理,不得编成施工小节;暗标项目一律剔除`);let h=a.structureRequirements||[];if(h.length>0){let a={diagram:"图",org_chart:"框图",table:"表格",chart_text:"结合图表"};b.push(`结构/呈现要求 ${h.length} 项:${h.map(b=>`${b.element}(以${a[b.form]}呈现)`).join("、")}`)}return c.undecidedCount>0&&b.push(`未判定条款 ${c.undecidedCount} 条:对账未闭合(LLM 输出缺号且重试后仍缺),请检查 LLM 可用性`),a.extracted||b.push("招标要求未提取(无绑定资料或模型不可用),验收自动跳过"),b}function aq(a){return!!(a?.extracted&&a.entries.length>0)}function ar(a){return a?a.entries.map(a=>({kind:a.category,item:a})):[]}function as(a){return a.coreTerms.length>0?a.coreTerms.join(" "):a.text}function at(a){if(!a?.extracted)return"";let b=[];for(let c of a.entries)c.global&&b.push(`全局遵守:${c.text}(全文任何章节不得违反,禁止自行设定该类数据)`);return b.push("本章分配到的招标要求(见「本章必须处理的招标要求」清单)必须逐条处理:显性响应类须写入正文并配套保证措施;遵守类须全文一致遵守。奖项名称、等级指标、数字参数必须与招标文件原文逐字一致,禁止替换、降级或省略。商务域条款(付款/保证金/结算等)不在技术标响应范围——正文不得出现任何商务内容。"),`【招标要求全局口径红线(全文档适用)】
234
234
  ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}
235
- ${(0,l.TP)("以上为系统提取的招标要求全局口径:本段提示词文字本身(编号、括号说明等元话语)禁止复述进正文")}`}function as(a){if(0===a.length)return"";let b={respond:"显性响应",comply:"全文遵守"};return["【本章必须处理的招标要求(蓝图分配全量,逐条响应/遵守;零处理即评标失分)】",...a.map(a=>{let c=a.sources.find(a=>a.file)?.file,d="respond"===a.policy?aJ(a):[],e=d.length>0?`
236
- └ 必须逐字落位:${d.join("、")}`:"";return`- [${b[a.policy]}] ${a.text}${c?`(来源:${c})`:""}${e}`}),(0,l.TP)("以上为系统提取的招标要求原文:实质内容(奖项名称/等级指标/数字参数)必须显性落位;「必须逐字落位」为系统验收锚点清单,其文字禁止复述进正文;本段提示词文字本身(编号、括号说明等元话语)禁止复述进正文")].join("\n")}function at(a,b={}){if(0===a.length)return"";let c={diagram:"图(网络图/横道图/平面布置图类)",org_chart:"框图",table:"表格",chart_text:"文字结合图表"};return b.bodyTableForbidden?["【本章必须落实的呈现要求(招标明文规定呈现形态,正文禁表口径)】",...a.map(a=>`- 招标要求以「${c[a.form]}」呈现「${a.element}」:招标正文禁表(显式禁表句),不得出现任何表格/图片,须以完整文字描述${a.element}的组成与运作(图文形态由文末附表区承载,正文可自然指向附表)${"org_chart"===a.form?":正文须含「项目管理机构与岗位职责」专项内容——组织架构说明(层级设置、隶属关系、部门与岗位构成)及分岗位的职责分工与协作关系;严禁出现人员姓名、证书编号、身份证号等实名数据(人员实名信息属商务册职责,正文仅写岗位与职责体系)":""}`),(0,l.TP)("以上为招标明文的呈现形态要求:正文以文字完整承载内容,禁止任何图表实体与内部话术(如“由编制人绘制”)")].join("\n"):["【本章必须落实的呈现要求(招标明文规定呈现形态,缺失即评标失分)】",...a.map(a=>{var b;return`- 须以「${c[a.form]}」呈现「${a.element}」(呈现形态与要素均来自招标明文,不得省略)${"diagram"===(b=a.form)?':必须以 Markdown 数据表(表头字段 + 数据行,数据取自资料,禁止编造)承载全部内容要点(≥3 行要点);**图与图题由系统按下述数据统一生成,不得自己写图题行(「图 X-X …」)、不得引用任何图号、不得描述"图见某处"**':"org_chart"===b?":正文须含「项目管理机构与岗位职责」专项内容——组织架构说明(层级设置、隶属关系、部门与岗位构成)+ 文字框图承载(列出全部岗位与层级关系)+ 岗位责任矩阵(各岗位职责、分工与协作关系);严禁出现人员姓名、证书编号、身份证号等实名数据(人员实名信息属商务册职责,正文仅写岗位与职责体系)":"table"===b?":以 Markdown 表格输出,表头字段按要素构成设置并覆盖全部构成项":""}`}),b.bodyFigureForbidden?(0,l.TP)("以上为招标明文的呈现形态要求:对应表格/框图必须在本章正文落实(内容使用资料事实,禁止编造);招标要求正文不得出现图片,图类以文字框图/表格式时间轴与图题行承载,禁止插入图片或图件占位"):(0,l.TP)("以上为招标明文的呈现形态要求:对应图/表/框图必须在本章正文落实,内容使用资料事实,禁止编造")].join("\n")}let au={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},chapter:{type:"string",required:!0,maxLength:60}}}}}},av=[(0,p.y4)("你是招标要求章责分配器。"),'输入是语义路由置信度偏低的技术标要求条目与本文档全部章节标题列表。\n为每条要求裁决其唯一主责章节(写该章节正文时必须响应此要求),逐条必出结果(不得遗漏序号)。\n\n- chapter:从章节标题列表中选择内容最匹配的一项,必须与列表原文逐字一致\n- chapter 填 "none":该条不是可写入技术标正文的实质要求(无问题上下文的残片/客套答复/程序性说明),或没有任何章节能承载其内容\n\n输出 JSON:{ "results": [ { "index": 0, "chapter": "章节标题或none" } ] },只返回 JSON。'].join("\n");async function aw(a,b,c={}){let d=[`章节标题列表:
237
- ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`,"",a.map((a,b)=>`【要求 ${b}】${a.entry.text}`).join("\n\n")].join("\n"),e=await (0,g.bb)(av,d,{maxTokens:4e3,temperature:0,signal:c.signal,diagnostics:c.diagnostics,schema:au,taskKind:(0,g.TO)()}),f=new Map;for(let b of e?.results||[]){if("number"!=typeof b.index||!Number.isInteger(b.index)||b.index<0||b.index>=a.length||"string"!=typeof b.chapter)continue;let c=b.chapter.trim();c&&f.set(b.index,c)}return f}async function ax(a,b,c,d={}){let e=function(a,b,c){let d=[];if(0===a.length||0===b.length)return{assignments:d,lowConfidenceCount:0};let e=b.map(a=>x(a.title)).filter(Boolean);if(0===e.length)return{assignments:d,lowConfidenceCount:0};let f=0;for(let b of a){let a=aq({text:w(b.text)||b.text,coreTerms:b.coreTerms}),g="",h=0;for(let b of e){let d=c(a,b);d>h&&(h=d,g=b)}g||(g=e[0]);let i=h<.45;i&&(f+=1),d.push({entry:b,chapterTitle:g,score:h,lowConfidence:i})}return{assignments:d,lowConfidenceCount:f}}(a,b,c),f=b.map(a=>x(a.title)).filter(Boolean),g=e.assignments.map((a,b)=>a.lowConfidence?b:-1).filter(a=>a>=0);if(0===g.length||0===f.length||d.signal?.aborted)return{assignments:e.assignments,dropped:[],lowConfidenceCount:e.lowConfidenceCount};let h=[];for(let a=0;a<g.length;a+=40)h.push(g.slice(a,a+40));let i=await Q(h,H,a=>aw(a.map(a=>e.assignments[a]),f,d)),j=new Map;i.forEach((a,b)=>{for(let[c,d]of a){let a=h[b][c];void 0!==a&&j.set(a,d)}});let k=new Set(f),l=[],m=[],n=0;return e.assignments.forEach((a,b)=>{if(!a.lowConfidence)return void l.push(a);let c=j.get(b);if(!c){l.push(a),n+=1;return}return/^(?:none|无)$/iu.test(c)?void m.push(a.entry):k.has(c)?void l.push({...a,chapterTitle:c,lowConfidence:!1}):void(l.push(a),n+=1)}),{assignments:l,dropped:m,lowConfidenceCount:n}}function ay(a,b){let c=e.join((0,h.Gl)(a),"assets");d.mkdirSync(c,{recursive:!0});let f=e.join(c,"requirement-assignments.json");return d.writeFileSync(f,JSON.stringify({createdAt:new Date().toISOString(),total:b.length,assignments:b},null,2),"utf8"),f}let az=.35;function aA(a){return`${a.element} ${a.sourceText}`.slice(0,120)}function aB(a,b,c){let d=[],e=[],f=b.map(a=>x(a.title)).filter(Boolean);for(let b of a){let a=aA(b),g="",h=0;for(let b of f){let d=c(a,b);d>h&&(h=d,g=b)}let i={requirement:b,chapterTitle:g,score:h,lowConfidence:h<az};if(!g||i.lowConfidence){e.push(i);continue}d.push(i)}return{assignments:d,unattached:e}}function aC(a,b,c){let f=e.join((0,h.Gl)(a),"assets");d.mkdirSync(f,{recursive:!0});let g=e.join(f,"structure-assignments.json");return d.writeFileSync(g,JSON.stringify({createdAt:new Date().toISOString(),attached:b.length,unattached:c.length,assignments:b,unattachedItems:c},null,2),"utf8"),g}let aD={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},alternative:{type:"boolean",required:!0}}}}}};async function aE(a,b={}){let c=a.filter(a=>a.text.trim());if(0===c.length)return new Map;let d=[];for(let a=0;a<c.length;a+=40)d.push(c.slice(a,a+40));let e=await Q(d,3,a=>aF(a,b)),f=new Map;return e.forEach((a,b)=>{a.forEach((a,c)=>{f.set(40*b+c,a)})}),new Map(c.map((a,b)=>[b,f.get(b)??!1]))}async function aF(a,b={}){let c=await (0,g.bb)([(0,p.y4)("你是招标要求条款锚点关系判定器。"),'对每条条款判定其锚点之间的关系:\n- alternative=true:条款锚点为"或/及/任选其一"关系(如"省级或国家级奖项""A、B、C任选"),满足任一锚点即算完整响应\n- alternative=false:条款锚点必须全部满足(并列承诺、金额与奖项共存条款),缺任一锚点即部分响应\n只输出 JSON,不得输出其他内容。'].join("\n"),a.map((a,b)=>`${b+1}. 条款:${a.text}
238
- 未命中锚点:${a.missingAnchors.join("、")||"(无)"}`).join("\n"),{maxTokens:1e3,temperature:0,signal:b.signal,diagnostics:b.diagnostics,schema:aD,taskKind:(0,g.TO)()});if(!c?.results?.length)return a.map(()=>!1);let d=new Map;for(let a of c.results)"number"==typeof a.index&&d.set(a.index,!0===a.alternative);return a.map((a,b)=>d.get(b)??!1)}function aG(a){return a.replace(/%/gu,"%")}function aH(a){return a.replace(/[!-~]/gu,a=>String.fromCharCode(a.charCodeAt(0)-65248)).replace(/[*✕╳xX×]/gu,"\xd7").replace(/[##]/gu,"").replace(/[—–―─-〜~]/gu,"-").replace(/[「」『』“”"'`《》]/gu,"").replace(/[、,,]/gu,"").replace(/[的为]/gu,"").replace(/([^)]*)|\([^)]*\)/gu,"")}function aI(a,b){let c=aH(a);return!(c.length<2)&&!(2*c.length<a.length)&&b.includes(c)}function aJ(a,b){var c;let d=aG(a.text.replace(/\s+/gu,"")),e=new Set,f=$.test((aG(c=a.text).split(":").pop()||c).replace(/\s+/gu,"").trim()),g=function(a){let b=aG(a.text).replace(/^#{0,6}\s*/u,"").replace(/^[((]\s*(?:\d{1,3}|[一二三四五六七八九十]{1,3})\s*[))]/u,"").replace(/^\d+(?:[.-]\d+)*[.、]?/u,"").replace(_,"");if(0===b.length)return!1;let c=b;for(let b of a.coreTerms){let a=aG(b).replace(_,"");a.length<2||(c=c.split(a).join(""))}return 0===c.length}(a);for(let b of a.coreTerms){let a=aG(b.replace(/\s+/gu,""));if(a.length<2||X(a)||(f||g)&&!/[0-9A-Za-z]|《|[\u4e00-\u9fa5]{2,6}[杯奖星]/u.test(a)||aa.test(a))continue;if(Z(a)){e.add(a);continue}if(function(a){let b=a.replace(/\s+/gu,"").toUpperCase();return!(b.length<4)&&!(b.length>24)&&(/^[A-Z0-9./-]+$/u.test(b)?!!/[A-Z]/u.test(b)&&!!/\d/u.test(b)&&(!!(/^[A-Z]{2,}/u.test(b)||/\d{3,}$/u.test(b)||/[/-]/u.test(b))||(Z(b),!1)):/^[一-龥]\d{4}[A-Z]{1,2}\d{1,4}$/u.test(b))}(a))continue;let c=a.match(/^(.*?)(\d+(?:\.\d+)?(?:%|%)?)$/u);if(c&&c[1].length>=2){e.add(c[1]),e.add(c[2]);continue}e.add(a)}if(!b?.skipNumericAnchors)for(let a of d.matchAll(/(?:\d+(?:\.\d+)?\s*(?:%|%|万元|亿元|小时|分钟|毫米|MPa|kPa|mm|天|日|元|米|m|M|层|年|个|月|周|项|处|台|套|辆|人|家|次|遍|道|吨))/giu)){let b=aG(a[0].replace(/\s+/gu,""));/^\d+\.\d+项$/u.test(b)||0!==Number.parseFloat(b)&&e.add(b)}for(let a of d.matchAll(/[\u4e00-\u9fa5]{2,6}[杯奖星]/gu)){let b=function(a){let b=a;for(;;){let a=b.replace(/^(?:争创|争取|力争|争获|确保|获得|创建|力创|评为|荣获|标为|目标为|承诺|为)/u,"");if(a===b||!a)break;b=a}return b}(a[0]);/^[\u4e00-\u9fa5]{2,7}$/u.test(b)&&e.add(b)}return[...e]}function aK(a,b,c,d){let e=aJ(a,d),f=[],g=[];for(let a of e)(!function(a,b,c){if(b.includes(a)||aI(a,c))return!0;let d=a.match(/(\d+(?:\.\d+)?)\s*[-–—~~至]\s*(\d+(?:\.\d+)?)/u);return!!d&&b.includes(d[1])&&b.includes(d[2])}(a,b,c)?g:f).push(a);return{total:e.length,hit:f,missing:g}}function aL(a,b,c){let d=aG(a).replace(/([^)]*)|\([^)]*\)/gu,""),e=d.split(/[,。;、,;\n]/u).map(a=>a.replace(/[「」“”"'`\s]/gu,"").trim()).filter(a=>a.length>=6);if(0===e.length){let a=d.replace(/[「」“”"'`\s]/gu,"").trim();if(a.length>=6)return{total:1,missing:b.includes(a)||aI(a,c)?[]:[a]}}let f=e.filter(a=>!b.includes(a)&&!aI(a,c));return{total:e.length,missing:f}}function aM(a){return a.replace(/[☑☐☒□▢√✓✔■●◼⊠]\s*/gu,"").replace(/(?<![\d])\s*[×✗]\s*(?![\d])/gu,"").replace(/^\s*(?:[((]\s*\d{1,3}\s*[))]|(?:\d{1,3}(?:\.\d{1,3}){0,3})[.、,,](?=[\u4e00-\u9fff((])|(?:[一二三四五六七八九十]{1,3})[、.,,](?=[\u4e00-\u9fff((]))/u,"").replace(/投标人本单位|承包人本单位/gu,"本公司").replace(/本招标项目/gu,"本项目").replace(/(?:承包人|发包人)认为视同/gu,"视为").replace(/承包人|投标人|施工单位|承包方|中标人|承包单位|投标单位/gu,"我方")}function aN(a,b,c){let d=aK(a,b,c);if(d.total>0&&0===d.missing.length)return!0;let e=aL(a.text,b,c);if(e.total>0&&0===e.missing.length)return!0;let f=aL(aM(a.text),b,c);return!!(f.total>0)&&0===f.missing.length}function aO(a,b){let c=aG(b.replace(/\s+/gu,"")),d=aH(c);return a.map(a=>{let b=aK(a,c,d);return{entry:a,hit:b.hit,missing:b.missing,satisfied:aN(a,c,d)}})}function aP(a){return!af.test(a)&&ae.test(a)}async function aQ(a){let b=[];if(0===a.entries.length)return b;let c=a.markdown,d=aG(c.replace(/\s+/gu,"")),e=aH(d),f=()=>(0,k.SD)(c),g=c.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>x(a)).filter(Boolean),h=a.bodyTexts&&a.bodyTexts.length>0?[...g,...a.bodyTexts]:g.length>0?g:[c.slice(0,2e3)],i=[],m=new Set(g.map(a=>x(a)));for(let c of a.entries){let g=c.category;if("comply"===c.policy)continue;let k=w(c.text)||c.text;if(k&&m.has(x(k)))continue;if((0,r.rf)(String(g??""),String(c.text??""))){b.push({level:"warning",severity:"warning",category:"evidence_coverage",owner:"system",repairability:"not_repair_needed",message:`招标要求文本不可核验:${g}“${String(c.text).slice(0,60)}”(疑似 OCR 碎片/表单残片,判定不成立)`,suggestion:"该条款在提取阶段就已被识别为坏文本:请检查源文件 OCR 质量或该页的表格结构;本条不参与响应验收、不阻断导出。",provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(`unverifiable\u0000${c.text}`)}});continue}if(/六个百分百|扬尘治理/u.test(c.text)&&f()>=4)continue;let n=aq(c),o=0;for(let b of h){let c=a.semanticSimilarity(n,b);c>o&&(o=c)}if(o>=j.Eh){let a=k===c.text?c:{...c,text:k};if(aN(a,d,e))continue;let b=aK(a,d,e);b.total>0&&i.push({item:c,kind:g,bestSimilarity:o,hit:b.hit,missing:b.missing});continue}let p=k===c.text?c:{...c,text:k};if(aN(p,d,e))continue;let q=aK(p,d,e);if(0===q.total){b.push({level:"warning",severity:"warning",category:"evidence_coverage",owner:"system",repairability:"not_repair_needed",message:`招标要求无法确定性核验:${g}“${c.text}”条款内无可用锚点(核心词均为引用性/空话形态,且无数字参数与具名奖项),确定性通道未作响应判定(最佳语义相似度 ${o.toFixed(2)})`,suggestion:"该条款未进入确定性核验:如需逐字核验,应在招标要求提取阶段为该条款给出可核验的核心词(专有名词/等级名/体系名/关键数字参数)。",provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(c.text)}});continue}if(q.hit.length>0){i.push({item:c,kind:g,bestSimilarity:o,hit:q.hit,missing:q.missing});continue}b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`招标要求未响应:${g}“${c.text}”在正文中零命中(最佳语义相似度 ${o.toFixed(2)})`,suggestion:`招标文件明确要求的${g}必须显性响应:在对应章节以投标人口吻补写“${c.text}”对应内容及配套保证措施(不得使用“按招标文件要求:”条幅前缀)。`,provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(c.text)}})}if(i.length>0){let c=await aE(i.map(a=>({text:a.item.text,missingAnchors:a.missing})),{signal:a.signal,diagnostics:a.diagnostics});for(let[a,d]of i.entries()){if(c.get(a))continue;let e=d.hit.length>0?`已命中“${d.hit.join("、")}”,`:"";b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`招标要求部分响应:${d.kind}“${d.item.text}”${e}但缺少“${d.missing.join("、")}”(最佳语义相似度 ${d.bestSimilarity.toFixed(2)})`,suggestion:`条款内全部关键数据与奖项必须逐项显性响应:在对应章节补写“${d.missing.join("、")}”对应内容(缺一即部分响应)。`,provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(d.item.text)}})}}return b}function aR(a){let b=a.split(/\r?\n/u),c=[],d=0,e=[];for(let a=0;a<b.length;a+=1){let f=b[a],g=f.trim();if(!g||/^#{1,6}\s/u.test(g)||/^\s*\|/u.test(f)){c.push(f);continue}let h=f,i=/^(\s*)按招标文件(?:要求|约定):\s*(.+)$/u.exec(h);if(i&&(h=`${i[1]}${aM(i[2])}`),(h=(h=h.replace(/本施工组织设计已按上述条款要求逐项落实执行。?/gu,"")).replace(/按招标文件约定/gu,"按招标要求").replace(/按招标文件要求/gu,"按招标要求").replace(/按招标文件规定/gu,"按招标要求").replace(/按上述条款要求|按上述条款|按上述要求/gu,"按招标要求").replace(/按上述时限/gu,"按约定时限").replace(/本招标项目/gu,"本项目"))!==f&&(d+=1,e.length<6&&e.push(g.slice(0,24))),!h.trim()){a+1<b.length&&!b[a+1].trim()&&c.length>0&&!c[c.length-1].trim()&&(a+=1);continue}c.push(h)}return{markdown:c.join("\n"),fixedCount:d,details:e}}function aS(a){let b=(0,f.rA)(a),c=(0,f.vG)(b.text),d=(0,f.eI)(c.text),e=(a=d.text).split(/\r?\n/u),g=[],h=0,i=[];for(let a=0;a<e.length;a+=1){let b=e[a];if(!(0,f.Nf)(b)){g.push(b);continue}h+=1,i.length<6&&i.push(b.trim().slice(0,24)),a+1<e.length&&!e[a+1].trim()&&g.length>0&&!g[g.length-1].trim()&&(a+=1)}let j=b.removed+c.removed+d.removed;return{markdown:g.join("\n"),fixedCount:h+j,details:j>0?[...i,`句中资料残片 ${j} 处`].slice(0,6):i}}function aT(a){let b=a.split(/\r?\n/u),c=new Set,d=[],e=0,f=[];for(let a=0;a<b.length;a+=1){let g=b[a],h=g.trim();if(!h||/^#{1,6}\s/u.test(h)||/^\s*\|/u.test(g)){d.push(g);continue}let i=h.replace(/\s+/gu,"");if(!(i.length>=40&&(/我方/u.test(i)||/本工程/u.test(i)))){d.push(g);continue}if(c.has(i)){for(;a+1<b.length&&!b[a+1].trim();)a+=1;e+=1,f.length<6&&f.push(h.slice(0,24));continue}c.add(i),d.push(g)}return{markdown:d.join("\n"),fixedCount:e,details:f}}},64297:(a,b,c)=>{c.d(b,{m5:()=>p,mt:()=>k,nd:()=>l});var d=c(99956),e=c(80439),f=c(22157),g=c(18351),h=c(40299),i=c(76193),j=c(52922);async function k(a,b){let c=(0,h.r4)(a.content);if(0===c.length)return[];let d=[];for(let e of c){let c=e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),f=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),h=f?.[1]||"",i=await (0,g.AI)(e,(0,g.Ym)(e,a.chapter,a.evidence),b),j=(0,g.uQ)(e,h,i);j&&d.push(`${e}:${j}`)}return d}function l(a){let b;try{b=(0,i.yT)("table-content-leak",()=>(0,j.GI)(a.content))}catch(c){let b=c instanceof Error?c.message:String(c);return console.error(`[gen][chapter-qc] 章级表格内容泄漏自检失败(该维度本次未执行): ${a.chapterTitle}`,c),a.diagnostics&&(a.diagnostics.llm.lastError=`章级表格内容泄漏自检未完成:${a.chapterTitle} —— ${b}`),[`表格内容泄漏自检未完成(该检测维度本次未执行,已记录待复核):${b}`]}return 0===b.length?[]:(console.error(`[gen][chapter-qc] 章级表格内容泄漏 ${b.length} 段(表格条目被倒成无主谓散文): ${a.chapterTitle}`),b.map(a=>{let b=a.replace(/\s+/gu,"");return`表格内容泄漏:表格条目被倒成散文段(无主谓书名号枚举 ${b.length} 字),应改回表格或补出主谓——段首「${b.slice(0,40)}…」`}))}function m(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function n(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function o(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function p(a){var b;(0,f.Te)(a.signal);let c=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}
235
+ ${(0,l.TP)("以上为系统提取的招标要求全局口径:本段提示词文字本身(编号、括号说明等元话语)禁止复述进正文")}`}function au(a){if(0===a.length)return"";let b={respond:"显性响应",comply:"全文遵守"};return["【本章必须处理的招标要求(蓝图分配全量,逐条响应/遵守;零处理即评标失分)】",...a.map(a=>{let c=a.sources.find(a=>a.file)?.file,d="respond"===a.policy?aL(a):[],e=d.length>0?`
236
+ └ 必须逐字落位:${d.join("、")}`:"";return`- [${b[a.policy]}] ${a.text}${c?`(来源:${c})`:""}${e}`}),(0,l.TP)("以上为系统提取的招标要求原文:实质内容(奖项名称/等级指标/数字参数)必须显性落位;「必须逐字落位」为系统验收锚点清单,其文字禁止复述进正文;本段提示词文字本身(编号、括号说明等元话语)禁止复述进正文")].join("\n")}function av(a,b={}){if(0===a.length)return"";let c={diagram:"图(网络图/横道图/平面布置图类)",org_chart:"框图",table:"表格",chart_text:"文字结合图表"};return b.bodyTableForbidden?["【本章必须落实的呈现要求(招标明文规定呈现形态,正文禁表口径)】",...a.map(a=>`- 招标要求以「${c[a.form]}」呈现「${a.element}」:招标正文禁表(显式禁表句),不得出现任何表格/图片,须以完整文字描述${a.element}的组成与运作(图文形态由文末附表区承载,正文可自然指向附表)${"org_chart"===a.form?":正文须含「项目管理机构与岗位职责」专项内容——组织架构说明(层级设置、隶属关系、部门与岗位构成)及分岗位的职责分工与协作关系;严禁出现人员姓名、证书编号、身份证号等实名数据(人员实名信息属商务册职责,正文仅写岗位与职责体系)":""}`),(0,l.TP)("以上为招标明文的呈现形态要求:正文以文字完整承载内容,禁止任何图表实体与内部话术(如“由编制人绘制”)")].join("\n"):["【本章必须落实的呈现要求(招标明文规定呈现形态,缺失即评标失分)】",...a.map(a=>{var b;return`- 须以「${c[a.form]}」呈现「${a.element}」(呈现形态与要素均来自招标明文,不得省略)${"diagram"===(b=a.form)?':必须以 Markdown 数据表(表头字段 + 数据行,数据取自资料,禁止编造)承载全部内容要点(≥3 行要点);**图与图题由系统按下述数据统一生成,不得自己写图题行(「图 X-X …」)、不得引用任何图号、不得描述"图见某处"**':"org_chart"===b?":正文须含「项目管理机构与岗位职责」专项内容——组织架构说明(层级设置、隶属关系、部门与岗位构成)+ 文字框图承载(列出全部岗位与层级关系)+ 岗位责任矩阵(各岗位职责、分工与协作关系);严禁出现人员姓名、证书编号、身份证号等实名数据(人员实名信息属商务册职责,正文仅写岗位与职责体系)":"table"===b?":以 Markdown 表格输出,表头字段按要素构成设置并覆盖全部构成项":""}`}),b.bodyFigureForbidden?(0,l.TP)("以上为招标明文的呈现形态要求:对应表格/框图必须在本章正文落实(内容使用资料事实,禁止编造);招标要求正文不得出现图片,图类以文字框图/表格式时间轴与图题行承载,禁止插入图片或图件占位"):(0,l.TP)("以上为招标明文的呈现形态要求:对应图/表/框图必须在本章正文落实,内容使用资料事实,禁止编造")].join("\n")}let aw={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},chapter:{type:"string",required:!0,maxLength:60}}}}}},ax=[(0,p.y4)("你是招标要求章责分配器。"),'输入是语义路由置信度偏低的技术标要求条目与本文档全部章节标题列表。\n为每条要求裁决其唯一主责章节(写该章节正文时必须响应此要求),逐条必出结果(不得遗漏序号)。\n\n- chapter:从章节标题列表中选择内容最匹配的一项,必须与列表原文逐字一致\n- chapter 填 "none":该条不是可写入技术标正文的实质要求(无问题上下文的残片/客套答复/程序性说明),或没有任何章节能承载其内容\n\n输出 JSON:{ "results": [ { "index": 0, "chapter": "章节标题或none" } ] },只返回 JSON。'].join("\n");async function ay(a,b,c={}){let d=[`章节标题列表:
237
+ ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`,"",a.map((a,b)=>`【要求 ${b}】${a.entry.text}`).join("\n\n")].join("\n"),e=await (0,g.bb)(ax,d,{maxTokens:4e3,temperature:0,signal:c.signal,diagnostics:c.diagnostics,schema:aw,taskKind:(0,g.TO)()}),f=new Map;for(let b of e?.results||[]){if("number"!=typeof b.index||!Number.isInteger(b.index)||b.index<0||b.index>=a.length||"string"!=typeof b.chapter)continue;let c=b.chapter.trim();c&&f.set(b.index,c)}return f}async function az(a,b,c,d={}){let e=function(a,b,c){let d=[];if(0===a.length||0===b.length)return{assignments:d,lowConfidenceCount:0};let e=b.map(a=>x(a.title)).filter(Boolean);if(0===e.length)return{assignments:d,lowConfidenceCount:0};let f=0;for(let b of a){let a=as({text:w(b.text)||b.text,coreTerms:b.coreTerms}),g="",h=0;for(let b of e){let d=c(a,b);d>h&&(h=d,g=b)}g||(g=e[0]);let i=h<.45;i&&(f+=1),d.push({entry:b,chapterTitle:g,score:h,lowConfidence:i})}return{assignments:d,lowConfidenceCount:f}}(a,b,c),f=b.map(a=>x(a.title)).filter(Boolean),g=e.assignments.map((a,b)=>a.lowConfidence?b:-1).filter(a=>a>=0);if(0===g.length||0===f.length||d.signal?.aborted)return{assignments:e.assignments,dropped:[],lowConfidenceCount:e.lowConfidenceCount};let h=[];for(let a=0;a<g.length;a+=40)h.push(g.slice(a,a+40));let i=await R(h,H,a=>ay(a.map(a=>e.assignments[a]),f,d)),j=new Map;i.forEach((a,b)=>{for(let[c,d]of a){let a=h[b][c];void 0!==a&&j.set(a,d)}});let k=new Set(f),l=[],m=[],n=0;return e.assignments.forEach((a,b)=>{if(!a.lowConfidence)return void l.push(a);let c=j.get(b);if(!c){l.push(a),n+=1;return}return/^(?:none|无)$/iu.test(c)?void m.push(a.entry):k.has(c)?void l.push({...a,chapterTitle:c,lowConfidence:!1}):void(l.push(a),n+=1)}),{assignments:l,dropped:m,lowConfidenceCount:n}}function aA(a,b){let c=e.join((0,h.Gl)(a),"assets");d.mkdirSync(c,{recursive:!0});let f=e.join(c,"requirement-assignments.json");return d.writeFileSync(f,JSON.stringify({createdAt:new Date().toISOString(),total:b.length,assignments:b},null,2),"utf8"),f}let aB=.35;function aC(a){return`${a.element} ${a.sourceText}`.slice(0,120)}function aD(a,b,c){let d=[],e=[],f=b.map(a=>x(a.title)).filter(Boolean);for(let b of a){let a=aC(b),g="",h=0;for(let b of f){let d=c(a,b);d>h&&(h=d,g=b)}let i={requirement:b,chapterTitle:g,score:h,lowConfidence:h<aB};if(!g||i.lowConfidence){e.push(i);continue}d.push(i)}return{assignments:d,unattached:e}}function aE(a,b,c){let f=e.join((0,h.Gl)(a),"assets");d.mkdirSync(f,{recursive:!0});let g=e.join(f,"structure-assignments.json");return d.writeFileSync(g,JSON.stringify({createdAt:new Date().toISOString(),attached:b.length,unattached:c.length,assignments:b,unattachedItems:c},null,2),"utf8"),g}let aF={type:"object",required:["results"],properties:{results:{type:"array",required:!0,minItems:1,items:{type:"object",required:!0,properties:{index:{type:"number",required:!0},alternative:{type:"boolean",required:!0}}}}}};async function aG(a,b={}){let c=a.filter(a=>a.text.trim());if(0===c.length)return new Map;let d=[];for(let a=0;a<c.length;a+=40)d.push(c.slice(a,a+40));let e=await R(d,3,a=>aH(a,b)),f=new Map;return e.forEach((a,b)=>{a.forEach((a,c)=>{f.set(40*b+c,a)})}),new Map(c.map((a,b)=>[b,f.get(b)??!1]))}async function aH(a,b={}){let c=await (0,g.bb)([(0,p.y4)("你是招标要求条款锚点关系判定器。"),'对每条条款判定其锚点之间的关系:\n- alternative=true:条款锚点为"或/及/任选其一"关系(如"省级或国家级奖项""A、B、C任选"),满足任一锚点即算完整响应\n- alternative=false:条款锚点必须全部满足(并列承诺、金额与奖项共存条款),缺任一锚点即部分响应\n只输出 JSON,不得输出其他内容。'].join("\n"),a.map((a,b)=>`${b+1}. 条款:${a.text}
238
+ 未命中锚点:${a.missingAnchors.join("、")||"(无)"}`).join("\n"),{maxTokens:1e3,temperature:0,signal:b.signal,diagnostics:b.diagnostics,schema:aF,taskKind:(0,g.TO)()});if(!c?.results?.length)return a.map(()=>!1);let d=new Map;for(let a of c.results)"number"==typeof a.index&&d.set(a.index,!0===a.alternative);return a.map((a,b)=>d.get(b)??!1)}function aI(a){return a.replace(/%/gu,"%")}function aJ(a){return a.replace(/[!-~]/gu,a=>String.fromCharCode(a.charCodeAt(0)-65248)).replace(/[*✕╳xX×]/gu,"\xd7").replace(/[##]/gu,"").replace(/[—–―─-〜~]/gu,"-").replace(/[「」『』“”"'`《》]/gu,"").replace(/[、,,]/gu,"").replace(/[的为]/gu,"").replace(/([^)]*)|\([^)]*\)/gu,"")}function aK(a,b){let c=aJ(a);return!(c.length<2)&&!(2*c.length<a.length)&&b.includes(c)}function aL(a,b){var c;let d=aI(a.text.replace(/\s+/gu,"")),e=new Set,f=_.test((aI(c=a.text).split(":").pop()||c).replace(/\s+/gu,"").trim()),g=function(a){let b=aI(a.text).replace(/^#{0,6}\s*/u,"").replace(/^[((]\s*(?:\d{1,3}|[一二三四五六七八九十]{1,3})\s*[))]/u,"").replace(/^\d+(?:[.-]\d+)*[.、]?/u,"").replace(aa,"");if(0===b.length)return!1;let c=b;for(let b of a.coreTerms){let a=aI(b).replace(aa,"");a.length<2||(c=c.split(a).join(""))}return 0===c.length}(a);for(let b of a.coreTerms){let a=aI(b.replace(/\s+/gu,""));if(a.length<2||Y(a)||(f||g)&&!/[0-9A-Za-z]|《|[\u4e00-\u9fa5]{2,6}[杯奖星]/u.test(a)||ab.test(a))continue;if($(a)){e.add(a);continue}if(function(a){let b=a.replace(/\s+/gu,"").toUpperCase();return!(b.length<4)&&!(b.length>24)&&(/^[A-Z0-9./-]+$/u.test(b)?!!/[A-Z]/u.test(b)&&!!/\d/u.test(b)&&(!!(/^[A-Z]{2,}/u.test(b)||/\d{3,}$/u.test(b)||/[/-]/u.test(b))||($(b),!1)):/^[一-龥]\d{4}[A-Z]{1,2}\d{1,4}$/u.test(b))}(a))continue;let c=a.match(/^(.*?)(\d+(?:\.\d+)?(?:%|%)?)$/u);if(c&&c[1].length>=2){e.add(c[1]),e.add(c[2]);continue}e.add(a)}if(!b?.skipNumericAnchors)for(let a of d.matchAll(/(?:\d+(?:\.\d+)?\s*(?:%|%|万元|亿元|小时|分钟|毫米|MPa|kPa|mm|天|日|元|米|m|M|层|年|个|月|周|项|处|台|套|辆|人|家|次|遍|道|吨))/giu)){let b=aI(a[0].replace(/\s+/gu,""));/^\d+\.\d+项$/u.test(b)||0!==Number.parseFloat(b)&&e.add(b)}for(let a of d.matchAll(/[\u4e00-\u9fa5]{2,6}[杯奖星]/gu)){let b=function(a){let b=a;for(;;){let a=b.replace(/^(?:争创|争取|力争|争获|确保|获得|创建|力创|评为|荣获|标为|目标为|承诺|为)/u,"");if(a===b||!a)break;b=a}return b}(a[0]);/^[\u4e00-\u9fa5]{2,7}$/u.test(b)&&e.add(b)}return[...e]}function aM(a,b,c,d){let e=aL(a,d),f=[],g=[];for(let a of e)(!function(a,b,c){if(b.includes(a)||aK(a,c))return!0;let d=a.match(/(\d+(?:\.\d+)?)\s*[-–—~~至]\s*(\d+(?:\.\d+)?)/u);return!!d&&b.includes(d[1])&&b.includes(d[2])}(a,b,c)?g:f).push(a);return{total:e.length,hit:f,missing:g}}function aN(a,b,c){let d=aI(a).replace(/([^)]*)|\([^)]*\)/gu,""),e=d.split(/[,。;、,;\n]/u).map(a=>a.replace(/[「」“”"'`\s]/gu,"").trim()).filter(a=>a.length>=6);if(0===e.length){let a=d.replace(/[「」“”"'`\s]/gu,"").trim();if(a.length>=6)return{total:1,missing:b.includes(a)||aK(a,c)?[]:[a]}}let f=e.filter(a=>!b.includes(a)&&!aK(a,c));return{total:e.length,missing:f}}function aO(a){return a.replace(/[☑☐☒□▢√✓✔■●◼⊠]\s*/gu,"").replace(/(?<![\d])\s*[×✗]\s*(?![\d])/gu,"").replace(/^\s*(?:[((]\s*\d{1,3}\s*[))]|(?:\d{1,3}(?:\.\d{1,3}){0,3})[.、,,](?=[\u4e00-\u9fff((])|(?:[一二三四五六七八九十]{1,3})[、.,,](?=[\u4e00-\u9fff((]))/u,"").replace(/投标人本单位|承包人本单位/gu,"本公司").replace(/本招标项目/gu,"本项目").replace(/(?:承包人|发包人)认为视同/gu,"视为").replace(/承包人|投标人|施工单位|承包方|中标人|承包单位|投标单位/gu,"我方")}function aP(a,b,c){let d=aM(a,b,c);if(d.total>0&&0===d.missing.length)return!0;let e=aN(a.text,b,c);if(e.total>0&&0===e.missing.length)return!0;let f=aN(aO(a.text),b,c);return!!(f.total>0)&&0===f.missing.length}function aQ(a,b){let c=aI(b.replace(/\s+/gu,"")),d=aJ(c);return a.map(a=>{let b=aM(a,c,d);return{entry:a,hit:b.hit,missing:b.missing,satisfied:aP(a,c,d)}})}function aR(a){return!ah.test(a)&&ag.test(a)}async function aS(a){let b=[];if(0===a.entries.length)return b;let c=a.markdown,d=aI(c.replace(/\s+/gu,"")),e=aJ(d),f=()=>(0,k.SD)(c),g=c.split(/\n/u).filter(a=>/^#{2,4}\s/u.test(a.trim())).map(a=>x(a)).filter(Boolean),h=a.bodyTexts&&a.bodyTexts.length>0?[...g,...a.bodyTexts]:g.length>0?g:[c.slice(0,2e3)],i=[],m=new Set(g.map(a=>x(a)));for(let c of a.entries){let g=c.category;if("comply"===c.policy)continue;let k=w(c.text)||c.text;if(k&&m.has(x(k)))continue;if((0,r.rf)(String(g??""),String(c.text??""))){b.push({level:"warning",severity:"warning",category:"evidence_coverage",owner:"system",repairability:"not_repair_needed",message:`招标要求文本不可核验:${g}“${String(c.text).slice(0,60)}”(疑似 OCR 碎片/表单残片,判定不成立)`,suggestion:"该条款在提取阶段就已被识别为坏文本:请检查源文件 OCR 质量或该页的表格结构;本条不参与响应验收、不阻断导出。",provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(`unverifiable\u0000${c.text}`)}});continue}if(/六个百分百|扬尘治理/u.test(c.text)&&f()>=4)continue;let n=as(c),o=0;for(let b of h){let c=a.semanticSimilarity(n,b);c>o&&(o=c)}if(o>=j.Eh){let a=k===c.text?c:{...c,text:k};if(aP(a,d,e))continue;let b=aM(a,d,e);b.total>0&&i.push({item:c,kind:g,bestSimilarity:o,hit:b.hit,missing:b.missing});continue}let p=k===c.text?c:{...c,text:k};if(aP(p,d,e))continue;let q=aM(p,d,e);if(0===q.total){b.push({level:"warning",severity:"warning",category:"evidence_coverage",owner:"system",repairability:"not_repair_needed",message:`招标要求无法确定性核验:${g}“${c.text}”条款内无可用锚点(核心词均为引用性/空话形态,且无数字参数与具名奖项),确定性通道未作响应判定(最佳语义相似度 ${o.toFixed(2)})`,suggestion:"该条款未进入确定性核验:如需逐字核验,应在招标要求提取阶段为该条款给出可核验的核心词(专有名词/等级名/体系名/关键数字参数)。",provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(c.text)}});continue}if(q.hit.length>0){i.push({item:c,kind:g,bestSimilarity:o,hit:q.hit,missing:q.missing});continue}b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`招标要求未响应:${g}“${c.text}”在正文中零命中(最佳语义相似度 ${o.toFixed(2)})`,suggestion:`招标文件明确要求的${g}必须显性响应:在对应章节以投标人口吻补写“${c.text}”对应内容及配套保证措施(不得使用“按招标文件要求:”条幅前缀)。`,provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(c.text)}})}if(i.length>0){let c=await aG(i.map(a=>({text:a.item.text,missingAnchors:a.missing})),{signal:a.signal,diagnostics:a.diagnostics});for(let[a,d]of i.entries()){if(c.get(a))continue;let e=d.hit.length>0?`已命中“${d.hit.join("、")}”,`:"";b.push({level:"error",severity:"blocker",category:"structure",owner:"llm",repairability:"llm_repairable",message:`招标要求部分响应:${d.kind}“${d.item.text}”${e}但缺少“${d.missing.join("、")}”(最佳语义相似度 ${d.bestSimilarity.toFixed(2)})`,suggestion:`条款内全部关键数据与奖项必须逐项显性响应:在对应章节补写“${d.missing.join("、")}”对应内容(缺一即部分响应)。`,provenance:{detectorId:"requirements-coverage",fingerprint:(0,l.c6)(d.item.text)}})}}return b}function aT(a){let b=a.split(/\r?\n/u),c=[],d=0,e=[];for(let a=0;a<b.length;a+=1){let f=b[a],g=f.trim();if(!g||/^#{1,6}\s/u.test(g)||/^\s*\|/u.test(f)){c.push(f);continue}let h=f,i=/^(\s*)按招标文件(?:要求|约定):\s*(.+)$/u.exec(h);if(i&&(h=`${i[1]}${aO(i[2])}`),(h=(h=h.replace(/本施工组织设计已按上述条款要求逐项落实执行。?/gu,"")).replace(/按招标文件约定/gu,"按招标要求").replace(/按招标文件要求/gu,"按招标要求").replace(/按招标文件规定/gu,"按招标要求").replace(/按上述条款要求|按上述条款|按上述要求/gu,"按招标要求").replace(/按上述时限/gu,"按约定时限").replace(/本招标项目/gu,"本项目"))!==f&&(d+=1,e.length<6&&e.push(g.slice(0,24))),!h.trim()){a+1<b.length&&!b[a+1].trim()&&c.length>0&&!c[c.length-1].trim()&&(a+=1);continue}c.push(h)}return{markdown:c.join("\n"),fixedCount:d,details:e}}function aU(a){let b=(0,f.rA)(a),c=(0,f.vG)(b.text),d=(0,f.eI)(c.text),e=(a=d.text).split(/\r?\n/u),g=[],h=0,i=[];for(let a=0;a<e.length;a+=1){let b=e[a];if(!(0,f.Nf)(b)){g.push(b);continue}h+=1,i.length<6&&i.push(b.trim().slice(0,24)),a+1<e.length&&!e[a+1].trim()&&g.length>0&&!g[g.length-1].trim()&&(a+=1)}let j=b.removed+c.removed+d.removed;return{markdown:g.join("\n"),fixedCount:h+j,details:j>0?[...i,`句中资料残片 ${j} 处`].slice(0,6):i}}function aV(a){let b=a.split(/\r?\n/u),c=new Set,d=[],e=0,f=[];for(let a=0;a<b.length;a+=1){let g=b[a],h=g.trim();if(!h||/^#{1,6}\s/u.test(h)||/^\s*\|/u.test(g)){d.push(g);continue}let i=h.replace(/\s+/gu,"");if(!(i.length>=40&&(/我方/u.test(i)||/本工程/u.test(i)))){d.push(g);continue}if(c.has(i)){for(;a+1<b.length&&!b[a+1].trim();)a+=1;e+=1,f.length<6&&f.push(h.slice(0,24));continue}c.add(i),d.push(g)}return{markdown:d.join("\n"),fixedCount:e,details:f}}},64297:(a,b,c)=>{c.d(b,{m5:()=>p,mt:()=>k,nd:()=>l});var d=c(99956),e=c(80439),f=c(22157),g=c(18351),h=c(40299),i=c(76193),j=c(52922);async function k(a,b){let c=(0,h.r4)(a.content);if(0===c.length)return[];let d=[];for(let e of c){let c=e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),f=a.content.match(RegExp(`^###\\s+(?:\\d+(?:\\.\\d+)*[、..\\s]*\\s+)?${c}\\s*\\n([\\s\\S]*?)(?=^#{2,3}\\s+|$)`,"mu")),h=f?.[1]||"",i=await (0,g.AI)(e,(0,g.Ym)(e,a.chapter,a.evidence),b),j=(0,g.uQ)(e,h,i);j&&d.push(`${e}:${j}`)}return d}function l(a){let b;try{b=(0,i.yT)("table-content-leak",()=>(0,j.GI)(a.content))}catch(c){let b=c instanceof Error?c.message:String(c);return console.error(`[gen][chapter-qc] 章级表格内容泄漏自检失败(该维度本次未执行): ${a.chapterTitle}`,c),a.diagnostics&&(a.diagnostics.llm.lastError=`章级表格内容泄漏自检未完成:${a.chapterTitle} —— ${b}`),[`表格内容泄漏自检未完成(该检测维度本次未执行,已记录待复核):${b}`]}return 0===b.length?[]:(console.error(`[gen][chapter-qc] 章级表格内容泄漏 ${b.length} 段(表格条目被倒成无主谓散文): ${a.chapterTitle}`),b.map(a=>{let b=a.replace(/\s+/gu,"");return`表格内容泄漏:表格条目被倒成散文段(无主谓书名号枚举 ${b.length} 字),应改回表格或补出主谓——段首「${b.slice(0,40)}…」`}))}function m(a,b){let c=a.trim();if(!c)return[];let d=Math.max(1e3,Math.ceil(b)),e=[],f=0;for(;f<c.length;){let a=Math.min(f+d,c.length),b=c.lastIndexOf("\n\n",a);(b<=f||a-b>.25*d)&&(b=c.lastIndexOf("\n",a)),(b<=f||a-b>.2*d)&&(b=a),e.push(c.slice(f,b).trim()),f=b}return e.filter(Boolean)}function n(a){return"string"==typeof a?a:a&&"object"==typeof a&&"message"in a?String(a.message):JSON.stringify(a)}function o(a){let b=Number(process.env[a]);return Number.isFinite(b)&&b>0?Math.ceil(b):0}async function p(a){var b;(0,f.Te)(a.signal);let c=a.chapters.map(a=>{let b=a.content.replace(/#{1,6}\s+/gu,"").replace(/\*\*/gu,"").replace(/\|/gu," ").replace(/[\n\r]+/gu," ").trim(),c=function(a){let b=[];for(let c of[/(?:总建筑面积|建设规模|总用地面积|总占地面积)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:㎡|m²|m2|平方米)/gu,/(?:合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程总投资|总投资|工程造价)[^\n。;;]{0,18}\d+(?:[.,]\d+)?\s*万?\s*(?:万元|亿元|元)/gu,/(?:计划工期|合同工期|总工期|施工周期)[^\n。;;]{0,18}\d+\s*(?:日历天|天|个月|月)/gu,/(?:质量标准|质量目标)[^\n。;;]{0,26}/gu,/(?:找平层|抹灰层|防水层|保温层|结合层|垫层|面层|粘结层)[^\n。;;]{0,24}\d+:\d+(?:\.\d+)?/gu]){let d=[...new Set(a.match(c)||[])].slice(0,4);b.push(...d)}return[...new Set(b.map(a=>a.replace(/\s+/gu," ").trim()).filter(Boolean))].join(";")}(a.content);return`章节:${a.title}
239
239
  数值口径清单:${c||"(未提取到总量口径数字)"}
240
240
  正文摘要:${b.slice(0,600)}`}).join("\n\n---\n\n"),g=function(a){let b=Math.ceil(a.totalChars/Math.max(1e3,a.chunkChars)),c="chapter"===a.phase?o("DOCUMENT_CHAPTER_REVIEW_MAX_CHUNKS")||Math.min(Math.max(2,Math.floor(a.totalChars/a.chapterCount/4e3)),b):"global"===a.phase?o("DOCUMENT_GLOBAL_REVIEW_MAX_CHUNKS")||Math.min(4,b):o("DOCUMENT_FINAL_REVIEW_MAX_CHUNKS")||Math.min(6,b);return{chunks:c,budgetPerChunk:Math.ceil(a.totalChars/Math.max(1,c)),maxIssues:Math.max(4,Math.min(28,Math.ceil(2.5*c)))}}({totalChars:c.length,chapterCount:a.chapters.length,chunkChars:16e3,phase:"global"}),i=m(c,16e3).map((a,b)=>`**第 ${b+1}/${m(c,16e3).length} 部分**
241
241