diff --git a/package.json b/package.json index 2756e1a..27eeb70 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@colbymchenry/codegraph", - "version": "0.2.1", + "version": "0.2.2", "description": "A local-first code intelligence system that builds a semantic knowledge graph from any codebase", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/vectors/embedder.ts b/src/vectors/embedder.ts index 689cbb2..06e7703 100644 --- a/src/vectors/embedder.ts +++ b/src/vectors/embedder.ts @@ -5,12 +5,22 @@ * Uses ONNX runtime under the hood for fast local inference. */ -import { pipeline, env } from '@xenova/transformers'; import * as path from 'path'; import * as fs from 'fs'; +// Dynamic import for @xenova/transformers (ESM-only package) +// We use dynamic import to support CommonJS builds +let transformersModule: typeof import('@xenova/transformers') | null = null; + +async function getTransformers() { + if (!transformersModule) { + transformersModule = await import('@xenova/transformers'); + } + return transformersModule; +} + // Type for the feature extraction pipeline -type FeatureExtractionPipeline = Awaited>>; +type FeatureExtractionPipeline = any; /** * Default model for embeddings @@ -93,6 +103,9 @@ export class TextEmbedder { return; } + // Load transformers.js dynamically (ESM-only package) + const { pipeline, env } = await getTransformers(); + // Configure transformers.js to use local cache env.cacheDir = this.cacheDir;