@customize-agent/server 4.59.2 → 4.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +52 -31
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +5 -2
- package/.next/routes-manifest.json +22 -0
- package/.next/server/chunks/1001.js +2 -56
- package/.next/server/chunks/1243.js +3 -0
- package/.next/server/chunks/1928.js +1 -1
- package/.next/server/chunks/1936.js +2 -2
- package/.next/server/chunks/2328.js +6 -0
- package/.next/server/chunks/2434.js +4 -4
- package/.next/server/chunks/3806.js +1 -0
- package/.next/server/chunks/4974.js +2 -0
- package/.next/server/chunks/5304.js +2 -0
- package/.next/server/chunks/5746.js +5 -0
- package/.next/server/chunks/6321.js +1 -3
- package/.next/server/chunks/7848.js +141 -0
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/chunks/9666.js +141 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/config/embedding/healthCheck.js +2 -1
- package/.next/server/pages/api/config/embedding/healthCheck.js.nft.json +1 -1
- package/.next/server/pages/api/config/embedding.js +2 -1
- package/.next/server/pages/api/config/embedding.js.nft.json +1 -1
- package/.next/server/pages/api/config/healthCheck.js +2 -2
- package/.next/server/pages/api/config/healthCheck.js.nft.json +1 -1
- package/.next/server/pages/api/config/models.js +2 -1
- package/.next/server/pages/api/config/models.js.nft.json +1 -1
- package/.next/server/pages/api/config/providers/[provider].js +2 -1
- package/.next/server/pages/api/config/providers/[provider].js.nft.json +1 -1
- package/.next/server/pages/api/config/providers.js +2 -2
- package/.next/server/pages/api/config/providers.js.nft.json +1 -1
- package/.next/server/pages/api/config/web-access.js +2 -1
- package/.next/server/pages/api/config/web-access.js.nft.json +1 -1
- package/.next/server/pages/api/documents/canvas/[id].js +1 -2
- package/.next/server/pages/api/documents/canvas/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +11 -9
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate/preview.js +1 -2
- package/.next/server/pages/api/documents/generate/preview.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +1 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/events.js +2 -3
- package/.next/server/pages/api/documents/generated/[id]/events.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/instruction.js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/instruction.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js +1 -2
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/nodes.js +1 -2
- package/.next/server/pages/api/documents/generated/[id]/nodes.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/pause.js +1 -2
- package/.next/server/pages/api/documents/generated/[id]/pause.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/preview.js +1 -2
- package/.next/server/pages/api/documents/generated/[id]/preview.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/report.js +1 -0
- package/.next/server/pages/api/documents/generated/[id]/report.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js +1 -2
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -2
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/health.js +1 -1
- package/.next/server/pages/api/jobs/[id].js +2 -5
- package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
- package/.next/server/pages/api/kb/categories.js +1 -4
- package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
- package/.next/server/pages/api/kb/duplicates.js +1 -4
- package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
- package/.next/server/pages/api/kb/features.js +2 -1
- package/.next/server/pages/api/kb/features.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/detail.js +1 -6
- package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/export.js +1 -5
- package/.next/server/pages/api/kb/files/export.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/open.js +1 -4
- package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +1 -4
- package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/reindex.js +2 -1
- package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/search.js +1 -5
- package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/source-preview.js +1 -0
- package/.next/server/pages/api/kb/files/source-preview.js.nft.json +1 -0
- package/.next/server/pages/api/kb/files.js +2 -6
- package/.next/server/pages/api/kb/files.js.nft.json +1 -1
- package/.next/server/pages/api/kb/ignore.js +1 -4
- package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
- package/.next/server/pages/api/kb/material-groups.js +1 -2
- package/.next/server/pages/api/kb/material-groups.js.nft.json +1 -1
- package/.next/server/pages/api/kb/operations.js +2 -5
- package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
- package/.next/server/pages/api/kb/reindex.js +2 -1
- package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/stats.js +1 -4
- package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
- package/.next/server/pages/api/kb/tags.js +1 -4
- package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/complete.js +2 -1
- package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload.js +2 -1
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/prompt/chat.js +5 -11
- package/.next/server/pages/api/prompt/chat.js.nft.json +1 -1
- package/.next/server/pages/api/prompt.js +2 -1
- package/.next/server/pages/api/prompt.js.nft.json +1 -1
- package/.next/server/pages/api/skills/[id].js +1 -1
- package/.next/server/pages/api/skills/[id].js.nft.json +1 -1
- package/.next/server/pages/api/skills/validate.js +1 -1
- package/.next/server/pages/api/skills/validate.js.nft.json +1 -1
- package/.next/server/pages/api/skills.js +1 -1
- package/.next/server/pages/api/skills.js.nft.json +1 -1
- package/.next/server/pages/api/system/data-health.js +2 -2
- package/.next/server/pages/api/system/data-health.js.nft.json +1 -1
- package/.next/server/pages/api/system/logs.js +2 -2
- package/.next/server/pages/api/system/logs.js.nft.json +1 -1
- package/.next/server/pages/api/system/reset.js +1 -0
- package/.next/server/pages/api/{kb/intelligence.js.nft.json → system/reset.js.nft.json} +1 -1
- package/.next/server/pages/api/system/stats.js +2 -1
- package/.next/server/pages/api/system/stats.js.nft.json +1 -1
- package/.next/server/pages/canvas/[id].html +1 -1
- package/.next/server/pages/canvas.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/source-preview.html +1 -0
- package/.next/server/pages/knowledge/source-preview.js.nft.json +1 -0
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/skills.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +36 -37
- package/.next/static/77d815e00c04639e13f00085615df788b0e214c81a14c8f0ba89cbbe491ff7c3/_buildManifest.js +1 -0
- package/.next/static/chunks/278-31fbe7e1b733a9b7.js +1 -0
- package/.next/static/chunks/{426-90638907336adcb8.js → 426-22c4cedb04b0d45d.js} +1 -1
- package/.next/static/chunks/511-75b881093a3e908b.js +1 -0
- package/.next/static/chunks/530-d9f0418ec7ab040f.js +1 -0
- package/.next/static/chunks/665-9607db8f8b43e52e.js +1 -0
- package/.next/static/chunks/795-48065c56c3b80339.js +1 -0
- package/.next/static/chunks/823-ff35afb174f7998b.js +1 -0
- package/.next/static/chunks/835-d29f4cc7a3679606.js +1 -0
- package/.next/static/chunks/864-b06700e1a4e573f2.js +6 -0
- package/.next/static/chunks/873-16d052cdd3768758.js +1 -0
- package/.next/static/chunks/964-7e9fe2d80a53aeee.js +78 -0
- package/.next/static/chunks/992-8032f477230baaaf.js +1 -0
- package/.next/static/chunks/pages/{_app-c560816f0a8a0815.js → _app-c11b5e8072f49bcc.js} +20 -20
- package/.next/static/chunks/pages/canvas/[id]-37bee3f7b816ed18.js +1 -0
- package/.next/static/chunks/pages/canvas-97971ae159337676.js +1 -0
- package/.next/static/chunks/pages/guide-a8eecc6c02b5bb9c.js +1 -0
- package/.next/static/chunks/pages/knowledge/file-detail-f89e6044f752277c.js +1 -0
- package/.next/static/chunks/pages/knowledge/source-preview-4a303fadb123430a.js +1 -0
- package/.next/static/chunks/pages/knowledge-a65ec687334ffed0.js +1 -0
- package/.next/static/chunks/pages/models-3e486e49cca91e5a.js +1 -0
- package/.next/static/chunks/pages/prompt-b8af2cef904e3e19.js +1 -0
- package/.next/static/chunks/pages/settings-81dffd92939c1d36.js +1 -0
- package/.next/static/chunks/pages/skills-77ba363270239bbf.js +1 -0
- package/.next/static/chunks/pages/system/logs-1f54b6c8791daa77.js +1 -0
- package/.next/static/css/1a59bfb0aa677e69.css +1 -0
- package/README.md +48 -45
- package/messages/en-US.json +76 -65
- package/messages/zh-CN.json +76 -65
- package/next.config.ts +5 -0
- package/package.json +7 -9
- package/public/fonts/NotoSansCJKsc-Regular.otf +0 -0
- package/public/fonts/OFL-Noto-CJK.txt +142 -0
- package/public/fonts/font-manifest.json +8 -0
- package/scripts/build-identity.cjs +67 -0
- package/scripts/capture-baseline.mjs +100 -290
- package/scripts/check-workspace-deps.cjs +141 -0
- package/scripts/half-built-scan.allow.json +142 -0
- package/scripts/half-built-scan.baseline.json +206 -0
- package/scripts/half-built-scan.mjs +275 -55
- package/scripts/kb-fingerprint-worker.cjs +28 -0
- package/scripts/kb-index-worker.cjs +27 -20
- package/scripts/kb-worker-ipc.cjs +34 -0
- package/scripts/purge-next-artifacts.cjs +70 -0
- package/scripts/verify-next-static.js +2 -2
- package/.next/server/chunks/299.js +0 -50
- package/.next/server/chunks/4435.js +0 -350
- package/.next/server/chunks/6087.js +0 -3
- package/.next/server/pages/api/jobs.js +0 -5
- package/.next/server/pages/api/jobs.js.nft.json +0 -1
- package/.next/server/pages/api/kb/evaluate.js +0 -10
- package/.next/server/pages/api/kb/evaluate.js.nft.json +0 -1
- package/.next/server/pages/api/kb/files/tree.js +0 -5
- package/.next/server/pages/api/kb/files/tree.js.nft.json +0 -1
- package/.next/server/pages/api/kb/intelligence.js +0 -1
- package/.next/server/pages/api/kb/search.js +0 -4
- package/.next/server/pages/api/kb/search.js.nft.json +0 -1
- package/.next/server/pages/api/kb/upload/progress.js +0 -5
- package/.next/server/pages/api/kb/upload/progress.js.nft.json +0 -1
- package/.next/static/2MjosIoMmZUcFnY_P02ZD/_buildManifest.js +0 -1
- package/.next/static/chunks/243-03eba51d5d737e98.js +0 -1
- package/.next/static/chunks/289-136ebb30e0f6723a.js +0 -78
- package/.next/static/chunks/422-46f07037c58d2309.js +0 -1
- package/.next/static/chunks/445-d12731f107978b10.js +0 -6
- package/.next/static/chunks/506-93f730bc149d0dce.js +0 -1
- package/.next/static/chunks/530-df2ce692cf0fa512.js +0 -1
- package/.next/static/chunks/795-81a3e3973fc43791.js +0 -1
- package/.next/static/chunks/850-0f48354694fc6b3e.js +0 -1
- package/.next/static/chunks/pages/canvas/[id]-515edd3e72acaf82.js +0 -1
- package/.next/static/chunks/pages/canvas-323d44fe56d685a7.js +0 -1
- package/.next/static/chunks/pages/guide-7367305082617e3c.js +0 -1
- package/.next/static/chunks/pages/knowledge/file-detail-aee7c15541d1d130.js +0 -1
- package/.next/static/chunks/pages/knowledge-ca8ad5501faed486.js +0 -1
- package/.next/static/chunks/pages/models-8b96ba85131d5408.js +0 -1
- package/.next/static/chunks/pages/prompt-dd9a9f9105216e2b.js +0 -1
- package/.next/static/chunks/pages/settings-0a7709bf039a2a4d.js +0 -1
- package/.next/static/chunks/pages/skills-3d77213c3e9ef0b5.js +0 -1
- package/.next/static/chunks/pages/system/logs-9deb1217739490af.js +0 -1
- package/.next/static/css/85c434f8fd3a17ae.css +0 -1
- /package/.next/static/{2MjosIoMmZUcFnY_P02ZD → 77d815e00c04639e13f00085615df788b0e214c81a14c8f0ba89cbbe491ff7c3}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 工作区依赖产物新鲜度闸(挂在 apps/server 的 `prebuild`)。
|
|
4
|
+
*
|
|
5
|
+
* ## 为什么需要
|
|
6
|
+
* `apps/server` 的 build 只跑 `next build`,**不会**重建 `packages/*`;而 `next.config.ts`
|
|
7
|
+
* 把 `@customize-agent/{knowledge,llm,runtime}` 列为 `serverExternalPackages` —— 运行时直接
|
|
8
|
+
* require 各包的 `dist`(各包 package.json 的 main/exports 都指向 dist)。于是「在 apps/server
|
|
9
|
+
* 里 build」会把旧 dist 静默编进产物:改了 packages 源码却看不到效果,且不报错。
|
|
10
|
+
* 依赖包先建只由仓库根目录 `pnpm build` 的 turbo `^build` 保证。
|
|
11
|
+
*
|
|
12
|
+
* ## 口径
|
|
13
|
+
* 逐包比较 `src/**` 与 `tsconfig.json` 的最新 mtime 和 `dist/**` 的最新 mtime:
|
|
14
|
+
* src 侧更新 ⇒ 落后;`dist/` 不存在 ⇒ 未构建。两种情况直接放行:
|
|
15
|
+
* - turbo 任务内(`TURBO_HASH` / `TURBO_INVOCATION_DIR` 存在):`^build` 已保证依赖先建;
|
|
16
|
+
* - 非 monorepo 布局(同级没有 packages/,如已发布的 npm 包)。
|
|
17
|
+
* mtime 是粗口径:`git checkout` 触碰过源码也会判落后——代价只是提示去根目录 build
|
|
18
|
+
* (turbo 有缓存,通常几秒),比「静默用旧 dist」安全。
|
|
19
|
+
*
|
|
20
|
+
* 用法:node scripts/check-workspace-deps.cjs [packagesDir]
|
|
21
|
+
* 退出码:0=新鲜/放行;1=落后。
|
|
22
|
+
*/
|
|
23
|
+
const fs = require('fs');
|
|
24
|
+
const path = require('path');
|
|
25
|
+
|
|
26
|
+
const serverRoot = path.resolve(__dirname, '..');
|
|
27
|
+
const defaultPackagesDir = path.resolve(serverRoot, '..', '..', 'packages');
|
|
28
|
+
|
|
29
|
+
/** 依赖闭包(含编译期依赖 types):其中任何一个包改动,server 产物都可能过期 */
|
|
30
|
+
const WORKSPACE_DEPS = [
|
|
31
|
+
'@customize-agent/types',
|
|
32
|
+
'@customize-agent/llm',
|
|
33
|
+
'@customize-agent/runtime',
|
|
34
|
+
'@customize-agent/knowledge',
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
function newestFileMtime(dir, found = { mtime: 0, file: '' }) {
|
|
38
|
+
let entries;
|
|
39
|
+
try {
|
|
40
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
41
|
+
} catch {
|
|
42
|
+
return found;
|
|
43
|
+
}
|
|
44
|
+
for (const entry of entries) {
|
|
45
|
+
const full = path.join(dir, entry.name);
|
|
46
|
+
if (entry.isDirectory()) newestFileMtime(full, found);
|
|
47
|
+
else if (entry.isFile()) {
|
|
48
|
+
const mtime = fs.statSync(full).mtimeMs;
|
|
49
|
+
if (mtime > found.mtime) {
|
|
50
|
+
found.mtime = mtime;
|
|
51
|
+
found.file = full;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return found;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function inspectPackage(packagesDir, name) {
|
|
59
|
+
const dir = path.join(packagesDir, name.slice('@customize-agent/'.length));
|
|
60
|
+
if (!fs.existsSync(path.join(dir, 'package.json'))) return null; // 非工作区成员 → 跳过
|
|
61
|
+
|
|
62
|
+
const src = newestFileMtime(path.join(dir, 'src'));
|
|
63
|
+
const tsconfig = path.join(dir, 'tsconfig.json');
|
|
64
|
+
if (fs.existsSync(tsconfig)) {
|
|
65
|
+
const mtime = fs.statSync(tsconfig).mtimeMs;
|
|
66
|
+
if (mtime > src.mtime) {
|
|
67
|
+
src.mtime = mtime;
|
|
68
|
+
src.file = tsconfig;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const distDir = path.join(dir, 'dist');
|
|
73
|
+
if (!fs.existsSync(distDir)) return { name, dir, reason: 'missing-dist', src };
|
|
74
|
+
const dist = newestFileMtime(distDir);
|
|
75
|
+
if (src.mtime > dist.mtime) return { name, dir, reason: 'stale', src, dist };
|
|
76
|
+
return { name, dir, reason: null };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** 手工格式化本地时间:不依赖 locale/ICU(跨平台口径一致),也不用 shell 的 date */
|
|
80
|
+
function formatTime(ms) {
|
|
81
|
+
if (!ms) return '(none)';
|
|
82
|
+
const date = new Date(ms);
|
|
83
|
+
const pad = value => String(value).padStart(2, '0');
|
|
84
|
+
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} `
|
|
85
|
+
+ `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** 优先显示仓库根目录相对路径,越界(测试夹具在 tmp 里)则显示绝对路径 */
|
|
89
|
+
function displayPath(file) {
|
|
90
|
+
const rel = path.relative(path.resolve(serverRoot, '..', '..'), file);
|
|
91
|
+
return rel.startsWith('..') ? file : rel;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function usage() {
|
|
95
|
+
console.log(`Usage: node scripts/check-workspace-deps.cjs [packagesDir]
|
|
96
|
+
|
|
97
|
+
Verifies that the workspace packages consumed by the server (types / llm / runtime /
|
|
98
|
+
knowledge) have dist/ artifacts newer than their src/. Wired as \`prebuild\` so a build
|
|
99
|
+
run inside apps/server cannot silently embed stale package code.
|
|
100
|
+
|
|
101
|
+
Exit 0 when fresh, when running under turbo (^build already ordered the deps),
|
|
102
|
+
or when packagesDir does not exist (published package layout).
|
|
103
|
+
Exit 1 with a remedy when stale.`);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function main() {
|
|
107
|
+
const args = process.argv.slice(2);
|
|
108
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
109
|
+
usage();
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
// turbo 任务内:依赖已按 ^build 先建(或从缓存恢复)→ 不阻塞根目录构建
|
|
113
|
+
if (process.env.TURBO_HASH || process.env.TURBO_INVOCATION_DIR) return 0;
|
|
114
|
+
|
|
115
|
+
const packagesDir = path.resolve(
|
|
116
|
+
args[0] || process.env.CUSTOMIZE_WORKSPACE_PACKAGES_DIR || defaultPackagesDir,
|
|
117
|
+
);
|
|
118
|
+
if (!fs.existsSync(packagesDir)) return 0; // 发布包布局:没有 packages/ 同级目录
|
|
119
|
+
|
|
120
|
+
const problems = [];
|
|
121
|
+
for (const name of WORKSPACE_DEPS) {
|
|
122
|
+
const result = inspectPackage(packagesDir, name);
|
|
123
|
+
if (result && result.reason) problems.push(result);
|
|
124
|
+
}
|
|
125
|
+
if (problems.length === 0) return 0;
|
|
126
|
+
|
|
127
|
+
console.error('[server] Stale workspace dependency artifacts — the build would embed old dist code:');
|
|
128
|
+
for (const problem of problems) {
|
|
129
|
+
if (problem.reason === 'missing-dist') {
|
|
130
|
+
console.error(`[server] ${problem.name}: dist/ not built yet`);
|
|
131
|
+
} else {
|
|
132
|
+
console.error(
|
|
133
|
+
`[server] ${problem.name}: src ${formatTime(problem.src.mtime)} (${displayPath(problem.src.file)}) is newer than dist ${formatTime(problem.dist.mtime)}`,
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
console.error('[server] Run `pnpm build` at the monorepo root first (turbo rebuilds packages/* in dependency order), then build the server again.');
|
|
138
|
+
return 1;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (require.main === module) process.exit(main());
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"note": "半成品扫描的**登记表**:这些导出在生产里零引用是**设计如此**(测试钩子/观察面/登记自证面/零命中不接入)。新增未登记项会在扫描里单列 ⇒ 由人/智能体当场判,不再堆成待办。 ★ 2026-09-30 追加:不可判(星号再导出)也纳入同一登记表——本文件内自用/测试面的符号不再进待判。",
|
|
4
|
+
"entries": [
|
|
5
|
+
{
|
|
6
|
+
"file": "apps/server/src/lib/api.ts",
|
|
7
|
+
"symbol": "__resetExportReceiptForTest",
|
|
8
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"file": "apps/server/src/lib/i18n.ts",
|
|
12
|
+
"symbol": "resetMissingTranslationKeys",
|
|
13
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"file": "apps/server/src/lib/i18n.ts",
|
|
17
|
+
"symbol": "catalogKeyParity",
|
|
18
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"file": "apps/server/src/pages/api/documents/canvas/[id].ts",
|
|
22
|
+
"symbol": "isAggregateFoldSummary",
|
|
23
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"file": "apps/server/src/pages/api/documents/export.ts",
|
|
27
|
+
"symbol": "__documentExportTest__",
|
|
28
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"file": "apps/server/src/services/agent/artifacts.ts",
|
|
32
|
+
"symbol": "hasArtifact",
|
|
33
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"file": "apps/server/src/services/agent/eventBus.ts",
|
|
37
|
+
"symbol": "resetEventBusForTest",
|
|
38
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"file": "apps/server/src/services/agent/eventBus.ts",
|
|
42
|
+
"symbol": "flushSubscriptions",
|
|
43
|
+
"reason": "测试/审计读面:用例据此读工具表/任务表/蓝图/事件总线"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"file": "apps/server/src/services/agent/eventBus.ts",
|
|
47
|
+
"symbol": "subscriberCount",
|
|
48
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"file": "apps/server/src/services/agent/loopBudget.ts",
|
|
52
|
+
"symbol": "resetBudgetMeters",
|
|
53
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"file": "apps/server/src/services/agent/toolRegistry.ts",
|
|
57
|
+
"symbol": "getTool",
|
|
58
|
+
"reason": "测试/审计读面:用例据此读工具表/任务表/蓝图/事件总线"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"file": "apps/server/src/services/agent/toolRegistry.ts",
|
|
62
|
+
"symbol": "TOOL_GROUP_COUNTS",
|
|
63
|
+
"reason": "登记表/账本的机械自证面:用例据此核对登记与实现一致;生产不需要调用"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"file": "apps/server/src/services/document-core/documentDomainProfileService.ts",
|
|
67
|
+
"symbol": "fieldMatchesCategory",
|
|
68
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"file": "apps/server/src/services/document-core/generatedDocumentService.ts",
|
|
72
|
+
"symbol": "setProcessAliveProbeForTest",
|
|
73
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"file": "apps/server/src/services/document-core/generatedDocumentService.ts",
|
|
77
|
+
"symbol": "getGenerateTask",
|
|
78
|
+
"reason": "测试/审计读面:用例据此读工具表/任务表/蓝图/事件总线"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"file": "apps/server/src/services/document-workflow/costModel.ts",
|
|
82
|
+
"symbol": "resetCostModelCaches",
|
|
83
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"file": "apps/server/src/services/document-workflow/envRegistry.ts",
|
|
87
|
+
"symbol": "unregisteredAppEnvVars",
|
|
88
|
+
"reason": "登记表/账本的机械自证面:用例据此核对登记与实现一致;生产不需要调用"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"file": "apps/server/src/services/document-workflow/generationStages/generationSession.ts",
|
|
92
|
+
"symbol": "createEmptyGenerationSession",
|
|
93
|
+
"reason": "测试钩子:构造空会话的最小骨架(生产总是由真实输入建会话)"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"file": "apps/server/src/services/document-workflow/integratedBlueprint.ts",
|
|
97
|
+
"symbol": "loadBlueprintAsset",
|
|
98
|
+
"reason": "测试/审计读面:用例据此读工具表/任务表/蓝图/事件总线"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"file": "apps/server/src/services/document-workflow/llmClient.ts",
|
|
102
|
+
"symbol": "resetEmptyStormStreak",
|
|
103
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"file": "apps/server/src/services/document-workflow/llmClient.ts",
|
|
107
|
+
"symbol": "activeLlmCallCount",
|
|
108
|
+
"reason": "观察面/查询面(口径可穷举):供用例与审计读,生产路径不直接调用"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"file": "apps/server/src/services/document-workflow/llmClient.ts",
|
|
112
|
+
"symbol": "resetLlmSlotStateForTest",
|
|
113
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"file": "apps/server/src/services/document-workflow/semanticSimilarity.ts",
|
|
117
|
+
"symbol": "clearEmbedCacheForTest",
|
|
118
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"file": "apps/server/src/services/knowledge/kbService.ts",
|
|
122
|
+
"symbol": "shutdownKbService",
|
|
123
|
+
"reason": "测试钩子(重置/探针):只有用例需要,生产不该调用"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"file": "apps/server/src/services/agent/emitNode.ts",
|
|
127
|
+
"symbol": "resetEmitNodeState",
|
|
128
|
+
"reason": "实际节点生产器emitNode的进程状态重置测试面,隔离轮次/幂等状态;非未接入业务函数。"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"file": "apps/server/src/services/document-workflow/semanticSimilarity.ts",
|
|
132
|
+
"symbol": "snapshotEmbedCacheStats",
|
|
133
|
+
"reason": "实际事实检索、agentPlanner/evidence/Native阶段共用的embedding缓存统计只读测试观察面;不承担正文雷同删除或写作评分。"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"file": "apps/server/src/services/document-workflow/sourceVersionPolicy.ts",
|
|
137
|
+
"symbol": "isAuthenticatedSourceVersionPolicy",
|
|
138
|
+
"reason": "实际SourceVersionPolicy WeakSet认证状态只读测试面,验证伪造/恢复前后的真实来源权限;非模型声明或验收通过资格。"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"retirementUpdatedAt": "2026-10-10T18:16:44.738Z"
|
|
142
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": "半成品扫描门禁基线(棘轮:数不许变多)。重新生成:node apps/server/scripts/half-built-scan.mjs --write-baseline",
|
|
3
|
+
"generatedAt": "2026-09-29",
|
|
4
|
+
"scope": [
|
|
5
|
+
"apps/server/src",
|
|
6
|
+
"packages"
|
|
7
|
+
],
|
|
8
|
+
"counts": {
|
|
9
|
+
"谁都不用": 0,
|
|
10
|
+
"半成品嫌疑": 22,
|
|
11
|
+
"封装暴露(只导出给测试)": 158,
|
|
12
|
+
"不可判(星号再导出)": 0
|
|
13
|
+
},
|
|
14
|
+
"roster": {
|
|
15
|
+
"谁都不用": [],
|
|
16
|
+
"半成品嫌疑": [
|
|
17
|
+
"apps/server/src/lib/i18n.ts::catalogKeyParity",
|
|
18
|
+
"apps/server/src/lib/i18n.ts::resetMissingTranslationKeys",
|
|
19
|
+
"apps/server/src/pages/api/documents/canvas/[id].ts::isAggregateFoldSummary",
|
|
20
|
+
"apps/server/src/pages/api/documents/export.ts::__documentExportTest__",
|
|
21
|
+
"apps/server/src/services/agent/eventBus.ts::flushSubscriptions",
|
|
22
|
+
"apps/server/src/services/agent/eventBus.ts::resetEventBusForTest",
|
|
23
|
+
"apps/server/src/services/agent/eventBus.ts::subscriberCount",
|
|
24
|
+
"apps/server/src/services/agent/loopBudget.ts::resetBudgetMeters",
|
|
25
|
+
"apps/server/src/services/agent/toolRegistry.ts::TOOL_GROUP_COUNTS",
|
|
26
|
+
"apps/server/src/services/agent/toolRegistry.ts::getTool",
|
|
27
|
+
"apps/server/src/services/document-core/documentDomainProfileService.ts::fieldMatchesCategory",
|
|
28
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::getGenerateTask",
|
|
29
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::setProcessAliveProbeForTest",
|
|
30
|
+
"apps/server/src/services/document-workflow/costModel.ts::resetCostModelCaches",
|
|
31
|
+
"apps/server/src/services/document-workflow/envRegistry.ts::unregisteredAppEnvVars",
|
|
32
|
+
"apps/server/src/services/document-workflow/generationStages/generationSession.ts::createEmptyGenerationSession",
|
|
33
|
+
"apps/server/src/services/document-workflow/integratedBlueprint.ts::loadBlueprintAsset",
|
|
34
|
+
"apps/server/src/services/document-workflow/llmClient.ts::activeLlmCallCount",
|
|
35
|
+
"apps/server/src/services/document-workflow/llmClient.ts::resetEmptyStormStreak",
|
|
36
|
+
"apps/server/src/services/document-workflow/llmClient.ts::resetLlmSlotStateForTest",
|
|
37
|
+
"apps/server/src/services/document-workflow/semanticSimilarity.ts::clearEmbedCacheForTest",
|
|
38
|
+
"apps/server/src/services/knowledge/kbService.ts::shutdownKbService"
|
|
39
|
+
],
|
|
40
|
+
"封装暴露(只导出给测试)": [
|
|
41
|
+
"apps/server/src/components/Canvas/DeliverablePreview.tsx::bodySourceText",
|
|
42
|
+
"apps/server/src/components/Canvas/activeAgents.ts::ACTIVE_AGENT_LIMIT",
|
|
43
|
+
"apps/server/src/components/Canvas/activeAgents.ts::RECENT_DONE_MS",
|
|
44
|
+
"apps/server/src/components/Canvas/activeAgents.ts::agentKindLabel",
|
|
45
|
+
"apps/server/src/components/Canvas/handoff.ts::HANDOFF_FRESH_MS",
|
|
46
|
+
"apps/server/src/components/Canvas/handoff.ts::HANDOFF_MAX",
|
|
47
|
+
"apps/server/src/components/Canvas/handoff.ts::clipLabel",
|
|
48
|
+
"apps/server/src/components/Canvas/handoff.ts::handoffLabel",
|
|
49
|
+
"apps/server/src/components/Canvas/handoff.ts::metricsLabel",
|
|
50
|
+
"apps/server/src/components/Canvas/handoff.ts::reversedEdgePath",
|
|
51
|
+
"apps/server/src/components/Canvas/nodeView.ts::DOC_STATUS_TEXT",
|
|
52
|
+
"apps/server/src/components/Canvas/nodeView.ts::NODE_STATUS_TEXT",
|
|
53
|
+
"apps/server/src/components/Canvas/nodeView.ts::NODE_TYPE_LABELS",
|
|
54
|
+
"apps/server/src/components/Canvas/useCanvasViewport.ts::FOLLOW_EDGE_RATIO",
|
|
55
|
+
"apps/server/src/hooks/useGenerationState.ts::buildFlowStepsFromNodes",
|
|
56
|
+
"apps/server/src/hooks/useGenerationState.ts::stageIconFor",
|
|
57
|
+
"apps/server/src/lib/i18n.ts::flattenCatalogKeys",
|
|
58
|
+
"apps/server/src/lib/i18n.ts::getMissingTranslationKeys",
|
|
59
|
+
"apps/server/src/lib/markdownPreview.ts::createPreviewStats",
|
|
60
|
+
"apps/server/src/lib/markdownPreview.ts::decodePreviewEntities",
|
|
61
|
+
"apps/server/src/lib/markdownPreview.ts::escapePreviewText",
|
|
62
|
+
"apps/server/src/lib/markdownPreview.ts::isSafePreviewUrl",
|
|
63
|
+
"apps/server/src/lib/markdownPreview.ts::sanitizePreviewHtml",
|
|
64
|
+
"apps/server/src/pages/api/documents/canvas/[id].ts::FOLD_SUMMARY_MARK",
|
|
65
|
+
"apps/server/src/pages/api/documents/canvas/[id].ts::foldAggregateStageDetails",
|
|
66
|
+
"apps/server/src/pages/api/skills/index.ts::skillEditorOptions",
|
|
67
|
+
"apps/server/src/services/agent/auditCapability.ts::normalizeClarificationQuestion",
|
|
68
|
+
"apps/server/src/services/agent/capabilityGaps.ts::CAPABILITY_GAPS",
|
|
69
|
+
"apps/server/src/services/agent/emitNode.ts::PHASE_ROOTS",
|
|
70
|
+
"apps/server/src/services/agent/emitNode.ts::stageIdentity",
|
|
71
|
+
"apps/server/src/services/agent/eventBus.ts::BoundedEventBuffer",
|
|
72
|
+
"apps/server/src/services/agent/eventBus.ts::EVENT_BUS_GLOBAL_KEY",
|
|
73
|
+
"apps/server/src/services/agent/eventBus.ts::eventBusState",
|
|
74
|
+
"apps/server/src/services/agent/eventBus.ts::publishGenerationEvent",
|
|
75
|
+
"apps/server/src/services/agent/loopBudget.ts::cacheShareText",
|
|
76
|
+
"apps/server/src/services/agent/loopBudget.ts::configureBudgetMeter",
|
|
77
|
+
"apps/server/src/services/agent/loopBudget.ts::isFallbackMeter",
|
|
78
|
+
"apps/server/src/services/agent/nodeImpact.ts::IMPACT_ESCALATION_THRESHOLD",
|
|
79
|
+
"apps/server/src/services/agent/nodeLog.ts::appendNodeEvent",
|
|
80
|
+
"apps/server/src/services/agent/nodeLog.ts::assertNodeShape",
|
|
81
|
+
"apps/server/src/services/agent/nodeRollup.ts::NODE_STATUS_PRECEDENCE",
|
|
82
|
+
"apps/server/src/services/agent/nodeRollup.ts::nodeChildrenIndex",
|
|
83
|
+
"apps/server/src/services/agent/nodeRollup.ts::nodeDepths",
|
|
84
|
+
"apps/server/src/services/agent/nodeTypes.ts::AGENT_NODE_TYPES",
|
|
85
|
+
"apps/server/src/services/agent/nodeTypes.ts::NODE_STATUSES",
|
|
86
|
+
"apps/server/src/services/agent/repairStore.ts::RepairStoreError",
|
|
87
|
+
"apps/server/src/services/agent/repairStore.ts::collectRepairFeedback",
|
|
88
|
+
"apps/server/src/services/agent/repairStore.ts::readRepairHistory",
|
|
89
|
+
"apps/server/src/services/agent/repairStore.ts::repairLocalizationProbes",
|
|
90
|
+
"apps/server/src/services/agent/repairStore.ts::repairLogPath",
|
|
91
|
+
"apps/server/src/services/agent/repairStore.ts::toRepairFeedbackEntry",
|
|
92
|
+
"apps/server/src/services/agent/repairTransaction.ts::decideRepairOutcome",
|
|
93
|
+
"apps/server/src/services/agent/toolEnvelope.ts::INJECTION_PATTERNS",
|
|
94
|
+
"apps/server/src/services/agent/toolEnvelope.ts::detectInjection",
|
|
95
|
+
"apps/server/src/services/agent/toolRegistry.ts::ALL_TOOLS",
|
|
96
|
+
"apps/server/src/services/agent/toolRegistry.ts::toolNames",
|
|
97
|
+
"apps/server/src/services/agent/writerLoopBlock.ts::unfixableDeclarationOf",
|
|
98
|
+
"apps/server/src/services/common/errorLogService.ts::createProcessErrorHandler",
|
|
99
|
+
"apps/server/src/services/common/safePath.ts::rejectRelativePath",
|
|
100
|
+
"apps/server/src/services/common/safePath.ts::resolveInsideOrNull",
|
|
101
|
+
"apps/server/src/services/common/serviceState.ts::getFirstStartedAt",
|
|
102
|
+
"apps/server/src/services/common/serviceState.ts::serviceStatePath",
|
|
103
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::buildResumeInitialRecord",
|
|
104
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::hasActiveTaskForProject",
|
|
105
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::upsertGeneratedAssets",
|
|
106
|
+
"apps/server/src/services/document-core/generatedDocumentService.ts::upsertGeneratedDocumentAsset",
|
|
107
|
+
"apps/server/src/services/document-workflow/agentWorkflow.ts::scopedMaterialRootsOf",
|
|
108
|
+
"apps/server/src/services/document-workflow/authoritativeValues.ts::attributeValueShapeMismatch",
|
|
109
|
+
"apps/server/src/services/document-workflow/authoritativeValues.ts::cleanValueForm",
|
|
110
|
+
"apps/server/src/services/document-workflow/authoritativeValues.ts::stripTrailingOcrGarbage",
|
|
111
|
+
"apps/server/src/services/document-workflow/constructionBidStructure.ts::representativeTitleForPattern",
|
|
112
|
+
"apps/server/src/services/document-workflow/constructionProcessKnowledge.ts::CARD_TYPE_REPLACEMENTS",
|
|
113
|
+
"apps/server/src/services/document-workflow/constructionProcessKnowledge.ts::PROCESS_CARD_TYPE_BINDING_DEFERRED",
|
|
114
|
+
"apps/server/src/services/document-workflow/constructionProcessKnowledge.ts::STANDARDS_PENDING_CALIBRATION",
|
|
115
|
+
"apps/server/src/services/document-workflow/costModel.ts::DEFAULT_PRICE_PROVENANCE",
|
|
116
|
+
"apps/server/src/services/document-workflow/costModel.ts::DEFAULT_PRICE_TABLE",
|
|
117
|
+
"apps/server/src/services/document-workflow/costModel.ts::DETERIORATION_THRESHOLDS",
|
|
118
|
+
"apps/server/src/services/document-workflow/costModel.ts::applyDeteriorationActions",
|
|
119
|
+
"apps/server/src/services/document-workflow/costModel.ts::parsePriceOverride",
|
|
120
|
+
"apps/server/src/services/document-workflow/costModel.ts::priceEntryFor",
|
|
121
|
+
"apps/server/src/services/document-workflow/costModel.ts::priceKeyOf",
|
|
122
|
+
"apps/server/src/services/document-workflow/costModel.ts::priceTable",
|
|
123
|
+
"apps/server/src/services/document-workflow/defectHeatmap.ts::REPAIR_ATTRIBUTION_LABELS",
|
|
124
|
+
"apps/server/src/services/document-workflow/defectHeatmap.ts::REPAIR_FEEDBACK_STUBBORN_THRESHOLD",
|
|
125
|
+
"apps/server/src/services/document-workflow/documentInstruction.ts::INSTRUCTION_KINDS",
|
|
126
|
+
"apps/server/src/services/document-workflow/documentInstruction.ts::INSTRUCTION_KIND_LABELS",
|
|
127
|
+
"apps/server/src/services/document-workflow/documentInstruction.ts::classifyInstructionByRules",
|
|
128
|
+
"apps/server/src/services/document-workflow/documentInstruction.ts::extractInstructionTarget",
|
|
129
|
+
"apps/server/src/services/document-workflow/envRegistry.ts::AGENT_ENV_REGISTRY",
|
|
130
|
+
"apps/server/src/services/document-workflow/envRegistry.ts::APP_ENV_PREFIXES",
|
|
131
|
+
"apps/server/src/services/document-workflow/envRegistry.ts::APP_ENV_REGISTRY",
|
|
132
|
+
"apps/server/src/services/document-workflow/envRegistry.ts::CUSTOMIZE_ENV_REGISTRY",
|
|
133
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::SUPPORT_FORM_LEXICON",
|
|
134
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::applyScopeOverridesToText",
|
|
135
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::collectMarkdownTableCandidates",
|
|
136
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::collectStructuredFactCandidates",
|
|
137
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::numericScopeResolutions",
|
|
138
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::resolveCanonicalFacts",
|
|
139
|
+
"apps/server/src/services/document-workflow/factGovernance.ts::unitReForKind",
|
|
140
|
+
"apps/server/src/services/document-workflow/factsModel.ts::sanitizeFactPool",
|
|
141
|
+
"apps/server/src/services/document-workflow/hazardBinding.ts::billOfQuantitiesCorpus",
|
|
142
|
+
"apps/server/src/services/document-workflow/hazardBinding.ts::extractHazardParameters",
|
|
143
|
+
"apps/server/src/services/document-workflow/hazardBinding.ts::normalizeParameterValue",
|
|
144
|
+
"apps/server/src/services/document-workflow/integratedBlueprint/parse.ts::isStructuralOnlyBillFile",
|
|
145
|
+
"apps/server/src/services/document-workflow/integratedBlueprint/render.ts::AUTHORITY_DOMAIN_REGISTRY",
|
|
146
|
+
"apps/server/src/services/document-workflow/integratedBlueprint/render.ts::alignmentAnchorsForChapter",
|
|
147
|
+
"apps/server/src/services/document-workflow/integratedBlueprint/render.ts::assertAuthorityDomainChannels",
|
|
148
|
+
"apps/server/src/services/document-workflow/integratedBlueprint/render.ts::authorityDomainChannelReport",
|
|
149
|
+
"apps/server/src/services/document-workflow/llmCassette.ts::CASSETTE_PROMPT_VERSION",
|
|
150
|
+
"apps/server/src/services/document-workflow/llmCassette.ts::CassetteMissError",
|
|
151
|
+
"apps/server/src/services/document-workflow/llmCassette.ts::cassetteDir",
|
|
152
|
+
"apps/server/src/services/document-workflow/llmCassette.ts::cassetteMode",
|
|
153
|
+
"apps/server/src/services/document-workflow/llmClient.ts::flushScheduledLaunches",
|
|
154
|
+
"apps/server/src/services/document-workflow/llmClient.ts::judgeThinkingEnabled",
|
|
155
|
+
"apps/server/src/services/document-workflow/materialResidue.ts::drawingPointerPhraseHits",
|
|
156
|
+
"apps/server/src/services/document-workflow/planningArtifactCache.ts::PLANNING_ARTIFACT_CACHE_VERSION",
|
|
157
|
+
"apps/server/src/services/document-workflow/poolNoise.ts::penaltyTableHitCount",
|
|
158
|
+
"apps/server/src/services/document-workflow/promptRuleExtraction.ts::dedupePlannedSections",
|
|
159
|
+
"apps/server/src/services/document-workflow/promptRuleExtraction.ts::extractOutlineHeadings",
|
|
160
|
+
"apps/server/src/services/document-workflow/resumeLedger.ts::isManualIssue",
|
|
161
|
+
"apps/server/src/services/document-workflow/structureIntegrityRules.ts::tailOrphanBlockIssues",
|
|
162
|
+
"apps/server/src/services/document-workflow/textMatch.ts::chineseTokenMatchScore",
|
|
163
|
+
"apps/server/src/services/document-workflow/textMatch.ts::chineseTokens",
|
|
164
|
+
"apps/server/src/services/knowledge/kbExportService.ts::stripCadMetadataLines",
|
|
165
|
+
"apps/server/src/services/knowledge/kbExportService.ts::trimChunkOverlap",
|
|
166
|
+
"apps/server/src/services/knowledge/kbExportService.ts::txtEntryNameFor",
|
|
167
|
+
"apps/server/src/services/knowledge/kbIndexWorkerService.ts::enqueueKnowledgeIndex",
|
|
168
|
+
"apps/server/src/services/knowledge/kbService.ts::getKnownProjectRoots",
|
|
169
|
+
"apps/server/src/services/skills/blockKnowledge.ts::selectBlockCards",
|
|
170
|
+
"apps/server/src/services/skills/match.ts::assertFocusRuleMapping",
|
|
171
|
+
"apps/server/src/services/skills/match.ts::chapterDomainPatterns",
|
|
172
|
+
"apps/server/src/services/skills/schema.ts::MAX_SECTION_REGEX_LENGTH",
|
|
173
|
+
"apps/server/src/services/skills/store.ts::applySkillOverride",
|
|
174
|
+
"apps/server/src/services/skills/store.ts::skillFilePath",
|
|
175
|
+
"apps/server/src/services/skills/store.ts::skillsDir",
|
|
176
|
+
"packages/knowledge/src/core/knowledge-base-manager.ts::diversifiedRerankCandidates",
|
|
177
|
+
"packages/knowledge/src/extraction/content-extractor.ts::collapseAdjacentRepeatedLines",
|
|
178
|
+
"packages/knowledge/src/extraction/content-extractor.ts::extractTopLevelOoxmlElements",
|
|
179
|
+
"packages/knowledge/src/extraction/content-extractor.ts::isPdfWrappedClauseLike",
|
|
180
|
+
"packages/knowledge/src/extraction/content-extractor.ts::ocrPageCacheKeyOf",
|
|
181
|
+
"packages/knowledge/src/extraction/content-extractor.ts::reorderPdfRowsAroundWrappedParagraphs",
|
|
182
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::OCR_NEIGHBOR_CONFUSION_LOW_CONFIDENCE",
|
|
183
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::PaddleOcrJsProvider",
|
|
184
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::TesseractJsProvider",
|
|
185
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::gateOcrNeighborClassConfusions",
|
|
186
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::resolveOcrSessionThreads",
|
|
187
|
+
"packages/knowledge/src/extraction/ocr-providers.ts::withOcrSessionThreads",
|
|
188
|
+
"packages/knowledge/src/extraction/ocr-tiling.ts::assembleTiledText",
|
|
189
|
+
"packages/knowledge/src/extraction/ocr-tiling.ts::cropRgbTile",
|
|
190
|
+
"packages/knowledge/src/extraction/ocr-tiling.ts::filterTiledRegions",
|
|
191
|
+
"packages/knowledge/src/extraction/ocr-tiling.ts::mergeTileRegions",
|
|
192
|
+
"packages/knowledge/src/extraction/office-embedded-images.ts::MIN_EMBEDDED_IMAGE_BYTES",
|
|
193
|
+
"packages/knowledge/src/extraction/office-embedded-images.ts::carveImageCandidates",
|
|
194
|
+
"packages/knowledge/src/extraction/office-embedded-images.ts::carveJpeg",
|
|
195
|
+
"packages/knowledge/src/extraction/office-embedded-images.ts::carvePng",
|
|
196
|
+
"packages/knowledge/src/extraction/paddle-model-select.ts::MIN_ONNX_BYTES",
|
|
197
|
+
"packages/knowledge/src/extraction/paddle-model-select.ts::PADDLE_MODEL_FILES",
|
|
198
|
+
"packages/knowledge/src/extraction/paddle-model-select.ts::PADDLE_MODEL_PRESET"
|
|
199
|
+
],
|
|
200
|
+
"不可判(星号再导出)": []
|
|
201
|
+
},
|
|
202
|
+
"retirementUpdatedAt": "2026-10-10T18:16:44.719Z",
|
|
203
|
+
"retirementUpdate": "Only remove actually absent export declarations; reconcile counts to retained roster lengths. No baseline regeneration, added allowances or swallowed new dead declarations.",
|
|
204
|
+
"retirementCountReconciledAt": "2026-10-10T01:23:32.058Z",
|
|
205
|
+
"retirementCountReconciliation": "Reconciles 296 count to exact existing 294-row test-only export roster after prior two retirements; no rows/allowances added and zero-dead-symbol hard cap retained."
|
|
206
|
+
}
|