@moxxy/config 0.27.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/LICENSE +21 -0
- package/dist/config-writer.d.ts +30 -0
- package/dist/config-writer.d.ts.map +1 -0
- package/dist/config-writer.js +57 -0
- package/dist/config-writer.js.map +1 -0
- package/dist/define.d.ts +17 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +18 -0
- package/dist/define.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +28 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +210 -0
- package/dist/loader.js.map +1 -0
- package/dist/merge.d.ts +9 -0
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +45 -0
- package/dist/merge.js.map +1 -0
- package/dist/plugin-settings-schema.d.ts +24 -0
- package/dist/plugin-settings-schema.d.ts.map +1 -0
- package/dist/plugin-settings-schema.js +17 -0
- package/dist/plugin-settings-schema.js.map +1 -0
- package/dist/plugin.d.ts +21 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +329 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins-tree-schema.d.ts +444 -0
- package/dist/plugins-tree-schema.d.ts.map +1 -0
- package/dist/plugins-tree-schema.js +93 -0
- package/dist/plugins-tree-schema.js.map +1 -0
- package/dist/schema.d.ts +1200 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +198 -0
- package/dist/schema.js.map +1 -0
- package/dist/user-config.d.ts +77 -0
- package/dist/user-config.d.ts.map +1 -0
- package/dist/user-config.js +265 -0
- package/dist/user-config.js.map +1 -0
- package/package.json +56 -0
- package/src/config-writer.test.ts +52 -0
- package/src/config-writer.ts +88 -0
- package/src/define.ts +19 -0
- package/src/index.ts +64 -0
- package/src/loader.test.ts +122 -0
- package/src/loader.ts +232 -0
- package/src/loader.yaml.test.ts +149 -0
- package/src/merge.test.ts +78 -0
- package/src/merge.ts +44 -0
- package/src/plugin-settings-schema.ts +18 -0
- package/src/plugin.test.ts +310 -0
- package/src/plugin.ts +360 -0
- package/src/plugins-tree-schema.test.ts +25 -0
- package/src/plugins-tree-schema.ts +103 -0
- package/src/schema.ts +218 -0
- package/src/security-config.test.ts +30 -0
- package/src/user-config.test.ts +113 -0
- package/src/user-config.ts +359 -0
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,1200 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pluginSettingsSchema } from './plugin-settings-schema.js';
|
|
3
|
+
export declare const watcherModeSchema: z.ZodEnum<["auto", "manual", "off"]>;
|
|
4
|
+
export declare const permissionsConfigSchema: z.ZodObject<{
|
|
5
|
+
policyPath: z.ZodOptional<z.ZodString>;
|
|
6
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
inputMatches: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
9
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
name: string;
|
|
12
|
+
inputMatches?: Record<string, string> | undefined;
|
|
13
|
+
reason?: string | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
name: string;
|
|
16
|
+
inputMatches?: Record<string, string> | undefined;
|
|
17
|
+
reason?: string | undefined;
|
|
18
|
+
}>, "many">>;
|
|
19
|
+
deny: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
20
|
+
name: z.ZodString;
|
|
21
|
+
inputMatches: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
22
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
name: string;
|
|
25
|
+
inputMatches?: Record<string, string> | undefined;
|
|
26
|
+
reason?: string | undefined;
|
|
27
|
+
}, {
|
|
28
|
+
name: string;
|
|
29
|
+
inputMatches?: Record<string, string> | undefined;
|
|
30
|
+
reason?: string | undefined;
|
|
31
|
+
}>, "many">>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
policyPath?: string | undefined;
|
|
34
|
+
allow?: {
|
|
35
|
+
name: string;
|
|
36
|
+
inputMatches?: Record<string, string> | undefined;
|
|
37
|
+
reason?: string | undefined;
|
|
38
|
+
}[] | undefined;
|
|
39
|
+
deny?: {
|
|
40
|
+
name: string;
|
|
41
|
+
inputMatches?: Record<string, string> | undefined;
|
|
42
|
+
reason?: string | undefined;
|
|
43
|
+
}[] | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
policyPath?: string | undefined;
|
|
46
|
+
allow?: {
|
|
47
|
+
name: string;
|
|
48
|
+
inputMatches?: Record<string, string> | undefined;
|
|
49
|
+
reason?: string | undefined;
|
|
50
|
+
}[] | undefined;
|
|
51
|
+
deny?: {
|
|
52
|
+
name: string;
|
|
53
|
+
inputMatches?: Record<string, string> | undefined;
|
|
54
|
+
reason?: string | undefined;
|
|
55
|
+
}[] | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
export declare const securityConfigSchema: z.ZodObject<{
|
|
58
|
+
/**
|
|
59
|
+
* Master toggle. When omitted or false (the default), `@moxxy/plugin-security`
|
|
60
|
+
* is a no-op even if registered — every tool runs exactly as it does
|
|
61
|
+
* without the plugin. Per-tool `isolation: { ... }` declarations
|
|
62
|
+
* remain as documentation but are not enforced. Optional so a partial
|
|
63
|
+
* `security:` block (e.g. only `isolator`) validates and config_set can
|
|
64
|
+
* write one field at a time; consumers default it to false.
|
|
65
|
+
*/
|
|
66
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Per-tool isolator overrides keyed by tool name. e.g.
|
|
69
|
+
* `{ bash: 'subprocess', memory_save: 'none' }`. Falls back to the
|
|
70
|
+
* default isolator above when a tool isn't listed.
|
|
71
|
+
*/
|
|
72
|
+
perTool: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
73
|
+
/**
|
|
74
|
+
* Per-plugin isolator overrides keyed by plugin name. Applies to
|
|
75
|
+
* every tool the plugin contributes unless overridden in `perTool`.
|
|
76
|
+
*/
|
|
77
|
+
perPlugin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
78
|
+
/**
|
|
79
|
+
* When true, tools without a declared `isolation` field are denied
|
|
80
|
+
* outright (instead of falling through to the default isolator).
|
|
81
|
+
* Useful for hardening once every in-use tool has been audited.
|
|
82
|
+
*/
|
|
83
|
+
requireDeclaration: z.ZodOptional<z.ZodBoolean>;
|
|
84
|
+
/**
|
|
85
|
+
* The requireDeclaration ratchet for THIRD-PARTY plugins only — packages
|
|
86
|
+
* outside the trusted `@moxxy/` scope. Applies when a tool has no
|
|
87
|
+
* `isolation` declaration and the global `requireDeclaration` above did
|
|
88
|
+
* not already deny it:
|
|
89
|
+
* - 'off' — third-party tools are treated like first-party ones.
|
|
90
|
+
* - 'warn' — grace mode (the default while `security.enabled`): the
|
|
91
|
+
* call runs, but a structured warning is logged once per
|
|
92
|
+
* tool per process.
|
|
93
|
+
* - 'enforce' — the call is denied with a reason naming this flag.
|
|
94
|
+
* Tools with no resolvable owning plugin (e.g. runtime-attached MCP
|
|
95
|
+
* tools) are exempt — the npm-scope test is meaningless for them.
|
|
96
|
+
* Consumed by `@moxxy/plugin-security`
|
|
97
|
+
* (`SecurityPluginConfig.thirdPartyRequireDeclaration`).
|
|
98
|
+
*/
|
|
99
|
+
thirdPartyRequireDeclaration: z.ZodOptional<z.ZodEnum<["off", "warn", "enforce"]>>;
|
|
100
|
+
/**
|
|
101
|
+
* Tighten the in-process input cap-check from best-effort to fail-closed.
|
|
102
|
+
* By default the fs/net checks only inspect string values under a recognized
|
|
103
|
+
* key name (`file`, `path`, `url`, …), so a path/URL carried by an
|
|
104
|
+
* unrecognized field (`config`, `manifest`, `webhook`) is not checked. With
|
|
105
|
+
* `strict: true`, any string value that is unambiguously an absolute path or a
|
|
106
|
+
* bare http(s) URL is treated as in-scope-required regardless of key name, so
|
|
107
|
+
* an unrecognized carrier fails closed. Consumed by `@moxxy/plugin-security`
|
|
108
|
+
* (`SecurityPluginConfig.strict`); without this field the loader's schema would
|
|
109
|
+
* silently strip a user's `security.strict: true` and the hardening would be
|
|
110
|
+
* lost. Defaults to false at the consumer.
|
|
111
|
+
*/
|
|
112
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
}, "strip", z.ZodTypeAny, {
|
|
114
|
+
enabled?: boolean | undefined;
|
|
115
|
+
strict?: boolean | undefined;
|
|
116
|
+
perTool?: Record<string, string> | undefined;
|
|
117
|
+
perPlugin?: Record<string, string> | undefined;
|
|
118
|
+
requireDeclaration?: boolean | undefined;
|
|
119
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
120
|
+
}, {
|
|
121
|
+
enabled?: boolean | undefined;
|
|
122
|
+
strict?: boolean | undefined;
|
|
123
|
+
perTool?: Record<string, string> | undefined;
|
|
124
|
+
perPlugin?: Record<string, string> | undefined;
|
|
125
|
+
requireDeclaration?: boolean | undefined;
|
|
126
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
export declare const embeddingsConfigSchema: z.ZodObject<{
|
|
129
|
+
/**
|
|
130
|
+
* 'tfidf' (default, zero deps) | 'openai' (text-embedding-3-*)
|
|
131
|
+
* | 'transformers' (local, @huggingface/transformers) | 'none' (disable).
|
|
132
|
+
* Optional so a partial `embeddings:` block (e.g. only `model`) validates and
|
|
133
|
+
* config_set can write one field at a time; consumers default it to 'tfidf'.
|
|
134
|
+
*/
|
|
135
|
+
provider: z.ZodOptional<z.ZodEnum<["tfidf", "openai", "transformers", "none"]>>;
|
|
136
|
+
model: z.ZodOptional<z.ZodString>;
|
|
137
|
+
dimensions: z.ZodOptional<z.ZodNumber>;
|
|
138
|
+
apiKey: z.ZodOptional<z.ZodString>;
|
|
139
|
+
batchSize: z.ZodOptional<z.ZodNumber>;
|
|
140
|
+
cacheDir: z.ZodOptional<z.ZodString>;
|
|
141
|
+
/** Persist computed embeddings to ~/.moxxy/memory/.embeddings.json. */
|
|
142
|
+
persistIndex: z.ZodOptional<z.ZodBoolean>;
|
|
143
|
+
}, "strip", z.ZodTypeAny, {
|
|
144
|
+
model?: string | undefined;
|
|
145
|
+
provider?: "tfidf" | "openai" | "transformers" | "none" | undefined;
|
|
146
|
+
dimensions?: number | undefined;
|
|
147
|
+
apiKey?: string | undefined;
|
|
148
|
+
batchSize?: number | undefined;
|
|
149
|
+
cacheDir?: string | undefined;
|
|
150
|
+
persistIndex?: boolean | undefined;
|
|
151
|
+
}, {
|
|
152
|
+
model?: string | undefined;
|
|
153
|
+
provider?: "tfidf" | "openai" | "transformers" | "none" | undefined;
|
|
154
|
+
dimensions?: number | undefined;
|
|
155
|
+
apiKey?: string | undefined;
|
|
156
|
+
batchSize?: number | undefined;
|
|
157
|
+
cacheDir?: string | undefined;
|
|
158
|
+
persistIndex?: boolean | undefined;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Turn-boundary elision settings (context-on-demand). Off-by-floor safety:
|
|
162
|
+
* `keepRecentTurns` never drops below 2 and elision is skipped while the
|
|
163
|
+
* context is under `minContextRatioToElide` full.
|
|
164
|
+
*/
|
|
165
|
+
export declare const elisionConfigSchema: z.ZodObject<{
|
|
166
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
167
|
+
keepRecentTurns: z.ZodOptional<z.ZodNumber>;
|
|
168
|
+
minContextRatioToElide: z.ZodOptional<z.ZodNumber>;
|
|
169
|
+
/** Also collapse old user/assistant text turns (not just bulky tool results). */
|
|
170
|
+
elideConversational: z.ZodOptional<z.ZodBoolean>;
|
|
171
|
+
/** Auto-disable conversational elision after this many `recall({seq})` calls. */
|
|
172
|
+
conversationalRecallThreshold: z.ZodOptional<z.ZodNumber>;
|
|
173
|
+
maxRecallBytes: z.ZodOptional<z.ZodNumber>;
|
|
174
|
+
neverElideTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
175
|
+
}, "strip", z.ZodTypeAny, {
|
|
176
|
+
enabled?: boolean | undefined;
|
|
177
|
+
keepRecentTurns?: number | undefined;
|
|
178
|
+
minContextRatioToElide?: number | undefined;
|
|
179
|
+
elideConversational?: boolean | undefined;
|
|
180
|
+
conversationalRecallThreshold?: number | undefined;
|
|
181
|
+
maxRecallBytes?: number | undefined;
|
|
182
|
+
neverElideTools?: string[] | undefined;
|
|
183
|
+
}, {
|
|
184
|
+
enabled?: boolean | undefined;
|
|
185
|
+
keepRecentTurns?: number | undefined;
|
|
186
|
+
minContextRatioToElide?: number | undefined;
|
|
187
|
+
elideConversational?: boolean | undefined;
|
|
188
|
+
conversationalRecallThreshold?: number | undefined;
|
|
189
|
+
maxRecallBytes?: number | undefined;
|
|
190
|
+
neverElideTools?: string[] | undefined;
|
|
191
|
+
}>;
|
|
192
|
+
/** Context-window / token-efficiency settings. */
|
|
193
|
+
export declare const contextConfigSchema: z.ZodObject<{
|
|
194
|
+
/** Master switch for prompt caching. Default true (lossless). */
|
|
195
|
+
caching: z.ZodOptional<z.ZodBoolean>;
|
|
196
|
+
elision: z.ZodOptional<z.ZodObject<{
|
|
197
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
198
|
+
keepRecentTurns: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
minContextRatioToElide: z.ZodOptional<z.ZodNumber>;
|
|
200
|
+
/** Also collapse old user/assistant text turns (not just bulky tool results). */
|
|
201
|
+
elideConversational: z.ZodOptional<z.ZodBoolean>;
|
|
202
|
+
/** Auto-disable conversational elision after this many `recall({seq})` calls. */
|
|
203
|
+
conversationalRecallThreshold: z.ZodOptional<z.ZodNumber>;
|
|
204
|
+
maxRecallBytes: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
neverElideTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
206
|
+
}, "strip", z.ZodTypeAny, {
|
|
207
|
+
enabled?: boolean | undefined;
|
|
208
|
+
keepRecentTurns?: number | undefined;
|
|
209
|
+
minContextRatioToElide?: number | undefined;
|
|
210
|
+
elideConversational?: boolean | undefined;
|
|
211
|
+
conversationalRecallThreshold?: number | undefined;
|
|
212
|
+
maxRecallBytes?: number | undefined;
|
|
213
|
+
neverElideTools?: string[] | undefined;
|
|
214
|
+
}, {
|
|
215
|
+
enabled?: boolean | undefined;
|
|
216
|
+
keepRecentTurns?: number | undefined;
|
|
217
|
+
minContextRatioToElide?: number | undefined;
|
|
218
|
+
elideConversational?: boolean | undefined;
|
|
219
|
+
conversationalRecallThreshold?: number | undefined;
|
|
220
|
+
maxRecallBytes?: number | undefined;
|
|
221
|
+
neverElideTools?: string[] | undefined;
|
|
222
|
+
}>>;
|
|
223
|
+
/** Lazy tool loading: send only core + loaded tool schemas, index the rest. Default false. */
|
|
224
|
+
lazyTools: z.ZodOptional<z.ZodBoolean>;
|
|
225
|
+
/**
|
|
226
|
+
* Reasoning/thinking preview. `true` enables it at the model's default depth;
|
|
227
|
+
* `{ effort }` sets the depth. Honored only by providers/models that support
|
|
228
|
+
* reasoning (Anthropic adaptive thinking, OpenAI/Codex reasoning). Default off.
|
|
229
|
+
*/
|
|
230
|
+
reasoning: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
231
|
+
effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
232
|
+
}, "strip", z.ZodTypeAny, {
|
|
233
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
234
|
+
}, {
|
|
235
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
236
|
+
}>]>>;
|
|
237
|
+
/**
|
|
238
|
+
* Stuck-loop guard tuning. The guard bails a turn early when the model keeps
|
|
239
|
+
* making the same tool call; `maxIterations` is the hard backstop. Raise the
|
|
240
|
+
* thresholds if legitimately-repeated work is being cut short, or set
|
|
241
|
+
* `enabled: false` to disable the guard and rely on `maxIterations` alone.
|
|
242
|
+
*/
|
|
243
|
+
loopGuard: z.ZodOptional<z.ZodObject<{
|
|
244
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
245
|
+
windowSize: z.ZodOptional<z.ZodNumber>;
|
|
246
|
+
repeatThreshold: z.ZodOptional<z.ZodNumber>;
|
|
247
|
+
nearWindowSize: z.ZodOptional<z.ZodNumber>;
|
|
248
|
+
nearThreshold: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
}, "strict", z.ZodTypeAny, {
|
|
250
|
+
enabled?: boolean | undefined;
|
|
251
|
+
windowSize?: number | undefined;
|
|
252
|
+
repeatThreshold?: number | undefined;
|
|
253
|
+
nearWindowSize?: number | undefined;
|
|
254
|
+
nearThreshold?: number | undefined;
|
|
255
|
+
}, {
|
|
256
|
+
enabled?: boolean | undefined;
|
|
257
|
+
windowSize?: number | undefined;
|
|
258
|
+
repeatThreshold?: number | undefined;
|
|
259
|
+
nearWindowSize?: number | undefined;
|
|
260
|
+
nearThreshold?: number | undefined;
|
|
261
|
+
}>>;
|
|
262
|
+
}, "strip", z.ZodTypeAny, {
|
|
263
|
+
caching?: boolean | undefined;
|
|
264
|
+
elision?: {
|
|
265
|
+
enabled?: boolean | undefined;
|
|
266
|
+
keepRecentTurns?: number | undefined;
|
|
267
|
+
minContextRatioToElide?: number | undefined;
|
|
268
|
+
elideConversational?: boolean | undefined;
|
|
269
|
+
conversationalRecallThreshold?: number | undefined;
|
|
270
|
+
maxRecallBytes?: number | undefined;
|
|
271
|
+
neverElideTools?: string[] | undefined;
|
|
272
|
+
} | undefined;
|
|
273
|
+
lazyTools?: boolean | undefined;
|
|
274
|
+
reasoning?: boolean | {
|
|
275
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
276
|
+
} | undefined;
|
|
277
|
+
loopGuard?: {
|
|
278
|
+
enabled?: boolean | undefined;
|
|
279
|
+
windowSize?: number | undefined;
|
|
280
|
+
repeatThreshold?: number | undefined;
|
|
281
|
+
nearWindowSize?: number | undefined;
|
|
282
|
+
nearThreshold?: number | undefined;
|
|
283
|
+
} | undefined;
|
|
284
|
+
}, {
|
|
285
|
+
caching?: boolean | undefined;
|
|
286
|
+
elision?: {
|
|
287
|
+
enabled?: boolean | undefined;
|
|
288
|
+
keepRecentTurns?: number | undefined;
|
|
289
|
+
minContextRatioToElide?: number | undefined;
|
|
290
|
+
elideConversational?: boolean | undefined;
|
|
291
|
+
conversationalRecallThreshold?: number | undefined;
|
|
292
|
+
maxRecallBytes?: number | undefined;
|
|
293
|
+
neverElideTools?: string[] | undefined;
|
|
294
|
+
} | undefined;
|
|
295
|
+
lazyTools?: boolean | undefined;
|
|
296
|
+
reasoning?: boolean | {
|
|
297
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
298
|
+
} | undefined;
|
|
299
|
+
loopGuard?: {
|
|
300
|
+
enabled?: boolean | undefined;
|
|
301
|
+
windowSize?: number | undefined;
|
|
302
|
+
repeatThreshold?: number | undefined;
|
|
303
|
+
nearWindowSize?: number | undefined;
|
|
304
|
+
nearThreshold?: number | undefined;
|
|
305
|
+
} | undefined;
|
|
306
|
+
}>;
|
|
307
|
+
export declare const moxxyConfigSchema: z.ZodObject<{
|
|
308
|
+
/**
|
|
309
|
+
* The unified plugins manifest — the single source of truth for what's
|
|
310
|
+
* installed/enabled (`plugins.packages`) and the active default per category
|
|
311
|
+
* (`plugins.<category>.default`). Replaces the legacy flat
|
|
312
|
+
* provider/mode/compactor/workflowExecutor keys, the old `plugins:` map, and
|
|
313
|
+
* `preferences.json`.
|
|
314
|
+
*/
|
|
315
|
+
plugins: z.ZodOptional<z.ZodObject<{
|
|
316
|
+
packages: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
317
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
318
|
+
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
319
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
320
|
+
}, "strict", z.ZodTypeAny, {
|
|
321
|
+
enabled?: boolean | undefined;
|
|
322
|
+
options?: Record<string, unknown> | undefined;
|
|
323
|
+
exclude?: string[] | undefined;
|
|
324
|
+
}, {
|
|
325
|
+
enabled?: boolean | undefined;
|
|
326
|
+
options?: Record<string, unknown> | undefined;
|
|
327
|
+
exclude?: string[] | undefined;
|
|
328
|
+
}>>>;
|
|
329
|
+
provider: z.ZodOptional<z.ZodObject<{
|
|
330
|
+
default: z.ZodOptional<z.ZodString>;
|
|
331
|
+
fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
332
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
333
|
+
model: z.ZodOptional<z.ZodString>;
|
|
334
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
335
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
336
|
+
}, "strict", z.ZodTypeAny, {
|
|
337
|
+
enabled?: boolean | undefined;
|
|
338
|
+
model?: string | undefined;
|
|
339
|
+
config?: Record<string, unknown> | undefined;
|
|
340
|
+
}, {
|
|
341
|
+
enabled?: boolean | undefined;
|
|
342
|
+
model?: string | undefined;
|
|
343
|
+
config?: Record<string, unknown> | undefined;
|
|
344
|
+
}>>>;
|
|
345
|
+
}, "strict", z.ZodTypeAny, {
|
|
346
|
+
default?: string | undefined;
|
|
347
|
+
fallbacks?: string[] | undefined;
|
|
348
|
+
items?: Record<string, {
|
|
349
|
+
enabled?: boolean | undefined;
|
|
350
|
+
model?: string | undefined;
|
|
351
|
+
config?: Record<string, unknown> | undefined;
|
|
352
|
+
}> | undefined;
|
|
353
|
+
}, {
|
|
354
|
+
default?: string | undefined;
|
|
355
|
+
fallbacks?: string[] | undefined;
|
|
356
|
+
items?: Record<string, {
|
|
357
|
+
enabled?: boolean | undefined;
|
|
358
|
+
model?: string | undefined;
|
|
359
|
+
config?: Record<string, unknown> | undefined;
|
|
360
|
+
}> | undefined;
|
|
361
|
+
}>>;
|
|
362
|
+
mode: z.ZodOptional<z.ZodObject<{
|
|
363
|
+
default: z.ZodOptional<z.ZodString>;
|
|
364
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
365
|
+
}, "strict", z.ZodTypeAny, {
|
|
366
|
+
default?: string | undefined;
|
|
367
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
368
|
+
}, {
|
|
369
|
+
default?: string | undefined;
|
|
370
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
371
|
+
}>>;
|
|
372
|
+
compactor: z.ZodOptional<z.ZodObject<{
|
|
373
|
+
default: z.ZodOptional<z.ZodString>;
|
|
374
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
375
|
+
}, "strict", z.ZodTypeAny, {
|
|
376
|
+
default?: string | undefined;
|
|
377
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
378
|
+
}, {
|
|
379
|
+
default?: string | undefined;
|
|
380
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
381
|
+
}>>;
|
|
382
|
+
cacheStrategy: z.ZodOptional<z.ZodObject<{
|
|
383
|
+
default: z.ZodOptional<z.ZodString>;
|
|
384
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
385
|
+
}, "strict", z.ZodTypeAny, {
|
|
386
|
+
default?: string | undefined;
|
|
387
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
388
|
+
}, {
|
|
389
|
+
default?: string | undefined;
|
|
390
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
391
|
+
}>>;
|
|
392
|
+
workflowExecutor: z.ZodOptional<z.ZodObject<{
|
|
393
|
+
default: z.ZodOptional<z.ZodString>;
|
|
394
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
395
|
+
}, "strict", z.ZodTypeAny, {
|
|
396
|
+
default?: string | undefined;
|
|
397
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
398
|
+
}, {
|
|
399
|
+
default?: string | undefined;
|
|
400
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
401
|
+
}>>;
|
|
402
|
+
transcriber: z.ZodOptional<z.ZodObject<{
|
|
403
|
+
default: z.ZodOptional<z.ZodString>;
|
|
404
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
405
|
+
}, "strict", z.ZodTypeAny, {
|
|
406
|
+
default?: string | undefined;
|
|
407
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
408
|
+
}, {
|
|
409
|
+
default?: string | undefined;
|
|
410
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
411
|
+
}>>;
|
|
412
|
+
synthesizer: z.ZodOptional<z.ZodObject<{
|
|
413
|
+
default: z.ZodOptional<z.ZodString>;
|
|
414
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
415
|
+
}, "strict", z.ZodTypeAny, {
|
|
416
|
+
default?: string | undefined;
|
|
417
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
418
|
+
}, {
|
|
419
|
+
default?: string | undefined;
|
|
420
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
421
|
+
}>>;
|
|
422
|
+
embedder: z.ZodOptional<z.ZodObject<{
|
|
423
|
+
default: z.ZodOptional<z.ZodString>;
|
|
424
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
425
|
+
}, "strict", z.ZodTypeAny, {
|
|
426
|
+
default?: string | undefined;
|
|
427
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
428
|
+
}, {
|
|
429
|
+
default?: string | undefined;
|
|
430
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
431
|
+
}>>;
|
|
432
|
+
isolator: z.ZodOptional<z.ZodObject<{
|
|
433
|
+
default: z.ZodOptional<z.ZodString>;
|
|
434
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
435
|
+
}, "strict", z.ZodTypeAny, {
|
|
436
|
+
default?: string | undefined;
|
|
437
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
438
|
+
}, {
|
|
439
|
+
default?: string | undefined;
|
|
440
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
441
|
+
}>>;
|
|
442
|
+
viewRenderer: z.ZodOptional<z.ZodObject<{
|
|
443
|
+
default: z.ZodOptional<z.ZodString>;
|
|
444
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
445
|
+
}, "strict", z.ZodTypeAny, {
|
|
446
|
+
default?: string | undefined;
|
|
447
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
448
|
+
}, {
|
|
449
|
+
default?: string | undefined;
|
|
450
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
451
|
+
}>>;
|
|
452
|
+
tunnelProvider: z.ZodOptional<z.ZodObject<{
|
|
453
|
+
default: z.ZodOptional<z.ZodString>;
|
|
454
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
455
|
+
}, "strict", z.ZodTypeAny, {
|
|
456
|
+
default?: string | undefined;
|
|
457
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
458
|
+
}, {
|
|
459
|
+
default?: string | undefined;
|
|
460
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
461
|
+
}>>;
|
|
462
|
+
eventStore: z.ZodOptional<z.ZodObject<{
|
|
463
|
+
default: z.ZodOptional<z.ZodString>;
|
|
464
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
465
|
+
}, "strict", z.ZodTypeAny, {
|
|
466
|
+
default?: string | undefined;
|
|
467
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
468
|
+
}, {
|
|
469
|
+
default?: string | undefined;
|
|
470
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
471
|
+
}>>;
|
|
472
|
+
reflector: z.ZodOptional<z.ZodObject<{
|
|
473
|
+
default: z.ZodOptional<z.ZodString>;
|
|
474
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
475
|
+
}, "strict", z.ZodTypeAny, {
|
|
476
|
+
default?: string | undefined;
|
|
477
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
478
|
+
}, {
|
|
479
|
+
default?: string | undefined;
|
|
480
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
481
|
+
}>>;
|
|
482
|
+
channel: z.ZodOptional<z.ZodObject<{
|
|
483
|
+
default: z.ZodOptional<z.ZodString>;
|
|
484
|
+
items: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
485
|
+
}, "strict", z.ZodTypeAny, {
|
|
486
|
+
default?: string | undefined;
|
|
487
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
488
|
+
}, {
|
|
489
|
+
default?: string | undefined;
|
|
490
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
491
|
+
}>>;
|
|
492
|
+
}, "strict", z.ZodTypeAny, {
|
|
493
|
+
packages?: Record<string, {
|
|
494
|
+
enabled?: boolean | undefined;
|
|
495
|
+
options?: Record<string, unknown> | undefined;
|
|
496
|
+
exclude?: string[] | undefined;
|
|
497
|
+
}> | undefined;
|
|
498
|
+
provider?: {
|
|
499
|
+
default?: string | undefined;
|
|
500
|
+
fallbacks?: string[] | undefined;
|
|
501
|
+
items?: Record<string, {
|
|
502
|
+
enabled?: boolean | undefined;
|
|
503
|
+
model?: string | undefined;
|
|
504
|
+
config?: Record<string, unknown> | undefined;
|
|
505
|
+
}> | undefined;
|
|
506
|
+
} | undefined;
|
|
507
|
+
mode?: {
|
|
508
|
+
default?: string | undefined;
|
|
509
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
510
|
+
} | undefined;
|
|
511
|
+
compactor?: {
|
|
512
|
+
default?: string | undefined;
|
|
513
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
514
|
+
} | undefined;
|
|
515
|
+
cacheStrategy?: {
|
|
516
|
+
default?: string | undefined;
|
|
517
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
518
|
+
} | undefined;
|
|
519
|
+
workflowExecutor?: {
|
|
520
|
+
default?: string | undefined;
|
|
521
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
522
|
+
} | undefined;
|
|
523
|
+
transcriber?: {
|
|
524
|
+
default?: string | undefined;
|
|
525
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
526
|
+
} | undefined;
|
|
527
|
+
synthesizer?: {
|
|
528
|
+
default?: string | undefined;
|
|
529
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
530
|
+
} | undefined;
|
|
531
|
+
embedder?: {
|
|
532
|
+
default?: string | undefined;
|
|
533
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
534
|
+
} | undefined;
|
|
535
|
+
isolator?: {
|
|
536
|
+
default?: string | undefined;
|
|
537
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
538
|
+
} | undefined;
|
|
539
|
+
viewRenderer?: {
|
|
540
|
+
default?: string | undefined;
|
|
541
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
542
|
+
} | undefined;
|
|
543
|
+
tunnelProvider?: {
|
|
544
|
+
default?: string | undefined;
|
|
545
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
546
|
+
} | undefined;
|
|
547
|
+
eventStore?: {
|
|
548
|
+
default?: string | undefined;
|
|
549
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
550
|
+
} | undefined;
|
|
551
|
+
reflector?: {
|
|
552
|
+
default?: string | undefined;
|
|
553
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
554
|
+
} | undefined;
|
|
555
|
+
channel?: {
|
|
556
|
+
default?: string | undefined;
|
|
557
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
558
|
+
} | undefined;
|
|
559
|
+
}, {
|
|
560
|
+
packages?: Record<string, {
|
|
561
|
+
enabled?: boolean | undefined;
|
|
562
|
+
options?: Record<string, unknown> | undefined;
|
|
563
|
+
exclude?: string[] | undefined;
|
|
564
|
+
}> | undefined;
|
|
565
|
+
provider?: {
|
|
566
|
+
default?: string | undefined;
|
|
567
|
+
fallbacks?: string[] | undefined;
|
|
568
|
+
items?: Record<string, {
|
|
569
|
+
enabled?: boolean | undefined;
|
|
570
|
+
model?: string | undefined;
|
|
571
|
+
config?: Record<string, unknown> | undefined;
|
|
572
|
+
}> | undefined;
|
|
573
|
+
} | undefined;
|
|
574
|
+
mode?: {
|
|
575
|
+
default?: string | undefined;
|
|
576
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
577
|
+
} | undefined;
|
|
578
|
+
compactor?: {
|
|
579
|
+
default?: string | undefined;
|
|
580
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
581
|
+
} | undefined;
|
|
582
|
+
cacheStrategy?: {
|
|
583
|
+
default?: string | undefined;
|
|
584
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
585
|
+
} | undefined;
|
|
586
|
+
workflowExecutor?: {
|
|
587
|
+
default?: string | undefined;
|
|
588
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
589
|
+
} | undefined;
|
|
590
|
+
transcriber?: {
|
|
591
|
+
default?: string | undefined;
|
|
592
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
593
|
+
} | undefined;
|
|
594
|
+
synthesizer?: {
|
|
595
|
+
default?: string | undefined;
|
|
596
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
597
|
+
} | undefined;
|
|
598
|
+
embedder?: {
|
|
599
|
+
default?: string | undefined;
|
|
600
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
601
|
+
} | undefined;
|
|
602
|
+
isolator?: {
|
|
603
|
+
default?: string | undefined;
|
|
604
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
605
|
+
} | undefined;
|
|
606
|
+
viewRenderer?: {
|
|
607
|
+
default?: string | undefined;
|
|
608
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
609
|
+
} | undefined;
|
|
610
|
+
tunnelProvider?: {
|
|
611
|
+
default?: string | undefined;
|
|
612
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
613
|
+
} | undefined;
|
|
614
|
+
eventStore?: {
|
|
615
|
+
default?: string | undefined;
|
|
616
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
617
|
+
} | undefined;
|
|
618
|
+
reflector?: {
|
|
619
|
+
default?: string | undefined;
|
|
620
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
621
|
+
} | undefined;
|
|
622
|
+
channel?: {
|
|
623
|
+
default?: string | undefined;
|
|
624
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
625
|
+
} | undefined;
|
|
626
|
+
}>>;
|
|
627
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
628
|
+
/** Master switch for prompt caching. Default true (lossless). */
|
|
629
|
+
caching: z.ZodOptional<z.ZodBoolean>;
|
|
630
|
+
elision: z.ZodOptional<z.ZodObject<{
|
|
631
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
632
|
+
keepRecentTurns: z.ZodOptional<z.ZodNumber>;
|
|
633
|
+
minContextRatioToElide: z.ZodOptional<z.ZodNumber>;
|
|
634
|
+
/** Also collapse old user/assistant text turns (not just bulky tool results). */
|
|
635
|
+
elideConversational: z.ZodOptional<z.ZodBoolean>;
|
|
636
|
+
/** Auto-disable conversational elision after this many `recall({seq})` calls. */
|
|
637
|
+
conversationalRecallThreshold: z.ZodOptional<z.ZodNumber>;
|
|
638
|
+
maxRecallBytes: z.ZodOptional<z.ZodNumber>;
|
|
639
|
+
neverElideTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
640
|
+
}, "strip", z.ZodTypeAny, {
|
|
641
|
+
enabled?: boolean | undefined;
|
|
642
|
+
keepRecentTurns?: number | undefined;
|
|
643
|
+
minContextRatioToElide?: number | undefined;
|
|
644
|
+
elideConversational?: boolean | undefined;
|
|
645
|
+
conversationalRecallThreshold?: number | undefined;
|
|
646
|
+
maxRecallBytes?: number | undefined;
|
|
647
|
+
neverElideTools?: string[] | undefined;
|
|
648
|
+
}, {
|
|
649
|
+
enabled?: boolean | undefined;
|
|
650
|
+
keepRecentTurns?: number | undefined;
|
|
651
|
+
minContextRatioToElide?: number | undefined;
|
|
652
|
+
elideConversational?: boolean | undefined;
|
|
653
|
+
conversationalRecallThreshold?: number | undefined;
|
|
654
|
+
maxRecallBytes?: number | undefined;
|
|
655
|
+
neverElideTools?: string[] | undefined;
|
|
656
|
+
}>>;
|
|
657
|
+
/** Lazy tool loading: send only core + loaded tool schemas, index the rest. Default false. */
|
|
658
|
+
lazyTools: z.ZodOptional<z.ZodBoolean>;
|
|
659
|
+
/**
|
|
660
|
+
* Reasoning/thinking preview. `true` enables it at the model's default depth;
|
|
661
|
+
* `{ effort }` sets the depth. Honored only by providers/models that support
|
|
662
|
+
* reasoning (Anthropic adaptive thinking, OpenAI/Codex reasoning). Default off.
|
|
663
|
+
*/
|
|
664
|
+
reasoning: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
665
|
+
effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
666
|
+
}, "strip", z.ZodTypeAny, {
|
|
667
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
668
|
+
}, {
|
|
669
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
670
|
+
}>]>>;
|
|
671
|
+
/**
|
|
672
|
+
* Stuck-loop guard tuning. The guard bails a turn early when the model keeps
|
|
673
|
+
* making the same tool call; `maxIterations` is the hard backstop. Raise the
|
|
674
|
+
* thresholds if legitimately-repeated work is being cut short, or set
|
|
675
|
+
* `enabled: false` to disable the guard and rely on `maxIterations` alone.
|
|
676
|
+
*/
|
|
677
|
+
loopGuard: z.ZodOptional<z.ZodObject<{
|
|
678
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
679
|
+
windowSize: z.ZodOptional<z.ZodNumber>;
|
|
680
|
+
repeatThreshold: z.ZodOptional<z.ZodNumber>;
|
|
681
|
+
nearWindowSize: z.ZodOptional<z.ZodNumber>;
|
|
682
|
+
nearThreshold: z.ZodOptional<z.ZodNumber>;
|
|
683
|
+
}, "strict", z.ZodTypeAny, {
|
|
684
|
+
enabled?: boolean | undefined;
|
|
685
|
+
windowSize?: number | undefined;
|
|
686
|
+
repeatThreshold?: number | undefined;
|
|
687
|
+
nearWindowSize?: number | undefined;
|
|
688
|
+
nearThreshold?: number | undefined;
|
|
689
|
+
}, {
|
|
690
|
+
enabled?: boolean | undefined;
|
|
691
|
+
windowSize?: number | undefined;
|
|
692
|
+
repeatThreshold?: number | undefined;
|
|
693
|
+
nearWindowSize?: number | undefined;
|
|
694
|
+
nearThreshold?: number | undefined;
|
|
695
|
+
}>>;
|
|
696
|
+
}, "strip", z.ZodTypeAny, {
|
|
697
|
+
caching?: boolean | undefined;
|
|
698
|
+
elision?: {
|
|
699
|
+
enabled?: boolean | undefined;
|
|
700
|
+
keepRecentTurns?: number | undefined;
|
|
701
|
+
minContextRatioToElide?: number | undefined;
|
|
702
|
+
elideConversational?: boolean | undefined;
|
|
703
|
+
conversationalRecallThreshold?: number | undefined;
|
|
704
|
+
maxRecallBytes?: number | undefined;
|
|
705
|
+
neverElideTools?: string[] | undefined;
|
|
706
|
+
} | undefined;
|
|
707
|
+
lazyTools?: boolean | undefined;
|
|
708
|
+
reasoning?: boolean | {
|
|
709
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
710
|
+
} | undefined;
|
|
711
|
+
loopGuard?: {
|
|
712
|
+
enabled?: boolean | undefined;
|
|
713
|
+
windowSize?: number | undefined;
|
|
714
|
+
repeatThreshold?: number | undefined;
|
|
715
|
+
nearWindowSize?: number | undefined;
|
|
716
|
+
nearThreshold?: number | undefined;
|
|
717
|
+
} | undefined;
|
|
718
|
+
}, {
|
|
719
|
+
caching?: boolean | undefined;
|
|
720
|
+
elision?: {
|
|
721
|
+
enabled?: boolean | undefined;
|
|
722
|
+
keepRecentTurns?: number | undefined;
|
|
723
|
+
minContextRatioToElide?: number | undefined;
|
|
724
|
+
elideConversational?: boolean | undefined;
|
|
725
|
+
conversationalRecallThreshold?: number | undefined;
|
|
726
|
+
maxRecallBytes?: number | undefined;
|
|
727
|
+
neverElideTools?: string[] | undefined;
|
|
728
|
+
} | undefined;
|
|
729
|
+
lazyTools?: boolean | undefined;
|
|
730
|
+
reasoning?: boolean | {
|
|
731
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
732
|
+
} | undefined;
|
|
733
|
+
loopGuard?: {
|
|
734
|
+
enabled?: boolean | undefined;
|
|
735
|
+
windowSize?: number | undefined;
|
|
736
|
+
repeatThreshold?: number | undefined;
|
|
737
|
+
nearWindowSize?: number | undefined;
|
|
738
|
+
nearThreshold?: number | undefined;
|
|
739
|
+
} | undefined;
|
|
740
|
+
}>>;
|
|
741
|
+
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
742
|
+
maxIterations: z.ZodOptional<z.ZodNumber>;
|
|
743
|
+
hookTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
744
|
+
watcher: z.ZodOptional<z.ZodEnum<["auto", "manual", "off"]>>;
|
|
745
|
+
skills: z.ZodOptional<z.ZodObject<{
|
|
746
|
+
projectDir: z.ZodOptional<z.ZodString>;
|
|
747
|
+
userDir: z.ZodOptional<z.ZodString>;
|
|
748
|
+
extraDirs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
749
|
+
}, "strip", z.ZodTypeAny, {
|
|
750
|
+
projectDir?: string | undefined;
|
|
751
|
+
userDir?: string | undefined;
|
|
752
|
+
extraDirs?: string[] | undefined;
|
|
753
|
+
}, {
|
|
754
|
+
projectDir?: string | undefined;
|
|
755
|
+
userDir?: string | undefined;
|
|
756
|
+
extraDirs?: string[] | undefined;
|
|
757
|
+
}>>;
|
|
758
|
+
security: z.ZodOptional<z.ZodObject<{
|
|
759
|
+
/**
|
|
760
|
+
* Master toggle. When omitted or false (the default), `@moxxy/plugin-security`
|
|
761
|
+
* is a no-op even if registered — every tool runs exactly as it does
|
|
762
|
+
* without the plugin. Per-tool `isolation: { ... }` declarations
|
|
763
|
+
* remain as documentation but are not enforced. Optional so a partial
|
|
764
|
+
* `security:` block (e.g. only `isolator`) validates and config_set can
|
|
765
|
+
* write one field at a time; consumers default it to false.
|
|
766
|
+
*/
|
|
767
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
768
|
+
/**
|
|
769
|
+
* Per-tool isolator overrides keyed by tool name. e.g.
|
|
770
|
+
* `{ bash: 'subprocess', memory_save: 'none' }`. Falls back to the
|
|
771
|
+
* default isolator above when a tool isn't listed.
|
|
772
|
+
*/
|
|
773
|
+
perTool: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
774
|
+
/**
|
|
775
|
+
* Per-plugin isolator overrides keyed by plugin name. Applies to
|
|
776
|
+
* every tool the plugin contributes unless overridden in `perTool`.
|
|
777
|
+
*/
|
|
778
|
+
perPlugin: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
779
|
+
/**
|
|
780
|
+
* When true, tools without a declared `isolation` field are denied
|
|
781
|
+
* outright (instead of falling through to the default isolator).
|
|
782
|
+
* Useful for hardening once every in-use tool has been audited.
|
|
783
|
+
*/
|
|
784
|
+
requireDeclaration: z.ZodOptional<z.ZodBoolean>;
|
|
785
|
+
/**
|
|
786
|
+
* The requireDeclaration ratchet for THIRD-PARTY plugins only — packages
|
|
787
|
+
* outside the trusted `@moxxy/` scope. Applies when a tool has no
|
|
788
|
+
* `isolation` declaration and the global `requireDeclaration` above did
|
|
789
|
+
* not already deny it:
|
|
790
|
+
* - 'off' — third-party tools are treated like first-party ones.
|
|
791
|
+
* - 'warn' — grace mode (the default while `security.enabled`): the
|
|
792
|
+
* call runs, but a structured warning is logged once per
|
|
793
|
+
* tool per process.
|
|
794
|
+
* - 'enforce' — the call is denied with a reason naming this flag.
|
|
795
|
+
* Tools with no resolvable owning plugin (e.g. runtime-attached MCP
|
|
796
|
+
* tools) are exempt — the npm-scope test is meaningless for them.
|
|
797
|
+
* Consumed by `@moxxy/plugin-security`
|
|
798
|
+
* (`SecurityPluginConfig.thirdPartyRequireDeclaration`).
|
|
799
|
+
*/
|
|
800
|
+
thirdPartyRequireDeclaration: z.ZodOptional<z.ZodEnum<["off", "warn", "enforce"]>>;
|
|
801
|
+
/**
|
|
802
|
+
* Tighten the in-process input cap-check from best-effort to fail-closed.
|
|
803
|
+
* By default the fs/net checks only inspect string values under a recognized
|
|
804
|
+
* key name (`file`, `path`, `url`, …), so a path/URL carried by an
|
|
805
|
+
* unrecognized field (`config`, `manifest`, `webhook`) is not checked. With
|
|
806
|
+
* `strict: true`, any string value that is unambiguously an absolute path or a
|
|
807
|
+
* bare http(s) URL is treated as in-scope-required regardless of key name, so
|
|
808
|
+
* an unrecognized carrier fails closed. Consumed by `@moxxy/plugin-security`
|
|
809
|
+
* (`SecurityPluginConfig.strict`); without this field the loader's schema would
|
|
810
|
+
* silently strip a user's `security.strict: true` and the hardening would be
|
|
811
|
+
* lost. Defaults to false at the consumer.
|
|
812
|
+
*/
|
|
813
|
+
strict: z.ZodOptional<z.ZodBoolean>;
|
|
814
|
+
}, "strip", z.ZodTypeAny, {
|
|
815
|
+
enabled?: boolean | undefined;
|
|
816
|
+
strict?: boolean | undefined;
|
|
817
|
+
perTool?: Record<string, string> | undefined;
|
|
818
|
+
perPlugin?: Record<string, string> | undefined;
|
|
819
|
+
requireDeclaration?: boolean | undefined;
|
|
820
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
821
|
+
}, {
|
|
822
|
+
enabled?: boolean | undefined;
|
|
823
|
+
strict?: boolean | undefined;
|
|
824
|
+
perTool?: Record<string, string> | undefined;
|
|
825
|
+
perPlugin?: Record<string, string> | undefined;
|
|
826
|
+
requireDeclaration?: boolean | undefined;
|
|
827
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
828
|
+
}>>;
|
|
829
|
+
channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
830
|
+
permissions: z.ZodOptional<z.ZodObject<{
|
|
831
|
+
policyPath: z.ZodOptional<z.ZodString>;
|
|
832
|
+
allow: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
833
|
+
name: z.ZodString;
|
|
834
|
+
inputMatches: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
835
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
836
|
+
}, "strip", z.ZodTypeAny, {
|
|
837
|
+
name: string;
|
|
838
|
+
inputMatches?: Record<string, string> | undefined;
|
|
839
|
+
reason?: string | undefined;
|
|
840
|
+
}, {
|
|
841
|
+
name: string;
|
|
842
|
+
inputMatches?: Record<string, string> | undefined;
|
|
843
|
+
reason?: string | undefined;
|
|
844
|
+
}>, "many">>;
|
|
845
|
+
deny: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
846
|
+
name: z.ZodString;
|
|
847
|
+
inputMatches: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
848
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
849
|
+
}, "strip", z.ZodTypeAny, {
|
|
850
|
+
name: string;
|
|
851
|
+
inputMatches?: Record<string, string> | undefined;
|
|
852
|
+
reason?: string | undefined;
|
|
853
|
+
}, {
|
|
854
|
+
name: string;
|
|
855
|
+
inputMatches?: Record<string, string> | undefined;
|
|
856
|
+
reason?: string | undefined;
|
|
857
|
+
}>, "many">>;
|
|
858
|
+
}, "strip", z.ZodTypeAny, {
|
|
859
|
+
policyPath?: string | undefined;
|
|
860
|
+
allow?: {
|
|
861
|
+
name: string;
|
|
862
|
+
inputMatches?: Record<string, string> | undefined;
|
|
863
|
+
reason?: string | undefined;
|
|
864
|
+
}[] | undefined;
|
|
865
|
+
deny?: {
|
|
866
|
+
name: string;
|
|
867
|
+
inputMatches?: Record<string, string> | undefined;
|
|
868
|
+
reason?: string | undefined;
|
|
869
|
+
}[] | undefined;
|
|
870
|
+
}, {
|
|
871
|
+
policyPath?: string | undefined;
|
|
872
|
+
allow?: {
|
|
873
|
+
name: string;
|
|
874
|
+
inputMatches?: Record<string, string> | undefined;
|
|
875
|
+
reason?: string | undefined;
|
|
876
|
+
}[] | undefined;
|
|
877
|
+
deny?: {
|
|
878
|
+
name: string;
|
|
879
|
+
inputMatches?: Record<string, string> | undefined;
|
|
880
|
+
reason?: string | undefined;
|
|
881
|
+
}[] | undefined;
|
|
882
|
+
}>>;
|
|
883
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
884
|
+
/** TUI presentation preferences (read at TUI boot; edited via /settings). */
|
|
885
|
+
tui: z.ZodOptional<z.ZodObject<{
|
|
886
|
+
/** `mono` drops color like NO_COLOR; `default` is the standard palette. */
|
|
887
|
+
theme: z.ZodOptional<z.ZodEnum<["default", "mono"]>>;
|
|
888
|
+
/** Hide the footer key-hint row when false. */
|
|
889
|
+
hints: z.ZodOptional<z.ZodBoolean>;
|
|
890
|
+
/**
|
|
891
|
+
* Ctrl+<letter> overrides for the input-editor command hotkeys. Values
|
|
892
|
+
* are single letters; unknown/conflicting letters are ignored at boot.
|
|
893
|
+
*/
|
|
894
|
+
keys: z.ZodOptional<z.ZodObject<{
|
|
895
|
+
forceSend: z.ZodOptional<z.ZodString>;
|
|
896
|
+
dropQueued: z.ZodOptional<z.ZodString>;
|
|
897
|
+
toggleTools: z.ZodOptional<z.ZodString>;
|
|
898
|
+
}, "strict", z.ZodTypeAny, {
|
|
899
|
+
forceSend?: string | undefined;
|
|
900
|
+
dropQueued?: string | undefined;
|
|
901
|
+
toggleTools?: string | undefined;
|
|
902
|
+
}, {
|
|
903
|
+
forceSend?: string | undefined;
|
|
904
|
+
dropQueued?: string | undefined;
|
|
905
|
+
toggleTools?: string | undefined;
|
|
906
|
+
}>>;
|
|
907
|
+
}, "strict", z.ZodTypeAny, {
|
|
908
|
+
keys?: {
|
|
909
|
+
forceSend?: string | undefined;
|
|
910
|
+
dropQueued?: string | undefined;
|
|
911
|
+
toggleTools?: string | undefined;
|
|
912
|
+
} | undefined;
|
|
913
|
+
theme?: "default" | "mono" | undefined;
|
|
914
|
+
hints?: boolean | undefined;
|
|
915
|
+
}, {
|
|
916
|
+
keys?: {
|
|
917
|
+
forceSend?: string | undefined;
|
|
918
|
+
dropQueued?: string | undefined;
|
|
919
|
+
toggleTools?: string | undefined;
|
|
920
|
+
} | undefined;
|
|
921
|
+
theme?: "default" | "mono" | undefined;
|
|
922
|
+
hints?: boolean | undefined;
|
|
923
|
+
}>>;
|
|
924
|
+
}, "strip", z.ZodTypeAny, {
|
|
925
|
+
plugins?: {
|
|
926
|
+
packages?: Record<string, {
|
|
927
|
+
enabled?: boolean | undefined;
|
|
928
|
+
options?: Record<string, unknown> | undefined;
|
|
929
|
+
exclude?: string[] | undefined;
|
|
930
|
+
}> | undefined;
|
|
931
|
+
provider?: {
|
|
932
|
+
default?: string | undefined;
|
|
933
|
+
fallbacks?: string[] | undefined;
|
|
934
|
+
items?: Record<string, {
|
|
935
|
+
enabled?: boolean | undefined;
|
|
936
|
+
model?: string | undefined;
|
|
937
|
+
config?: Record<string, unknown> | undefined;
|
|
938
|
+
}> | undefined;
|
|
939
|
+
} | undefined;
|
|
940
|
+
mode?: {
|
|
941
|
+
default?: string | undefined;
|
|
942
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
943
|
+
} | undefined;
|
|
944
|
+
compactor?: {
|
|
945
|
+
default?: string | undefined;
|
|
946
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
947
|
+
} | undefined;
|
|
948
|
+
cacheStrategy?: {
|
|
949
|
+
default?: string | undefined;
|
|
950
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
951
|
+
} | undefined;
|
|
952
|
+
workflowExecutor?: {
|
|
953
|
+
default?: string | undefined;
|
|
954
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
955
|
+
} | undefined;
|
|
956
|
+
transcriber?: {
|
|
957
|
+
default?: string | undefined;
|
|
958
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
959
|
+
} | undefined;
|
|
960
|
+
synthesizer?: {
|
|
961
|
+
default?: string | undefined;
|
|
962
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
963
|
+
} | undefined;
|
|
964
|
+
embedder?: {
|
|
965
|
+
default?: string | undefined;
|
|
966
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
967
|
+
} | undefined;
|
|
968
|
+
isolator?: {
|
|
969
|
+
default?: string | undefined;
|
|
970
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
971
|
+
} | undefined;
|
|
972
|
+
viewRenderer?: {
|
|
973
|
+
default?: string | undefined;
|
|
974
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
975
|
+
} | undefined;
|
|
976
|
+
tunnelProvider?: {
|
|
977
|
+
default?: string | undefined;
|
|
978
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
979
|
+
} | undefined;
|
|
980
|
+
eventStore?: {
|
|
981
|
+
default?: string | undefined;
|
|
982
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
983
|
+
} | undefined;
|
|
984
|
+
reflector?: {
|
|
985
|
+
default?: string | undefined;
|
|
986
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
987
|
+
} | undefined;
|
|
988
|
+
channel?: {
|
|
989
|
+
default?: string | undefined;
|
|
990
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
991
|
+
} | undefined;
|
|
992
|
+
} | undefined;
|
|
993
|
+
context?: {
|
|
994
|
+
caching?: boolean | undefined;
|
|
995
|
+
elision?: {
|
|
996
|
+
enabled?: boolean | undefined;
|
|
997
|
+
keepRecentTurns?: number | undefined;
|
|
998
|
+
minContextRatioToElide?: number | undefined;
|
|
999
|
+
elideConversational?: boolean | undefined;
|
|
1000
|
+
conversationalRecallThreshold?: number | undefined;
|
|
1001
|
+
maxRecallBytes?: number | undefined;
|
|
1002
|
+
neverElideTools?: string[] | undefined;
|
|
1003
|
+
} | undefined;
|
|
1004
|
+
lazyTools?: boolean | undefined;
|
|
1005
|
+
reasoning?: boolean | {
|
|
1006
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
1007
|
+
} | undefined;
|
|
1008
|
+
loopGuard?: {
|
|
1009
|
+
enabled?: boolean | undefined;
|
|
1010
|
+
windowSize?: number | undefined;
|
|
1011
|
+
repeatThreshold?: number | undefined;
|
|
1012
|
+
nearWindowSize?: number | undefined;
|
|
1013
|
+
nearThreshold?: number | undefined;
|
|
1014
|
+
} | undefined;
|
|
1015
|
+
} | undefined;
|
|
1016
|
+
systemPrompt?: string | undefined;
|
|
1017
|
+
maxIterations?: number | undefined;
|
|
1018
|
+
hookTimeoutMs?: number | undefined;
|
|
1019
|
+
watcher?: "auto" | "manual" | "off" | undefined;
|
|
1020
|
+
skills?: {
|
|
1021
|
+
projectDir?: string | undefined;
|
|
1022
|
+
userDir?: string | undefined;
|
|
1023
|
+
extraDirs?: string[] | undefined;
|
|
1024
|
+
} | undefined;
|
|
1025
|
+
security?: {
|
|
1026
|
+
enabled?: boolean | undefined;
|
|
1027
|
+
strict?: boolean | undefined;
|
|
1028
|
+
perTool?: Record<string, string> | undefined;
|
|
1029
|
+
perPlugin?: Record<string, string> | undefined;
|
|
1030
|
+
requireDeclaration?: boolean | undefined;
|
|
1031
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
1032
|
+
} | undefined;
|
|
1033
|
+
channels?: Record<string, Record<string, unknown>> | undefined;
|
|
1034
|
+
permissions?: {
|
|
1035
|
+
policyPath?: string | undefined;
|
|
1036
|
+
allow?: {
|
|
1037
|
+
name: string;
|
|
1038
|
+
inputMatches?: Record<string, string> | undefined;
|
|
1039
|
+
reason?: string | undefined;
|
|
1040
|
+
}[] | undefined;
|
|
1041
|
+
deny?: {
|
|
1042
|
+
name: string;
|
|
1043
|
+
inputMatches?: Record<string, string> | undefined;
|
|
1044
|
+
reason?: string | undefined;
|
|
1045
|
+
}[] | undefined;
|
|
1046
|
+
} | undefined;
|
|
1047
|
+
env?: Record<string, string> | undefined;
|
|
1048
|
+
tui?: {
|
|
1049
|
+
keys?: {
|
|
1050
|
+
forceSend?: string | undefined;
|
|
1051
|
+
dropQueued?: string | undefined;
|
|
1052
|
+
toggleTools?: string | undefined;
|
|
1053
|
+
} | undefined;
|
|
1054
|
+
theme?: "default" | "mono" | undefined;
|
|
1055
|
+
hints?: boolean | undefined;
|
|
1056
|
+
} | undefined;
|
|
1057
|
+
}, {
|
|
1058
|
+
plugins?: {
|
|
1059
|
+
packages?: Record<string, {
|
|
1060
|
+
enabled?: boolean | undefined;
|
|
1061
|
+
options?: Record<string, unknown> | undefined;
|
|
1062
|
+
exclude?: string[] | undefined;
|
|
1063
|
+
}> | undefined;
|
|
1064
|
+
provider?: {
|
|
1065
|
+
default?: string | undefined;
|
|
1066
|
+
fallbacks?: string[] | undefined;
|
|
1067
|
+
items?: Record<string, {
|
|
1068
|
+
enabled?: boolean | undefined;
|
|
1069
|
+
model?: string | undefined;
|
|
1070
|
+
config?: Record<string, unknown> | undefined;
|
|
1071
|
+
}> | undefined;
|
|
1072
|
+
} | undefined;
|
|
1073
|
+
mode?: {
|
|
1074
|
+
default?: string | undefined;
|
|
1075
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1076
|
+
} | undefined;
|
|
1077
|
+
compactor?: {
|
|
1078
|
+
default?: string | undefined;
|
|
1079
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1080
|
+
} | undefined;
|
|
1081
|
+
cacheStrategy?: {
|
|
1082
|
+
default?: string | undefined;
|
|
1083
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1084
|
+
} | undefined;
|
|
1085
|
+
workflowExecutor?: {
|
|
1086
|
+
default?: string | undefined;
|
|
1087
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1088
|
+
} | undefined;
|
|
1089
|
+
transcriber?: {
|
|
1090
|
+
default?: string | undefined;
|
|
1091
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1092
|
+
} | undefined;
|
|
1093
|
+
synthesizer?: {
|
|
1094
|
+
default?: string | undefined;
|
|
1095
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1096
|
+
} | undefined;
|
|
1097
|
+
embedder?: {
|
|
1098
|
+
default?: string | undefined;
|
|
1099
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1100
|
+
} | undefined;
|
|
1101
|
+
isolator?: {
|
|
1102
|
+
default?: string | undefined;
|
|
1103
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1104
|
+
} | undefined;
|
|
1105
|
+
viewRenderer?: {
|
|
1106
|
+
default?: string | undefined;
|
|
1107
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1108
|
+
} | undefined;
|
|
1109
|
+
tunnelProvider?: {
|
|
1110
|
+
default?: string | undefined;
|
|
1111
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1112
|
+
} | undefined;
|
|
1113
|
+
eventStore?: {
|
|
1114
|
+
default?: string | undefined;
|
|
1115
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1116
|
+
} | undefined;
|
|
1117
|
+
reflector?: {
|
|
1118
|
+
default?: string | undefined;
|
|
1119
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1120
|
+
} | undefined;
|
|
1121
|
+
channel?: {
|
|
1122
|
+
default?: string | undefined;
|
|
1123
|
+
items?: Record<string, Record<string, unknown>> | undefined;
|
|
1124
|
+
} | undefined;
|
|
1125
|
+
} | undefined;
|
|
1126
|
+
context?: {
|
|
1127
|
+
caching?: boolean | undefined;
|
|
1128
|
+
elision?: {
|
|
1129
|
+
enabled?: boolean | undefined;
|
|
1130
|
+
keepRecentTurns?: number | undefined;
|
|
1131
|
+
minContextRatioToElide?: number | undefined;
|
|
1132
|
+
elideConversational?: boolean | undefined;
|
|
1133
|
+
conversationalRecallThreshold?: number | undefined;
|
|
1134
|
+
maxRecallBytes?: number | undefined;
|
|
1135
|
+
neverElideTools?: string[] | undefined;
|
|
1136
|
+
} | undefined;
|
|
1137
|
+
lazyTools?: boolean | undefined;
|
|
1138
|
+
reasoning?: boolean | {
|
|
1139
|
+
effort?: "low" | "medium" | "high" | undefined;
|
|
1140
|
+
} | undefined;
|
|
1141
|
+
loopGuard?: {
|
|
1142
|
+
enabled?: boolean | undefined;
|
|
1143
|
+
windowSize?: number | undefined;
|
|
1144
|
+
repeatThreshold?: number | undefined;
|
|
1145
|
+
nearWindowSize?: number | undefined;
|
|
1146
|
+
nearThreshold?: number | undefined;
|
|
1147
|
+
} | undefined;
|
|
1148
|
+
} | undefined;
|
|
1149
|
+
systemPrompt?: string | undefined;
|
|
1150
|
+
maxIterations?: number | undefined;
|
|
1151
|
+
hookTimeoutMs?: number | undefined;
|
|
1152
|
+
watcher?: "auto" | "manual" | "off" | undefined;
|
|
1153
|
+
skills?: {
|
|
1154
|
+
projectDir?: string | undefined;
|
|
1155
|
+
userDir?: string | undefined;
|
|
1156
|
+
extraDirs?: string[] | undefined;
|
|
1157
|
+
} | undefined;
|
|
1158
|
+
security?: {
|
|
1159
|
+
enabled?: boolean | undefined;
|
|
1160
|
+
strict?: boolean | undefined;
|
|
1161
|
+
perTool?: Record<string, string> | undefined;
|
|
1162
|
+
perPlugin?: Record<string, string> | undefined;
|
|
1163
|
+
requireDeclaration?: boolean | undefined;
|
|
1164
|
+
thirdPartyRequireDeclaration?: "off" | "warn" | "enforce" | undefined;
|
|
1165
|
+
} | undefined;
|
|
1166
|
+
channels?: Record<string, Record<string, unknown>> | undefined;
|
|
1167
|
+
permissions?: {
|
|
1168
|
+
policyPath?: string | undefined;
|
|
1169
|
+
allow?: {
|
|
1170
|
+
name: string;
|
|
1171
|
+
inputMatches?: Record<string, string> | undefined;
|
|
1172
|
+
reason?: string | undefined;
|
|
1173
|
+
}[] | undefined;
|
|
1174
|
+
deny?: {
|
|
1175
|
+
name: string;
|
|
1176
|
+
inputMatches?: Record<string, string> | undefined;
|
|
1177
|
+
reason?: string | undefined;
|
|
1178
|
+
}[] | undefined;
|
|
1179
|
+
} | undefined;
|
|
1180
|
+
env?: Record<string, string> | undefined;
|
|
1181
|
+
tui?: {
|
|
1182
|
+
keys?: {
|
|
1183
|
+
forceSend?: string | undefined;
|
|
1184
|
+
dropQueued?: string | undefined;
|
|
1185
|
+
toggleTools?: string | undefined;
|
|
1186
|
+
} | undefined;
|
|
1187
|
+
theme?: "default" | "mono" | undefined;
|
|
1188
|
+
hints?: boolean | undefined;
|
|
1189
|
+
} | undefined;
|
|
1190
|
+
}>;
|
|
1191
|
+
export type MoxxyConfig = z.infer<typeof moxxyConfigSchema>;
|
|
1192
|
+
export type ContextConfig = z.infer<typeof contextConfigSchema>;
|
|
1193
|
+
export type ElisionConfig = z.infer<typeof elisionConfigSchema>;
|
|
1194
|
+
export type WatcherMode = z.infer<typeof watcherModeSchema>;
|
|
1195
|
+
export type PermissionsConfig = z.infer<typeof permissionsConfigSchema>;
|
|
1196
|
+
export type EmbeddingsConfig = z.infer<typeof embeddingsConfigSchema>;
|
|
1197
|
+
export type SecurityConfig = z.infer<typeof securityConfigSchema>;
|
|
1198
|
+
export { pluginSettingsSchema };
|
|
1199
|
+
export type { PluginSettings } from './plugin-settings-schema.js';
|
|
1200
|
+
//# sourceMappingURL=schema.d.ts.map
|