From c7aa2c97a9332a5fffc424fac76715cbec0d97a4 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 12 Jan 2026 17:38:31 +0100 Subject: [PATCH] Fix jiti alias resolution in dev mode with tsx When running from source with tsx, the jiti aliases pointed to .js files that don't exist (only .ts files exist). This caused jiti to fall back to different module resolution, loading a separate instance of theme.ts where initTheme() was never called, resulting in undefined theme. Now checks if .js exists and falls back to .ts for dev mode compatibility. --- packages/ai/src/models.generated.ts | 25 +++---------------- .../src/core/extensions/loader.ts | 15 +++++++++-- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index cbe25fea..f81fbbe5 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -4359,23 +4359,6 @@ export const MODELS = { contextWindow: 256000, maxTokens: 128000, } satisfies Model<"openai-completions">, - "kwaipilot/kat-coder-pro:free": { - id: "kwaipilot/kat-coder-pro:free", - name: "Kwaipilot: KAT-Coder-Pro V1 (free)", - api: "openai-completions", - provider: "openrouter", - baseUrl: "https://openrouter.ai/api/v1", - reasoning: false, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 256000, - maxTokens: 128000, - } satisfies Model<"openai-completions">, "meta-llama/llama-3-70b-instruct": { id: "meta-llama/llama-3-70b-instruct", name: "Meta: Llama 3 70B Instruct", @@ -4589,13 +4572,13 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 0.28, - output: 1.2, - cacheRead: 0.14, + input: 0.27, + output: 1.12, + cacheRead: 0, cacheWrite: 0, }, contextWindow: 196608, - maxTokens: 4096, + maxTokens: 65536, } satisfies Model<"openai-completions">, "mistralai/codestral-2508": { id: "mistralai/codestral-2508", diff --git a/packages/coding-agent/src/core/extensions/loader.ts b/packages/coding-agent/src/core/extensions/loader.ts index 2ff07ceb..51ee36f3 100644 --- a/packages/coding-agent/src/core/extensions/loader.ts +++ b/packages/coding-agent/src/core/extensions/loader.ts @@ -31,14 +31,25 @@ function getAliases(): Record { if (_aliases) return _aliases; const __dirname = path.dirname(fileURLToPath(import.meta.url)); - const packageIndex = path.resolve(__dirname, "../..", "index.js"); + // Use .js extension but check if .ts exists (dev mode with tsx) + let packageIndex = path.resolve(__dirname, "../..", "index.js"); + if (!fs.existsSync(packageIndex)) { + const tsPath = packageIndex.replace(/\.js$/, ".ts"); + if (fs.existsSync(tsPath)) packageIndex = tsPath; + } + + let extensionsIndex = path.resolve(__dirname, "index.js"); + if (!fs.existsSync(extensionsIndex)) { + const tsPath = extensionsIndex.replace(/\.js$/, ".ts"); + if (fs.existsSync(tsPath)) extensionsIndex = tsPath; + } const typeboxEntry = require.resolve("@sinclair/typebox"); const typeboxRoot = typeboxEntry.replace(/\/build\/cjs\/index\.js$/, ""); _aliases = { "@mariozechner/pi-coding-agent": packageIndex, - "@mariozechner/pi-coding-agent/extensions": path.resolve(__dirname, "index.js"), + "@mariozechner/pi-coding-agent/extensions": extensionsIndex, "@mariozechner/pi-tui": require.resolve("@mariozechner/pi-tui"), "@mariozechner/pi-ai": require.resolve("@mariozechner/pi-ai"), "@sinclair/typebox": typeboxRoot,