#!/usr/bin/env node "use strict"; const assert = require("node:assert"); const { buildDevHotEnv } = require("./dev-hot.js"); const env = buildDevHotEnv({ FRONTEND_PORT: "3200", MNOTE_WEB_CMD: "", }); assert.equal(env.MNOTE_WEB_DEV_HOT_RELOAD, "1"); assert.equal(env.MNOTE_WEB_ALLOW_DEV_FIXTURES, "1"); assert.match(env.MNOTE_WEB_CMD, /cargo watch/); assert.match(env.MNOTE_WEB_CMD, /run -p mnote-web --bin mnote-web/); assert.match(env.MNOTE_WEB_CMD, /crates\/mnote-web\/src/); assert.match(env.MNOTE_WEB_CMD, /crates\/mnote-web\/browser/); assert.equal(env.FRONTEND_PORT, "3200"); assert.equal(env.MNOTE_WEB_BIND, "0.0.0.0:3200"); assert.equal(env.MNOTE_KNOWLEDGE_PROVIDER, "lightrag_legacy"); assert.equal(env.MNOTE_OPENCODE_BASE_URL, undefined); assert.equal(env.ENABLE_OPENHUB, undefined); assert.equal(env.CHECK_OPENHUB_HEALTH, undefined); assert.equal(env.OPENHUB_OPENCODE_BASE_URL, undefined); assert.equal(env.OPENHUB_BACKEND_DIR, undefined); assert.equal(env.MNOTE_OPENHUB_BASE_URL, undefined); assert.equal(env.MNOTE_CONTROL_PLANE_BACKEND, "libsql-local"); assert.equal(env.MNOTE_TURSO_LOCAL_PATH, "/mnt/Data1T/Mnote_data/control-plane/control-plane-dev-hot-libsql.db"); assert.equal(env.MNOTE_CONTROL_PLANE_DB_PATH, undefined); const explicitKnowledgeProviderEnv = buildDevHotEnv({ MNOTE_KNOWLEDGE_PROVIDER: "lightrag_legacy", }); assert.equal(explicitKnowledgeProviderEnv.MNOTE_KNOWLEDGE_PROVIDER, "lightrag_legacy"); const loopbackEnv = buildDevHotEnv({ MNOTE_WEB_BIND: "127.0.0.1:3300", MNOTE_WEB_CMD: "custom", }); assert.equal(loopbackEnv.MNOTE_WEB_BIND, "0.0.0.0:3300"); assert.equal(loopbackEnv.MNOTE_WEB_CMD, "custom"); const fixturesDisabledEnv = buildDevHotEnv({ MNOTE_WEB_ALLOW_DEV_FIXTURES: "0", }); assert.equal(fixturesDisabledEnv.MNOTE_WEB_ALLOW_DEV_FIXTURES, "0"); assert.throws( () => buildDevHotEnv({ MNOTE_CONTROL_PLANE_BACKEND: "sqlite", }), /δΈε†ζ”―ζŒ SQLite control-plane fallback/, ); console.log(JSON.stringify({ ok: true, command: env.MNOTE_WEB_CMD }, null, 2));