import { join } from "node:path"; import { createCursorAdapter } from "@uncaged/nerve-adapter-cursor"; import { hermesAdapter } from "@uncaged/nerve-adapter-hermes"; import { createSolveIssueWorkflow } from "./build.js"; import { resolveDashScopeProvider } from "./lib/provider.js"; const HOME = process.env.HOME ?? "/home/azureuser"; const NERVE_ROOT = join(HOME, ".uncaged-nerve"); const provider = await resolveDashScopeProvider(NERVE_ROOT); if (provider === null) { throw new Error("Set DASHSCOPE_API_KEY and DASHSCOPE_BASE_URL (or cfg get equivalents)"); } const CURSOR_TIMEOUT_MS = 300_000; const workflow = createSolveIssueWorkflow({ defaultAdapter: hermesAdapter, adapters: { plan: createCursorAdapter({ type: "cursor", mode: "ask", model: "auto", timeout: CURSOR_TIMEOUT_MS, }), implement: createCursorAdapter({ type: "cursor", model: "auto", timeout: CURSOR_TIMEOUT_MS, }), }, nerveRoot: NERVE_ROOT, extract: { provider }, }); export default workflow;