@customize-agent/server 4.58.0 → 4.59.1

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 (226) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +132 -143
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/routes-manifest.json +117 -9
  5. package/.next/server/chunks/1001.js +56 -0
  6. package/.next/server/chunks/1928.js +1 -1
  7. package/.next/server/chunks/1936.js +2 -2
  8. package/.next/server/chunks/2434.js +4 -0
  9. package/.next/server/chunks/299.js +50 -0
  10. package/.next/server/chunks/5547.js +350 -0
  11. package/.next/server/chunks/6087.js +3 -0
  12. package/.next/server/chunks/6321.js +3 -0
  13. package/.next/server/chunks/8204.js +1 -1
  14. package/.next/server/middleware-build-manifest.js +1 -1
  15. package/.next/server/pages/404.html +1 -1
  16. package/.next/server/pages/500.html +1 -1
  17. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  18. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  19. package/.next/server/pages/api/assets/generated.js +1 -1
  20. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  21. package/.next/server/pages/api/config/embedding/healthCheck.js.nft.json +1 -1
  22. package/.next/server/pages/api/config/healthCheck.js +2 -2
  23. package/.next/server/pages/api/config/providers.js +2 -2
  24. package/.next/server/pages/api/documents/canvas/[id].js +2 -0
  25. package/.next/server/pages/api/documents/canvas/[id].js.nft.json +1 -0
  26. package/.next/server/pages/api/documents/export.js +3 -3
  27. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  28. package/.next/server/pages/api/documents/generate/preview.js +2 -0
  29. package/.next/server/pages/api/documents/generate/preview.js.nft.json +1 -0
  30. package/.next/server/pages/api/documents/generate.js +2 -2
  31. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  32. package/.next/server/pages/api/documents/generated/[id]/events.js +10 -0
  33. package/.next/server/pages/api/documents/generated/[id]/events.js.nft.json +1 -0
  34. package/.next/server/pages/api/documents/generated/[id]/figure/[name].js +1 -0
  35. package/.next/server/pages/api/documents/generated/[id]/figure/[name].js.nft.json +1 -0
  36. package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js +2 -0
  37. package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js.nft.json +1 -0
  38. package/.next/server/pages/api/documents/generated/[id]/nodes.js +2 -0
  39. package/.next/server/pages/api/documents/generated/[id]/nodes.js.nft.json +1 -0
  40. package/.next/server/pages/api/documents/generated/[id]/pause.js +2 -0
  41. package/.next/server/pages/api/documents/generated/[id]/pause.js.nft.json +1 -0
  42. package/.next/server/pages/api/documents/generated/[id]/preview.js +2 -0
  43. package/.next/server/pages/api/documents/generated/[id]/preview.js.nft.json +1 -0
  44. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -0
  45. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js.nft.json +1 -0
  46. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js +1 -0
  47. package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js.nft.json +1 -0
  48. package/.next/server/pages/api/documents/generated/[id]/repair.js +1 -0
  49. package/.next/server/pages/api/documents/generated/[id]/repair.js.nft.json +1 -0
  50. package/.next/server/pages/api/documents/generated/[id]/resume-generate.js +2 -0
  51. package/.next/server/pages/api/documents/generated/[id]/resume-generate.js.nft.json +1 -0
  52. package/.next/server/pages/api/documents/generated/[id].js +2 -2
  53. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  54. package/.next/server/pages/api/documents/generated.js +1 -1
  55. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  56. package/.next/server/pages/api/jobs/[id].js +1 -1
  57. package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
  58. package/.next/server/pages/api/jobs.js +1 -1
  59. package/.next/server/pages/api/jobs.js.nft.json +1 -1
  60. package/.next/server/pages/api/kb/categories.js +2 -2
  61. package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
  62. package/.next/server/pages/api/kb/duplicates.js +2 -2
  63. package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
  64. package/.next/server/pages/api/kb/evaluate.js +3 -3
  65. package/.next/server/pages/api/kb/evaluate.js.nft.json +1 -1
  66. package/.next/server/pages/api/kb/files/detail.js +4 -4
  67. package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
  68. package/.next/server/pages/api/kb/files/export.js +3 -3
  69. package/.next/server/pages/api/kb/files/export.js.nft.json +1 -1
  70. package/.next/server/pages/api/kb/files/open.js +2 -2
  71. package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
  72. package/.next/server/pages/api/kb/files/preview-pdf-page.js +1 -1
  73. package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
  74. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  75. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  76. package/.next/server/pages/api/kb/files/search.js +3 -3
  77. package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
  78. package/.next/server/pages/api/kb/files/tree.js +3 -3
  79. package/.next/server/pages/api/kb/files/tree.js.nft.json +1 -1
  80. package/.next/server/pages/api/kb/files.js +4 -4
  81. package/.next/server/pages/api/kb/files.js.nft.json +1 -1
  82. package/.next/server/pages/api/kb/ignore.js +2 -2
  83. package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
  84. package/.next/server/pages/api/kb/intelligence.js +1 -1
  85. package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
  86. package/.next/server/pages/api/kb/material-groups.js +2 -0
  87. package/.next/server/pages/api/kb/material-groups.js.nft.json +1 -0
  88. package/.next/server/pages/api/kb/operations.js +1 -1
  89. package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
  90. package/.next/server/pages/api/kb/reindex.js +1 -1
  91. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  92. package/.next/server/pages/api/kb/search.js +2 -2
  93. package/.next/server/pages/api/kb/search.js.nft.json +1 -1
  94. package/.next/server/pages/api/kb/stats.js +2 -2
  95. package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
  96. package/.next/server/pages/api/kb/tags.js +1 -1
  97. package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
  98. package/.next/server/pages/api/kb/upload/complete.js +1 -1
  99. package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
  100. package/.next/server/pages/api/kb/upload/progress.js +2 -2
  101. package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
  102. package/.next/server/pages/api/kb/upload.js +1 -1
  103. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  104. package/.next/server/pages/api/prompt.js +1 -1
  105. package/.next/server/pages/api/prompt.js.nft.json +1 -1
  106. package/.next/server/pages/api/skills/[id].js +1 -0
  107. package/.next/server/pages/api/skills/[id].js.nft.json +1 -0
  108. package/.next/server/pages/api/skills/validate.js +1 -0
  109. package/.next/server/pages/api/skills/validate.js.nft.json +1 -0
  110. package/.next/server/pages/api/skills.js +1 -0
  111. package/.next/server/pages/api/skills.js.nft.json +1 -0
  112. package/.next/server/pages/api/system/logs.js +2 -2
  113. package/.next/server/pages/api/system/stats.js +1 -1
  114. package/.next/server/pages/canvas/[id].html +1 -0
  115. package/.next/server/pages/canvas/[id].js.nft.json +1 -0
  116. package/.next/server/pages/canvas.html +1 -0
  117. package/.next/server/pages/canvas.js.nft.json +1 -0
  118. package/.next/server/pages/documents.html +1 -1
  119. package/.next/server/pages/documents.js.nft.json +1 -1
  120. package/.next/server/pages/guide.html +1 -1
  121. package/.next/server/pages/index.html +1 -1
  122. package/.next/server/pages/knowledge/file-detail.html +1 -1
  123. package/.next/server/pages/knowledge/files.html +1 -1
  124. package/.next/server/pages/knowledge/files.js.nft.json +1 -1
  125. package/.next/server/pages/knowledge/manage.html +1 -1
  126. package/.next/server/pages/knowledge/manage.js.nft.json +1 -1
  127. package/.next/server/pages/knowledge.html +1 -1
  128. package/.next/server/pages/knowledge.js.nft.json +1 -1
  129. package/.next/server/pages/models.html +1 -1
  130. package/.next/server/pages/overview.html +1 -1
  131. package/.next/server/pages/prompt.html +1 -1
  132. package/.next/server/pages/settings.html +1 -1
  133. package/.next/server/pages/skills.html +1 -0
  134. package/.next/server/pages/system/logs.html +1 -1
  135. package/.next/server/pages-manifest.json +41 -28
  136. package/.next/static/4xQDkixSretJDM503EzIq/_buildManifest.js +1 -0
  137. package/.next/static/chunks/127-20f09f6ebe1e6c1f.js +1 -0
  138. package/.next/static/chunks/174-1bc48f295d7dd075.js +10 -0
  139. package/.next/static/chunks/189-3f4f4e237056adaf.js +4 -0
  140. package/.next/static/chunks/243-03eba51d5d737e98.js +1 -0
  141. package/.next/static/chunks/269-7a3502478bf67fff.js +11 -0
  142. package/.next/static/chunks/289-0cccd8131332e041.js +78 -0
  143. package/.next/static/chunks/310-6c678cb70e4ba2d6.js +19 -0
  144. package/.next/static/chunks/422-46f07037c58d2309.js +1 -0
  145. package/.next/static/chunks/426-22c4cedb04b0d45d.js +21 -0
  146. package/.next/static/chunks/445-d12731f107978b10.js +6 -0
  147. package/.next/static/chunks/530-6f3f5848c6f702ae.js +1 -0
  148. package/.next/static/chunks/569-2bfdde9e402af5b2.js +16 -0
  149. package/.next/static/chunks/700-5d29b0475311f590.js +1 -0
  150. package/.next/static/chunks/709-a7c652953ccd3b4b.js +1 -0
  151. package/.next/static/chunks/787-207289f4bb577708.js +10 -0
  152. package/.next/static/chunks/795-9e0cb0bb11e8c89f.js +1 -0
  153. package/.next/static/chunks/914-292edce0ba2a212d.js +1 -0
  154. package/.next/static/chunks/{framework-161be364fd69a7ce.js → framework-4b565b3ddc94cdac.js} +1 -1
  155. package/.next/static/chunks/main-0c91f573696223ca.js +1 -0
  156. package/.next/static/chunks/pages/_app-ebb535779b63fd5d.js +185 -0
  157. package/.next/static/chunks/pages/canvas/[id]-515edd3e72acaf82.js +1 -0
  158. package/.next/static/chunks/pages/canvas-323d44fe56d685a7.js +1 -0
  159. package/.next/static/chunks/pages/documents-e6a80f2de39c6fd2.js +1 -0
  160. package/.next/static/chunks/pages/guide-7367305082617e3c.js +1 -0
  161. package/.next/static/chunks/pages/knowledge/file-detail-aee7c15541d1d130.js +1 -0
  162. package/.next/static/chunks/pages/knowledge/files-b3ef5324e4b74c4a.js +1 -0
  163. package/.next/static/chunks/pages/knowledge/manage-d9eaebf3a8307953.js +1 -0
  164. package/.next/static/chunks/pages/knowledge-09dde24cdce1b195.js +1 -0
  165. package/.next/static/chunks/pages/models-8b96ba85131d5408.js +1 -0
  166. package/.next/static/chunks/pages/prompt-6a224562d194cb45.js +1 -0
  167. package/.next/static/chunks/pages/settings-0a7709bf039a2a4d.js +1 -0
  168. package/.next/static/chunks/pages/skills-3d77213c3e9ef0b5.js +1 -0
  169. package/.next/static/chunks/pages/system/logs-70790bee46e5a08d.js +1 -0
  170. package/.next/static/chunks/webpack-6224d37324e372cb.js +1 -0
  171. package/.next/static/css/85c434f8fd3a17ae.css +1 -0
  172. package/messages/en-US.json +108 -344
  173. package/messages/zh-CN.json +109 -345
  174. package/package.json +6 -5
  175. package/scripts/capture-baseline.mjs +541 -0
  176. package/scripts/half-built-scan.mjs +150 -0
  177. package/.next/server/chunks/208.js +0 -136
  178. package/.next/server/chunks/4435.js +0 -250
  179. package/.next/server/chunks/5840.js +0 -1
  180. package/.next/server/pages/api/documents/drafts.js +0 -1
  181. package/.next/server/pages/api/documents/drafts.js.nft.json +0 -1
  182. package/.next/server/pages/api/documents/refine.js +0 -13
  183. package/.next/server/pages/api/documents/refine.js.nft.json +0 -1
  184. package/.next/server/pages/api/documents/roles.js +0 -1
  185. package/.next/server/pages/api/documents/roles.js.nft.json +0 -1
  186. package/.next/server/pages/api/documents/templates.js +0 -1
  187. package/.next/server/pages/api/documents/templates.js.nft.json +0 -1
  188. package/.next/server/pages/asset-library.html +0 -1
  189. package/.next/server/pages/document-roles.html +0 -1
  190. package/.next/server/pages/document-roles.js.nft.json +0 -1
  191. package/.next/static/2vWd2mBe-maL25SFytCur/_buildManifest.js +0 -1
  192. package/.next/static/chunks/195-2c0168eacab722d2.js +0 -1
  193. package/.next/static/chunks/289-35ac595388bbd018.js +0 -78
  194. package/.next/static/chunks/44-d3545eedd5c75ef1.js +0 -4
  195. package/.next/static/chunks/455-e1b41ac4946d2b6f.js +0 -6
  196. package/.next/static/chunks/563-b12f299d34bb9e44.js +0 -1
  197. package/.next/static/chunks/665-88e20299084b9e73.js +0 -1
  198. package/.next/static/chunks/7-20bcc985742a9ae1.js +0 -10
  199. package/.next/static/chunks/717-743b697a417dd5ee.js +0 -4
  200. package/.next/static/chunks/760-f8bb8e969c5e0d57.js +0 -1
  201. package/.next/static/chunks/787-c18af810af3433f6.js +0 -25
  202. package/.next/static/chunks/788-3afeb069ed706ac0.js +0 -1
  203. package/.next/static/chunks/795-cd94e8d4e9768eb9.js +0 -1
  204. package/.next/static/chunks/81-c3a7f04d96ea3f7d.js +0 -1
  205. package/.next/static/chunks/827-a6dc09e42833e6a3.js +0 -1
  206. package/.next/static/chunks/883-506cbca959974997.js +0 -16
  207. package/.next/static/chunks/986-49b865de7906320a.js +0 -8
  208. package/.next/static/chunks/994-241f87efc61005b8.js +0 -4
  209. package/.next/static/chunks/main-91fb767ebd74c9c1.js +0 -1
  210. package/.next/static/chunks/pages/_app-66149ba52ad1dc26.js +0 -185
  211. package/.next/static/chunks/pages/asset-library-a1047694e888e655.js +0 -1
  212. package/.next/static/chunks/pages/document-roles-5620a98d6312f81c.js +0 -1
  213. package/.next/static/chunks/pages/documents-d60a47643f5bd6b4.js +0 -1
  214. package/.next/static/chunks/pages/guide-a411c554520b7109.js +0 -1
  215. package/.next/static/chunks/pages/knowledge/file-detail-fe69eb38d70adea0.js +0 -1
  216. package/.next/static/chunks/pages/knowledge/files-8e25066889a85834.js +0 -1
  217. package/.next/static/chunks/pages/knowledge/manage-d0d0e0716e9d705b.js +0 -1
  218. package/.next/static/chunks/pages/knowledge-905248d8dcb15453.js +0 -1
  219. package/.next/static/chunks/pages/models-6ef838f3e00ba21e.js +0 -1
  220. package/.next/static/chunks/pages/prompt-5e1fb81efc656866.js +0 -1
  221. package/.next/static/chunks/pages/settings-810eb1a6cf1a6b02.js +0 -1
  222. package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +0 -1
  223. package/.next/static/chunks/webpack-4224e970a97a4a86.js +0 -1
  224. package/.next/static/css/18018ee565a1deba.css +0 -1
  225. /package/.next/server/pages/{asset-library.js.nft.json → skills.js.nft.json} +0 -0
  226. /package/.next/static/{2vWd2mBe-maL25SFytCur → 4xQDkixSretJDM503EzIq}/_ssgManifest.js +0 -0
@@ -0,0 +1,56 @@
1
+ "use strict";exports.id=1001,exports.ids=[1001],exports.modules={18274:(a,b,c)=>{c.d(b,{AM:()=>e,LT:()=>i,Rz:()=>n,WL:()=>o,_W:()=>d,aX:()=>h,c5:()=>m,s2:()=>j,sv:()=>f,yw:()=>g});let d=/(?:\b[A-Z]{1,8}[\w./-]*\d[\w./-]*\b|\b\d+(?:\.\d+)?\s*(?:mm|cm|m2|m3|m³|m²|㎡|平方米|m|km|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)(?![\w\u00B2\u00B3])|(?<![\d.])\b\d+\s*[×xX]\s*\d+(?:\s*[×xX]\s*\d+)?\b|\b(?:GB|GB\/T|ISO|IEC|IEEE|RFC|API|DB\d*|T\/[A-Z]+)\s*[\w.-]+\b)/giu,e=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|φ\s*\d+|Φ\s*\d+|GB\s*\d+|JGJ\s*\d+/iu,f=/\d|DN|φ|Φ|mm|cm|m²|m3|m³|MPa|kPa|℃|%|GB|JGJ|ISO|IEC|台|套|个|项|批|次|份|人|㎡|日历天|万元|元|型号|规格|数量|单位/iu,g=/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+|\d+\s*[×xX]\s*\d+/iu,h=/\d+(?:\.\d+)?\s*(?:m³|m3|m²|㎡|mm|cm|m\/s|m|km|MPa|kN|kN\/m²|kPa|℃|%|d|h|min|MΩ|t|次\/天)|[MC]\d{1,3}(?:\.\d+)?|[<>≤≥]\s*\d+(?:\.\d+)?\s*(?:mm|MPa|%|d)|间距[≤<]?\s*\d+|偏差[≤<]?\s*\d+|坡度\s*\d+(?:\.\d+)?(?::\d+|%)|压实度\s*[≥>]?\s*\d+|坍落度|闭水试验|静载试验|拉拔试验|拉拔检测|探伤|试验压力|锚固长度|搭接长度|保护层厚度|养护时间|饱满度|垂直度|平整度|含水率|(?:地径|胸径|苗高|蓬径|冠丛高|株高|株距|行距|种植深度|覆土厚度|土球直径)\s*[≥≤<>=]?\s*[DΦφd]?\s*\d+(?:\.\d+)?|(?:养护期|养护周期)\s*(?:为|不少于|不低于)?\s*[一二三四五六七八九十两\d]+(?:个)?(?:月|年)|(?:成活率|保存率|苗木覆盖率)\s*[≥≤<>=]?\s*\d+(?:\.\d+)?\s*%|(?:防护挑网|安全网|防护网|围挡|警戒(?:区|线|距离)|防护栏杆).{0,12}(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m|(?:宽度|高度|距离|范围)[^,。;;]{0,8}\d+(?:\.\d+)?\s*m.{0,12}(?:防护挑网|安全网|防护网|围挡|警戒|防护栏杆)/giu,i=/\d[A-Z][A-Z0-9a-z]*\b|[A-Z]{1,2}\d{2,3}\b|\d+(?:\.\d+)?\s*(?:kW|kVA|KVA|KW)\b|IP\d{2}/gu,j=/\d+(?:\.\d+)?\s*(?:m²|㎡|m3|m³|mm|cm|m|km|kg|t|MPa|kPa|℃|%|日历天|天|层|台|套|个|项|次|份|人|小时)/giu,k="mm|cm|m2|m3|m\xb3|m\xb2|㎡|平方米|m|km|kg|g|t|吨|l|ml|mpa|kpa|kn|kw|kv|℃|%|台|套|个|项|批|次|份|人|h|d|min|天|周|月|年|万元|元",l=`(?:[1-9]\\d*\\.\\d+(?:${k})?|(?:[1-9]\\d*|0\\.\\d+)\\s*(?:${k}))`,m=RegExp(`^[A-Za-zΦφΔ][\\w./-]*\\d${l}$`,"iu"),n=RegExp(`^\\d+${l}$`,"u"),o=/(?:DN|De|HRB|HPB|Φ|φ)/iu},29281:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},31129:(a,b,c)=>{c.d(b,{$R:()=>i,F$:()=>l,Hp:()=>j,bs:()=>m,gJ:()=>k});var d=c(73024),e=c(48161),f=c(76760),g=c(70208);function h(){return f.join(process.env.CUSTOMIZE_AGENT_HOME?f.join(process.env.CUSTOMIZE_AGENT_HOME,".customize-agent"):f.join(e.homedir(),".customize-agent"),"section-fingerprints.json")}function i(){let a=h();if(!d.existsSync(a))return{version:1,entries:[]};try{let b=JSON.parse(d.readFileSync(a,"utf8")),c=Array.isArray(b?.entries)?b.entries.filter(a=>!!a&&"object"==typeof a&&"string"==typeof a.documentId):[];return{version:1,entries:c}}catch{return{version:1,entries:[]}}}function j(a){try{let b=i();for(b.entries=b.entries.filter(b=>b.documentId!==a.documentId),b.entries.push(a);b.entries.length>200;)b.entries.shift();let c=h();d.mkdirSync(f.dirname(c),{recursive:!0}),d.writeFileSync(c,JSON.stringify(b,null,2),"utf8")}catch(a){console.error(`[fingerprint] 指纹池写入失败(不阻断生成):${a instanceof Error?a.message:String(a)}`)}}function k(a,b){let c=String(a||"").trim(),d=String(b||"").trim();if(!c||!d)return!1;if(c===d)return!0;let e=(0,g.nz)(c).replace(/\s+/gu,""),f=(0,g.nz)(d).replace(/\s+/gu,"");if(!e||!f)return!1;if(e===f)return!0;let h=new Set(f);if([...new Set(e)].filter(a=>h.has(a)).length<3)return!1;let i=function(a,b){let c=0,d=Array(b.length+1).fill(0);for(let e=1;e<=a.length;e+=1){let f=0;for(let g=1;g<=b.length;g+=1){let h=d[g];d[g]=a[e-1]===b[g-1]?f+1:0,d[g]>c&&(c=d[g]),f=h}}return c}(e,f);return!(i<3)&&i/Math.min(e.length,f.length)>=.4}function l(a,b,c={}){let d=[],e=[];for(let a of b.entries)if(!c.excludeDocumentId||a.documentId!==c.excludeDocumentId)for(let b of[...a.h3||[],...a.h4||[]])"string"==typeof b&&b.trim()&&e.push({title:b,documentId:a.documentId});if(0===e.length)return d;for(let b of a){if(!b||!String(b).trim())continue;let a=e.find(a=>k(b,a.title));a&&d.push({title:b,collidedWith:a.title,documentId:a.documentId})}return d}function m(a){let b=[],c=[];for(let d of String(a||"").split(/\r?\n/u)){let a=d.trim(),e=/^(#{3,4})\s+(.+)$/u.exec(a);if(!e)continue;let f=e[2].replace(/#+\s*$/u,"").trim();f&&(3===e[1].length?b:c).push(f)}return{h3:b,h4:c}}},31920:(a,b,c)=>{c.d(b,{Nf:()=>g,St:()=>A,W:()=>h,eI:()=>z,rA:()=>j,vG:()=>o});var d=c(95294);let e=/[,。;:、·||,;:()()【】《》[\]{}<>「」'"“”\s]/gu,f=/^\s*[\d.]+\s*(?:[A-Za-z%℃²³]+|平方米|立方米|平方|立方|米|天|年|月|日|周|小时|分钟|元|万元|台|套|个|项|批|次|人|份|页|处|座|根|块|组|件|孔|盏|樘|扇|片)*\s*$/u;function g(a){let b=a.trim();if(!b||/^#{1,6}\s/u.test(b)||/^\|/u.test(b))return!1;if(/^(?:答|答复|回复|答疑)\s*[::]/u.test(b))return!0;if(b.length<30)return!1;for(let a of b.split(e)){if(a.length<25)continue;let b=(a.match(/[0-9]/gu)||[]).length,c=(a.match(/[+\-*/×@%·..,≤≥~~$]/gu)||[]).length;if(!((a.match(/[一-龥]/gu)||[]).length/a.length>.3)&&(b+c)/a.length>=.45)return!0}let c=b.split(/[、,,;;]/u).map(a=>a.trim()).filter(Boolean);return!!(c.length>=15)&&!!(c.filter(a=>f.test(a)).length/c.length>=.6)||!1}function h(a){return a?a.split(/\r?\n/u).map(a=>g(a)?"":a).join("\n").replace(/\n{3,}/gu,"\n\n"):a}let i=/(?:现澄清为如下|澄清为如下|澄清如下)[::][^。;\n]*/gu;function j(a){if(!a)return{text:a,removed:0};let b=0,c=a.replace(i,()=>(b+=1,"")),e=(0,d.r1)(c);return c=e.text,b+=e.removed,{text:c=c.replace(/[::,,;;]\s*(?=[。;;])/gu,""),removed:b}}let k=/[^。;\n]{0,30}(?:澄清|答疑|补遗)(?:文件)?[^。;\n]{0,10}(?:明确|载明|规定|说明)[^。;\n]{0,60}/gu,l=/[^。;\n]{0,20}原[^。;\n]{0,24}?(?:现|变更为|调整为|修改为)[^。;\n]{0,24}/gu,m=/[^。;\n,,]{0,20}(?:招标|原招标|原合同|原计划)[^。;\n]{0,20}?(?:现|已|均|将)?(?:澄清|变更|调整|修改|更正)为[^。;\n,,]{0,24}[,,]?/gu,n=/(?:经|根据)[^。;\n,,]{0,8}(?:澄清|答疑|补遗)(?:文件)?[^。;\n]{0,16}?(?:调整为|变更为|修改为|更正为)[^。;\n,,]{0,24}[,,]?/gu;function o(a){if(!a)return{text:a,removed:0};let b=0,c=String(a).replace(k,()=>(b+=1,""));return{text:(c=(c=(c=c.replace(l,a=>/原因|原则|原始|原本|原状|原地|原材料/.test(a)?a:(b+=1,""))).replace(m,()=>(b+=1,""))).replace(n,()=>(b+=1,""))).replace(/[,,;;]\s*(?=[。;])/gu,""),removed:b}}let p="(?:《[^》]{2,40}》|<[^<>]{2,40}>)",q=/(?:法|条例|办法|规定|规则|决定|细则|条文|标准|规范|规程|导则|准则|通则|技术要求|技术条件)$/u,r=/^\s*[((]?\s*[A-Z]{2,6}(?:\s*\/\s*[A-Z]{1,6})?\s*\d/u,s=[`(?:具体)?(?:做法|详见|参见|见|按|依据|参照)[^,,、;;。!?\\n]{0,6}(?:[,,]\\s*(?:具体)?(?:做法|详见|参见|见|依据|参照))?[^,,、;;。!?\\n]{0,8}?(${p})(?:[((][^))]{0,24}[))])?(?:[0-9A-Za-z//.\\-]{1,16})?(?:页|张)?`],t=[`(?:具体)?(?:做法|详见|参见|见|按|依据|参照)[^,,、;;\\n]{0,12}?(${p})[^,,、;;\\n]{0,12}`,`(?:参见|详见|参照|按|依照)[^,,、;;\\n]{0,6}?(?:(${p}))?[^,,、;;\\n]{0,6}?(?:[皖烷京沪苏浙粤鲁豫鄂湘川渝陕冀晋蒙辽吉黑闽赣桂黔滇甘青宁新藏]\\s?\\d{4}|\\d{2})\\s?[A-Z]{1,2}\\s?\\d{2,4}(?:[//]\\d{1,3})?[^,,、;;\\n]{0,10}`],u=[...t,`(?:详见|参见|见)[^,,、;;\\n]{0,16}?(?:大样图|详图|节点图|工艺图|做法表)`],v=[`按(?:设计)?(?:施工)?图纸(?:控制|计量|要求|施工|确定|执行|进行|处理|设置|选用|计算|调整)?`,`以(?:设计)?图纸为准`,`(?:资料|图纸|清单|设计文件)(?:中)?未(?:提供|明确|给出|注明)[^,,、;;\\n]{0,12}(?:参数|数据|做法|要求|规格)?`,`(?:具体(?:参数|做法|数值))?待(?:补充|确认|核实|明确)`],w=s.map(a=>RegExp(a,"u"));function x(a,b){return!!q.test(a.slice(1,-1))||r.test(b)}function y(a){if(!a)return{text:a,hits:[]};let b=[],c=[];for(let d of String(a).split(/(?<=[。;])/u)){if(!d.trim()){c.push(d);continue}let a=function(a){let b=a,c=[];for(let a of w)b=b.replace(RegExp(a.source,"gu"),(a,b)=>{if(void 0!==b){let c=a.slice(a.lastIndexOf(b)+b.length);if(x(b,c))return a}return c.push({sample:a.trim(),family:"atlas"}),""});return{text:b,hits:c}}(d);b.push(...a.hits);let e=a.text.split(/([,,、;;])/u),f=[];for(let a=0;a<e.length;a+=2){let c=e[a]??"",d=c.trim()?function(a){for(let b of t)for(let c of a.matchAll(RegExp(b,"gu"))){let a=c[1];if(void 0===a)return"atlas";let b=c[0].slice(c[0].lastIndexOf(a)+a.length);if(!x(a,b))return"atlas"}return u.slice(t.length).some(b=>RegExp(b,"u").test(a))?"atlas":v.some(b=>RegExp(b,"u").test(a))?"drawing":null}(c):null;if(d){b.push({sample:c.trim().slice(0,60),family:d});continue}f.push(c);let g=e[a+1];g&&a+2<e.length&&f.push(g)}let g=f.join("").replace(/^[,,、]+/u,"").replace(/[,,、]+$/u,"");g.replace(/[。;;\s]/gu,"")&&c.push(g)}return{text:c.join("").replace(/[,,、;;]{2,}/gu,",").replace(/[,,、;;]\s*(?=[。;])/gu,"").replace(/\n{3,}/gu,"\n\n"),hits:b}}function z(a){let b=y(a);return{text:b.text,removed:b.hits.length}}function A(a){return y(a).hits.filter(a=>"atlas"===a.family).map(a=>a.sample)}},36366:(a,b,c)=>{c.d(b,{TD:()=>h,a1:()=>o,u:()=>n,y$:()=>l});var d=c(73024),e=c(48161),f=c(76760),g=c(22157);let h=.85,i=[{name:"工序主线",prompt:"以施工先后工序为主线组织内容,小节按施工流程推进顺序展开"},{name:"专业系统",prompt:"以专业系统构成为主线,按各专业分系统独立成节"},{name:"空间区段",prompt:"以施工区段、单体与平面分区为主线,按空间单元组织小节"},{name:"资源要素",prompt:"以人材机等生产要素配置为主线,按资源要素组织小节"},{name:"目标管控",prompt:"以质量、安全、工期等管控目标为主线,按目标维度组织小节"},{name:"接口协同",prompt:"以专业接口与协同配合为主线,按接口关系与穿插顺序组织小节"}],j=[{name:"直述事务",prompt:"小节标题采用惯例事务名词直述(如「编制说明与工程概况」)"},{name:"目标牵引",prompt:"小节标题以目标与结果词收尾(如「工期目标与进度保障」)"},{name:"流程管控",prompt:"小节标题突出流程与衔接(如「施工流程与工序衔接」)"},{name:"要素配置",prompt:"小节标题突出要素与资源配置(如「劳动力配置与组织」)"},{name:"系统专业",prompt:"小节标题突出系统构成与专业对象(如「测量控制网建立」)"}];function k(a){return`${Math.floor(a/j.length)}-${a%j.length}`}function l(a,b=[]){let c=i.length*j.length,d=Number.parseInt((0,g.c6)(String(a||"default-document")).slice(0,8),16)%c,e=new Set(b.filter(Boolean)),f=d;for(let a=0;a<c;a+=1){let b=(d+a)%c;if(!e.has(k(b))){f=b;break}}let h=i[Math.floor(f/j.length)],m=j[f%j.length];return{id:k(f),perspective:h.name,style:m.name,prompt:`本次文档系统性差异化设定(全文一以贯之,除非与模板锁定小节冲突):
2
+ - 组织主线:${h.prompt}。
3
+ - 命名风格:${m.prompt}。
4
+ 同一文档内不得混用多种命名风格。`}}function m(){let a=process.env.CUSTOMIZE_AGENT_HOME?f.join(process.env.CUSTOMIZE_AGENT_HOME,".customize-agent"):f.join(e.homedir(),".customize-agent");return f.join(a,"diversity-history.json")}function n(a){try{let b=m();if(!d.existsSync(b))return[];let c=JSON.parse(d.readFileSync(b,"utf8")),e=c?.history?.[a];return Array.isArray(e)?e.filter(a=>"string"==typeof a):[]}catch{return[]}}function o(a,b){try{let c=m();d.mkdirSync(f.dirname(c),{recursive:!0});let e={version:1,history:{}};if(d.existsSync(c))try{let a=JSON.parse(d.readFileSync(c,"utf8"));a&&"object"==typeof a&&a.history&&"object"==typeof a.history&&(e={version:1,history:a.history})}catch{}let g=(e.history[a]||[]).filter(a=>a!==b);e.history[a]=[b,...g].slice(0,12),d.writeFileSync(c,JSON.stringify(e,null,2),"utf8")}catch(a){console.error(`[diversity] 画像历史写入失败(不阻断生成):${a instanceof Error?a.message:String(a)}`)}}},38115:(a,b,c)=>{c.d(b,{G8:()=>n,JG:()=>i,SX:()=>l,UW:()=>j,qL:()=>m});var d=c(99956),e=c(70208),f=c(40299),g=c(36366),h=c(31129);function i(a){return(0,e.nz)(String(a||"")).replace(/[\s()()::.。;;,,、\-—·]/gu,"")}function j(a,b){let c=String(a||"").trim(),d=String(b||"").trim();if(!c)return d;if(!d)return c;let e=Math.min(c.length,d.length);for(let a=e;a>0;a-=1)if(c.slice(-a)===d.slice(0,a))return`${c.slice(0,-a)}${d}`;return`${c}${d}`}let k=["一","二","三","四","五","六","七","八","九","十"];function l(a){let b=a.map(a=>i(a.title)),c=new Map;for(let a of b)c.set(a,(c.get(a)||0)+1);let d=new Set,f=[];for(let g=0;g<a.length;g+=1){let h=a[g],l=String(h.title||"").trim();if((c.get(b[g])||0)>1){let a=String(h.owner||"").trim(),b=i(a);b&&!i(l).startsWith(b)&&(l=j(a,(0,e.nz)(l)))}let m=l,n=1;for(;d.has(i(m));)n+=1,m=`${l}(${k[n-1]||n})`;d.add(i(m)),f.push(m)}return f}function m(a){let b=(0,e.nz)(String(a||"")).replace(/\s+/gu,"");return!!(b.length<4||/^(.{2,5})\1$/u.test(b)||/(.)\1/u.test(b))}async function n(a){let b,c=a.blocks.map(a=>a.title),j=a.fingerprintPool?(0,h.F$)(c,a.fingerprintPool,{excludeDocumentId:a.excludeDocumentId}):[],k=c.filter(a=>m(a)),l=[...new Set([...j.map(a=>a.title),...k])];if(0===l.length)return{titles:c,renamed:0,summary:null};try{let c=await (0,d.bb)([(0,f.y4)("你是施工组织设计目录命名审查专家。"),"输入某章的小节标题清单与点名需改名的标题(与历史文档撞名或命名退化),只输出改名映射。","改名规则:只改点名标题,不改未点名标题;新标题必须仍是同一专业对象或同一工程内容的具体表述,不得改变小节实质;16 个汉字以内;不得仅通过添加“工作/内容/相关/方案”等尾词规避撞名,必须实质性更换措辞;不得与本章其他小节标题用词高度相似(防章内撞名)。",a.profile?a.profile.prompt:"","只返回 JSON。"].filter(Boolean).join("\n"),[`章标题:${a.chapterTitle}`,`本章小节清单:
5
+ ${a.blocks.map(a=>`- ${a.title}${a.pointTitles.length?`(要点:${a.pointTitles.slice(0,3).join("、")})`:""}`).join("\n")}`,`需要改名的标题:${l.join("、")}`,j.length?`历史撞名对照(本次 ↔ 历史文档):
6
+ ${j.map(a=>`「${a.title}」↔「${a.collidedWith}」`).join("\n")}`:"",k.length?`命名退化(重复/残片)标题:${k.join("、")}`:"",'JSON 格式:{"renames":{"原标题":"新标题"}}(只包含需要改名的标题)'].filter(Boolean).join("\n\n"),{maxTokens:800,temperature:g.TD,signal:a.signal,diagnostics:a.diagnostics});b=c?.renames&&"object"==typeof c.renames?c.renames:{}}catch(b){return console.error(`[naming] 定名轮调用失败(保留原命名):${a.chapterTitle},${b instanceof Error?b.message:String(b)}`),{titles:c,renamed:0,summary:null}}let n=0;for(let[d,f]of Object.entries(b)){let b=i(d);if(!b)continue;let g=c.flatMap((a,c)=>i(a)===b?[c]:[]);if(0===g.length||!l.some(a=>i(a)===b))continue;let j=(0,e.nz)(String(f||""));if(!(!j||j.length>24||m(j)||c.some((a,b)=>!g.includes(b)&&(0,h.gJ)(a,j)))&&(!a.fingerprintPool||!((0,h.F$)([j],a.fingerprintPool,{excludeDocumentId:a.excludeDocumentId}).length>0))){for(let a of g)c[a]=j;n+=1}}return 0===n?{titles:c,renamed:0,summary:null}:{titles:c,renamed:n,summary:`命名定名轮:改名 ${n} 个(撞名 ${j.length} 个/退化 ${k.length} 个信号)`}}},51144:(a,b,c)=>{function d(a,b,c,e="items"){let f=c.maxItems??Number.MAX_SAFE_INTEGER,g=c.maxChars??Number.MAX_SAFE_INTEGER,h=c.charFn??(a=>JSON.stringify(a).length),i=a.map(a=>({item:a,score:b(a)}));i.sort((a,b)=>b.score-a.score);let j=[],k=[],l=0;for(let{item:a}of i){let b=h(a);j.length<f&&l+b<=g?(j.push(a),l+=b):k.push(a)}let m=[];if(k.length>0){for(let a of(m.push(`[selection] ${e}: 预算 ${f}项/${g}字符 → 选中 ${j.length}项(${l}字符),丢弃 ${k.length}项`),k.slice(0,10))){let b="string"==typeof a?a.slice(0,80):JSON.stringify(a).slice(0,80);m.push(` - 丢弃: ${b}`)}k.length>10&&m.push(` ... 及其他 ${k.length-10} 项`)}return{selected:j,dropped:k,droppedLog:m}}function e(a){let b=0,c=a.length;return 0===c?0:(b+=3*(a.match(/\d+(?:\.\d+)?/gu)||[]).length,/m[23²³]?|mm|cm|km|t|kg|台|套|个|项|批|次|份|人|日历天|天|月|万元|元|%|MPa|kPa|kN|℃/iu.test(a)&&(b+=2),/GB|JGJ|ISO|CJJ|CECS|DL|YB|SH|HG|SY|NB/iu.test(a)&&(b+=3),/验收|质量|安全|工期|进度|成本|风险|危大|重点|难点|关键|控制|标准|规范|设计|施工|材料|设备/u.test(a)&&(b+=1),c<20&&(b-=1),/项目名称|工程名称|招标人|建设地点|计划工期|质量标准|合同估算/u.test(a)&&(b+=2),b)}c.d(b,{C:()=>d,O:()=>e})},54451:(a,b,c)=>{c.d(b,{$X:()=>n,D:()=>y,II:()=>x,Iw:()=>A,Kj:()=>p,Nz:()=>s,Su:()=>j,Tl:()=>l,Z9:()=>z,dn:()=>w,kI:()=>k,mI:()=>q,nY:()=>t,p$:()=>o});var d=c(16698);let e=Object.freeze({maxTurnsPerBlock:4,maxToolCallsPerBlock:12,maxCallsPerChapter:120,maxCallsPerDocument:800,maxTokensPerDocument:3e6,maxWallClockPerChapterMs:9e5,noImprovementRounds:2}),f=0;function g(){return{budget:{...e},documentCalls:0,documentTokens:0,cacheHitTokens:0,cacheMissTokens:0,documentCostUsd:0,unpricedCalls:0,stops:[],id:f+=1}}let h=new WeakMap,i=g();function j(a){if(!a)return i;let b=h.get(a);return b||(b=g(),h.set(a,b)),b}function k(a,b,c=process.env){return a.budgetAssembled||(a.budgetAssembled=!0,a.budget=l(c),void 0!==b&&(a.costCeilingUsd=b)),a}function l(a=process.env){let b=(b,c)=>{let d=Number(a[b]);return Number.isFinite(d)&&d>=1?Math.floor(d):c};return{maxTurnsPerBlock:b("AGENT_MAX_TURNS_PER_BLOCK",e.maxTurnsPerBlock),maxToolCallsPerBlock:b("AGENT_MAX_TOOL_CALLS_PER_BLOCK",e.maxToolCallsPerBlock),maxCallsPerChapter:b("AGENT_MAX_CALLS_PER_CHAPTER",e.maxCallsPerChapter),maxCallsPerDocument:b("AGENT_MAX_CALLS_PER_DOCUMENT",e.maxCallsPerDocument),maxTokensPerDocument:b("AGENT_MAX_TOKENS_PER_DOCUMENT",e.maxTokensPerDocument),maxWallClockPerChapterMs:b("AGENT_CHAPTER_TIMEOUT_MS",e.maxWallClockPerChapterMs),noImprovementRounds:b("AGENT_NO_IMPROVEMENT_ROUNDS",e.noImprovementRounds)}}let m=new d.AsyncLocalStorage;function n(a,b){var c;let d=j(a.instance);(c={budget:a.budget,costCeilingUsd:a.costCeilingUsd}).budget&&(d.budget={...d.budget,...c.budget},d.budgetAssembled=!0),void 0!==c.costCeilingUsd&&(d.costCeilingUsd=c.costCeilingUsd,d.budgetAssembled=!0);let e={id:a.chapterId,calls:0,tokens:0,startedAt:a.now??Date.now(),refusals:0,meterId:d.id,lastProgressAt:a.now??Date.now()};return m.run({meter:d,record:e},b)}function o(a=Date.now()){let b=m.getStore()?.record;b&&(b.lastProgressAt=a)}function p(){return m.getStore()?.record}function q(){return m.getStore()?.meter}function r(a,b,c=Date.now()){if(!a)return;if(a.stop)return a.stop;if(a.calls>=b.maxCallsPerChapter)return{kind:"chapter-calls",scope:"chapter",escalation:"unfixable",observed:a.calls,limit:b.maxCallsPerChapter,message:`章预算耗尽(本章 LLM 调用 ${a.calls}/${b.maxCallsPerChapter}):本章停止续写,已产出块保留`};let d=c-(a.lastProgressAt??a.startedAt);if(d>=b.maxWallClockPerChapterMs)return{kind:"chapter-wall-clock",scope:"chapter",escalation:"unfixable",observed:Math.round(d),limit:b.maxWallClockPerChapterMs,message:`章内停滞超时(${Math.round(d/1e3)}s 无进展,上限 ${Math.round(b.maxWallClockPerChapterMs/1e3)}s;本章总耗时 ${Math.round((c-a.startedAt)/1e3)}s):本章停止续写,已产出块保留`}}function s(a=process.env){let b=a.AGENT_BUDGET_CACHE_HIT_WEIGHT;if(void 0===b||""===b.trim())return 1;let c=Number(b);return!Number.isFinite(c)||c<0||c>1?1:c}function t(a){return a.documentStop?a.documentStop:a.documentCalls>=a.budget.maxCallsPerDocument?{kind:"document-calls",scope:"document",escalation:"C",observed:a.documentCalls,limit:a.budget.maxCallsPerDocument,message:`文档预算耗尽(全文 LLM 调用 ${a.documentCalls}/${a.budget.maxCallsPerDocument}):停止生成;已完成的块与章保留交付,未完成的按缺章进交付复核清单`}:a.documentTokens>=a.budget.maxTokensPerDocument?{kind:"document-tokens",scope:"document",escalation:"C",observed:a.documentTokens,limit:a.budget.maxTokensPerDocument,message:`文档 token 预算耗尽(${a.documentTokens}/${a.budget.maxTokensPerDocument}${function(a){let b=a.cacheHitTokens+a.cacheMissTokens;return b<=0?"":`,其中输入 ${a.cacheHitTokens.toLocaleString()}/${b.toLocaleString()} 为缓存命中(${(100*a.cacheHitTokens/b).toFixed(1)}%;本仓价格表无缓存价目来源,预算按全价计)`}(a)}):停止生成;已完成的块与章保留交付,未完成的按缺章进交付复核清单`}:void 0!==a.costCeilingUsd&&a.documentCostUsd>a.costCeilingUsd?{kind:"cost-ceiling",scope:"document",escalation:"C",observed:a.documentCostUsd,limit:a.costCeilingUsd,message:`单文档成本上限触发($${a.documentCostUsd.toFixed(4)} > $${a.costCeilingUsd}):C 级升级并停止生成;已完成的块与章保留交付,未完成的按缺章进交付复核清单`}:void 0}function u(a){let b=p();return b&&b.meterId===a.id?b:void 0}function v(a,b){a.stops.some(a=>a.kind===b.kind)||a.stops.push(b)}function w(a,b){let c=Number.isFinite(b.tokens)&&(b.tokens||0)>0?Math.floor(b.tokens):0;a.documentCalls+=1,a.documentTokens+=c,Number.isFinite(b.cacheHitTokens)&&(b.cacheHitTokens||0)>0&&(a.cacheHitTokens+=Math.floor(b.cacheHitTokens)),Number.isFinite(b.cacheMissTokens)&&(b.cacheMissTokens||0)>0&&(a.cacheMissTokens+=Math.floor(b.cacheMissTokens)),void 0!==b.costUsd&&(a.documentCostUsd+=b.costUsd),!1===b.priced&&(a.unpricedCalls+=1);let d=u(a);d&&(d.calls+=1,d.tokens+=c);let e=t(a)??r(d,a.budget,b.now);return e&&(v(a,e),"chapter"===e.scope&&d?d.stop=d.stop??e:a.documentStop=a.documentStop??e),e}function x(a,b=Date.now()){if(a===i)return;let c=u(a),d=t(a)??r(c,a.budget,b);if(d)return"chapter"===d.scope&&c?c.stop=c.stop??d:a.documentStop=a.documentStop??d,v(a,d),d}function y(a){let b=u(a);b&&(b.refusals+=1)}function z(a,b=Date.now()){return u(a)?.stop??r(u(a),a.budget,b)}function A(a){return u(a)?.refusals??0}},70933:(a,b,c)=>{c.d(b,{A1:()=>A,Pc:()=>y,QO:()=>x,QR:()=>v,R7:()=>F,eE:()=>m,ks:()=>E,oW:()=>o});var d=c(76760),e=c(77598),f=c(58965),g=c(18274),h=c(91977),i=c(51144),j=c(80572),k=c(31920);function l(a,b=0){let c="drawing"===a.processingType||a.roleId?.includes("drawing")?"视觉资料":"table"===a.processingType||a.roleId?.includes("bill")?"表格资料":"rule"===a.processingType||a.roleId?.includes("tender")?"规则资料":"文本资料";return`${c}片段${b+1}${a.sectionTitle?`(${a.sectionTitle.replace(f.tK,"")})`:""}`}function m(a){return(0,k.W)([...a].filter(a=>{let b=a.charCodeAt(0);return 9===b||10===b||13===b||b>=32}).join("").replace(f.VX,"").replace(f.tK,"").replace(/\b(?:Model|Layout\d*|Entity|Handle|ObjectId|ByLayer|Continuous)\b/giu,"").replace(/[\t ]{2,}/gu," ").replace(/\n{3,}/gu,"\n\n").trim())}function n(a){let b=m(a),c=Math.max(1,b.length),d=(b.match(/[\u4e00-\u9fa5]/gu)||[]).length,e=(b.match(/\d/gu)||[]).length,f=(b.match(/项目|任务|质量|安全|周期|验收|材料|设备|表格|数据|参数|规范|标准|流程|资源|风险/gu)||[]).length,g=(b.match(/CAD|AcDb|Polyline|ByLayer|ObjectId|Handle|Model|Layout|图层|页码|第\s*\d+\s*页|打印|版权所有|^[\s\W\d_]+$/gimu)||[]).length,h=(b.match(/(?:序号|项目名称|事项|单位|数量|单价|金额|备注)/gu)||[]).length,i=Math.min(1,d/c*.7+Math.min(.3,(e+3*f)/120)),j=Math.min(1,.18*g+.04*Math.max(0,h-8)+.35*(d/c<.25));return{noiseScore:j,factDensity:i,shouldUse:b.length>=30&&j<.72&&i>.08}}function o(a){let b=[...new Set(m(a).split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>{let b=/计划工期|合同工期|工期|合同估算价|合同估算价格|投资估算|估算价格|工程估算价|最高投标限价|招标控制价|建设地点|建设规模|质量标准/u.test(a);if(!b&&/综合单价|合价|报价明细|投标报价|税率|增值税|利润|预留金|暂列金额|结算/u.test(a))return!1;let c=g.yw.test(a),d=/(?:GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO|IEC)\s*[\w./-]*\d/u.test(a),e=/项目|工程|工期|合同|估算|价格|地点|规模|清单|图纸|设计|规格|型号|数量|单位|材料|设备|管|线|电缆|混凝土|钢筋|砌体|门窗|防水|标准|规范|验收|做法|参数|尺寸|标高|厚度|强度|等级|系统|安装/u.test(a);return b||c||d||e&&/\d/u.test(a)&&a.length<=260}))].map(a=>(function(a){if(a.length<=160)return a;let b=a.match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|(?:计划工期|合同工期|合同估算价|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准)[^。;;,,]{0,40}|(?:GB|JGJ|CJJ|DB|CECS|ISO|IEC)\s*\/?\s*T?\s*[\w./-]*\d/gu);return b&&b.length>0?[...new Set(b)].join(";"):a.slice(0,160)})(a)).filter(Boolean);return(0,i.C)([...new Set(b)],a=>(0,i.O)(a),{},"key-fact-lines").selected.join("\n")}let p=/项目名称|工程名称|项目编号|招标项目编号|标段编号|招标人|建设单位|发包人|建设地点|工程地点|建设规模|建筑面积|招标范围|计划工期|合同工期|总工期|周期要求|质量标准|质量目标|安全目标|安全生产|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|工程估算价|结构形式|层数|建筑高度|基础形式|抗震设防|绿色建筑等级|装配率|支护形式|质保期|质量保修|投标有效期/u;function q(a){let b=a.processingType||"";return"table"===b||b.includes("bill")||"structured_data"===b||!!a.roleId?.includes("bill")}function r(a){return a.length>200?`${a.slice(0,200)}…`:a}let s=[{re:/基坑底标高|换填底标高|整平标高|开挖深度|放坡系数|支护形式|坡率/u,value:20},{re:/标高/u,value:10},{re:/[±+]\s*0[.,]0{2,}/u,value:8},{re:/[±+-]\s*\d+\.\d{2,}/u,value:3}];function t(a,b){return"drawing"===a.processingType||".dwg"===d.extname(a.filePath).toLowerCase()||/资料类型:\s*cad/iu.test(b)}function u(a,b){let c=Math.max(400,Math.floor(b)),d=m(a);if(d.length<=c)return d;let e=d.split("\n"),f=e.map((a,b)=>{let c=0;for(let{re:b,value:d}of s)if(b.test(a)){c=d;break}return{line:a,index:b,value:c}}).filter(a=>a.value>0);if(!f.length)return d.slice(0,c);f.sort((a,b)=>b.value-a.value||a.index-b.index);let g=d.slice(0,Math.min(300,Math.max(80,Math.floor(.22*c)))).trimEnd(),h=`(超长证据参数窗口提取:${f.length} 行参数命中,尾部关键参数已前置展示)`,i=c-g.length-h.length-4,j=[],k=new Set,l=Math.max(50,Math.floor(.15*c));for(let{line:a,index:b}of f){if(i<=30)break;if(k.has(b))continue;let c=b>0&&/图纸节点:/u.test(e[b-1])?e[b-1].slice(0,l):"",d=[c,a].filter(Boolean).join("\n"),f=d.length>i?d.slice(0,i):d;j.push(f),i-=f.length+1,k.add(b),c&&k.add(b-1)}let n=j.length?j.join("\n"):d.slice(0,i+g.length),o=`${g}
7
+ ${h}
8
+ ${n}`;return o.length>c?o.slice(0,c):o}function v(a,b={},c){let f=Number.isFinite(b.maxItems)&&b.maxItems>0?Math.floor(b.maxItems):void 0,g=Number.isFinite(b.maxChars)&&b.maxChars>0?Math.floor(b.maxChars):void 0,h=function(a,b,c){let f=new Set,g=a.map(a=>{let b=function(a,b){let c=d.extname(a).toLowerCase(),e=m(b).split("\n").map(a=>a.trim()).filter(a=>a&&!/^第\s*\d+\s*页\s*(?:共\s*\d+\s*页)?$/u.test(a)).join("\n"),f=n(e);if(e.length>20&&f.shouldUse)return e;let g=o(e);return g.length>20?`资料参数行摘要:
9
+ ${g}`:e.length>80&&f.noiseScore<.9?e:[".pdf",".doc",".docx",".xls",".xlsx",".png",".jpg",".jpeg",".webp",".dwg"].includes(c)?`该资料为${c.replace(".","").toUpperCase()}格式附件,仅作为内部事实提取依据;正式正文不得引用文件名。`:e}(a.filePath,a.content),c=n(b);return{item:{...a,content:b,score:a.score*(1+c.factDensity)*(1-.45*c.noiseScore)},quality:c}}),h=[],i=[],j=[];for(let a of g){var k,l;(k=a.item,l=a.item.content,a.quality.shouldUse||/附件,仅作为内部事实提取依据/u.test(l)||t(k,l)&&l.split("\n").some(a=>s.some(({re:b})=>b.test(a))))?(h.push(a),!a.quality.shouldUse&&t(a.item,a.item.content)&&j.push(a.item.filePath)):i.push(a)}j.length&&console.warn(`[evidence] drawing 类证据按图纸参数判据放行(散文噪声判据不适用):${j.slice(0,5).join("、")}${j.length>5?` 等 ${j.length} 条`:""}`);let p=Math.min(3,a.length),q=Number.isFinite(b)&&b>0?Math.ceil(b):void 0,r=h.sort((a,b)=>b.item.score-a.item.score).filter(a=>{let b=function(a){let b=a.content.replace(/\s+/gu," ").trim();return`${a.filePath}:${a.sectionTitle||""}:${(0,e.createHash)("sha1").update(b).digest("hex")}`}(a.item);return!f.has(b)&&(f.add(b),!0)}),u=q?r.slice(0,q):r;if(c){let b=g.reduce((a,b)=>a+b.quality.noiseScore,0),d=g.reduce((a,b)=>a+b.quality.factDensity,0);c.evidence.raw+=a.length,c.evidence.used+=u.length,c.evidence.filteredNoise+=Math.max(0,g.length-h.length),c.evidence.avgNoiseScore=g.length?Number((b/g.length).toFixed(3)):0,c.evidence.avgFactDensity=g.length?Number((d/g.length).toFixed(3)):0}return h.length<p&&console.warn(`[evidence] 质量门通过条目不足(${h.length}/${p},未过门 ${i.length} 条,共 ${a.length} 条):按通过条目成池(不外溢未过门条目),短缺见诊断 filteredNoise`,i.slice(0,3).map(a=>a.item.filePath)),u.map(a=>a.item)}(a,void 0,c),i=b.preservePinned?h.filter(a=>"pinned-evidence"===a.source||"bound-file"===a.source||"required-fact-evidence"===a.source):[],j=h.filter(a=>!i.includes(a)),k=[],l=0,p=(a,b=!1)=>{if(f&&k.length>=f)return;let c=m(a.content);g&&c.length>4e3&&(c=u(c,Math.min(12e3,g)));let d=l+c.length;g&&k.length>0&&d>g||(k.push({...a,content:c}),l=d)};for(let a of i)p(a,!0);for(let a of j)p(a);return c&&(c.evidence.budgetDropped+=Math.max(0,h.length-k.length)),k}function w(a,b){if(a.filePath!==b.filePath)return a.filePath<b.filePath?-1:1;let c=a.sectionTitle||"",d=b.sectionTitle||"";return c!==d?c<d?-1:1:a.content.length!==b.content.length?a.content.length-b.content.length:a.content!==b.content?a.content<b.content?-1:1:0}function x(a,b){let c=[...b].sort(w),e=new Map;for(let b of c){let c=function(a,b){let c=d.extname(a).toLowerCase();return"drawing"===b||/地图|map|drawing|design/iu.test(a)?"map":[".png",".jpg",".jpeg",".webp"].includes(c)?"image":"table"===b?"table":[".xls",".xlsx",".csv"].includes(c)?"spreadsheet":[".pdf",".doc",".docx"].includes(c)?"document":c&&![".md",".txt"].includes(c)?"attachment":"text"}(b.filePath,b.processingType),f=e.get(b.filePath)||{filePath:b.filePath,kind:c,roleId:b.roleId,processingType:b.processingType,score:b.score,semanticTitle:function(a,b){let c=d.basename(a).replace(/\.[^.]+$/u,"");return"map"===b?c.replace(/^地图-/u,"").replace(/-完整地图$/u,"完整地图"):"image"===b?c.replace(/-/gu," "):"spreadsheet"===b?`${c}(结构化表格)`:"document"===b?`${c}(文档附件)`:c}(b.filePath,c),contentUse:"map"===c?"作为视觉/地图证据,用于说明空间关系、区域划分、点位、路线或布局。":"image"===c?"作为图片证据,用于视觉说明、参考图或章节配图。":"spreadsheet"===c||"table"===c?"作为表格/数据证据,用于字段对比、明细、数量和结构化结论。":"document"===c?"作为 PDF/Word 文档证据,用于提取规范、事实、说明、约束和附件来源。":"attachment"===c?"作为附件证据,用于提供补充来源、文件级约束或可追溯引用。":"作为文本证据,用于事实抽取、章节论据和来源引用。",relatedFacts:[],relatedChapters:[],snippets:[]};f.score=Math.max(f.score,b.score),f.relatedFacts=[...new Set([...f.relatedFacts,...function(a,b){let c=`${a.filePath}
10
+ ${a.content}`;return[...new Set([...b?.requiredFacts||[],"表格数据","规范要求","基础事实","附件资料","视觉资料","图片资料"].filter(b=>(0,h.Lk)(a,b)||c.includes(b)))]}(b,a)])],f.relatedChapters=[...new Set([...f.relatedChapters,a.title])];let g=b.content.replace(/\s+/gu," ");g&&!f.snippets.includes(g)&&f.snippets.push(g),e.set(b.filePath,f)}let f=[...e.values()].sort((a,b)=>b.score-a.score),g={map:[],image:[],table:[],document:[],spreadsheet:[],text:[],attachment:[]};for(let a of f)g[a.kind].push(a);let i=[`绑定材料包:文本片段 ${c.length} 条、结构化材料 ${f.length} 个。`,`材料类型分布:文本 ${g.text.length}、文档 ${g.document.length}、表格/数据 ${g.spreadsheet.length+g.table.length}、图片 ${g.image.length}、视觉/地图 ${g.map.length}、其他 ${g.attachment.length}。`,"正文必须只写材料中的事实、参数、数量、做法和要求,不得出现文件名、来源清单或后台证据描述。"].filter(Boolean).join("\n");return{chapterId:a.id,textEvidence:c,resources:f,byKind:g,summary:i}}function y(a,b=8e3,c=24e3){let d=Number.isFinite(a)&&a>0?Math.ceil(a):1200,e=(0,j.z)().evidenceBudgetCeiling,f=Number.isFinite(e)&&e>0?Math.floor(e):c,g=(0,j.z)().evidenceBudgetRatio;return Math.min(Math.max(b,Math.min(f,Math.ceil(d*(Number.isFinite(g)&&g>0?g:8)))),Number.isFinite(e)&&e>0?1/0:12e3)}function z(a,b,c,d){let e=b.trim();if(!e)return;let f=Number.isFinite(d)&&0===d;if(null==d||!f&&c.chars+e.length<=d){a.push(e),c.chars+=e.length;return}c.omitted+=1}function A(a,b){let c=`${a.sectionTitle||""}
11
+ ${a.content}`,d=a.score;for(let e of(g.sv.test(c)&&(d+=8),/计划工期|合同工期|合同估算价|合同估算价格|投资估算|最高投标限价|招标控制价|建设地点|建设规模|质量标准|招标范围/u.test(c)&&(d+=10),b))e&&(c.includes(e)||(0,h.Lk)(a,e))&&(d+=6);return/GB\s*\/?\s*T?|JGJ|CJJ|DB\s*\/?\s*T?|CECS|ISO/iu.test(c)&&(d+=3),d}function B(a,b,c,d,e=6){let f={chars:0,omitted:0},g=[],h=new Set,i=new Map,j=[...a].sort((a,b)=>d(b)-d(a));for(let a of j){if(i.has(a.filePath))continue;let d=g.length;z(g,c(a,g.length),f,b),g.length>d&&(i.set(a.filePath,1),h.add(a))}for(let a of j){if(h.has(a))continue;let d=i.get(a.filePath)||0;if(e>0&&d>=e)continue;let j=g.length;z(g,c(a,g.length),f,b),g.length>j&&(i.set(a.filePath,d+1),h.add(a))}return{lines:g,omittedItems:j.filter(a=>!h.has(a)),omitted:f.omitted}}function C(a,b,c=300){let d,e=m("content"in a?a.content:a.snippets[0]||"").replace(/\s+/gu," ").trim();return d=e.length>c?e.length>4e3?u(e,c):(()=>{let a=Math.floor(.7*c),b=c-a-1;return`${e.slice(0,a)}…${e.slice(-b)}`})():e,`- [${b}] ${l(a)}${d?`|${d}`:""}`}function D(a,b,c,d=!1,e,g=!1,h=!1){let k=g&&e?a.textEvidence.filter(a=>e(a)>0):[],n=[...new Set((k.length>0?k:a.textEvidence).flatMap(a=>o(a.content).split("\n").filter(Boolean)))],s=d?[]:n.filter(a=>p.test(a)).map(r),t=n.filter(a=>!p.test(a)),v=d?[...t].sort((a,b)=>(0,i.O)(b)-(0,i.O)(a)).slice(0,24):t,w=b?Math.floor(.6*b):void 0,x=s,y=0;if(w&&x.join("\n").length>w){let a=(0,i.C)(x,a=>(0,i.O)(a),{maxChars:w},"t0-fact-lines");y=a.dropped.length,x=a.selected}let z=x.length?`【关键事实层——来自绑定材料的数值、参数与标准编号,正文必须原样落位,不得改写、不得编造层内没有的数值】
12
+ ${x.map(a=>`- ${a}`).join("\n")}${y>0?`
13
+ (事实行总量超出预算上限,已按重要性保留前 ${x.length} 行)`:""}`:"",E=b?b-z.length:void 0;void 0!==E&&void 0!==b&&E<Math.min(2e3,b)&&(E=Math.min(2e3,b));let F=g&&e?a.resources.filter(b=>b.snippets.some(c=>e({chapterId:a.chapterId,filePath:b.filePath,score:b.score,content:c})>0)):a.resources,G=B(F.length>0?F:a.resources,E?Math.floor(.35*E):void 0,(a,b)=>[`- 资料:${l(a,b)}`,` 资料类型:${a.kind}`,` 正文用途:${a.contentUse}`,a.relatedFacts.length?` 可用事实方向:${a.relatedFacts.join("、")}`:"",a.snippets.length?` 可用内容:${a.snippets.map(m).filter(Boolean).join(" / ")}`:""].filter(Boolean).join("\n"),a=>a.score),H=g&&e?a.textEvidence.filter(a=>e(a)>0):a.textEvidence,I=g&&0===H.length?a.textEvidence:H,J=I.filter(a=>q(a)),K=I.filter(a=>!q(a)),L=E?Math.floor(.65*E):void 0,M="",N=L;if(v.length>0){let a=(0,i.C)(v,a=>(0,i.O)(a),{maxChars:L},"t0-demoted-fact-lines");a.selected.length>0&&(M=`工艺参数与规范事实行(按相关度排序):
14
+ ${a.selected.map(a=>`- ${a}`).join("\n")}${a.dropped.length>0?`
15
+ (另有 ${a.dropped.length} 行因预算省略,完整事实仍参与检索与质量校验)`:""}`,void 0!==N&&(N=Math.max(0,N-M.length)))}let O="",P=[];if(J.length>0){let a=B(J,void 0!==N?Math.min(4e3,N):4e3,(a,b)=>{let c=m(a.content),d=c.length>3e3?u(c,3e3):c;return`${l(a,b)}
16
+ 类型:${a.processingType||"table"}
17
+ 章节/片段:${a.sectionTitle?.replace(f.tK,"")||"资料片段"}
18
+ 内容(清单/表格行数据:条目名、特征、工程量与单位必须逐项照抄原值,不得改写、不得编造):
19
+ ${d}`},a=>A(a,c)+(e?e(a):0),0);P=a.omittedItems,a.lines.length&&(O=`表格/清单原文:
20
+ ${a.lines.join("\n\n---\n\n")}`,void 0!==N&&(N=Math.max(0,N-O.length)))}let Q=B(K,N,(a,b)=>{let c=m(a.content),d=c.length>1200?u(c,1200):c;return`${l(a,b)}
21
+ 类型:${a.processingType||"reference"}
22
+ 章节/片段:${a.sectionTitle?.replace(f.tK,"")||"资料片段"}
23
+ 内容:
24
+ ${d}`},a=>A(a,c)+(e?e(a):0)),R=[];G.lines.length&&R.push(`结构化资料:
25
+ ${G.lines.join("\n")}`),M&&R.push(M),O&&R.push(O),Q.lines.length&&R.push(`文本/附件片段:
26
+ ${Q.lines.join("\n\n---\n\n")}`);let S=R.join("\n\n"),T=[...G.omittedItems,...P,...Q.omittedItems],U=(0,j.z)().evidenceCatalogMaxLines||40,V=Number.isFinite(U)&&U>0?Math.floor(U):40,W=h?[]:T,X=W.slice(0,V).map((a,b)=>C(a,b)),Y=W.slice(V),Z=[],$=0;for(let[a,b]of Y.entries()){let c=l(b,a);if($+c.length+1>1200)break;Z.push(c),$+=c.length+1}let _=Y.length>0?`- 另有 ${Y.length} 条未注入(完整片段仍参与后续检索与质量校验)${Z.length>0?`;其中来源可列部分:${Z.join("、")}${Z.length<Y.length?` 等 ${Y.length} 条`:""}`:""}`:"",aa=X.length?`【证据目录——未全文注入的片段压缩摘要(按重要性保留前 ${X.length} 条${T.length>X.length?`,另有 ${T.length-X.length} 条未注入`:""};正文可引用摘要内事实,不得编造摘要外的细节;完整片段仍参与后续检索与质量校验)】
27
+ ${[...X,_].filter(Boolean).join("\n")}`:"",ab=T.reduce((a,b)=>a+("content"in b?b.content.length:(b.snippets[0]||"").length),0),ac={t0Chars:z.length,t1Chars:S.length,t2Lines:X.length,t2Chars:aa.length,omittedChars:ab,omittedCount:T.length};return{t0Text:z,t1Text:S,t2Text:aa,omittedNote:ac.omittedCount>0?`提示:完整证据池仍保留 ${a.textEvidence.length} 条文本片段、${a.resources.length} 个结构化材料;本次已注入关键事实层 ${ac.t0Chars} 字(数值参数全量)与高相关片段 ${ac.t1Chars} 字,另有 ${ac.omittedCount} 条片段(${ac.omittedChars} 字)仅以目录索引呈现,将在章节/小节相关检索和质量校验中继续参与。`:"",stats:ac}}function E(a,b={}){let c=D(a,Number.isFinite(b.maxChars)&&b.maxChars>0?Math.ceil(b.maxChars):void 0,b.requiredFacts||[],!!b.skipT0,b.rankBoost,!!b.onlyRankBoosted,!!b.skipT2Catalog);if(b.diagnostics){let a=b.diagnostics.evidence;a.t0Chars+=c.stats.t0Chars,a.t1Chars+=c.stats.t1Chars,a.t2Lines+=c.stats.t2Lines,a.omittedChars+=c.stats.omittedChars}return[a.summary,c.t0Text,c.t1Text,c.t2Text,c.omittedNote].filter(Boolean).join("\n\n")}function F(a,b,c){let d=Number.isFinite(c)&&c>0?Math.floor(c):8e3,e=D(a,Math.floor(.5*d),b,!1),f=Math.max(1500,d-e.t0Text.length),g=B(a.textEvidence,f,(a,b)=>{let c=m(a.content),d=c.length>300?`${c.slice(0,300)}…`:c;return`- [${b}] ${l(a)}|${d}`},a=>A(a,b)),h=g.lines.length?`【章级证据摘要池——全章证据要点概览(正文事实必须以关键事实层与绑定材料为准,摘要仅供定位材料方向)】
28
+ ${g.lines.join("\n")}`:"",i=g.omittedItems.slice(0,40).map((a,b)=>C(a,b,60)),j=i.length?`【证据目录——未进摘要池的片段索引(正文写作不使用目录内容;完整片段仍参与后续检索与质量校验)】
29
+ ${i.join("\n")}`:"";return[e.t0Text,h,j].filter(Boolean).join("\n\n")}},71001:(a,b,c)=>{c.d(b,{EN:()=>m,Kg:()=>F,My:()=>B,SP:()=>D,av:()=>n,c_:()=>y,eB:()=>t,el:()=>z,k2:()=>C,kw:()=>q,tQ:()=>p});var d=c(78217),e=c(70933),f=c(99956),g=c(70208),h=c(40299),i=c(54185),j=c(38115),k=c(31129),l=c(36366);function m(a){return a.replace(/(.*?)(.{2,4})\2$/u,"$1$2")}function n(a,b){let c=`${a} ${b}`,d=[/项目主要施工内容/u.test(c)?"每个施工工作包(#### 工作包名)必须逐包覆盖三方面要素:①作业对象与工程量(本项目部位、规模、系统边界,工程量数值与工程量清单汇总值一致)、②工序顺序(先后清晰,至少 1 处不少于 4 个环节的工序顺序表达)、③施工方法(工具机具、工艺参数、验收闭环);只写流程不写概况、或只列方法不写流程的工作包会被退回重写;每个专业工程单独一个小节,不得把所有专业工程合并;不得以表格代替叙述(正文表格须来自系统表格计划,不得自设),严禁出现“分部小计/本页小计/合计/按实/暂估/综合单价/措施项目费/规费/税金”等清单计价表内部口径词(“措施项目”作为专业工程类别名称可用,不得与“清单/计价/费”连用)。":"",/劳动力/u.test(a)&&/资源配置/u.test(b)?"本节是劳动力章内的资源配置计划:只写劳动力资源,不得写机械设备、材料物资(由物资/机械章承担)——必须展开①工种结构与人数(钢筋工/木工/瓦工/普工等各工种人数,来自绑定资料,无资料时按本项目工程量与总工期推导并写明推导依据)②分阶段劳动力投入计划(施工准备/主体/收尾各阶段进退场人数与班组数,可用表格)③作业面/施工段配员与班组划分④劳动力来源、组织与工资保障措施。每个数值必须可溯源(资料事实或推导说明),禁止只写“合理配置劳动力”“满足施工需要”等空泛表述。":"",/工程特点|施工条件|重难点|难点/u.test(c)?"必须写出本工程的重难点分析:每条重难点按“名称+形成原因(归因)+影响范围+专项措施+量化控制目标(数值+单位,如控制率%/偏差mm/频次每日1次)”展开,可附「重难点识别表」(表头:重难点|形成原因|影响范围|专项措施|责任岗位,数据行至少3条,每条必须写形成原因);禁止只写“本项目存在XX难点”而不写原因与对策。":"",/概况|工程|项目/u.test(c)?"必须落入项目名称、范围、地点、规模、工期、质量目标等资料事实;说明编制边界。":"",/部署|总体|组织/u.test(c)?"必须说明施工组织逻辑、施工段/专业接口、资源进场和管理闭环。":"",/进度|工期/u.test(c)?"必须围绕总工期、关键线路、资源保障、穿插施工和纠偏机制展开。":"",/质量/u.test(c)?"必须覆盖材料验收复验、过程检查、隐蔽验收、整改复验和质量资料归档。":"",/安全|文明|风险|危大/u.test(c)?"必须覆盖风险识别、人员设备、临电消防、现场文明、检查整改和应急响应。":"",/资源|材料|设备|劳动力/u.test(c)?"必须说明资源配置依据、进场验收、保管调配,并与工期和质量目标一致。":"",/劳务|农民工|用工|工资|工伤/u.test(c)?"劳务用工/工资类内容必须写入政策合规硬项:按规定为全体作业人员办理工伤保险(保险费用由企业承担并计入投标报价,进场前完成参保并留存缴费凭证);农民工工资实行专用账户与总包代发、按月足额支付,写清实名制用工与进场登记。不得只写“依法用工”“按时发放工资”等无落实细节的表述。":"",/施工|工艺|技术|方案/u.test(c)?"必须写清施工准备、工艺流程、关键控制点、验收要求和资料依据;每个分项工程方案必须落位至少 4 个工艺参数(mm、MPa、间距、偏差、坡度、养护天数、试验压力、搭接长度等),参数来自绑定资料或行业通用规范值,不得编造;纯设备配置型内容必须写型号、规格、容量、数量参数。工序顺序表达:工艺流程必须有明确的工序顺序表达(系统已为各小节指定表达方式;相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每个含方法叙述的三级小节方法段正文至少 1 处不少于 4 个环节的工序顺序表达,不得只在单独的流程行出现。":"",/流程|顺序|工序|穿插|闭环|整改|演练|转运|三检|隐蔽|排查/u.test(c)?"流程/顺序型叙述必须有明确的工序顺序表达(相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),每条序列不少于 3 个环节,把纯文字流程描述改写成分步清晰、衔接自然的表达,正文中至少 2 处工序顺序表达。":""].filter(Boolean),e=d.find(a=>a.includes("工序顺序表达"));return["【小节专业任务卡】",`任务对象:${b}`,...d.length?d:["必须结合本项目资料明确事实说明对象范围、实施方法、控制要点、验收要求和资料闭环,避免泛化套话。"],...e?["工序顺序表达是硬性内容要求:正文成稿必须实际出现工序顺序表达(系统已为各小节指定表达方式;相邻小节不得同句式开头,同一句式全文不得反复使用,禁止以固定句模复读),评审将核验,未达标会被退回重写。"]:[],"禁止套话:不得使用“本小节围绕……展开”“结合绑定项目资料、施工组织安排和现场实施条件”“交底覆盖率按100%控制”等模板化开篇;不得只写“加强管理、严格把控、确保质量”式口号;每个三级小节必须写与本节标题对应的专属内容,不得与其他小节内容相同或近似;每个句子必须携带至少一个信息载体(数值、部位、材料、工序、岗位、时限其一),无信息载体的空泛句不得出现——判断标准是句中不含数值、部位、材料、工序、岗位、时限、记录中的任何一项,而不是句中不含某个固定说法。"].join("\n")}function o(a){let b=(0,g.nz)(a).replace(/\s+/gu,"");return!!(!b||/^(?:目录|章节|大纲|要求|说明|注意|输出|格式|示例|例如|写法|占位|提示)$/u.test(b))||/^(?:判断|判定|识别|确认)?是否(?:涉及|涉|需要|适用)|^(?:如|若|如果)(?:涉及|不涉及|适用|不适用)/u.test(b)}function p(a,b){let c=(0,g.nz)(a),d=(0,g.nz)(b);if(c.length<4||c.length>60||c===d||o(c)||/^(?:目标与范围|资料依据|实施内容|质量控制|概述|总体要求)$/u.test(c)||(0,i.cq)(c)||/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(c)||/如需|应由|大模型|提示词|上下文|动态规划|OUTLINE|章节生成|按照.*明确指定|需求和资料|JSON|小节标题/u.test(c)||/(.)\1/u.test(c)||(0,j.qL)(c)||(0,g.Fe)(c))return!0;let e=d.match(/[\p{L}\p{N}]{2,6}$/u)?.[0]||"";return!(!(e.length>=2&&/^.{2,8}\p{L}$/u.test(c)&&c.endsWith(e.slice(-1)))||c.includes(e))}function q(a,b){let c=(0,g.nz)(a).replace(/[\s()()::.。;;,,、-]/gu,""),d=(0,g.nz)(b).replace(/[\s()()::.。;;,,、-]/gu,"");return!!c&&!!d&&(c===d||c.includes(d)||d.includes(c))}function r(a){return/判断是否涉及|若涉及|若不涉及|如果涉及|如果不涉及|不涉及.*如实说明|根据项目所在地气候特征|根据计划施工周期|根据.*施工周期|按需|视情况|可设置|专项小节/u.test(a)}function s(a,b=""){let c=r(b);return Array.from(new Set(a.map(g.nz).filter(a=>!(a.length<2||a.length>30||o(a)||/必须|强制|排序|设置|输出|独立|之后|之前|小节|其他必要/u.test(a)||c&&/^(?:雨季|冬季|高温|台风|大风等特殊气候|雨季、冬季、高温、台风、大风等特殊气候)$/u.test(a)))))}function t(a){let b=a.replace(/\\n/gu,"\n").replace(/\r/gu,"");if(!/(?:除文字表述外)?可附下列图表|图表及格式要求附后|附下列图表|附表.{0,12}附后/u.test(b))return{titles:[],attachedAtEnd:!1};let c=[],d=new Set;for(let a of b.matchAll(/附表\s*([一二三四五六七八九十\d]{1,3})\s*[::]?\s*([^\n。;;::]{2,40}(?:表|图))/gu)){let b=(a[1]||"").trim(),e=(a[2]||"").replace(/\s+/gu," ").replace(/([\u3400-\u9fff\u3000-\u303f\uff00-\uffef])[ \u3000]+(?=[\u3400-\u9fff\u3000-\u303f\uff00-\uffef])/gu,"$1").trim();b&&e&&!(e.length<3)&&(d.has(b)||(d.add(b),c.push(`附表${b} ${e}`)))}return{titles:c,attachedAtEnd:c.length>=2}}function u(a){return a.split(/[、,,//]/u).map(a=>a.trim().replace(/["“”'‘’《》<>]/gu,"")).filter(a=>a.length>=2&&a.length<=24&&!/[。;;::]/u.test(a))}function v(a){let b=new Set;for(let c of[/(?:关键词|核心要点|必含关键词|必须包含的关键词)[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须)包含(?:以下|如下)?(?:关键词|核心词|术语)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of u(d[1]||""))/表格|章节|小节|正文|目录|封面/u.test(a)||b.add(a);return[...b].slice(0,24)}function w(a){let b=new Set;for(let c of[/(?:禁用词|禁止词|不得使用词|禁用表达|禁止表达)[::]\s*([^。;;\n]+)/gu,/(?:禁止|不得|严禁|杜绝)出现(?:以下|如下)?(?:词语|用词|表达|话术)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of u(d[1]||""))b.add(a);return[...b].slice(0,40)}function x(a,b){return a.split(/[。;;\n]/u).map(a=>a.trim()).filter(a=>a.length>=4&&b.test(a)).slice(0,24)}function y(a){let b=a.attributedPrompts||[],c=[a.promptTexts,a.requirement||""].filter(Boolean).join("\n\n").replace(/\\n/gu,"\n"),e=function(a){let b=a.replace(/\\n/gu,"\n"),c=new Set;for(let a of(/全文必须输出[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||/必须输出(?:的)?表格[::]\s*([^。;;\n]+)/u.exec(b)?.[1]||"").split(/[、,,]/u)){let b=/([\p{Script=Han}A-Za-z0-9()()]{2,30}表)$/u.exec(a.trim())?.[1];b&&b.length>=4&&b.length<=30&&c.add(b)}/项目基本信息表/u.test(b)&&c.add("项目基本信息表");let d=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"];/杜绝(?:套话|空话)|禁止(?:套话|空话)|不得(?:套话|空话)|严禁(?:套话|空话)/u.test(b)&&d.push("高度重视","重中之重"),/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(b)&&d.push("报价明细表");let e=A(b,"封面"),f=A(b,"目录");return{coverPolicy:e,tocPolicy:f,forbidCover:"forbidden"===e,forbidToc:"forbidden"===f,forbiddenTerms:[...new Set(d)],preferredTerms:[{from:"高度重视",to:"严格落实"},{from:"重中之重",to:"关键控制事项"}],requiredTables:[...c],requiredKeywords:v(b),forbiddenPatterns:w(b)}}(c),f=[...new Set([...e.requiredTables,...function(a){let b=new Set;for(let c of[/(?:必须|应当|需要|全文必须|至少)输出(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:必须|应当|需要|全文必须|至少)包含(?:的)?表格[::]\s*([^。;;\n]+)/gu,/(?:表格清单|表格要求)[::]\s*([^。;;\n]+)/gu])for(let d of a.matchAll(c))for(let a of(d[1]||"").split(/[、,,//及和与]/u)){let c=/([\p{Script=Han}A-Za-z0-9()()《》<>]{2,40}表)/u.exec(a.trim())?.[1];c&&b.add(c.replace(/[<>《》]/gu,""))}for(let c of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,40}表)(?:必须|应当|需要|不得缺失|不可缺失)/gu))b.add(c[1]);return/项目基本信息表/u.test(a)&&b.add("项目基本信息表"),[...b]}(c)])],g=t(c),h=v(c),i=w(c),j=function(a){let b=[],c=(/<OUTLINE>([\s\S]*?)<\/OUTLINE>/u.exec(a)?.[1]||"").split(/\r?\n/u).map(a=>a.trim()).filter(Boolean),d=c.some(a=>/^\s*\d+\s*[.、.]\s*(?!\s*\d)/u.test(a));for(let a of c){if(d&&/^\s*\d+\s*[.、.]\s*\d+/u.test(a))continue;let c=a.replace(/^\s*(?:\d+(?:[.、.]\d+)*[.、.]?|[-*])\s*/u,"").trim();c.length>=2&&c.length<=80&&!o(c)&&b.push(c)}return[...new Set(b)]}(c),k=["知识库","提示词","建议补充","资料库","OCR","后台话术","后台流程","后台数据","后台资料","后台溯源","绑定片段"],l=/技术标(?:正文)?(?:不得|禁止|严禁).*(?:商务|报价|单价|税率|利润|造价)/u.test(c)?["报价明细表"]:[],m=[],n=function(a){let b=(0,d.py)(a);if(b.targetChars&&b.targetChars>0)return b.targetChars;let c=/(?:不少于|至少|最低|必须生成不少于)\s*(\d+(?:\.\d+)?)\s*(万)?\s*字/u.exec(a);if(!c)return;let e=Number(c[1]);if(Number.isFinite(e)&&!(e<=0))return Math.floor(e*(c[2]?1e4:1))}(c),p=(a.template?.chapters||[]).map(a=>({chapterTitle:a.title,mustInclude:x(c,RegExp(`${a.title.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}|${a.title.slice(0,6).replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")}`,"u")).slice(0,8),mustNotInclude:x(c,/禁止|不得|严禁|杜绝/u).filter(b=>b.includes(a.title)).slice(0,8)})).filter(a=>a.mustInclude.length>0||a.mustNotInclude.length>0),q=(a.sourcePrompts||[]).map(a=>({promptName:a.name,focusAreas:x(a.content,/重点|关注|围绕|响应|体系|措施|质量|安全|工期|资源/u).slice(0,8),mustDo:x(a.content,/必须|应当|需要|确保|严格/u).slice(0,10),mustNotDo:x(a.content,/禁止|不得|严禁|杜绝/u).slice(0,10)})).filter(a=>a.focusAreas.length>0||a.mustDo.length>0||a.mustNotDo.length>0),r=[e.coverPolicy&&"unspecified"!==e.coverPolicy?`已识别封面规则:${"required"===e.coverPolicy?"要求生成":"禁止生成"}`:"",e.tocPolicy&&"unspecified"!==e.tocPolicy?`已识别目录规则:${"required"===e.tocPolicy?"要求生成":"禁止生成"}`:"",j.length?`已识别一级章节固定规则 ${j.length} 条`:"",m.length?`已识别禁用主体表达:${m.join("、")}`:"",e.forbiddenTerms.length?`已识别禁用词 ${e.forbiddenTerms.length} 个`:"",f.length?`已识别必需表格:${f.join("、")}`:"",g.titles.length?`已识别招标附表清单(文末附列):${g.titles.join("、")}`:"",h.length?`已识别必含关键词:${h.join("、")}`:"",i.length?`已识别禁止出现内容:${i.join("、")}`:"",n?`已识别目标字数要求:${n} 字`:"",q.length?`已抽取提示词执行规则 ${q.length} 组`:""].filter(Boolean),s=[],u={},y=(a,c,d,e)=>{let f=function(a,b,c){for(let d of a)if(d.content.includes(b))return{promptId:d.promptId,name:d.name,pattern:c};return{promptId:"system:generation-control",name:"generation-control",pattern:c}}(b,d,e);u[a]||(u[a]=[]),u[a].length<24&&u[a].push({...f,matchedText:d}),s.length<60&&s.push({rule:c,source:f,matchedText:d})};for(let a of(e.coverPolicy&&"unspecified"!==e.coverPolicy&&y("coverPolicy",`已识别封面规则:${e.coverPolicy}`,"封面",/封面|cover/u.source),e.tocPolicy&&"unspecified"!==e.tocPolicy&&y("tocPolicy",`已识别目录规则:${e.tocPolicy}`,"目录",/目录|toc/u.source),f))y("requiredTables",`必需表格:${a}`,a,/全文必须输出|必须输出表格|项目基本信息表/u.source);for(let a of h)y("requiredKeywords",`必含关键词:${a}`,a,/必须包含|必须含|应包含|需要包含/u.source);for(let a of i)y("forbiddenPatterns",`禁止内容:${a}`,a,/禁止|不得|严禁|杜绝/u.source);for(let a of j)y("exactHeadings",`固定章节:${a}`,a,/第[一二三四五六七八九十百千\d]+章/u.source);return n&&y("minWords",`最低字数:${n}`,String(n),/\d{3,}\s*字/u.source),{...e,requiredTables:f,requiredKeywords:h,forbiddenPatterns:i,appendixTableTitles:g.titles.length>0?g.titles:void 0,appendixAttachedAtEnd:g.attachedAtEnd||void 0,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)}(c),exactHeadings:j,forbidExtraHeadings:/不得合并|不得删除|不得改名|不得新增|严格按.*章节名称|一级章节.*不得/u.test(c)||j.length>0,requiredSubjects:/我公司/u.test(c)?["我公司","项目部"]:[],forbiddenSubjects:m,backendTerms:k,commercialTerms:l,forbiddenTerms:[...new Set([...e.forbiddenTerms,...k,...l,...m])],forbidFabrication:/不得编造|严禁编造|不得擅自|资料未明确|系统暂未|事实真实性/u.test(c),requireEvidenceForQuantities:/量化|参数|数值|具体数据|具体参数|工程实体参数|资料中明确|不得空泛|不能空泛|泛泛而谈/u.test(c),preferProjectFacts:/事实优先|项目事实|真实性高于/u.test(c),minWords:n,minChars:n,chapterRules:p,promptRules:q,executionSummary:r,ruleSources:Object.keys(u).length>0?u:void 0,extractionTrace:s.length>0?s:void 0}}function z(a){let b=[`运行时规则版本:${a.sourceHash}`,"required"===a.coverPolicy?"用户要求输出封面时必须保留封面;未要求时不得由系统擅自决定。":"","required"===a.tocPolicy?"用户要求输出目录时必须保留目录,并确保目录只来自最终合法正文标题。":"",a.forbidCover?"用户明确禁止输出封面。":"",a.forbidToc?"用户明确禁止输出目录、目录说明或导航页。":"",a.exactHeadings.length?`一级章节必须严格使用:${a.exactHeadings.join(";")}`:"",a.forbidExtraHeadings?"不得新增、删除、合并或改名一级章节。":"",a.requiredSubjects.length?`正文主体优先使用:${a.requiredSubjects.join("、")}`:"",a.forbiddenSubjects.length?`禁止主体表达:${a.forbiddenSubjects.join("、")}`:"",a.forbidFabrication?"不得编造系统暂未从知识库确认的项目事实、工程实体参数、人名、联系方式或品牌;应通过扩大检索、事实补抽或落位修复解决。":"",a.requireEvidenceForQuantities?"涉及数量、工期、质量标准目标、规格型号等项目专属参数时必须以绑定资料中的明确事实为准;通用标准规范编号与法规名称可依据现行有效版本直接引用。":"",a.commercialTerms.length?`禁止输出商务敏感内容:${a.commercialTerms.join("、")}`:"",a.backendTerms.length?`禁止输出系统内部话术:${a.backendTerms.join("、")}`:"",a.requiredTables.length?`必须输出以下正式 Markdown 表格:${a.requiredTables.join("、")}。表格必须包含表名、表头、分隔线和数据行。`:"",a.requiredKeywords?.length?`正文必须覆盖以下关键词或要点:${a.requiredKeywords.join("、")}。`:"",a.forbiddenPatterns?.length?`正文禁止出现以下内容:${a.forbiddenPatterns.join("、")}。`:""].filter(Boolean);return`以下规则由系统运行时从用户绑定指令中自动抽取,不作为用户可编辑内容。生成、检查和修复必须共同遵守:
30
+ ${b.map((a,b)=>`${b+1}. ${a}`).join("\n")}`}function A(a,b){let c=RegExp(`(?:生成|包含|输出|需要|保留|设置|编制|制作)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:必须|应当|需要|保留|生成|输出|包含)`,"u").test(a);return RegExp(`(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)[^。;;\\n]{0,12}${b}|${b}[^。;;\\n]{0,12}(?:不要|不需要|不允许|不得|禁止|严禁|不输出|不生成|无需)`,"u").test(a)?"forbidden":c?"required":"unspecified"}function B(a,b){let c=a.replace(/\\n/gu,"\n"),d=new Map,e=[...c.matchAll(/第([一二两三四五六七八九十\d]+)章[^\n。;;]{0,80}(?:强制|必须|挂靠|小节|排序|最先|之后|之前)/gu)];for(let a of e){let b=function(a){let b={零:0,一:1,二:2,两:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9};if(/^\d+$/u.test(a))return Number(a);if(void 0!==b[a])return b[a];if("十"===a)return 10;let c=/^(?:(一|二|两|三|四|五|六|七|八|九)?)十(?:(一|二|两|三|四|五|六|七|八|九))?$/u.exec(a);if(c)return 10*(c[1]?b[c[1]]:1)+(c[2]?b[c[2]]:0)}(a[1]);if(!b)continue;let f=Math.max(0,a.index||0),g=e.find(a=>(a.index||0)>f)?.index,h=c.slice(f,Math.min(c.length,g??f+1400));if(r(h)&&!/(强制小节|必须小节|以下小节设置和排序|必须设置独立的|必须包含独立的)/u.test(h))continue;let i=function(a){let b=/(?:以下小节设置和排序|强制小节|必须小节)[::]\s*([\s\S]*?)(?:\n\s*#{2,6}\s|\n\s*第[一二两三四五六七八九十\d]+章|$)/u.exec(a)?.[1];if(b){let c=s([...b.matchAll(/(?:^|\n)\s*\d+[..、]\s*([^——\-—::。;;\n]{2,30})(?:[——\-—::]|,|,|。|;|;|\n|$)/gu)].map(a=>a[1]),a);if(c.length>0)return c}let c=[];for(let b of a.matchAll(/第[一二两三四五六七八九十\d]+章[^。;;\n]{0,50}(?:强制)?(?:包含|设置|输出|排序|挂靠)[^::。;;\n]{0,20}[::]\s*([^。;;\n]{2,120})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);for(let b of a.matchAll(/[“"]([^”"]{2,30})[”"]\s*(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/([\p{Script=Han}A-Za-z0-9()()]{2,30})(?:——|—|-|:|:)\s*(?:独立的)?(?:二级)?小节/gu))c.push(b[1]);for(let b of a.matchAll(/(?:必须|应当|需|需要|包含|设置|输出)[^。;;\n]{0,30}(?:独立的)?(?:二级)?小节[::]\s*([^。;;\n]{2,80})/gu))for(let a of b[1].split(/[、,,//及和与]/u))c.push(a);return s(c,a)}(h);if(0===i.length)continue;let j=d.get(b)||{blocks:[],titles:[]};for(let a of(j.blocks.push(h),i))j.titles.some(b=>q(b,a))||j.titles.push(a);d.set(b,j)}return[...d.entries()].map(([a,c])=>{let d=b?.[a-1];return{chapterIndex:a-1,chapterTitle:d?.title,source:c.blocks[0]?.split("\n").find(a=>a.trim())?.trim().slice(0,120),requiredSections:c.titles.map((a,b)=>({title:a,order:b+1,required:!0,source:c.blocks[0]?.slice(0,240)}))}})}function C(a=[],b){let c=[];for(let d of a){let a=m((0,g.nz)(d));!(!a||p(a,b))&&(c.some(b=>q(b,a))||c.push(a))}return c}async function D(a){let b,c=C(a.lockedSections||[],a.chapter.title),d=(0,e.ks)((0,e.QO)(a.chapter,a.evidence),{maxChars:(0,e.Pc)(a.targetWords,5e3,12e3),diagnostics:a.diagnostics}),i=function(a,b,c,d){let e=a.title,f=/质量|安全|工期|进度|物资|材料|机械|设备|劳动力|危大|专项|文明|总平面|施工方法|施工方案/u.test(e),g=b>=14e3?6:b>=8e3?5:b>=5e3||b>=3e3?4:3;f&&(g=Math.max(g,4));let h=new Set((c.map(a=>`${a.sectionTitle||""}
31
+ ${a.content}`).join("\n").slice(0,3e4).match(/\d+(?:\.\d+)?\s*(?:mm|cm|m|km|㎡|m²|m3|m³|kg|g|t|L|ml|MPa|kPa|℃|%|台|套|个|项|批|次|份|人|小时|分钟|日历天|天|周|月|年|万元|元)|DN\s*\d+|Φ\s*\d+|φ\s*\d+|C\d{2,}|HRB\d+|GB\/?T?\s*[\w.-]+|JGJ\s*[\w.-]+/giu)||[]).map(a=>a.replace(/\s+/gu,""))).size;return h>=20?g=Math.max(g,5):h>=10&&(g=Math.max(g,4)),Math.max(g,d)}(a.chapter,a.targetWords,a.evidence,c.length),j=Math.max(i,Math.min(7,a.targetWords>=8e3?7:6)),k=0===a.chapterIndex||/编制说明|工程概况|项目概况/u.test(a.chapter.title),n=async()=>{let b=await (0,f.bb)([(0,h.y4)("你是专业文档结构规划专家。"),"只根据用户提示词、章节标题和真实绑定资料规划本章二级小节。","施工组织、技术措施、资源配置、质量、安全、工期、材料、设备、劳动力、危大工程等核心章节必须拆成足够的专业工作面,不得只输出两个泛化小节。","危大工程判定、危险性分级、专家论证要求等危大内容只允许落位在危大工程专项章节或基坑支护相关小节,其他章节不得规划危大清单/危大判定类小节,避免分级结论散落多处产生口径矛盾;危大清单表格只列资料参数确认达到判定阈值的类别,不得列入正文声明“本工程无/未涉及”的类别,防止清单与排除声明自相矛盾。","小节标题必须直接属于本章主题域:例如“人材机保障/资源配置”章只允许劳动力、材料、机械设备、周转类标题;不得规划本章主题域之外的内容小节。",c.length?`本章锁定二级小节(提示词强制要求/模板或 OUTLINE 已提供,必须按此顺序置于小节清单最前,不得删除、改名或重排):${c.join("、")}`:"",k?"本章是全文第一章:若规划出“编制说明与工程概况”类小节,必须置于小节清单第一位,不得排在任何其他小节之后。":"",a.diversity?.directive||"","只返回 JSON。"].filter(Boolean).join("\n"),[`文档模板:${a.template.name}`,`章节标题:${a.chapter.title}`,a.chapter.purpose&&!p(a.chapter.purpose,a.chapter.title)?`章节目的:${a.chapter.purpose}`:"",a.requirement?`用户要求:${a.requirement}`:"",a.projectContext?`上下文:
32
+ ${a.projectContext}`:"",a.projectGraphSummary?`本项目专业工程与资源图谱:
33
+ ${a.projectGraphSummary}`:"",a.boqCoverageSummary?`本工程工程量清单分部分项全景(下列专有分项必须逐项规划对应施工小节,不得只规划道路、铺装、绿化等大类而遗漏清单独有分项):
34
+ ${a.boqCoverageSummary}`:"",a.roleContext,a.diversity?.avoidSections?.length?`以下小节标题已在历史文档中使用,本次命名必须避开相同或高度近似的表达(等价内容换角度、换词面,不得只调整语序或添加“工作/内容”尾词):
35
+ ${a.diversity.avoidSections.slice(0,60).map(a=>`- ${a}`).join("\n")}`:"",a.promptTexts?`配置写作主控提示词:
36
+ ${a.promptTexts}`:"",d?`真实绑定资料:
37
+ ${d}`:"",`请输出 ${i}-${j} 个适合直接成稿的二级小节标题。标题必须具体、业务相关、能承载真实资料;每个标题控制在 16 个汉字以内,避免多个小节表达同一内容。`,"forbidden"===a.bodyTablePolicy?"本标书为暗标(招标编制要求:正文内不允许出现表格与框图):tables 必须返回空数组;计划、清单、台账类内容一律规划为纯文字叙述型小节,不得规划表格型小节。":"如本章需要输出管理表格或清单(投入计划表、控制要点表、验收清单、管控台账、检查记录表等),必须在 tables 中逐表给出表名与表头字段(字段名必须具体、可填);不需要表格时 tables 返回空数组。",'JSON 格式:{"sections":["小节标题1","小节标题2"],"tables":[{"title":"表名","fields":["字段1","字段2"]}]}'].filter(Boolean).join("\n\n"),{maxTokens:2400,temperature:l.TD,signal:a.signal,diagnostics:a.diagnostics}),e=[];for(let c of b?.sections||[]){let b=m((0,g.nz)(String(c)));!(!b||p(b,a.chapter.title))&&(e.some(a=>q(a,b))||e.push(b))}let n=[...c];for(let a of e)n.some(b=>q(b,a))||n.push(a);let o=function(a){let b=new Set,c=[];for(let d of a){let a=(0,g.nz)(d).replace(/[\s()()::.。;;,,、\-—]/gu,"");!a||b.has(a)||(b.add(a),c.push(d))}return c}(n),r=[];for(let c of"forbidden"===a.bodyTablePolicy?[]:b?.tables||[]){let b=m((0,g.nz)(String(c?.title||"")));!(!b||p(b,a.chapter.title))&&(r.some(a=>q(a.title,b))||r.push({title:b,fields:(c?.fields||[]).map(a=>String(a).trim()).filter(Boolean).slice(0,12)}))}return{sections:o,tables:r}};try{b=await n()}catch(b){if(c.length>0)return console.error(`[plan] 小节规划 LLM 调用失败(保留锁定小节 ${c.length} 个继续):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),{sections:c,tables:[]};throw b}let o=b.sections;if(k){let a=o.findIndex(a=>/编制说明|工程概况|项目概况/u.test(a));a>0&&(o=[o[a],...o.slice(0,a),...o.slice(a+1)])}let r=a.diversity?.overlapCheck?a.diversity.overlapCheck(o):[];if(0===r.length)return{...b,sections:o};let s=await E({chapter:a.chapter,sections:o,collisions:r,locked:c,overlapCheck:a.diversity?.overlapCheck,signal:a.signal,diagnostics:a.diagnostics}),t=a.diversity?.overlapCheck?a.diversity.overlapCheck(s.sections).length:0;return t>0&&console.warn(`[plan] 局部改名后仍存在历史撞名(接受,不阻断):${a.chapter.title},${t} 处`),s.renamed>0&&console.info(`[plan] 撞名局部改名:${a.chapter.title},${s.renamed} 个标题已替换候选名`),{...b,sections:s.sections,diversity:{retried:!0,remainingCollisions:t}}}async function E(a){let b,c=[...a.sections],d=a.collisions.filter(b=>!a.locked.some(a=>q(a,b.title))).map(a=>a.title);if(0===d.length)return{sections:c,renamed:0};try{let e=await (0,f.bb)([(0,h.y4)("你是施工组织设计目录命名审查专家。"),"输入某章的小节标题清单与需改名的标题(与历史文档撞名),只输出改名映射。\n改名规则:只改点名标题,不改未点名标题;新标题必须仍是同一专业对象或同一工程内容的具体表述,不得改变小节实质;16 个汉字以内;不得仅通过添加“工作/内容/相关/方案”等尾词规避撞名,必须实质性更换措辞;不得与本章其他小节标题用词高度相似(防章内撞名)。\n只返回 JSON。"].join("\n"),`章标题:${(0,g.GQ)(a.chapter.title)}
38
+
39
+ 本章小节清单:
40
+ ${c.map(a=>`- ${a}`).join("\n")}
41
+
42
+ 需要改名的标题:${d.join("、")}
43
+
44
+ 历史撞名对照(本次 ↔ 历史文档):
45
+ ${a.collisions.map(a=>`「${a.title}」↔「${a.collidedWith}」`).join("\n")}
46
+
47
+ JSON 格式:{"renames":{"原标题":"新标题"}}(只包含需要改名的标题)`,{maxTokens:600,temperature:l.TD,signal:a.signal,diagnostics:a.diagnostics});b=e?.renames&&"object"==typeof e.renames?e.renames:{}}catch(b){return console.warn(`[plan] 撞名局部改名调用失败(保留原名):${a.chapter.title},${b instanceof Error?b.message:String(b)}`),{sections:c,renamed:0}}let e=0;for(let[f,h]of Object.entries(b)){let b=(0,j.JG)(f);if(!b||!d.some(a=>(0,j.JG)(a)===b))continue;let i=c.findIndex(a=>(0,j.JG)(a)===b);if(i<0)continue;let l=(0,g.nz)(String(h||""));!(!l||l.length>24||(0,j.qL)(l)||p(l,a.chapter.title)||c.some((a,b)=>b!==i&&(0,k.gJ)(a,l)))&&(a.overlapCheck&&a.overlapCheck([l]).length>0||(c[i]=l,e+=1))}return{sections:c,renamed:e}}function F(a){let b=y({promptTexts:a}),c=B(a).filter(a=>a.requiredSections.length>0).map(a=>`第${(a.chapterIndex??0)+1}章${a.chapterTitle?`(${a.chapterTitle})`:""}强制小节(按序锁定):${a.requiredSections.slice().sort((a,b)=>(a.order||0)-(b.order||0)).map(a=>a.title).join("、")}`);return{recognized:b.executionSummary.length>0||c.length>0,summary:[...b.executionSummary,...c],requiredTables:b.requiredTables,requiredKeywords:b.requiredKeywords||[],forbiddenPatterns:b.forbiddenPatterns||[],exactHeadings:b.exactHeadings||[],minWords:b.minWords,coverPolicy:b.coverPolicy||"unspecified",tocPolicy:b.tocPolicy||"unspecified"}}},80572:(a,b,c)=>{let d;c.d(b,{z:()=>f});let e=["chapterConcurrency","sectionConcurrency","sectionGroupConcurrency","sectionGroupSize","sectionGroupTaskConcurrency","plannedBlockConcurrency","tableFixConcurrency","llmMaxConcurrency","llmMaxInFlightLlmCalls","prefixWarmupCacheCapacity","writingTaskConcurrency","projectGraphDomainConcurrency","writingTaskMaxWords","blockEvidenceChars","chapterPoolChars","evidenceBudgetRatio","evidenceBudgetCeiling","evidenceCatalogMaxLines","factCoverageCap","factExtractionMaxChars","factExtractionMaxItems","outlineEvidenceChars","persistEvidenceMaxItems","persistEvidenceItemChars","repairEvidenceChars","capacityFeasibilityRecalibration","blueprintBlockQuantityCap","blueprintBlockMaterialCap","blueprintBlockSliceCap"];function f(){let a=process.env.DOCUMENT_TUNING_PROFILE;if(d&&d.raw===a)return d.parsed;let b={};if(a)try{let c=JSON.parse(a);for(let a of e){let d=c[a];if("number"==typeof d)b[a]=d;else if("string"==typeof d&&""!==d.trim()){let c=Number(d);Number.isFinite(c)&&(b[a]=c)}}}catch(a){console.warn(`[tuningProfile] DOCUMENT_TUNING_PROFILE 解析失败,按全默认处理:${String(a)}`)}return d={raw:a,parsed:b},b}},91977:(a,b,c)=>{c.d(b,{I2:()=>g,Lk:()=>e,Uy:()=>f});var d=c(70208);function e(a,b){let c=`${a.filePath}
48
+ ${a.content}`;return(function(a){let b=a.replace(/要求|计划|目标|标准|内容|信息|事实|依据|参数|范围|要点/gu,"");return[a,b].filter(Boolean)})(b).some(a=>c.includes(a))}function f(a,b){let c=(0,d._9)(a,b).flatMap(a=>a.requiredFacts).map(a=>({id:a,name:a,required:!0,sourceRoleIds:[],extractionHint:""})),e=b?.factFields.map(a=>({id:a.id,name:a.name,required:a.required,sourceRoleIds:a.sourceRoleIds||[],extractionHint:a.extractionHint||""}))||[],f=new Map;for(let a of[...c,...e])f.set(a.id,{...f.get(a.id)||a,...a,required:a.required||f.get(a.id)?.required||!1});return[...f.values()]}function g(a,b){return(!b.sourceRoleIds?.length||!!(a.roleId&&b.sourceRoleIds.includes(a.roleId)))&&e(a,b.name)}},95294:(a,b,c)=>{c.d(b,{MO:()=>R,OK:()=>S,hH:()=>s,r1:()=>Q,sP:()=>y,uW:()=>d});let d=/(?:确保|保证|达到|满足|符合|不低于|不超过|不得|禁止|严禁|必须|应当|须|应按|执行|遵守|落实|实施|采用|提供|提交|出具|配备|设置|建立|安装|配置|负责|完成|参加|组织|验收|检测|检验|控制|管理|保护|防止|杜绝|承诺|响应|要求|规定|标准|等级|目标|措施|方案|制度|计划|工期|质量|安全)/u,e=/^[((]?[一二三四五六七八九十百\d]{1,3}[、..))]\s*[^\n]{2,60}(?:\.{4,}|…{3,})\s*\d{0,4}\s*$/u,f="专用章|出图|设计研究总院|工程设计(?:甲|乙|丙)级|资质证书|证书编号",g=RegExp(f,"u"),h=RegExp(f,"gu"),i=/R\d{1,4}C\d{1,4}/u,j=/CHECKE|SUBITEM|子项名称/u,k=/^[\d..、()()\s//-]{1,16}$/u,l=/不得|严禁|禁止|必须|应当|应按|确保|保证|满足|符合|须|负责|承诺/u,m=/(?:回复|答复|答疑|答|澄清|释义)\s*[::]/u,n=/请(?:各|潜在|投标人|承包人|供应商|中标人)|(?:投标人|承包人|供应商|中标人)(?:应|须|需|负责)/u,o=/请(?:明确|澄清|复核|确认|补充|说明|解释|答复|核实|明示|告知|指示)/u,p=/[??]\s*[。.))]?$/u,q=/如何(?:确定|理解|考虑|处理|计取|计算|设置)|怎么(?:确定|理解|处理)|代表什么|什么意思|以何为准|按哪个|按照哪个|哪个为准|多少米|按照多少|按多少|是否需要|是否可以|能否/u,r=/(?:必须|应当|不得|严禁|禁止|应按|负责|确保|保证|应|须)/u;function s(a){let b=String(a||"").replace(/\s+/gu,"");if(!(b.length<3||b.length>100||m.test(b))&&!n.test(b)){if(o.test(b))return"request";if(p.test(b))return"question_tail";if(!r.test(b)&&q.test(b))return"interrogative"}}let t=/拉框|右键退出|按下shift键|异形区域|选择窗格|图片压缩|重设样式|编辑网图|标注分类|透明色效果|环绕旋转|下移选择/u,u=/[WHLwhl]\s*[::]?\s*\d{3,4}\s*[*×]\s*[WHLwhl]\s*[::]?\s*\d{3,4}/u,v=/\d\s*[mM]{4,}/u,w=/\d+(?:\.\d+)?\s*(?:mm|MM|㎜|毫米)\s*厚/u,x=/[,。;,;::]/u;function y(a){let b=String(a||"").replace(/\s+/gu,"");if(!(b.length<3)){if(t.test(b))return"ui_text";if(u.test(b))return"door_schedule";if(v.test(b))return"unit_echo";if(b.length<=70&&w.test(b)&&!x.test(b)&&!d.test(b))return"material_row"}}let z=/^\d{5,}[\u4e00-\u9fa5]/u,A=/^[1-9]\d?(?:\.\d{1,2}){2,}[^\d\s]{0,4}$/u,B=/^0{3,}[A-Za-z]?$/u,C=/^[1-9]\d?(?:\.\d{1,2}){1,3}[一-龥]{1,4}$/u,D=/(?:米|厘米|毫米|公里|吨|公斤|千克|平方|立方|天|年|月|日|小时|分钟|个|项|套|台|次|份|人|元|万元|度|伏|安|瓦|帕|吨位)$/u,E=/^\d{4}[A-Za-z]{1,8}\d{4,}\.\d+$/u,F=/第页共页|^第?\d*页共\d*页$/u,G=/^(?![MC]\d)(?![Mm][BbSs]?\d)(?![Ll][Cc]?\d)(?![Aa]\d)(?![Dd][Pp]\d)[A-Za-z]{1,4}\d{0,3}\.\d{1,3}$/u,H=/(签章)|\(签章\)|年月日|[::]\s*[//]\s*$/u,I=/^(?:\d{4}年|\d{1,2}月)$/u,J=/\d{4}\.\d{1,2}\.\d{3,}/u,K=/\d{3,}\s*以上/gu,L=/[。;;\n]/u,M=/[A-Za-z]{3,}|[A-Za-z]{1,3}\d{2,}|\d{6,}/u,N=/[,。;,;]/u,O=/([一-龥]{2,6})\1/gu,P=/^(?:世世代代|子子孙孙|日日夜夜|风风雨雨|时时刻刻|分分秒秒|形形色色|林林总总|家家户户|前前后后)$/u;function Q(a){let b=0;return{text:String(a||"").replace(RegExp(O.source,"gu"),a=>P.test(a)?a:(b+=1,"")),removed:b}}function R(a){let b=String(a||""),c=b.replace(/\s+/gu,"");if(c.length<3)return;let f=d.test(c);return i.test(c)?"sheet_coordinate":j.test(c)&&(!f||/CHECKE|SUBITEM/u.test(c))||function(a){let b=a.split(/\r?\n/u).map(a=>a.trim()).filter(Boolean);return!(b.length<3)&&!(b.filter(a=>a.replace(/\s+/gu,"").length<=8).length<2)&&!!b.some(a=>k.test(a))&&!b.some(a=>a.length>=12&&l.test(a))}(b)?"table_fragment":y(b)?"ocr_table_residue":(c.match(h)||[]).length>=1&&!f?"drawing_signature":z.test(c)||C.test(c)&&!D.test(c)||E.test(c)?"numeric_smear":F.test(c)?"table_fragment":A.test(c)||B.test(c)||G.test(c)?"numeric_smear":function(a){let b=[];for(let c of String(a||"").matchAll(RegExp(O.source,"gu")))P.test(c[0])||b.push(c[0]);return b}(c).length>0?"duplicated_label":H.test(c)||J.test(c)?"table_fragment":I.test(c)?"date_fragment":e.test(c)?"toc_line":function(a){let b=0;for(let c of String(a||"").split(L)){let a=(c.match(RegExp(K.source,"gu"))||[]).length;a>b&&(b=a)}return b}(c)>=3?"penalty_table":s(b)?"clarification_query":c.length>60&&!N.test(c)&&M.test(c)?"listing_smear":void 0}let S=[e,g,h,i,j,z,A,C,D,E,F,B,G,H,I,J,M,N,K,L,3,100,m,n,o,p,q,r,t,u,v,70,w,x,12,l,3,8,k]},99956:(a,b,c)=>{let d,e;c.d(b,{rI:()=>_,bb:()=>ag,_v:()=>$,Qf:()=>G,CX:()=>Y,Sq:()=>R,nz:()=>T,TO:()=>W,t5:()=>H,Jx:()=>ab});var f=c(95393),g=c(54451),h=c(73024),i=c(76760),j=c(22157);function k(){let a=process.env.AGENT_CASSETTE_DIR;return a||i.join(process.cwd(),"apps","server","test","fixtures","llm")}function l(a){let b="number"==typeof a.stablePrefixChars&&a.stablePrefixChars>0&&a.stablePrefixChars<=a.prompt.length?a.stablePrefixChars:a.prompt.length;return(0,j.c6)(["writer-prompt-v1",a.model,JSON.stringify(a.params),a.system,a.prompt.slice(0,b)].join("\0"))}function m(a){return i.join(k(),`${a}.json`)}class n extends Error{constructor(a,b){super(`cassette 未命中(${b}):key=${a}。回放模式下未录制即测试失败,不静默回落到真调用。用 AGENT_RECORD=1 重跑以录制,产物落在 ${m(a)}。`),this.key=a,this.mode=b,this.name="CassetteMissError"}}async function o(a){let b="1"===process.env.AGENT_REPLAY?"replay":"1"===process.env.AGENT_RECORD?"record":"off";if("off"===b)return a.invoke();if("replay"===b){let c=function(a){try{let b=JSON.parse(h.readFileSync(m(a),"utf8"));return b?.v===1?b:void 0}catch{return}}(a.key);if(!c)throw new n(a.key,b);return c.response}let c=await a.invoke();try{h.mkdirSync(k(),{recursive:!0});let b={v:1,key:a.key,model:a.model,params:a.params,response:c,recordedAt:Date.now()};h.writeFileSync(m(a.key),JSON.stringify(b,null,2))}catch(a){console.error(`[cassette] 录制落盘失败(不影响生成):${a instanceof Error?a.message:String(a)}`)}return c}c(48161);let p=Object.freeze({"deepseek-chat:chat":{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27},"deepseek-chat:reasoning":{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27},"deepseek-reasoner:chat":{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27},"deepseek-reasoner:reasoning":{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27},"gpt-4o-mini:chat":{inputPerM:.15,outputPerM:.6,cacheHitPerM:.15},"gpt-4o:chat":{inputPerM:2.5,outputPerM:10,cacheHitPerM:2.5}}),q=[{pattern:/deepseek.*flash/iu,kind:"chat",entry:{inputPerM:.07,outputPerM:.27,cacheHitPerM:.07}},{pattern:/deepseek.*flash/iu,kind:"reasoning",entry:{inputPerM:.07,outputPerM:.27,cacheHitPerM:.07}},{pattern:/deepseek/iu,kind:"chat",entry:{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27}},{pattern:/deepseek/iu,kind:"reasoning",entry:{inputPerM:.27,outputPerM:1.1,cacheHitPerM:.27}},{pattern:/gpt-4o-mini/iu,kind:"chat",entry:{inputPerM:.15,outputPerM:.6,cacheHitPerM:.15}},{pattern:/gpt-4o/iu,kind:"chat",entry:{inputPerM:2.5,outputPerM:10,cacheHitPerM:2.5}}];Object.freeze({firstPassRateDrop:.1,costIncrease:.3,cacheHitRateDrop:.15,blockingIncrease:.2});var r=c(96770),s=c(29281),t=c(80572);let u=new Map,v=0,w=new WeakMap,x=0;function y(a){let b=function(a=process.env){let b=a.AGENT_LLM_CALL_TIMEOUT_MS;if(void 0===b||""===b.trim())return 3e5;let c=Number(b);return!Number.isFinite(c)||c<0?3e5:c}(),c=a??new AbortController().signal;if(0===b)return{signal:c,timeoutMs:b};let d=AbortSignal.timeout(b);return{signal:AbortSignal.any([c,d]),timeoutMs:b}}function z(a){let b=(0,g.Su)(a);return(0,g.kI)(b,function(a=process.env){let b,c=a.AGENT_COST_CEILING_USD;if(e&&e.raw===c)return e.value;if(void 0!==c&&""!==String(c).trim()){let a=Number(c);!Number.isFinite(a)||a<=0?console.warn(`[costModel] AGENT_COST_CEILING_USD 非法(${String(c)}),按「不设限」处理`):b=a}return e={raw:c,value:b},b}()),b}function A(a,b){let c=(0,g.II)(a);if(c)return(0,g.D)(a),b&&(b.llm.lastError=`预算耗尽(${c.kind}):本次调用未发起——${c.message}`),console.error(`[llm] 预算耗尽拒绝调用(${c.kind}):${c.message}`),c}function B(a,b,c,e,f){let h=Math.max(0,f?.promptCacheHitTokens||0),i=Math.max(0,f?.promptTokens||0),j=Math.min(Math.max(0,f?.promptCacheMissTokens??i-h),i),k=(0,g.Nz)(),l=f?1===k?i+Math.max(0,f.completionTokens||0):Math.floor(j+h*k+Math.max(0,f.completionTokens||0)):0,m=f&&c?function(a,b,c,e=process.env){let f=function(a,b,c=process.env){let e=function(a=process.env){let b=a.AGENT_COST_PRICES_JSON;if(d&&d.raw===b)return d.table;let{table:c,warning:e}=function(a){let b;if(!a||""===a.trim())return{table:{}};try{b=JSON.parse(a)}catch(a){return{table:{},warning:`AGENT_COST_PRICES_JSON 解析失败,按默认(占位)价格表处理:${a instanceof Error?a.message:String(a)}`}}if("object"!=typeof b||null===b||Array.isArray(b))return{table:{},warning:'AGENT_COST_PRICES_JSON 顶层必须是对象({"model:kind": {...}}),已忽略'};let c={},d=[];for(let[a,e]of Object.entries(b)){if("object"!=typeof e||null===e){d.push(a);continue}let b=Number(e.inputPerM),f=Number(e.outputPerM);if(!Number.isFinite(b)||!Number.isFinite(f)||b<0||f<0){d.push(a);continue}let g=Number.isFinite(Number(e.cacheHitPerM))&&Number(e.cacheHitPerM)>=0?Number(e.cacheHitPerM):b;c[a]={inputPerM:b,outputPerM:f,cacheHitPerM:g}}return{table:c,warning:d.length>0?`AGENT_COST_PRICES_JSON 中 ${d.length} 项非法已忽略:${d.slice(0,5).join("、")}`:void 0}}(b),f={...p,...c};return e&&console.warn(`[costModel] ${e}`),d={raw:b,table:f,warning:e},f}(c)[`${a}:${b}`];return e||q.find(c=>c.kind===b&&c.pattern.test(a))?.entry}(a,b,e);if(f)return function(a,b){let c=Math.max(0,b.inputTokens||0),d=Math.max(0,b.outputTokens||0),e=Math.min(Math.max(0,b.cacheHitTokens||0),c),f=b.cacheMissTokens,g="number"==typeof f&&Number.isFinite(f)?Math.min(Math.max(0,f),Math.max(0,c-e)):Math.max(0,c-e);return(e*a.cacheHitPerM+g*a.inputPerM+d*a.outputPerM)/1e6}(f,c)}(c,e,{inputTokens:f.promptTokens||0,outputTokens:f.completionTokens||0,cacheHitTokens:f.promptCacheHitTokens||0,cacheMissTokens:f.promptCacheMissTokens||0}):void 0,n=(0,g.dn)(a,{tokens:l,costUsd:m,priced:!f||void 0!==m,now:Date.now(),cacheHitTokens:h,cacheMissTokens:j});return n&&b&&(b.llm.lastError=n.message,console.error(`[llm] 预算耗尽:${n.message}`)),n}function C(a){return"reasoning"===a?"reasoning":"chat"}function D(a,b){return new Promise((c,d)=>{if(b?.aborted)return void d(Error("用户中止"));let e=()=>{clearTimeout(f),d(Error("用户中止"))},f=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a);b?.addEventListener("abort",e,{once:!0})})}function E(a,b){return void 0!==a&&Number.isFinite(a)?0===a?1/0:a>0?Math.floor(a):b:b}function F(){return Math.min(function(a=process.env){let b=(0,t.z)().llmMaxConcurrency;if("number"==typeof b&&Number.isFinite(b))return E(Math.floor(b),8);let c=Number(a.DOCUMENT_LLM_MAX_CONCURRENCY);return Number.isFinite(c)?E(Math.floor(c),8):8}(),function(){let a=(0,t.z)().llmMaxInFlightLlmCalls;return"number"==typeof a&&Number.isFinite(a)?E(Math.floor(a),8):8}())}function G(a){return F()}function H(a){return F()}let I=[];function J(a){return new Promise((b,c)=>{if(v<F()){v+=1,b(K);return}let d={resolve:b,reject:c,settled:!1};I.push(d);let e=()=>{if(d.settled)return;d.settled=!0;let a=I.indexOf(d);a>=0&&I.splice(a,1),c(Error("用户中止"))};if(a){if(a.aborted)return void e();a.addEventListener("abort",e,{once:!0})}})}function K(){v=Math.max(0,v-1);let a=I.shift();a&&!a.settled&&(a.settled=!0,v+=1,a.resolve(K))}function L(a){let b=!1;return()=>{b||(b=!0,a())}}let M=0,N=[],O=null,P=new Map,Q=(()=>{let a=Number(process.env.DOCUMENT_PREFIX_SCHEDULE_WINDOW_MS);return Number.isFinite(a)&&a>=0?Math.floor(a):void 0})();function R(){return F()}function S(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/connection error|econnrefused|econnreset|fetch failed|network|socket|eai_again|enotfound|etimedout|429|502|503|504|rate ?limit|too many requests|overloaded|服务繁忙|连接失败|abort|timeout|timed ?out|terminated/iu.test(b)}function T(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/maximum context length|context ?length|context ?window|too many tokens|input.{0,24}too long|prompt.{0,24}too long|请求.{0,16}(超长|过长|超出)|上下文.{0,16}(超长|超出|过长|窗口)/iu.test(b)||/400/u.test(b)&&/context|too ?long|token|length|上下文/iu.test(b)||/JSON.{0,10}被截断|JSON.{0,10}未闭合/iu.test(b)}function U(a,b){let c=(0,r.resolveProtocol)(a,b);return"anthropic"===c?"anthropic":"google"===c?"google":"ollama"===c?"ollama":"openrouter"===c?"openrouter":/deepseek/iu.test(a)?"deepseek":"openai"}function V(){let a=(0,s.I)().load(),b=a.models.reasoning.active||a.models.action.active||a.models.reader.active,c=[...a.models.reasoning.list,...a.models.action.list,...a.models.reader.list].find(a=>a.name===b);if(!c)return;let d=a.providers[c.provider];if(d)return{model:c,provider:d}}function W(){return"0"!==process.env.AGENT_THINKING_FOR_JUDGES?"reasoning":"structuredGeneration"}function X(a,b,c){let d=(0,f.thinkingCapabilityForModel)(b);return"disabled"===c?d&&"unsupported"!==d.disable?{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:d?.budgetPolicy==="shared"?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),已忽略“强制关闭思考”配置;建议切换 deepseek 或 gpt 系列模型`}:"enabled"!==c&&"structuredGeneration"===a&&d?"unsupported"===d.disable?{disableThinking:!1,budgetMode:"shared"===d.budgetPolicy?"relaxed":"compact",warning:`当前模型 ${b} 思考不可关闭(厂商限制),生成耗时受限;建议切换 deepseek 或 gpt 系列模型`}:{disableThinking:!0,budgetMode:"compact"}:{disableThinking:!1,budgetMode:"compact"}}function Y(a){return a.filter(a=>!!a).reduce((a,b)=>a+b.length,0)}function Z(a,b){let c=a.llm.callBreakdown??(a.llm.callBreakdown={}),d=b||"(none)";return c[d]??(c[d]={calls:0,inputChars:0,l3Chars:0,cacheHitTokens:0,cacheMissTokens:0})}async function $(a){let b,c,{signal:d}=y(a.signal);if(a.signal?.aborted)throw Error("用户中止");let e=z(a.diagnostics);if(A(e,a.diagnostics))return;let g=await J(d);try{let e=V();if(!e)return;let{model:g,provider:h}=e,i=(0,j.c6)({provider:g.provider,model:g.name,baseUrl:h.baseUrl,directEndpoint:h.directEndpoint,protocol:h.protocol,apiKeyHash:h.apiKey?(0,j.c6)(h.apiKey):""}),k=u.get(i);k||(k=(0,f.createProvider)(U(g.provider,h),{baseUrl:h.baseUrl,apiKey:h.apiKey,modelName:g.name,directEndpoint:h.directEndpoint}),u.set(i,k));let m=g.name.toLowerCase(),n=X("structuredGeneration",m,g.thinking),p=k.capabilities?.maxOutputTokens||8192,q=/deepseek/iu.test(m)?Math.min(p,8192):p,r=Math.min(a.maxTokens??3200,q),s=a.stablePrefixChars&&a.stablePrefixChars>0?a.stablePrefixChars:void 0,t=l({system:a.system,prompt:a.messages.map(a=>a.content).join("\x01"),stablePrefixChars:s,model:g.name||"unknown",params:{temperature:a.temperature??0,maxTokens:r,tools:a.tools.map(a=>a.name).join(",")}}),v=await o({key:t,model:g.name||"unknown",params:{temperature:a.temperature??0,maxTokens:r},invoke:async()=>{let b;for(let c=0;c<4;c+=1)try{if(d?.aborted)throw Error("用户中止");return await k.chat(a.messages.map(a=>({role:a.role,content:a.content,toolCallId:a.toolCallId})),{temperature:a.temperature??0,maxTokens:r,signal:d,disableThinking:n.disableThinking,tools:a.tools})}catch(f){if(b=f,f instanceof Error&&"用户中止"===f.message||!S(f)||c>=3)throw f;let e=Math.min(3e4,1200*2**c)+Math.floor(400*Math.random());a.diagnostics&&(a.diagnostics.llm.retries+=1,a.diagnostics.llm.lastError=`工具循环瞬态错误退避 ${Math.round(e/1e3)}s(第 ${c+1} 次):${f instanceof Error?f.message:String(f)}`),await D(e,d)}throw b instanceof Error?b:Error(String(b))}});a.diagnostics&&(a.diagnostics.llm.calls+=1,a.diagnostics.llm.inputChars=(a.diagnostics.llm.inputChars||0)+a.system.length+a.messages.reduce((a,b)=>a+b.content.length,0),v.usage&&(a.diagnostics.llm.inputTokens=(a.diagnostics.llm.inputTokens||0)+v.usage.promptTokens,a.diagnostics.llm.outputTokens=(a.diagnostics.llm.outputTokens||0)+v.usage.completionTokens,a.diagnostics.llm.promptCacheHitTokens=(a.diagnostics.llm.promptCacheHitTokens||0)+(v.usage.promptCacheHitTokens||0),a.diagnostics.llm.promptCacheMissTokens=(a.diagnostics.llm.promptCacheMissTokens||0)+(v.usage.promptCacheMissTokens||0))),b=v.usage?{promptTokens:v.usage.promptTokens,completionTokens:v.usage.completionTokens,promptCacheHitTokens:v.usage.promptCacheHitTokens,promptCacheMissTokens:v.usage.promptCacheMissTokens}:void 0,c=g.name;let w=v.content?.trim()??"",x=(v.toolCalls||[]).map((a,b)=>({id:a.id||`call-${b}`,name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{})}));if(!w&&0===x.length)return;return{content:w,toolCalls:x}}finally{g(),B(e,a.diagnostics,c,C("structuredGeneration"),b)}}async function _(a,b,c=!1,d={}){let e,g,h=z(d.diagnostics);if(A(h,d.diagnostics))return;if(d.diagnostics){d.diagnostics.llm.calls+=1,d.diagnostics.llm.inputChars=(d.diagnostics.llm.inputChars||0)+a.length+b.length;let c=Z(d.diagnostics,d.prefixKey);if(c.calls+=1,c.inputChars+=a.length+b.length,c.l3Chars+=d.contextLayers?.l3||0,d.contextLayers){let a=d.diagnostics.llm.layerChars??(d.diagnostics.llm.layerChars={l0:0,l1:0,l2:0,l3:0});a.l0+=d.contextLayers.l0||0,a.l1+=d.contextLayers.l1||0,a.l2+=d.contextLayers.l2||0,a.l3+=d.contextLayers.l3||0}else d.diagnostics.llm.unlayeredChars=(d.diagnostics.llm.unlayeredChars||0)+a.length+b.length}let i=await J(d.signal);d.diagnostics&&(d.diagnostics.llm.maxActive=Math.max(d.diagnostics.llm.maxActive,v));try{let h,i=V();if(!i)return;let{model:k,provider:m}=i,n=(0,j.c6)({provider:k.provider,model:k.name,baseUrl:m.baseUrl,directEndpoint:m.directEndpoint,protocol:m.protocol,apiKeyHash:m.apiKey?(0,j.c6)(m.apiKey):""}),p=u.get(n);p||(p=(0,f.createProvider)(U(k.provider,m),{baseUrl:m.baseUrl,apiKey:m.apiKey,modelName:k.name,directEndpoint:m.directEndpoint}),u.set(n,p));let q=k.name.toLowerCase(),r=X(d.taskKind??"structuredGeneration",q,k.thinking);r.warning&&d.diagnostics&&!d.diagnostics.llm.thinkingWarning&&(d.diagnostics.llm.thinkingWarning=r.warning);let s=p.capabilities?.maxOutputTokens||8192,z=/deepseek/iu.test(q)?Math.min(s,8192):s,A="relaxed"===r.budgetMode&&d.maxTokens?Math.min(Math.ceil(6*d.maxTokens),z):d.maxTokens,B=Symbol("empty-content"),C=async(f,h=!1)=>{var i;if(d.signal?.aborted)throw Error("用户中止");let m=(i=d.diagnostics)?w.get(i)??0:x,n=m<3?0:m<6?2e4:m<10?45e3:6e4;if(n>0){let a=n+Math.floor(5e3*Math.random());d.diagnostics&&(d.diagnostics.llm.emptyStormWaits=(d.diagnostics.llm.emptyStormWaits||0)+1,d.diagnostics.llm.lastInfo=`空响应风暴长退避 ${Math.round(a/1e3)}s(连续空响应 ${m} 次)`),await D(a,d.signal)}let q=y(d.signal).signal,s=d.prefixKey||(0,j.c6)(`${a}
49
+ ${b.slice(0,2e3)}`),u=(()=>{let e=d.contextLayers?.l3||0;if(e<=0||e>=b.length)return;let f=c?`${a}
50
+ 只返回 JSON,不要返回 markdown。`:a,g=b.slice(0,b.length-e);if(!(g.length<500))return{warmupKey:(0,j.c6)(`${f}
51
+ ${g}`),warmup:()=>{let a=d.diagnostics?Z(d.diagnostics,d.prefixKey):void 0;return a&&(a.calls+=1,a.inputChars+=f.length+g.length),p.chat([{role:"system",content:f},{role:"user",content:g}],{temperature:0,maxTokens:1,signal:q,disableThinking:r.disableThinking}).then(b=>{a&&b.usage&&(a.cacheHitTokens+=b.usage.promptCacheHitTokens||0,a.cacheMissTokens+=b.usage.promptCacheMissTokens||0)}).then(()=>void 0)}}})(),z=l({system:a,prompt:b,stablePrefixChars:(d.contextLayers?.l3||0)>0&&(d.contextLayers.l3||0)<b.length?b.length-(d.contextLayers.l3||0):void 0,model:k.name||"unknown",params:{temperature:d.temperature??0,maxTokens:f,jsonOnly:c,disableThinking:r.disableThinking}}),A=await o({key:z,model:k.name||"unknown",params:{temperature:d.temperature??0,maxTokens:f,jsonOnly:c,disableThinking:r.disableThinking},invoke:()=>new Promise((e,g)=>{!function(a,b,c,d){var e;let f=(e=v,void 0!==Q?Q:e>=16?500:120);if(f<=0)return b();N.push({fingerprint:a,launch:b,warmup:c,warmupKey:d}),O||(O=setTimeout(()=>{O=null;let a=N;N=[],function(a){let b=[...a].sort((a,b)=>a.fingerprint<b.fingerprint?-1:+(a.fingerprint>b.fingerprint)),c=[];for(let a of b){let b=c[c.length-1];b&&b[0].fingerprint===a.fingerprint?b.push(a):c.push([a])}for(let a of c)try{var d;let b=a.find(a=>a.warmup&&a.warmupKey),c="0"!==process.env.DOCUMENT_PREFIX_WARMUP&&a.length>=2&&b?.warmup&&b.warmupKey&&(d=b.warmupKey,!P.has(d)||(P.delete(d),P.set(d,!0),!1)),e=!1,f=()=>{if(!e)for(let b of(e=!0,a))try{b.launch()}catch(a){console.error("[llm] 调度发射单条异常:",a)}};if(!c){f();continue}let g=b.warmupKey;P.delete(g),P.set(g,!0);let h=function(){let a=(0,t.z)().prefixWarmupCacheCapacity;return"number"==typeof a&&Number.isFinite(a)&&a>0?Math.floor(a):256}();for(;P.size>h;){let a=P.keys().next().value;if(void 0===a)break;P.delete(a)}let i=function(){if(!(v>=F()))return v+=1,K}();i||(M+=1);let j=i?L(i):(v+=1,L(()=>{v=Math.max(0,v-1)})),k=setTimeout(()=>{j(),P.delete(g),f()},3e4),l=a=>{clearTimeout(k),j(),a&&P.delete(g),f()};(()=>{try{return b.warmup()}catch(a){return Promise.reject(a)}})().then(()=>l(!1)).catch(()=>l(!0))}catch(a){console.error("[llm] 调度发射组级异常:",a)}}(a)},f))}(s,()=>{if(d.signal?.aborted)return void g(Error("用户中止"));p.chat([{role:"system",content:c?`${a}
52
+ 只返回 JSON,不要返回 markdown。`:a},{role:"user",content:h?`${b}
53
+
54
+ (重要:缩短思考过程,直接给出最终结论。)`:b}],{temperature:d.temperature??0,maxTokens:f,signal:q,disableThinking:r.disableThinking}).then(e).catch(a=>{g(a instanceof Error?a:Error(String(a)))})},u?.warmup,u?.warmupKey)})}),C=A.content?.trim()??"";if(C){if(d.diagnostics&&A.usage){let a=d.diagnostics.llm;a.inputTokens=(a.inputTokens||0)+A.usage.promptTokens,a.outputTokens=(a.outputTokens||0)+A.usage.completionTokens,a.promptCacheHitTokens=(a.promptCacheHitTokens||0)+(A.usage.promptCacheHitTokens||0),a.promptCacheMissTokens=(a.promptCacheMissTokens||0)+(A.usage.promptCacheMissTokens||0);let b=Z(d.diagnostics,d.prefixKey);b.cacheHitTokens+=A.usage.promptCacheHitTokens||0,b.cacheMissTokens+=A.usage.promptCacheMissTokens||0,A.usage.reasoningTokens&&(a.reasoningTokens=(a.reasoningTokens||0)+A.usage.reasoningTokens)}return!function(a){if(!a){x=0;return}w.delete(a)}(d.diagnostics),e=A.usage?{promptTokens:A.usage.promptTokens,completionTokens:A.usage.completionTokens,promptCacheHitTokens:A.usage.promptCacheHitTokens,promptCacheMissTokens:A.usage.promptCacheMissTokens}:void 0,g=k.name,C}throw B};for(let a=0;a<=1;a+=1){if(d.signal?.aborted)throw Error("用户中止");try{let b=1===a&&h===B,c=await C(A,b);return d.diagnostics&&(d.diagnostics.llm.failureStreak=0),c}catch(b){if(h=b,b===B&&function(a){if(!a){x+=1;return}w.set(a,(w.get(a)??0)+1)}(d.diagnostics),d.signal?.aborted)throw Error("用户中止",{cause:b});if(b!==B&&!S(b)||a>=1)break;d.diagnostics&&(d.diagnostics.llm.retries+=1),await new Promise(c=>{setTimeout(c,function(a,b=0){return"0"!==process.env.DOCUMENT_LLM_RETRY_BACKOFF&&a&&function(a){let b=a instanceof Error?`${a.name} ${a.message}`:String(a);return/503|overloaded|服务繁忙/iu.test(b)}(a)?Math.min(3e4,2e3*2**Math.max(0,b))+Math.floor(1e3*Math.random()):1200+Math.floor(800*Math.random())}(b,a))})}}d.diagnostics&&(d.diagnostics.llm.failures+=1,d.diagnostics.llm.failureStreak=(d.diagnostics.llm.failureStreak||0)+1,d.diagnostics.llm.lastError=h instanceof Error?h.message:h===B?"空响应(思考阶段耗尽输出预算)":String(h));return}finally{i(),B(h,d.diagnostics,g,C(d.taskKind),e)}}function aa(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim();if(c)return c;let d=b.indexOf("{"),e=b.lastIndexOf("}"),f=b.indexOf("["),g=b.lastIndexOf("]"),h=d>=0&&e>d?b.slice(d,e+1):"",i=f>=0&&g>f?b.slice(f,g+1):"";return h&&(!i||d<=f)?h:i||b}function ab(a,b,c){if("object"!=typeof a||null===a||Array.isArray(a))return[`根节点类型错误(期望 object,得到 ${null===a?"null":Array.isArray(a)?"array":typeof a})`];let d=[];for(let c of b.required||[])c in a||d.push(`缺失字段 $.${c}`);for(let[e,f]of Object.entries(b.properties)){let b=a[e];if(void 0===b){f.required&&d.push(`缺失字段 $.${e}`);continue}d.push(...function a(b,c,d,e){let f=Array.isArray(b)?"array":null===b?"null":typeof b;if("number"===c.type&&"string"===f){let a=String(b).trim(),c=Number(a);""!==a&&Number.isFinite(c)&&(f="number")}if(f!==c.type)return[`字段 ${d} 类型错误(期望 ${c.type},得到 ${Array.isArray(b)?"array":null===b?"null":typeof b})`];let g=[];if("string"===c.type)void 0!==c.minLength&&b.length<c.minLength&&g.push(`字段 ${d} 长度不足(期望 ≥${c.minLength},得到 ${b.length})`),void 0!==c.maxLength&&b.length>c.maxLength&&g.push(`字段 ${d} 长度超限(期望 ≤${c.maxLength},得到 ${b.length})`);else if("array"===c.type)void 0!==c.minItems&&b.length<c.minItems&&g.push(`字段 ${d} 条数不足(期望 ≥${c.minItems},得到 ${b.length})`),void 0!==c.maxItems&&b.length>c.maxItems&&(e?.push({path:d,maxItems:c.maxItems,originalLength:b.length}),b.splice(c.maxItems)),c.items&&b.forEach((b,f)=>g.push(...a(b,c.items,`${d}[${f}]`,e)));else if("object"===c.type){if(void 0!==c.minProperties){let a=Object.keys(b).filter(a=>void 0!==b[a]&&null!==b[a]).length;a<c.minProperties&&g.push(`字段 ${d} 键数不足(期望 ≥${c.minProperties},得到 ${a})`)}if(!c.properties)return g;for(let[f,h]of Object.entries(c.properties)){let c=b[f];if(void 0===c){h.required&&g.push(`缺失字段 ${d}.${f}`);continue}g.push(...a(c,h,`${d}.${f}`,e))}}return g}(b,f,`$.${e}`,c))}return d.slice(0,6)}function ac(a,b,c){if(!a)return;a.llm.schemaFailures=(a.llm.schemaFailures||0)+1,a.llm.lastError=b;let d=Z(a,c);d.schemaFailures=(d.schemaFailures||0)+1}function ad(a,b){a&&0!==b.length&&(a.llm.lastInfo=`JSON Schema 截断式校验:${b.slice(0,4).map(a=>`${a.path} ${a.originalLength} 条超上限 ${a.maxItems},已截断保留前 ${a.maxItems} 条`).join(";")}`)}function ae(a){return Math.ceil(1.5*(a||2e3))}async function af(a,b,c={},d){let e,f=c.maxTokens,g=d??((a,b)=>_(a,b,!0,{maxTokens:f,temperature:c.temperature,signal:c.signal,diagnostics:c.diagnostics,taskKind:c.taskKind,contextLayers:c.contextLayers,prefixKey:c.prefixKey}));for(let d=0;d<=2&&!c.signal?.aborted;d+=1){let h=0===d?b:`${b}
55
+
56
+ (重试修正:上一次输出未通过——${e??"输出无效"}。请重新输出完整合法的 JSON,只返回 JSON。)`,i=await g(a,h);if(!i){c.outFailure&&c.diagnostics?.llm.lastError&&(c.outFailure.value=c.diagnostics.llm.lastError);break}let j=aa(i);try{let a=JSON.parse(j);if(c.schema){let b=[],g=ab(a,c.schema,b);if(ad(c.diagnostics,b),g.length>0){let a=`JSON Schema 校验失败:${g.join(";")}`;if(e=a,ac(c.diagnostics,a,c.prefixKey),a.includes("缺失字段")&&(f=ae(f)),d>=2){c.outFailure&&(c.outFailure.value=a);return}continue}}return a}catch{let a=function(a){let b=a.trim(),c=b.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/iu)?.[1]?.trim()??b,d=c.indexOf("{"),e=c.indexOf("["),f=d<0?e:e<0?d:Math.min(d,e);if(f<0)return;let g=c.slice(f),h=[],i=!1,j=!1,k=[];for(let a=0;a<g.length;a+=1){let b=g[a];if(i){j?j=!1:"\\"===b?j=!0:'"'===b&&(i=!1);continue}if('"'===b){i=!0;continue}if("{"===b||"["===b){h.push("{"===b?"object":"array");continue}if("}"===b||"]"===b){h.pop();continue}","===b&&(k[h.length-1]=a)}if(0===h.length)return;let l=-1;for(let a=h.length-1;a>=0;a-=1)if(void 0!==k[a]){l=a;break}if(l<0)return;let m=k[l],n=g.slice(0,m),o=[];for(let a=l;a>=0;a-=1)o.push("object"===h[a]?"}":"]");let p=`${n}${o.join("")}`;try{return JSON.parse(p),p}catch{return}}(i);if(a)try{let b=JSON.parse(a);if(c.schema){let a=[],g=ab(b,c.schema,a);if(ad(c.diagnostics,a),0===g.length)return b;let h=`JSON Schema 校验失败:${g.join(";")}`;if(e=h,ac(c.diagnostics,h,c.prefixKey),h.includes("缺失字段")&&(f=ae(f)),d>=2){c.outFailure&&(c.outFailure.value=h);return}continue}return b}catch{}let b=`JSON 解析失败:${function(a){let b=aa(a),c=(b.match(/\{/gu)||[]).length-(b.match(/\}/gu)||[]).length,d=(b.match(/\[/gu)||[]).length-(b.match(/\]/gu)||[]).length,e=b.slice(-80).replace(/\s+/gu," ");return c>0||d>0?`JSON 被截断({ 未闭合 ${c} 个、[ 未闭合 ${d} 个),截断位置响应末段:${e}`:`JSON 语法错误,出错位置响应末段:${e}`}(j)}`;if(e=b,/JSON 被截断/u.test(b)&&(f=ae(f)),ac(c.diagnostics,b,c.prefixKey),d>=2){c.outFailure&&(c.outFailure.value=b);return}continue}}}async function ag(a,b,c={}){return af(a,b,c)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=1928,exports.ids=[1928],exports.modules={61928:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>m});var e=c(8732),f=c(82015),g=c(94487),h=c(60056),i=c(79270),j=c(22147),k=a([g]);function l({title:a,value:b,subtext:c,icon:d,colorClass:f,animationClass:g}){return(0,e.jsxs)("div",{className:`p-4 animateFadeIn flex flex-col justify-between border-l-2 border-transparent hover:border-[var(--colorBrand)] transition-colors ${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 m(){let a=(0,g.Vr)(),[b,c]=(0,f.useState)(null),[d,k]=(0,f.useState)(!0),[m,n]=(0,f.useState)(0),[o,p]=(0,f.useState)(0),[q,r]=(0,f.useState)(0),[s,t]=(0,f.useState)(null),u=(0,f.useCallback)(async()=>{k(!0);try{let[a,b,d,e,f]=await Promise.all([(0,j.FC)(),(0,j.Z3)().catch(()=>[]),(0,j.lv)().catch(()=>({roles:[],configs:[]})),(0,j.Dl)().catch(()=>({templates:[]})),(0,j.II)().catch(()=>null)]);c(a),n(Array.isArray(b)?b.length:0);let g=Array.isArray(d.roles)?d.roles:[];p(g.filter(a=>"prompt"===a.type).length),r(Array.isArray(e.templates)?e.templates.length:0),t(f)}catch{}finally{k(!1)}},[]),v=b?.tasks.total?Math.round(b.tasks.success/b.tasks.total*100):0,w=b?.models?.[0],x=b?.logs.latestAt?new Date(b.logs.latestAt).toLocaleString():a("overview.noLogs");return(0,e.jsxs)("div",{className:"space-y-12",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.Space,{children:[(0,e.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--colorTextTertiary)"},children:[a("overview.updated"),": ",x]}),(0,e.jsx)(h.Button,{type:"text",icon:(0,e.jsx)(i.ReloadOutlined,{spin:d}),onClick:()=>{u()}})]})]}),(0,e.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-8 divide-x border-b pb-8 border-[var(--borderColor)] divide-[var(--borderColor)] -mx-4 px-4",children:[(0,e.jsx)(l,{title:a("overview.uptime"),value:`${b?Math.floor(b.uptime/3600):0}h`,icon:(0,e.jsx)(i.ApiOutlined,{size:16}),colorClass:"text-[var(--colorBrand)]",animationClass:"stagger-1"}),(0,e.jsx)(l,{title:a("overview.tokensUsed"),value:(b?.tokens.total??0).toLocaleString(),subtext:`P ${b?.tokens.prompt??0} / C ${b?.tokens.completion??0}`,icon:(0,e.jsx)(i.ThunderboltOutlined,{size:16}),colorClass:"text-[var(--colorWarn)]",animationClass:"stagger-2"}),(0,e.jsx)(l,{title:a("overview.tasksTotal"),value:(b?.tasks.total??0).toLocaleString(),subtext:`✓ ${b?.tasks.success??0} | ✗ ${b?.tasks.failed??0} | ↻ ${b?.tasks.running??0}`,icon:(0,e.jsx)(i.FileTextOutlined,{size:16}),colorClass:"text-[var(--colorInfo)]",animationClass:"stagger-3"}),(0,e.jsx)(l,{title:a("overview.successRate"),value:`${v}%`,icon:v>80?(0,e.jsx)(i.CheckCircleOutlined,{size:16}):(0,e.jsx)(i.CloseCircleOutlined,{size:16}),colorClass:v>80?"text-[var(--colorOk)]":"text-[var(--colorDanger)]",animationClass:"stagger-4"})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("h2",{className:"text-sm font-semibold mb-6 uppercase tracking-wider text-[var(--colorTextSecondary)] animateFadeIn stagger-5",style:{opacity:0},children:a("overview.systemResources")}),(0,e.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-y-8 gap-x-4",children:[(0,e.jsx)(l,{title:a("overview.materialUnderstanding"),value:"自动",animationClass:"stagger-5"}),(0,e.jsx)(l,{title:a("overview.promptRoles"),value:o,animationClass:"stagger-5"}),(0,e.jsx)(l,{title:a("overview.templateCount"),value:q,animationClass:"stagger-5"}),(0,e.jsx)(l,{title:a("overview.semanticModel"),value:s?.provider==="openai-compatible"?a("overview.external"):s?a("overview.local"):"—",subtext:s?.model??a("overview.notConfigured"),animationClass:"stagger-5"}),(0,e.jsx)(l,{title:a("overview.modelProviders"),value:m,animationClass:"stagger-5"}),(0,e.jsx)(l,{title:a("overview.auditLogs"),value:b?.logs.events??0,animationClass:"stagger-5"})]})]}),(0,e.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-12 pt-8 border-t border-[var(--borderColor)] animateFadeIn stagger-5",style:{opacity:0},children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-sm font-semibold mb-6 uppercase tracking-wider text-[var(--colorTextSecondary)]",children:a("overview.hardwareUsage")}),(0,e.jsxs)("div",{className:"space-y-6",children:[(0,e.jsxs)("div",{className:"flex items-center gap-6",children:[(0,e.jsx)(h.Progress,{type:"dashboard",percent:b?.cpu.usagePercent??0,size:64,strokeColor:(b?.cpu.usagePercent??0)>80?"var(--colorDanger)":"var(--colorText)",strokeWidth:10}),(0,e.jsxs)("div",{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:[b?.cpu.usagePercent?.toFixed(1)??"0.0","%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[b?.cpu.cores??0," ",a("overview.cores")]})]})]}),(0,e.jsxs)("div",{className:"flex items-center gap-6",children:[(0,e.jsx)(h.Progress,{type:"dashboard",percent:b?.memory.usagePercent??0,size:64,strokeColor:(b?.memory.usagePercent??0)>80?"var(--colorDanger)":"var(--colorTextSecondary)",strokeWidth:10}),(0,e.jsxs)("div",{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:[b?.memory.usagePercent??0,"%"]}),(0,e.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)]",children:[b?.memory.processMB??0," MB / ",b?.memory.totalMB??0," MB"]})]})]})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-sm font-semibold mb-6 uppercase tracking-wider text-[var(--colorTextSecondary)]",children:a("overview.activityContext")}),(0,e.jsxs)("div",{className:"space-y-6",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mb-1",children:a("overview.topModel")}),w?(0,e.jsxs)("div",{className:"font-semibold flex items-center gap-2",children:[(0,e.jsx)(i.RobotOutlined,{className:"text-[var(--colorTextSecondary)]"})," ",w.model,(0,e.jsxs)("span",{className:"font-normal text-[var(--colorTextTertiary)] text-sm",children:["@",w.provider]})]}):(0,e.jsx)("span",{className:"text-sm text-[var(--colorTextTertiary)]",children:a("overview.noDataAvailable")})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mb-3",children:a("overview.recentTaskTypes")}),b?.tasks.types&&Object.keys(b.tasks.types).length>0?(0,e.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(b.tasks.types).sort((a,b)=>b[1]-a[1]).map(([a,b])=>(0,e.jsxs)("div",{className:"px-2 py-1 rounded text-xs font-mono bg-[var(--colorBgHover)] 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=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})}};
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"}}};