From 64a5fc5301f785e3b6b4d2e0084a44bfa78d0994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=A9=98?= Date: Tue, 28 Apr 2026 22:46:19 +0000 Subject: [PATCH] chore(workflow): auto-generated commit --- workflows/solve-issue/lib/repo-context.ts | 32 +++---------------- workflows/solve-issue/lib/start-meta.ts | 7 ---- .../solve-issue/roles/implement/index.ts | 7 ++-- workflows/solve-issue/roles/plan/index.ts | 7 ++-- 4 files changed, 14 insertions(+), 39 deletions(-) delete mode 100644 workflows/solve-issue/lib/start-meta.ts diff --git a/workflows/solve-issue/lib/repo-context.ts b/workflows/solve-issue/lib/repo-context.ts index 4ccc70a..b555c47 100644 --- a/workflows/solve-issue/lib/repo-context.ts +++ b/workflows/solve-issue/lib/repo-context.ts @@ -1,14 +1,14 @@ import { join } from "node:path"; import type { WorkflowMessage } from "@uncaged/nerve-core"; -export type SolveIssueParse = { +type SolveIssueParse = { host: string; owner: string; repo: string; number: number; }; -export type SolveIssueRepo = { +type SolveIssueRepo = { path: string; defaultBranch: string; packageManager: string; @@ -33,7 +33,7 @@ function extractMarkedSection(text: string, marker: string): Record 0 ? rec : null; } -export function parseSolveIssueParse(text: string): SolveIssueParse | null { +function parseSolveIssueParse(text: string): SolveIssueParse | null { const rec = extractMarkedSection(text, "SOLVE_ISSUE_PARSE"); if (rec === null) { return null; @@ -48,7 +48,7 @@ export function parseSolveIssueParse(text: string): SolveIssueParse | null { return { host, owner, repo, number: num }; } -export function parseSolveIssueRepo(text: string): SolveIssueRepo | null { +function parseSolveIssueRepo(text: string): SolveIssueRepo | null { const rec = extractMarkedSection(text, "SOLVE_ISSUE_REPO"); if (rec === null) { return null; @@ -84,27 +84,3 @@ export function resolveRepoCwd(messages: WorkflowMessage[]): string | null { } return null; } - -export function lastParseFromMessages(messages: WorkflowMessage[]): SolveIssueParse | null { - for (let i = messages.length - 1; i >= 0; i--) { - if (messages[i].role === "read-issue") { - const parsed = parseSolveIssueParse(messages[i].content); - if (parsed !== null) { - return parsed; - } - } - } - return null; -} - -export function lastRepoFromMessages(messages: WorkflowMessage[]): SolveIssueRepo | null { - for (let i = messages.length - 1; i >= 0; i--) { - if (messages[i].role === "prepare") { - const repo = parseSolveIssueRepo(messages[i].content); - if (repo !== null) { - return repo; - } - } - } - return null; -} diff --git a/workflows/solve-issue/lib/start-meta.ts b/workflows/solve-issue/lib/start-meta.ts deleted file mode 100644 index f92082c..0000000 --- a/workflows/solve-issue/lib/start-meta.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { StartStep } from "@uncaged/nerve-core"; - -/** Runtime may include threadId before types catch up in published nerve-core. */ -export function threadIdFromStart(start: StartStep): string { - const m = start.meta as { threadId?: string }; - return typeof m.threadId === "string" && m.threadId.length > 0 ? m.threadId : "unknown"; -} diff --git a/workflows/solve-issue/roles/implement/index.ts b/workflows/solve-issue/roles/implement/index.ts index 50b4da5..f801560 100644 --- a/workflows/solve-issue/roles/implement/index.ts +++ b/workflows/solve-issue/roles/implement/index.ts @@ -3,7 +3,6 @@ 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 { buildImplementPrompt } from "./prompt.js"; export const implementMetaSchema = z.object({ @@ -32,7 +31,11 @@ export function buildImplementRole({ provider, nerveRoot }: BuildImplementDeps): model: "auto", env: {}, timeoutMs: 300_000, - prompt: async () => buildImplementPrompt({ threadId: threadIdFromStart(start), nerveRoot }), + prompt: async () => + buildImplementPrompt({ + threadId: (start.meta as { threadId?: string }).threadId ?? "unknown", + nerveRoot, + }), extract: { provider, schema: implementMetaSchema }, }); diff --git a/workflows/solve-issue/roles/plan/index.ts b/workflows/solve-issue/roles/plan/index.ts index 5010330..349d99e 100644 --- a/workflows/solve-issue/roles/plan/index.ts +++ b/workflows/solve-issue/roles/plan/index.ts @@ -3,7 +3,6 @@ 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 { buildPlanPrompt } from "./prompt.js"; export const planMetaSchema = z.object({ @@ -32,7 +31,11 @@ export function buildPlanRole({ provider, nerveRoot }: BuildPlanDeps): Role buildPlanPrompt({ threadId: threadIdFromStart(start), nerveRoot }), + prompt: async () => + buildPlanPrompt({ + threadId: (start.meta as { threadId?: string }).threadId ?? "unknown", + nerveRoot, + }), extract: { provider, schema: planMetaSchema }, });