@mmnto/totem 0.13.0 → 0.15.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/config-schema.d.ts +69 -11
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +38 -2
- package/dist/config-schema.js.map +1 -1
- package/dist/config-schema.test.d.ts +2 -0
- package/dist/config-schema.test.d.ts.map +1 -0
- package/dist/config-schema.test.js +137 -0
- package/dist/config-schema.test.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ingest/pipeline.d.ts.map +1 -1
- package/dist/ingest/pipeline.js +3 -1
- package/dist/ingest/pipeline.js.map +1 -1
- package/dist/ingest/pipeline.test.js +10 -0
- package/dist/ingest/pipeline.test.js.map +1 -1
- package/package.json +1 -1
package/dist/config-schema.d.ts
CHANGED
|
@@ -129,6 +129,24 @@ export declare const OrchestratorSchema: z.ZodDiscriminatedUnion<"provider", [z.
|
|
|
129
129
|
overrides?: Record<string, string> | undefined;
|
|
130
130
|
cacheTtls?: Record<string, number> | undefined;
|
|
131
131
|
}>]>;
|
|
132
|
+
export declare const DocTargetSchema: z.ZodObject<{
|
|
133
|
+
/** Relative path to the document */
|
|
134
|
+
path: z.ZodString;
|
|
135
|
+
/** Description of the document's purpose (included in the LLM prompt) */
|
|
136
|
+
description: z.ZodString;
|
|
137
|
+
/** When to remind/auto-run: 'post-release' or 'on-change' */
|
|
138
|
+
trigger: z.ZodDefault<z.ZodEnum<["post-release", "on-change"]>>;
|
|
139
|
+
}, "strip", z.ZodTypeAny, {
|
|
140
|
+
path: string;
|
|
141
|
+
description: string;
|
|
142
|
+
trigger: "post-release" | "on-change";
|
|
143
|
+
}, {
|
|
144
|
+
path: string;
|
|
145
|
+
description: string;
|
|
146
|
+
trigger?: "post-release" | "on-change" | undefined;
|
|
147
|
+
}>;
|
|
148
|
+
export declare const ConfigTierSchema: z.ZodEnum<["lite", "standard", "full"]>;
|
|
149
|
+
export type ConfigTier = z.infer<typeof ConfigTierSchema>;
|
|
132
150
|
export declare const TotemConfigSchema: z.ZodObject<{
|
|
133
151
|
/** Glob patterns and chunking strategies for each ingest target */
|
|
134
152
|
targets: z.ZodArray<z.ZodObject<{
|
|
@@ -144,8 +162,8 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
144
162
|
type: "code" | "session_log" | "spec";
|
|
145
163
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
146
164
|
}>, "many">;
|
|
147
|
-
/** Embedding provider configuration */
|
|
148
|
-
embedding: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
165
|
+
/** Embedding provider configuration (optional for Lite tier) */
|
|
166
|
+
embedding: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
149
167
|
provider: z.ZodLiteral<"openai">;
|
|
150
168
|
model: z.ZodDefault<z.ZodString>;
|
|
151
169
|
dimensions: z.ZodOptional<z.ZodNumber>;
|
|
@@ -172,7 +190,7 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
172
190
|
model?: string | undefined;
|
|
173
191
|
dimensions?: number | undefined;
|
|
174
192
|
baseUrl?: string | undefined;
|
|
175
|
-
}>]
|
|
193
|
+
}>]>>;
|
|
176
194
|
/** Optional: LLM orchestrator for spec/triage/shield commands */
|
|
177
195
|
orchestrator: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
|
|
178
196
|
provider: z.ZodLiteral<"shell">;
|
|
@@ -209,13 +227,34 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
209
227
|
ignorePatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
210
228
|
/** Character count threshold for MCP context payload warnings (~4 chars ≈ 1 token). Default: 40,000 (~10k tokens). */
|
|
211
229
|
contextWarningThreshold: z.ZodDefault<z.ZodNumber>;
|
|
230
|
+
/** Optional: documents to auto-update via `totem docs` */
|
|
231
|
+
docs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
232
|
+
/** Relative path to the document */
|
|
233
|
+
path: z.ZodString;
|
|
234
|
+
/** Description of the document's purpose (included in the LLM prompt) */
|
|
235
|
+
description: z.ZodString;
|
|
236
|
+
/** When to remind/auto-run: 'post-release' or 'on-change' */
|
|
237
|
+
trigger: z.ZodDefault<z.ZodEnum<["post-release", "on-change"]>>;
|
|
238
|
+
}, "strip", z.ZodTypeAny, {
|
|
239
|
+
path: string;
|
|
240
|
+
description: string;
|
|
241
|
+
trigger: "post-release" | "on-change";
|
|
242
|
+
}, {
|
|
243
|
+
path: string;
|
|
244
|
+
description: string;
|
|
245
|
+
trigger?: "post-release" | "on-change" | undefined;
|
|
246
|
+
}>, "many">>;
|
|
212
247
|
}, "strip", z.ZodTypeAny, {
|
|
213
248
|
targets: {
|
|
214
249
|
glob: string;
|
|
215
250
|
type: "code" | "session_log" | "spec";
|
|
216
251
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
217
252
|
}[];
|
|
218
|
-
|
|
253
|
+
totemDir: string;
|
|
254
|
+
lanceDir: string;
|
|
255
|
+
ignorePatterns: string[];
|
|
256
|
+
contextWarningThreshold: number;
|
|
257
|
+
embedding?: {
|
|
219
258
|
provider: "openai";
|
|
220
259
|
model: string;
|
|
221
260
|
dimensions?: number | undefined;
|
|
@@ -224,11 +263,7 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
224
263
|
model: string;
|
|
225
264
|
baseUrl: string;
|
|
226
265
|
dimensions?: number | undefined;
|
|
227
|
-
};
|
|
228
|
-
totemDir: string;
|
|
229
|
-
lanceDir: string;
|
|
230
|
-
ignorePatterns: string[];
|
|
231
|
-
contextWarningThreshold: number;
|
|
266
|
+
} | undefined;
|
|
232
267
|
orchestrator?: {
|
|
233
268
|
provider: "shell";
|
|
234
269
|
command: string;
|
|
@@ -237,13 +272,18 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
237
272
|
overrides?: Record<string, string> | undefined;
|
|
238
273
|
cacheTtls?: Record<string, number> | undefined;
|
|
239
274
|
} | undefined;
|
|
275
|
+
docs?: {
|
|
276
|
+
path: string;
|
|
277
|
+
description: string;
|
|
278
|
+
trigger: "post-release" | "on-change";
|
|
279
|
+
}[] | undefined;
|
|
240
280
|
}, {
|
|
241
281
|
targets: {
|
|
242
282
|
glob: string;
|
|
243
283
|
type: "code" | "session_log" | "spec";
|
|
244
284
|
strategy: "typescript-ast" | "markdown-heading" | "session-log" | "schema-file" | "test-file";
|
|
245
285
|
}[];
|
|
246
|
-
embedding
|
|
286
|
+
embedding?: {
|
|
247
287
|
provider: "openai";
|
|
248
288
|
model?: string | undefined;
|
|
249
289
|
dimensions?: number | undefined;
|
|
@@ -252,7 +292,7 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
252
292
|
model?: string | undefined;
|
|
253
293
|
dimensions?: number | undefined;
|
|
254
294
|
baseUrl?: string | undefined;
|
|
255
|
-
};
|
|
295
|
+
} | undefined;
|
|
256
296
|
orchestrator?: {
|
|
257
297
|
provider: "shell";
|
|
258
298
|
command: string;
|
|
@@ -265,11 +305,29 @@ export declare const TotemConfigSchema: z.ZodObject<{
|
|
|
265
305
|
lanceDir?: string | undefined;
|
|
266
306
|
ignorePatterns?: string[] | undefined;
|
|
267
307
|
contextWarningThreshold?: number | undefined;
|
|
308
|
+
docs?: {
|
|
309
|
+
path: string;
|
|
310
|
+
description: string;
|
|
311
|
+
trigger?: "post-release" | "on-change" | undefined;
|
|
312
|
+
}[] | undefined;
|
|
268
313
|
}>;
|
|
269
314
|
export type ChunkStrategy = z.infer<typeof ChunkStrategySchema>;
|
|
270
315
|
export type ContentType = z.infer<typeof ContentTypeSchema>;
|
|
271
316
|
export type IngestTarget = z.infer<typeof IngestTargetSchema>;
|
|
272
317
|
export type EmbeddingProvider = z.infer<typeof EmbeddingProviderSchema>;
|
|
273
318
|
export type Orchestrator = z.infer<typeof OrchestratorSchema>;
|
|
319
|
+
export type DocTarget = z.infer<typeof DocTargetSchema>;
|
|
274
320
|
export type TotemConfig = z.infer<typeof TotemConfigSchema>;
|
|
321
|
+
/**
|
|
322
|
+
* Determine the configuration tier based on what's configured.
|
|
323
|
+
* - lite: no embedding, no orchestrator (memory-only features)
|
|
324
|
+
* - standard: embedding configured (sync, search, stats)
|
|
325
|
+
* - full: embedding + orchestrator (all commands)
|
|
326
|
+
*/
|
|
327
|
+
export declare function getConfigTier(config: TotemConfig): ConfigTier;
|
|
328
|
+
/**
|
|
329
|
+
* Assert that an embedding provider is configured. Throws a friendly error
|
|
330
|
+
* directing the user to configure one via `totem init` or `totem.config.ts`.
|
|
331
|
+
*/
|
|
332
|
+
export declare function requireEmbedding(config: TotemConfig): EmbeddingProvider;
|
|
275
333
|
//# sourceMappingURL=config-schema.d.ts.map
|
|
@@ -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;AAE9F,eAAO,MAAM,uBAAuB;;IAElC,yDAAyD;;IAEzD,0EAA0E;;IAE1E,qGAAqG;;IAErG,wFAAwF;;IAExF,yFAAyF;;;;;;;;;;;;;;;;EAEzF,CAAC;AAEH,eAAO,MAAM,kBAAkB;;IAZ7B,yDAAyD;;IAEzD,0EAA0E;;IAE1E,qGAAqG;;IAErG,wFAAwF;;IAExF,yFAAyF;;;;;;;;;;;;;;;;IAIE,CAAC;AAE9F,eAAO,MAAM,iBAAiB;IAC5B,mEAAmE;;;;;;;;;;;;;;IAGnE,
|
|
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;AAE9F,eAAO,MAAM,uBAAuB;;IAElC,yDAAyD;;IAEzD,0EAA0E;;IAE1E,qGAAqG;;IAErG,wFAAwF;;IAExF,yFAAyF;;;;;;;;;;;;;;;;EAEzF,CAAC;AAEH,eAAO,MAAM,kBAAkB;;IAZ7B,yDAAyD;;IAEzD,0EAA0E;;IAE1E,qGAAqG;;IAErG,wFAAwF;;IAExF,yFAAyF;;;;;;;;;;;;;;;;IAIE,CAAC;AAE9F,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;;;QAjCjE,yDAAyD;;QAEzD,0EAA0E;;QAE1E,qGAAqG;;QAErG,wFAAwF;;QAExF,yFAAyF;;;;;;;;;;;;;;;;;IA4BzF,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
|
@@ -45,11 +45,20 @@ export const ShellOrchestratorSchema = z.object({
|
|
|
45
45
|
cacheTtls: z.record(z.number()).optional(),
|
|
46
46
|
});
|
|
47
47
|
export const OrchestratorSchema = z.discriminatedUnion('provider', [ShellOrchestratorSchema]);
|
|
48
|
+
export const DocTargetSchema = z.object({
|
|
49
|
+
/** Relative path to the document */
|
|
50
|
+
path: z.string(),
|
|
51
|
+
/** Description of the document's purpose (included in the LLM prompt) */
|
|
52
|
+
description: z.string(),
|
|
53
|
+
/** When to remind/auto-run: 'post-release' or 'on-change' */
|
|
54
|
+
trigger: z.enum(['post-release', 'on-change']).default('post-release'),
|
|
55
|
+
});
|
|
56
|
+
export const ConfigTierSchema = z.enum(['lite', 'standard', 'full']);
|
|
48
57
|
export const TotemConfigSchema = z.object({
|
|
49
58
|
/** Glob patterns and chunking strategies for each ingest target */
|
|
50
59
|
targets: z.array(IngestTargetSchema).min(1),
|
|
51
|
-
/** Embedding provider configuration */
|
|
52
|
-
embedding: EmbeddingProviderSchema,
|
|
60
|
+
/** Embedding provider configuration (optional for Lite tier) */
|
|
61
|
+
embedding: EmbeddingProviderSchema.optional(),
|
|
53
62
|
/** Optional: LLM orchestrator for spec/triage/shield commands */
|
|
54
63
|
orchestrator: OrchestratorSchema.optional(),
|
|
55
64
|
/** Optional: override the .totem/ directory path */
|
|
@@ -60,5 +69,32 @@ export const TotemConfigSchema = z.object({
|
|
|
60
69
|
ignorePatterns: z.array(z.string()).default(DEFAULT_IGNORE_PATTERNS),
|
|
61
70
|
/** Character count threshold for MCP context payload warnings (~4 chars ≈ 1 token). Default: 40,000 (~10k tokens). */
|
|
62
71
|
contextWarningThreshold: z.number().int().positive().default(40_000),
|
|
72
|
+
/** Optional: documents to auto-update via `totem docs` */
|
|
73
|
+
docs: z.array(DocTargetSchema).optional(),
|
|
63
74
|
});
|
|
75
|
+
/**
|
|
76
|
+
* Determine the configuration tier based on what's configured.
|
|
77
|
+
* - lite: no embedding, no orchestrator (memory-only features)
|
|
78
|
+
* - standard: embedding configured (sync, search, stats)
|
|
79
|
+
* - full: embedding + orchestrator (all commands)
|
|
80
|
+
*/
|
|
81
|
+
export function getConfigTier(config) {
|
|
82
|
+
if (!config.embedding)
|
|
83
|
+
return 'lite';
|
|
84
|
+
if (!config.orchestrator)
|
|
85
|
+
return 'standard';
|
|
86
|
+
return 'full';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Assert that an embedding provider is configured. Throws a friendly error
|
|
90
|
+
* directing the user to configure one via `totem init` or `totem.config.ts`.
|
|
91
|
+
*/
|
|
92
|
+
export function requireEmbedding(config) {
|
|
93
|
+
if (!config.embedding) {
|
|
94
|
+
throw new Error(`[Totem Error] No embedding provider configured.\n` +
|
|
95
|
+
`This command requires embeddings (Lite tier does not support it).\n` +
|
|
96
|
+
`Set OPENAI_API_KEY in your .env and re-run \`totem init\`, or add an 'embedding' block to totem.config.ts.`);
|
|
97
|
+
}
|
|
98
|
+
return config.embedding;
|
|
99
|
+
}
|
|
64
100
|
//# sourceMappingURL=config-schema.js.map
|
|
@@ -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,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5B,yDAAyD;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,0EAA0E;IAC1E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,qGAAqG;IACrG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,wFAAwF;IACxF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,yFAAyF;IACzF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,mEAAmE;IACnE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,
|
|
1
|
+
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-schema.test.d.ts","sourceRoot":"","sources":["../src/config-schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { DocTargetSchema, getConfigTier, requireEmbedding, TotemConfigSchema, } from './config-schema.js';
|
|
3
|
+
const BASE_TARGETS = [
|
|
4
|
+
{ glob: '**/*.md', type: 'spec', strategy: 'markdown-heading' },
|
|
5
|
+
];
|
|
6
|
+
const OPENAI_EMBEDDING = { provider: 'openai', model: 'text-embedding-3-small' };
|
|
7
|
+
const SHELL_ORCHESTRATOR = {
|
|
8
|
+
provider: 'shell',
|
|
9
|
+
command: 'echo {file}',
|
|
10
|
+
defaultModel: 'test-model',
|
|
11
|
+
};
|
|
12
|
+
describe('TotemConfigSchema', () => {
|
|
13
|
+
it('accepts config without embedding (Lite tier)', () => {
|
|
14
|
+
const result = TotemConfigSchema.safeParse({ targets: BASE_TARGETS });
|
|
15
|
+
expect(result.success).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
it('accepts config with embedding but no orchestrator (Standard tier)', () => {
|
|
18
|
+
const result = TotemConfigSchema.safeParse({
|
|
19
|
+
targets: BASE_TARGETS,
|
|
20
|
+
embedding: OPENAI_EMBEDDING,
|
|
21
|
+
});
|
|
22
|
+
expect(result.success).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
it('accepts config with embedding and orchestrator (Full tier)', () => {
|
|
25
|
+
const result = TotemConfigSchema.safeParse({
|
|
26
|
+
targets: BASE_TARGETS,
|
|
27
|
+
embedding: OPENAI_EMBEDDING,
|
|
28
|
+
orchestrator: SHELL_ORCHESTRATOR,
|
|
29
|
+
});
|
|
30
|
+
expect(result.success).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
it('rejects config with no targets', () => {
|
|
33
|
+
const result = TotemConfigSchema.safeParse({ targets: [] });
|
|
34
|
+
expect(result.success).toBe(false);
|
|
35
|
+
});
|
|
36
|
+
it('accepts config with docs array', () => {
|
|
37
|
+
const result = TotemConfigSchema.safeParse({
|
|
38
|
+
targets: BASE_TARGETS,
|
|
39
|
+
docs: [
|
|
40
|
+
{ path: 'README.md', description: 'Public README', trigger: 'post-release' },
|
|
41
|
+
{ path: 'docs/roadmap.md', description: 'Roadmap' },
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
expect(result.success).toBe(true);
|
|
45
|
+
if (result.success) {
|
|
46
|
+
expect(result.data.docs).toHaveLength(2);
|
|
47
|
+
expect(result.data.docs[1].trigger).toBe('post-release'); // default
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
it('accepts config without docs (optional)', () => {
|
|
51
|
+
const result = TotemConfigSchema.safeParse({ targets: BASE_TARGETS });
|
|
52
|
+
expect(result.success).toBe(true);
|
|
53
|
+
if (result.success) {
|
|
54
|
+
expect(result.data.docs).toBeUndefined();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('DocTargetSchema', () => {
|
|
59
|
+
it('parses valid doc target', () => {
|
|
60
|
+
const result = DocTargetSchema.safeParse({
|
|
61
|
+
path: 'README.md',
|
|
62
|
+
description: 'Public README',
|
|
63
|
+
trigger: 'post-release',
|
|
64
|
+
});
|
|
65
|
+
expect(result.success).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it('defaults trigger to post-release', () => {
|
|
68
|
+
const result = DocTargetSchema.parse({
|
|
69
|
+
path: 'README.md',
|
|
70
|
+
description: 'Public README',
|
|
71
|
+
});
|
|
72
|
+
expect(result.trigger).toBe('post-release');
|
|
73
|
+
});
|
|
74
|
+
it('accepts on-change trigger', () => {
|
|
75
|
+
const result = DocTargetSchema.safeParse({
|
|
76
|
+
path: 'docs/architecture.md',
|
|
77
|
+
description: 'Architecture',
|
|
78
|
+
trigger: 'on-change',
|
|
79
|
+
});
|
|
80
|
+
expect(result.success).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it('rejects invalid trigger', () => {
|
|
83
|
+
const result = DocTargetSchema.safeParse({
|
|
84
|
+
path: 'README.md',
|
|
85
|
+
description: 'test',
|
|
86
|
+
trigger: 'invalid',
|
|
87
|
+
});
|
|
88
|
+
expect(result.success).toBe(false);
|
|
89
|
+
});
|
|
90
|
+
it('rejects missing path', () => {
|
|
91
|
+
const result = DocTargetSchema.safeParse({
|
|
92
|
+
description: 'test',
|
|
93
|
+
});
|
|
94
|
+
expect(result.success).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
it('rejects missing description', () => {
|
|
97
|
+
const result = DocTargetSchema.safeParse({
|
|
98
|
+
path: 'README.md',
|
|
99
|
+
});
|
|
100
|
+
expect(result.success).toBe(false);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('getConfigTier', () => {
|
|
104
|
+
const base = TotemConfigSchema.parse({ targets: BASE_TARGETS });
|
|
105
|
+
it('returns lite when no embedding and no orchestrator', () => {
|
|
106
|
+
expect(getConfigTier(base)).toBe('lite');
|
|
107
|
+
});
|
|
108
|
+
it('returns standard when embedding is present but no orchestrator', () => {
|
|
109
|
+
const config = { ...base, embedding: OPENAI_EMBEDDING };
|
|
110
|
+
expect(getConfigTier(config)).toBe('standard');
|
|
111
|
+
});
|
|
112
|
+
it('returns full when both embedding and orchestrator are present', () => {
|
|
113
|
+
const config = { ...base, embedding: OPENAI_EMBEDDING, orchestrator: SHELL_ORCHESTRATOR };
|
|
114
|
+
expect(getConfigTier(config)).toBe('full');
|
|
115
|
+
});
|
|
116
|
+
it('returns lite when orchestrator is present but embedding is not', () => {
|
|
117
|
+
const config = { ...base, orchestrator: SHELL_ORCHESTRATOR };
|
|
118
|
+
expect(getConfigTier(config)).toBe('lite');
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('requireEmbedding', () => {
|
|
122
|
+
const base = TotemConfigSchema.parse({ targets: BASE_TARGETS });
|
|
123
|
+
it('returns embedding provider when configured', () => {
|
|
124
|
+
const config = { ...base, embedding: OPENAI_EMBEDDING };
|
|
125
|
+
expect(requireEmbedding(config)).toEqual(OPENAI_EMBEDDING);
|
|
126
|
+
});
|
|
127
|
+
it('throws when embedding is undefined', () => {
|
|
128
|
+
expect(() => requireEmbedding(base)).toThrow('No embedding provider configured');
|
|
129
|
+
});
|
|
130
|
+
it('error message mentions Lite tier', () => {
|
|
131
|
+
expect(() => requireEmbedding(base)).toThrow('Lite tier');
|
|
132
|
+
});
|
|
133
|
+
it('error message mentions totem init', () => {
|
|
134
|
+
expect(() => requireEmbedding(base)).toThrow('totem init');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=config-schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-schema.test.js","sourceRoot":"","sources":["../src/config-schema.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { ChunkStrategy, ContentType, EmbeddingProvider, IngestTarget, Orchestrator, TotemConfig, } from './config-schema.js';
|
|
2
|
-
export { ChunkStrategySchema, ContentTypeSchema, DEFAULT_IGNORE_PATTERNS, EmbeddingProviderSchema, IngestTargetSchema, OllamaProviderSchema, OpenAIProviderSchema, OrchestratorSchema, ShellOrchestratorSchema, TotemConfigSchema, } from './config-schema.js';
|
|
1
|
+
export type { ChunkStrategy, ConfigTier, ContentType, DocTarget, EmbeddingProvider, IngestTarget, Orchestrator, TotemConfig, } from './config-schema.js';
|
|
2
|
+
export { ChunkStrategySchema, ConfigTierSchema, ContentTypeSchema, DEFAULT_IGNORE_PATTERNS, DocTargetSchema, EmbeddingProviderSchema, getConfigTier, IngestTargetSchema, OllamaProviderSchema, OpenAIProviderSchema, OrchestratorSchema, requireEmbedding, ShellOrchestratorSchema, TotemConfigSchema, } from './config-schema.js';
|
|
3
3
|
export type { Chunk, SearchOptions, SearchResult, StoredChunk, SyncOptions, SyncState, } from './types.js';
|
|
4
4
|
export type { Chunker } from './chunkers/chunker.js';
|
|
5
5
|
export { createChunker } from './chunkers/chunker.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ChunkStrategySchema, ContentTypeSchema, DEFAULT_IGNORE_PATTERNS, EmbeddingProviderSchema, IngestTargetSchema, OllamaProviderSchema, OpenAIProviderSchema, OrchestratorSchema, ShellOrchestratorSchema, TotemConfigSchema, } from './config-schema.js';
|
|
1
|
+
export { ChunkStrategySchema, ConfigTierSchema, ContentTypeSchema, DEFAULT_IGNORE_PATTERNS, DocTargetSchema, EmbeddingProviderSchema, getConfigTier, IngestTargetSchema, OllamaProviderSchema, OpenAIProviderSchema, OrchestratorSchema, requireEmbedding, ShellOrchestratorSchema, TotemConfigSchema, } from './config-schema.js';
|
|
2
2
|
export { createChunker } from './chunkers/chunker.js';
|
|
3
3
|
export { createEmbedder } from './embedders/embedder.js';
|
|
4
4
|
// Store
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEtF,YAAY;AACZ,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingest/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingest/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,KAAK,EAAS,WAAW,EAAa,MAAM,aAAa,CAAC;AAwCjE,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CA6I9D"}
|
package/dist/ingest/pipeline.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import { createChunker } from '../chunkers/chunker.js';
|
|
4
|
+
import { requireEmbedding } from '../config-schema.js';
|
|
4
5
|
import { createEmbedder } from '../embedders/embedder.js';
|
|
5
6
|
import { LanceStore } from '../store/lance-store.js';
|
|
6
7
|
import { getChangedFiles, getHeadSha, resolveFiles } from './file-resolver.js';
|
|
@@ -41,8 +42,9 @@ export async function runSync(config, options) {
|
|
|
41
42
|
// 0. Capture HEAD SHA early — before any async work that might race with new commits
|
|
42
43
|
const headSha = getHeadSha(projectRoot, log);
|
|
43
44
|
// 1. Create embedder
|
|
45
|
+
const embedding = requireEmbedding(config);
|
|
44
46
|
log('Initializing embedding provider...');
|
|
45
|
-
const embedder = createEmbedder(
|
|
47
|
+
const embedder = createEmbedder(embedding);
|
|
46
48
|
// 2. Connect to store
|
|
47
49
|
const storePath = path.join(projectRoot, config.lanceDir);
|
|
48
50
|
const store = new LanceStore(storePath, embedder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/ingest/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,SAAS,aAAa,CAAC,QAAgB,EAAE,UAAkC;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QAC5C,IACE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;YACtC,MAAM,CAAC,WAAW;YAClB,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EACpC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,UAAU,EAAE,CAAC,kDAAkD,SAAS,GAAG,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+CAA+C;QAC/C,IAAI,GAAG,YAAY,KAAK,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,EAAE,CACV,uCAAuC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC1F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,KAAgB;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmB,EACnB,OAAoB;IAEpB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC5C,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACtC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAErC,qFAAqF;IACrF,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAE7C,qBAAqB;IACrB,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/ingest/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import * as fs from 'node:fs';
|
|
|
2
2
|
import * as os from 'node:os';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { TotemConfigSchema } from '../config-schema.js';
|
|
6
|
+
import { runSync } from './pipeline.js';
|
|
5
7
|
// Import the internal helpers via a workaround — we test the state file contract
|
|
6
8
|
// since readSyncState/writeSyncState are not exported directly.
|
|
7
9
|
const SYNC_STATE_FILE = 'cache/sync-state.json';
|
|
@@ -76,4 +78,12 @@ describe('deleted file partitioning', () => {
|
|
|
76
78
|
expect(deletedPaths).toEqual(['src/old-name.ts']);
|
|
77
79
|
});
|
|
78
80
|
});
|
|
81
|
+
describe('runSync embedding guard', () => {
|
|
82
|
+
it('throws when embedding is not configured (Lite tier)', async () => {
|
|
83
|
+
const config = TotemConfigSchema.parse({
|
|
84
|
+
targets: [{ glob: '**/*.md', type: 'spec', strategy: 'markdown-heading' }],
|
|
85
|
+
});
|
|
86
|
+
await expect(runSync(config, { projectRoot: os.tmpdir(), incremental: false })).rejects.toThrow('No embedding provider configured');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
79
89
|
//# sourceMappingURL=pipeline.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../src/ingest/pipeline.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../src/ingest/pipeline.test.ts"],"names":[],"mappings":"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"}
|