byterover-cli 3.3.0 → 3.4.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 (95) hide show
  1. package/dist/agent/core/domain/swarm/types.d.ts +132 -0
  2. package/dist/agent/core/domain/swarm/types.js +128 -0
  3. package/dist/agent/core/domain/tools/constants.d.ts +2 -0
  4. package/dist/agent/core/domain/tools/constants.js +2 -0
  5. package/dist/agent/core/interfaces/i-memory-provider.d.ts +45 -0
  6. package/dist/agent/core/interfaces/i-memory-provider.js +1 -0
  7. package/dist/agent/core/interfaces/i-sandbox-service.d.ts +8 -0
  8. package/dist/agent/core/interfaces/i-swarm-coordinator.d.ts +127 -0
  9. package/dist/agent/core/interfaces/i-swarm-coordinator.js +1 -0
  10. package/dist/agent/infra/agent/service-initializer.js +48 -0
  11. package/dist/agent/infra/map/map-shared.d.ts +2 -2
  12. package/dist/agent/infra/sandbox/sandbox-service.d.ts +10 -0
  13. package/dist/agent/infra/sandbox/sandbox-service.js +13 -0
  14. package/dist/agent/infra/sandbox/tools-sdk.d.ts +25 -0
  15. package/dist/agent/infra/sandbox/tools-sdk.js +24 -1
  16. package/dist/agent/infra/swarm/adapters/byterover-adapter.d.ts +39 -0
  17. package/dist/agent/infra/swarm/adapters/byterover-adapter.js +62 -0
  18. package/dist/agent/infra/swarm/adapters/gbrain-adapter.d.ts +63 -0
  19. package/dist/agent/infra/swarm/adapters/gbrain-adapter.js +209 -0
  20. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.d.ts +41 -0
  21. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.js +256 -0
  22. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.d.ts +29 -0
  23. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.js +244 -0
  24. package/dist/agent/infra/swarm/adapters/obsidian-adapter.d.ts +37 -0
  25. package/dist/agent/infra/swarm/adapters/obsidian-adapter.js +201 -0
  26. package/dist/agent/infra/swarm/cli/query-renderer.d.ts +15 -0
  27. package/dist/agent/infra/swarm/cli/query-renderer.js +126 -0
  28. package/dist/agent/infra/swarm/config/swarm-config-loader.d.ts +14 -0
  29. package/dist/agent/infra/swarm/config/swarm-config-loader.js +82 -0
  30. package/dist/agent/infra/swarm/config/swarm-config-schema.d.ts +667 -0
  31. package/dist/agent/infra/swarm/config/swarm-config-schema.js +305 -0
  32. package/dist/agent/infra/swarm/provider-factory.d.ts +21 -0
  33. package/dist/agent/infra/swarm/provider-factory.js +67 -0
  34. package/dist/agent/infra/swarm/search-precision.d.ts +95 -0
  35. package/dist/agent/infra/swarm/search-precision.js +141 -0
  36. package/dist/agent/infra/swarm/swarm-coordinator.d.ts +59 -0
  37. package/dist/agent/infra/swarm/swarm-coordinator.js +436 -0
  38. package/dist/agent/infra/swarm/swarm-graph.d.ts +63 -0
  39. package/dist/agent/infra/swarm/swarm-graph.js +167 -0
  40. package/dist/agent/infra/swarm/swarm-merger.d.ts +29 -0
  41. package/dist/agent/infra/swarm/swarm-merger.js +66 -0
  42. package/dist/agent/infra/swarm/swarm-router.d.ts +12 -0
  43. package/dist/agent/infra/swarm/swarm-router.js +40 -0
  44. package/dist/agent/infra/swarm/swarm-write-router.d.ts +23 -0
  45. package/dist/agent/infra/swarm/swarm-write-router.js +45 -0
  46. package/dist/agent/infra/swarm/validation/config-validator.d.ts +16 -0
  47. package/dist/agent/infra/swarm/validation/config-validator.js +402 -0
  48. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.d.ts +33 -0
  49. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.js +27 -0
  50. package/dist/agent/infra/swarm/wizard/config-scaffolder.d.ts +36 -0
  51. package/dist/agent/infra/swarm/wizard/config-scaffolder.js +96 -0
  52. package/dist/agent/infra/swarm/wizard/provider-detector.d.ts +54 -0
  53. package/dist/agent/infra/swarm/wizard/provider-detector.js +153 -0
  54. package/dist/agent/infra/swarm/wizard/swarm-wizard.d.ts +61 -0
  55. package/dist/agent/infra/swarm/wizard/swarm-wizard.js +187 -0
  56. package/dist/agent/infra/system-prompt/contributors/index.d.ts +1 -0
  57. package/dist/agent/infra/system-prompt/contributors/index.js +1 -0
  58. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.d.ts +15 -0
  59. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.js +65 -0
  60. package/dist/agent/infra/tools/implementations/curate-tool.d.ts +14 -14
  61. package/dist/agent/infra/tools/implementations/curate-tool.js +2 -0
  62. package/dist/agent/infra/tools/implementations/swarm-query-tool.d.ts +9 -0
  63. package/dist/agent/infra/tools/implementations/swarm-query-tool.js +44 -0
  64. package/dist/agent/infra/tools/implementations/swarm-store-tool.d.ts +9 -0
  65. package/dist/agent/infra/tools/implementations/swarm-store-tool.js +43 -0
  66. package/dist/agent/infra/tools/tool-provider.js +1 -0
  67. package/dist/agent/infra/tools/tool-registry.d.ts +3 -0
  68. package/dist/agent/infra/tools/tool-registry.js +25 -1
  69. package/dist/agent/resources/tools/code_exec.txt +2 -0
  70. package/dist/agent/resources/tools/swarm_query.txt +38 -0
  71. package/dist/agent/resources/tools/swarm_store.txt +35 -0
  72. package/dist/oclif/commands/swarm/curate.d.ts +13 -0
  73. package/dist/oclif/commands/swarm/curate.js +81 -0
  74. package/dist/oclif/commands/swarm/onboard.d.ts +6 -0
  75. package/dist/oclif/commands/swarm/onboard.js +233 -0
  76. package/dist/oclif/commands/swarm/query.d.ts +14 -0
  77. package/dist/oclif/commands/swarm/query.js +84 -0
  78. package/dist/oclif/commands/swarm/status.d.ts +41 -0
  79. package/dist/oclif/commands/swarm/status.js +278 -0
  80. package/dist/server/constants.d.ts +3 -2
  81. package/dist/server/constants.js +10 -9
  82. package/dist/server/core/domain/source/source-schema.d.ts +6 -6
  83. package/dist/server/core/domain/transport/schemas.d.ts +4 -4
  84. package/dist/server/infra/http/provider-model-fetchers.js +1 -0
  85. package/dist/server/infra/process/feature-handlers.js +13 -0
  86. package/dist/server/infra/project/project-registry.js +13 -1
  87. package/dist/server/infra/transport/handlers/locations-handler.d.ts +2 -0
  88. package/dist/server/infra/transport/handlers/locations-handler.js +16 -1
  89. package/dist/server/infra/transport/handlers/vc-handler.d.ts +0 -4
  90. package/dist/server/infra/transport/handlers/vc-handler.js +5 -16
  91. package/dist/server/templates/skill/SKILL.md +163 -0
  92. package/dist/server/utils/gitignore.d.ts +1 -0
  93. package/dist/server/utils/gitignore.js +36 -4
  94. package/oclif.manifest.json +259 -79
  95. package/package.json +2 -2
@@ -0,0 +1,667 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Resolve `${VAR}` patterns in a string using the given environment.
4
+ * Returns the original string if the variable is not found.
5
+ */
6
+ export declare function resolveEnvVars(value: string, env: Record<string, string | undefined>): string;
7
+ /**
8
+ * Full Zod schema for `.brv/swarm/config.yaml`.
9
+ * Accepts snake_case YAML input and outputs camelCase TypeScript.
10
+ */
11
+ export declare const SwarmConfigSchema: z.ZodObject<{
12
+ budget: z.ZodOptional<z.ZodEffects<z.ZodObject<{
13
+ globalMonthlyCapCents: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
+ perProvider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
15
+ maxQueriesPerMinute: z.ZodOptional<z.ZodNumber>;
16
+ monthlyCapCents: z.ZodNumber;
17
+ }, "strip", z.ZodTypeAny, {
18
+ monthlyCapCents: number;
19
+ maxQueriesPerMinute?: number | undefined;
20
+ }, {
21
+ monthlyCapCents: number;
22
+ maxQueriesPerMinute?: number | undefined;
23
+ }>, {
24
+ monthlyCapCents: number;
25
+ maxQueriesPerMinute?: number | undefined;
26
+ }, unknown>>>;
27
+ warningThresholdPct: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
28
+ weightReductionThresholdPct: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ globalMonthlyCapCents: number;
31
+ warningThresholdPct: number;
32
+ weightReductionThresholdPct: number;
33
+ perProvider?: Record<string, {
34
+ monthlyCapCents: number;
35
+ maxQueriesPerMinute?: number | undefined;
36
+ }> | undefined;
37
+ }, {
38
+ globalMonthlyCapCents?: number | undefined;
39
+ perProvider?: Record<string, unknown> | undefined;
40
+ warningThresholdPct?: number | undefined;
41
+ weightReductionThresholdPct?: number | undefined;
42
+ }>, {
43
+ globalMonthlyCapCents: number;
44
+ warningThresholdPct: number;
45
+ weightReductionThresholdPct: number;
46
+ perProvider?: Record<string, {
47
+ monthlyCapCents: number;
48
+ maxQueriesPerMinute?: number | undefined;
49
+ }> | undefined;
50
+ }, unknown>>;
51
+ enrichment: z.ZodDefault<z.ZodOptional<z.ZodObject<{
52
+ edges: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
53
+ from: z.ZodString;
54
+ to: z.ZodString;
55
+ }, "strip", z.ZodTypeAny, {
56
+ from: string;
57
+ to: string;
58
+ }, {
59
+ from: string;
60
+ to: string;
61
+ }>, "many">>>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ edges: {
64
+ from: string;
65
+ to: string;
66
+ }[];
67
+ }, {
68
+ edges?: {
69
+ from: string;
70
+ to: string;
71
+ }[] | undefined;
72
+ }>>>;
73
+ optimization: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
74
+ edgeLearning: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
75
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
76
+ explorationRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ fixThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
78
+ minObservationsToPrune: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
79
+ pruneThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ enabled: boolean;
82
+ explorationRate: number;
83
+ fixThreshold: number;
84
+ minObservationsToPrune: number;
85
+ pruneThreshold: number;
86
+ }, {
87
+ enabled?: boolean | undefined;
88
+ explorationRate?: number | undefined;
89
+ fixThreshold?: number | undefined;
90
+ minObservationsToPrune?: number | undefined;
91
+ pruneThreshold?: number | undefined;
92
+ }>, {
93
+ enabled: boolean;
94
+ explorationRate: number;
95
+ fixThreshold: number;
96
+ minObservationsToPrune: number;
97
+ pruneThreshold: number;
98
+ }, unknown>>>;
99
+ templateOptimization: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
100
+ abTestSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
101
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
102
+ failureRateTrigger: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
103
+ frequency: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ enabled: boolean;
106
+ abTestSize: number;
107
+ failureRateTrigger: number;
108
+ frequency: number;
109
+ }, {
110
+ enabled?: boolean | undefined;
111
+ abTestSize?: number | undefined;
112
+ failureRateTrigger?: number | undefined;
113
+ frequency?: number | undefined;
114
+ }>, {
115
+ enabled: boolean;
116
+ abTestSize: number;
117
+ failureRateTrigger: number;
118
+ frequency: number;
119
+ }, unknown>>>;
120
+ }, "strip", z.ZodTypeAny, {
121
+ edgeLearning: {
122
+ enabled: boolean;
123
+ explorationRate: number;
124
+ fixThreshold: number;
125
+ minObservationsToPrune: number;
126
+ pruneThreshold: number;
127
+ };
128
+ templateOptimization: {
129
+ enabled: boolean;
130
+ abTestSize: number;
131
+ failureRateTrigger: number;
132
+ frequency: number;
133
+ };
134
+ }, {
135
+ edgeLearning?: unknown;
136
+ templateOptimization?: unknown;
137
+ }>, {
138
+ edgeLearning: {
139
+ enabled: boolean;
140
+ explorationRate: number;
141
+ fixThreshold: number;
142
+ minObservationsToPrune: number;
143
+ pruneThreshold: number;
144
+ };
145
+ templateOptimization: {
146
+ enabled: boolean;
147
+ abTestSize: number;
148
+ failureRateTrigger: number;
149
+ frequency: number;
150
+ };
151
+ }, unknown>>>;
152
+ performance: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
153
+ fileWatcherDebounceMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
154
+ indexCacheTtlSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
155
+ maxConcurrentProviders: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
156
+ maxQueryLatencyMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
157
+ resultCacheTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ fileWatcherDebounceMs: number;
160
+ indexCacheTtlSeconds: number;
161
+ maxConcurrentProviders: number;
162
+ maxQueryLatencyMs: number;
163
+ resultCacheTtlMs: number;
164
+ }, {
165
+ fileWatcherDebounceMs?: number | undefined;
166
+ indexCacheTtlSeconds?: number | undefined;
167
+ maxConcurrentProviders?: number | undefined;
168
+ maxQueryLatencyMs?: number | undefined;
169
+ resultCacheTtlMs?: number | undefined;
170
+ }>, {
171
+ fileWatcherDebounceMs: number;
172
+ indexCacheTtlSeconds: number;
173
+ maxConcurrentProviders: number;
174
+ maxQueryLatencyMs: number;
175
+ resultCacheTtlMs: number;
176
+ }, unknown>>>;
177
+ provenance: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
178
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
179
+ fullRetentionDays: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
180
+ keepSummaries: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
181
+ storagePath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
182
+ }, "strip", z.ZodTypeAny, {
183
+ enabled: boolean;
184
+ storagePath: string;
185
+ fullRetentionDays: number;
186
+ keepSummaries: boolean;
187
+ }, {
188
+ enabled?: boolean | undefined;
189
+ storagePath?: string | undefined;
190
+ fullRetentionDays?: number | undefined;
191
+ keepSummaries?: boolean | undefined;
192
+ }>, {
193
+ enabled: boolean;
194
+ storagePath: string;
195
+ fullRetentionDays: number;
196
+ keepSummaries: boolean;
197
+ }, unknown>>>;
198
+ providers: z.ZodEffects<z.ZodObject<{
199
+ byterover: z.ZodObject<{
200
+ enabled: z.ZodBoolean;
201
+ }, "strip", z.ZodTypeAny, {
202
+ enabled: boolean;
203
+ }, {
204
+ enabled: boolean;
205
+ }>;
206
+ gbrain: z.ZodOptional<z.ZodEffects<z.ZodObject<{
207
+ connectionString: z.ZodOptional<z.ZodString>;
208
+ enabled: z.ZodBoolean;
209
+ repoPath: z.ZodString;
210
+ searchMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["hybrid", "keyword", "vector"]>>>;
211
+ }, "strip", z.ZodTypeAny, {
212
+ enabled: boolean;
213
+ repoPath: string;
214
+ searchMode: "keyword" | "hybrid" | "vector";
215
+ connectionString?: string | undefined;
216
+ }, {
217
+ enabled: boolean;
218
+ repoPath: string;
219
+ connectionString?: string | undefined;
220
+ searchMode?: "keyword" | "hybrid" | "vector" | undefined;
221
+ }>, {
222
+ enabled: boolean;
223
+ repoPath: string;
224
+ searchMode: "keyword" | "hybrid" | "vector";
225
+ connectionString?: string | undefined;
226
+ }, unknown>>;
227
+ hindsight: z.ZodOptional<z.ZodEffects<z.ZodObject<{
228
+ caraParams: z.ZodOptional<z.ZodObject<{
229
+ empathy: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
230
+ literalism: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
231
+ skepticism: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
232
+ }, "strip", z.ZodTypeAny, {
233
+ empathy: number;
234
+ literalism: number;
235
+ skepticism: number;
236
+ }, {
237
+ empathy?: number | undefined;
238
+ literalism?: number | undefined;
239
+ skepticism?: number | undefined;
240
+ }>>;
241
+ connectionString: z.ZodString;
242
+ enabled: z.ZodBoolean;
243
+ networks: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
244
+ }, "strip", z.ZodTypeAny, {
245
+ enabled: boolean;
246
+ connectionString: string;
247
+ networks: string[];
248
+ caraParams?: {
249
+ empathy: number;
250
+ literalism: number;
251
+ skepticism: number;
252
+ } | undefined;
253
+ }, {
254
+ enabled: boolean;
255
+ connectionString: string;
256
+ caraParams?: {
257
+ empathy?: number | undefined;
258
+ literalism?: number | undefined;
259
+ skepticism?: number | undefined;
260
+ } | undefined;
261
+ networks?: string[] | undefined;
262
+ }>, {
263
+ enabled: boolean;
264
+ connectionString: string;
265
+ networks: string[];
266
+ caraParams?: {
267
+ empathy: number;
268
+ literalism: number;
269
+ skepticism: number;
270
+ } | undefined;
271
+ }, unknown>>;
272
+ honcho: z.ZodOptional<z.ZodEffects<z.ZodObject<{
273
+ apiKey: z.ZodString;
274
+ appId: z.ZodString;
275
+ enabled: z.ZodBoolean;
276
+ maxTokensPerQuery: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
277
+ userId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ enabled: boolean;
280
+ apiKey: string;
281
+ appId: string;
282
+ maxTokensPerQuery: number;
283
+ userId: string;
284
+ }, {
285
+ enabled: boolean;
286
+ apiKey: string;
287
+ appId: string;
288
+ maxTokensPerQuery?: number | undefined;
289
+ userId?: string | undefined;
290
+ }>, {
291
+ enabled: boolean;
292
+ apiKey: string;
293
+ appId: string;
294
+ maxTokensPerQuery: number;
295
+ userId: string;
296
+ }, unknown>>;
297
+ localMarkdown: z.ZodOptional<z.ZodEffects<z.ZodObject<{
298
+ enabled: z.ZodBoolean;
299
+ folders: z.ZodArray<z.ZodEffects<z.ZodObject<{
300
+ followWikilinks: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
301
+ name: z.ZodString;
302
+ path: z.ZodString;
303
+ readOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ path: string;
306
+ name: string;
307
+ readOnly: boolean;
308
+ followWikilinks: boolean;
309
+ }, {
310
+ path: string;
311
+ name: string;
312
+ readOnly?: boolean | undefined;
313
+ followWikilinks?: boolean | undefined;
314
+ }>, {
315
+ path: string;
316
+ name: string;
317
+ readOnly: boolean;
318
+ followWikilinks: boolean;
319
+ }, unknown>, "many">;
320
+ watchForChanges: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
321
+ }, "strip", z.ZodTypeAny, {
322
+ enabled: boolean;
323
+ watchForChanges: boolean;
324
+ folders: {
325
+ path: string;
326
+ name: string;
327
+ readOnly: boolean;
328
+ followWikilinks: boolean;
329
+ }[];
330
+ }, {
331
+ enabled: boolean;
332
+ folders: unknown[];
333
+ watchForChanges?: boolean | undefined;
334
+ }>, {
335
+ enabled: boolean;
336
+ watchForChanges: boolean;
337
+ folders: {
338
+ path: string;
339
+ name: string;
340
+ readOnly: boolean;
341
+ followWikilinks: boolean;
342
+ }[];
343
+ }, unknown>>;
344
+ memoryWiki: z.ZodOptional<z.ZodEffects<z.ZodObject<{
345
+ boostFresh: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
346
+ enabled: z.ZodBoolean;
347
+ vaultPath: z.ZodString;
348
+ writePageType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["concept", "entity"]>>>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ enabled: boolean;
351
+ vaultPath: string;
352
+ boostFresh: boolean;
353
+ writePageType: "entity" | "concept";
354
+ }, {
355
+ enabled: boolean;
356
+ vaultPath: string;
357
+ boostFresh?: boolean | undefined;
358
+ writePageType?: "entity" | "concept" | undefined;
359
+ }>, {
360
+ enabled: boolean;
361
+ vaultPath: string;
362
+ boostFresh: boolean;
363
+ writePageType: "entity" | "concept";
364
+ }, unknown>>;
365
+ obsidian: z.ZodOptional<z.ZodEffects<z.ZodObject<{
366
+ enabled: z.ZodBoolean;
367
+ ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
368
+ indexOnStartup: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
369
+ readOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
370
+ vaultPath: z.ZodString;
371
+ watchForChanges: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
372
+ }, "strip", z.ZodTypeAny, {
373
+ enabled: boolean;
374
+ indexOnStartup: boolean;
375
+ readOnly: boolean;
376
+ vaultPath: string;
377
+ watchForChanges: boolean;
378
+ ignorePatterns?: string[] | undefined;
379
+ }, {
380
+ enabled: boolean;
381
+ vaultPath: string;
382
+ ignorePatterns?: string[] | undefined;
383
+ indexOnStartup?: boolean | undefined;
384
+ readOnly?: boolean | undefined;
385
+ watchForChanges?: boolean | undefined;
386
+ }>, {
387
+ enabled: boolean;
388
+ indexOnStartup: boolean;
389
+ readOnly: boolean;
390
+ vaultPath: string;
391
+ watchForChanges: boolean;
392
+ ignorePatterns?: string[] | undefined;
393
+ }, unknown>>;
394
+ }, "strip", z.ZodTypeAny, {
395
+ byterover: {
396
+ enabled: boolean;
397
+ };
398
+ honcho?: {
399
+ enabled: boolean;
400
+ apiKey: string;
401
+ appId: string;
402
+ maxTokensPerQuery: number;
403
+ userId: string;
404
+ } | undefined;
405
+ hindsight?: {
406
+ enabled: boolean;
407
+ connectionString: string;
408
+ networks: string[];
409
+ caraParams?: {
410
+ empathy: number;
411
+ literalism: number;
412
+ skepticism: number;
413
+ } | undefined;
414
+ } | undefined;
415
+ obsidian?: {
416
+ enabled: boolean;
417
+ indexOnStartup: boolean;
418
+ readOnly: boolean;
419
+ vaultPath: string;
420
+ watchForChanges: boolean;
421
+ ignorePatterns?: string[] | undefined;
422
+ } | undefined;
423
+ gbrain?: {
424
+ enabled: boolean;
425
+ repoPath: string;
426
+ searchMode: "keyword" | "hybrid" | "vector";
427
+ connectionString?: string | undefined;
428
+ } | undefined;
429
+ localMarkdown?: {
430
+ enabled: boolean;
431
+ watchForChanges: boolean;
432
+ folders: {
433
+ path: string;
434
+ name: string;
435
+ readOnly: boolean;
436
+ followWikilinks: boolean;
437
+ }[];
438
+ } | undefined;
439
+ memoryWiki?: {
440
+ enabled: boolean;
441
+ vaultPath: string;
442
+ boostFresh: boolean;
443
+ writePageType: "entity" | "concept";
444
+ } | undefined;
445
+ }, {
446
+ byterover: {
447
+ enabled: boolean;
448
+ };
449
+ honcho?: unknown;
450
+ hindsight?: unknown;
451
+ obsidian?: unknown;
452
+ gbrain?: unknown;
453
+ localMarkdown?: unknown;
454
+ memoryWiki?: unknown;
455
+ }>, {
456
+ byterover: {
457
+ enabled: boolean;
458
+ };
459
+ honcho?: {
460
+ enabled: boolean;
461
+ apiKey: string;
462
+ appId: string;
463
+ maxTokensPerQuery: number;
464
+ userId: string;
465
+ } | undefined;
466
+ hindsight?: {
467
+ enabled: boolean;
468
+ connectionString: string;
469
+ networks: string[];
470
+ caraParams?: {
471
+ empathy: number;
472
+ literalism: number;
473
+ skepticism: number;
474
+ } | undefined;
475
+ } | undefined;
476
+ obsidian?: {
477
+ enabled: boolean;
478
+ indexOnStartup: boolean;
479
+ readOnly: boolean;
480
+ vaultPath: string;
481
+ watchForChanges: boolean;
482
+ ignorePatterns?: string[] | undefined;
483
+ } | undefined;
484
+ gbrain?: {
485
+ enabled: boolean;
486
+ repoPath: string;
487
+ searchMode: "keyword" | "hybrid" | "vector";
488
+ connectionString?: string | undefined;
489
+ } | undefined;
490
+ localMarkdown?: {
491
+ enabled: boolean;
492
+ watchForChanges: boolean;
493
+ folders: {
494
+ path: string;
495
+ name: string;
496
+ readOnly: boolean;
497
+ followWikilinks: boolean;
498
+ }[];
499
+ } | undefined;
500
+ memoryWiki?: {
501
+ enabled: boolean;
502
+ vaultPath: string;
503
+ boostFresh: boolean;
504
+ writePageType: "entity" | "concept";
505
+ } | undefined;
506
+ }, unknown>;
507
+ routing: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodObject<{
508
+ classificationMethod: z.ZodDefault<z.ZodOptional<z.ZodEnum<["auto", "llm"]>>>;
509
+ defaultMaxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
510
+ defaultStrategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["adaptive", "all", "manual"]>>>;
511
+ minRrfScore: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
512
+ rrfGapRatio: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
513
+ rrfK: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
514
+ }, "strip", z.ZodTypeAny, {
515
+ classificationMethod: "llm" | "auto";
516
+ defaultMaxResults: number;
517
+ defaultStrategy: "all" | "manual" | "adaptive";
518
+ minRrfScore: number;
519
+ rrfGapRatio: number;
520
+ rrfK: number;
521
+ }, {
522
+ classificationMethod?: "llm" | "auto" | undefined;
523
+ defaultMaxResults?: number | undefined;
524
+ defaultStrategy?: "all" | "manual" | "adaptive" | undefined;
525
+ minRrfScore?: number | undefined;
526
+ rrfGapRatio?: number | undefined;
527
+ rrfK?: number | undefined;
528
+ }>, {
529
+ classificationMethod: "llm" | "auto";
530
+ defaultMaxResults: number;
531
+ defaultStrategy: "all" | "manual" | "adaptive";
532
+ minRrfScore: number;
533
+ rrfGapRatio: number;
534
+ rrfK: number;
535
+ }, unknown>>>;
536
+ }, "strip", z.ZodTypeAny, {
537
+ performance: {
538
+ fileWatcherDebounceMs: number;
539
+ indexCacheTtlSeconds: number;
540
+ maxConcurrentProviders: number;
541
+ maxQueryLatencyMs: number;
542
+ resultCacheTtlMs: number;
543
+ };
544
+ enrichment: {
545
+ edges: {
546
+ from: string;
547
+ to: string;
548
+ }[];
549
+ };
550
+ optimization: {
551
+ edgeLearning: {
552
+ enabled: boolean;
553
+ explorationRate: number;
554
+ fixThreshold: number;
555
+ minObservationsToPrune: number;
556
+ pruneThreshold: number;
557
+ };
558
+ templateOptimization: {
559
+ enabled: boolean;
560
+ abTestSize: number;
561
+ failureRateTrigger: number;
562
+ frequency: number;
563
+ };
564
+ };
565
+ provenance: {
566
+ enabled: boolean;
567
+ storagePath: string;
568
+ fullRetentionDays: number;
569
+ keepSummaries: boolean;
570
+ };
571
+ providers: {
572
+ byterover: {
573
+ enabled: boolean;
574
+ };
575
+ honcho?: {
576
+ enabled: boolean;
577
+ apiKey: string;
578
+ appId: string;
579
+ maxTokensPerQuery: number;
580
+ userId: string;
581
+ } | undefined;
582
+ hindsight?: {
583
+ enabled: boolean;
584
+ connectionString: string;
585
+ networks: string[];
586
+ caraParams?: {
587
+ empathy: number;
588
+ literalism: number;
589
+ skepticism: number;
590
+ } | undefined;
591
+ } | undefined;
592
+ obsidian?: {
593
+ enabled: boolean;
594
+ indexOnStartup: boolean;
595
+ readOnly: boolean;
596
+ vaultPath: string;
597
+ watchForChanges: boolean;
598
+ ignorePatterns?: string[] | undefined;
599
+ } | undefined;
600
+ gbrain?: {
601
+ enabled: boolean;
602
+ repoPath: string;
603
+ searchMode: "keyword" | "hybrid" | "vector";
604
+ connectionString?: string | undefined;
605
+ } | undefined;
606
+ localMarkdown?: {
607
+ enabled: boolean;
608
+ watchForChanges: boolean;
609
+ folders: {
610
+ path: string;
611
+ name: string;
612
+ readOnly: boolean;
613
+ followWikilinks: boolean;
614
+ }[];
615
+ } | undefined;
616
+ memoryWiki?: {
617
+ enabled: boolean;
618
+ vaultPath: string;
619
+ boostFresh: boolean;
620
+ writePageType: "entity" | "concept";
621
+ } | undefined;
622
+ };
623
+ routing: {
624
+ classificationMethod: "llm" | "auto";
625
+ defaultMaxResults: number;
626
+ defaultStrategy: "all" | "manual" | "adaptive";
627
+ minRrfScore: number;
628
+ rrfGapRatio: number;
629
+ rrfK: number;
630
+ };
631
+ budget?: {
632
+ globalMonthlyCapCents: number;
633
+ warningThresholdPct: number;
634
+ weightReductionThresholdPct: number;
635
+ perProvider?: Record<string, {
636
+ monthlyCapCents: number;
637
+ maxQueriesPerMinute?: number | undefined;
638
+ }> | undefined;
639
+ } | undefined;
640
+ }, {
641
+ performance?: unknown;
642
+ budget?: unknown;
643
+ enrichment?: {
644
+ edges?: {
645
+ from: string;
646
+ to: string;
647
+ }[] | undefined;
648
+ } | undefined;
649
+ optimization?: unknown;
650
+ provenance?: unknown;
651
+ providers?: unknown;
652
+ routing?: unknown;
653
+ }>;
654
+ /**
655
+ * Validated swarm configuration type (camelCase TypeScript output).
656
+ */
657
+ export type SwarmConfig = z.output<typeof SwarmConfigSchema>;
658
+ /**
659
+ * Validate swarm config (throwing).
660
+ * @throws ZodError on invalid input
661
+ */
662
+ export declare function validateSwarmConfig(config: unknown): SwarmConfig;
663
+ /**
664
+ * Validate swarm config (non-throwing).
665
+ * Returns a SafeParseResult with success/error.
666
+ */
667
+ export declare function safeValidateSwarmConfig(config: unknown): z.SafeParseReturnType<unknown, SwarmConfig>;