import { join } from "node:path"; import { spawnSafe } from "@uncaged/nerve-workflow-utils"; import { buildSenseGenerator } from "./build.js"; // --- Environment --- const HOME = process.env.HOME ?? "/home/azureuser"; const NERVE_ROOT = join(HOME, ".uncaged-nerve"); // --- Resolve provider --- async function cfgGet(key: string): Promise { const result = await spawnSafe("cfg", ["get", key], { cwd: NERVE_ROOT, env: null, timeoutMs: 10_000, }); if (!result.ok) return null; return result.value.stdout.trim() || null; } const apiKey = process.env.DASHSCOPE_API_KEY ?? (await cfgGet("DASHSCOPE_API_KEY")); const baseUrl = process.env.DASHSCOPE_BASE_URL ?? (await cfgGet("DASHSCOPE_BASE_URL")); const model = process.env.DASHSCOPE_MODEL ?? (await cfgGet("DASHSCOPE_MODEL")) ?? "qwen-plus"; if (!apiKey || !baseUrl) { throw new Error("Set DASHSCOPE_API_KEY and DASHSCOPE_BASE_URL"); } // --- Wire up --- const workflow = buildSenseGenerator({ provider: { apiKey, baseUrl, model }, cwd: NERVE_ROOT, }); export default workflow;