From a887fc04ca4ff5f60bc1ff162073c021e5992cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E6=9C=88?= Date: Wed, 22 Apr 2026 21:15:37 +0800 Subject: [PATCH] fix: init creates data/senses dir, generates .js templates without TS annotations - Add mkdirSync for data/senses/ in init command (#23) - Add defensive mkdirSync in sense-runtime before DB open (#23) - Change init template output from index.ts to index.js (#24) - Remove TypeScript type annotations from CPU usage template (#25) Closes #23, closes #24, closes #25 --- packages/cli/src/commands/init.ts | 7 ++++--- packages/daemon/src/sense-runtime.ts | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index 0603d45..94f223e 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -48,9 +48,9 @@ export const cpuUsage = sqliteTable("cpu_usage", { }); `; -const CPU_INDEX_TS = `import { cpus } from "node:os"; +const CPU_INDEX_JS = `import { cpus } from "node:os"; -export async function compute(): Promise { +export async function compute() { const cpuList = cpus(); let totalIdle = 0; @@ -135,13 +135,14 @@ export const initCommand = defineCommand({ } mkdirSync(join(nerveRoot, "data"), { recursive: true }); + mkdirSync(join(nerveRoot, "data", "senses"), { recursive: true }); mkdirSync(join(nerveRoot, "senses", "cpu-usage", "migrations"), { recursive: true }); writeFile(join(nerveRoot, "nerve.yaml"), NERVE_YAML); writeFile(join(nerveRoot, "package.json"), PACKAGE_JSON); writeFile(join(nerveRoot, ".gitignore"), GITIGNORE); writeFile(join(nerveRoot, "senses", "cpu-usage", "schema.ts"), CPU_SCHEMA_TS); - writeFile(join(nerveRoot, "senses", "cpu-usage", "index.ts"), CPU_INDEX_TS); + writeFile(join(nerveRoot, "senses", "cpu-usage", "index.js"), CPU_INDEX_JS); writeFile( join(nerveRoot, "senses", "cpu-usage", "migrations", "0001_init.sql"), CPU_MIGRATION_SQL, diff --git a/packages/daemon/src/sense-runtime.ts b/packages/daemon/src/sense-runtime.ts index 7946f5d..5af7a51 100644 --- a/packages/daemon/src/sense-runtime.ts +++ b/packages/daemon/src/sense-runtime.ts @@ -1,5 +1,5 @@ -import { readFileSync, readdirSync } from "node:fs"; -import { join } from "node:path"; +import { mkdirSync, readFileSync, readdirSync } from "node:fs"; +import { dirname, join } from "node:path"; import Database from "better-sqlite3"; import { drizzle } from "drizzle-orm/better-sqlite3"; @@ -128,6 +128,7 @@ export function openSenseDb( let sqlite: Database.Database; try { + mkdirSync(dirname(dbPath), { recursive: true }); sqlite = new Database(dbPath); // WAL mode for better concurrent read performance sqlite.pragma("journal_mode = WAL");