dsh-layered-memory 0.9.2 → 0.10.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/README.en.md CHANGED
@@ -10,30 +10,29 @@
10
10
  [简体中文](README.md) · [Latest release](https://github.com/JunNanLYS/dsh-layered-memory/releases/latest) · [Report issues](https://github.com/JunNanLYS/dsh-layered-memory/issues)
11
11
 
12
12
  [![npm version](https://img.shields.io/npm/v/dsh-layered-memory?color=6f83ff&style=flat-square&label=npm)](https://www.npmjs.com/package/dsh-layered-memory)
13
- [![DSH 0.1.2-alpha.x](https://img.shields.io/badge/DSH-0.1.2--alpha.x-8b5cf6?style=flat-square)](https://github.com/deepseek-ai/deepseek-harness)
13
+ [![DSH 0.1.2](https://img.shields.io/badge/DSH-0.1.2-8b5cf6?style=flat-square)](https://github.com/deepseek-ai/deepseek-harness)
14
14
  [![MIT License](https://img.shields.io/badge/license-MIT-536990?style=flat-square)](LICENSE)
15
15
 
16
16
  </div>
17
17
 
18
18
  ## Getting Started
19
19
 
20
- Requires Node ≥ 22.16 and DeepSeek Harness **0.1.2-alpha.1** (as of 0.8.12 only the
21
- 0.1.2-alpha.x host line is supported; for older hosts see the
20
+ Requires Node ≥ 22.16 and DeepSeek Harness **0.1.2-alpha.1 ~ 0.1.2-rc.1**
21
+ (as of 0.10.0 support extends to 0.1.2-rc.1, which the npm "latest" tag
22
+ already points to; for older hosts see the
22
23
  [release history](https://github.com/JunNanLYS/dsh-layered-memory/releases)).
23
24
  Two invocation styles — the `npx` prefix can replace `dsh` in
24
25
  any command below:
25
26
 
26
27
  ```bash
27
- # Option 1: run the official CLI directly via npx (no pre-installed dsh; the host version must
28
- # be pinned to the alpha line — the npm "latest" tag still points to 0.1.1-rc.x)
29
- npx -y @deepseek-ai/dsh@0.1.2-alpha.2 plugin --profile web add dsh-layered-memory
28
+ # Option 1: run the official CLI directly via npx (no pre-installed dsh)
29
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-layered-memory
30
30
 
31
- # Option 2: with the dsh CLI installed (upgrade to the alpha line first:
32
- # npm i -g @deepseek-ai/dsh@0.1.2-alpha.2, then restart; dsh is a pnpm forwarder —
33
- # npm i -g pnpm first if missing)
31
+ # Option 2: with the dsh CLI installed (upgrade: npm i -g @deepseek-ai/dsh,
32
+ # then restart; dsh is a pnpm forwarder — npm i -g pnpm first if missing)
34
33
  dsh plugin --profile web add dsh-layered-memory
35
34
 
36
- # Alternative sources: GitHub repo / local path (dev & debugging, link: points at the repo; npm run build + restart dsh to apply)
35
+ # Alternative sources: GitHub repo / local path (dev & debugging, link: points at the repo; pnpm run build + restart dsh to apply)
37
36
  dsh plugin --profile web add https://github.com/JunNanLYS/dsh-layered-memory
38
37
  dsh plugin --profile web add /path/to/dsh-layered-memory
39
38
  ```
@@ -76,12 +75,14 @@ stays in `~/.dsh/memory/`; delete the whole directory manually if you don't need
76
75
  ```bash
77
76
  git clone https://github.com/JunNanLYS/dsh-layered-memory
78
77
  cd dsh-layered-memory
79
- npm install && npm run build
80
- dsh plugin --profile web add . # link: install; after code changes, npm run build + restart dsh
81
- npm run smoke # smoke test (rebuild first: see command below)
78
+ pnpm install && pnpm run build
79
+ dsh plugin --profile web add . # link: install; after code changes, pnpm run build + restart dsh
80
+ pnpm run smoke # smoke test (rebuild first: see command below)
82
81
  npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
83
82
  ```
84
83
 
84
+ Dependencies are managed with pnpm (matching the official dsh install channel; the version is pinned via the `packageManager` field).
85
+
85
86
  ## Runtime Data Flow
86
87
 
87
88
  <p align="center">
package/README.md CHANGED
@@ -10,26 +10,27 @@
10
10
  [English](README.en.md) · [最新发行版](https://github.com/JunNanLYS/dsh-layered-memory/releases/latest) · [反馈问题](https://github.com/JunNanLYS/dsh-layered-memory/issues)
11
11
 
12
12
  [![npm version](https://img.shields.io/npm/v/dsh-layered-memory?color=6f83ff&style=flat-square&label=npm)](https://www.npmjs.com/package/dsh-layered-memory)
13
- [![DSH 0.1.2-alpha.x](https://img.shields.io/badge/DSH-0.1.2--alpha.x-8b5cf6?style=flat-square)](https://github.com/deepseek-ai/deepseek-harness)
13
+ [![DSH 0.1.2](https://img.shields.io/badge/DSH-0.1.2-8b5cf6?style=flat-square)](https://github.com/deepseek-ai/deepseek-harness)
14
14
  [![MIT License](https://img.shields.io/badge/license-MIT-536990?style=flat-square)](LICENSE)
15
15
 
16
16
  </div>
17
17
 
18
18
  ## 快速开始
19
19
 
20
- 需要 Node ≥ 22.16 与 DeepSeek Harness **0.1.2-alpha.1**(0.8.12 起仅支持
21
- 0.1.2-alpha.x 宿主线;旧版插件请看 [历史版本](https://github.com/JunNanLYS/dsh-layered-memory/releases))。
20
+ 需要 Node ≥ 22.16 与 DeepSeek Harness **0.1.2-alpha.1 ~ 0.1.2-rc.1**(0.10.0
21
+ 支持到 0.1.2-rc.1,npm latest 已指向该版本;旧版插件请看
22
+ [历史版本](https://github.com/JunNanLYS/dsh-layered-memory/releases))。
22
23
  两种调用方式任选(`npx` 前缀可替换下面任何 `dsh` 命令):
23
24
 
24
25
  ```bash
25
- # 方式一:npx 直接跑官方 CLI(无需预装 dsh;宿主须带 alpha 版本号——npm latest 仍指向 0.1.1-rc.x
26
- npx -y @deepseek-ai/dsh@0.1.2-alpha.2 plugin --profile web add dsh-layered-memory
26
+ # 方式一:npx 直接跑官方 CLI(无需预装 dsh)
27
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-layered-memory
27
28
 
28
- # 方式二:已装 dsh CLI(先升级到 alpha 线:npm i -g @deepseek-ai/dsh@0.1.2-alpha.2 并重启;
29
+ # 方式二:已装 dsh CLI(升级:npm i -g @deepseek-ai/dsh 并重启;
29
30
  # dsh 是 pnpm 转发器,未装 pnpm 时先 npm i -g pnpm)
30
31
  dsh plugin --profile web add dsh-layered-memory
31
32
 
32
- # 包源备选:GitHub 仓库 / 本地路径(开发调试,link: 指向仓库,npm run build + 重启 dsh 即生效)
33
+ # 包源备选:GitHub 仓库 / 本地路径(开发调试,link: 指向仓库,pnpm run build + 重启 dsh 即生效)
33
34
  dsh plugin --profile web add https://github.com/JunNanLYS/dsh-layered-memory
34
35
  dsh plugin --profile web add /path/to/dsh-layered-memory
35
36
  ```
@@ -65,12 +66,14 @@ Agent 应当返回安装结果,并明确告诉你配置中是否已经出现 `
65
66
  ```bash
66
67
  git clone https://github.com/JunNanLYS/dsh-layered-memory
67
68
  cd dsh-layered-memory
68
- npm install && npm run build
69
- dsh plugin --profile web add . # link: 安装,改代码后 npm run build + 重启 dsh 即生效
70
- npm run smoke # 冒烟测试(先重编:见下方命令)
69
+ pnpm install && pnpm run build
70
+ dsh plugin --profile web add . # link: 安装,改代码后 pnpm run build + 重启 dsh 即生效
71
+ pnpm run smoke # 冒烟测试(先重编:见下方命令)
71
72
  npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
72
73
  ```
73
74
 
75
+ 依赖管理用 pnpm(与 dsh 官方安装通道一致,版本由 `packageManager` 字段钉死)。
76
+
74
77
  ## 运行时数据流
75
78
 
76
79
  <p align="center">
package/dist/config.d.ts CHANGED
@@ -142,495 +142,5 @@ export interface MemoryConfig {
142
142
  * 仅供基准/调试部署(bench profile 的 lifecycle 赛道),默认关——生产零表面积。 */
143
143
  benchControl: boolean;
144
144
  }
145
- export declare const memorySchema: Schema<Schemastery.ObjectS<{
146
- dataDir: Schema<string, string>;
147
- family: Schema<"chat" | "work" | "auto", "chat" | "work" | "auto">;
148
- capture: Schema<Schemastery.ObjectS<{
149
- enabled: Schema<boolean, boolean>;
150
- stripCodeBlocks: Schema<boolean, boolean>;
151
- maxMessageChars: Schema<number, number>;
152
- }>, Schemastery.ObjectT<{
153
- enabled: Schema<boolean, boolean>;
154
- stripCodeBlocks: Schema<boolean, boolean>;
155
- maxMessageChars: Schema<number, number>;
156
- }>>;
157
- extract: Schema<Schemastery.ObjectS<{
158
- enabled: Schema<boolean, boolean>;
159
- minMessages: Schema<number, number>;
160
- idleSeconds: Schema<number, number>;
161
- backgroundMessages: Schema<number, number>;
162
- candidatePool: Schema<number, number>;
163
- }>, Schemastery.ObjectT<{
164
- enabled: Schema<boolean, boolean>;
165
- minMessages: Schema<number, number>;
166
- idleSeconds: Schema<number, number>;
167
- backgroundMessages: Schema<number, number>;
168
- candidatePool: Schema<number, number>;
169
- }>>;
170
- l2: Schema<Schemastery.ObjectS<{
171
- enabled: Schema<boolean, boolean>;
172
- minNewMemories: Schema<number, number>;
173
- maxScenes: Schema<number, number>;
174
- sceneContextLimit: Schema<number, number>;
175
- }>, Schemastery.ObjectT<{
176
- enabled: Schema<boolean, boolean>;
177
- minNewMemories: Schema<number, number>;
178
- maxScenes: Schema<number, number>;
179
- sceneContextLimit: Schema<number, number>;
180
- }>>;
181
- l3: Schema<Schemastery.ObjectS<{
182
- enabled: Schema<boolean, boolean>;
183
- interval: Schema<number, number>;
184
- }>, Schemastery.ObjectT<{
185
- enabled: Schema<boolean, boolean>;
186
- interval: Schema<number, number>;
187
- }>>;
188
- recall: Schema<Schemastery.ObjectS<{
189
- enabled: Schema<boolean, boolean>;
190
- maxResults: Schema<number, number>;
191
- maxCharsPerMemory: Schema<number, number>;
192
- maxTotalRecallChars: Schema<number, number>;
193
- timeoutMs: Schema<number, number>;
194
- includePersona: Schema<boolean, boolean>;
195
- includeSceneNav: Schema<boolean, boolean>;
196
- strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
197
- scoreThreshold: Schema<number, number>;
198
- decayHalfLifeDays: Schema<number, number>;
199
- }>, Schemastery.ObjectT<{
200
- enabled: Schema<boolean, boolean>;
201
- maxResults: Schema<number, number>;
202
- maxCharsPerMemory: Schema<number, number>;
203
- maxTotalRecallChars: Schema<number, number>;
204
- timeoutMs: Schema<number, number>;
205
- includePersona: Schema<boolean, boolean>;
206
- includeSceneNav: Schema<boolean, boolean>;
207
- strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
208
- scoreThreshold: Schema<number, number>;
209
- decayHalfLifeDays: Schema<number, number>;
210
- }>>;
211
- embedding: Schema<Schemastery.ObjectS<{
212
- enabled: Schema<boolean, boolean>;
213
- baseUrl: Schema<string, string>;
214
- apiKey: Schema<string, string>;
215
- model: Schema<string, string>;
216
- dimensions: Schema<number, number>;
217
- maxInputChars: Schema<number, number>;
218
- timeoutMs: Schema<number, number>;
219
- allowLocalModels: Schema<boolean, boolean>;
220
- mirror: Schema<string, string>;
221
- proxy: Schema<string, string>;
222
- }>, Schemastery.ObjectT<{
223
- enabled: Schema<boolean, boolean>;
224
- baseUrl: Schema<string, string>;
225
- apiKey: Schema<string, string>;
226
- model: Schema<string, string>;
227
- dimensions: Schema<number, number>;
228
- maxInputChars: Schema<number, number>;
229
- timeoutMs: Schema<number, number>;
230
- allowLocalModels: Schema<boolean, boolean>;
231
- mirror: Schema<string, string>;
232
- proxy: Schema<string, string>;
233
- }>>;
234
- llm: Schema<Schemastery.ObjectS<{
235
- provider: Schema<string, string>;
236
- model: Schema<string, string>;
237
- fallbacks: Schema<({
238
- provider?: string | null | undefined;
239
- model?: string | null | undefined;
240
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
241
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
242
- provider: Schema<string, string>;
243
- model: Schema<string, string>;
244
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
245
- }>[]>;
246
- layerRoutes: Schema<Schemastery.ObjectS<{
247
- l1: Schema<({
248
- provider?: string | null | undefined;
249
- model?: string | null | undefined;
250
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
251
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
252
- provider: Schema<string, string>;
253
- model: Schema<string, string>;
254
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
255
- }>[]>;
256
- l2: Schema<({
257
- provider?: string | null | undefined;
258
- model?: string | null | undefined;
259
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
260
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
261
- provider: Schema<string, string>;
262
- model: Schema<string, string>;
263
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
264
- }>[]>;
265
- l3: Schema<({
266
- provider?: string | null | undefined;
267
- model?: string | null | undefined;
268
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
269
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
270
- provider: Schema<string, string>;
271
- model: Schema<string, string>;
272
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
273
- }>[]>;
274
- }>, Schemastery.ObjectT<{
275
- l1: Schema<({
276
- provider?: string | null | undefined;
277
- model?: string | null | undefined;
278
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
279
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
280
- provider: Schema<string, string>;
281
- model: Schema<string, string>;
282
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
283
- }>[]>;
284
- l2: Schema<({
285
- provider?: string | null | undefined;
286
- model?: string | null | undefined;
287
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
288
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
289
- provider: Schema<string, string>;
290
- model: Schema<string, string>;
291
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
292
- }>[]>;
293
- l3: Schema<({
294
- provider?: string | null | undefined;
295
- model?: string | null | undefined;
296
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
297
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
298
- provider: Schema<string, string>;
299
- model: Schema<string, string>;
300
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
301
- }>[]>;
302
- }>>;
303
- maxTokens: Schema<number, number>;
304
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
305
- temperature: Schema<number, number>;
306
- maxInputChars: Schema<number, number>;
307
- timeoutMs: Schema<number, number>;
308
- }>, Schemastery.ObjectT<{
309
- provider: Schema<string, string>;
310
- model: Schema<string, string>;
311
- fallbacks: Schema<({
312
- provider?: string | null | undefined;
313
- model?: string | null | undefined;
314
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
315
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
316
- provider: Schema<string, string>;
317
- model: Schema<string, string>;
318
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
319
- }>[]>;
320
- layerRoutes: Schema<Schemastery.ObjectS<{
321
- l1: Schema<({
322
- provider?: string | null | undefined;
323
- model?: string | null | undefined;
324
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
325
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
326
- provider: Schema<string, string>;
327
- model: Schema<string, string>;
328
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
329
- }>[]>;
330
- l2: Schema<({
331
- provider?: string | null | undefined;
332
- model?: string | null | undefined;
333
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
334
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
335
- provider: Schema<string, string>;
336
- model: Schema<string, string>;
337
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
338
- }>[]>;
339
- l3: Schema<({
340
- provider?: string | null | undefined;
341
- model?: string | null | undefined;
342
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
343
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
344
- provider: Schema<string, string>;
345
- model: Schema<string, string>;
346
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
347
- }>[]>;
348
- }>, Schemastery.ObjectT<{
349
- l1: Schema<({
350
- provider?: string | null | undefined;
351
- model?: string | null | undefined;
352
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
353
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
354
- provider: Schema<string, string>;
355
- model: Schema<string, string>;
356
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
357
- }>[]>;
358
- l2: Schema<({
359
- provider?: string | null | undefined;
360
- model?: string | null | undefined;
361
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
362
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
363
- provider: Schema<string, string>;
364
- model: Schema<string, string>;
365
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
366
- }>[]>;
367
- l3: Schema<({
368
- provider?: string | null | undefined;
369
- model?: string | null | undefined;
370
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
371
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
372
- provider: Schema<string, string>;
373
- model: Schema<string, string>;
374
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
375
- }>[]>;
376
- }>>;
377
- maxTokens: Schema<number, number>;
378
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
379
- temperature: Schema<number, number>;
380
- maxInputChars: Schema<number, number>;
381
- timeoutMs: Schema<number, number>;
382
- }>>;
383
- tokenCost: Schema<Schemastery.ObjectS<{
384
- retentionDays: Schema<number, number>;
385
- }>, Schemastery.ObjectT<{
386
- retentionDays: Schema<number, number>;
387
- }>>;
388
- tools: Schema<boolean, boolean>;
389
- benchControl: Schema<boolean, boolean>;
390
- }>, Schemastery.ObjectT<{
391
- dataDir: Schema<string, string>;
392
- family: Schema<"chat" | "work" | "auto", "chat" | "work" | "auto">;
393
- capture: Schema<Schemastery.ObjectS<{
394
- enabled: Schema<boolean, boolean>;
395
- stripCodeBlocks: Schema<boolean, boolean>;
396
- maxMessageChars: Schema<number, number>;
397
- }>, Schemastery.ObjectT<{
398
- enabled: Schema<boolean, boolean>;
399
- stripCodeBlocks: Schema<boolean, boolean>;
400
- maxMessageChars: Schema<number, number>;
401
- }>>;
402
- extract: Schema<Schemastery.ObjectS<{
403
- enabled: Schema<boolean, boolean>;
404
- minMessages: Schema<number, number>;
405
- idleSeconds: Schema<number, number>;
406
- backgroundMessages: Schema<number, number>;
407
- candidatePool: Schema<number, number>;
408
- }>, Schemastery.ObjectT<{
409
- enabled: Schema<boolean, boolean>;
410
- minMessages: Schema<number, number>;
411
- idleSeconds: Schema<number, number>;
412
- backgroundMessages: Schema<number, number>;
413
- candidatePool: Schema<number, number>;
414
- }>>;
415
- l2: Schema<Schemastery.ObjectS<{
416
- enabled: Schema<boolean, boolean>;
417
- minNewMemories: Schema<number, number>;
418
- maxScenes: Schema<number, number>;
419
- sceneContextLimit: Schema<number, number>;
420
- }>, Schemastery.ObjectT<{
421
- enabled: Schema<boolean, boolean>;
422
- minNewMemories: Schema<number, number>;
423
- maxScenes: Schema<number, number>;
424
- sceneContextLimit: Schema<number, number>;
425
- }>>;
426
- l3: Schema<Schemastery.ObjectS<{
427
- enabled: Schema<boolean, boolean>;
428
- interval: Schema<number, number>;
429
- }>, Schemastery.ObjectT<{
430
- enabled: Schema<boolean, boolean>;
431
- interval: Schema<number, number>;
432
- }>>;
433
- recall: Schema<Schemastery.ObjectS<{
434
- enabled: Schema<boolean, boolean>;
435
- maxResults: Schema<number, number>;
436
- maxCharsPerMemory: Schema<number, number>;
437
- maxTotalRecallChars: Schema<number, number>;
438
- timeoutMs: Schema<number, number>;
439
- includePersona: Schema<boolean, boolean>;
440
- includeSceneNav: Schema<boolean, boolean>;
441
- strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
442
- scoreThreshold: Schema<number, number>;
443
- decayHalfLifeDays: Schema<number, number>;
444
- }>, Schemastery.ObjectT<{
445
- enabled: Schema<boolean, boolean>;
446
- maxResults: Schema<number, number>;
447
- maxCharsPerMemory: Schema<number, number>;
448
- maxTotalRecallChars: Schema<number, number>;
449
- timeoutMs: Schema<number, number>;
450
- includePersona: Schema<boolean, boolean>;
451
- includeSceneNav: Schema<boolean, boolean>;
452
- strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
453
- scoreThreshold: Schema<number, number>;
454
- decayHalfLifeDays: Schema<number, number>;
455
- }>>;
456
- embedding: Schema<Schemastery.ObjectS<{
457
- enabled: Schema<boolean, boolean>;
458
- baseUrl: Schema<string, string>;
459
- apiKey: Schema<string, string>;
460
- model: Schema<string, string>;
461
- dimensions: Schema<number, number>;
462
- maxInputChars: Schema<number, number>;
463
- timeoutMs: Schema<number, number>;
464
- allowLocalModels: Schema<boolean, boolean>;
465
- mirror: Schema<string, string>;
466
- proxy: Schema<string, string>;
467
- }>, Schemastery.ObjectT<{
468
- enabled: Schema<boolean, boolean>;
469
- baseUrl: Schema<string, string>;
470
- apiKey: Schema<string, string>;
471
- model: Schema<string, string>;
472
- dimensions: Schema<number, number>;
473
- maxInputChars: Schema<number, number>;
474
- timeoutMs: Schema<number, number>;
475
- allowLocalModels: Schema<boolean, boolean>;
476
- mirror: Schema<string, string>;
477
- proxy: Schema<string, string>;
478
- }>>;
479
- llm: Schema<Schemastery.ObjectS<{
480
- provider: Schema<string, string>;
481
- model: Schema<string, string>;
482
- fallbacks: Schema<({
483
- provider?: string | null | undefined;
484
- model?: string | null | undefined;
485
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
486
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
487
- provider: Schema<string, string>;
488
- model: Schema<string, string>;
489
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
490
- }>[]>;
491
- layerRoutes: Schema<Schemastery.ObjectS<{
492
- l1: Schema<({
493
- provider?: string | null | undefined;
494
- model?: string | null | undefined;
495
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
496
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
497
- provider: Schema<string, string>;
498
- model: Schema<string, string>;
499
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
500
- }>[]>;
501
- l2: Schema<({
502
- provider?: string | null | undefined;
503
- model?: string | null | undefined;
504
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
505
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
506
- provider: Schema<string, string>;
507
- model: Schema<string, string>;
508
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
509
- }>[]>;
510
- l3: Schema<({
511
- provider?: string | null | undefined;
512
- model?: string | null | undefined;
513
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
514
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
515
- provider: Schema<string, string>;
516
- model: Schema<string, string>;
517
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
518
- }>[]>;
519
- }>, Schemastery.ObjectT<{
520
- l1: Schema<({
521
- provider?: string | null | undefined;
522
- model?: string | null | undefined;
523
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
524
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
525
- provider: Schema<string, string>;
526
- model: Schema<string, string>;
527
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
528
- }>[]>;
529
- l2: Schema<({
530
- provider?: string | null | undefined;
531
- model?: string | null | undefined;
532
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
533
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
534
- provider: Schema<string, string>;
535
- model: Schema<string, string>;
536
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
537
- }>[]>;
538
- l3: Schema<({
539
- provider?: string | null | undefined;
540
- model?: string | null | undefined;
541
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
542
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
543
- provider: Schema<string, string>;
544
- model: Schema<string, string>;
545
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
546
- }>[]>;
547
- }>>;
548
- maxTokens: Schema<number, number>;
549
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
550
- temperature: Schema<number, number>;
551
- maxInputChars: Schema<number, number>;
552
- timeoutMs: Schema<number, number>;
553
- }>, Schemastery.ObjectT<{
554
- provider: Schema<string, string>;
555
- model: Schema<string, string>;
556
- fallbacks: Schema<({
557
- provider?: string | null | undefined;
558
- model?: string | null | undefined;
559
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
560
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
561
- provider: Schema<string, string>;
562
- model: Schema<string, string>;
563
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
564
- }>[]>;
565
- layerRoutes: Schema<Schemastery.ObjectS<{
566
- l1: Schema<({
567
- provider?: string | null | undefined;
568
- model?: string | null | undefined;
569
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
570
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
571
- provider: Schema<string, string>;
572
- model: Schema<string, string>;
573
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
574
- }>[]>;
575
- l2: Schema<({
576
- provider?: string | null | undefined;
577
- model?: string | null | undefined;
578
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
579
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
580
- provider: Schema<string, string>;
581
- model: Schema<string, string>;
582
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
583
- }>[]>;
584
- l3: Schema<({
585
- provider?: string | null | undefined;
586
- model?: string | null | undefined;
587
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
588
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
589
- provider: Schema<string, string>;
590
- model: Schema<string, string>;
591
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
592
- }>[]>;
593
- }>, Schemastery.ObjectT<{
594
- l1: Schema<({
595
- provider?: string | null | undefined;
596
- model?: string | null | undefined;
597
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
598
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
599
- provider: Schema<string, string>;
600
- model: Schema<string, string>;
601
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
602
- }>[]>;
603
- l2: Schema<({
604
- provider?: string | null | undefined;
605
- model?: string | null | undefined;
606
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
607
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
608
- provider: Schema<string, string>;
609
- model: Schema<string, string>;
610
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
611
- }>[]>;
612
- l3: Schema<({
613
- provider?: string | null | undefined;
614
- model?: string | null | undefined;
615
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
616
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
617
- provider: Schema<string, string>;
618
- model: Schema<string, string>;
619
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
620
- }>[]>;
621
- }>>;
622
- maxTokens: Schema<number, number>;
623
- reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
624
- temperature: Schema<number, number>;
625
- maxInputChars: Schema<number, number>;
626
- timeoutMs: Schema<number, number>;
627
- }>>;
628
- tokenCost: Schema<Schemastery.ObjectS<{
629
- retentionDays: Schema<number, number>;
630
- }>, Schemastery.ObjectT<{
631
- retentionDays: Schema<number, number>;
632
- }>>;
633
- tools: Schema<boolean, boolean>;
634
- benchControl: Schema<boolean, boolean>;
635
- }>>;
145
+ export declare const memorySchema: Schema<any, MemoryConfig>;
636
146
  export declare function resolveDataDir(cfg: MemoryConfig): string;
package/dist/config.js CHANGED
@@ -13,6 +13,9 @@ import { dshHomePath } from '@deepseek-ai/dsh-home-paths';
13
13
  */
14
14
  // satisfies 反向锁定:词汇表扩词必须同步契约的 EffortChoice 联合(host 与 TS 化的 client 共用)
15
15
  export const EFFORT_CHOICES = ['', 'off', 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'];
16
+ // 显式注解(官方 dsh-time-context 同款思路):pnpm 符号链接布局下 TS 无法为推断类型
17
+ // 命名传递依赖 cosmokit(TS2742)。输入侧 any(cordis 校验按 schema 填默认,原始
18
+ // 输入本就宽松),输出侧钉死 MemoryConfig(.d.ts 只引用本包公开类型)。
16
19
  export const memorySchema = Schema.object({
17
20
  dataDir: Schema.string().default(''),
18
21
  family: Schema.union(['auto', 'chat', 'work']).default('auto'),
@@ -287,8 +287,13 @@ export function registerRecall(ctx, cfg, stores, logger, live, modes, dataDir) {
287
287
  const session = typeof sessions?.get === 'function' ? sessions.get(sessionId) : undefined;
288
288
  if (session) {
289
289
  const visible = new Set(session.surface.nodes);
290
+ // 宿主 0.1.2-rc.1 起移除 events getter,改 snapshotEvents();旧宿主仍走 events。
291
+ // 两者皆缺(未来宿主再改名)按不可估算处理——null = 回填隐藏,不静默显示零份额
292
+ const log = typeof session.snapshotEvents === 'function' ? session.snapshotEvents() : session.events;
293
+ if (!log)
294
+ return null;
290
295
  let total = 0;
291
- for (const ev of session.events) {
296
+ for (const ev of log) {
292
297
  if (ev.type !== 'user/message' || !visible.has(ev.seq))
293
298
  continue;
294
299
  const msg = ev.data;
package/dist/index.d.ts CHANGED
@@ -8,495 +8,5 @@ export declare const inject: string[];
8
8
  * (Standard Schema 接口)做校验与默认值填充;导出 `schema` 会被静默忽略,
9
9
  * 导致 config 里嵌套对象为 undefined、apply 抛错、fiber FAILED 拖垮宿主启动。
10
10
  */
11
- export declare const Config: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
12
- dataDir: import("@deepseek-ai/schemastery").default<string, string>;
13
- family: import("@deepseek-ai/schemastery").default<"chat" | "work" | "auto", "chat" | "work" | "auto">;
14
- capture: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
15
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
16
- stripCodeBlocks: import("@deepseek-ai/schemastery").default<boolean, boolean>;
17
- maxMessageChars: import("@deepseek-ai/schemastery").default<number, number>;
18
- }>, Schemastery.ObjectT<{
19
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
20
- stripCodeBlocks: import("@deepseek-ai/schemastery").default<boolean, boolean>;
21
- maxMessageChars: import("@deepseek-ai/schemastery").default<number, number>;
22
- }>>;
23
- extract: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
24
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
25
- minMessages: import("@deepseek-ai/schemastery").default<number, number>;
26
- idleSeconds: import("@deepseek-ai/schemastery").default<number, number>;
27
- backgroundMessages: import("@deepseek-ai/schemastery").default<number, number>;
28
- candidatePool: import("@deepseek-ai/schemastery").default<number, number>;
29
- }>, Schemastery.ObjectT<{
30
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
31
- minMessages: import("@deepseek-ai/schemastery").default<number, number>;
32
- idleSeconds: import("@deepseek-ai/schemastery").default<number, number>;
33
- backgroundMessages: import("@deepseek-ai/schemastery").default<number, number>;
34
- candidatePool: import("@deepseek-ai/schemastery").default<number, number>;
35
- }>>;
36
- l2: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
37
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
38
- minNewMemories: import("@deepseek-ai/schemastery").default<number, number>;
39
- maxScenes: import("@deepseek-ai/schemastery").default<number, number>;
40
- sceneContextLimit: import("@deepseek-ai/schemastery").default<number, number>;
41
- }>, Schemastery.ObjectT<{
42
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
43
- minNewMemories: import("@deepseek-ai/schemastery").default<number, number>;
44
- maxScenes: import("@deepseek-ai/schemastery").default<number, number>;
45
- sceneContextLimit: import("@deepseek-ai/schemastery").default<number, number>;
46
- }>>;
47
- l3: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
48
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
49
- interval: import("@deepseek-ai/schemastery").default<number, number>;
50
- }>, Schemastery.ObjectT<{
51
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
52
- interval: import("@deepseek-ai/schemastery").default<number, number>;
53
- }>>;
54
- recall: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
55
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
56
- maxResults: import("@deepseek-ai/schemastery").default<number, number>;
57
- maxCharsPerMemory: import("@deepseek-ai/schemastery").default<number, number>;
58
- maxTotalRecallChars: import("@deepseek-ai/schemastery").default<number, number>;
59
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
60
- includePersona: import("@deepseek-ai/schemastery").default<boolean, boolean>;
61
- includeSceneNav: import("@deepseek-ai/schemastery").default<boolean, boolean>;
62
- strategy: import("@deepseek-ai/schemastery").default<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
63
- scoreThreshold: import("@deepseek-ai/schemastery").default<number, number>;
64
- decayHalfLifeDays: import("@deepseek-ai/schemastery").default<number, number>;
65
- }>, Schemastery.ObjectT<{
66
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
67
- maxResults: import("@deepseek-ai/schemastery").default<number, number>;
68
- maxCharsPerMemory: import("@deepseek-ai/schemastery").default<number, number>;
69
- maxTotalRecallChars: import("@deepseek-ai/schemastery").default<number, number>;
70
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
71
- includePersona: import("@deepseek-ai/schemastery").default<boolean, boolean>;
72
- includeSceneNav: import("@deepseek-ai/schemastery").default<boolean, boolean>;
73
- strategy: import("@deepseek-ai/schemastery").default<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
74
- scoreThreshold: import("@deepseek-ai/schemastery").default<number, number>;
75
- decayHalfLifeDays: import("@deepseek-ai/schemastery").default<number, number>;
76
- }>>;
77
- embedding: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
78
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
79
- baseUrl: import("@deepseek-ai/schemastery").default<string, string>;
80
- apiKey: import("@deepseek-ai/schemastery").default<string, string>;
81
- model: import("@deepseek-ai/schemastery").default<string, string>;
82
- dimensions: import("@deepseek-ai/schemastery").default<number, number>;
83
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
84
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
85
- allowLocalModels: import("@deepseek-ai/schemastery").default<boolean, boolean>;
86
- mirror: import("@deepseek-ai/schemastery").default<string, string>;
87
- proxy: import("@deepseek-ai/schemastery").default<string, string>;
88
- }>, Schemastery.ObjectT<{
89
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
90
- baseUrl: import("@deepseek-ai/schemastery").default<string, string>;
91
- apiKey: import("@deepseek-ai/schemastery").default<string, string>;
92
- model: import("@deepseek-ai/schemastery").default<string, string>;
93
- dimensions: import("@deepseek-ai/schemastery").default<number, number>;
94
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
95
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
96
- allowLocalModels: import("@deepseek-ai/schemastery").default<boolean, boolean>;
97
- mirror: import("@deepseek-ai/schemastery").default<string, string>;
98
- proxy: import("@deepseek-ai/schemastery").default<string, string>;
99
- }>>;
100
- llm: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
101
- provider: import("@deepseek-ai/schemastery").default<string, string>;
102
- model: import("@deepseek-ai/schemastery").default<string, string>;
103
- fallbacks: import("@deepseek-ai/schemastery").default<({
104
- provider?: string | null | undefined;
105
- model?: string | null | undefined;
106
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
107
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
108
- provider: import("@deepseek-ai/schemastery").default<string, string>;
109
- model: import("@deepseek-ai/schemastery").default<string, string>;
110
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
111
- }>[]>;
112
- layerRoutes: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
113
- l1: import("@deepseek-ai/schemastery").default<({
114
- provider?: string | null | undefined;
115
- model?: string | null | undefined;
116
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
117
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
118
- provider: import("@deepseek-ai/schemastery").default<string, string>;
119
- model: import("@deepseek-ai/schemastery").default<string, string>;
120
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
121
- }>[]>;
122
- l2: import("@deepseek-ai/schemastery").default<({
123
- provider?: string | null | undefined;
124
- model?: string | null | undefined;
125
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
126
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
127
- provider: import("@deepseek-ai/schemastery").default<string, string>;
128
- model: import("@deepseek-ai/schemastery").default<string, string>;
129
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
130
- }>[]>;
131
- l3: import("@deepseek-ai/schemastery").default<({
132
- provider?: string | null | undefined;
133
- model?: string | null | undefined;
134
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
135
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
136
- provider: import("@deepseek-ai/schemastery").default<string, string>;
137
- model: import("@deepseek-ai/schemastery").default<string, string>;
138
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
139
- }>[]>;
140
- }>, Schemastery.ObjectT<{
141
- l1: import("@deepseek-ai/schemastery").default<({
142
- provider?: string | null | undefined;
143
- model?: string | null | undefined;
144
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
145
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
146
- provider: import("@deepseek-ai/schemastery").default<string, string>;
147
- model: import("@deepseek-ai/schemastery").default<string, string>;
148
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
149
- }>[]>;
150
- l2: import("@deepseek-ai/schemastery").default<({
151
- provider?: string | null | undefined;
152
- model?: string | null | undefined;
153
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
154
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
155
- provider: import("@deepseek-ai/schemastery").default<string, string>;
156
- model: import("@deepseek-ai/schemastery").default<string, string>;
157
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
158
- }>[]>;
159
- l3: import("@deepseek-ai/schemastery").default<({
160
- provider?: string | null | undefined;
161
- model?: string | null | undefined;
162
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
163
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
164
- provider: import("@deepseek-ai/schemastery").default<string, string>;
165
- model: import("@deepseek-ai/schemastery").default<string, string>;
166
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
167
- }>[]>;
168
- }>>;
169
- maxTokens: import("@deepseek-ai/schemastery").default<number, number>;
170
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
171
- temperature: import("@deepseek-ai/schemastery").default<number, number>;
172
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
173
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
174
- }>, Schemastery.ObjectT<{
175
- provider: import("@deepseek-ai/schemastery").default<string, string>;
176
- model: import("@deepseek-ai/schemastery").default<string, string>;
177
- fallbacks: import("@deepseek-ai/schemastery").default<({
178
- provider?: string | null | undefined;
179
- model?: string | null | undefined;
180
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
181
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
182
- provider: import("@deepseek-ai/schemastery").default<string, string>;
183
- model: import("@deepseek-ai/schemastery").default<string, string>;
184
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
185
- }>[]>;
186
- layerRoutes: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
187
- l1: import("@deepseek-ai/schemastery").default<({
188
- provider?: string | null | undefined;
189
- model?: string | null | undefined;
190
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
191
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
192
- provider: import("@deepseek-ai/schemastery").default<string, string>;
193
- model: import("@deepseek-ai/schemastery").default<string, string>;
194
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
195
- }>[]>;
196
- l2: import("@deepseek-ai/schemastery").default<({
197
- provider?: string | null | undefined;
198
- model?: string | null | undefined;
199
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
200
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
201
- provider: import("@deepseek-ai/schemastery").default<string, string>;
202
- model: import("@deepseek-ai/schemastery").default<string, string>;
203
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
204
- }>[]>;
205
- l3: import("@deepseek-ai/schemastery").default<({
206
- provider?: string | null | undefined;
207
- model?: string | null | undefined;
208
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
209
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
210
- provider: import("@deepseek-ai/schemastery").default<string, string>;
211
- model: import("@deepseek-ai/schemastery").default<string, string>;
212
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
213
- }>[]>;
214
- }>, Schemastery.ObjectT<{
215
- l1: import("@deepseek-ai/schemastery").default<({
216
- provider?: string | null | undefined;
217
- model?: string | null | undefined;
218
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
219
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
220
- provider: import("@deepseek-ai/schemastery").default<string, string>;
221
- model: import("@deepseek-ai/schemastery").default<string, string>;
222
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
223
- }>[]>;
224
- l2: import("@deepseek-ai/schemastery").default<({
225
- provider?: string | null | undefined;
226
- model?: string | null | undefined;
227
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
228
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
229
- provider: import("@deepseek-ai/schemastery").default<string, string>;
230
- model: import("@deepseek-ai/schemastery").default<string, string>;
231
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
232
- }>[]>;
233
- l3: import("@deepseek-ai/schemastery").default<({
234
- provider?: string | null | undefined;
235
- model?: string | null | undefined;
236
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
237
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
238
- provider: import("@deepseek-ai/schemastery").default<string, string>;
239
- model: import("@deepseek-ai/schemastery").default<string, string>;
240
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
241
- }>[]>;
242
- }>>;
243
- maxTokens: import("@deepseek-ai/schemastery").default<number, number>;
244
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
245
- temperature: import("@deepseek-ai/schemastery").default<number, number>;
246
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
247
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
248
- }>>;
249
- tokenCost: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
250
- retentionDays: import("@deepseek-ai/schemastery").default<number, number>;
251
- }>, Schemastery.ObjectT<{
252
- retentionDays: import("@deepseek-ai/schemastery").default<number, number>;
253
- }>>;
254
- tools: import("@deepseek-ai/schemastery").default<boolean, boolean>;
255
- benchControl: import("@deepseek-ai/schemastery").default<boolean, boolean>;
256
- }>, Schemastery.ObjectT<{
257
- dataDir: import("@deepseek-ai/schemastery").default<string, string>;
258
- family: import("@deepseek-ai/schemastery").default<"chat" | "work" | "auto", "chat" | "work" | "auto">;
259
- capture: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
260
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
261
- stripCodeBlocks: import("@deepseek-ai/schemastery").default<boolean, boolean>;
262
- maxMessageChars: import("@deepseek-ai/schemastery").default<number, number>;
263
- }>, Schemastery.ObjectT<{
264
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
265
- stripCodeBlocks: import("@deepseek-ai/schemastery").default<boolean, boolean>;
266
- maxMessageChars: import("@deepseek-ai/schemastery").default<number, number>;
267
- }>>;
268
- extract: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
269
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
270
- minMessages: import("@deepseek-ai/schemastery").default<number, number>;
271
- idleSeconds: import("@deepseek-ai/schemastery").default<number, number>;
272
- backgroundMessages: import("@deepseek-ai/schemastery").default<number, number>;
273
- candidatePool: import("@deepseek-ai/schemastery").default<number, number>;
274
- }>, Schemastery.ObjectT<{
275
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
276
- minMessages: import("@deepseek-ai/schemastery").default<number, number>;
277
- idleSeconds: import("@deepseek-ai/schemastery").default<number, number>;
278
- backgroundMessages: import("@deepseek-ai/schemastery").default<number, number>;
279
- candidatePool: import("@deepseek-ai/schemastery").default<number, number>;
280
- }>>;
281
- l2: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
282
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
283
- minNewMemories: import("@deepseek-ai/schemastery").default<number, number>;
284
- maxScenes: import("@deepseek-ai/schemastery").default<number, number>;
285
- sceneContextLimit: import("@deepseek-ai/schemastery").default<number, number>;
286
- }>, Schemastery.ObjectT<{
287
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
288
- minNewMemories: import("@deepseek-ai/schemastery").default<number, number>;
289
- maxScenes: import("@deepseek-ai/schemastery").default<number, number>;
290
- sceneContextLimit: import("@deepseek-ai/schemastery").default<number, number>;
291
- }>>;
292
- l3: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
293
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
294
- interval: import("@deepseek-ai/schemastery").default<number, number>;
295
- }>, Schemastery.ObjectT<{
296
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
297
- interval: import("@deepseek-ai/schemastery").default<number, number>;
298
- }>>;
299
- recall: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
300
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
301
- maxResults: import("@deepseek-ai/schemastery").default<number, number>;
302
- maxCharsPerMemory: import("@deepseek-ai/schemastery").default<number, number>;
303
- maxTotalRecallChars: import("@deepseek-ai/schemastery").default<number, number>;
304
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
305
- includePersona: import("@deepseek-ai/schemastery").default<boolean, boolean>;
306
- includeSceneNav: import("@deepseek-ai/schemastery").default<boolean, boolean>;
307
- strategy: import("@deepseek-ai/schemastery").default<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
308
- scoreThreshold: import("@deepseek-ai/schemastery").default<number, number>;
309
- decayHalfLifeDays: import("@deepseek-ai/schemastery").default<number, number>;
310
- }>, Schemastery.ObjectT<{
311
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
312
- maxResults: import("@deepseek-ai/schemastery").default<number, number>;
313
- maxCharsPerMemory: import("@deepseek-ai/schemastery").default<number, number>;
314
- maxTotalRecallChars: import("@deepseek-ai/schemastery").default<number, number>;
315
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
316
- includePersona: import("@deepseek-ai/schemastery").default<boolean, boolean>;
317
- includeSceneNav: import("@deepseek-ai/schemastery").default<boolean, boolean>;
318
- strategy: import("@deepseek-ai/schemastery").default<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
319
- scoreThreshold: import("@deepseek-ai/schemastery").default<number, number>;
320
- decayHalfLifeDays: import("@deepseek-ai/schemastery").default<number, number>;
321
- }>>;
322
- embedding: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
323
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
324
- baseUrl: import("@deepseek-ai/schemastery").default<string, string>;
325
- apiKey: import("@deepseek-ai/schemastery").default<string, string>;
326
- model: import("@deepseek-ai/schemastery").default<string, string>;
327
- dimensions: import("@deepseek-ai/schemastery").default<number, number>;
328
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
329
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
330
- allowLocalModels: import("@deepseek-ai/schemastery").default<boolean, boolean>;
331
- mirror: import("@deepseek-ai/schemastery").default<string, string>;
332
- proxy: import("@deepseek-ai/schemastery").default<string, string>;
333
- }>, Schemastery.ObjectT<{
334
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean>;
335
- baseUrl: import("@deepseek-ai/schemastery").default<string, string>;
336
- apiKey: import("@deepseek-ai/schemastery").default<string, string>;
337
- model: import("@deepseek-ai/schemastery").default<string, string>;
338
- dimensions: import("@deepseek-ai/schemastery").default<number, number>;
339
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
340
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
341
- allowLocalModels: import("@deepseek-ai/schemastery").default<boolean, boolean>;
342
- mirror: import("@deepseek-ai/schemastery").default<string, string>;
343
- proxy: import("@deepseek-ai/schemastery").default<string, string>;
344
- }>>;
345
- llm: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
346
- provider: import("@deepseek-ai/schemastery").default<string, string>;
347
- model: import("@deepseek-ai/schemastery").default<string, string>;
348
- fallbacks: import("@deepseek-ai/schemastery").default<({
349
- provider?: string | null | undefined;
350
- model?: string | null | undefined;
351
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
352
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
353
- provider: import("@deepseek-ai/schemastery").default<string, string>;
354
- model: import("@deepseek-ai/schemastery").default<string, string>;
355
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
356
- }>[]>;
357
- layerRoutes: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
358
- l1: import("@deepseek-ai/schemastery").default<({
359
- provider?: string | null | undefined;
360
- model?: string | null | undefined;
361
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
362
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
363
- provider: import("@deepseek-ai/schemastery").default<string, string>;
364
- model: import("@deepseek-ai/schemastery").default<string, string>;
365
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
366
- }>[]>;
367
- l2: import("@deepseek-ai/schemastery").default<({
368
- provider?: string | null | undefined;
369
- model?: string | null | undefined;
370
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
371
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
372
- provider: import("@deepseek-ai/schemastery").default<string, string>;
373
- model: import("@deepseek-ai/schemastery").default<string, string>;
374
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
375
- }>[]>;
376
- l3: import("@deepseek-ai/schemastery").default<({
377
- provider?: string | null | undefined;
378
- model?: string | null | undefined;
379
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
380
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
381
- provider: import("@deepseek-ai/schemastery").default<string, string>;
382
- model: import("@deepseek-ai/schemastery").default<string, string>;
383
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
384
- }>[]>;
385
- }>, Schemastery.ObjectT<{
386
- l1: import("@deepseek-ai/schemastery").default<({
387
- provider?: string | null | undefined;
388
- model?: string | null | undefined;
389
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
390
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
391
- provider: import("@deepseek-ai/schemastery").default<string, string>;
392
- model: import("@deepseek-ai/schemastery").default<string, string>;
393
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
394
- }>[]>;
395
- l2: import("@deepseek-ai/schemastery").default<({
396
- provider?: string | null | undefined;
397
- model?: string | null | undefined;
398
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
399
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
400
- provider: import("@deepseek-ai/schemastery").default<string, string>;
401
- model: import("@deepseek-ai/schemastery").default<string, string>;
402
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
403
- }>[]>;
404
- l3: import("@deepseek-ai/schemastery").default<({
405
- provider?: string | null | undefined;
406
- model?: string | null | undefined;
407
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
408
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
409
- provider: import("@deepseek-ai/schemastery").default<string, string>;
410
- model: import("@deepseek-ai/schemastery").default<string, string>;
411
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
412
- }>[]>;
413
- }>>;
414
- maxTokens: import("@deepseek-ai/schemastery").default<number, number>;
415
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
416
- temperature: import("@deepseek-ai/schemastery").default<number, number>;
417
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
418
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
419
- }>, Schemastery.ObjectT<{
420
- provider: import("@deepseek-ai/schemastery").default<string, string>;
421
- model: import("@deepseek-ai/schemastery").default<string, string>;
422
- fallbacks: import("@deepseek-ai/schemastery").default<({
423
- provider?: string | null | undefined;
424
- model?: string | null | undefined;
425
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
426
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
427
- provider: import("@deepseek-ai/schemastery").default<string, string>;
428
- model: import("@deepseek-ai/schemastery").default<string, string>;
429
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
430
- }>[]>;
431
- layerRoutes: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
432
- l1: import("@deepseek-ai/schemastery").default<({
433
- provider?: string | null | undefined;
434
- model?: string | null | undefined;
435
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
436
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
437
- provider: import("@deepseek-ai/schemastery").default<string, string>;
438
- model: import("@deepseek-ai/schemastery").default<string, string>;
439
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
440
- }>[]>;
441
- l2: import("@deepseek-ai/schemastery").default<({
442
- provider?: string | null | undefined;
443
- model?: string | null | undefined;
444
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
445
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
446
- provider: import("@deepseek-ai/schemastery").default<string, string>;
447
- model: import("@deepseek-ai/schemastery").default<string, string>;
448
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
449
- }>[]>;
450
- l3: import("@deepseek-ai/schemastery").default<({
451
- provider?: string | null | undefined;
452
- model?: string | null | undefined;
453
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
454
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
455
- provider: import("@deepseek-ai/schemastery").default<string, string>;
456
- model: import("@deepseek-ai/schemastery").default<string, string>;
457
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
458
- }>[]>;
459
- }>, Schemastery.ObjectT<{
460
- l1: import("@deepseek-ai/schemastery").default<({
461
- provider?: string | null | undefined;
462
- model?: string | null | undefined;
463
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
464
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
465
- provider: import("@deepseek-ai/schemastery").default<string, string>;
466
- model: import("@deepseek-ai/schemastery").default<string, string>;
467
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
468
- }>[]>;
469
- l2: import("@deepseek-ai/schemastery").default<({
470
- provider?: string | null | undefined;
471
- model?: string | null | undefined;
472
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
473
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
474
- provider: import("@deepseek-ai/schemastery").default<string, string>;
475
- model: import("@deepseek-ai/schemastery").default<string, string>;
476
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
477
- }>[]>;
478
- l3: import("@deepseek-ai/schemastery").default<({
479
- provider?: string | null | undefined;
480
- model?: string | null | undefined;
481
- reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
482
- } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
483
- provider: import("@deepseek-ai/schemastery").default<string, string>;
484
- model: import("@deepseek-ai/schemastery").default<string, string>;
485
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
486
- }>[]>;
487
- }>>;
488
- maxTokens: import("@deepseek-ai/schemastery").default<number, number>;
489
- reasoningEffort: import("@deepseek-ai/schemastery").default<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
490
- temperature: import("@deepseek-ai/schemastery").default<number, number>;
491
- maxInputChars: import("@deepseek-ai/schemastery").default<number, number>;
492
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number>;
493
- }>>;
494
- tokenCost: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<{
495
- retentionDays: import("@deepseek-ai/schemastery").default<number, number>;
496
- }>, Schemastery.ObjectT<{
497
- retentionDays: import("@deepseek-ai/schemastery").default<number, number>;
498
- }>>;
499
- tools: import("@deepseek-ai/schemastery").default<boolean, boolean>;
500
- benchControl: import("@deepseek-ai/schemastery").default<boolean, boolean>;
501
- }>>;
11
+ export declare const Config: import("@deepseek-ai/schemastery").default<any, MemoryConfig>;
502
12
  export declare function apply(ctx: Context, config: MemoryConfig): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-layered-memory",
3
- "version": "0.9.2",
3
+ "version": "0.10.0",
4
4
  "description": "L0~L3 分层蒸馏记忆插件 for DeepSeek Harness:自动捕获对话(L0)、抽取原子记忆(L1)、整合场景块(L2)、蒸馏核心画像/团队方法论(L3),并在模型步骤前自动召回注入。移植自 MemoryCore (TencentDB Agent Memory) 的管线设计。",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -31,14 +31,15 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "build": "tsc -p tsconfig.json && node scripts/build-client.mjs && node scripts/copy-client.mjs",
34
- "smoke": "npm run build:smoke && node dist-smoke/smoke.js",
35
- "verify-catalog": "npm run build && node scripts/verify-catalog.mjs",
34
+ "smoke": "pnpm run build:smoke && node dist-smoke/smoke.js",
35
+ "verify-catalog": "pnpm run build && node scripts/verify-catalog.mjs",
36
36
  "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit",
37
37
  "build:smoke": "tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop"
38
38
  },
39
39
  "engines": {
40
40
  "node": ">=22.16.0"
41
41
  },
42
+ "packageManager": "pnpm@11.21.0",
42
43
  "keywords": [
43
44
  "dsh",
44
45
  "deepseek-harness",
@@ -69,15 +70,16 @@
69
70
  },
70
71
  "devDependencies": {
71
72
  "@deepseek-ai/cordis": "4.0.2",
72
- "@deepseek-ai/dsh-agent": "0.1.2-alpha.2",
73
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-alpha.2",
74
- "@deepseek-ai/dsh-client-connection": "0.1.2-alpha.2",
75
- "@deepseek-ai/dsh-home-paths": "0.1.2-alpha.2",
76
- "@deepseek-ai/dsh-llm": "0.1.2-alpha.2",
77
- "@deepseek-ai/dsh-session": "0.1.2-alpha.2",
78
- "@deepseek-ai/dsh-settings": "0.1.2-alpha.2",
79
- "@deepseek-ai/dsh-system-prompt": "0.1.2-alpha.2",
80
- "@deepseek-ai/dsh-tools": "0.1.2-alpha.2",
73
+ "@deepseek-ai/cosmokit": "1.8.3",
74
+ "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
75
+ "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
76
+ "@deepseek-ai/dsh-client-connection": "0.1.2-rc.1",
77
+ "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
78
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
79
+ "@deepseek-ai/dsh-session": "0.1.2-rc.1",
80
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
81
+ "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
82
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
81
83
  "@types/node": "^22.0.0",
82
84
  "@types/react": "^19.2.18",
83
85
  "esbuild": "^0.28.2",