dsh-prime-memory 0.11.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.
Files changed (151) hide show
  1. package/CHANGELOG.en.md +28 -0
  2. package/CHANGELOG.ja.md +30 -0
  3. package/CHANGELOG.ko.md +30 -0
  4. package/CHANGELOG.md +1220 -0
  5. package/ENGINEERING-NOTES.md +452 -0
  6. package/INSTALL.en.md +92 -0
  7. package/INSTALL.ja.md +92 -0
  8. package/INSTALL.ko.md +92 -0
  9. package/INSTALL.md +92 -0
  10. package/LICENSE +21 -0
  11. package/README.en.md +458 -0
  12. package/README.ja.md +306 -0
  13. package/README.ko.md +306 -0
  14. package/README.md +425 -0
  15. package/assets/changelog/0.8.10/01-write-only-pill.png +0 -0
  16. package/assets/changelog/0.8.9/01-panel.png +0 -0
  17. package/assets/changelog/0.8.9/02-halo.png +0 -0
  18. package/assets/changelog/0.8.9/03-layer-segmented-panel.png +0 -0
  19. package/assets/changelog/0.8.9/04-layer-l1-panel.png +0 -0
  20. package/assets/img/EmbeddingSource.png +0 -0
  21. package/assets/img/Hero.png +0 -0
  22. package/assets/img/Layers.png +0 -0
  23. package/assets/img/MemoryTools.png +0 -0
  24. package/assets/img/Modes.png +0 -0
  25. package/assets/img/ToolTrajectory.png +0 -0
  26. package/assets/img/ui-dark.jpg +0 -0
  27. package/assets/img/ui-light.jpg +0 -0
  28. package/assets/readme/bench-dialog.svg +70 -0
  29. package/assets/readme/bench-workflow.svg +79 -0
  30. package/assets/readme/flow.svg +189 -0
  31. package/assets/readme/storage.svg +115 -0
  32. package/cordis.patch.yml +16 -0
  33. package/dist/bench-control.d.ts +34 -0
  34. package/dist/bench-control.js +16 -0
  35. package/dist/client.js +4293 -0
  36. package/dist/config.d.ts +683 -0
  37. package/dist/config.js +129 -0
  38. package/dist/contract.d.ts +820 -0
  39. package/dist/contract.js +1 -0
  40. package/dist/embedding-worker.cjs +176 -0
  41. package/dist/graph/apply.d.ts +37 -0
  42. package/dist/graph/apply.js +270 -0
  43. package/dist/graph/constraints.d.ts +47 -0
  44. package/dist/graph/constraints.js +38 -0
  45. package/dist/graph/search.d.ts +16 -0
  46. package/dist/graph/search.js +115 -0
  47. package/dist/graph/types.d.ts +142 -0
  48. package/dist/graph/types.js +14 -0
  49. package/dist/hooks/capture.d.ts +32 -0
  50. package/dist/hooks/capture.js +194 -0
  51. package/dist/hooks/recall.d.ts +63 -0
  52. package/dist/hooks/recall.js +429 -0
  53. package/dist/index.d.ts +534 -0
  54. package/dist/index.js +344 -0
  55. package/dist/llm-usage.d.ts +26 -0
  56. package/dist/llm-usage.js +37 -0
  57. package/dist/llm.d.ts +153 -0
  58. package/dist/llm.js +530 -0
  59. package/dist/pipeline/graph.d.ts +35 -0
  60. package/dist/pipeline/graph.js +104 -0
  61. package/dist/pipeline/l1.d.ts +19 -0
  62. package/dist/pipeline/l1.js +271 -0
  63. package/dist/pipeline/l2.d.ts +13 -0
  64. package/dist/pipeline/l2.js +83 -0
  65. package/dist/pipeline/l3.d.ts +15 -0
  66. package/dist/pipeline/l3.js +78 -0
  67. package/dist/pipeline/rebuild.d.ts +61 -0
  68. package/dist/pipeline/rebuild.js +307 -0
  69. package/dist/pipeline/ruminate.d.ts +89 -0
  70. package/dist/pipeline/ruminate.js +298 -0
  71. package/dist/pipeline/runner.d.ts +167 -0
  72. package/dist/pipeline/runner.js +638 -0
  73. package/dist/pipeline/trigger.d.ts +40 -0
  74. package/dist/pipeline/trigger.js +75 -0
  75. package/dist/prompts/graph-projection.d.ts +70 -0
  76. package/dist/prompts/graph-projection.js +167 -0
  77. package/dist/prompts/l1-dedup.d.ts +22 -0
  78. package/dist/prompts/l1-dedup.js +251 -0
  79. package/dist/prompts/l1-extraction.d.ts +22 -0
  80. package/dist/prompts/l1-extraction.js +457 -0
  81. package/dist/prompts/persona.d.ts +23 -0
  82. package/dist/prompts/persona.js +240 -0
  83. package/dist/prompts/scene.d.ts +32 -0
  84. package/dist/prompts/scene.js +414 -0
  85. package/dist/runtime-package-lock.json +982 -0
  86. package/dist/settings.d.ts +50 -0
  87. package/dist/settings.js +355 -0
  88. package/dist/stats.d.ts +109 -0
  89. package/dist/stats.js +929 -0
  90. package/dist/store/bm25.d.ts +19 -0
  91. package/dist/store/bm25.js +63 -0
  92. package/dist/store/cost-ledger.d.ts +75 -0
  93. package/dist/store/cost-ledger.js +171 -0
  94. package/dist/store/download-queue.d.ts +79 -0
  95. package/dist/store/download-queue.js +424 -0
  96. package/dist/store/embedding-source.d.ts +118 -0
  97. package/dist/store/embedding-source.js +443 -0
  98. package/dist/store/embedding.d.ts +90 -0
  99. package/dist/store/embedding.js +206 -0
  100. package/dist/store/graph-store.d.ts +94 -0
  101. package/dist/store/graph-store.js +641 -0
  102. package/dist/store/l0.d.ts +40 -0
  103. package/dist/store/l0.js +197 -0
  104. package/dist/store/l1.d.ts +93 -0
  105. package/dist/store/l1.js +297 -0
  106. package/dist/store/local-embedding.d.ts +89 -0
  107. package/dist/store/local-embedding.js +227 -0
  108. package/dist/store/model-catalog.d.ts +48 -0
  109. package/dist/store/model-catalog.js +81 -0
  110. package/dist/store/occupancy.d.ts +30 -0
  111. package/dist/store/occupancy.js +134 -0
  112. package/dist/store/pending.d.ts +36 -0
  113. package/dist/store/pending.js +103 -0
  114. package/dist/store/persona.d.ts +15 -0
  115. package/dist/store/persona.js +60 -0
  116. package/dist/store/recall-dedupe.d.ts +26 -0
  117. package/dist/store/recall-dedupe.js +138 -0
  118. package/dist/store/runtime-installer.d.ts +59 -0
  119. package/dist/store/runtime-installer.js +243 -0
  120. package/dist/store/scenes.d.ts +24 -0
  121. package/dist/store/scenes.js +160 -0
  122. package/dist/store/search-utils.d.ts +38 -0
  123. package/dist/store/search-utils.js +100 -0
  124. package/dist/store/session-modes.d.ts +35 -0
  125. package/dist/store/session-modes.js +144 -0
  126. package/dist/store/sqlite.d.ts +246 -0
  127. package/dist/store/sqlite.js +1491 -0
  128. package/dist/store/state.d.ts +41 -0
  129. package/dist/store/state.js +72 -0
  130. package/dist/token-cost.d.ts +23 -0
  131. package/dist/token-cost.js +185 -0
  132. package/dist/tools/index.d.ts +34 -0
  133. package/dist/tools/index.js +758 -0
  134. package/dist/types.d.ts +139 -0
  135. package/dist/types.js +38 -0
  136. package/dist/util/context-occupancy.d.ts +68 -0
  137. package/dist/util/context-occupancy.js +92 -0
  138. package/dist/util/filelog.d.ts +6 -0
  139. package/dist/util/filelog.js +108 -0
  140. package/dist/util/io.d.ts +18 -0
  141. package/dist/util/io.js +97 -0
  142. package/dist/util/recall-budget.d.ts +31 -0
  143. package/dist/util/recall-budget.js +84 -0
  144. package/dist/util/sanitize.d.ts +11 -0
  145. package/dist/util/sanitize.js +67 -0
  146. package/dist/util/text.d.ts +16 -0
  147. package/dist/util/text.js +61 -0
  148. package/dist/util/tokenizer.d.ts +9 -0
  149. package/dist/util/tokenizer.js +50 -0
  150. package/dsh.plugin.json +22 -0
  151. package/package.json +118 -0
@@ -0,0 +1,683 @@
1
+ /**
2
+ * 插件配置:Schemastery schema + 类型。
3
+ *
4
+ * 默认数据目录:$DSH_HOME/memory(用官方 dshHomePath 解析,DSH_HOME 缺省 ~/.dsh)。
5
+ * 键名/默认值/取值范围是部署面契约(patch.yml 按"整行替换,不深合并"覆盖),不可更名。
6
+ */
7
+ import Schema from '@deepseek-ai/schemastery';
8
+ import type { LayerRouteKey, StaticFallbackEntry } from './contract.js';
9
+ import type { ExtractMode } from './types.js';
10
+ /**
11
+ * 蒸馏思考档位全词汇表(唯一事实源):'' = 自动(模型默认档 → high),
12
+ * 其余为各适配器通用档位词汇(deepseek 认 'off',OpenAI 系是 'none')。
13
+ * schema(config/settings)、运行时解析与 RPC 写入门共用,勿在别处再抄字面量表。
14
+ */
15
+ export declare const EFFORT_CHOICES: readonly ["", "off", "none", "minimal", "low", "medium", "high", "xhigh", "max"];
16
+ export interface MemoryConfig {
17
+ /** 数据目录;留空则用 $DSH_HOME/memory。 */
18
+ dataDir: string;
19
+ /** 新会话的默认记忆档位:auto(双族自动)| chat(个人)| work(工作)。 */
20
+ family: ExtractMode;
21
+ capture: {
22
+ enabled: boolean;
23
+ /** 助手消息是否剥离代码块(减少嵌入噪声)。 */
24
+ stripCodeBlocks: boolean;
25
+ /** 单条消息内容最大字符数。 */
26
+ maxMessageChars: number;
27
+ };
28
+ extract: {
29
+ enabled: boolean;
30
+ /** 稳态触发阈值:单会话攒够多少条新消息才跑一次 L1 抽取(省 token)。
31
+ * 起步阶段生效阈值从 1 翻倍爬坡到此值(渐进阈值,ADR-0003)。 */
32
+ minMessages: number;
33
+ /** 闲置兜底:会话静默多少秒后把未蒸馏切片落袋;0 = 关闭。 */
34
+ idleSeconds: number;
35
+ /** L1 抽取时的背景消息条数(供上下文推断,不参与提取)。 */
36
+ backgroundMessages: number;
37
+ /** 去重候选池大小(每条新记忆的相似候选数)。 */
38
+ candidatePool: number;
39
+ };
40
+ l2: {
41
+ enabled: boolean;
42
+ /** 距上次 L2 整合的新记忆达到该数量才触发。 */
43
+ minNewMemories: number;
44
+ /** 场景块数量上限。 */
45
+ maxScenes: number;
46
+ /** L2 prompt 里附带的相似场景全文数量上限。 */
47
+ sceneContextLimit: number;
48
+ };
49
+ l3: {
50
+ enabled: boolean;
51
+ /** 距上次 L3 蒸馏的新记忆数量阈值。 */
52
+ interval: number;
53
+ };
54
+ graph: {
55
+ /** 知识图谱投影总开关(部署级,默认关):开启后还需运行时蒸馏开关(live.distill)
56
+ * 同时为真才执行;图谱是 L1 的可重建投影,关闭不影响记忆主链路。 */
57
+ enabled: boolean;
58
+ };
59
+ recall: {
60
+ enabled: boolean;
61
+ /** 每步自动召回注入的 L1 条数。 */
62
+ maxResults: number;
63
+ /** 单条注入记忆的字符上限(超限截断并提示用工具查全文);0 = 不限。 */
64
+ maxCharsPerMemory: number;
65
+ /** 整轮注入总字符上限(超限按相关性丢尾部);0 = 不限。 */
66
+ maxTotalRecallChars: number;
67
+ /** 召回总预算(ms):超时跳过本轮注入、不阻塞对话;0 = 不限时。 */
68
+ timeoutMs: number;
69
+ includePersona: boolean;
70
+ includeSceneNav: boolean;
71
+ /** 检索策略:keyword(FTS5 BM25)| embedding(向量)| hybrid(双路 + RRF 融合)。 */
72
+ strategy: 'keyword' | 'embedding' | 'hybrid';
73
+ /** 召回路径分数阈值(0~1,低于该分不注入;工具路径不过滤)。 */
74
+ scoreThreshold: number;
75
+ /** 时效衰减半衰期(天,0=关):score × max(0.5, 0.5^(Δ天/半衰期)),
76
+ * 只影响相关度相近候选间的名次(老记忆最多损失一半排序分,不淘汰)。 */
77
+ decayHalfLifeDays: number;
78
+ };
79
+ embedding: {
80
+ /** 向量检索总开关;关闭时纯 FTS 运行。 */
81
+ enabled: boolean;
82
+ /** OpenAI 兼容 /embeddings 服务地址,如 https://api.siliconflow.cn/v1。 */
83
+ baseUrl: string;
84
+ apiKey: string;
85
+ model: string;
86
+ /** 向量维度(启用时必填,须与模型输出一致;vec0 建表需要固定维度)。 */
87
+ dimensions: number;
88
+ /** 单条文本最大字符数(超长截断)。 */
89
+ maxInputChars: number;
90
+ /** 单次调用超时(ms)。 */
91
+ timeoutMs: number;
92
+ /** 允许本地嵌入模型档(部署上限:公司环境可禁下载与本地推理)。 */
93
+ allowLocalModels: boolean;
94
+ /** 模型下载镜像根地址(默认国内可达的 hf-mirror.com)。 */
95
+ mirror: string;
96
+ /** 模型下载代理三态:''(默认)= 探测代理环境变量;'none' = 强制直连;其他 = 代理 URL。 */
97
+ proxy: string;
98
+ };
99
+ llm: {
100
+ /** 蒸馏用的 provider 路由;留空用当前默认选择。 */
101
+ provider: string;
102
+ /** 蒸馏用的模型;留空用当前默认选择。 */
103
+ model: string;
104
+ /** 压缩(蒸馏)调用通道:'host' = 复用宿主 ctx.llm(默认,零配置);'direct' =
105
+ * 插件原生 HTTP 直连 llm.baseURL 指定的 OpenAI 兼容端点。direct 失败自动回退宿主
106
+ * 路由作兜底;direct 未配置时静默回退 host。 */
107
+ mode: 'host' | 'direct';
108
+ /** direct 模式下的 OpenAI 兼容 /v1 端点根地址;host 模式忽略。 */
109
+ baseURL: string;
110
+ /** direct 模式下可选 API Key(本地免 key);host 模式忽略。 */
111
+ apiKey: string;
112
+ /** 回退链:主路由失败(报错/掐断/网络异常/空输出)后按序降级的备用路由,
113
+ * 条目顺序即优先级。与主路由完全相同的条目自动跳过;provider/model 缺失的条目剔除;
114
+ * 条目 reasoningEffort 非空时覆盖全局档位;空数组(缺省)= 单路由行为不变。 */
115
+ fallbacks?: StaticFallbackEntry[];
116
+ /** 按层静态路由链:层键 l1/l2/l3 各一条完整链(头行必须 provider+model 双显式)。
117
+ * 非空即完整替换该层解析;空/缺省 = 该层跟随全局解析。被运行时层链压过;
118
+ * pin 不废静态层链。 */
119
+ layerRoutes?: Partial<Record<LayerRouteKey, StaticFallbackEntry[]>>;
120
+ /** 运行时层链(effectiveCfg 从设置页 distillLayerChains 注入,层内第一优先级);
121
+ * 非静态 schema——运行时偏好,无部署上限语义。 */
122
+ layerChainsRuntime?: Partial<Record<LayerRouteKey, StaticFallbackEntry[]>>;
123
+ /** 单次蒸馏调用的输出 token 上限(推理模型的 reasoning 与正文共享该预算)。 */
124
+ maxTokens: number;
125
+ /** 蒸馏调用的思考档位;空串不传(跟随模型默认)。 */
126
+ reasoningEffort: string;
127
+ /** 运行时主路由显式档位(distillChain[0].reasoningEffort 经 effectiveCfg 注入);
128
+ * '' = 跟随全局静态 reasoningEffort。 */
129
+ primaryEffort?: string;
130
+ temperature: number;
131
+ /** 单次蒸馏调用的用户 prompt 字符预算(≈token 数,按中文 1 字≈1 token 保守估算)。 */
132
+ maxInputChars: number;
133
+ /** 单次蒸馏调用超时(ms)。 */
134
+ timeoutMs: number;
135
+ /** 分层输出预算运行时覆盖(设置页 distillBudgets 经 effectiveCfg 注入;
136
+ * 0/缺省 = 用内置默认。非静态 schema——预算无部署上限语义)。 */
137
+ budgets?: Partial<{
138
+ extract: number;
139
+ dedup: number;
140
+ l2: number;
141
+ l3: number;
142
+ graph: number;
143
+ }>;
144
+ };
145
+ /** Hall(粗分类属性通道):参与 L1 自动打标与记忆库过滤的 Hall id 列表。
146
+ * 空数组 = 关闭 Hall 功能(不自动打标)。 */
147
+ hall: {
148
+ enabled: string[];
149
+ };
150
+ tokenCost: {
151
+ /** token_cost 明细保留天数;写入时滚动清理更早行。0 = 永久保留。 */
152
+ retentionDays: number;
153
+ };
154
+ /** 是否注册模型可调用的记忆工具。 */
155
+ tools: boolean;
156
+ /** 注册 bench 控制服务(dsh-memory-bench,进程内 rebuild 触发面)。
157
+ * 仅供基准/调试部署,默认关——生产零表面积。 */
158
+ benchControl: boolean;
159
+ }
160
+ export declare const memorySchema: Schema<Schemastery.ObjectS<{
161
+ dataDir: Schema<string, string>;
162
+ family: Schema<"chat" | "work" | "auto", "chat" | "work" | "auto">;
163
+ capture: Schema<Schemastery.ObjectS<{
164
+ enabled: Schema<boolean, boolean>;
165
+ stripCodeBlocks: Schema<boolean, boolean>;
166
+ maxMessageChars: Schema<number, number>;
167
+ }>, Schemastery.ObjectT<{
168
+ enabled: Schema<boolean, boolean>;
169
+ stripCodeBlocks: Schema<boolean, boolean>;
170
+ maxMessageChars: Schema<number, number>;
171
+ }>>;
172
+ extract: Schema<Schemastery.ObjectS<{
173
+ enabled: Schema<boolean, boolean>;
174
+ minMessages: Schema<number, number>;
175
+ idleSeconds: Schema<number, number>;
176
+ backgroundMessages: Schema<number, number>;
177
+ candidatePool: Schema<number, number>;
178
+ }>, Schemastery.ObjectT<{
179
+ enabled: Schema<boolean, boolean>;
180
+ minMessages: Schema<number, number>;
181
+ idleSeconds: Schema<number, number>;
182
+ backgroundMessages: Schema<number, number>;
183
+ candidatePool: Schema<number, number>;
184
+ }>>;
185
+ l2: Schema<Schemastery.ObjectS<{
186
+ enabled: Schema<boolean, boolean>;
187
+ minNewMemories: Schema<number, number>;
188
+ maxScenes: Schema<number, number>;
189
+ sceneContextLimit: Schema<number, number>;
190
+ }>, Schemastery.ObjectT<{
191
+ enabled: Schema<boolean, boolean>;
192
+ minNewMemories: Schema<number, number>;
193
+ maxScenes: Schema<number, number>;
194
+ sceneContextLimit: Schema<number, number>;
195
+ }>>;
196
+ l3: Schema<Schemastery.ObjectS<{
197
+ enabled: Schema<boolean, boolean>;
198
+ interval: Schema<number, number>;
199
+ }>, Schemastery.ObjectT<{
200
+ enabled: Schema<boolean, boolean>;
201
+ interval: Schema<number, number>;
202
+ }>>;
203
+ graph: Schema<Schemastery.ObjectS<{
204
+ enabled: Schema<boolean, boolean>;
205
+ }>, Schemastery.ObjectT<{
206
+ enabled: Schema<boolean, boolean>;
207
+ }>>;
208
+ recall: Schema<Schemastery.ObjectS<{
209
+ enabled: Schema<boolean, boolean>;
210
+ maxResults: Schema<number, number>;
211
+ maxCharsPerMemory: Schema<number, number>;
212
+ maxTotalRecallChars: Schema<number, number>;
213
+ timeoutMs: Schema<number, number>;
214
+ includePersona: Schema<boolean, boolean>;
215
+ includeSceneNav: Schema<boolean, boolean>;
216
+ strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
217
+ scoreThreshold: Schema<number, number>;
218
+ decayHalfLifeDays: Schema<number, number>;
219
+ }>, Schemastery.ObjectT<{
220
+ enabled: Schema<boolean, boolean>;
221
+ maxResults: Schema<number, number>;
222
+ maxCharsPerMemory: Schema<number, number>;
223
+ maxTotalRecallChars: Schema<number, number>;
224
+ timeoutMs: Schema<number, number>;
225
+ includePersona: Schema<boolean, boolean>;
226
+ includeSceneNav: Schema<boolean, boolean>;
227
+ strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
228
+ scoreThreshold: Schema<number, number>;
229
+ decayHalfLifeDays: Schema<number, number>;
230
+ }>>;
231
+ embedding: Schema<Schemastery.ObjectS<{
232
+ enabled: Schema<boolean, boolean>;
233
+ baseUrl: Schema<string, string>;
234
+ apiKey: Schema<string, string>;
235
+ model: Schema<string, string>;
236
+ dimensions: Schema<number, number>;
237
+ maxInputChars: Schema<number, number>;
238
+ timeoutMs: Schema<number, number>;
239
+ allowLocalModels: Schema<boolean, boolean>;
240
+ mirror: Schema<string, string>;
241
+ proxy: Schema<string, string>;
242
+ }>, Schemastery.ObjectT<{
243
+ enabled: Schema<boolean, boolean>;
244
+ baseUrl: Schema<string, string>;
245
+ apiKey: Schema<string, string>;
246
+ model: Schema<string, string>;
247
+ dimensions: Schema<number, number>;
248
+ maxInputChars: Schema<number, number>;
249
+ timeoutMs: Schema<number, number>;
250
+ allowLocalModels: Schema<boolean, boolean>;
251
+ mirror: Schema<string, string>;
252
+ proxy: Schema<string, string>;
253
+ }>>;
254
+ llm: Schema<Schemastery.ObjectS<{
255
+ provider: Schema<string, string>;
256
+ model: Schema<string, string>;
257
+ mode: Schema<"host" | "direct", "host" | "direct">;
258
+ baseURL: Schema<string, string>;
259
+ apiKey: Schema<string, string>;
260
+ fallbacks: Schema<({
261
+ provider?: string | null | undefined;
262
+ model?: string | null | undefined;
263
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
264
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
265
+ provider: Schema<string, string>;
266
+ model: Schema<string, string>;
267
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
268
+ }>[]>;
269
+ layerRoutes: Schema<Schemastery.ObjectS<{
270
+ l1: Schema<({
271
+ provider?: string | null | undefined;
272
+ model?: string | null | undefined;
273
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
274
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
275
+ provider: Schema<string, string>;
276
+ model: Schema<string, string>;
277
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
278
+ }>[]>;
279
+ l2: Schema<({
280
+ provider?: string | null | undefined;
281
+ model?: string | null | undefined;
282
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
283
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
284
+ provider: Schema<string, string>;
285
+ model: Schema<string, string>;
286
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
287
+ }>[]>;
288
+ l3: Schema<({
289
+ provider?: string | null | undefined;
290
+ model?: string | null | undefined;
291
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
292
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
293
+ provider: Schema<string, string>;
294
+ model: Schema<string, string>;
295
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
296
+ }>[]>;
297
+ }>, Schemastery.ObjectT<{
298
+ l1: Schema<({
299
+ provider?: string | null | undefined;
300
+ model?: string | null | undefined;
301
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
302
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
303
+ provider: Schema<string, string>;
304
+ model: Schema<string, string>;
305
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
306
+ }>[]>;
307
+ l2: Schema<({
308
+ provider?: string | null | undefined;
309
+ model?: string | null | undefined;
310
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
311
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
312
+ provider: Schema<string, string>;
313
+ model: Schema<string, string>;
314
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
315
+ }>[]>;
316
+ l3: Schema<({
317
+ provider?: string | null | undefined;
318
+ model?: string | null | undefined;
319
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
320
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
321
+ provider: Schema<string, string>;
322
+ model: Schema<string, string>;
323
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
324
+ }>[]>;
325
+ }>>;
326
+ maxTokens: Schema<number, number>;
327
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
328
+ temperature: Schema<number, number>;
329
+ maxInputChars: Schema<number, number>;
330
+ timeoutMs: Schema<number, number>;
331
+ }>, Schemastery.ObjectT<{
332
+ provider: Schema<string, string>;
333
+ model: Schema<string, string>;
334
+ mode: Schema<"host" | "direct", "host" | "direct">;
335
+ baseURL: Schema<string, string>;
336
+ apiKey: Schema<string, string>;
337
+ fallbacks: Schema<({
338
+ provider?: string | null | undefined;
339
+ model?: string | null | undefined;
340
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
341
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
342
+ provider: Schema<string, string>;
343
+ model: Schema<string, string>;
344
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
345
+ }>[]>;
346
+ layerRoutes: Schema<Schemastery.ObjectS<{
347
+ l1: Schema<({
348
+ provider?: string | null | undefined;
349
+ model?: string | null | undefined;
350
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
351
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
352
+ provider: Schema<string, string>;
353
+ model: Schema<string, string>;
354
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
355
+ }>[]>;
356
+ l2: Schema<({
357
+ provider?: string | null | undefined;
358
+ model?: string | null | undefined;
359
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
360
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
361
+ provider: Schema<string, string>;
362
+ model: Schema<string, string>;
363
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
364
+ }>[]>;
365
+ l3: Schema<({
366
+ provider?: string | null | undefined;
367
+ model?: string | null | undefined;
368
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
369
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
370
+ provider: Schema<string, string>;
371
+ model: Schema<string, string>;
372
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
373
+ }>[]>;
374
+ }>, Schemastery.ObjectT<{
375
+ l1: Schema<({
376
+ provider?: string | null | undefined;
377
+ model?: string | null | undefined;
378
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
379
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
380
+ provider: Schema<string, string>;
381
+ model: Schema<string, string>;
382
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
383
+ }>[]>;
384
+ l2: Schema<({
385
+ provider?: string | null | undefined;
386
+ model?: string | null | undefined;
387
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
388
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
389
+ provider: Schema<string, string>;
390
+ model: Schema<string, string>;
391
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
392
+ }>[]>;
393
+ l3: Schema<({
394
+ provider?: string | null | undefined;
395
+ model?: string | null | undefined;
396
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
397
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
398
+ provider: Schema<string, string>;
399
+ model: Schema<string, string>;
400
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
401
+ }>[]>;
402
+ }>>;
403
+ maxTokens: Schema<number, number>;
404
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
405
+ temperature: Schema<number, number>;
406
+ maxInputChars: Schema<number, number>;
407
+ timeoutMs: Schema<number, number>;
408
+ }>>;
409
+ hall: Schema<Schemastery.ObjectS<{
410
+ enabled: Schema<string[], string[]>;
411
+ }>, Schemastery.ObjectT<{
412
+ enabled: Schema<string[], string[]>;
413
+ }>>;
414
+ tokenCost: Schema<Schemastery.ObjectS<{
415
+ retentionDays: Schema<number, number>;
416
+ }>, Schemastery.ObjectT<{
417
+ retentionDays: Schema<number, number>;
418
+ }>>;
419
+ tools: Schema<boolean, boolean>;
420
+ benchControl: Schema<boolean, boolean>;
421
+ }>, Schemastery.ObjectT<{
422
+ dataDir: Schema<string, string>;
423
+ family: Schema<"chat" | "work" | "auto", "chat" | "work" | "auto">;
424
+ capture: Schema<Schemastery.ObjectS<{
425
+ enabled: Schema<boolean, boolean>;
426
+ stripCodeBlocks: Schema<boolean, boolean>;
427
+ maxMessageChars: Schema<number, number>;
428
+ }>, Schemastery.ObjectT<{
429
+ enabled: Schema<boolean, boolean>;
430
+ stripCodeBlocks: Schema<boolean, boolean>;
431
+ maxMessageChars: Schema<number, number>;
432
+ }>>;
433
+ extract: Schema<Schemastery.ObjectS<{
434
+ enabled: Schema<boolean, boolean>;
435
+ minMessages: Schema<number, number>;
436
+ idleSeconds: Schema<number, number>;
437
+ backgroundMessages: Schema<number, number>;
438
+ candidatePool: Schema<number, number>;
439
+ }>, Schemastery.ObjectT<{
440
+ enabled: Schema<boolean, boolean>;
441
+ minMessages: Schema<number, number>;
442
+ idleSeconds: Schema<number, number>;
443
+ backgroundMessages: Schema<number, number>;
444
+ candidatePool: Schema<number, number>;
445
+ }>>;
446
+ l2: Schema<Schemastery.ObjectS<{
447
+ enabled: Schema<boolean, boolean>;
448
+ minNewMemories: Schema<number, number>;
449
+ maxScenes: Schema<number, number>;
450
+ sceneContextLimit: Schema<number, number>;
451
+ }>, Schemastery.ObjectT<{
452
+ enabled: Schema<boolean, boolean>;
453
+ minNewMemories: Schema<number, number>;
454
+ maxScenes: Schema<number, number>;
455
+ sceneContextLimit: Schema<number, number>;
456
+ }>>;
457
+ l3: Schema<Schemastery.ObjectS<{
458
+ enabled: Schema<boolean, boolean>;
459
+ interval: Schema<number, number>;
460
+ }>, Schemastery.ObjectT<{
461
+ enabled: Schema<boolean, boolean>;
462
+ interval: Schema<number, number>;
463
+ }>>;
464
+ graph: Schema<Schemastery.ObjectS<{
465
+ enabled: Schema<boolean, boolean>;
466
+ }>, Schemastery.ObjectT<{
467
+ enabled: Schema<boolean, boolean>;
468
+ }>>;
469
+ recall: Schema<Schemastery.ObjectS<{
470
+ enabled: Schema<boolean, boolean>;
471
+ maxResults: Schema<number, number>;
472
+ maxCharsPerMemory: Schema<number, number>;
473
+ maxTotalRecallChars: Schema<number, number>;
474
+ timeoutMs: Schema<number, number>;
475
+ includePersona: Schema<boolean, boolean>;
476
+ includeSceneNav: Schema<boolean, boolean>;
477
+ strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
478
+ scoreThreshold: Schema<number, number>;
479
+ decayHalfLifeDays: Schema<number, number>;
480
+ }>, Schemastery.ObjectT<{
481
+ enabled: Schema<boolean, boolean>;
482
+ maxResults: Schema<number, number>;
483
+ maxCharsPerMemory: Schema<number, number>;
484
+ maxTotalRecallChars: Schema<number, number>;
485
+ timeoutMs: Schema<number, number>;
486
+ includePersona: Schema<boolean, boolean>;
487
+ includeSceneNav: Schema<boolean, boolean>;
488
+ strategy: Schema<"hybrid" | "keyword" | "embedding", "hybrid" | "keyword" | "embedding">;
489
+ scoreThreshold: Schema<number, number>;
490
+ decayHalfLifeDays: Schema<number, number>;
491
+ }>>;
492
+ embedding: Schema<Schemastery.ObjectS<{
493
+ enabled: Schema<boolean, boolean>;
494
+ baseUrl: Schema<string, string>;
495
+ apiKey: Schema<string, string>;
496
+ model: Schema<string, string>;
497
+ dimensions: Schema<number, number>;
498
+ maxInputChars: Schema<number, number>;
499
+ timeoutMs: Schema<number, number>;
500
+ allowLocalModels: Schema<boolean, boolean>;
501
+ mirror: Schema<string, string>;
502
+ proxy: Schema<string, string>;
503
+ }>, Schemastery.ObjectT<{
504
+ enabled: Schema<boolean, boolean>;
505
+ baseUrl: Schema<string, string>;
506
+ apiKey: Schema<string, string>;
507
+ model: Schema<string, string>;
508
+ dimensions: Schema<number, number>;
509
+ maxInputChars: Schema<number, number>;
510
+ timeoutMs: Schema<number, number>;
511
+ allowLocalModels: Schema<boolean, boolean>;
512
+ mirror: Schema<string, string>;
513
+ proxy: Schema<string, string>;
514
+ }>>;
515
+ llm: Schema<Schemastery.ObjectS<{
516
+ provider: Schema<string, string>;
517
+ model: Schema<string, string>;
518
+ mode: Schema<"host" | "direct", "host" | "direct">;
519
+ baseURL: Schema<string, string>;
520
+ apiKey: Schema<string, string>;
521
+ fallbacks: Schema<({
522
+ provider?: string | null | undefined;
523
+ model?: string | null | undefined;
524
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
525
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
526
+ provider: Schema<string, string>;
527
+ model: Schema<string, string>;
528
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
529
+ }>[]>;
530
+ layerRoutes: Schema<Schemastery.ObjectS<{
531
+ l1: Schema<({
532
+ provider?: string | null | undefined;
533
+ model?: string | null | undefined;
534
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
535
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
536
+ provider: Schema<string, string>;
537
+ model: Schema<string, string>;
538
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
539
+ }>[]>;
540
+ l2: Schema<({
541
+ provider?: string | null | undefined;
542
+ model?: string | null | undefined;
543
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
544
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
545
+ provider: Schema<string, string>;
546
+ model: Schema<string, string>;
547
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
548
+ }>[]>;
549
+ l3: Schema<({
550
+ provider?: string | null | undefined;
551
+ model?: string | null | undefined;
552
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
553
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
554
+ provider: Schema<string, string>;
555
+ model: Schema<string, string>;
556
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
557
+ }>[]>;
558
+ }>, Schemastery.ObjectT<{
559
+ l1: Schema<({
560
+ provider?: string | null | undefined;
561
+ model?: string | null | undefined;
562
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
563
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
564
+ provider: Schema<string, string>;
565
+ model: Schema<string, string>;
566
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
567
+ }>[]>;
568
+ l2: Schema<({
569
+ provider?: string | null | undefined;
570
+ model?: string | null | undefined;
571
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
572
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
573
+ provider: Schema<string, string>;
574
+ model: Schema<string, string>;
575
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
576
+ }>[]>;
577
+ l3: Schema<({
578
+ provider?: string | null | undefined;
579
+ model?: string | null | undefined;
580
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
581
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
582
+ provider: Schema<string, string>;
583
+ model: Schema<string, string>;
584
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
585
+ }>[]>;
586
+ }>>;
587
+ maxTokens: Schema<number, number>;
588
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
589
+ temperature: Schema<number, number>;
590
+ maxInputChars: Schema<number, number>;
591
+ timeoutMs: Schema<number, number>;
592
+ }>, Schemastery.ObjectT<{
593
+ provider: Schema<string, string>;
594
+ model: Schema<string, string>;
595
+ mode: Schema<"host" | "direct", "host" | "direct">;
596
+ baseURL: Schema<string, string>;
597
+ apiKey: Schema<string, string>;
598
+ fallbacks: Schema<({
599
+ provider?: string | null | undefined;
600
+ model?: string | null | undefined;
601
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
602
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
603
+ provider: Schema<string, string>;
604
+ model: Schema<string, string>;
605
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
606
+ }>[]>;
607
+ layerRoutes: Schema<Schemastery.ObjectS<{
608
+ l1: Schema<({
609
+ provider?: string | null | undefined;
610
+ model?: string | null | undefined;
611
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
612
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
613
+ provider: Schema<string, string>;
614
+ model: Schema<string, string>;
615
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
616
+ }>[]>;
617
+ l2: Schema<({
618
+ provider?: string | null | undefined;
619
+ model?: string | null | undefined;
620
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
621
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
622
+ provider: Schema<string, string>;
623
+ model: Schema<string, string>;
624
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
625
+ }>[]>;
626
+ l3: Schema<({
627
+ provider?: string | null | undefined;
628
+ model?: string | null | undefined;
629
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
630
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
631
+ provider: Schema<string, string>;
632
+ model: Schema<string, string>;
633
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
634
+ }>[]>;
635
+ }>, Schemastery.ObjectT<{
636
+ l1: Schema<({
637
+ provider?: string | null | undefined;
638
+ model?: string | null | undefined;
639
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
640
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
641
+ provider: Schema<string, string>;
642
+ model: Schema<string, string>;
643
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
644
+ }>[]>;
645
+ l2: Schema<({
646
+ provider?: string | null | undefined;
647
+ model?: string | null | undefined;
648
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
649
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
650
+ provider: Schema<string, string>;
651
+ model: Schema<string, string>;
652
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
653
+ }>[]>;
654
+ l3: Schema<({
655
+ provider?: string | null | undefined;
656
+ model?: string | null | undefined;
657
+ reasoningEffort?: "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | null | undefined;
658
+ } & import("@deepseek-ai/cosmokit").Dict)[], Schemastery.ObjectT<{
659
+ provider: Schema<string, string>;
660
+ model: Schema<string, string>;
661
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
662
+ }>[]>;
663
+ }>>;
664
+ maxTokens: Schema<number, number>;
665
+ reasoningEffort: Schema<"" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", "" | "off" | "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max">;
666
+ temperature: Schema<number, number>;
667
+ maxInputChars: Schema<number, number>;
668
+ timeoutMs: Schema<number, number>;
669
+ }>>;
670
+ hall: Schema<Schemastery.ObjectS<{
671
+ enabled: Schema<string[], string[]>;
672
+ }>, Schemastery.ObjectT<{
673
+ enabled: Schema<string[], string[]>;
674
+ }>>;
675
+ tokenCost: Schema<Schemastery.ObjectS<{
676
+ retentionDays: Schema<number, number>;
677
+ }>, Schemastery.ObjectT<{
678
+ retentionDays: Schema<number, number>;
679
+ }>>;
680
+ tools: Schema<boolean, boolean>;
681
+ benchControl: Schema<boolean, boolean>;
682
+ }>>;
683
+ export declare function resolveDataDir(cfg: MemoryConfig): string;