@mmnto/totem 0.17.0 → 0.19.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/dist/compiler.d.ts +158 -0
- package/dist/compiler.d.ts.map +1 -0
- package/dist/compiler.js +213 -0
- package/dist/compiler.js.map +1 -0
- package/dist/compiler.test.d.ts +2 -0
- package/dist/compiler.test.d.ts.map +1 -0
- package/dist/compiler.test.js +350 -0
- package/dist/compiler.test.js.map +1 -0
- package/dist/config-schema.d.ts +194 -36
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +41 -10
- package/dist/config-schema.js.map +1 -1
- package/dist/config-schema.test.js +131 -1
- package/dist/config-schema.test.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/config-schema.d.ts
CHANGED
|
@@ -9,12 +9,12 @@ export declare const IngestTargetSchema: z.ZodObject<{
|
|
|
9
9
|
type: z.ZodEnum<["code", "session_log", "spec"]>;
|
|
10
10
|
strategy: z.ZodEnum<["typescript-ast", "markdown-heading", "session-log", "schema-file", "test-file"]>;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
glob: string;
|
|
13
12
|
type: "code" | "session_log" | "spec";
|
|
13
|
+
glob: string;
|
|
14
14
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
15
15
|
}, {
|
|
16
|
-
glob: string;
|
|
17
16
|
type: "code" | "session_log" | "spec";
|
|
17
|
+
glob: string;
|
|
18
18
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
19
19
|
}>;
|
|
20
20
|
export declare const OpenAIProviderSchema: z.ZodObject<{
|
|
@@ -76,17 +76,17 @@ export declare const EmbeddingProviderSchema: z.ZodDiscriminatedUnion<"provider"
|
|
|
76
76
|
}>]>;
|
|
77
77
|
export declare const DEFAULT_IGNORE_PATTERNS: string[];
|
|
78
78
|
export declare const ShellOrchestratorSchema: z.ZodObject<{
|
|
79
|
-
|
|
80
|
-
/** Shell command with {file} and {model} placeholders */
|
|
81
|
-
command: z.ZodString;
|
|
82
|
-
/** Default model name substituted for {model} if --model is not passed */
|
|
79
|
+
/** Default model name if --model is not passed */
|
|
83
80
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
84
|
-
/**
|
|
81
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
85
82
|
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
86
|
-
/**
|
|
83
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
87
84
|
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
88
|
-
/**
|
|
85
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
89
86
|
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
87
|
+
provider: z.ZodLiteral<"shell">;
|
|
88
|
+
/** Shell command with {file} and {model} placeholders */
|
|
89
|
+
command: z.ZodString;
|
|
90
90
|
}, "strip", z.ZodTypeAny, {
|
|
91
91
|
provider: "shell";
|
|
92
92
|
command: string;
|
|
@@ -102,18 +102,64 @@ export declare const ShellOrchestratorSchema: z.ZodObject<{
|
|
|
102
102
|
overrides?: Record<string, string> | undefined;
|
|
103
103
|
cacheTtls?: Record<string, number> | undefined;
|
|
104
104
|
}>;
|
|
105
|
+
export declare const GeminiOrchestratorSchema: z.ZodObject<{
|
|
106
|
+
/** Default model name if --model is not passed */
|
|
107
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
108
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
109
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
110
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
111
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
112
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
113
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
114
|
+
provider: z.ZodLiteral<"gemini">;
|
|
115
|
+
}, "strip", z.ZodTypeAny, {
|
|
116
|
+
provider: "gemini";
|
|
117
|
+
defaultModel?: string | undefined;
|
|
118
|
+
fallbackModel?: string | undefined;
|
|
119
|
+
overrides?: Record<string, string> | undefined;
|
|
120
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
121
|
+
}, {
|
|
122
|
+
provider: "gemini";
|
|
123
|
+
defaultModel?: string | undefined;
|
|
124
|
+
fallbackModel?: string | undefined;
|
|
125
|
+
overrides?: Record<string, string> | undefined;
|
|
126
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
export declare const AnthropicOrchestratorSchema: z.ZodObject<{
|
|
129
|
+
/** Default model name if --model is not passed */
|
|
130
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
131
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
132
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
133
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
134
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
135
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
136
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
137
|
+
provider: z.ZodLiteral<"anthropic">;
|
|
138
|
+
}, "strip", z.ZodTypeAny, {
|
|
139
|
+
provider: "anthropic";
|
|
140
|
+
defaultModel?: string | undefined;
|
|
141
|
+
fallbackModel?: string | undefined;
|
|
142
|
+
overrides?: Record<string, string> | undefined;
|
|
143
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
144
|
+
}, {
|
|
145
|
+
provider: "anthropic";
|
|
146
|
+
defaultModel?: string | undefined;
|
|
147
|
+
fallbackModel?: string | undefined;
|
|
148
|
+
overrides?: Record<string, string> | undefined;
|
|
149
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
150
|
+
}>;
|
|
105
151
|
export declare const OrchestratorSchema: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
106
|
-
|
|
107
|
-
/** Shell command with {file} and {model} placeholders */
|
|
108
|
-
command: z.ZodString;
|
|
109
|
-
/** Default model name substituted for {model} if --model is not passed */
|
|
152
|
+
/** Default model name if --model is not passed */
|
|
110
153
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
111
|
-
/**
|
|
154
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
112
155
|
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
113
|
-
/**
|
|
156
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
114
157
|
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
115
|
-
/**
|
|
158
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
116
159
|
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
160
|
+
provider: z.ZodLiteral<"shell">;
|
|
161
|
+
/** Shell command with {file} and {model} placeholders */
|
|
162
|
+
command: z.ZodString;
|
|
117
163
|
}, "strip", z.ZodTypeAny, {
|
|
118
164
|
provider: "shell";
|
|
119
165
|
command: string;
|
|
@@ -128,6 +174,50 @@ export declare const OrchestratorSchema: z.ZodDiscriminatedUnion<"provider", [z.
|
|
|
128
174
|
fallbackModel?: string | undefined;
|
|
129
175
|
overrides?: Record<string, string> | undefined;
|
|
130
176
|
cacheTtls?: Record<string, number> | undefined;
|
|
177
|
+
}>, z.ZodObject<{
|
|
178
|
+
/** Default model name if --model is not passed */
|
|
179
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
180
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
181
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
182
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
183
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
184
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
185
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
186
|
+
provider: z.ZodLiteral<"gemini">;
|
|
187
|
+
}, "strip", z.ZodTypeAny, {
|
|
188
|
+
provider: "gemini";
|
|
189
|
+
defaultModel?: string | undefined;
|
|
190
|
+
fallbackModel?: string | undefined;
|
|
191
|
+
overrides?: Record<string, string> | undefined;
|
|
192
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
193
|
+
}, {
|
|
194
|
+
provider: "gemini";
|
|
195
|
+
defaultModel?: string | undefined;
|
|
196
|
+
fallbackModel?: string | undefined;
|
|
197
|
+
overrides?: Record<string, string> | undefined;
|
|
198
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
199
|
+
}>, z.ZodObject<{
|
|
200
|
+
/** Default model name if --model is not passed */
|
|
201
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
202
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
203
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
204
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
205
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
206
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
207
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
208
|
+
provider: z.ZodLiteral<"anthropic">;
|
|
209
|
+
}, "strip", z.ZodTypeAny, {
|
|
210
|
+
provider: "anthropic";
|
|
211
|
+
defaultModel?: string | undefined;
|
|
212
|
+
fallbackModel?: string | undefined;
|
|
213
|
+
overrides?: Record<string, string> | undefined;
|
|
214
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
215
|
+
}, {
|
|
216
|
+
provider: "anthropic";
|
|
217
|
+
defaultModel?: string | undefined;
|
|
218
|
+
fallbackModel?: string | undefined;
|
|
219
|
+
overrides?: Record<string, string> | undefined;
|
|
220
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
131
221
|
}>]>;
|
|
132
222
|
export declare const DocTargetSchema: z.ZodObject<{
|
|
133
223
|
/** Relative path to the document */
|
|
@@ -154,12 +244,12 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
154
244
|
type: z.ZodEnum<["code", "session_log", "spec"]>;
|
|
155
245
|
strategy: z.ZodEnum<["typescript-ast", "markdown-heading", "session-log", "schema-file", "test-file"]>;
|
|
156
246
|
}, "strip", z.ZodTypeAny, {
|
|
157
|
-
glob: string;
|
|
158
247
|
type: "code" | "session_log" | "spec";
|
|
248
|
+
glob: string;
|
|
159
249
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
160
250
|
}, {
|
|
161
|
-
glob: string;
|
|
162
251
|
type: "code" | "session_log" | "spec";
|
|
252
|
+
glob: string;
|
|
163
253
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
164
254
|
}>, "many">;
|
|
165
255
|
/** Embedding provider configuration (optional for Lite tier) */
|
|
@@ -192,33 +282,96 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
192
282
|
baseUrl?: string | undefined;
|
|
193
283
|
}>]>>;
|
|
194
284
|
/** Optional: LLM orchestrator for spec/triage/shield commands */
|
|
195
|
-
orchestrator: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
285
|
+
orchestrator: z.ZodOptional<z.ZodEffects<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
286
|
+
/** Default model name if --model is not passed */
|
|
287
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
288
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
289
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
290
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
291
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
292
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
293
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
196
294
|
provider: z.ZodLiteral<"shell">;
|
|
197
295
|
/** Shell command with {file} and {model} placeholders */
|
|
198
296
|
command: z.ZodString;
|
|
199
|
-
|
|
297
|
+
}, "strip", z.ZodTypeAny, {
|
|
298
|
+
provider: "shell";
|
|
299
|
+
command: string;
|
|
300
|
+
defaultModel?: string | undefined;
|
|
301
|
+
fallbackModel?: string | undefined;
|
|
302
|
+
overrides?: Record<string, string> | undefined;
|
|
303
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
304
|
+
}, {
|
|
305
|
+
provider: "shell";
|
|
306
|
+
command: string;
|
|
307
|
+
defaultModel?: string | undefined;
|
|
308
|
+
fallbackModel?: string | undefined;
|
|
309
|
+
overrides?: Record<string, string> | undefined;
|
|
310
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
311
|
+
}>, z.ZodObject<{
|
|
312
|
+
/** Default model name if --model is not passed */
|
|
200
313
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
201
|
-
/**
|
|
314
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
202
315
|
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
203
|
-
/**
|
|
316
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
204
317
|
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
205
|
-
/**
|
|
318
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
206
319
|
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
320
|
+
provider: z.ZodLiteral<"gemini">;
|
|
207
321
|
}, "strip", z.ZodTypeAny, {
|
|
208
|
-
provider: "
|
|
209
|
-
|
|
322
|
+
provider: "gemini";
|
|
323
|
+
defaultModel?: string | undefined;
|
|
324
|
+
fallbackModel?: string | undefined;
|
|
325
|
+
overrides?: Record<string, string> | undefined;
|
|
326
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
327
|
+
}, {
|
|
328
|
+
provider: "gemini";
|
|
329
|
+
defaultModel?: string | undefined;
|
|
330
|
+
fallbackModel?: string | undefined;
|
|
331
|
+
overrides?: Record<string, string> | undefined;
|
|
332
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
333
|
+
}>, z.ZodObject<{
|
|
334
|
+
/** Default model name if --model is not passed */
|
|
335
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
336
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
337
|
+
fallbackModel: z.ZodOptional<z.ZodString>;
|
|
338
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
339
|
+
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
340
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
341
|
+
cacheTtls: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
342
|
+
provider: z.ZodLiteral<"anthropic">;
|
|
343
|
+
}, "strip", z.ZodTypeAny, {
|
|
344
|
+
provider: "anthropic";
|
|
210
345
|
defaultModel?: string | undefined;
|
|
211
346
|
fallbackModel?: string | undefined;
|
|
212
347
|
overrides?: Record<string, string> | undefined;
|
|
213
348
|
cacheTtls?: Record<string, number> | undefined;
|
|
214
349
|
}, {
|
|
350
|
+
provider: "anthropic";
|
|
351
|
+
defaultModel?: string | undefined;
|
|
352
|
+
fallbackModel?: string | undefined;
|
|
353
|
+
overrides?: Record<string, string> | undefined;
|
|
354
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
355
|
+
}>]>, {
|
|
215
356
|
provider: "shell";
|
|
216
357
|
command: string;
|
|
217
358
|
defaultModel?: string | undefined;
|
|
218
359
|
fallbackModel?: string | undefined;
|
|
219
360
|
overrides?: Record<string, string> | undefined;
|
|
220
361
|
cacheTtls?: Record<string, number> | undefined;
|
|
221
|
-
}
|
|
362
|
+
} | {
|
|
363
|
+
provider: "gemini";
|
|
364
|
+
defaultModel?: string | undefined;
|
|
365
|
+
fallbackModel?: string | undefined;
|
|
366
|
+
overrides?: Record<string, string> | undefined;
|
|
367
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
368
|
+
} | {
|
|
369
|
+
provider: "anthropic";
|
|
370
|
+
defaultModel?: string | undefined;
|
|
371
|
+
fallbackModel?: string | undefined;
|
|
372
|
+
overrides?: Record<string, string> | undefined;
|
|
373
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
374
|
+
}, unknown>>;
|
|
222
375
|
/** Optional: override the .totem/ directory path */
|
|
223
376
|
totemDir: z.ZodDefault<z.ZodString>;
|
|
224
377
|
/** Optional: override the .lancedb/ directory path */
|
|
@@ -246,8 +399,8 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
246
399
|
}>, "many">>;
|
|
247
400
|
}, "strip", z.ZodTypeAny, {
|
|
248
401
|
targets: {
|
|
249
|
-
glob: string;
|
|
250
402
|
type: "code" | "session_log" | "spec";
|
|
403
|
+
glob: string;
|
|
251
404
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
252
405
|
}[];
|
|
253
406
|
totemDir: string;
|
|
@@ -271,6 +424,18 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
271
424
|
fallbackModel?: string | undefined;
|
|
272
425
|
overrides?: Record<string, string> | undefined;
|
|
273
426
|
cacheTtls?: Record<string, number> | undefined;
|
|
427
|
+
} | {
|
|
428
|
+
provider: "gemini";
|
|
429
|
+
defaultModel?: string | undefined;
|
|
430
|
+
fallbackModel?: string | undefined;
|
|
431
|
+
overrides?: Record<string, string> | undefined;
|
|
432
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
433
|
+
} | {
|
|
434
|
+
provider: "anthropic";
|
|
435
|
+
defaultModel?: string | undefined;
|
|
436
|
+
fallbackModel?: string | undefined;
|
|
437
|
+
overrides?: Record<string, string> | undefined;
|
|
438
|
+
cacheTtls?: Record<string, number> | undefined;
|
|
274
439
|
} | undefined;
|
|
275
440
|
docs?: {
|
|
276
441
|
path: string;
|
|
@@ -279,8 +444,8 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
279
444
|
}[] | undefined;
|
|
280
445
|
}, {
|
|
281
446
|
targets: {
|
|
282
|
-
glob: string;
|
|
283
447
|
type: "code" | "session_log" | "spec";
|
|
448
|
+
glob: string;
|
|
284
449
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
285
450
|
}[];
|
|
286
451
|
embedding?: {
|
|
@@ -293,14 +458,7 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
293
458
|
dimensions?: number | undefined;
|
|
294
459
|
baseUrl?: string | undefined;
|
|
295
460
|
} | undefined;
|
|
296
|
-
orchestrator?:
|
|
297
|
-
provider: "shell";
|
|
298
|
-
command: string;
|
|
299
|
-
defaultModel?: string | undefined;
|
|
300
|
-
fallbackModel?: string | undefined;
|
|
301
|
-
overrides?: Record<string, string> | undefined;
|
|
302
|
-
cacheTtls?: Record<string, number> | undefined;
|
|
303
|
-
} | undefined;
|
|
461
|
+
orchestrator?: unknown;
|
|
304
462
|
totemDir?: string | undefined;
|
|
305
463
|
lanceDir?: string | undefined;
|
|
306
464
|
ignorePatterns?: string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,eAAO,MAAM,mBAAmB,8FAM9B,CAAC;AAEH,eAAO,MAAM,iBAAiB,4CAA0C,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGlC,CAAC;AAEH,eAAO,MAAM,uBAAuB,UAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,eAAO,MAAM,mBAAmB,8FAM9B,CAAC;AAEH,eAAO,MAAM,iBAAiB,4CAA0C,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGlC,CAAC;AAEH,eAAO,MAAM,uBAAuB,UAAyD,CAAC;AAgB9F,eAAO,MAAM,uBAAuB;IAVlC,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;IAMhF,yDAAyD;;;;;;;;;;;;;;;;EAGzD,CAAC;AAEH,eAAO,MAAM,wBAAwB;IAjBnC,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;;;;;;;;;;;;;EAchF,CAAC;AAEH,eAAO,MAAM,2BAA2B;IAtBtC,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;;;;;;;;;;;;;EAmBhF,CAAC;AAEH,eAAO,MAAM,kBAAkB;IA3B7B,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;IAMhF,yDAAyD;;;;;;;;;;;;;;;;;IAZzD,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;;;;;;;;;;;;;;IANhF,kDAAkD;;IAElD,4FAA4F;;IAE5F,+EAA+E;;IAE/E,gFAAgF;;;;;;;;;;;;;;;IAyBhF,CAAC;AAmBH,eAAO,MAAM,eAAe;IAC1B,oCAAoC;;IAEpC,yEAAyE;;IAEzE,6DAA6D;;;;;;;;;;EAE7D,CAAC;AAEH,eAAO,MAAM,gBAAgB,yCAAuC,CAAC;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;IAC5B,mEAAmE;;;;;;;;;;;;;;IAGnE,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGhE,iEAAiE;;QArEjE,kDAAkD;;QAElD,4FAA4F;;QAE5F,+EAA+E;;QAE/E,gFAAgF;;;QAMhF,yDAAyD;;;;;;;;;;;;;;;;;QAZzD,kDAAkD;;QAElD,4FAA4F;;QAE5F,+EAA+E;;QAE/E,gFAAgF;;;;;;;;;;;;;;;;QANhF,kDAAkD;;QAElD,4FAA4F;;QAE5F,+EAA+E;;QAE/E,gFAAgF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEhF,oDAAoD;;IAGpD,sDAAsD;;IAGtD,uDAAuD;;IAGvD,sHAAsH;;IAGtH,0DAA0D;;QAjC1D,oCAAoC;;QAEpC,yEAAyE;;QAEzE,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B7D,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAI7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CASvE"}
|
package/dist/config-schema.js
CHANGED
|
@@ -31,20 +31,51 @@ export const EmbeddingProviderSchema = z.discriminatedUnion('provider', [
|
|
|
31
31
|
OllamaProviderSchema,
|
|
32
32
|
]);
|
|
33
33
|
export const DEFAULT_IGNORE_PATTERNS = ['**/node_modules/**', '**/.lancedb/**', '**/dist/**'];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/** Default model name substituted for {model} if --model is not passed */
|
|
34
|
+
// ─── Orchestrator schemas ────────────────────────────
|
|
35
|
+
/** Fields shared across all orchestrator providers */
|
|
36
|
+
const BaseOrchestratorFields = {
|
|
37
|
+
/** Default model name if --model is not passed */
|
|
39
38
|
defaultModel: z.string().optional(),
|
|
40
|
-
/**
|
|
39
|
+
/** Fallback model used automatically if the primary model fails due to quota/rate limits */
|
|
41
40
|
fallbackModel: z.string().optional(),
|
|
42
|
-
/**
|
|
41
|
+
/** Per-command model overrides (e.g., { 'spec': 'gemini-3.1-pro-preview' }) */
|
|
43
42
|
overrides: z.record(z.string()).optional(),
|
|
44
|
-
/**
|
|
43
|
+
/** Per-command cache TTLs in seconds (e.g., { 'triage': 3600, 'shield': 0 }) */
|
|
45
44
|
cacheTtls: z.record(z.number()).optional(),
|
|
45
|
+
};
|
|
46
|
+
export const ShellOrchestratorSchema = z.object({
|
|
47
|
+
provider: z.literal('shell'),
|
|
48
|
+
/** Shell command with {file} and {model} placeholders */
|
|
49
|
+
command: z.string(),
|
|
50
|
+
...BaseOrchestratorFields,
|
|
46
51
|
});
|
|
47
|
-
export const
|
|
52
|
+
export const GeminiOrchestratorSchema = z.object({
|
|
53
|
+
provider: z.literal('gemini'),
|
|
54
|
+
...BaseOrchestratorFields,
|
|
55
|
+
});
|
|
56
|
+
export const AnthropicOrchestratorSchema = z.object({
|
|
57
|
+
provider: z.literal('anthropic'),
|
|
58
|
+
...BaseOrchestratorFields,
|
|
59
|
+
});
|
|
60
|
+
export const OrchestratorSchema = z.discriminatedUnion('provider', [
|
|
61
|
+
ShellOrchestratorSchema,
|
|
62
|
+
GeminiOrchestratorSchema,
|
|
63
|
+
AnthropicOrchestratorSchema,
|
|
64
|
+
]);
|
|
65
|
+
/**
|
|
66
|
+
* Auto-migrate legacy orchestrator configs that lack a `provider` field.
|
|
67
|
+
* If `command` is present without `provider`, injects `provider: 'shell'`.
|
|
68
|
+
*/
|
|
69
|
+
function autoMigrateOrchestrator(val) {
|
|
70
|
+
if (val &&
|
|
71
|
+
typeof val === 'object' &&
|
|
72
|
+
!Array.isArray(val) &&
|
|
73
|
+
'command' in val &&
|
|
74
|
+
!('provider' in val)) {
|
|
75
|
+
return { ...val, provider: 'shell' };
|
|
76
|
+
}
|
|
77
|
+
return val;
|
|
78
|
+
}
|
|
48
79
|
export const DocTargetSchema = z.object({
|
|
49
80
|
/** Relative path to the document */
|
|
50
81
|
path: z.string(),
|
|
@@ -60,7 +91,7 @@ export const TotemConfigSchema = z.object({
|
|
|
60
91
|
/** Embedding provider configuration (optional for Lite tier) */
|
|
61
92
|
embedding: EmbeddingProviderSchema.optional(),
|
|
62
93
|
/** Optional: LLM orchestrator for spec/triage/shield commands */
|
|
63
|
-
orchestrator: OrchestratorSchema.optional(),
|
|
94
|
+
orchestrator: z.preprocess(autoMigrateOrchestrator, OrchestratorSchema).optional(),
|
|
64
95
|
/** Optional: override the .totem/ directory path */
|
|
65
96
|
totemDir: z.string().default('.totem'),
|
|
66
97
|
/** Optional: override the .lancedb/ directory path */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE;IACtE,oBAAoB;IACpB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAE9F,
|
|
1
|
+
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { DocTargetSchema, getConfigTier, requireEmbedding, TotemConfigSchema, } from './config-schema.js';
|
|
2
|
+
import { DocTargetSchema, getConfigTier, OrchestratorSchema, requireEmbedding, TotemConfigSchema, } from './config-schema.js';
|
|
3
3
|
const BASE_TARGETS = [
|
|
4
4
|
{ glob: '**/*.md', type: 'spec', strategy: 'markdown-heading' },
|
|
5
5
|
];
|
|
@@ -9,6 +9,14 @@ const SHELL_ORCHESTRATOR = {
|
|
|
9
9
|
command: 'echo {file}',
|
|
10
10
|
defaultModel: 'test-model',
|
|
11
11
|
};
|
|
12
|
+
const GEMINI_ORCHESTRATOR = {
|
|
13
|
+
provider: 'gemini',
|
|
14
|
+
defaultModel: 'gemini-2.5-flash',
|
|
15
|
+
};
|
|
16
|
+
const ANTHROPIC_ORCHESTRATOR = {
|
|
17
|
+
provider: 'anthropic',
|
|
18
|
+
defaultModel: 'claude-sonnet-4-5-20250514',
|
|
19
|
+
};
|
|
12
20
|
describe('TotemConfigSchema', () => {
|
|
13
21
|
it('accepts config without embedding (Lite tier)', () => {
|
|
14
22
|
const result = TotemConfigSchema.safeParse({ targets: BASE_TARGETS });
|
|
@@ -55,6 +63,120 @@ describe('TotemConfigSchema', () => {
|
|
|
55
63
|
}
|
|
56
64
|
});
|
|
57
65
|
});
|
|
66
|
+
// ─── Orchestrator schema ─────────────────────────────
|
|
67
|
+
describe('OrchestratorSchema', () => {
|
|
68
|
+
it('accepts shell provider with command', () => {
|
|
69
|
+
const result = OrchestratorSchema.safeParse(SHELL_ORCHESTRATOR);
|
|
70
|
+
expect(result.success).toBe(true);
|
|
71
|
+
if (result.success) {
|
|
72
|
+
expect(result.data.provider).toBe('shell');
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
it('accepts gemini provider', () => {
|
|
76
|
+
const result = OrchestratorSchema.safeParse(GEMINI_ORCHESTRATOR);
|
|
77
|
+
expect(result.success).toBe(true);
|
|
78
|
+
if (result.success) {
|
|
79
|
+
expect(result.data.provider).toBe('gemini');
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
it('accepts anthropic provider', () => {
|
|
83
|
+
const result = OrchestratorSchema.safeParse(ANTHROPIC_ORCHESTRATOR);
|
|
84
|
+
expect(result.success).toBe(true);
|
|
85
|
+
if (result.success) {
|
|
86
|
+
expect(result.data.provider).toBe('anthropic');
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
it('accepts shared fields on all providers', () => {
|
|
90
|
+
const geminiWithShared = {
|
|
91
|
+
provider: 'gemini',
|
|
92
|
+
defaultModel: 'gemini-2.5-flash',
|
|
93
|
+
fallbackModel: 'gemini-2.5-pro',
|
|
94
|
+
overrides: { spec: 'gemini-2.5-pro' },
|
|
95
|
+
cacheTtls: { triage: 3600 },
|
|
96
|
+
};
|
|
97
|
+
const result = OrchestratorSchema.safeParse(geminiWithShared);
|
|
98
|
+
expect(result.success).toBe(true);
|
|
99
|
+
if (result.success) {
|
|
100
|
+
expect(result.data.defaultModel).toBe('gemini-2.5-flash');
|
|
101
|
+
expect(result.data.fallbackModel).toBe('gemini-2.5-pro');
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
it('rejects unknown provider', () => {
|
|
105
|
+
const result = OrchestratorSchema.safeParse({ provider: 'openai' });
|
|
106
|
+
expect(result.success).toBe(false);
|
|
107
|
+
});
|
|
108
|
+
it('rejects shell provider without command', () => {
|
|
109
|
+
const result = OrchestratorSchema.safeParse({ provider: 'shell', defaultModel: 'test' });
|
|
110
|
+
expect(result.success).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
// ─── Backwards compatibility ─────────────────────────
|
|
114
|
+
describe('orchestrator backwards compatibility', () => {
|
|
115
|
+
it('auto-migrates legacy config without provider to shell', () => {
|
|
116
|
+
const legacyConfig = {
|
|
117
|
+
targets: BASE_TARGETS,
|
|
118
|
+
orchestrator: {
|
|
119
|
+
command: 'gemini -e none < {file}',
|
|
120
|
+
defaultModel: 'gemini-2.5-flash',
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
const result = TotemConfigSchema.safeParse(legacyConfig);
|
|
124
|
+
expect(result.success).toBe(true);
|
|
125
|
+
if (result.success) {
|
|
126
|
+
expect(result.data.orchestrator.provider).toBe('shell');
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
it('preserves all legacy fields after migration', () => {
|
|
130
|
+
const legacyConfig = {
|
|
131
|
+
targets: BASE_TARGETS,
|
|
132
|
+
orchestrator: {
|
|
133
|
+
command: 'gemini -e none < {file}',
|
|
134
|
+
defaultModel: 'gemini-2.5-flash',
|
|
135
|
+
fallbackModel: 'gemini-2.5-pro',
|
|
136
|
+
overrides: { spec: 'gemini-2.5-pro' },
|
|
137
|
+
cacheTtls: { triage: 3600 },
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
const result = TotemConfigSchema.safeParse(legacyConfig);
|
|
141
|
+
expect(result.success).toBe(true);
|
|
142
|
+
if (result.success) {
|
|
143
|
+
const orch = result.data.orchestrator;
|
|
144
|
+
expect(orch.provider).toBe('shell');
|
|
145
|
+
expect(orch.defaultModel).toBe('gemini-2.5-flash');
|
|
146
|
+
expect(orch.fallbackModel).toBe('gemini-2.5-pro');
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
it('does not inject provider when it is already present', () => {
|
|
150
|
+
const explicitConfig = {
|
|
151
|
+
targets: BASE_TARGETS,
|
|
152
|
+
orchestrator: GEMINI_ORCHESTRATOR,
|
|
153
|
+
};
|
|
154
|
+
const result = TotemConfigSchema.safeParse(explicitConfig);
|
|
155
|
+
expect(result.success).toBe(true);
|
|
156
|
+
if (result.success) {
|
|
157
|
+
expect(result.data.orchestrator.provider).toBe('gemini');
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
// ─── Config with API orchestrators ───────────────────
|
|
162
|
+
describe('TotemConfigSchema with API orchestrators', () => {
|
|
163
|
+
it('accepts config with gemini orchestrator (Full tier)', () => {
|
|
164
|
+
const result = TotemConfigSchema.safeParse({
|
|
165
|
+
targets: BASE_TARGETS,
|
|
166
|
+
embedding: OPENAI_EMBEDDING,
|
|
167
|
+
orchestrator: GEMINI_ORCHESTRATOR,
|
|
168
|
+
});
|
|
169
|
+
expect(result.success).toBe(true);
|
|
170
|
+
});
|
|
171
|
+
it('accepts config with anthropic orchestrator (Full tier)', () => {
|
|
172
|
+
const result = TotemConfigSchema.safeParse({
|
|
173
|
+
targets: BASE_TARGETS,
|
|
174
|
+
embedding: OPENAI_EMBEDDING,
|
|
175
|
+
orchestrator: ANTHROPIC_ORCHESTRATOR,
|
|
176
|
+
});
|
|
177
|
+
expect(result.success).toBe(true);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
58
180
|
describe('DocTargetSchema', () => {
|
|
59
181
|
it('parses valid doc target', () => {
|
|
60
182
|
const result = DocTargetSchema.safeParse({
|
|
@@ -117,6 +239,14 @@ describe('getConfigTier', () => {
|
|
|
117
239
|
const config = { ...base, orchestrator: SHELL_ORCHESTRATOR };
|
|
118
240
|
expect(getConfigTier(config)).toBe('lite');
|
|
119
241
|
});
|
|
242
|
+
it('returns full for gemini API orchestrator', () => {
|
|
243
|
+
const config = { ...base, embedding: OPENAI_EMBEDDING, orchestrator: GEMINI_ORCHESTRATOR };
|
|
244
|
+
expect(getConfigTier(config)).toBe('full');
|
|
245
|
+
});
|
|
246
|
+
it('returns full for anthropic API orchestrator', () => {
|
|
247
|
+
const config = { ...base, embedding: OPENAI_EMBEDDING, orchestrator: ANTHROPIC_ORCHESTRATOR };
|
|
248
|
+
expect(getConfigTier(config)).toBe('full');
|
|
249
|
+
});
|
|
120
250
|
});
|
|
121
251
|
describe('requireEmbedding', () => {
|
|
122
252
|
const base = TotemConfigSchema.parse({ targets: BASE_TARGETS });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.test.js","sourceRoot":"","sources":["../src/config-schema.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-schema.test.js","sourceRoot":"","sources":["../src/config-schema.test.ts"],"names":[],"mappings":"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"}
|