From d786827ac89771bf2dedab17bc8f3f474af26210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=A9=98?= Date: Tue, 28 Apr 2026 22:37:27 +0000 Subject: [PATCH] chore(workflow): auto-generated commit --- workflows/solve-issue/lib/spawn-utils.ts | 11 ------- workflows/solve-issue/roles/plan/index.ts | 37 +++++++---------------- 2 files changed, 11 insertions(+), 37 deletions(-) delete mode 100644 workflows/solve-issue/lib/spawn-utils.ts diff --git a/workflows/solve-issue/lib/spawn-utils.ts b/workflows/solve-issue/lib/spawn-utils.ts deleted file mode 100644 index c196c1b..0000000 --- a/workflows/solve-issue/lib/spawn-utils.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { SpawnError } from "@uncaged/nerve-workflow-utils"; - -export function formatSpawnFailure(error: SpawnError): string { - if (error.kind === "spawn_failed") { - return `spawn_failed: ${error.message}`; - } - if (error.kind === "timeout") { - return `timeout: stdout=${error.stdout.slice(0, 200)} stderr=${error.stderr.slice(0, 200)}`; - } - return `non_zero_exit(${error.exitCode}): stderr=${error.stderr.slice(0, 400)}`; -} diff --git a/workflows/solve-issue/roles/plan/index.ts b/workflows/solve-issue/roles/plan/index.ts index 4b6d4ce..5010330 100644 --- a/workflows/solve-issue/roles/plan/index.ts +++ b/workflows/solve-issue/roles/plan/index.ts @@ -1,10 +1,9 @@ import type { Role, RoleResult, StartStep, WorkflowMessage } from "@uncaged/nerve-core"; -import { cursorAgent, isDryRun, llmExtract } from "@uncaged/nerve-workflow-utils"; import type { LlmProvider } from "@uncaged/nerve-workflow-utils"; +import { createCursorRole } from "@uncaged/nerve-workflow-utils"; import { z } from "zod"; import { resolveRepoCwd } from "../../lib/repo-context.js"; import { threadIdFromStart } from "../../lib/start-meta.js"; -import { formatSpawnFailure } from "../../lib/spawn-utils.js"; import { buildPlanPrompt } from "./prompt.js"; export const planMetaSchema = z.object({ @@ -27,38 +26,24 @@ export function buildPlanRole({ provider, nerveRoot }: BuildPlanDeps): Role({ + cwd, mode: "ask", model: "auto", - cwd, - env: null, + env: {}, timeoutMs: 300_000, - dryRun: dry, + prompt: async () => buildPlanPrompt({ threadId: threadIdFromStart(start), nerveRoot }), + extract: { provider, schema: planMetaSchema }, }); - if (!run.ok) { + try { + return await runRole(start, messages); + } catch (e) { + const msg = e instanceof Error ? e.message : String(e); return { - content: `plan cursor-agent failed: ${formatSpawnFailure(run.error)}`, + content: `plan failed: ${msg}`, meta: { ready: false }, }; } - - const metaR = await llmExtract({ - text: run.value, - schema: planMetaSchema, - provider, - dryRun: dry, - }); - if (!metaR.ok) { - return { - content: `${run.value}\n\n[meta extract failed]`, - meta: { ready: false }, - }; - } - - return { content: run.value, meta: metaR.value }; }; }