@ipul-labs/forge 1.21.1 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/lib/server/forge/core/ForgeAgent.d.ts +15 -0
- package/lib/server/forge/core/ForgeAgent.d.ts.map +1 -1
- package/lib/server/forge/core/ForgeAgent.js +102 -2
- package/lib/server/forge/core/ForgeAgent.js.map +1 -1
- package/lib/server/forge/core/agentClient.d.ts +18 -0
- package/lib/server/forge/core/agentClient.d.ts.map +1 -1
- package/lib/server/forge/core/agentClient.js +11 -0
- package/lib/server/forge/core/agentClient.js.map +1 -1
- package/lib/server/forge/core/agentMode.d.ts +38 -0
- package/lib/server/forge/core/agentMode.d.ts.map +1 -0
- package/lib/server/forge/core/agentMode.js +43 -0
- package/lib/server/forge/core/agentMode.js.map +1 -0
- package/lib/server/forge/core/ciTraceParser.d.ts +33 -0
- package/lib/server/forge/core/ciTraceParser.d.ts.map +1 -0
- package/lib/server/forge/core/ciTraceParser.js +152 -0
- package/lib/server/forge/core/ciTraceParser.js.map +1 -0
- package/lib/server/forge/core/claudeClient.d.ts +40 -0
- package/lib/server/forge/core/claudeClient.d.ts.map +1 -1
- package/lib/server/forge/core/claudeClient.js +119 -45
- package/lib/server/forge/core/claudeClient.js.map +1 -1
- package/lib/server/forge/core/configStore.d.ts +2 -0
- package/lib/server/forge/core/configStore.d.ts.map +1 -1
- package/lib/server/forge/core/configStore.js +9 -0
- package/lib/server/forge/core/configStore.js.map +1 -1
- package/lib/server/forge/core/localRepo.d.ts +20 -0
- package/lib/server/forge/core/localRepo.d.ts.map +1 -1
- package/lib/server/forge/core/localRepo.js +88 -0
- package/lib/server/forge/core/localRepo.js.map +1 -1
- package/lib/server/forge/core/prompts.d.ts +18 -0
- package/lib/server/forge/core/prompts.d.ts.map +1 -1
- package/lib/server/forge/core/prompts.js +61 -2
- package/lib/server/forge/core/prompts.js.map +1 -1
- package/lib/server/forge/core/types.d.ts +2 -0
- package/lib/server/forge/core/types.d.ts.map +1 -1
- package/lib/server/forge/routes.d.ts.map +1 -1
- package/lib/server/forge/routes.js +12 -2
- package/lib/server/forge/routes.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* server/forge/core/ciTraceParser.ts
|
|
3
|
+
*
|
|
4
|
+
* Parses CI job traces to extract structured error information from the noise.
|
|
5
|
+
* Strips ANSI codes, identifies the specific failing tests/steps, and produces
|
|
6
|
+
* a focused summary the model can act on — instead of 150 lines of mixed
|
|
7
|
+
* warnings and test output.
|
|
8
|
+
*/
|
|
9
|
+
const ANSI_RE = /\x1B\[[0-9;]*[a-zA-Z]|\x1B\([A-B]|\x0F/g;
|
|
10
|
+
function stripAnsi(text) {
|
|
11
|
+
return text.replace(ANSI_RE, "");
|
|
12
|
+
}
|
|
13
|
+
function stripTimestamps(text) {
|
|
14
|
+
return text.replace(/^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s+\S+\s+/gm, "");
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extracts structured failure info from a Vitest/Jest-style CI trace.
|
|
18
|
+
* Also handles generic "Error:" / "error TS" / compile failures.
|
|
19
|
+
*/
|
|
20
|
+
export function parseCiTrace(rawTrace) {
|
|
21
|
+
const clean = stripTimestamps(stripAnsi(rawTrace));
|
|
22
|
+
const lines = clean.split("\n");
|
|
23
|
+
const failures = [];
|
|
24
|
+
// Pattern 1: Vitest/Jest "FAIL" blocks
|
|
25
|
+
// Look for: FAIL <file> > <suite> > <test>
|
|
26
|
+
const failBlockRe = /FAIL\s+(.+?)(?:\s*>\s*(.+))?$/;
|
|
27
|
+
// Error line follows
|
|
28
|
+
const errorMsgRe = /^(TypeError|ReferenceError|Error|SyntaxError|AssertionError|expect\()/;
|
|
29
|
+
// Location: ❯ functionName file:line:col
|
|
30
|
+
const locationRe = /[❯→>]\s+(?:\S+\s+)?(\S+\.\w+:\d+(?::\d+)?)/;
|
|
31
|
+
// Code snippet lines (numbered)
|
|
32
|
+
const codeLineRe = /^\s*\d+\|\s/;
|
|
33
|
+
for (let i = 0; i < lines.length; i++) {
|
|
34
|
+
const failMatch = lines[i].match(failBlockRe);
|
|
35
|
+
if (!failMatch)
|
|
36
|
+
continue;
|
|
37
|
+
const testPath = failMatch[1].trim();
|
|
38
|
+
const testName = failMatch[2]?.trim() || "";
|
|
39
|
+
let error = "";
|
|
40
|
+
let location = "";
|
|
41
|
+
const snippetLines = [];
|
|
42
|
+
for (let j = i + 1; j < Math.min(i + 20, lines.length); j++) {
|
|
43
|
+
const line = lines[j].trim();
|
|
44
|
+
if (!error && (errorMsgRe.test(line) || line.startsWith("AssertionError") || line.startsWith("expect("))) {
|
|
45
|
+
error = line;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (!location) {
|
|
49
|
+
const locMatch = lines[j].match(locationRe);
|
|
50
|
+
if (locMatch) {
|
|
51
|
+
location = locMatch[1];
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (codeLineRe.test(lines[j]) && snippetLines.length < 5) {
|
|
56
|
+
snippetLines.push(lines[j].trim());
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Stop at next FAIL block or section separator
|
|
60
|
+
if (line.match(/^[─⎯]{5,}/) && error)
|
|
61
|
+
break;
|
|
62
|
+
if (failBlockRe.test(line))
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
if (error || testName) {
|
|
66
|
+
failures.push({
|
|
67
|
+
file: testPath,
|
|
68
|
+
testName,
|
|
69
|
+
error: error || "(assertion failed)",
|
|
70
|
+
location: location || undefined,
|
|
71
|
+
codeSnippet: snippetLines.length ? snippetLines.join("\n") : undefined,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Pattern 2: TypeScript compile errors (error TS\d+)
|
|
76
|
+
const tsErrorRe = /^(.+?)\((\d+,\d+)\):\s*error\s+(TS\d+):\s*(.+)/;
|
|
77
|
+
for (const line of lines) {
|
|
78
|
+
const tsMatch = line.match(tsErrorRe);
|
|
79
|
+
if (tsMatch) {
|
|
80
|
+
const existing = failures.find((f) => f.file === tsMatch[1] && f.error.includes(tsMatch[3]));
|
|
81
|
+
if (!existing) {
|
|
82
|
+
failures.push({
|
|
83
|
+
file: tsMatch[1],
|
|
84
|
+
testName: "",
|
|
85
|
+
error: `${tsMatch[3]}: ${tsMatch[4]}`,
|
|
86
|
+
location: `${tsMatch[1]}:${tsMatch[2].replace(",", ":")}`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Pattern 3: ESLint/lint errors that cause exit code != 0
|
|
92
|
+
const lintErrorRe = /^\s*(\d+):(\d+)\s+error\s+(.+?)\s{2,}(\S+)$/;
|
|
93
|
+
const lintFileRe = /^(\/\S+\.\w+)$/;
|
|
94
|
+
let currentLintFile = "";
|
|
95
|
+
for (const line of lines) {
|
|
96
|
+
const fileMatch = line.match(lintFileRe);
|
|
97
|
+
if (fileMatch) {
|
|
98
|
+
currentLintFile = fileMatch[1];
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const lintMatch = line.match(lintErrorRe);
|
|
102
|
+
if (lintMatch && currentLintFile) {
|
|
103
|
+
const existing = failures.find((f) => f.file === currentLintFile && f.error.includes(lintMatch[4]));
|
|
104
|
+
if (!existing) {
|
|
105
|
+
failures.push({
|
|
106
|
+
file: currentLintFile,
|
|
107
|
+
testName: "",
|
|
108
|
+
error: `lint: ${lintMatch[3]} (${lintMatch[4]})`,
|
|
109
|
+
location: `${currentLintFile}:${lintMatch[1]}:${lintMatch[2]}`,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Build summary
|
|
115
|
+
const summary = failures.length
|
|
116
|
+
? failures.map((f, i) => {
|
|
117
|
+
const parts = [`${i + 1}. **${f.file}**`];
|
|
118
|
+
if (f.testName)
|
|
119
|
+
parts.push(` Test: "${f.testName}"`);
|
|
120
|
+
parts.push(` Error: ${f.error}`);
|
|
121
|
+
if (f.location)
|
|
122
|
+
parts.push(` Location: ${f.location}`);
|
|
123
|
+
if (f.codeSnippet)
|
|
124
|
+
parts.push(` Code:\n ${f.codeSnippet}`);
|
|
125
|
+
return parts.join("\n");
|
|
126
|
+
}).join("\n\n")
|
|
127
|
+
: "Could not parse specific failures from the trace.";
|
|
128
|
+
// Fingerprint: sorted file+error pairs, hashed by simple string
|
|
129
|
+
const fingerprint = failures
|
|
130
|
+
.map((f) => `${f.file}::${f.error}`)
|
|
131
|
+
.sort()
|
|
132
|
+
.join("|");
|
|
133
|
+
return { failures, summary, fingerprint, rawTail: rawTrace };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Formats a parsed CI trace into a structured prompt block.
|
|
137
|
+
* Puts the parsed error summary first (so the model sees it immediately),
|
|
138
|
+
* followed by the raw tail for additional context.
|
|
139
|
+
*/
|
|
140
|
+
export function formatCiContextForPrompt(parsed) {
|
|
141
|
+
if (!parsed.failures.length) {
|
|
142
|
+
return parsed.rawTail;
|
|
143
|
+
}
|
|
144
|
+
return `### Parsed CI failures (fix THESE specific errors)
|
|
145
|
+
|
|
146
|
+
${parsed.summary}
|
|
147
|
+
|
|
148
|
+
### Raw CI log (for additional context only — the errors above are what need fixing)
|
|
149
|
+
|
|
150
|
+
${parsed.rawTail}`;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=ciTraceParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ciTraceParser.js","sourceRoot":"","sources":["../../../../server/forge/core/ciTraceParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,46 @@ interface AgentCallOpts {
|
|
|
52
52
|
signal?: AbortSignal;
|
|
53
53
|
timeout?: number;
|
|
54
54
|
}
|
|
55
|
+
/** Tools granted to the agent in agentic mode — the editing + verification loop. */
|
|
56
|
+
export declare const AGENTIC_TOOLS: readonly ["Read", "Glob", "Grep", "Edit", "Write", "MultiEdit", "Bash", "TodoWrite"];
|
|
57
|
+
/**
|
|
58
|
+
* Builds the CLI args for an agentic run. Deliberately the inverse of the
|
|
59
|
+
* structured args: tools are GRANTED (not killed with `--tools ""`), project
|
|
60
|
+
* settings are LOADED (so the repo's CLAUDE.md applies), and the Forge persona
|
|
61
|
+
* is APPENDED on top of the real harness prompt rather than replacing it.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildAgenticArgs({ model, systemPrompt }: {
|
|
64
|
+
model?: string;
|
|
65
|
+
systemPrompt?: string | null;
|
|
66
|
+
}): string[];
|
|
67
|
+
export interface AgenticResult {
|
|
68
|
+
text: string;
|
|
69
|
+
cost: number;
|
|
70
|
+
serviceTier: string;
|
|
71
|
+
inputTokens: number;
|
|
72
|
+
outputTokens: number;
|
|
73
|
+
cacheCreationTokens: number;
|
|
74
|
+
cacheReadTokens: number;
|
|
75
|
+
sessionId: string | null;
|
|
76
|
+
}
|
|
77
|
+
interface ProposeFixAgenticParams {
|
|
78
|
+
issue: IssueInput;
|
|
79
|
+
cwd: string;
|
|
80
|
+
model?: string;
|
|
81
|
+
promptRules?: string;
|
|
82
|
+
userPrompt?: string;
|
|
83
|
+
ciContext?: string;
|
|
84
|
+
onEvent?: (evt: ForgeEvent) => void;
|
|
85
|
+
signal?: AbortSignal;
|
|
86
|
+
timeout?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Agentic counterpart to proposeFix: spawns Claude as an agent in `cwd` (a
|
|
90
|
+
* checkout of the repo) and lets it edit files directly. Returns the agent's
|
|
91
|
+
* final free-form message (with the trailing TITLE line) — the actual changes
|
|
92
|
+
* are read from the working tree by the caller via localRepo.captureChanges.
|
|
93
|
+
*/
|
|
94
|
+
export declare function proposeFixAgentic(params: ProposeFixAgenticParams): Promise<AgenticResult>;
|
|
55
95
|
export declare function checkResolution(issue: IssueInput, diffs: NormalDiff[], model: string | undefined, opts?: AgentCallOpts): Promise<AgentResponse>;
|
|
56
96
|
export declare function identifyRelevantFiles(issue: IssueInput, fileTree: RepoTree[] | string[], model: string | undefined, opts?: AgentCallOpts): Promise<AgentResponse>;
|
|
57
97
|
export declare function refineOrAsk(issue: IssueInput, fileContents: FileContent[], options: RefineOptions, model: string | undefined, onEvent: ((evt: ForgeEvent) => void) | undefined, opts?: AgentCallOpts): Promise<AgentResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeClient.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/claudeClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"claudeClient.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/claudeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* user-triggered probe that hits the Messages API once to read them.
|
|
11
11
|
*/
|
|
12
12
|
import { spawn } from "child_process";
|
|
13
|
-
import { SELECT_FILES_SCHEMA, PROPOSE_FIX_SCHEMA, CI_FIX_SCHEMA, REFINE_OR_ASK_SCHEMA, RESOLUTION_CHECK_SCHEMA, buildIdentifyFilesPrompt, buildProposeFixPrompt, buildRefineOrAskPrompt, buildRefineResumePrompt, buildCheckResolutionPrompt, classifyIssue, } from "./prompts.js";
|
|
13
|
+
import { SELECT_FILES_SCHEMA, PROPOSE_FIX_SCHEMA, CI_FIX_SCHEMA, REFINE_OR_ASK_SCHEMA, RESOLUTION_CHECK_SCHEMA, buildIdentifyFilesPrompt, buildProposeFixPrompt, buildRefineOrAskPrompt, buildRefineResumePrompt, buildCheckResolutionPrompt, buildAgenticFixPrompt, AGENTIC_SYSTEM_PROMPT, classifyIssue, } from "./prompts.js";
|
|
14
14
|
// FORGE_MODEL env var overrides the default. Set to a cheaper model to reduce cost.
|
|
15
15
|
// e.g. FORGE_MODEL=claude-haiku-4-5-20251001
|
|
16
16
|
const MODEL = process.env.FORGE_MODEL ?? "claude-sonnet-4-6";
|
|
@@ -114,6 +114,47 @@ async function runClaude(prompt, jsonSchema, systemPrompt, model, options = {})
|
|
|
114
114
|
// turn — re-passing it would stack a second system message.
|
|
115
115
|
if (systemPrompt && !resumeSession)
|
|
116
116
|
args.push("--system-prompt", systemPrompt);
|
|
117
|
+
const wrapper = await spawnClaude({ args, prompt, cwd, onEvent, signal, timeout });
|
|
118
|
+
const result = wrapper.result ?? "";
|
|
119
|
+
if (!result.trim()) {
|
|
120
|
+
// Claude succeeded but emitted no content. Usually means the model
|
|
121
|
+
// got stuck in a tool-use loop or was blocked by --disallowed-tools.
|
|
122
|
+
// Surface a clean, actionable message instead of dumping the wrapper.
|
|
123
|
+
const stopReason = wrapper.stop_reason ?? "unknown";
|
|
124
|
+
const turns = wrapper.num_turns ?? 0;
|
|
125
|
+
const hint = stopReason === "tool_use"
|
|
126
|
+
? "model tried to use a blocked tool — retry or allow the tool."
|
|
127
|
+
: "model produced empty output — retry or switch model.";
|
|
128
|
+
throw new Error(`Claude returned no content (stop_reason: ${stopReason}, turns: ${turns}). ${hint}`);
|
|
129
|
+
}
|
|
130
|
+
let data;
|
|
131
|
+
try {
|
|
132
|
+
data = extractJSON(result);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
136
|
+
throw new Error(`Claude response was not valid JSON — ${msg}. First 200 chars of result: ${result.slice(0, 200)}`);
|
|
137
|
+
}
|
|
138
|
+
const wrapperSessionId = warnOnSessionMismatch(wrapper, sessionId);
|
|
139
|
+
return {
|
|
140
|
+
data,
|
|
141
|
+
cost: wrapper.total_cost_usd ?? 0,
|
|
142
|
+
serviceTier: wrapper.usage?.service_tier ?? "unknown",
|
|
143
|
+
inputTokens: wrapper.usage?.input_tokens ?? 0,
|
|
144
|
+
outputTokens: wrapper.usage?.output_tokens ?? 0,
|
|
145
|
+
cacheCreationTokens: wrapper.usage?.cache_creation_input_tokens ?? 0,
|
|
146
|
+
cacheReadTokens: wrapper.usage?.cache_read_input_tokens ?? 0,
|
|
147
|
+
sessionId: wrapperSessionId ?? sessionId ?? null,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Spawns the `claude` CLI, pipes the prompt to stdin, streams tool-use logs to
|
|
152
|
+
* onEvent, and resolves with the parsed `result` wrapper. Shared by both the
|
|
153
|
+
* structured (JSON) and agentic (free-form) callers — only the args and the
|
|
154
|
+
* post-processing of `wrapper.result` differ between them.
|
|
155
|
+
*/
|
|
156
|
+
function spawnClaude({ args, prompt, cwd, onEvent, signal, timeout }) {
|
|
157
|
+
const streaming = typeof onEvent === "function";
|
|
117
158
|
return new Promise((resolve, reject) => {
|
|
118
159
|
// Strip ANTHROPIC_API_KEY so the CLI uses the OAuth session
|
|
119
160
|
// (Claude Code subscription) rather than falling back to API credits.
|
|
@@ -199,68 +240,101 @@ async function runClaude(prompt, jsonSchema, systemPrompt, model, options = {})
|
|
|
199
240
|
}
|
|
200
241
|
return;
|
|
201
242
|
}
|
|
202
|
-
let wrapper;
|
|
203
243
|
if (streaming) {
|
|
204
244
|
if (!streamedResult) {
|
|
205
245
|
reject(new Error(`claude CLI stream ended without a result event (${stdout.length} bytes). First 200 chars: ${stdout.slice(0, 200)}`));
|
|
206
246
|
return;
|
|
207
247
|
}
|
|
208
|
-
|
|
248
|
+
resolve(streamedResult);
|
|
209
249
|
}
|
|
210
250
|
else {
|
|
211
251
|
try {
|
|
212
|
-
|
|
252
|
+
resolve(JSON.parse(stdout.trim()));
|
|
213
253
|
}
|
|
214
254
|
catch {
|
|
215
255
|
reject(new Error(`claude CLI returned non-JSON output (${stdout.length} bytes). First 200 chars: ${stdout.slice(0, 200)}`));
|
|
216
|
-
return;
|
|
217
256
|
}
|
|
218
257
|
}
|
|
219
|
-
const result = wrapper.result ?? "";
|
|
220
|
-
if (!result.trim()) {
|
|
221
|
-
// Claude succeeded but emitted no content. Usually means the model
|
|
222
|
-
// got stuck in a tool-use loop or was blocked by --disallowed-tools.
|
|
223
|
-
// Surface a clean, actionable message instead of dumping the wrapper.
|
|
224
|
-
const stopReason = wrapper.stop_reason ?? "unknown";
|
|
225
|
-
const turns = wrapper.num_turns ?? 0;
|
|
226
|
-
const hint = stopReason === "tool_use"
|
|
227
|
-
? "model tried to use a blocked tool — retry or allow the tool."
|
|
228
|
-
: "model produced empty output — retry or switch model.";
|
|
229
|
-
reject(new Error(`Claude returned no content (stop_reason: ${stopReason}, turns: ${turns}). ${hint}`));
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
let data;
|
|
233
|
-
try {
|
|
234
|
-
data = extractJSON(result);
|
|
235
|
-
}
|
|
236
|
-
catch (err) {
|
|
237
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
238
|
-
reject(new Error(`Claude response was not valid JSON — ${msg}. First 200 chars of result: ${result.slice(0, 200)}`));
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
// The CLI echoes the session id it actually used. If it doesn't match
|
|
242
|
-
// the one we passed (CLI version drift, resume silently forked to a
|
|
243
|
-
// new session, etc.), warn — the caller should persist the CLI's id
|
|
244
|
-
// going forward or we'll resume the wrong conversation next turn.
|
|
245
|
-
const wrapperSessionId = wrapper.session_id ?? null;
|
|
246
|
-
if (sessionId && wrapperSessionId && wrapperSessionId !== sessionId) {
|
|
247
|
-
console.warn(`[claudeClient] session_id mismatch: passed ${sessionId}, CLI returned ${wrapperSessionId}. Using CLI value.`);
|
|
248
|
-
}
|
|
249
|
-
resolve({
|
|
250
|
-
data,
|
|
251
|
-
cost: wrapper.total_cost_usd ?? 0,
|
|
252
|
-
serviceTier: wrapper.usage?.service_tier ?? "unknown",
|
|
253
|
-
inputTokens: wrapper.usage?.input_tokens ?? 0,
|
|
254
|
-
outputTokens: wrapper.usage?.output_tokens ?? 0,
|
|
255
|
-
cacheCreationTokens: wrapper.usage?.cache_creation_input_tokens ?? 0,
|
|
256
|
-
cacheReadTokens: wrapper.usage?.cache_read_input_tokens ?? 0,
|
|
257
|
-
sessionId: wrapperSessionId ?? sessionId ?? null,
|
|
258
|
-
});
|
|
259
258
|
});
|
|
260
259
|
proc.stdin.write(prompt, "utf8");
|
|
261
260
|
proc.stdin.end();
|
|
262
261
|
});
|
|
263
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* The CLI echoes the session id it actually used. If it doesn't match the one
|
|
265
|
+
* we passed (CLI version drift, resume silently forked to a new session, etc.),
|
|
266
|
+
* warn — the caller should persist the CLI's id or we'll resume the wrong
|
|
267
|
+
* conversation next turn. Returns the CLI's session id (or null).
|
|
268
|
+
*/
|
|
269
|
+
function warnOnSessionMismatch(wrapper, sessionId) {
|
|
270
|
+
const wrapperSessionId = wrapper.session_id ?? null;
|
|
271
|
+
if (sessionId && wrapperSessionId && wrapperSessionId !== sessionId) {
|
|
272
|
+
console.warn(`[claudeClient] session_id mismatch: passed ${sessionId}, CLI returned ${wrapperSessionId}. Using CLI value.`);
|
|
273
|
+
}
|
|
274
|
+
return wrapperSessionId;
|
|
275
|
+
}
|
|
276
|
+
// ─── Agentic mode ───────────────────────────────────────────────────────────
|
|
277
|
+
// Instead of the single-turn JSON pipeline, run Claude as a full Claude Code
|
|
278
|
+
// agent inside a checkout: real tools, the project's CLAUDE.md, multi-turn loop.
|
|
279
|
+
// Forge captures the resulting `git diff` (see localRepo.captureChanges).
|
|
280
|
+
/** Tools granted to the agent in agentic mode — the editing + verification loop. */
|
|
281
|
+
export const AGENTIC_TOOLS = ["Read", "Glob", "Grep", "Edit", "Write", "MultiEdit", "Bash", "TodoWrite"];
|
|
282
|
+
/**
|
|
283
|
+
* Builds the CLI args for an agentic run. Deliberately the inverse of the
|
|
284
|
+
* structured args: tools are GRANTED (not killed with `--tools ""`), project
|
|
285
|
+
* settings are LOADED (so the repo's CLAUDE.md applies), and the Forge persona
|
|
286
|
+
* is APPENDED on top of the real harness prompt rather than replacing it.
|
|
287
|
+
*/
|
|
288
|
+
export function buildAgenticArgs({ model, systemPrompt }) {
|
|
289
|
+
return [
|
|
290
|
+
"--print",
|
|
291
|
+
"--output-format", "stream-json",
|
|
292
|
+
"--verbose",
|
|
293
|
+
"--model", model ?? MODEL,
|
|
294
|
+
"--fallback-model", FALLBACK_MODEL,
|
|
295
|
+
"--allowed-tools", AGENTIC_TOOLS.join(","),
|
|
296
|
+
// Load the target repo's project settings (CLAUDE.md cascade, etc.) but
|
|
297
|
+
// not Forge's own user/local settings — we want the repo's conventions,
|
|
298
|
+
// not this machine's config.
|
|
299
|
+
"--setting-sources", "project",
|
|
300
|
+
// Append, don't replace: keep the Claude Code agent harness and add Forge's
|
|
301
|
+
// guardrails on top. (--system-prompt would override the harness entirely.)
|
|
302
|
+
...(systemPrompt ? ["--append-system-prompt", systemPrompt] : []),
|
|
303
|
+
];
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Agentic counterpart to proposeFix: spawns Claude as an agent in `cwd` (a
|
|
307
|
+
* checkout of the repo) and lets it edit files directly. Returns the agent's
|
|
308
|
+
* final free-form message (with the trailing TITLE line) — the actual changes
|
|
309
|
+
* are read from the working tree by the caller via localRepo.captureChanges.
|
|
310
|
+
*/
|
|
311
|
+
export async function proposeFixAgentic(params) {
|
|
312
|
+
const { issue, cwd, model, promptRules, userPrompt, ciContext, onEvent, signal, timeout } = params;
|
|
313
|
+
if (signal?.aborted) {
|
|
314
|
+
const err = new Error("Claude CLI call cancelled before start.");
|
|
315
|
+
err.name = "AbortError";
|
|
316
|
+
throw err;
|
|
317
|
+
}
|
|
318
|
+
const args = buildAgenticArgs({ model, systemPrompt: AGENTIC_SYSTEM_PROMPT });
|
|
319
|
+
const prompt = buildAgenticFixPrompt(issue, { promptRules, userPrompt, ciContext });
|
|
320
|
+
const wrapper = await spawnClaude({ args, prompt, cwd, onEvent, signal, timeout });
|
|
321
|
+
const text = wrapper.result ?? "";
|
|
322
|
+
if (!text.trim()) {
|
|
323
|
+
const stopReason = wrapper.stop_reason ?? "unknown";
|
|
324
|
+
const turns = wrapper.num_turns ?? 0;
|
|
325
|
+
throw new Error(`Claude (agentic) finished without a summary (stop_reason: ${stopReason}, turns: ${turns}). The working tree may still hold edits — retry if no changes were captured.`);
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
text,
|
|
329
|
+
cost: wrapper.total_cost_usd ?? 0,
|
|
330
|
+
serviceTier: wrapper.usage?.service_tier ?? "unknown",
|
|
331
|
+
inputTokens: wrapper.usage?.input_tokens ?? 0,
|
|
332
|
+
outputTokens: wrapper.usage?.output_tokens ?? 0,
|
|
333
|
+
cacheCreationTokens: wrapper.usage?.cache_creation_input_tokens ?? 0,
|
|
334
|
+
cacheReadTokens: wrapper.usage?.cache_read_input_tokens ?? 0,
|
|
335
|
+
sessionId: warnOnSessionMismatch(wrapper, undefined),
|
|
336
|
+
};
|
|
337
|
+
}
|
|
264
338
|
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
265
339
|
export async function checkResolution(issue, diffs, model, opts = {}) {
|
|
266
340
|
const { data, cost, serviceTier, inputTokens, outputTokens, cacheCreationTokens, cacheReadTokens } = await runClaude(buildCheckResolutionPrompt(issue, diffs), RESOLUTION_CHECK_SCHEMA, "You are Forge, a code review assistant. Assess whether code changes actually fix the reported issue. Be concise and direct.", model, { signal: opts.signal, timeout: opts.timeout });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeClient.js","sourceRoot":"","sources":["../../../../server/forge/core/claudeClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claudeClient.js","sourceRoot":"","sources":["../../../../server/forge/core/claudeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,10 +47,12 @@ export declare function getPublic(): {
|
|
|
47
47
|
defaults: {
|
|
48
48
|
model: string | null;
|
|
49
49
|
agent: string | null;
|
|
50
|
+
agentMode?: "structured" | "agentic";
|
|
50
51
|
autoPushOnValidatePass: boolean;
|
|
51
52
|
refineRepoAccess: boolean;
|
|
52
53
|
promptRules: string;
|
|
53
54
|
testDeployUrlTemplate?: string;
|
|
55
|
+
maxCiFixAttempts?: number;
|
|
54
56
|
cliTimeout?: number;
|
|
55
57
|
selfImproveEnabled?: boolean;
|
|
56
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configStore.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/configStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"configStore.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/configStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AA6HvD,sDAAsD;AACtD,wBAAgB,GAAG,gBAElB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnE;AAED,0DAA0D;AAC1D,wBAAgB,MAAM,gBAGrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,WAKhC;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW;;;EAQlD;AAQD;;;GAGG;AACH,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBxB"}
|
|
@@ -14,6 +14,7 @@ import fsSync from "node:fs";
|
|
|
14
14
|
import fs from "node:fs/promises";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import path from "node:path";
|
|
17
|
+
import { AGENT_MODE } from "./agentMode.js";
|
|
17
18
|
/** @typedef {{ id: string, label: string, projectType?: "auto" | "node" | "go" }} ForgeRepo */
|
|
18
19
|
/**
|
|
19
20
|
* @typedef {{ baseUrl: string, token: string }} GitLabConnection
|
|
@@ -45,6 +46,11 @@ const DEFAULT_CONFIG = {
|
|
|
45
46
|
defaults: {
|
|
46
47
|
model: null,
|
|
47
48
|
agent: null,
|
|
49
|
+
// How Forge drives Claude to propose changes — see agentMode.ts.
|
|
50
|
+
// "structured" (default): two-pass JSON pipeline. "agentic": full Claude
|
|
51
|
+
// Code agent in a checkout, changes captured from git. Overridable per
|
|
52
|
+
// request and via the FORGE_AGENT_MODE env var.
|
|
53
|
+
agentMode: AGENT_MODE.structured,
|
|
48
54
|
autoPushOnValidatePass: false,
|
|
49
55
|
// When true (default), Refine gets Read/Glob/Grep access to a local
|
|
50
56
|
// clone of the primary repo. Off → lighter "file tree in prompt" flow.
|
|
@@ -53,6 +59,9 @@ const DEFAULT_CONFIG = {
|
|
|
53
59
|
// Free-form rules injected into every analysis and refine prompt.
|
|
54
60
|
// Lets the user steer the model without touching code.
|
|
55
61
|
promptRules: "",
|
|
62
|
+
// Max CI-fix attempts per pipeline before warning the user.
|
|
63
|
+
// Prevents infinite loops where the model keeps making unrelated changes.
|
|
64
|
+
maxCiFixAttempts: 3,
|
|
56
65
|
// Test-deploy URL surfaced next to "Approve & Create MR" when the
|
|
57
66
|
// branch pipeline is green. Plain URL (e.g. "https://test.example.com")
|
|
58
67
|
// for a shared env; supports "{branch}" / "{slug}" placeholders when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../../../server/forge/core/configStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"configStore.js","sourceRoot":"","sources":["../../../../server/forge/core/configStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,4 +33,24 @@ export declare function ensureWorkingTree(repo: string, branchName: string, onLo
|
|
|
33
33
|
* @param {(msg: string) => void} [onLog]
|
|
34
34
|
*/
|
|
35
35
|
export declare function overlayChanges(dir: string, changes: ForgeChange[], onLog?: (msg: string) => void): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Captures the working-tree changes in `dir` as a ForgeChange[] — the agentic-mode
|
|
38
|
+
* counterpart to overlayChanges. Where structured mode parses proposed file
|
|
39
|
+
* contents out of a JSON response, agentic mode lets Claude edit the checkout
|
|
40
|
+
* directly and then reads the result straight from git:
|
|
41
|
+
*
|
|
42
|
+
* git add -A (stage edits, creates, and deletes)
|
|
43
|
+
* git diff --cached --name-status -z (NUL-framed, robust to spaces/renames)
|
|
44
|
+
*
|
|
45
|
+
* Each entry carries the new content (`proposed`), the HEAD baseline (`original`,
|
|
46
|
+
* for the diff viewer), and the `repo` tag the downstream apply pipeline expects.
|
|
47
|
+
* A rename is surfaced as a delete of the old path plus a create of the new one.
|
|
48
|
+
*
|
|
49
|
+
* Staging is harmless: the clone under ~/.forge/cache is throwaway and the real
|
|
50
|
+
* commit happens later through the SCM provider API, not this working tree.
|
|
51
|
+
*/
|
|
52
|
+
export declare function captureChanges({ dir, repo }: {
|
|
53
|
+
dir: string;
|
|
54
|
+
repo: string;
|
|
55
|
+
}): Promise<ForgeChange[]>;
|
|
36
56
|
//# sourceMappingURL=localRepo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localRepo.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/localRepo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"localRepo.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/localRepo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AA4F5D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,mBA+BtG;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAgBtG;AA4BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyBzG"}
|