- Move index.js → src/index.ts with proper types for all 4 senses - Move schema.ts → src/schema.ts - Add package.json with esbuild build script per sense - Bundle to index.js at sense root (daemon loads this) - Update sense-generator coder prompt with TypeScript conventions Fixes #224
37 lines
856 B
TypeScript
37 lines
856 B
TypeScript
import type { LibSQLDatabase } from "drizzle-orm/libsql";
|
|
import { workerProcessMetrics } from "./schema.ts";
|
|
|
|
function round2(n: number): number {
|
|
return Math.round(n * 100) / 100;
|
|
}
|
|
|
|
export async function compute(db: LibSQLDatabase, _peers: unknown) {
|
|
const ts = Date.now();
|
|
const pid = process.pid;
|
|
const uptimeSec = process.uptime();
|
|
const m = process.memoryUsage();
|
|
const heapUsedMB = round2(m.heapUsed / 1024 / 1024);
|
|
const rssMB = round2(m.rss / 1024 / 1024);
|
|
const externalMB = round2(m.external / 1024 / 1024);
|
|
|
|
const row = {
|
|
ts,
|
|
pid,
|
|
uptimeSec,
|
|
heapUsedMB,
|
|
rssMB,
|
|
externalMB,
|
|
};
|
|
|
|
await db.insert(workerProcessMetrics).values(row);
|
|
|
|
return {
|
|
ts: row.ts,
|
|
pid: row.pid,
|
|
uptimeSec: row.uptimeSec,
|
|
heapUsedMB: row.heapUsedMB,
|
|
rssMB: row.rssMB,
|
|
externalMB: row.externalMB,
|
|
};
|
|
}
|