@dsh-libing/knowledge-base 0.1.0 → 0.1.3

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 (47) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +8 -2
  3. package/lib/client-types/client/JobDetails.d.ts +16 -0
  4. package/lib/client-types/client/JobsPanel.d.ts +6 -1
  5. package/lib/client-types/client/QualityReport.d.ts +3 -2
  6. package/lib/client-types/client/api.d.ts +83 -52
  7. package/lib/client-types/client/locales.d.ts +2 -0
  8. package/lib/client-types/client/useKnowledge.d.ts +30 -15
  9. package/lib/client-types/contract.d.ts +83 -52
  10. package/lib/client-types/data.d.ts +11 -0
  11. package/lib/client-types/settings.d.ts +4 -0
  12. package/lib/client-types/shared.d.ts +17 -0
  13. package/lib/client.js +40 -40
  14. package/lib/contract.d.ts +33 -2
  15. package/lib/contract.js +2 -1
  16. package/lib/data.d.ts +11 -0
  17. package/lib/data.js +2 -0
  18. package/lib/figures/image-client.d.ts +5 -0
  19. package/lib/figures/image-client.js +58 -0
  20. package/lib/figures/image-gate.d.ts +12 -0
  21. package/lib/figures/image-gate.js +39 -0
  22. package/lib/figures/image-protocol.d.ts +19 -0
  23. package/lib/figures/image-protocol.js +9 -0
  24. package/lib/figures/image-worker.d.ts +1 -0
  25. package/lib/figures/image-worker.js +60 -0
  26. package/lib/figures/process.d.ts +1 -1
  27. package/lib/figures/process.js +6 -35
  28. package/lib/indexes.js +9 -2
  29. package/lib/job-storage.d.ts +264 -0
  30. package/lib/job-storage.js +115 -0
  31. package/lib/jobs.d.ts +782 -1489
  32. package/lib/jobs.js +47 -23
  33. package/lib/models.d.ts +1 -1
  34. package/lib/models.js +8 -7
  35. package/lib/retrieval.js +8 -4
  36. package/lib/revision-cache.d.ts +24 -0
  37. package/lib/revision-cache.js +100 -0
  38. package/lib/routes.js +10 -7
  39. package/lib/runtime.d.ts +4 -0
  40. package/lib/runtime.js +6 -1
  41. package/lib/settings.d.ts +4 -0
  42. package/lib/settings.js +5 -2
  43. package/lib/shared.d.ts +17 -0
  44. package/lib/shared.js +3 -0
  45. package/lib/store.d.ts +101 -5
  46. package/lib/store.js +54 -20
  47. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.3
4
+
5
+ - 增加有容量上限的 manifest / 完整正文检索缓存,保持正文子串匹配与评分;每次检查文件变化,返回证据仍复读原文核验哈希。
6
+ - 发布、回收、恢复、删除和卸载清空缓存;列表批量读取 registry,tree 复用快照,片段/图片关联使用 ID 集合校验,图片响应复用已核验字节。
7
+
8
+ ## 0.1.2
9
+
10
+ - 图片解码、缩放、裁片与编码移至可取消 worker,进程级串行预处理与有界等待队列限制位图并发。
11
+ - 裁片只复制目标区域,逐张编码/保存;增加预处理超时、尺寸硬上限和真实打包 worker 验证。
12
+
13
+ ## 0.1.1
14
+
15
+ - 构建任务列表改为有上限的分页摘要,质量报告和用量记录展开后按需读取;关闭和卸载取消未完成的详情请求。
16
+ - 使用 v2 小检查点,报告与历史用量独立保存;复用逐次调用收据核对崩溃时未结算用量,兼容旧任务首次迁移和回收恢复。
17
+ - 增加 Host 模型预算上限与上传收据留存期,重试拒绝超限;启动时清理过期上传,独立任务输入和原件保留。
18
+
3
19
  ## 0.1.0
4
20
 
5
21
  - 图片复核改用宽幅双栏与窄屏上下布局,普通文字编辑描述和标识,按需展开类型及技术字段;原图可放大查看,补充各项操作影响,保持标题与底部按钮可见。
package/README.md CHANGED
@@ -15,7 +15,7 @@ PDF 可以先预检:只抽样核对页数、书签及 OCR 可能性,不调
15
15
 
16
16
  ## 任务与复核
17
17
 
18
- 任务、逐页收据、模型调用用量和已完成检查点保存在磁盘。取消后可重试;卸载时取消并等待任务退出,重载后继续队列。模型调用和已报告 tokens 受到预算限制,耗尽后暂停,只有明确提高额度才继续。重试复用可用缓存;供应商未报告的用量不能精确计入 tokens。
18
+ 任务、逐页收据、模型调用用量和已完成检查点保存在磁盘。列表每页默认 20 个任务、最多 50 个,活动任务优先;质量报告、阶段历史和用量记录只在展开后加载,用量记录单独分页。取消后可重试;卸载时取消并等待任务退出,重载后继续队列。模型调用和已报告 tokens 受到预算限制,耗尽后暂停,只有明确提高额度且不超过 Host 配置的硬上限才继续。重试复用可用缓存;供应商未报告的用量不能精确计入 tokens。新任务检查点采用格式 v2,仅保存状态、配置、累计用量与少量待结算调用编号;报告保存在任务目录的 `quality.json`,逐次调用仍使用 `calls/` 收据。退出后重载会补结算尚未写入检查点的已完成收据;已预留调用即使没有返回用量仍占用调用次数。旧格式在首次读取时迁移,报告和已有用量明细分别保留,不重新调用模型。v2 不能直接交给旧版插件读取,更新前应备份数据根。
19
19
 
20
20
  图片失败、扫描页无法恢复或文档覆盖缺口默认进入「待复核」,原来的已发布版本继续可用。草稿只允许在管理页面预览,Agent 工具不检索草稿。没有阻塞问题时自动发布,任务显示「已发布」;普通解析提示不一定阻止发布。「待复核」任务提供「查看待发布草稿」与「发布草稿」两个入口,后者须在弹窗中确认接受报告中的覆盖缺口。提交后仍需等待任务变为「已发布」;接受缺口不会补回遗漏的图片、扫描页或复杂对象,正式检索仍提示缺口。人工图片描述、装饰图确认、忽略一次引用、恢复和重新识别都生成新任务与新版本;保存时核对当前版本及旧复核哈希,防止并发覆盖。图片描述是生成内容,应结合原图核对。
21
21
 
@@ -61,6 +61,8 @@ PDF 可以先预检:只抽样核对页数、书签及 OCR 可能性,不调
61
61
  | `visionProvider` / `visionModel` | 空;两者成对配置 |
62
62
  | `summaryProvider` / `summaryModel` | 空;两者成对配置 |
63
63
  | `maxModelCalls` / `maxModelTokens` | 每任务 1000 / 2000000 |
64
+ | `maxModelCallsLimit` / `maxModelTokensLimit` | Host 硬上限 10000 / 20000000;配置上限 100000 / 1000000000 |
65
+ | `uploadRetentionDays` | 7 天;启动时清理过期上传收据及上传副本 |
64
66
  | `modelTimeoutMs` / `modelAttempts` | 90000 / 3 |
65
67
  | `maxInputBytes` / `maxUncompressedBytes` | 64 MiB / 256 MiB |
66
68
  | `maxArchiveEntries` | 10000 |
@@ -69,7 +71,7 @@ PDF 可以先预检:只抽样核对页数、书签及 OCR 可能性,不调
69
71
 
70
72
  DOCX 压缩包、上传流、图片和 PDF 渲染均有限制;PDF 在可取消的独立 worker 中解析。复杂版面、扫描文字和生成图片描述仍需人工核对;加密 PDF 需先解除密码。切分保留合并单元格、表头及图文组合,不强行截断不可分的超长结构,报告会列出超出目标的片段。
71
73
 
72
- 同一个数据根只能运行一个任务服务,避免两个 profile 同时写入。浏览器通过 DSH 官方 Connection 认证,上传后只提交收据,不接收任意本机路径。原件/图片读取核对版本、路径边界和内容哈希。彻底删除仅限回收站中的库,需要完整名称和不可恢复确认;会删除该库原件、历史与关联任务,上传收据和其他库不受影响。
74
+ 同一个数据根只能运行一个任务服务,避免两个 profile 同时写入。浏览器通过 DSH 官方 Connection 认证,上传后只提交收据,不接收任意本机路径。原件/图片读取核对版本、路径边界和内容哈希。彻底删除仅限回收站中的库,需要完整名称和不可恢复确认;会删除该库原件、历史与关联任务,其他库不受影响。上传收据独立按留存期清理,过期后需重新上传;构建已复制到任务 input 的文件、原件和已发布版本不会随收据清理。
73
75
 
74
76
  本插件不需要向量数据库、Python、外部 PDF 命令或 CI。实际验证平台为 macOS、Node.js 24、DSH rc.2;Windows、LibreOffice `.doc` 转换与真实供应商识别质量需另行验收。
75
77
 
@@ -78,3 +80,7 @@ DOCX 压缩包、上传流、图片和 PDF 渲染均有限制;PDF 在可取消
78
80
  首页详情显示带说明的知识库 ID、创建时间和当前正式版本;最近操作一条一行,行间不再留空行。任务中模型调用与 tokens 为累计用量 / 预算上限,页、图片、片段分别表示对应阶段进度;未报告的 tokens 不能精确计入。质量报告区可用滚轮或键盘上下滚动,保留全部问题和技术明细,区分待处理问题与普通提示。
79
81
 
80
82
  图片复核使用双栏弹窗:左侧原图可在新窗口放大查看,右侧直接编辑描述和图中文字(每行一个标识);窄屏改为上下排列。图片类型、不确定项与完整结构化信息按需展开,识别出的关联和技术字段在保存时保留。重新识别、装饰图确认、忽略及恢复分别提供影响说明;它们直接重建且不保存正在编辑的人工描述,未保存修改会提示确认放弃。弹窗正文可滚动,页头和 32px 底部按钮保持可见。
83
+
84
+ 图片预处理由独立 worker 执行,同一进程全部知识库与插件实例共用一个名额,最多 32 个等待者;等待和运行均可取消。每张图最多 32 MiB / 5000 万像素,单张输出最多 8 MiB;总览长边与裁片边长最多 4096,裁片最多 64(默认 12)。`imageTimeoutMs` 默认 60 秒、最多 120 秒,超时或卸载会终止 worker 后释放名额。worker 逐张输出并等待官方附件保存完成,裁片仅复制所需区域。该限制约束图片预处理的位图并发,不能作为整个宿主进程的 RSS 上限;PDF 引擎和模型调用仍有各自的生命周期与限制。
85
+
86
+ 检索保留原有完整正文的子串匹配与评分,包括只在正文出现的词。每个 runtime 使用 LRU 缓存(最多 256 个文件、估算载荷 32 MiB),复用 manifest 与完整正文的小写检索视图;超大文件不驻留,超出容量按需重新读盘。每次仍验证知识库可访问性、根路径及文件身份/大小/纳秒修改和变更时间;首次读正文核验哈希,返回候选证据时另外复读原文核验。解析后的 manifest 冻结,构建继承文档使用独立副本。当前 revision 指针不缓存,发布、回收、恢复、彻底删除和关闭会清空缓存。冷检索仍扫描所有片段,缓存载荷预算不是宿主进程总内存限制,也不替代可信本机权限边界。
@@ -0,0 +1,16 @@
1
+ import type { PublicJob } from '../contract.ts';
2
+ import type { T } from './common.ts';
3
+ /** Closed disclosures perform neither network reads nor large JSON formatting. */
4
+ export declare function JobDetails({ job, t }: {
5
+ job: PublicJob;
6
+ t: T;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ export declare function JsonDetails({ label, hint, value }: {
9
+ label: string;
10
+ hint: string;
11
+ value: unknown;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare function JobReport({ job, t }: {
14
+ job: PublicJob;
15
+ t: T;
16
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,11 @@
1
1
  import type { PublicJob } from '../contract.ts';
2
2
  import type { Actions } from './common.ts';
3
- export declare function JobsPanel({ jobs, t, busy, act, operationError, preview }: {
3
+ export declare function JobsPanel({ jobs, t, busy, act, operationError, preview, pagination }: {
4
4
  jobs: PublicJob[];
5
+ pagination?: {
6
+ offset: number;
7
+ total: number;
8
+ page: (offset: number) => void;
9
+ };
5
10
  preview: (jobId: string) => void;
6
11
  } & Omit<Actions, 'dirty'>): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import type { PublicJob } from '../contract.ts';
2
2
  import type { T } from './common.ts';
3
- export declare function QualityReport({ report, t }: {
3
+ export declare function QualityReport({ report, t, embedded }: {
4
4
  report: NonNullable<PublicJob['report']>;
5
5
  t: T;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ embedded?: boolean;
7
+ }): false | import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,13 @@
1
1
  /** Bounded Host protocol. Browser imports contain no filesystem or Host services. */
2
2
  import { z } from 'zod';
3
- export type Endpoint = 'list' | 'create' | 'delete' | 'restore' | 'purge' | 'upload' | 'inspect-document' | 'source' | 'draft-source' | 'build' | 'job' | 'draft' | 'draft-read' | 'draft-asset' | 'catalog' | 'tree' | 'read' | 'search' | 'asset' | 'schema' | 'review' | 'models';
3
+ export type Endpoint = 'job-details' | 'job-usage' | 'list' | 'create' | 'delete' | 'restore' | 'purge' | 'upload' | 'inspect-document' | 'source' | 'draft-source' | 'build' | 'job' | 'draft' | 'draft-read' | 'draft-asset' | 'catalog' | 'tree' | 'read' | 'search' | 'asset' | 'schema' | 'review' | 'models';
4
4
  export declare const responseSchemas: {
5
+ usagePage: z.ZodObject<{
6
+ records: z.ZodArray<z.ZodJSONSchema>;
7
+ offset: z.ZodNumber;
8
+ total: z.ZodNumber;
9
+ next: z.ZodNullable<z.ZodNumber>;
10
+ }, z.core.$strip>;
5
11
  state: z.ZodObject<{
6
12
  hostVersion: z.ZodString;
7
13
  kbs: z.ZodArray<z.ZodObject<{
@@ -60,31 +66,6 @@ export declare const responseSchemas: {
60
66
  pageEnd: z.ZodOptional<z.ZodNumber>;
61
67
  jobId: z.ZodString;
62
68
  revision: z.ZodOptional<z.ZodString>;
63
- updatedAt: z.ZodOptional<z.ZodString>;
64
- pdf: z.ZodOptional<z.ZodObject<{
65
- pageCount: z.ZodNumber;
66
- selectedPages: z.ZodObject<{
67
- start: z.ZodNumber;
68
- end: z.ZodNumber;
69
- count: z.ZodNumber;
70
- total: z.ZodNumber;
71
- partial: z.ZodBoolean;
72
- }, z.core.$strip>;
73
- outlineCount: z.ZodOptional<z.ZodNumber>;
74
- }, z.core.$strip>>;
75
- sourceFormat: z.ZodDefault<z.ZodEnum<{
76
- docx: "docx";
77
- pdf: "pdf";
78
- }>>;
79
- parserVersion: z.ZodOptional<z.ZodString>;
80
- sourceHash: z.ZodOptional<z.ZodString>;
81
- filename: z.ZodString;
82
- usage: z.ZodObject<{
83
- calls: z.ZodNumber;
84
- tokens: z.ZodNumber;
85
- reportedCalls: z.ZodNumber;
86
- records: z.ZodArray<z.ZodJSONSchema>;
87
- }, z.core.$strip>;
88
69
  report: z.ZodOptional<z.ZodObject<{
89
70
  revision: z.ZodString;
90
71
  sourceHash: z.ZodString;
@@ -159,6 +140,31 @@ export declare const responseSchemas: {
159
140
  }, z.core.$strip>>;
160
141
  }, z.core.$strip>>;
161
142
  }, z.core.$strip>>;
143
+ updatedAt: z.ZodOptional<z.ZodString>;
144
+ pdf: z.ZodOptional<z.ZodObject<{
145
+ pageCount: z.ZodNumber;
146
+ selectedPages: z.ZodObject<{
147
+ start: z.ZodNumber;
148
+ end: z.ZodNumber;
149
+ count: z.ZodNumber;
150
+ total: z.ZodNumber;
151
+ partial: z.ZodBoolean;
152
+ }, z.core.$strip>;
153
+ outlineCount: z.ZodOptional<z.ZodNumber>;
154
+ }, z.core.$strip>>;
155
+ sourceFormat: z.ZodDefault<z.ZodEnum<{
156
+ docx: "docx";
157
+ pdf: "pdf";
158
+ }>>;
159
+ parserVersion: z.ZodOptional<z.ZodString>;
160
+ sourceHash: z.ZodOptional<z.ZodString>;
161
+ filename: z.ZodString;
162
+ usage: z.ZodObject<{
163
+ calls: z.ZodNumber;
164
+ tokens: z.ZodNumber;
165
+ reportedCalls: z.ZodNumber;
166
+ records: z.ZodArray<z.ZodJSONSchema>;
167
+ }, z.core.$strip>;
162
168
  buildKey: z.ZodString;
163
169
  createdAt: z.ZodString;
164
170
  config: z.ZodObject<{
@@ -173,8 +179,12 @@ export declare const responseSchemas: {
173
179
  modelTimeoutMs: z.ZodDefault<z.ZodNumber>;
174
180
  modelAttempts: z.ZodDefault<z.ZodNumber>;
175
181
  visionConcurrency: z.ZodDefault<z.ZodNumber>;
182
+ maxModelCallsLimit: z.ZodDefault<z.ZodNumber>;
183
+ maxModelTokensLimit: z.ZodDefault<z.ZodNumber>;
184
+ uploadRetentionDays: z.ZodDefault<z.ZodNumber>;
176
185
  maxModelCalls: z.ZodDefault<z.ZodNumber>;
177
186
  maxModelTokens: z.ZodDefault<z.ZodNumber>;
187
+ imageTimeoutMs: z.ZodDefault<z.ZodNumber>;
178
188
  visionMaxEdge: z.ZodDefault<z.ZodNumber>;
179
189
  visionTileSize: z.ZodDefault<z.ZodNumber>;
180
190
  visionMaxTiles: z.ZodDefault<z.ZodNumber>;
@@ -241,6 +251,13 @@ export declare const responseSchemas: {
241
251
  chunkId: z.ZodString;
242
252
  }, z.core.$strip>>;
243
253
  }, z.core.$strip>;
254
+ pendingCalls: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
255
+ legacyUsageCount: z.ZodDefault<z.ZodNumber>;
256
+ legacyCallCount: z.ZodDefault<z.ZodNumber>;
257
+ reportSummary: z.ZodOptional<z.ZodObject<{
258
+ issues: z.ZodNumber;
259
+ blocking: z.ZodNumber;
260
+ }, z.core.$strip>>;
244
261
  failures: z.ZodArray<z.ZodObject<{
245
262
  at: z.ZodString;
246
263
  stage: z.ZodEnum<{
@@ -289,6 +306,9 @@ export declare const responseSchemas: {
289
306
  outputPath: z.ZodNullable<z.ZodString>;
290
307
  reused: z.ZodOptional<z.ZodBoolean>;
291
308
  }, z.core.$strip>>;
309
+ jobTotal: z.ZodDefault<z.ZodNumber>;
310
+ jobOffset: z.ZodDefault<z.ZodNumber>;
311
+ activeJobs: z.ZodDefault<z.ZodNumber>;
292
312
  dataRoot: z.ZodString;
293
313
  config: z.ZodObject<{
294
314
  chunkTargetChars: z.ZodNumber;
@@ -491,8 +511,8 @@ export declare const responseSchemas: {
491
511
  nodeId: z.ZodString;
492
512
  keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
493
513
  chunkId: z.ZodString;
494
- summary: z.ZodDefault<z.ZodString>;
495
514
  path: z.ZodString;
515
+ summary: z.ZodDefault<z.ZodString>;
496
516
  headingPath: z.ZodArray<z.ZodString>;
497
517
  oversizedReason: z.ZodOptional<z.ZodString>;
498
518
  sourceFormat: z.ZodOptional<z.ZodEnum<{
@@ -656,31 +676,6 @@ export declare const responseSchemas: {
656
676
  pageEnd: z.ZodOptional<z.ZodNumber>;
657
677
  jobId: z.ZodString;
658
678
  revision: z.ZodOptional<z.ZodString>;
659
- updatedAt: z.ZodOptional<z.ZodString>;
660
- pdf: z.ZodOptional<z.ZodObject<{
661
- pageCount: z.ZodNumber;
662
- selectedPages: z.ZodObject<{
663
- start: z.ZodNumber;
664
- end: z.ZodNumber;
665
- count: z.ZodNumber;
666
- total: z.ZodNumber;
667
- partial: z.ZodBoolean;
668
- }, z.core.$strip>;
669
- outlineCount: z.ZodOptional<z.ZodNumber>;
670
- }, z.core.$strip>>;
671
- sourceFormat: z.ZodDefault<z.ZodEnum<{
672
- docx: "docx";
673
- pdf: "pdf";
674
- }>>;
675
- parserVersion: z.ZodOptional<z.ZodString>;
676
- sourceHash: z.ZodOptional<z.ZodString>;
677
- filename: z.ZodString;
678
- usage: z.ZodObject<{
679
- calls: z.ZodNumber;
680
- tokens: z.ZodNumber;
681
- reportedCalls: z.ZodNumber;
682
- records: z.ZodArray<z.ZodJSONSchema>;
683
- }, z.core.$strip>;
684
679
  report: z.ZodOptional<z.ZodObject<{
685
680
  revision: z.ZodString;
686
681
  sourceHash: z.ZodString;
@@ -755,6 +750,31 @@ export declare const responseSchemas: {
755
750
  }, z.core.$strip>>;
756
751
  }, z.core.$strip>>;
757
752
  }, z.core.$strip>>;
753
+ updatedAt: z.ZodOptional<z.ZodString>;
754
+ pdf: z.ZodOptional<z.ZodObject<{
755
+ pageCount: z.ZodNumber;
756
+ selectedPages: z.ZodObject<{
757
+ start: z.ZodNumber;
758
+ end: z.ZodNumber;
759
+ count: z.ZodNumber;
760
+ total: z.ZodNumber;
761
+ partial: z.ZodBoolean;
762
+ }, z.core.$strip>;
763
+ outlineCount: z.ZodOptional<z.ZodNumber>;
764
+ }, z.core.$strip>>;
765
+ sourceFormat: z.ZodDefault<z.ZodEnum<{
766
+ docx: "docx";
767
+ pdf: "pdf";
768
+ }>>;
769
+ parserVersion: z.ZodOptional<z.ZodString>;
770
+ sourceHash: z.ZodOptional<z.ZodString>;
771
+ filename: z.ZodString;
772
+ usage: z.ZodObject<{
773
+ calls: z.ZodNumber;
774
+ tokens: z.ZodNumber;
775
+ reportedCalls: z.ZodNumber;
776
+ records: z.ZodArray<z.ZodJSONSchema>;
777
+ }, z.core.$strip>;
758
778
  buildKey: z.ZodString;
759
779
  createdAt: z.ZodString;
760
780
  config: z.ZodObject<{
@@ -769,8 +789,12 @@ export declare const responseSchemas: {
769
789
  modelTimeoutMs: z.ZodDefault<z.ZodNumber>;
770
790
  modelAttempts: z.ZodDefault<z.ZodNumber>;
771
791
  visionConcurrency: z.ZodDefault<z.ZodNumber>;
792
+ maxModelCallsLimit: z.ZodDefault<z.ZodNumber>;
793
+ maxModelTokensLimit: z.ZodDefault<z.ZodNumber>;
794
+ uploadRetentionDays: z.ZodDefault<z.ZodNumber>;
772
795
  maxModelCalls: z.ZodDefault<z.ZodNumber>;
773
796
  maxModelTokens: z.ZodDefault<z.ZodNumber>;
797
+ imageTimeoutMs: z.ZodDefault<z.ZodNumber>;
774
798
  visionMaxEdge: z.ZodDefault<z.ZodNumber>;
775
799
  visionTileSize: z.ZodDefault<z.ZodNumber>;
776
800
  visionMaxTiles: z.ZodDefault<z.ZodNumber>;
@@ -837,6 +861,13 @@ export declare const responseSchemas: {
837
861
  chunkId: z.ZodString;
838
862
  }, z.core.$strip>>;
839
863
  }, z.core.$strip>;
864
+ pendingCalls: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
865
+ legacyUsageCount: z.ZodDefault<z.ZodNumber>;
866
+ legacyCallCount: z.ZodDefault<z.ZodNumber>;
867
+ reportSummary: z.ZodOptional<z.ZodObject<{
868
+ issues: z.ZodNumber;
869
+ blocking: z.ZodNumber;
870
+ }, z.core.$strip>>;
840
871
  failures: z.ZodArray<z.ZodObject<{
841
872
  at: z.ZodString;
842
873
  stage: z.ZodEnum<{
@@ -106,6 +106,8 @@ export declare const zh: {
106
106
  eventsHelp: string;
107
107
  failures: string;
108
108
  failuresHelp: string;
109
+ previousJobs: string;
110
+ nextJobs: string;
109
111
  usageRecords: string;
110
112
  usageRecordsHelp: string;
111
113
  reportSummary: string;
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  /** One mutation at a time. A successful write followed by a failed refresh is never repeated. */
3
- export declare function useKnowledge(): {
3
+ export declare function useKnowledge(kbId?: string): {
4
+ pageJobs: React.Dispatch<React.SetStateAction<number>>;
4
5
  state: {
5
6
  hostVersion: string;
6
7
  kbs: {
@@ -72,8 +73,12 @@ export declare function useKnowledge(): {
72
73
  modelTimeoutMs: number;
73
74
  modelAttempts: number;
74
75
  visionConcurrency: number;
76
+ maxModelCallsLimit: number;
77
+ maxModelTokensLimit: number;
78
+ uploadRetentionDays: number;
75
79
  maxModelCalls: number;
76
80
  maxModelTokens: number;
81
+ imageTimeoutMs: number;
77
82
  visionMaxEdge: number;
78
83
  visionTileSize: number;
79
84
  visionMaxTiles: number;
@@ -126,6 +131,9 @@ export declare function useKnowledge(): {
126
131
  chunkId: string;
127
132
  } | undefined;
128
133
  };
134
+ pendingCalls: number[];
135
+ legacyUsageCount: number;
136
+ legacyCallCount: number;
129
137
  failures: {
130
138
  at: string;
131
139
  stage: "failed" | "needs-review" | "queued" | "preflight" | "converting" | "describing" | "splitting" | "indexing" | "validating" | "publishing" | "paused-budget" | "cancelled" | "ready";
@@ -136,20 +144,6 @@ export declare function useKnowledge(): {
136
144
  pageStart?: number | undefined;
137
145
  pageEnd?: number | undefined;
138
146
  revision?: string | undefined;
139
- updatedAt?: string | undefined;
140
- pdf?: {
141
- pageCount: number;
142
- selectedPages: {
143
- start: number;
144
- end: number;
145
- count: number;
146
- total: number;
147
- partial: boolean;
148
- };
149
- outlineCount?: number | undefined;
150
- } | undefined;
151
- parserVersion?: string | undefined;
152
- sourceHash?: string | undefined;
153
147
  report?: {
154
148
  revision: string;
155
149
  sourceHash: string;
@@ -219,6 +213,24 @@ export declare function useKnowledge(): {
219
213
  }[];
220
214
  } | undefined;
221
215
  } | undefined;
216
+ updatedAt?: string | undefined;
217
+ pdf?: {
218
+ pageCount: number;
219
+ selectedPages: {
220
+ start: number;
221
+ end: number;
222
+ count: number;
223
+ total: number;
224
+ partial: boolean;
225
+ };
226
+ outlineCount?: number | undefined;
227
+ } | undefined;
228
+ parserVersion?: string | undefined;
229
+ sourceHash?: string | undefined;
230
+ reportSummary?: {
231
+ issues: number;
232
+ blocking: number;
233
+ } | undefined;
222
234
  events?: {
223
235
  at: string;
224
236
  state: "failed" | "needs-review" | "queued" | "preflight" | "converting" | "describing" | "splitting" | "indexing" | "validating" | "publishing" | "paused-budget" | "cancelled" | "ready";
@@ -233,6 +245,9 @@ export declare function useKnowledge(): {
233
245
  cancelRequested?: boolean | undefined;
234
246
  reused?: boolean | undefined;
235
247
  }[];
248
+ jobTotal: number;
249
+ jobOffset: number;
250
+ activeJobs: number;
236
251
  dataRoot: string;
237
252
  config: {
238
253
  chunkTargetChars: number;
@@ -10,31 +10,6 @@ export declare const publicJobSchema: z.ZodObject<{
10
10
  pageEnd: z.ZodOptional<z.ZodNumber>;
11
11
  jobId: z.ZodString;
12
12
  revision: z.ZodOptional<z.ZodString>;
13
- updatedAt: z.ZodOptional<z.ZodString>;
14
- pdf: z.ZodOptional<z.ZodObject<{
15
- pageCount: z.ZodNumber;
16
- selectedPages: z.ZodObject<{
17
- start: z.ZodNumber;
18
- end: z.ZodNumber;
19
- count: z.ZodNumber;
20
- total: z.ZodNumber;
21
- partial: z.ZodBoolean;
22
- }, z.core.$strip>;
23
- outlineCount: z.ZodOptional<z.ZodNumber>;
24
- }, z.core.$strip>>;
25
- sourceFormat: z.ZodDefault<z.ZodEnum<{
26
- docx: "docx";
27
- pdf: "pdf";
28
- }>>;
29
- parserVersion: z.ZodOptional<z.ZodString>;
30
- sourceHash: z.ZodOptional<z.ZodString>;
31
- filename: z.ZodString;
32
- usage: z.ZodObject<{
33
- calls: z.ZodNumber;
34
- tokens: z.ZodNumber;
35
- reportedCalls: z.ZodNumber;
36
- records: z.ZodArray<z.ZodJSONSchema>;
37
- }, z.core.$strip>;
38
13
  report: z.ZodOptional<z.ZodObject<{
39
14
  revision: z.ZodString;
40
15
  sourceHash: z.ZodString;
@@ -109,6 +84,31 @@ export declare const publicJobSchema: z.ZodObject<{
109
84
  }, z.core.$strip>>;
110
85
  }, z.core.$strip>>;
111
86
  }, z.core.$strip>>;
87
+ updatedAt: z.ZodOptional<z.ZodString>;
88
+ pdf: z.ZodOptional<z.ZodObject<{
89
+ pageCount: z.ZodNumber;
90
+ selectedPages: z.ZodObject<{
91
+ start: z.ZodNumber;
92
+ end: z.ZodNumber;
93
+ count: z.ZodNumber;
94
+ total: z.ZodNumber;
95
+ partial: z.ZodBoolean;
96
+ }, z.core.$strip>;
97
+ outlineCount: z.ZodOptional<z.ZodNumber>;
98
+ }, z.core.$strip>>;
99
+ sourceFormat: z.ZodDefault<z.ZodEnum<{
100
+ docx: "docx";
101
+ pdf: "pdf";
102
+ }>>;
103
+ parserVersion: z.ZodOptional<z.ZodString>;
104
+ sourceHash: z.ZodOptional<z.ZodString>;
105
+ filename: z.ZodString;
106
+ usage: z.ZodObject<{
107
+ calls: z.ZodNumber;
108
+ tokens: z.ZodNumber;
109
+ reportedCalls: z.ZodNumber;
110
+ records: z.ZodArray<z.ZodJSONSchema>;
111
+ }, z.core.$strip>;
112
112
  buildKey: z.ZodString;
113
113
  createdAt: z.ZodString;
114
114
  config: z.ZodObject<{
@@ -123,8 +123,12 @@ export declare const publicJobSchema: z.ZodObject<{
123
123
  modelTimeoutMs: z.ZodDefault<z.ZodNumber>;
124
124
  modelAttempts: z.ZodDefault<z.ZodNumber>;
125
125
  visionConcurrency: z.ZodDefault<z.ZodNumber>;
126
+ maxModelCallsLimit: z.ZodDefault<z.ZodNumber>;
127
+ maxModelTokensLimit: z.ZodDefault<z.ZodNumber>;
128
+ uploadRetentionDays: z.ZodDefault<z.ZodNumber>;
126
129
  maxModelCalls: z.ZodDefault<z.ZodNumber>;
127
130
  maxModelTokens: z.ZodDefault<z.ZodNumber>;
131
+ imageTimeoutMs: z.ZodDefault<z.ZodNumber>;
128
132
  visionMaxEdge: z.ZodDefault<z.ZodNumber>;
129
133
  visionTileSize: z.ZodDefault<z.ZodNumber>;
130
134
  visionMaxTiles: z.ZodDefault<z.ZodNumber>;
@@ -191,6 +195,13 @@ export declare const publicJobSchema: z.ZodObject<{
191
195
  chunkId: z.ZodString;
192
196
  }, z.core.$strip>>;
193
197
  }, z.core.$strip>;
198
+ pendingCalls: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
199
+ legacyUsageCount: z.ZodDefault<z.ZodNumber>;
200
+ legacyCallCount: z.ZodDefault<z.ZodNumber>;
201
+ reportSummary: z.ZodOptional<z.ZodObject<{
202
+ issues: z.ZodNumber;
203
+ blocking: z.ZodNumber;
204
+ }, z.core.$strip>>;
194
205
  failures: z.ZodArray<z.ZodObject<{
195
206
  at: z.ZodString;
196
207
  stage: z.ZodEnum<{
@@ -328,31 +339,6 @@ export declare const stateSchema: z.ZodObject<{
328
339
  pageEnd: z.ZodOptional<z.ZodNumber>;
329
340
  jobId: z.ZodString;
330
341
  revision: z.ZodOptional<z.ZodString>;
331
- updatedAt: z.ZodOptional<z.ZodString>;
332
- pdf: z.ZodOptional<z.ZodObject<{
333
- pageCount: z.ZodNumber;
334
- selectedPages: z.ZodObject<{
335
- start: z.ZodNumber;
336
- end: z.ZodNumber;
337
- count: z.ZodNumber;
338
- total: z.ZodNumber;
339
- partial: z.ZodBoolean;
340
- }, z.core.$strip>;
341
- outlineCount: z.ZodOptional<z.ZodNumber>;
342
- }, z.core.$strip>>;
343
- sourceFormat: z.ZodDefault<z.ZodEnum<{
344
- docx: "docx";
345
- pdf: "pdf";
346
- }>>;
347
- parserVersion: z.ZodOptional<z.ZodString>;
348
- sourceHash: z.ZodOptional<z.ZodString>;
349
- filename: z.ZodString;
350
- usage: z.ZodObject<{
351
- calls: z.ZodNumber;
352
- tokens: z.ZodNumber;
353
- reportedCalls: z.ZodNumber;
354
- records: z.ZodArray<z.ZodJSONSchema>;
355
- }, z.core.$strip>;
356
342
  report: z.ZodOptional<z.ZodObject<{
357
343
  revision: z.ZodString;
358
344
  sourceHash: z.ZodString;
@@ -427,6 +413,31 @@ export declare const stateSchema: z.ZodObject<{
427
413
  }, z.core.$strip>>;
428
414
  }, z.core.$strip>>;
429
415
  }, z.core.$strip>>;
416
+ updatedAt: z.ZodOptional<z.ZodString>;
417
+ pdf: z.ZodOptional<z.ZodObject<{
418
+ pageCount: z.ZodNumber;
419
+ selectedPages: z.ZodObject<{
420
+ start: z.ZodNumber;
421
+ end: z.ZodNumber;
422
+ count: z.ZodNumber;
423
+ total: z.ZodNumber;
424
+ partial: z.ZodBoolean;
425
+ }, z.core.$strip>;
426
+ outlineCount: z.ZodOptional<z.ZodNumber>;
427
+ }, z.core.$strip>>;
428
+ sourceFormat: z.ZodDefault<z.ZodEnum<{
429
+ docx: "docx";
430
+ pdf: "pdf";
431
+ }>>;
432
+ parserVersion: z.ZodOptional<z.ZodString>;
433
+ sourceHash: z.ZodOptional<z.ZodString>;
434
+ filename: z.ZodString;
435
+ usage: z.ZodObject<{
436
+ calls: z.ZodNumber;
437
+ tokens: z.ZodNumber;
438
+ reportedCalls: z.ZodNumber;
439
+ records: z.ZodArray<z.ZodJSONSchema>;
440
+ }, z.core.$strip>;
430
441
  buildKey: z.ZodString;
431
442
  createdAt: z.ZodString;
432
443
  config: z.ZodObject<{
@@ -441,8 +452,12 @@ export declare const stateSchema: z.ZodObject<{
441
452
  modelTimeoutMs: z.ZodDefault<z.ZodNumber>;
442
453
  modelAttempts: z.ZodDefault<z.ZodNumber>;
443
454
  visionConcurrency: z.ZodDefault<z.ZodNumber>;
455
+ maxModelCallsLimit: z.ZodDefault<z.ZodNumber>;
456
+ maxModelTokensLimit: z.ZodDefault<z.ZodNumber>;
457
+ uploadRetentionDays: z.ZodDefault<z.ZodNumber>;
444
458
  maxModelCalls: z.ZodDefault<z.ZodNumber>;
445
459
  maxModelTokens: z.ZodDefault<z.ZodNumber>;
460
+ imageTimeoutMs: z.ZodDefault<z.ZodNumber>;
446
461
  visionMaxEdge: z.ZodDefault<z.ZodNumber>;
447
462
  visionTileSize: z.ZodDefault<z.ZodNumber>;
448
463
  visionMaxTiles: z.ZodDefault<z.ZodNumber>;
@@ -509,6 +524,13 @@ export declare const stateSchema: z.ZodObject<{
509
524
  chunkId: z.ZodString;
510
525
  }, z.core.$strip>>;
511
526
  }, z.core.$strip>;
527
+ pendingCalls: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
528
+ legacyUsageCount: z.ZodDefault<z.ZodNumber>;
529
+ legacyCallCount: z.ZodDefault<z.ZodNumber>;
530
+ reportSummary: z.ZodOptional<z.ZodObject<{
531
+ issues: z.ZodNumber;
532
+ blocking: z.ZodNumber;
533
+ }, z.core.$strip>>;
512
534
  failures: z.ZodArray<z.ZodObject<{
513
535
  at: z.ZodString;
514
536
  stage: z.ZodEnum<{
@@ -557,6 +579,9 @@ export declare const stateSchema: z.ZodObject<{
557
579
  outputPath: z.ZodNullable<z.ZodString>;
558
580
  reused: z.ZodOptional<z.ZodBoolean>;
559
581
  }, z.core.$strip>>;
582
+ jobTotal: z.ZodDefault<z.ZodNumber>;
583
+ jobOffset: z.ZodDefault<z.ZodNumber>;
584
+ activeJobs: z.ZodDefault<z.ZodNumber>;
560
585
  dataRoot: z.ZodString;
561
586
  config: z.ZodObject<{
562
587
  chunkTargetChars: z.ZodNumber;
@@ -675,8 +700,8 @@ export declare const treeDocumentSchema: z.ZodObject<{
675
700
  nodeId: z.ZodString;
676
701
  keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
677
702
  chunkId: z.ZodString;
678
- summary: z.ZodDefault<z.ZodString>;
679
703
  path: z.ZodString;
704
+ summary: z.ZodDefault<z.ZodString>;
680
705
  headingPath: z.ZodArray<z.ZodString>;
681
706
  oversizedReason: z.ZodOptional<z.ZodString>;
682
707
  sourceFormat: z.ZodOptional<z.ZodEnum<{
@@ -978,8 +1003,8 @@ export declare const treeSchema: z.ZodObject<{
978
1003
  nodeId: z.ZodString;
979
1004
  keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
980
1005
  chunkId: z.ZodString;
981
- summary: z.ZodDefault<z.ZodString>;
982
1006
  path: z.ZodString;
1007
+ summary: z.ZodDefault<z.ZodString>;
983
1008
  headingPath: z.ZodArray<z.ZodString>;
984
1009
  oversizedReason: z.ZodOptional<z.ZodString>;
985
1010
  sourceFormat: z.ZodOptional<z.ZodEnum<{
@@ -1195,3 +1220,9 @@ export declare const uploadResultSchema: z.ZodObject<{
1195
1220
  filename: z.ZodString;
1196
1221
  bytes: z.ZodNumber;
1197
1222
  }, z.core.$strip>;
1223
+ export declare const jobUsagePageSchema: z.ZodObject<{
1224
+ records: z.ZodArray<z.ZodJSONSchema>;
1225
+ offset: z.ZodNumber;
1226
+ total: z.ZodNumber;
1227
+ next: z.ZodNullable<z.ZodNumber>;
1228
+ }, z.core.$strip>;
@@ -1528,8 +1528,12 @@ export declare const jobSchema: z.ZodObject<{
1528
1528
  modelTimeoutMs: z.ZodDefault<z.ZodNumber>;
1529
1529
  modelAttempts: z.ZodDefault<z.ZodNumber>;
1530
1530
  visionConcurrency: z.ZodDefault<z.ZodNumber>;
1531
+ maxModelCallsLimit: z.ZodDefault<z.ZodNumber>;
1532
+ maxModelTokensLimit: z.ZodDefault<z.ZodNumber>;
1533
+ uploadRetentionDays: z.ZodDefault<z.ZodNumber>;
1531
1534
  maxModelCalls: z.ZodDefault<z.ZodNumber>;
1532
1535
  maxModelTokens: z.ZodDefault<z.ZodNumber>;
1536
+ imageTimeoutMs: z.ZodDefault<z.ZodNumber>;
1533
1537
  visionMaxEdge: z.ZodDefault<z.ZodNumber>;
1534
1538
  visionTileSize: z.ZodDefault<z.ZodNumber>;
1535
1539
  visionMaxTiles: z.ZodDefault<z.ZodNumber>;
@@ -1599,6 +1603,13 @@ export declare const jobSchema: z.ZodObject<{
1599
1603
  chunkId: z.ZodString;
1600
1604
  }, z.core.$strip>>;
1601
1605
  }, z.core.$strip>;
1606
+ pendingCalls: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1607
+ legacyUsageCount: z.ZodDefault<z.ZodNumber>;
1608
+ legacyCallCount: z.ZodDefault<z.ZodNumber>;
1609
+ reportSummary: z.ZodOptional<z.ZodObject<{
1610
+ issues: z.ZodNumber;
1611
+ blocking: z.ZodNumber;
1612
+ }, z.core.$strip>>;
1602
1613
  usage: z.ZodObject<{
1603
1614
  calls: z.ZodNumber;
1604
1615
  tokens: z.ZodNumber;