@customize-agent/server 4.2.4 → 4.2.6
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 +65 -47
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +6 -0
- package/.next/server/chunks/1936.js +1 -1
- package/.next/server/chunks/208.js +61 -0
- package/.next/server/chunks/2405.js +87 -0
- package/.next/server/chunks/2484.js +1 -0
- package/.next/server/chunks/4680.js +48 -0
- package/.next/server/chunks/5284.js +36 -154
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/chunks/8661.js +1 -1
- package/.next/server/chunks/9227.js +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.nft.json +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +3 -3
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- 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/documents/templates.js +1 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
- package/.next/server/pages/api/jobs/[id].js +3 -3
- package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
- package/.next/server/pages/api/jobs.js +3 -3
- package/.next/server/pages/api/jobs.js.nft.json +1 -1
- package/.next/server/pages/api/kb/categories.js +2 -2
- package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
- package/.next/server/pages/api/kb/duplicates.js +2 -2
- package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
- package/.next/server/pages/api/kb/evaluate.js +2 -2
- package/.next/server/pages/api/kb/evaluate.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/detail.js +3 -3
- package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/open.js +2 -2
- package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +2 -2
- package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/reindex.js +1 -1
- package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/search.js +2 -2
- package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/tree.js +2 -2
- package/.next/server/pages/api/kb/files/tree.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files.js +3 -3
- package/.next/server/pages/api/kb/files.js.nft.json +1 -1
- package/.next/server/pages/api/kb/ignore.js +2 -2
- package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
- package/.next/server/pages/api/kb/intelligence.js +1 -1
- package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
- package/.next/server/pages/api/kb/operations.js +3 -3
- package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
- package/.next/server/pages/api/kb/reindex.js +1 -1
- package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/search.js +2 -2
- package/.next/server/pages/api/kb/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/stats.js +2 -2
- package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
- package/.next/server/pages/api/kb/tags.js +2 -2
- package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/complete.js +1 -1
- package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/progress.js +3 -3
- package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload.js +1 -1
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/prompt.js +1 -1
- package/.next/server/pages/api/prompt.js.nft.json +1 -1
- package/.next/server/pages/api/template-references.js +1 -0
- package/.next/server/pages/api/template-references.js.nft.json +1 -0
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.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.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/system/logs.html +1 -1
- package/.next/server/pages/template-references.html +1 -0
- package/.next/server/pages/template-references.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +28 -26
- package/.next/static/XgGKtqmwpahXYicc2ieXW/_buildManifest.js +1 -0
- package/.next/static/chunks/102-881dcc464f983c89.js +41 -0
- package/.next/static/chunks/{7-20bcc985742a9ae1.js → 224-790cf01fcf6820ee.js} +2 -2
- package/.next/static/chunks/260-244c94eacd903620.js +1 -0
- package/.next/static/chunks/289-42781fb699646699.js +38 -0
- package/.next/static/chunks/592-c667dfd191c1ea0c.js +24 -0
- package/.next/static/chunks/69-34d57b77fd2eed20.js +1 -0
- package/.next/static/chunks/700-5d29b0475311f590.js +1 -0
- package/.next/static/chunks/788-e98701da4d6ca319.js +1 -0
- package/.next/static/chunks/{795-cd94e8d4e9768eb9.js → 795-61fe67c7203b6001.js} +1 -1
- package/.next/static/chunks/930-0436dcaa92fb41f6.js +1 -0
- package/.next/static/chunks/986-771dc425e7b25964.js +8 -0
- package/.next/static/chunks/pages/{_app-1511aa64f9299003.js → _app-55467a8f660aa065.js} +17 -17
- package/.next/static/chunks/pages/{asset-library-a1047694e888e655.js → asset-library-f6319fc04559e43d.js} +1 -1
- package/.next/static/chunks/pages/document-roles-4ccb2db16dc4b63c.js +1 -0
- package/.next/static/chunks/pages/documents-f9880371363a534c.js +1 -0
- package/.next/static/chunks/pages/guide-a73d8eea2cba97e1.js +1 -0
- package/.next/static/chunks/pages/knowledge/{file-detail-02cd5d87cd1d1c5d.js → file-detail-3a04722f7720abf5.js} +1 -1
- package/.next/static/chunks/pages/knowledge/files-3ba329d8e6335929.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +1 -0
- package/.next/static/chunks/pages/{models-aa250428e72433df.js → models-e6f755b68bff8515.js} +1 -1
- package/.next/static/chunks/pages/prompt-839287c514595765.js +1 -0
- package/.next/static/chunks/pages/{settings-810eb1a6cf1a6b02.js → settings-17632b1471b4862f.js} +1 -1
- package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +1 -0
- package/.next/static/chunks/pages/template-references-68b9bd99fc910922.js +1 -0
- package/.next/static/css/10c378422f47671a.css +1 -0
- package/messages/en-US.json +57 -1
- package/messages/zh-CN.json +57 -1
- package/package.json +10 -11
- package/scripts/kb-index-worker.cjs +8 -90
- package/.next/package.json +0 -1
- package/.next/server/chunks/6071.js +0 -69
- package/.next/static/QO5Rc5Wqv5M0mKhed3tM3/_buildManifest.js +0 -1
- package/.next/static/chunks/187-358527d7061417bf.js +0 -1
- package/.next/static/chunks/230-8184e70eae35f2bb.js +0 -1
- package/.next/static/chunks/289-35ac595388bbd018.js +0 -78
- package/.next/static/chunks/563-b12f299d34bb9e44.js +0 -1
- package/.next/static/chunks/665-88e20299084b9e73.js +0 -1
- package/.next/static/chunks/788-3afeb069ed706ac0.js +0 -1
- package/.next/static/chunks/957-7c7f05f1c2ccfb96.js +0 -8
- package/.next/static/chunks/pages/document-roles-5620a98d6312f81c.js +0 -1
- package/.next/static/chunks/pages/documents-a2ccb31a69a78d98.js +0 -1
- package/.next/static/chunks/pages/guide-b847733a9a832c2c.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-0d9a0d407b38a0a3.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-a00bb7fc6a76f820.js +0 -1
- package/.next/static/chunks/pages/prompt-224af05519ef8304.js +0 -1
- package/.next/static/chunks/pages/system/logs-6f45ef8d862759a2.js +0 -1
- package/.next/static/css/3f9e41b5c0ba95f7.css +0 -1
- /package/.next/static/{QO5Rc5Wqv5M0mKhed3tM3 → XgGKtqmwpahXYicc2ieXW}/_ssgManifest.js +0 -0
package/messages/zh-CN.json
CHANGED
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"models": "模型配置",
|
|
18
18
|
"settings": "设置",
|
|
19
19
|
"promptManagement": "提示词管理",
|
|
20
|
-
"systemLogs": "系统日志"
|
|
20
|
+
"systemLogs": "系统日志",
|
|
21
|
+
"templateReferences": "模板参考"
|
|
21
22
|
},
|
|
22
23
|
"overview": {
|
|
23
24
|
"title": "系统总览",
|
|
@@ -693,5 +694,60 @@
|
|
|
693
694
|
"gb": "GB",
|
|
694
695
|
"unknown": "未知",
|
|
695
696
|
"never": "从未"
|
|
697
|
+
},
|
|
698
|
+
"refs": {
|
|
699
|
+
"title": "模板参考库",
|
|
700
|
+
"description": "上传优秀入围施组文件作为质量对标基准。系统自动解析质量画像(参数密度、工序链、结构等),生成文档后按工程类型对标。参考文件仅用于质量对标与结构参考,绝不作为项目事实材料参与生成。",
|
|
701
|
+
"uploadTitle": "点击或拖拽上传参考文件",
|
|
702
|
+
"uploadHint": "支持 PDF / Word 文档,可上传多份不同类型的入围文件累积沉淀",
|
|
703
|
+
"uploading": "正在上传并解析…",
|
|
704
|
+
"uploaded": "参考文件已入库并完成画像解析",
|
|
705
|
+
"uploadFailed": "上传失败",
|
|
706
|
+
"operationFailed": "操作失败",
|
|
707
|
+
"projectType": "工程类型",
|
|
708
|
+
"autoClassify": "不选则自动分类",
|
|
709
|
+
"statusParsing": "解析中…",
|
|
710
|
+
"statusFailed": "解析失败",
|
|
711
|
+
"setPrimary": "设为主参考",
|
|
712
|
+
"unsetPrimary": "取消主参考",
|
|
713
|
+
"changeType": "改为",
|
|
714
|
+
"typeChanged": "类型已更新",
|
|
715
|
+
"delete": "删除",
|
|
716
|
+
"deleteConfirm": "删除该参考文件?原文将一并移除",
|
|
717
|
+
"paramDensity": "参数密度",
|
|
718
|
+
"arrowChain": "工序链覆盖率",
|
|
719
|
+
"duplication": "段落重复率",
|
|
720
|
+
"tables": "表格数",
|
|
721
|
+
"sections": "章节数",
|
|
722
|
+
"sectionSubsection": "章节/小节",
|
|
723
|
+
"subsections": "小节数",
|
|
724
|
+
"subitems": "子目数",
|
|
725
|
+
"words": "字数",
|
|
726
|
+
"more": "展开",
|
|
727
|
+
"noReferences": "暂无该类型的参考文件",
|
|
728
|
+
"redLineTitle": "红线说明",
|
|
729
|
+
"redLine": "参考文件独立存储,永不进入知识库检索、永不作为生成事实材料。",
|
|
730
|
+
"profileTitle": "类型画像",
|
|
731
|
+
"profileSamples": "份样本",
|
|
732
|
+
"profileUpdated": "更新于",
|
|
733
|
+
"profileDetail": "查看画像详情",
|
|
734
|
+
"profileDetailTitle": "类型画像详情",
|
|
735
|
+
"profileMetrics": "指标区间(最小 - 均值 - 最大)",
|
|
736
|
+
"profileTypicalHeadings": "典型章节结构(样本覆盖率)",
|
|
737
|
+
"profileCommonTables": "常见表格",
|
|
738
|
+
"profileFrequentParams": "高频工艺参数",
|
|
739
|
+
"profileSources": "画像来源文件",
|
|
740
|
+
"profileNoSamples": "该类型暂无样本,上传参考文件后自动沉淀画像",
|
|
741
|
+
"profilePrimaryBadge": "主参考",
|
|
742
|
+
"totalSamples": "有效样本",
|
|
743
|
+
"coveredTypes": "覆盖类型",
|
|
744
|
+
"primaryCount": "主参考",
|
|
745
|
+
"uploadSection": "上传参考文件",
|
|
746
|
+
"autoClassified": "自动分类",
|
|
747
|
+
"fileLibrary": "文件库",
|
|
748
|
+
"allFiles": "全部",
|
|
749
|
+
"profileSubtitle": "类型级累积画像,随参考文件持续沉淀",
|
|
750
|
+
"headingPreview": "章节结构",
|
|
751
|
+
"avgSectionWords": "平均每章字数"
|
|
696
752
|
}
|
|
697
753
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@customize-agent/server",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.6",
|
|
4
4
|
"description": "Customize Agent Web 管理控制台",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json"
|
|
@@ -9,14 +9,6 @@
|
|
|
9
9
|
"customize-web": "scripts/start-server.cjs",
|
|
10
10
|
"customize-dashboard": "scripts/start-server.cjs"
|
|
11
11
|
},
|
|
12
|
-
"scripts": {
|
|
13
|
-
"dev": "node -e \"require('fs').rmSync('.next', { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && next dev -p 17321",
|
|
14
|
-
"build": "node -e \"require('fs').rmSync('.next', { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && next build && node -e \"const fs=require('fs'); for (const p of ['.next/cache','.next/static/development','.next/static/webpack']) fs.rmSync(p, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && node scripts/verify-next-static.js",
|
|
15
|
-
"prepack": "node -e \"const fs=require('fs'); for (const p of ['.next/cache','.next/static/development','.next/static/webpack']) fs.rmSync(p, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && node scripts/verify-next-static.js --silent",
|
|
16
|
-
"prestart": "node scripts/verify-next-static.js",
|
|
17
|
-
"start": "next start -p 17321",
|
|
18
|
-
"lint": "eslint src/"
|
|
19
|
-
},
|
|
20
12
|
"files": [
|
|
21
13
|
".next/BUILD_ID",
|
|
22
14
|
".next/app-build-manifest.json",
|
|
@@ -44,7 +36,7 @@
|
|
|
44
36
|
},
|
|
45
37
|
"dependencies": {
|
|
46
38
|
"@ant-design/icons": "^6.3.2",
|
|
47
|
-
"@customize-agent/knowledge": "^4.0.
|
|
39
|
+
"@customize-agent/knowledge": "^4.0.43",
|
|
48
40
|
"@customize-agent/llm": "^3.0.13",
|
|
49
41
|
"@customize-agent/runtime": "^3.0.13",
|
|
50
42
|
"@napi-rs/canvas": "^0.1.82",
|
|
@@ -78,5 +70,12 @@
|
|
|
78
70
|
"postcss": "^8.4.49",
|
|
79
71
|
"sass": "^1.101.0",
|
|
80
72
|
"tailwindcss": "^4.3.2"
|
|
73
|
+
},
|
|
74
|
+
"scripts": {
|
|
75
|
+
"dev": "node -e \"require('fs').rmSync('.next', { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && next dev -p 17321",
|
|
76
|
+
"build": "node -e \"require('fs').rmSync('.next', { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && next build && node -e \"const fs=require('fs'); for (const p of ['.next/cache','.next/static/development','.next/static/webpack']) fs.rmSync(p, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 })\" && node scripts/verify-next-static.js",
|
|
77
|
+
"prestart": "node scripts/verify-next-static.js",
|
|
78
|
+
"start": "next start -p 17321",
|
|
79
|
+
"lint": "eslint src/"
|
|
81
80
|
}
|
|
82
|
-
}
|
|
81
|
+
}
|
|
@@ -1,58 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
// 知识库后台索引子进程壳:索引主循环复用 @customize-agent/knowledge 的 runIndexLoop
|
|
3
|
+
// (与主进程 runInProcess 共用同一实现),本文件只负责参数解析、进程壳与日志 IPC 转发。
|
|
4
|
+
// 操作日志单写者为主进程:worker 不再直接读写 kb-operations.jsonl,
|
|
5
|
+
// 而是通过 process.send({ type: 'log', patch }) 把补丁交给主进程统一落盘,
|
|
6
|
+
// 避免父子进程同时读改写日志文件造成记录丢失。
|
|
5
7
|
const path = require('node:path');
|
|
6
8
|
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function logPath(projectRoot) {
|
|
12
|
-
return path.join(os.homedir(), '.customize-agent', 'projects', computeProjectId(path.resolve(projectRoot)), 'kb-operations.jsonl');
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function readAll(projectRoot) {
|
|
16
|
-
const file = logPath(projectRoot);
|
|
17
|
-
if (!fs.existsSync(file)) return [];
|
|
18
|
-
return fs.readFileSync(file, 'utf8').split('\n').filter(Boolean).flatMap(line => {
|
|
19
|
-
try { return [JSON.parse(line)]; } catch { return []; }
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function writeAll(projectRoot, records) {
|
|
24
|
-
const file = logPath(projectRoot);
|
|
25
|
-
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
26
|
-
fs.writeFileSync(file, `${records.slice(-200).map(record => JSON.stringify(record)).join('\n')}\n`, 'utf8');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function upsert(projectRoot, patch) {
|
|
30
|
-
const now = Date.now();
|
|
31
|
-
const records = readAll(projectRoot);
|
|
32
|
-
const index = records.findIndex(record => record.id === patch.id);
|
|
33
|
-
const current = index >= 0 ? records[index] : undefined;
|
|
34
|
-
const next = {
|
|
35
|
-
id: patch.id,
|
|
36
|
-
type: patch.type,
|
|
37
|
-
title: patch.title,
|
|
38
|
-
stage: patch.stage ?? current?.stage ?? 'uploading',
|
|
39
|
-
status: patch.status ?? current?.status ?? 'processing',
|
|
40
|
-
message: patch.message ?? current?.message ?? '',
|
|
41
|
-
percent: patch.percent ?? current?.percent ?? 0,
|
|
42
|
-
fileName: patch.fileName ?? current?.fileName,
|
|
43
|
-
filePath: patch.filePath ?? current?.filePath,
|
|
44
|
-
chunkCount: patch.chunkCount ?? current?.chunkCount,
|
|
45
|
-
textLength: patch.textLength ?? current?.textLength,
|
|
46
|
-
extractionMode: patch.extractionMode ?? current?.extractionMode,
|
|
47
|
-
error: patch.error ?? current?.error,
|
|
48
|
-
createdAt: current?.createdAt ?? now,
|
|
49
|
-
updatedAt: now,
|
|
50
|
-
};
|
|
51
|
-
if (index >= 0) records[index] = next;
|
|
52
|
-
else records.push(next);
|
|
53
|
-
writeAll(projectRoot, records);
|
|
54
|
-
if (process.send) process.send({ type: 'progress', record: next });
|
|
55
|
-
return next;
|
|
9
|
+
function upsert(_projectRoot, patch) {
|
|
10
|
+
if (process.send) process.send({ type: 'log', patch });
|
|
56
11
|
}
|
|
57
12
|
|
|
58
13
|
function toStage(stage) {
|
|
@@ -86,44 +41,7 @@ async function main() {
|
|
|
86
41
|
error: progress.vectorStatus?.error,
|
|
87
42
|
});
|
|
88
43
|
|
|
89
|
-
|
|
90
|
-
? await project.incrementalIndex({ vectorMode: job.vectorMode, onProgress, onlyRelativePaths: job.relativePaths })
|
|
91
|
-
: job.relativePath
|
|
92
|
-
? await project.reindexFile(job.relativePath, { vectorMode: job.vectorMode, onProgress })
|
|
93
|
-
: job.forceReindexAll
|
|
94
|
-
? await project.forceReindexAll({ vectorMode: job.vectorMode, onProgress })
|
|
95
|
-
: await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress, waitForUploadId: job.uploadOperationId });
|
|
96
|
-
|
|
97
|
-
let idleChecks = 0;
|
|
98
|
-
// 上传 session 空闲上限:批次间无新文件到达超过该时长即退出等待,避免前端中断后 worker 永久挂起
|
|
99
|
-
const sessionIdleLimitMs = Math.max(60_000, Number(process.env.CUSTOMIZE_KB_UPLOAD_SESSION_IDLE_MS || 600_000));
|
|
100
|
-
const maxIdleChecks = Math.max(10, Math.ceil(sessionIdleLimitMs / 1000));
|
|
101
|
-
// 等待任何未关闭的上传 session(不限于本 operationId),避免重叠上传的后续批次文件无人消费
|
|
102
|
-
while (!job.relativePath && !job.relativePaths?.length && (project.countPendingIndexJobs() > 0 || (project.hasOpenUploadSessions() && idleChecks < maxIdleChecks))) {
|
|
103
|
-
if (project.countPendingIndexJobs() === 0) {
|
|
104
|
-
idleChecks += 1;
|
|
105
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
idleChecks = 0;
|
|
109
|
-
const nextDiff = await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress, waitForUploadId: job.uploadOperationId });
|
|
110
|
-
diff = {
|
|
111
|
-
newFiles: [...diff.newFiles, ...nextDiff.newFiles],
|
|
112
|
-
modifiedFiles: [...diff.modifiedFiles, ...nextDiff.modifiedFiles],
|
|
113
|
-
deletedFiles: [...diff.deletedFiles, ...nextDiff.deletedFiles],
|
|
114
|
-
unchangedCount: diff.unchangedCount + nextDiff.unchangedCount,
|
|
115
|
-
mtimeOnlyCount: diff.mtimeOnlyCount + nextDiff.mtimeOnlyCount,
|
|
116
|
-
skippedFiles: [...diff.skippedFiles, ...nextDiff.skippedFiles],
|
|
117
|
-
hasChanges: diff.hasChanges || nextDiff.hasChanges,
|
|
118
|
-
diffTimeMs: diff.diffTimeMs + nextDiff.diffTimeMs,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
let vectorStatus = project.getVectorStatus();
|
|
123
|
-
if (job.vectorMode === 'defer' && vectorStatus.status === 'pending') {
|
|
124
|
-
await project.indexVectors();
|
|
125
|
-
vectorStatus = project.getVectorStatus();
|
|
126
|
-
}
|
|
44
|
+
const { vectorStatus } = await knowledge.runIndexLoop(project, job, onProgress);
|
|
127
45
|
if (vectorStatus.status === 'error') {
|
|
128
46
|
const error = vectorStatus.error || 'HNSWLib 向量入库失败';
|
|
129
47
|
upsert(projectRoot, { id: operationId, type: operationType, title: operationTitle, stage: 'error', status: 'error', percent: 100, message: error, error });
|
package/.next/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type": "commonjs"}
|