zouroboros-core 2.0.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.
@@ -0,0 +1,597 @@
1
+ /**
2
+ * Zod validation schemas for Zouroboros configuration
3
+ *
4
+ * Provides runtime validation with actionable error messages
5
+ * for all configuration sections.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const CoreConfigSchema: z.ZodObject<{
9
+ workspaceRoot: z.ZodEffects<z.ZodString, string, string>;
10
+ dataDir: z.ZodEffects<z.ZodString, string, string>;
11
+ logLevel: z.ZodEnum<["debug", "info", "warn", "error"]>;
12
+ defaultTimezone: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ workspaceRoot: string;
15
+ dataDir: string;
16
+ logLevel: "debug" | "info" | "warn" | "error";
17
+ defaultTimezone: string;
18
+ }, {
19
+ workspaceRoot: string;
20
+ dataDir: string;
21
+ logLevel: "debug" | "info" | "warn" | "error";
22
+ defaultTimezone: string;
23
+ }>;
24
+ export declare const MemoryConfigSchema: z.ZodObject<{
25
+ enabled: z.ZodBoolean;
26
+ dbPath: z.ZodEffects<z.ZodString, string, string>;
27
+ vectorEnabled: z.ZodBoolean;
28
+ ollamaUrl: z.ZodString;
29
+ ollamaModel: z.ZodString;
30
+ autoCapture: z.ZodBoolean;
31
+ captureIntervalMinutes: z.ZodNumber;
32
+ graphBoost: z.ZodBoolean;
33
+ hydeExpansion: z.ZodBoolean;
34
+ decayConfig: z.ZodObject<{
35
+ permanent: z.ZodNumber;
36
+ long: z.ZodNumber;
37
+ medium: z.ZodNumber;
38
+ short: z.ZodNumber;
39
+ }, "strip", z.ZodTypeAny, {
40
+ permanent: number;
41
+ long: number;
42
+ medium: number;
43
+ short: number;
44
+ }, {
45
+ permanent: number;
46
+ long: number;
47
+ medium: number;
48
+ short: number;
49
+ }>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ enabled: boolean;
52
+ dbPath: string;
53
+ vectorEnabled: boolean;
54
+ ollamaUrl: string;
55
+ ollamaModel: string;
56
+ autoCapture: boolean;
57
+ captureIntervalMinutes: number;
58
+ graphBoost: boolean;
59
+ hydeExpansion: boolean;
60
+ decayConfig: {
61
+ permanent: number;
62
+ long: number;
63
+ medium: number;
64
+ short: number;
65
+ };
66
+ }, {
67
+ enabled: boolean;
68
+ dbPath: string;
69
+ vectorEnabled: boolean;
70
+ ollamaUrl: string;
71
+ ollamaModel: string;
72
+ autoCapture: boolean;
73
+ captureIntervalMinutes: number;
74
+ graphBoost: boolean;
75
+ hydeExpansion: boolean;
76
+ decayConfig: {
77
+ permanent: number;
78
+ long: number;
79
+ medium: number;
80
+ short: number;
81
+ };
82
+ }>;
83
+ export declare const SwarmConfigSchema: z.ZodObject<{
84
+ enabled: z.ZodBoolean;
85
+ defaultCombo: z.ZodString;
86
+ maxConcurrency: z.ZodNumber;
87
+ localConcurrency: z.ZodNumber;
88
+ circuitBreaker: z.ZodObject<{
89
+ enabled: z.ZodBoolean;
90
+ failureThreshold: z.ZodNumber;
91
+ resetTimeoutMs: z.ZodNumber;
92
+ }, "strip", z.ZodTypeAny, {
93
+ enabled: boolean;
94
+ failureThreshold: number;
95
+ resetTimeoutMs: number;
96
+ }, {
97
+ enabled: boolean;
98
+ failureThreshold: number;
99
+ resetTimeoutMs: number;
100
+ }>;
101
+ retryConfig: z.ZodObject<{
102
+ maxRetries: z.ZodNumber;
103
+ backoffMultiplier: z.ZodNumber;
104
+ maxBackoffMs: z.ZodNumber;
105
+ }, "strip", z.ZodTypeAny, {
106
+ maxRetries: number;
107
+ backoffMultiplier: number;
108
+ maxBackoffMs: number;
109
+ }, {
110
+ maxRetries: number;
111
+ backoffMultiplier: number;
112
+ maxBackoffMs: number;
113
+ }>;
114
+ registryPath: z.ZodEffects<z.ZodString, string, string>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ enabled: boolean;
117
+ defaultCombo: string;
118
+ maxConcurrency: number;
119
+ localConcurrency: number;
120
+ circuitBreaker: {
121
+ enabled: boolean;
122
+ failureThreshold: number;
123
+ resetTimeoutMs: number;
124
+ };
125
+ retryConfig: {
126
+ maxRetries: number;
127
+ backoffMultiplier: number;
128
+ maxBackoffMs: number;
129
+ };
130
+ registryPath: string;
131
+ }, {
132
+ enabled: boolean;
133
+ defaultCombo: string;
134
+ maxConcurrency: number;
135
+ localConcurrency: number;
136
+ circuitBreaker: {
137
+ enabled: boolean;
138
+ failureThreshold: number;
139
+ resetTimeoutMs: number;
140
+ };
141
+ retryConfig: {
142
+ maxRetries: number;
143
+ backoffMultiplier: number;
144
+ maxBackoffMs: number;
145
+ };
146
+ registryPath: string;
147
+ }>;
148
+ export declare const PersonasConfigSchema: z.ZodObject<{
149
+ enabled: z.ZodBoolean;
150
+ identityDir: z.ZodEffects<z.ZodString, string, string>;
151
+ defaultSoulPath: z.ZodEffects<z.ZodString, string, string>;
152
+ autoCreateHeartbeat: z.ZodBoolean;
153
+ }, "strip", z.ZodTypeAny, {
154
+ enabled: boolean;
155
+ identityDir: string;
156
+ defaultSoulPath: string;
157
+ autoCreateHeartbeat: boolean;
158
+ }, {
159
+ enabled: boolean;
160
+ identityDir: string;
161
+ defaultSoulPath: string;
162
+ autoCreateHeartbeat: boolean;
163
+ }>;
164
+ export declare const SelfHealConfigSchema: z.ZodObject<{
165
+ enabled: z.ZodBoolean;
166
+ introspectionInterval: z.ZodString;
167
+ autoPrescribe: z.ZodBoolean;
168
+ governorEnabled: z.ZodBoolean;
169
+ minHealthScore: z.ZodNumber;
170
+ metrics: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodEffects<z.ZodObject<{
171
+ target: z.ZodNumber;
172
+ weight: z.ZodNumber;
173
+ warningThreshold: z.ZodNumber;
174
+ criticalThreshold: z.ZodNumber;
175
+ }, "strip", z.ZodTypeAny, {
176
+ target: number;
177
+ weight: number;
178
+ warningThreshold: number;
179
+ criticalThreshold: number;
180
+ }, {
181
+ target: number;
182
+ weight: number;
183
+ warningThreshold: number;
184
+ criticalThreshold: number;
185
+ }>, {
186
+ target: number;
187
+ weight: number;
188
+ warningThreshold: number;
189
+ criticalThreshold: number;
190
+ }, {
191
+ target: number;
192
+ weight: number;
193
+ warningThreshold: number;
194
+ criticalThreshold: number;
195
+ }>, {
196
+ target: number;
197
+ weight: number;
198
+ warningThreshold: number;
199
+ criticalThreshold: number;
200
+ }, {
201
+ target: number;
202
+ weight: number;
203
+ warningThreshold: number;
204
+ criticalThreshold: number;
205
+ }>>;
206
+ }, "strip", z.ZodTypeAny, {
207
+ enabled: boolean;
208
+ introspectionInterval: string;
209
+ autoPrescribe: boolean;
210
+ governorEnabled: boolean;
211
+ minHealthScore: number;
212
+ metrics: Record<string, {
213
+ target: number;
214
+ weight: number;
215
+ warningThreshold: number;
216
+ criticalThreshold: number;
217
+ }>;
218
+ }, {
219
+ enabled: boolean;
220
+ introspectionInterval: string;
221
+ autoPrescribe: boolean;
222
+ governorEnabled: boolean;
223
+ minHealthScore: number;
224
+ metrics: Record<string, {
225
+ target: number;
226
+ weight: number;
227
+ warningThreshold: number;
228
+ criticalThreshold: number;
229
+ }>;
230
+ }>;
231
+ export declare const ZouroborosConfigSchema: z.ZodObject<{
232
+ version: z.ZodString;
233
+ createdAt: z.ZodString;
234
+ updatedAt: z.ZodString;
235
+ core: z.ZodObject<{
236
+ workspaceRoot: z.ZodEffects<z.ZodString, string, string>;
237
+ dataDir: z.ZodEffects<z.ZodString, string, string>;
238
+ logLevel: z.ZodEnum<["debug", "info", "warn", "error"]>;
239
+ defaultTimezone: z.ZodString;
240
+ }, "strip", z.ZodTypeAny, {
241
+ workspaceRoot: string;
242
+ dataDir: string;
243
+ logLevel: "debug" | "info" | "warn" | "error";
244
+ defaultTimezone: string;
245
+ }, {
246
+ workspaceRoot: string;
247
+ dataDir: string;
248
+ logLevel: "debug" | "info" | "warn" | "error";
249
+ defaultTimezone: string;
250
+ }>;
251
+ memory: z.ZodObject<{
252
+ enabled: z.ZodBoolean;
253
+ dbPath: z.ZodEffects<z.ZodString, string, string>;
254
+ vectorEnabled: z.ZodBoolean;
255
+ ollamaUrl: z.ZodString;
256
+ ollamaModel: z.ZodString;
257
+ autoCapture: z.ZodBoolean;
258
+ captureIntervalMinutes: z.ZodNumber;
259
+ graphBoost: z.ZodBoolean;
260
+ hydeExpansion: z.ZodBoolean;
261
+ decayConfig: z.ZodObject<{
262
+ permanent: z.ZodNumber;
263
+ long: z.ZodNumber;
264
+ medium: z.ZodNumber;
265
+ short: z.ZodNumber;
266
+ }, "strip", z.ZodTypeAny, {
267
+ permanent: number;
268
+ long: number;
269
+ medium: number;
270
+ short: number;
271
+ }, {
272
+ permanent: number;
273
+ long: number;
274
+ medium: number;
275
+ short: number;
276
+ }>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ enabled: boolean;
279
+ dbPath: string;
280
+ vectorEnabled: boolean;
281
+ ollamaUrl: string;
282
+ ollamaModel: string;
283
+ autoCapture: boolean;
284
+ captureIntervalMinutes: number;
285
+ graphBoost: boolean;
286
+ hydeExpansion: boolean;
287
+ decayConfig: {
288
+ permanent: number;
289
+ long: number;
290
+ medium: number;
291
+ short: number;
292
+ };
293
+ }, {
294
+ enabled: boolean;
295
+ dbPath: string;
296
+ vectorEnabled: boolean;
297
+ ollamaUrl: string;
298
+ ollamaModel: string;
299
+ autoCapture: boolean;
300
+ captureIntervalMinutes: number;
301
+ graphBoost: boolean;
302
+ hydeExpansion: boolean;
303
+ decayConfig: {
304
+ permanent: number;
305
+ long: number;
306
+ medium: number;
307
+ short: number;
308
+ };
309
+ }>;
310
+ swarm: z.ZodObject<{
311
+ enabled: z.ZodBoolean;
312
+ defaultCombo: z.ZodString;
313
+ maxConcurrency: z.ZodNumber;
314
+ localConcurrency: z.ZodNumber;
315
+ circuitBreaker: z.ZodObject<{
316
+ enabled: z.ZodBoolean;
317
+ failureThreshold: z.ZodNumber;
318
+ resetTimeoutMs: z.ZodNumber;
319
+ }, "strip", z.ZodTypeAny, {
320
+ enabled: boolean;
321
+ failureThreshold: number;
322
+ resetTimeoutMs: number;
323
+ }, {
324
+ enabled: boolean;
325
+ failureThreshold: number;
326
+ resetTimeoutMs: number;
327
+ }>;
328
+ retryConfig: z.ZodObject<{
329
+ maxRetries: z.ZodNumber;
330
+ backoffMultiplier: z.ZodNumber;
331
+ maxBackoffMs: z.ZodNumber;
332
+ }, "strip", z.ZodTypeAny, {
333
+ maxRetries: number;
334
+ backoffMultiplier: number;
335
+ maxBackoffMs: number;
336
+ }, {
337
+ maxRetries: number;
338
+ backoffMultiplier: number;
339
+ maxBackoffMs: number;
340
+ }>;
341
+ registryPath: z.ZodEffects<z.ZodString, string, string>;
342
+ }, "strip", z.ZodTypeAny, {
343
+ enabled: boolean;
344
+ defaultCombo: string;
345
+ maxConcurrency: number;
346
+ localConcurrency: number;
347
+ circuitBreaker: {
348
+ enabled: boolean;
349
+ failureThreshold: number;
350
+ resetTimeoutMs: number;
351
+ };
352
+ retryConfig: {
353
+ maxRetries: number;
354
+ backoffMultiplier: number;
355
+ maxBackoffMs: number;
356
+ };
357
+ registryPath: string;
358
+ }, {
359
+ enabled: boolean;
360
+ defaultCombo: string;
361
+ maxConcurrency: number;
362
+ localConcurrency: number;
363
+ circuitBreaker: {
364
+ enabled: boolean;
365
+ failureThreshold: number;
366
+ resetTimeoutMs: number;
367
+ };
368
+ retryConfig: {
369
+ maxRetries: number;
370
+ backoffMultiplier: number;
371
+ maxBackoffMs: number;
372
+ };
373
+ registryPath: string;
374
+ }>;
375
+ personas: z.ZodObject<{
376
+ enabled: z.ZodBoolean;
377
+ identityDir: z.ZodEffects<z.ZodString, string, string>;
378
+ defaultSoulPath: z.ZodEffects<z.ZodString, string, string>;
379
+ autoCreateHeartbeat: z.ZodBoolean;
380
+ }, "strip", z.ZodTypeAny, {
381
+ enabled: boolean;
382
+ identityDir: string;
383
+ defaultSoulPath: string;
384
+ autoCreateHeartbeat: boolean;
385
+ }, {
386
+ enabled: boolean;
387
+ identityDir: string;
388
+ defaultSoulPath: string;
389
+ autoCreateHeartbeat: boolean;
390
+ }>;
391
+ selfheal: z.ZodObject<{
392
+ enabled: z.ZodBoolean;
393
+ introspectionInterval: z.ZodString;
394
+ autoPrescribe: z.ZodBoolean;
395
+ governorEnabled: z.ZodBoolean;
396
+ minHealthScore: z.ZodNumber;
397
+ metrics: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodEffects<z.ZodObject<{
398
+ target: z.ZodNumber;
399
+ weight: z.ZodNumber;
400
+ warningThreshold: z.ZodNumber;
401
+ criticalThreshold: z.ZodNumber;
402
+ }, "strip", z.ZodTypeAny, {
403
+ target: number;
404
+ weight: number;
405
+ warningThreshold: number;
406
+ criticalThreshold: number;
407
+ }, {
408
+ target: number;
409
+ weight: number;
410
+ warningThreshold: number;
411
+ criticalThreshold: number;
412
+ }>, {
413
+ target: number;
414
+ weight: number;
415
+ warningThreshold: number;
416
+ criticalThreshold: number;
417
+ }, {
418
+ target: number;
419
+ weight: number;
420
+ warningThreshold: number;
421
+ criticalThreshold: number;
422
+ }>, {
423
+ target: number;
424
+ weight: number;
425
+ warningThreshold: number;
426
+ criticalThreshold: number;
427
+ }, {
428
+ target: number;
429
+ weight: number;
430
+ warningThreshold: number;
431
+ criticalThreshold: number;
432
+ }>>;
433
+ }, "strip", z.ZodTypeAny, {
434
+ enabled: boolean;
435
+ introspectionInterval: string;
436
+ autoPrescribe: boolean;
437
+ governorEnabled: boolean;
438
+ minHealthScore: number;
439
+ metrics: Record<string, {
440
+ target: number;
441
+ weight: number;
442
+ warningThreshold: number;
443
+ criticalThreshold: number;
444
+ }>;
445
+ }, {
446
+ enabled: boolean;
447
+ introspectionInterval: string;
448
+ autoPrescribe: boolean;
449
+ governorEnabled: boolean;
450
+ minHealthScore: number;
451
+ metrics: Record<string, {
452
+ target: number;
453
+ weight: number;
454
+ warningThreshold: number;
455
+ criticalThreshold: number;
456
+ }>;
457
+ }>;
458
+ }, "strip", z.ZodTypeAny, {
459
+ memory: {
460
+ enabled: boolean;
461
+ dbPath: string;
462
+ vectorEnabled: boolean;
463
+ ollamaUrl: string;
464
+ ollamaModel: string;
465
+ autoCapture: boolean;
466
+ captureIntervalMinutes: number;
467
+ graphBoost: boolean;
468
+ hydeExpansion: boolean;
469
+ decayConfig: {
470
+ permanent: number;
471
+ long: number;
472
+ medium: number;
473
+ short: number;
474
+ };
475
+ };
476
+ swarm: {
477
+ enabled: boolean;
478
+ defaultCombo: string;
479
+ maxConcurrency: number;
480
+ localConcurrency: number;
481
+ circuitBreaker: {
482
+ enabled: boolean;
483
+ failureThreshold: number;
484
+ resetTimeoutMs: number;
485
+ };
486
+ retryConfig: {
487
+ maxRetries: number;
488
+ backoffMultiplier: number;
489
+ maxBackoffMs: number;
490
+ };
491
+ registryPath: string;
492
+ };
493
+ selfheal: {
494
+ enabled: boolean;
495
+ introspectionInterval: string;
496
+ autoPrescribe: boolean;
497
+ governorEnabled: boolean;
498
+ minHealthScore: number;
499
+ metrics: Record<string, {
500
+ target: number;
501
+ weight: number;
502
+ warningThreshold: number;
503
+ criticalThreshold: number;
504
+ }>;
505
+ };
506
+ version: string;
507
+ createdAt: string;
508
+ updatedAt: string;
509
+ core: {
510
+ workspaceRoot: string;
511
+ dataDir: string;
512
+ logLevel: "debug" | "info" | "warn" | "error";
513
+ defaultTimezone: string;
514
+ };
515
+ personas: {
516
+ enabled: boolean;
517
+ identityDir: string;
518
+ defaultSoulPath: string;
519
+ autoCreateHeartbeat: boolean;
520
+ };
521
+ }, {
522
+ memory: {
523
+ enabled: boolean;
524
+ dbPath: string;
525
+ vectorEnabled: boolean;
526
+ ollamaUrl: string;
527
+ ollamaModel: string;
528
+ autoCapture: boolean;
529
+ captureIntervalMinutes: number;
530
+ graphBoost: boolean;
531
+ hydeExpansion: boolean;
532
+ decayConfig: {
533
+ permanent: number;
534
+ long: number;
535
+ medium: number;
536
+ short: number;
537
+ };
538
+ };
539
+ swarm: {
540
+ enabled: boolean;
541
+ defaultCombo: string;
542
+ maxConcurrency: number;
543
+ localConcurrency: number;
544
+ circuitBreaker: {
545
+ enabled: boolean;
546
+ failureThreshold: number;
547
+ resetTimeoutMs: number;
548
+ };
549
+ retryConfig: {
550
+ maxRetries: number;
551
+ backoffMultiplier: number;
552
+ maxBackoffMs: number;
553
+ };
554
+ registryPath: string;
555
+ };
556
+ selfheal: {
557
+ enabled: boolean;
558
+ introspectionInterval: string;
559
+ autoPrescribe: boolean;
560
+ governorEnabled: boolean;
561
+ minHealthScore: number;
562
+ metrics: Record<string, {
563
+ target: number;
564
+ weight: number;
565
+ warningThreshold: number;
566
+ criticalThreshold: number;
567
+ }>;
568
+ };
569
+ version: string;
570
+ createdAt: string;
571
+ updatedAt: string;
572
+ core: {
573
+ workspaceRoot: string;
574
+ dataDir: string;
575
+ logLevel: "debug" | "info" | "warn" | "error";
576
+ defaultTimezone: string;
577
+ };
578
+ personas: {
579
+ enabled: boolean;
580
+ identityDir: string;
581
+ defaultSoulPath: string;
582
+ autoCreateHeartbeat: boolean;
583
+ };
584
+ }>;
585
+ export type ConfigValidationIssue = {
586
+ path: string;
587
+ message: string;
588
+ };
589
+ /**
590
+ * Validate a config object and return structured errors.
591
+ * Returns null if valid, or an array of issues with paths.
592
+ */
593
+ export declare function validateConfigSchema(config: unknown): ConfigValidationIssue[] | null;
594
+ /**
595
+ * Format validation issues into a human-readable string.
596
+ */
597
+ export declare function formatValidationErrors(issues: ConfigValidationIssue[]): string;