diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts index 402a489..112befe 100644 --- a/packages/cli/tsup.config.ts +++ b/packages/cli/tsup.config.ts @@ -1,4 +1,6 @@ import { defineConfig } from "tsup"; +import { readFileSync, writeFileSync, readdirSync } from "node:fs"; +import { join } from "node:path"; export default defineConfig({ entry: ["src/index.ts", "src/cli.ts", "src/daemon-bootstrap.ts"], @@ -10,4 +12,18 @@ export default defineConfig({ }, /** Daemon is loaded from workspace node_modules at runtime — never bundle it. */ external: ["@uncaged/nerve-daemon"], + // tsup's built-in node-protocol-plugin strips 'node:' prefix from all node builtins. + // 'node:sqlite' has no unprefixed form — fix the output in onSuccess. + onSuccess: async () => { + const distDir = "dist"; + for (const file of readdirSync(distDir)) { + if (file.endsWith(".js")) { + const filePath = join(distDir, file); + const content = readFileSync(filePath, "utf8"); + if (content.includes('"sqlite"')) { + writeFileSync(filePath, content.replaceAll('"sqlite"', '"node:sqlite"')); + } + } + } + }, }); diff --git a/packages/daemon/src/log-store.ts b/packages/daemon/src/log-store.ts index 5daa380..229f5b0 100644 --- a/packages/daemon/src/log-store.ts +++ b/packages/daemon/src/log-store.ts @@ -335,7 +335,7 @@ export function createLogStore(dbPath: string): LogStore { function query(filter: LogQuery = {}): LogEntry[] { const conditions: string[] = []; - const params: Record = {}; + const params: Record = {}; if (filter.source !== undefined) { conditions.push("source = @source"); diff --git a/packages/daemon/tsup.config.ts b/packages/daemon/tsup.config.ts index 849aaa4..9fad99d 100644 --- a/packages/daemon/tsup.config.ts +++ b/packages/daemon/tsup.config.ts @@ -1,8 +1,25 @@ import { defineConfig } from "tsup"; +import { readFileSync, writeFileSync, readdirSync } from "node:fs"; +import { join } from "node:path"; export default defineConfig({ entry: ["src/index.ts", "src/sense-worker.ts"], format: ["esm"], dts: true, clean: true, + // tsup's built-in node-protocol-plugin strips 'node:' prefix from all node builtins. + // This is fine for 'node:fs' → 'fs', but 'node:sqlite' has no unprefixed form. + // Fix the output in onSuccess. + onSuccess: async () => { + const distDir = "dist"; + for (const file of readdirSync(distDir)) { + if (file.endsWith(".js")) { + const filePath = join(distDir, file); + const content = readFileSync(filePath, "utf8"); + if (content.includes('"sqlite"')) { + writeFileSync(filePath, content.replaceAll('"sqlite"', '"node:sqlite"')); + } + } + } + }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3eee37..3b3ae8d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,9 +59,12 @@ importers: specifier: ^2.8.3 version: 2.8.3 devDependencies: + '@types/node': + specifier: ^22.0.0 + version: 22.19.17 vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@25.6.0)(vite@8.0.9(@types/node@25.6.0)(esbuild@0.27.7)(yaml@2.8.3)) + version: 4.1.5(@types/node@22.19.17)(vite@8.0.9(@types/node@22.19.17)(esbuild@0.27.7)(yaml@2.8.3)) packages: