@customize-agent/server 3.0.10 → 3.0.12

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 (95) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +56 -37
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/routes-manifest.json +6 -0
  5. package/.next/server/chunks/3445.js +39 -6
  6. package/.next/server/chunks/5076.js +1 -1
  7. package/.next/server/chunks/8204.js +1 -1
  8. package/.next/server/middleware-build-manifest.js +1 -1
  9. package/.next/server/pages/404.html +1 -1
  10. package/.next/server/pages/500.html +1 -1
  11. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  12. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  13. package/.next/server/pages/api/documents/export.js +1 -1
  14. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  15. package/.next/server/pages/api/documents/generate.js +1 -1
  16. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  17. package/.next/server/pages/api/documents/roles.js +1 -1
  18. package/.next/server/pages/api/documents/specs.js +1 -0
  19. package/.next/server/pages/api/documents/specs.js.nft.json +1 -0
  20. package/.next/server/pages/api/documents/templates.js +1 -1
  21. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  22. package/.next/server/pages/api/kb/categories.js +34 -1
  23. package/.next/server/pages/api/kb/duplicates.js +34 -1
  24. package/.next/server/pages/api/kb/files/detail.js +34 -1
  25. package/.next/server/pages/api/kb/files/open.js +34 -1
  26. package/.next/server/pages/api/kb/files/preview-pdf-page.js +34 -1
  27. package/.next/server/pages/api/kb/files/reindex.js +34 -1
  28. package/.next/server/pages/api/kb/files.js +34 -1
  29. package/.next/server/pages/api/kb/ignore.js +34 -1
  30. package/.next/server/pages/api/kb/operations.js +34 -1
  31. package/.next/server/pages/api/kb/reindex.js +34 -1
  32. package/.next/server/pages/api/kb/search.js +34 -1
  33. package/.next/server/pages/api/kb/stats.js +34 -1
  34. package/.next/server/pages/api/kb/tags.js +34 -1
  35. package/.next/server/pages/api/kb/upload.js +34 -1
  36. package/.next/server/pages/context/long-term.html +1 -1
  37. package/.next/server/pages/context/short-term.html +1 -1
  38. package/.next/server/pages/document-roles.html +1 -1
  39. package/.next/server/pages/document-specs.html +1 -0
  40. package/.next/server/pages/document-specs.js.nft.json +1 -0
  41. package/.next/server/pages/documents.html +1 -1
  42. package/.next/server/pages/guide.html +1 -1
  43. package/.next/server/pages/index.html +1 -1
  44. package/.next/server/pages/knowledge/file-detail.html +1 -1
  45. package/.next/server/pages/knowledge/files.html +1 -1
  46. package/.next/server/pages/knowledge/manage.html +1 -1
  47. package/.next/server/pages/knowledge/search.html +1 -1
  48. package/.next/server/pages/knowledge.html +1 -1
  49. package/.next/server/pages/models.html +1 -1
  50. package/.next/server/pages/overview.html +1 -1
  51. package/.next/server/pages/prompt.html +1 -1
  52. package/.next/server/pages/settings.html +1 -1
  53. package/.next/server/pages-manifest.json +25 -23
  54. package/.next/static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js +1 -0
  55. package/.next/static/chunks/400-f06f00619f22421e.js +78 -0
  56. package/.next/static/chunks/730-727fe4b055c78dc2.js +1 -0
  57. package/.next/static/chunks/740-2bcba39d841f2b16.js +16 -0
  58. package/.next/static/chunks/746-120983153bceeea6.js +1 -0
  59. package/.next/static/chunks/804-b11aef99b57308a3.js +11 -0
  60. package/.next/static/chunks/{845-b394c886baabe12f.js → 804-e654a1589d9adc65.js} +3 -3
  61. package/.next/static/chunks/846-fed995f7c83fc6c3.js +1 -0
  62. package/.next/static/chunks/958-66e2dcf301fb3c3f.js +1 -0
  63. package/.next/static/chunks/pages/{_app-15fb8428c7126df0.js → _app-725afbb7d3371a13.js} +9 -9
  64. package/.next/static/chunks/pages/_error-49c333927e615faa.js +1 -0
  65. package/.next/static/chunks/pages/context/long-term-dba1d735f2b5e12b.js +1 -0
  66. package/.next/static/chunks/pages/context/short-term-7cc72881b42b74fb.js +1 -0
  67. package/.next/static/chunks/pages/document-roles-653f01136b58197b.js +1 -0
  68. package/.next/static/chunks/pages/document-specs-120681be3e183b9e.js +1 -0
  69. package/.next/static/chunks/pages/documents-93e638518deec9b5.js +1 -0
  70. package/.next/static/chunks/pages/documents-a72286e23487eaf7.js +1 -0
  71. package/.next/static/chunks/pages/{guide-0aa6938c95fd8152.js → guide-b495954d18d56b33.js} +1 -1
  72. package/.next/static/chunks/pages/guide-f6ad48fc4e564c1c.js +1 -0
  73. package/.next/static/chunks/pages/knowledge/{file-detail-21dbc84d04f969ca.js → file-detail-793d12234ccddac1.js} +1 -1
  74. package/.next/static/chunks/pages/knowledge/{files-369d7ccf6a6e4e43.js → files-a3a4bbc49c980b46.js} +1 -1
  75. package/.next/static/chunks/pages/knowledge/manage-5d501503e54b4424.js +1 -0
  76. package/.next/static/chunks/pages/knowledge/manage-64ad6cdce068edb1.js +1 -0
  77. package/.next/static/chunks/pages/knowledge/{search-5a199ff773f7938b.js → search-fe148477dfe05966.js} +1 -1
  78. package/.next/static/chunks/pages/models-0fb086e70387dde1.js +1 -0
  79. package/.next/static/chunks/pages/overview-9fbf5907184af472.js +1 -0
  80. package/.next/static/chunks/pages/overview-db5df4f0bec2a77c.js +1 -0
  81. package/.next/static/chunks/pages/{prompt-654d82321a383233.js → prompt-d9996cf322de0125.js} +1 -1
  82. package/.next/static/he1VpXuNk12nGqt9mP7Jd/_buildManifest.js +1 -0
  83. package/.next/static/he1VpXuNk12nGqt9mP7Jd/_ssgManifest.js +1 -0
  84. package/package.json +4 -4
  85. package/.next/static/PkdECgLy3eGpkRC2sc90n/_buildManifest.js +0 -1
  86. package/.next/static/chunks/228-7112f995b33b1fd3.js +0 -1
  87. package/.next/static/chunks/951-320008e618be7e4f.js +0 -1
  88. package/.next/static/chunks/pages/context/long-term-9685fc1fd8397807.js +0 -1
  89. package/.next/static/chunks/pages/context/short-term-86f5d204405bb05c.js +0 -1
  90. package/.next/static/chunks/pages/document-roles-1449654aa961426e.js +0 -1
  91. package/.next/static/chunks/pages/documents-dc6582d6886d4fb6.js +0 -1
  92. package/.next/static/chunks/pages/knowledge/manage-447ce42652c203f4.js +0 -1
  93. package/.next/static/chunks/pages/models-fc67c4147d2aa3cb.js +0 -1
  94. package/.next/static/chunks/pages/overview-558db8205a06d058.js +0 -1
  95. /package/.next/static/{PkdECgLy3eGpkRC2sc90n → ZG2x_4BgDtQoIcW28iwgH}/_ssgManifest.js +0 -0
package/.next/BUILD_ID CHANGED
@@ -1 +1 @@
1
- PkdECgLy3eGpkRC2sc90n
1
+ ZG2x_4BgDtQoIcW28iwgH
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/PkdECgLy3eGpkRC2sc90n/_buildManifest.js",
9
- "static/PkdECgLy3eGpkRC2sc90n/_ssgManifest.js"
8
+ "static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js",
9
+ "static/ZG2x_4BgDtQoIcW28iwgH/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [],
12
12
  "rootMainFilesTree": {},
@@ -22,7 +22,7 @@
22
22
  "static/chunks/framework-b5223c1542334872.js",
23
23
  "static/chunks/main-1a03005b3754c708.js",
24
24
  "static/css/5237c5e3358f3282.css",
25
- "static/chunks/pages/_app-15fb8428c7126df0.js"
25
+ "static/chunks/pages/_app-725afbb7d3371a13.js"
26
26
  ],
27
27
  "/_error": [
28
28
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -40,14 +40,14 @@
40
40
  "static/chunks/201-b16b4788042ed1aa.js",
41
41
  "static/chunks/668-662b7bc81e4ad48f.js",
42
42
  "static/chunks/227-442963c7b630eade.js",
43
- "static/chunks/740-cd38299e151d3ffc.js",
43
+ "static/chunks/740-2bcba39d841f2b16.js",
44
44
  "static/chunks/174-e7df14600b457a5c.js",
45
45
  "static/chunks/492-62671486700ed3f9.js",
46
- "static/chunks/446-0591221372df7d49.js",
47
- "static/chunks/400-ba996d76e74a7368.js",
48
46
  "static/chunks/455-e31becaaf948f868.js",
47
+ "static/chunks/446-0591221372df7d49.js",
48
+ "static/chunks/400-f06f00619f22421e.js",
49
49
  "static/chunks/257-ba16dfe16a27f417.js",
50
- "static/chunks/pages/context/long-term-9685fc1fd8397807.js"
50
+ "static/chunks/pages/context/long-term-dba1d735f2b5e12b.js"
51
51
  ],
52
52
  "/context/short-term": [
53
53
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -59,14 +59,14 @@
59
59
  "static/chunks/201-b16b4788042ed1aa.js",
60
60
  "static/chunks/668-662b7bc81e4ad48f.js",
61
61
  "static/chunks/227-442963c7b630eade.js",
62
- "static/chunks/740-cd38299e151d3ffc.js",
62
+ "static/chunks/740-2bcba39d841f2b16.js",
63
63
  "static/chunks/174-e7df14600b457a5c.js",
64
64
  "static/chunks/492-62671486700ed3f9.js",
65
- "static/chunks/446-0591221372df7d49.js",
66
- "static/chunks/400-ba996d76e74a7368.js",
67
65
  "static/chunks/455-e31becaaf948f868.js",
66
+ "static/chunks/446-0591221372df7d49.js",
67
+ "static/chunks/400-f06f00619f22421e.js",
68
68
  "static/chunks/257-ba16dfe16a27f417.js",
69
- "static/chunks/pages/context/short-term-86f5d204405bb05c.js"
69
+ "static/chunks/pages/context/short-term-7cc72881b42b74fb.js"
70
70
  ],
71
71
  "/document-roles": [
72
72
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -78,12 +78,31 @@
78
78
  "static/chunks/201-b16b4788042ed1aa.js",
79
79
  "static/chunks/668-662b7bc81e4ad48f.js",
80
80
  "static/chunks/227-442963c7b630eade.js",
81
- "static/chunks/740-cd38299e151d3ffc.js",
81
+ "static/chunks/740-2bcba39d841f2b16.js",
82
+ "static/chunks/174-e7df14600b457a5c.js",
83
+ "static/chunks/492-62671486700ed3f9.js",
84
+ "static/chunks/455-e31becaaf948f868.js",
85
+ "static/chunks/846-fed995f7c83fc6c3.js",
86
+ "static/chunks/pages/document-roles-653f01136b58197b.js"
87
+ ],
88
+ "/document-specs": [
89
+ "static/chunks/webpack-77d10b4726f13aa5.js",
90
+ "static/chunks/framework-b5223c1542334872.js",
91
+ "static/chunks/main-1a03005b3754c708.js",
92
+ "static/chunks/260-7a7a65a3ca8539ba.js",
93
+ "static/chunks/167-9f45623d7ea7ab43.js",
94
+ "static/chunks/382-dd7535429e16931b.js",
95
+ "static/chunks/201-b16b4788042ed1aa.js",
96
+ "static/chunks/668-662b7bc81e4ad48f.js",
97
+ "static/chunks/227-442963c7b630eade.js",
98
+ "static/chunks/740-2bcba39d841f2b16.js",
82
99
  "static/chunks/174-e7df14600b457a5c.js",
83
100
  "static/chunks/492-62671486700ed3f9.js",
84
101
  "static/chunks/455-e31becaaf948f868.js",
85
- "static/chunks/951-320008e618be7e4f.js",
86
- "static/chunks/pages/document-roles-1449654aa961426e.js"
102
+ "static/chunks/992-ea93dfa182a02a8e.js",
103
+ "static/chunks/846-fed995f7c83fc6c3.js",
104
+ "static/chunks/746-120983153bceeea6.js",
105
+ "static/chunks/pages/document-specs-120681be3e183b9e.js"
87
106
  ],
88
107
  "/documents": [
89
108
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -95,14 +114,14 @@
95
114
  "static/chunks/201-b16b4788042ed1aa.js",
96
115
  "static/chunks/668-662b7bc81e4ad48f.js",
97
116
  "static/chunks/227-442963c7b630eade.js",
98
- "static/chunks/740-cd38299e151d3ffc.js",
117
+ "static/chunks/740-2bcba39d841f2b16.js",
99
118
  "static/chunks/174-e7df14600b457a5c.js",
100
119
  "static/chunks/492-62671486700ed3f9.js",
101
120
  "static/chunks/455-e31becaaf948f868.js",
102
121
  "static/chunks/292-c2888a94068fae74.js",
103
- "static/chunks/228-7112f995b33b1fd3.js",
104
- "static/chunks/951-320008e618be7e4f.js",
105
- "static/chunks/pages/documents-dc6582d6886d4fb6.js"
122
+ "static/chunks/846-fed995f7c83fc6c3.js",
123
+ "static/chunks/730-727fe4b055c78dc2.js",
124
+ "static/chunks/pages/documents-93e638518deec9b5.js"
106
125
  ],
107
126
  "/guide": [
108
127
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -112,9 +131,9 @@
112
131
  "static/chunks/167-9f45623d7ea7ab43.js",
113
132
  "static/chunks/382-dd7535429e16931b.js",
114
133
  "static/chunks/292-c2888a94068fae74.js",
115
- "static/chunks/228-7112f995b33b1fd3.js",
116
- "static/chunks/845-b394c886baabe12f.js",
117
- "static/chunks/pages/guide-0aa6938c95fd8152.js"
134
+ "static/chunks/730-727fe4b055c78dc2.js",
135
+ "static/chunks/804-e654a1589d9adc65.js",
136
+ "static/chunks/pages/guide-b495954d18d56b33.js"
118
137
  ],
119
138
  "/knowledge": [
120
139
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -132,15 +151,15 @@
132
151
  "static/chunks/201-b16b4788042ed1aa.js",
133
152
  "static/chunks/668-662b7bc81e4ad48f.js",
134
153
  "static/chunks/227-442963c7b630eade.js",
135
- "static/chunks/740-cd38299e151d3ffc.js",
154
+ "static/chunks/740-2bcba39d841f2b16.js",
136
155
  "static/chunks/174-e7df14600b457a5c.js",
137
156
  "static/chunks/446-0591221372df7d49.js",
138
- "static/chunks/400-ba996d76e74a7368.js",
157
+ "static/chunks/400-f06f00619f22421e.js",
139
158
  "static/chunks/292-c2888a94068fae74.js",
140
159
  "static/chunks/969-8843874536e7fd83.js",
141
160
  "static/chunks/517-f43787133528ba48.js",
142
161
  "static/css/d284a7454d6f6b06.css",
143
- "static/chunks/pages/knowledge/file-detail-21dbc84d04f969ca.js"
162
+ "static/chunks/pages/knowledge/file-detail-793d12234ccddac1.js"
144
163
  ],
145
164
  "/knowledge/files": [
146
165
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -152,13 +171,13 @@
152
171
  "static/chunks/201-b16b4788042ed1aa.js",
153
172
  "static/chunks/668-662b7bc81e4ad48f.js",
154
173
  "static/chunks/227-442963c7b630eade.js",
155
- "static/chunks/740-cd38299e151d3ffc.js",
174
+ "static/chunks/740-2bcba39d841f2b16.js",
156
175
  "static/chunks/174-e7df14600b457a5c.js",
157
176
  "static/chunks/446-0591221372df7d49.js",
158
- "static/chunks/400-ba996d76e74a7368.js",
177
+ "static/chunks/400-f06f00619f22421e.js",
159
178
  "static/chunks/15-289cb38b53bafa4a.js",
160
179
  "static/css/d284a7454d6f6b06.css",
161
- "static/chunks/pages/knowledge/files-369d7ccf6a6e4e43.js"
180
+ "static/chunks/pages/knowledge/files-a3a4bbc49c980b46.js"
162
181
  ],
163
182
  "/knowledge/manage": [
164
183
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -169,13 +188,13 @@
169
188
  "static/chunks/382-dd7535429e16931b.js",
170
189
  "static/chunks/201-b16b4788042ed1aa.js",
171
190
  "static/chunks/227-442963c7b630eade.js",
172
- "static/chunks/740-cd38299e151d3ffc.js",
191
+ "static/chunks/740-2bcba39d841f2b16.js",
173
192
  "static/chunks/174-e7df14600b457a5c.js",
174
193
  "static/chunks/446-0591221372df7d49.js",
175
- "static/chunks/400-ba996d76e74a7368.js",
176
- "static/chunks/958-0793922b6b146891.js",
194
+ "static/chunks/400-f06f00619f22421e.js",
195
+ "static/chunks/958-66e2dcf301fb3c3f.js",
177
196
  "static/chunks/891-b6a172e1df7ab8c1.js",
178
- "static/chunks/pages/knowledge/manage-447ce42652c203f4.js"
197
+ "static/chunks/pages/knowledge/manage-64ad6cdce068edb1.js"
179
198
  ],
180
199
  "/knowledge/search": [
181
200
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -191,7 +210,7 @@
191
210
  "static/chunks/992-ea93dfa182a02a8e.js",
192
211
  "static/chunks/969-8843874536e7fd83.js",
193
212
  "static/css/d284a7454d6f6b06.css",
194
- "static/chunks/pages/knowledge/search-5a199ff773f7938b.js"
213
+ "static/chunks/pages/knowledge/search-fe148477dfe05966.js"
195
214
  ],
196
215
  "/models": [
197
216
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -202,12 +221,12 @@
202
221
  "static/chunks/382-dd7535429e16931b.js",
203
222
  "static/chunks/201-b16b4788042ed1aa.js",
204
223
  "static/chunks/668-662b7bc81e4ad48f.js",
205
- "static/chunks/740-cd38299e151d3ffc.js",
224
+ "static/chunks/740-2bcba39d841f2b16.js",
206
225
  "static/chunks/492-62671486700ed3f9.js",
207
226
  "static/chunks/455-e31becaaf948f868.js",
208
227
  "static/chunks/992-ea93dfa182a02a8e.js",
209
228
  "static/css/0e153583d22cc52e.css",
210
- "static/chunks/pages/models-fc67c4147d2aa3cb.js"
229
+ "static/chunks/pages/models-0fb086e70387dde1.js"
211
230
  ],
212
231
  "/overview": [
213
232
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -217,9 +236,9 @@
217
236
  "static/chunks/167-9f45623d7ea7ab43.js",
218
237
  "static/chunks/227-442963c7b630eade.js",
219
238
  "static/chunks/15-289cb38b53bafa4a.js",
220
- "static/chunks/958-0793922b6b146891.js",
239
+ "static/chunks/958-66e2dcf301fb3c3f.js",
221
240
  "static/chunks/851-1190cb42a0630eef.js",
222
- "static/chunks/pages/overview-558db8205a06d058.js"
241
+ "static/chunks/pages/overview-db5df4f0bec2a77c.js"
223
242
  ],
224
243
  "/prompt": [
225
244
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -232,7 +251,7 @@
232
251
  "static/chunks/668-662b7bc81e4ad48f.js",
233
252
  "static/chunks/492-62671486700ed3f9.js",
234
253
  "static/chunks/446-0591221372df7d49.js",
235
- "static/chunks/pages/prompt-654d82321a383233.js"
254
+ "static/chunks/pages/prompt-d9996cf322de0125.js"
236
255
  ],
237
256
  "/settings": [
238
257
  "static/chunks/webpack-77d10b4726f13aa5.js",
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "34066df43f189c873234065c281336af",
7
- "previewModeSigningKey": "929498ca259a860733022cdfe5c5b7552164186318f6ad76e44e4db356b92693",
8
- "previewModeEncryptionKey": "f6393fda6e253746bc9a230c1995e7c68e1650b83a5c3dd3580d5b570a4c6d3a"
6
+ "previewModeId": "f815f088e1d2d63d1b69f7a71f66bf1a",
7
+ "previewModeSigningKey": "80fb4f104195f3487daeda6114594a45a061796dff79074f0cf1c6c34daa3a04",
8
+ "previewModeEncryptionKey": "a01474e9beec3809c1b22b0da7948ba7e3d4ab9a12431027fcb1193363b1eef2"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -98,6 +98,12 @@
98
98
  "routeKeys": {},
99
99
  "namedRegex": "^/document\\-roles(?:/)?$"
100
100
  },
101
+ {
102
+ "page": "/document-specs",
103
+ "regex": "^/document\\-specs(?:/)?$",
104
+ "routeKeys": {},
105
+ "namedRegex": "^/document\\-specs(?:/)?$"
106
+ },
101
107
  {
102
108
  "page": "/documents",
103
109
  "regex": "^/documents(?:/)?$",
@@ -1,9 +1,42 @@
1
- "use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>k,aY:()=>m});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`)}function m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!l(a))}finally{b.close()}}();return c.length>0?c[0]:a&&!l(process.cwd())?process.cwd():""}},73445:(a,b,c)=>{c.d(b,{Bh:()=>s,OX:()=>B,R1:()=>C,bV:()=>u,h0:()=>t,jG:()=>q});var d=c(73024),e=c(76760),f=c(48161),g=c(95393),h=c(23328),i=c(2323),j=c(89952);let k=[{id:"construction-organization-design",name:"施工组织设计",description:"根据招标文件、图纸、清单、表格和项目资料生成施工组织设计草稿。",category:"工程建设",outputTitle:"施工组织设计",chapters:[{id:"basis",title:"第一章 编制依据",purpose:"整理招标文件、图纸、规范和编制说明。",requiredFacts:["招标文件","图纸","规范标准"],queries:["招标文件 编制依据 技术规范 标准 图纸 合同","规范 标准 图纸 招标文件"]},{id:"overview",title:"第二章 工程概况",purpose:"提取工程名称、地点、规模、范围和建设条件。",requiredFacts:["工程名称","工程地点","工程规模","施工范围"],queries:["工程名称 工程地点 建设单位 工程规模 建筑面积 结构类型","工程概况 招标范围 项目规模"]},{id:"deployment",title:"第三章 施工部署",purpose:"形成项目组织、施工区段和总体部署。",requiredFacts:["施工部署","组织机构","施工段"],queries:["施工部署 项目组织机构 施工段划分 总体安排","施工组织 施工顺序 施工流水"]},{id:"schedule",title:"第四章 施工进度计划及保证措施",purpose:"提取工期、节点、进度要求并形成保证措施。",requiredFacts:["工期要求","节点工期"],queries:["工期要求 开工 竣工 进度计划 节点工期","工期 进度 保证措施"]},{id:"preparation",title:"第五章 施工准备",purpose:"整理技术、现场、材料、机械和劳动力准备。",requiredFacts:["技术准备","现场准备","材料准备"],queries:["施工准备 技术准备 现场准备 材料准备 机械准备","临设 水电 进场 准备"]},{id:"methods",title:"第六章 主要分部分项工程施工方案",purpose:"依据工程范围生成主要施工方法。",requiredFacts:["主要分部分项工程","施工工艺"],queries:["土方 基础 主体 砌体 装饰 安装 道路 管线 主要施工方法","分部分项 施工工艺 技术措施"]},{id:"quality",title:"第七章 质量保证体系及措施",purpose:"形成质量目标、体系和保证措施。",requiredFacts:["质量目标","质量标准"],queries:["质量目标 质量标准 验收规范 质量保证措施","质量管理 检验 试验"]},{id:"safety",title:"第八章 安全生产管理体系及措施",purpose:"形成安全目标、风险控制和应急管理。",requiredFacts:["安全目标","安全要求"],queries:["安全目标 安全文明施工 安全管理 危险源 应急预案","安全生产 风险 防护"]},{id:"civilized",title:"第九章 文明施工及环境保护措施",purpose:"整理文明施工、扬尘、噪声、污水和固废措施。",requiredFacts:["文明施工","环境保护"],queries:["文明施工 环境保护 扬尘 噪声 污水 固废","绿色施工 环保 控制措施"]},{id:"resources",title:"第十章 劳动力、材料、机械设备投入计划",purpose:"提取资源计划和相关表格。",requiredFacts:["劳动力计划","材料计划","机械设备计划"],queries:["劳动力计划 材料计划 机械设备计划 主要设备 表格","资源投入 机械 劳动力 材料"]},{id:"layout",title:"第十一章 施工总平面布置",purpose:"整理临设、道路、水电、堆场和平面布置要求。",requiredFacts:["施工总平面布置"],queries:["施工平面布置 临时设施 道路 水电 堆场","总平面布置 临时用地"]},{id:"season",title:"第十二章 季节性施工措施",purpose:"形成雨季、冬季、高温、防汛等措施。",requiredFacts:["季节性施工要求"],queries:["雨季施工 冬季施工 高温施工 台风 防汛","季节性施工 措施"]},{id:"emergency",title:"第十三章 应急预案",purpose:"形成风险、组织、响应和救援措施。",requiredFacts:["应急预案"],queries:["应急预案 风险 应急组织 救援措施","事故 应急 响应"]},{id:"appendix",title:"第十四章 附表及附件",purpose:"汇总附件、表格、图纸和来源清单。",requiredFacts:["附表","附件"],queries:["附表 计划表 机械表 劳动力表 进度表","附件 表格 清单 图纸"]}],builtIn:!0}];function l(){let a=e.join(f.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function m(){return e.join(l(),"document-templates.json")}function n(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"业务文档",projectRoleConfigId:a.projectRoleConfigId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"业务文档",purpose:a.description||"",queries:[],requiredFacts:[]}],promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],boundFilePaths:Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean):[],promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],fileBindings:Array.isArray(a.fileBindings)?a.fileBindings.filter(a=>a.filePath&&a.roleId):Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean).map(a=>({filePath:a,roleId:"project_fact"})):[],builtIn:!1}}function o(){try{let a=m();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(n)}catch{return[]}}function p(a){d.writeFileSync(m(),JSON.stringify(a.map(n),null,2),"utf-8")}function q(){return[...k,...o()]}function r(a){return q().find(b=>b.id===a)}function s(a){let b=n(a);if(k.some(a=>a.id===b.id))throw Error("Built-in template cannot be overwritten");let c=o().filter(a=>a.id!==b.id);return c.push(b),p(c),b}function t(a){if(k.some(b=>b.id===a))throw Error("Built-in template cannot be deleted");p(o().filter(b=>b.id!==a))}function u(a){let b=r(a);if(!b)throw Error("Document template not found");let c=n({...b,id:`${b.id}-copy-${Date.now()}`,name:`${b.name} Copy`,builtIn:!1}),d=o();return d.push(c),p(d),c}function v(a,b){let c=new Set;return a.sort((a,b)=>b.score-a.score).filter(a=>{let b=`${a.filePath}:${a.content.slice(0,100)}`;return!c.has(b)&&(c.add(b),!0)}).slice(0,b)}function w(a){return`- ${a.filePath}(score=${a.score.toFixed(3)}):${a.content.replace(/\s+/gu," ").slice(0,260)}`}function x(a){if(a.projectRoleConfigId){let b=(0,j.Mu)(a.projectRoleConfigId),c=(0,j.XB)("prompt");if(b)return[...b.promptRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a?.resourceId).map(a=>({promptId:a.resourceId,roleId:a.id}))}return a.promptBindings?.length?a.promptBindings:(a.promptIds??[]).map(a=>({promptId:a,roleId:"chapter_generation"}))}function y(a){if(a.projectRoleConfigId){let b=(0,j.Mu)(a.projectRoleConfigId),c=(0,j.XB)("file");if(b)return[...b.fileRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a?.resourceId).map(a=>({filePath:a.resourceId,roleId:a.id}))}return a.fileBindings?.length?a.fileBindings:(a.boundFilePaths??[]).map(a=>({filePath:a,roleId:"project_fact"}))}async function z(a,b){try{let c=(0,i.I)().load(),d=c.models.reasoning.active||c.models.action.active||c.models.reader.active,e=[...c.models.reasoning.list,...c.models.action.list,...c.models.reader.list].find(a=>a.name===d);if(!e)return;let f=c.providers[e.provider];if(!f)return;let h=(0,g.createProvider)(e.provider,{baseUrl:f.baseUrl,apiKey:f.apiKey,modelName:e.name}),j=(await h.chat([{role:"system",content:`${a}
2
- 只返回 JSON,不要返回 markdown。`},{role:"user",content:b}],{temperature:0})).content.trim().replace(/^```json\s*/u,"").replace(/^```\s*/u,"").replace(/```$/u,"").trim();return JSON.parse(j)}catch{return}}async function A(a,b){let c=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],d=a.slice(0,20).map(a=>`文件:${a.filePath}
1
+ "use strict";exports.id=3445,exports.ids=[3445],exports.modules={2323:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(96770);let e=null;function f(){return e||(e=new d.ConfigStore),e}},23328:(a,b,c)=>{c.d(b,{Qh:()=>k,aY:()=>m});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`)}function m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
2
+
3
+ 公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
4
+
5
+ 写作要求:
6
+ - 面向新手和进阶玩家,语言要直白。
7
+ - 必须解释干员定位、技能价值、适用场景和常见误区。
8
+ - 不能把没有来源的数据写成确定结论。
9
+ - 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
10
+
11
+ 攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
12
+ 适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
13
+
14
+ ## 热门干员
15
+ - 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
16
+ - 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
17
+ - 牧羊人:工程定位,适合控场、防守、限制敌方推进。
18
+ - 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
19
+
20
+ 实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
21
+ 露娜,侦察,5,中,信息侦察和路线判断
22
+ 红狼,突击,5,中高,突破和正面交火
23
+ 牧羊人,工程,4,中,防守控场和区域封锁
24
+ 蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
25
+
26
+ 示意说明:
27
+ - 侦察位优先观察主通道和侧翼。
28
+ - 突击位沿掩体推进,不要单独深入。
29
+ - 工程位在关键入口布置控场手段。
30
+ - 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
31
+
32
+ 必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
33
+ 推荐写法:先讲结论,再讲原因,最后给操作建议。
34
+ 导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:要求攻略必须包含干员名称、定位、推荐指数、热门干员章节和表格数据。",factFields:[{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数和上手难度。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:80,requiredFactIds:["operator-name"]},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:120,requiredFactIds:["operator-name","operator-role"]},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:80,requiredFactIds:["recommend-score"]}],gateRules:[{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-no-missing",name:"不能出现资料未提供",type:"forbidden_text",level:"error",value:"资料未提供"}],wordTemplatePath:""};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||""}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73445:(a,b,c)=>{c.d(b,{Bh:()=>v,OX:()=>F,R1:()=>G,bV:()=>x,h0:()=>w,jG:()=>t});var d=c(73024),e=c(76760),f=c(15751),g=c(48161),h=c(95393),i=c(23328),j=c(2323),k=c(89952),l=c(57367);let m=[{id:"delta-force-hot-operators-guide",name:"三角洲热门干员攻略",description:"内置全流程示例:基于示例攻略资料、表格、规则和规范包生成热门干员攻略文档。",category:"游戏攻略",outputTitle:"三角洲热门干员攻略",projectRoleConfigId:"delta-force-demo-config",documentSpecId:"delta-force-demo-spec",chapters:[{id:"overview",title:"第一章 攻略目标和适用人群",purpose:"说明攻略面向的新手/进阶玩家和使用场景。",requiredFacts:["攻略目标","适用人群"],queries:["三角洲行动 干员 攻略 适用 新手 进阶"]},{id:"operators",title:"第二章 热门干员定位速览",purpose:"汇总热门干员定位、技能和推荐场景。",requiredFacts:["干员名称","定位","技能"],queries:["三角洲行动 干员 定位 技能 露娜 红狼 牧羊人 蜂医"]},{id:"loadout",title:"第三章 干员搭配和队伍分工",purpose:"按突击、侦察、支援、工程等职责给出队伍搭配。",requiredFacts:["队伍分工","搭配建议"],queries:["三角洲行动 干员 搭配 队伍 分工 突击 侦察 支援 工程"]},{id:"tables",title:"第四章 数据表和推荐优先级",purpose:"引用表格数据生成优先级和推荐清单。",requiredFacts:["推荐指数","上手难度"],queries:["干员 推荐指数 上手难度 表格 优先级"]},{id:"tips",title:"第五章 实战注意事项",purpose:"整理实战打法、误区和复盘建议。",requiredFacts:["实战技巧","注意事项"],queries:["三角洲行动 实战 技巧 注意事项 误区"]}],builtIn:!0}];function n(){let a=e.join(g.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function o(){return e.join(n(),"document-templates.json")}function p(a){return{...a,id:a.id.replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)||`template-${Date.now()}`,name:a.name||"未命名模板",description:a.description||"",category:a.category||"自定义",outputTitle:a.outputTitle||a.name||"业务文档",projectRoleConfigId:a.projectRoleConfigId||void 0,documentSpecId:a.documentSpecId||void 0,chapters:Array.isArray(a.chapters)&&a.chapters.length>0?a.chapters.map((a,b)=>({id:(a.id||`chapter-${b+1}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80),title:a.title||`第 ${b+1} 章`,purpose:a.purpose||"",queries:Array.isArray(a.queries)?a.queries.filter(Boolean):[],requiredFacts:Array.isArray(a.requiredFacts)?a.requiredFacts.filter(Boolean):[]})):[{id:"document",title:a.outputTitle||a.name||"业务文档",purpose:a.description||"",queries:[],requiredFacts:[]}],promptIds:Array.isArray(a.promptIds)?a.promptIds.filter(Boolean):[],boundFilePaths:Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean):[],promptBindings:Array.isArray(a.promptBindings)?a.promptBindings.filter(a=>a.promptId&&a.roleId):Array.isArray(a.promptIds)?a.promptIds.filter(Boolean).map(a=>({promptId:a,roleId:"chapter_generation"})):[],fileBindings:Array.isArray(a.fileBindings)?a.fileBindings.filter(a=>a.filePath&&a.roleId):Array.isArray(a.boundFilePaths)?a.boundFilePaths.filter(Boolean).map(a=>({filePath:a,roleId:"project_fact"})):[],builtIn:!1}}function q(){try{let a=o();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(p)}catch{return[]}}function r(a){d.writeFileSync(o(),JSON.stringify(a.map(p),null,2),"utf-8")}let s={"builtin:delta-fact-extraction":{name:"三角洲事实抽取",content:"请从资料中抽取干员名称、定位、技能、推荐指数、上手难度、推荐场景,输出结构化事实,不要编造。"},"builtin:delta-chapter-generation":{name:"三角洲章节生成",content:"请用新手能看懂的大白话生成攻略,先给结论,再解释原因,最后给实战建议。必须引用表格数据和来源资料。"},"builtin:delta-validation":{name:"三角洲攻略校验",content:"检查是否覆盖露娜、红狼、牧羊人、蜂医;是否有推荐表格;是否出现资料未提供;是否有来源。"}};function t(){return[...m,...q()]}function u(a){return t().find(b=>b.id===a)}function v(a){let b=p(a);if(m.some(a=>a.id===b.id))throw Error("Built-in template cannot be overwritten");let c=q().filter(a=>a.id!==b.id);return c.push(b),r(c),b}function w(a){if(m.some(b=>b.id===a))throw Error("Built-in template cannot be deleted");r(q().filter(b=>b.id!==a))}function x(a){let b=u(a);if(!b)throw Error("Document template not found");let c=p({...b,id:`${b.id}-copy-${Date.now()}`,name:`${b.name} Copy`,builtIn:!1}),d=q();return d.push(c),r(d),c}function y(a,b){let c=new Set;return a.sort((a,b)=>b.score-a.score).filter(a=>{let b=`${a.filePath}:${a.content.slice(0,100)}`;return!c.has(b)&&(c.add(b),!0)}).slice(0,b)}function z(a){return`- ${a.filePath}(score=${a.score.toFixed(3)}):${a.content.replace(/\s+/gu," ").slice(0,260)}`}function A(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("prompt");if(b)return[...b.promptRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({promptId:b,roleId:a.id})))}return a.promptBindings?.length?a.promptBindings:(a.promptIds??[]).map(a=>({promptId:a,roleId:"chapter_generation"}))}function B(a){if(a.projectRoleConfigId){let b=(0,k.Mu)(a.projectRoleConfigId),c=(0,k.XB)("file");if(b)return[...b.fileRoles].sort((a,b)=>a.order-b.order).map(a=>c.find(b=>b.id===a.roleId)).filter(a=>!!a).flatMap(a=>(a.resourceIds?.length?a.resourceIds:a.resourceId?[a.resourceId]:[]).map(b=>({filePath:b,roleId:a.id})))}return a.fileBindings?.length?a.fileBindings:(a.boundFilePaths??[]).map(a=>({filePath:a,roleId:"project_fact"}))}async function C(a,b){try{let c=(0,j.I)().load(),d=c.models.reasoning.active||c.models.action.active||c.models.reader.active,e=[...c.models.reasoning.list,...c.models.action.list,...c.models.reader.list].find(a=>a.name===d);if(!e)return;let f=c.providers[e.provider];if(!f)return;let g=(0,h.createProvider)(e.provider,{baseUrl:f.baseUrl,apiKey:f.apiKey,modelName:e.name}),i=(await g.chat([{role:"system",content:`${a}
35
+ 只返回 JSON,不要返回 markdown。`},{role:"user",content:b}],{temperature:0})).content.trim().replace(/^```json\s*/u,"").replace(/^```\s*/u,"").replace(/```$/u,"").trim();return JSON.parse(i)}catch{return}}async function D(a,b){let c=[{type:"fact_extraction",roleId:"llm-json",status:"skipped",message:"LLM JSON 抽取未启用或无可用模型"}],d=a.slice(0,20).map(a=>`文件:${a.filePath}
3
36
  角色:${a.roleId||""}
4
37
  处理:${a.processingType||""}
5
- 内容:${a.content.slice(0,1200)}`).join("\n\n---\n\n");if(!d.trim())return{facts:[],stages:c};let e=await z(b||"你是工程文档事实抽取器。",`请从资料中抽取工程文档结构化事实,返回 {"facts":[{"key":"工程名称","value":"...","sourceFile":"...","roleId":"...","processingType":"project_fact","confidence":0.8}]}。
38
+ 内容:${a.content.slice(0,1200)}`).join("\n\n---\n\n");if(!d.trim())return{facts:[],stages:c};let e=await C(b||"你是工程文档事实抽取器。",`请从资料中抽取工程文档结构化事实,返回 {"facts":[{"key":"工程名称","value":"...","sourceFile":"...","roleId":"...","processingType":"project_fact","confidence":0.8}]}。
6
39
 
7
- ${d}`);return e?.facts?.length?{facts:e.facts.filter(a=>a.key&&a.value).map(a=>({key:a.key,value:a.value,sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}})),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 抽取 ${e.facts.length} 条事实`}]}:{facts:[],stages:c}}async function B(a){let b=r(a.templateId);if(!b)throw Error("Document template not found");let c=a.projectRoot||(0,h.aY)();if(!c)throw Error("No knowledge base project found");let f=(0,h.Qh)(),g=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),i=x(b),k=y(b),m=(function(a=[]){let b;if(0===a.length)return[];let c=[];try{let a=JSON.parse(d.readFileSync(e.join(l(),"prompts.json"),"utf-8"));b=Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{b=[]}for(let f of a){let a=f.promptId;if(a.startsWith("custom:")){let d=b.find(b=>b.id===a);d&&c.push({id:a,roleId:f.roleId,name:d.name,content:d.content});continue}if(a.startsWith("file:")){let b=a.slice(5);d.existsSync(b)&&c.push({id:a,roleId:f.roleId,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8")})}}return c})(i).map(a=>`## [${a.roleId}] ${a.name}
8
- ${a.content}`).join("\n\n"),n=new Set(k.map(a=>a.filePath)),o=(0,j.XB)("file"),p=new Map(k.map(a=>[a.filePath,a.roleId])),q=new Map(k.map(a=>[a.filePath,o.find(b=>b.id===a.roleId)?.processingType||"reference"])),s=await f.getProject(c);await s.incrementalIndex();let t=[],u=[],z=[];for(let a of b.chapters){let d=[];for(let e of a.queries.length>0?a.queries:[b.name,b.outputTitle,a.title,...k.map(a=>a.filePath)]){let b=await f.search(c,e,{scope:"project",limit:Math.max(g,n.size>0?30:g),weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});d.push(...b.results.filter(a=>0===n.size||n.has(a.filePath)).map(b=>({chapterId:a.id,filePath:b.filePath,score:b.score,content:b.content,roleId:p.get(b.filePath),processingType:q.get(b.filePath),sectionTitle:b.sectionTitle,source:b.source})))}for(let b of n){let c=s.getFileDetail(b);c&&d.push(...c.chunks.slice(0,Math.max(g,20)).map(b=>({chapterId:a.id,filePath:c.file.relativePath,score:1,content:b.content,roleId:p.get(c.file.relativePath),processingType:q.get(c.file.relativePath),sectionTitle:b.sectionTitle,source:"bound-file"})))}let e=v(d,g);u.push(...e);let h=a.requiredFacts.filter(a=>!e.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a)));for(let b of(0===e.length&&z.push(`${a.title}:未检索到明确资料依据`),h))z.push(`${a.title}:${b} 未检索到明确依据`);let i=[`## ${a.title}`,"",m?`### 模板绑定提示词规则
9
- ${m.slice(0,3e3)}`:"","",e.length>0?`本章根据模板绑定资料围绕“${a.purpose||b.description}”整理。`:"模板绑定资料未检索到明确内容,需进一步确认。","",e.length>0?"### 资料依据":"",...e.map(w),"",h.length>0?"### 待确认事项":"",...h.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");t.push({id:a.id,title:a.title,content:i,evidence:e,missingFacts:h})}let B=function(a,b){let c={};for(let d of[...new Set(a.chapters.flatMap(a=>a.requiredFacts))]){let a=b.find(a=>a.content.includes(d.replace(/要求|计划|目标|标准/gu,""))||a.content.includes(d));a&&(c[d]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath})`)}return c}(b,u),C=function(a){let b=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u]],c=[];for(let d of a)for(let[a,e]of b){let b=d.content.match(e);b?.[1]&&!c.some(c=>c.key===a&&c.value===b[1].trim())&&c.push({key:a,value:b[1].trim().slice(0,300),sourceFile:d.filePath,roleId:d.roleId||"unknown",processingType:d.processingType,confidence:d.score})}return c}(u),D=await A(u,m),E=[...C,...D.facts],F=function(a){let b=[];for(let c of a.filter(a=>"table"===a.processingType)){let a=c.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(a.length<2)continue;let d=a[0].includes("|")?"|":a[0].includes(" ")?" ":",",e=a.map(a=>a.split(d).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);e.length<2||b.push({tableType:c.roleId||"table",headers:e[0],rows:e.slice(1,80),sourceFile:c.filePath,sourceRange:c.sectionTitle})}return b}(u);for(let a of E)B[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let G=new Map;for(let a of u)G.set(a.filePath,(G.get(a.filePath)??0)+1);let H=[...G.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),I=function(a,b=[],c=[]){let d=b=>a.filter(a=>b.some(b=>a.key.includes(b))),e=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:d(["工程名称","工程地点","建设单位","施工范围"]),schedule:d(["工期","开工","竣工","节点"]),quality:d(["质量"]),safety:d(["安全"]),resources:d(["劳动力","材料","机械","设备"]),tables:b,drawings:e("drawing"),rules:e("rule"),specifications:e("specification"),missing:[...new Set(c)],conflicts:[]}}(E,F,z),J=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===y(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===x(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(t,B,E,b),K=function(a,b,c){let d=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return 0===b.project.length&&d.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&d.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&d.push(...b.conflicts.map(a=>({level:"error",message:a}))),d}(J,I,t),L=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(K,I,t),M=[...D.stages,{type:"chapter_generation",roleId:"document-workflow",status:"success",message:`生成 ${t.length} 个章节`},{type:"validation",roleId:"document-workflow",status:J.errors.length>0?"failed":"success",message:`错误 ${J.errors.length},警告 ${J.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"}],N={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||(i.length?`使用模板绑定提示词:${i.map(a=>`${a.promptId}(${a.roleId})`).join(", ")}`:""),facts:B,structuredFacts:E,factsModel:I,chapters:t,sources:H,missingItems:[...new Set(z)],validation:J,validationIssues:K,executionStages:M,exportGate:L,generatedAt:Date.now()};return{...N,markdown:['<div class="document-cover">',`# ${N.title}`,"",`**文档版本**:V1.0 `,`**生成时间**:${new Date(N.generatedAt).toLocaleString("zh-CN")} `,`**生成要求**:${N.requirement||"未填写"} `,"</div>","",'<div class="page-break"></div>',"","## 目录","",...N.chapters.map((a,b)=>`${b+1}. ${a.title}`),"",'<div class="page-break"></div>',"","## 结构化事实表","",Object.keys(N.facts).length>0?["| 事实项 | 依据 |","|---|---|",...Object.entries(N.facts).map(([a,b])=>`| ${a} | ${b.replace(/\|/gu," ")} |`)].join("\n"):"未抽取到明确事实,需人工确认。","",...N.chapters.flatMap(a=>[a.content,""]),"## 资料来源清单","","| 文件 | 引用次数 |","|---|---:|",...N.sources.map(a=>`| ${a.filePath} | ${a.count} |`),"","## 缺失项与需确认事项","",...N.missingItems.length>0?N.missingItems.map(a=>`- ${a}`):["- 暂未发现完全缺失章节;仍需人工复核关键数据。"],"","## 校验结果","",...N.validation.warnings.map(a=>`- 警告:${a}`),...N.validation.errors.map(a=>`- 错误:${a}`),"","## 严格校验清单","",...N.validationIssues.map(a=>`- ${a.level.toUpperCase()}:${a.message}${a.suggestion?`(建议:${a.suggestion})`:""}`)].join("\n")}}async function C(a){let b=r(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,h.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,h.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let i=v(g,f),j=c.requiredFacts.filter(a=>!i.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a))),k=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",i.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"资料未提供,需进一步确认。","",i.length>0?"### 资料依据":"",...i.map(w),"",j.length>0?"### 待确认事项":"",...j.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:k,evidence:i,missingFacts:j}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>p,FV:()=>o,Mu:()=>q,NR:()=>r,XB:()=>m,dg:()=>n,dw:()=>s});var d=c(73024),e=c(48161),f=c(76760);function g(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function h(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function i(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:h(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||void 0,executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function j(a){return{id:h(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function k(){try{let a=g();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(i),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(i):[],configs:Array.isArray(b.configs)?b.configs.map(j):[]}}catch{return{roles:[],configs:[]}}}function l(a){d.writeFileSync(g(),JSON.stringify({roles:a.roles.map(i),configs:a.configs.map(j)},null,2),"utf-8")}function m(a){let b=k().roles;return a?b.filter(b=>b.type===a):b}function n(a){let b=i(a),c=k();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),l(c),b}function o(a,b){let c=k();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),l(c)}function p(){return k().configs}function q(a){return k().configs.find(b=>b.id===a)}function r(a){let b=j(a),c=k();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),l(c),b}function s(a){let b=k();b.configs=b.configs.filter(b=>b.id!==a),l(b)}}};
40
+ ${d}`);return e?.facts?.length?{facts:e.facts.filter(a=>a.key&&a.value).map(a=>({key:a.key,value:a.value,sourceFile:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType,confidence:a.confidence??.8,sourceRef:{filePath:a.sourceFile||"",roleId:a.roleId||"llm",processingType:a.processingType}})),stages:[{type:"fact_extraction",roleId:"llm-json",status:"success",message:`LLM 抽取 ${e.facts.length} 条事实`}]}:{facts:[],stages:c}}function E(a){return['<div class="document-cover">',`# ${a.title}`,"",`**文档版本**:V1.0 `,`**生成时间**:${new Date(a.generatedAt).toLocaleString("zh-CN")} `,`**生成要求**:${a.requirement||"未填写"} `,"</div>","",'<div class="page-break"></div>',"","## 目录","",...a.chapters.map((a,b)=>`${b+1}. ${a.title}`),"",'<div class="page-break"></div>',"","## 结构化事实表","",Object.keys(a.facts).length>0?["| 事实项 | 依据 |","|---|---|",...Object.entries(a.facts).map(([a,b])=>`| ${a} | ${b.replace(/\|/gu," ")} |`)].join("\n"):"未抽取到明确事实,需人工确认。","",...a.chapters.flatMap(a=>[a.content,""]),"## 资料来源清单","","| 文件 | 引用次数 |","|---|---:|",...a.sources.map(a=>`| ${a.filePath} | ${a.count} |`),"","## 缺失项与需确认事项","",...a.missingItems.length>0?a.missingItems.map(a=>`- ${a}`):["- 暂未发现完全缺失章节;仍需人工复核关键数据。"],"","## 校验结果","",...a.validation.warnings.map(a=>`- 警告:${a}`),...a.validation.errors.map(a=>`- 错误:${a}`),"","## 严格校验清单","",...a.validationIssues.map(a=>`- ${a.level.toUpperCase()}:${a.message}${a.suggestion?`(建议:${a.suggestion})`:""}`)].join("\n")}async function F(a){let b=u(a.templateId);if(!b)throw Error("Document template not found");let c=a.projectRoot||(0,i.aY)();if(!c)throw Error("No knowledge base project found");let g=(0,i.Qh)(),h=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),j=A(b),m=B(b),o=(0,l.py)(b.documentSpecId),p=(function(a=[]){let b;if(0===a.length)return[];let c=[];try{let a=JSON.parse(d.readFileSync(e.join(n(),"prompts.json"),"utf-8"));b=Array.isArray(a.customPrompts)?a.customPrompts:[]}catch{b=[]}for(let f of a){let a=f.promptId;if(a.startsWith("builtin:")){let b=s[a];b&&c.push({id:a,roleId:f.roleId,name:b.name,content:b.content});continue}if(a.startsWith("custom:")){let d=b.find(b=>b.id===a);d&&c.push({id:a,roleId:f.roleId,name:d.name,content:d.content});continue}if(a.startsWith("file:")){let b=a.slice(5);d.existsSync(b)&&c.push({id:a,roleId:f.roleId,name:e.basename(e.dirname(b))||b,content:d.readFileSync(b,"utf-8")})}}return c})(j).map(a=>`## [${a.roleId}] ${a.name}
41
+ ${a.content}`).join("\n\n"),q=a=>[a,e.isAbsolute(a)?e.relative(c,a):e.join(c,a)],r=new Set(m.flatMap(a=>q(a.filePath))),t=(0,k.XB)("file"),v=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,a.roleId]))),w=new Map(m.flatMap(a=>q(a.filePath).map(b=>[b,t.find(b=>b.id===a.roleId)?.processingType||"reference"]))),x=await g.getProject(c);await x.incrementalIndex();let C=[],F=[],G=[];for(let a of b.chapters){let d=[];for(let e of a.queries.length>0?a.queries:[b.name,b.outputTitle,a.title,...m.map(a=>a.filePath)]){let b=await g.search(c,e,{scope:"project",limit:Math.max(h,r.size>0?30:h),weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});d.push(...b.results.filter(a=>0===r.size||r.has(a.filePath)).map(b=>({chapterId:a.id,filePath:b.filePath,score:b.score,content:b.content,roleId:v.get(b.filePath),processingType:w.get(b.filePath),sectionTitle:b.sectionTitle,source:b.source})))}for(let b of r){let c=x.getFileDetail(b);c&&d.push(...c.chunks.slice(0,Math.max(h,20)).map(b=>({chapterId:a.id,filePath:c.file.relativePath,score:1,content:b.content,roleId:v.get(c.file.relativePath),processingType:w.get(c.file.relativePath),sectionTitle:b.sectionTitle,source:"bound-file"})))}let e=y(d,h);F.push(...e);let f=a.requiredFacts.filter(a=>!e.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a)));for(let b of(0===e.length&&G.push(`${a.title}:未检索到明确资料依据`),f))G.push(`${a.title}:${b} 未检索到明确依据`);let i=[`## ${a.title}`,"",p?`### 模板绑定提示词规则
42
+ ${p.slice(0,3e3)}`:"","",e.length>0?`本章根据模板绑定资料围绕“${a.purpose||b.description}”整理。`:"模板绑定资料未检索到明确内容,需进一步确认。","",e.length>0?"### 资料依据":"",...e.map(z),"",f.length>0?"### 待确认事项":"",...f.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");C.push({id:a.id,title:a.title,content:i,evidence:e,missingFacts:f})}let H=function(a,b){let c={};for(let d of[...new Set(a.chapters.flatMap(a=>a.requiredFacts))]){let a=b.find(a=>a.content.includes(d.replace(/要求|计划|目标|标准/gu,""))||a.content.includes(d));a&&(c[d]=`${a.content.replace(/\s+/gu," ").slice(0,180)}(来源:${a.filePath})`)}return c}(b,F),I=function(a){let b=[["工程名称",/工程名称[::\s]+([^\n,。;;]+)/u],["工程地点",/(?:工程地点|建设地点)[::\s]+([^\n,。;;]+)/u],["建设单位",/建设单位[::\s]+([^\n,。;;]+)/u],["工期要求",/(?:工期|计划工期)[::\s]+([^\n,。;;]+)/u],["质量目标",/质量目标[::\s]+([^\n,。;;]+)/u],["安全目标",/安全目标[::\s]+([^\n,。;;]+)/u],["施工范围",/(?:施工范围|招标范围)[::\s]+([^\n]+)/u]],c=[];for(let d of a)for(let[a,e]of b){let b=d.content.match(e);b?.[1]&&!c.some(c=>c.key===a&&c.value===b[1].trim())&&c.push({key:a,value:b[1].trim().slice(0,300),sourceFile:d.filePath,roleId:d.roleId||"unknown",processingType:d.processingType,confidence:d.score})}return c}(F),J=await D(F,p),K=[...I,...J.facts],L=function(a){let b=[],c=new Set;for(let g of a.filter(a=>"table"===a.processingType)){if(c.has(g.filePath))continue;c.add(g.filePath);let a=e.isAbsolute(g.filePath)?g.filePath:e.join((0,i.aY)(),g.filePath),h=e.extname(g.filePath).toLowerCase();if(d.existsSync(a)&&[".xlsx",".xls",".csv"].includes(h))try{let c=f.readFile(a,{cellDates:!0,sheetStubs:!1});for(let a of c.SheetNames){let d=c.Sheets[a],e=f.utils.sheet_to_json(d,{header:1,raw:!1,defval:""}).map(a=>a.map(a=>String(a).trim())).filter(a=>a.some(Boolean));if(e.length<2)continue;let h=e.findIndex(a=>a.filter(Boolean).length>=2);if(h<0)continue;let i=e[h].filter(Boolean),j=e.slice(h+1).map(a=>a.slice(0,i.length)).filter(a=>a.some(Boolean));0!==j.length&&b.push({tableType:g.roleId||"table",sheet:a,headers:i,rows:j.slice(0,200),sourceFile:g.filePath,sourceRange:d["!ref"]})}continue}catch{}let j=g.content.split("\n").map(a=>a.trim()).filter(Boolean).filter(a=>a.includes("|")||a.includes(" ")||a.includes(","));if(j.length<2)continue;let k=j[0].includes("|")?"|":j[0].includes(" ")?" ":",",l=j.map(a=>a.split(k).map(a=>a.trim()).filter(Boolean)).filter(a=>a.length>1);l.length<2||b.push({tableType:g.roleId||"table",headers:l[0],rows:l.slice(1,80),sourceFile:g.filePath,sourceRange:g.sectionTitle})}return b}(F);for(let a of K)H[a.key]=`${a.value}(来源:${a.sourceFile},角色:${a.roleId})`;let M=new Map;for(let a of F)M.set(a.filePath,(M.get(a.filePath)??0)+1);let N=[...M.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({filePath:a,count:b})),O=function(a,b=[],c=[]){let d=b=>a.filter(a=>b.some(b=>a.key.includes(b))),e=b=>a.filter(a=>a.processingType===b||a.roleId.includes(b));return{project:d(["工程名称","工程地点","建设单位","施工范围"]),schedule:d(["工期","开工","竣工","节点"]),quality:d(["质量"]),safety:d(["安全"]),resources:d(["劳动力","材料","机械","设备"]),tables:b,drawings:e("drawing"),rules:e("rule"),specifications:e("specification"),missing:[...new Set(c)],conflicts:[]}}(K,L,G),P=function(a,b,c=[],d){let e=[],f=[];for(let b of a)0===b.evidence.length&&e.push(`${b.title} 未检索到资料证据`),b.content.length<80&&e.push(`${b.title} 内容较短,建议人工补充或重新生成`);for(let a of["工程名称","工期要求","质量目标","施工范围"])b[a]||c.some(b=>b.key===a)||e.push(`${a} 未形成明确事实,请人工确认`);d&&0===B(d).length&&f.push("模板未绑定任何知识库文件"),d&&0===A(d).length&&f.push("模板未绑定任何提示词");let g=new Set(c.map(a=>a.roleId));for(let a of["project_fact","rule"])d?.fileBindings?.some(b=>b.roleId===a)&&!g.has(a)&&e.push(`${a} 角色未抽取到结构化事实`);return{passed:0===f.length,warnings:e,errors:f}}(C,H,K,b),Q=function(a,b,c){let d=[...a.errors.map(a=>({level:"error",message:a,suggestion:"请补充配置或资料后重新生成。"})),...a.warnings.map(a=>({level:"warning",message:a,suggestion:"建议人工确认或补充对应资料。"}))];return 0===b.project.length&&d.push({level:"error",message:"项目基础事实缺失",suggestion:"请在项目事实文件角色中绑定包含工程概况的资料。"}),c.some(a=>a.content.includes("资料未提供"))&&d.push({level:"warning",message:"存在资料未提供章节",suggestion:"请检查项目角色配置中的文件绑定和顺序。"}),b.conflicts.length>0&&d.push(...b.conflicts.map(a=>({level:"error",message:a}))),d}(P,O,C),R=[...J.stages,{type:"chapter_generation",roleId:"document-workflow",status:"success",message:`生成 ${C.length} 个章节`},{type:"validation",roleId:"document-workflow",status:P.errors.length>0?"failed":"success",message:`错误 ${P.errors.length},警告 ${P.warnings.length}`},{type:"formatting",roleId:"document-workflow",status:"success",message:"已生成正式排版 Markdown"}],S={templateId:b.id,templateName:b.name,title:b.outputTitle,requirement:a.requirement||(j.length?`使用模板绑定提示词:${j.map(a=>`${a.promptId}(${a.roleId})`).join(", ")}`:""),facts:H,structuredFacts:K,factsModel:O,chapters:C,sources:N,missingItems:[...new Set(G)],validation:P,validationIssues:Q,executionStages:R,exportGate:{passed:!0,blockingIssues:[],checklist:[]},generatedAt:Date.now()},T=function(a,b,c){let d=[{key:"no_errors",label:"无阻断级校验错误",passed:!a.some(a=>"error"===a.level)},{key:"project_facts",label:"项目基础事实齐全",passed:b.project.length>0},{key:"source_traceability",label:"事实具备来源追踪",passed:[...b.project,...b.schedule,...b.quality,...b.safety].every(a=>!!a.sourceFile)},{key:"chapter_evidence",label:"章节均具备证据",passed:c.every(a=>a.evidence.length>0)},{key:"no_missing_content",label:"无资料未提供章节",passed:c.every(a=>!a.content.includes("资料未提供"))}],e=a.filter(a=>"error"===a.level);return{passed:0===e.length&&d.every(a=>a.passed),blockingIssues:e,checklist:d}}(Q=function(a,b,c,d,e,f,g){if(!a)return b;let h=[...b],i=new Set([...c.project,...c.schedule,...c.quality,...c.safety,...c.resources].map(a=>a.key)),j=new Set(d.map(a=>a.title));for(let b of a.factFields.filter(a=>a.required))i.has(b.name)||h.push({level:"error",message:`必需事实缺失:${b.name}`,suggestion:b.extractionHint||"请补充资料或调整事实字段配置。"});for(let b of a.chapterRules.filter(a=>a.required)){j.has(b.title)||h.push({level:"error",message:`必需章节缺失:${b.title}`,suggestion:"请在模板或规范包章节规则中补齐章节。"});let a=d.find(a=>a.title===b.title);a&&b.minWords&&a.content.length<b.minWords&&h.push({level:"warning",message:`章节内容低于最低字数:${b.title}`,suggestion:`建议不少于 ${b.minWords} 字。`})}for(let b of a.gateRules){let a=b.level;"required_fact"===b.type&&b.target&&!i.has(b.target)&&h.push({level:a,message:`${b.name}:缺少事实 ${b.target}`}),"required_chapter"===b.type&&b.target&&!j.has(b.target)&&h.push({level:a,message:`${b.name}:缺少章节 ${b.target}`}),"required_file_role"===b.type&&b.target&&!f.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少文件角色 ${b.target}`}),"required_prompt_role"===b.type&&b.target&&!g.some(a=>a.roleId===b.target)&&h.push({level:a,message:`${b.name}:缺少提示词角色 ${b.target}`}),"forbidden_text"===b.type&&b.value&&e.includes(b.value)&&h.push({level:a,message:`${b.name}:出现禁用文本 ${b.value}`}),"table_required"===b.type&&0===c.tables.length&&h.push({level:a,message:`${b.name}:缺少结构化表格`}),"source_required"===b.type&&[...c.project,...c.schedule,...c.quality,...c.safety].some(a=>!a.sourceFile)&&h.push({level:a,message:`${b.name}:存在无来源事实`})}return h}(o,Q,O,C,E(S),m,j),O,C);return{...S,validationIssues:Q,exportGate:T,markdown:E({...S,validationIssues:Q,exportGate:T})}}async function G(a){let b=u(a.templateId);if(!b)throw Error("Document template not found");let c=b.chapters.find(b=>b.id===a.chapterId);if(!c)throw Error("Document chapter not found");let d=a.projectRoot||(0,i.aY)();if(!d)throw Error("No knowledge base project found");let e=(0,i.Qh)(),f=Math.max(5,Math.min(30,a.maxEvidencePerChapter??12)),g=[];for(let a of c.queries){let b=await e.search(d,a,{scope:"project",limit:f,weights:{keyword:.4,vector:.45,rewrite:.75,hybridBonus:.15}});g.push(...b.results.map(a=>({chapterId:c.id,filePath:a.filePath,score:a.score,content:a.content,sectionTitle:a.sectionTitle,source:a.source})))}let h=y(g,f),j=c.requiredFacts.filter(a=>!h.some(b=>b.content.includes(a.replace(/要求|计划|目标|标准/gu,""))||b.content.includes(a))),k=[`## ${c.title}`,"",a.requirement?`> 生成要求:${a.requirement}`:"",h.length>0?`本章根据知识库资料围绕“${c.purpose}”重新整理。`:"资料未提供,需进一步确认。","",h.length>0?"### 资料依据":"",...h.map(z),"",j.length>0?"### 待确认事项":"",...j.map(a=>`- ${a}:资料未提供,需进一步确认。`)].filter(Boolean).join("\n");return{id:c.id,title:c.title,content:k,evidence:h,missingFacts:j}}},89952:(a,b,c)=>{c.d(b,{DZ:()=>s,FV:()=>r,Mu:()=>t,NR:()=>u,XB:()=>p,dg:()=>q,dw:()=>v});var d=c(73024),e=c(48161),f=c(76760);let g=f.join(e.homedir(),".customize-agent","demo-project"),h=[{id:"delta-rule-files",name:"三角洲攻略规则文件",description:"大白话:告诉系统这篇攻略要遵守什么写作规则和输出要求。",type:"file",processingType:"rule",resourceIds:[f.join(g,"规则文件-攻略写作要求.md")]},{id:"delta-fact-files",name:"三角洲干员事实文件",description:"大白话:存放干员、定位、技能、打法这些真实攻略资料。",type:"file",processingType:"project_fact",resourceIds:[f.join(g,"项目事实-热门干员资料.md")]},{id:"delta-table-files",name:"三角洲干员表格数据",description:"大白话:存放可以被解析成表格的数据,比如推荐指数、难度、职责。",type:"file",processingType:"table",resourceIds:[f.join(g,"表格数据-热门干员推荐.csv")]},{id:"delta-drawing-files",name:"三角洲战术示意图文件",description:"大白话:没有真实 CAD 图纸时,用路线/阵型/站位说明代替图纸资料。",type:"file",processingType:"drawing",resourceIds:[f.join(g,"图纸文件-战术路线示意.md")]},{id:"delta-spec-files",name:"三角洲攻略规范文件",description:"大白话:告诉系统攻略应该包含哪些章节、怎么写、怎么校验。",type:"file",processingType:"specification",resourceIds:[f.join(g,"规范文件-攻略结构规范.md")]},{id:"delta-fact-prompt",name:"三角洲事实抽取提示词",description:"从示例资料中抽取干员名称、定位、技能、难度和推荐指数。",type:"prompt",executionType:"fact_extraction",resourceIds:["builtin:delta-fact-extraction"]},{id:"delta-generation-prompt",name:"三角洲章节生成提示词",description:"生成适合新手阅读的热门干员攻略正文。",type:"prompt",executionType:"chapter_generation",resourceIds:["builtin:delta-chapter-generation"]},{id:"delta-validation-prompt",name:"三角洲校验提示词",description:"检查是否缺少热门干员、表格和实战注意事项。",type:"prompt",executionType:"validation",resourceIds:["builtin:delta-validation"]}],i={id:"delta-force-demo-config",name:"三角洲热门干员攻略项目配置",description:"内置示例配置:文件角色和提示词角色已排好顺序,用户可直接选择内置模板生成。",fileRoles:[{roleId:"delta-rule-files",order:0},{roleId:"delta-fact-files",order:1},{roleId:"delta-table-files",order:2},{roleId:"delta-drawing-files",order:3},{roleId:"delta-spec-files",order:4}],promptRoles:[{roleId:"delta-fact-prompt",order:0},{roleId:"delta-generation-prompt",order:1},{roleId:"delta-validation-prompt",order:2}]};function j(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-roles.json")}function k(a){return(a||`item-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function l(a){var b,c;let d="prompt"===a.type?"prompt":"file";return{id:k(a.id),name:a.name||"未命名角色",description:a.description||"",type:d,resourceId:a.resourceId||a.resourceIds?.[0]||void 0,resourceIds:Array.isArray(a.resourceIds)&&a.resourceIds.length>0?a.resourceIds.filter(Boolean):a.resourceId?[a.resourceId]:[],executionType:"prompt"===d?"fact_extraction"===(b=a.executionType)||"chapter_generation"===b||"validation"===b||"formatting"===b||"reference"===b?b:"reference":void 0,processingType:"file"===d?"rule"===(c=a.processingType)||"project_fact"===c||"table"===c||"drawing"===c||"specification"===c||"reference"===c?c:"reference":void 0}}function m(a){return{id:k(a.id),name:a.name||"未命名配置",description:a.description||"",fileRoles:Array.isArray(a.fileRoles)?a.fileRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[],promptRoles:Array.isArray(a.promptRoles)?a.promptRoles.filter(a=>a.roleId).map((a,b)=>({roleId:a.roleId,order:Number.isFinite(a.order)?a.order:b})):[]}}function n(){try{let a=j();if(!d.existsSync(a))return{roles:[],configs:[]};let b=JSON.parse(d.readFileSync(a,"utf-8"));if(Array.isArray(b))return{roles:b.map(l),configs:[]};return{roles:Array.isArray(b.roles)?b.roles.map(l):[],configs:Array.isArray(b.configs)?b.configs.map(m):[]}}catch{return{roles:[],configs:[]}}}function o(a){d.writeFileSync(j(),JSON.stringify({roles:a.roles.map(l),configs:a.configs.map(m)},null,2),"utf-8")}function p(a){let b=[...new Map([...h,...n().roles].map(a=>[a.id,a])).values()];return a?b.filter(b=>b.type===a):b}function q(a){let b=l(a),c=n();return c.roles=c.roles.filter(a=>a.id!==b.id||a.type!==b.type),c.roles.push(b),o(c),b}function r(a,b){if(h.some(c=>c.id===b&&c.type===a))throw Error("Built-in demo role cannot be deleted");let c=n();c.roles=c.roles.filter(c=>c.id!==b||c.type!==a),c.configs=c.configs.map(a=>({...a,fileRoles:a.fileRoles.filter(a=>a.roleId!==b),promptRoles:a.promptRoles.filter(a=>a.roleId!==b)})),o(c)}function s(){return[...new Map([i,...n().configs].map(a=>[a.id,a])).values()]}function t(a){return a===i.id?i:n().configs.find(b=>b.id===a)}function u(a){let b=m(a),c=n();return c.configs=c.configs.filter(a=>a.id!==b.id),c.configs.push(b),o(c),b}function v(a){if(a===i.id)throw Error("Built-in demo config cannot be deleted");let b=n();b.configs=b.configs.filter(b=>b.id!==a),o(b)}}};