@ipul-labs/forge 1.21.2 → 1.35.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/LICENSE +21 -0
- package/README.md +161 -78
- package/dist/apple-touch-icon.png +0 -0
- package/dist/assets/index-BmEuPeOG.js +27 -0
- package/dist/assets/index-CSH1OQYQ.css +1 -0
- package/dist/boot-check.js +98 -0
- package/dist/favicon.svg +8 -0
- package/dist/icon-192.png +0 -0
- package/dist/icon-512.png +0 -0
- package/dist/icon.svg +12 -0
- package/dist/index.html +33 -0
- package/dist/manifest.webmanifest +18 -0
- package/dist/theme-init.js +11 -0
- package/lib/bin/cli/analyze.d.ts.map +1 -1
- package/lib/bin/cli/analyze.js +3 -44
- package/lib/bin/cli/analyze.js.map +1 -1
- package/lib/bin/cli/apply.d.ts.map +1 -1
- package/lib/bin/cli/apply.js +2 -20
- package/lib/bin/cli/apply.js.map +1 -1
- package/lib/bin/cli/cifix.d.ts.map +1 -1
- package/lib/bin/cli/cifix.js +4 -28
- package/lib/bin/cli/cifix.js.map +1 -1
- package/lib/bin/cli/close.d.ts.map +1 -1
- package/lib/bin/cli/close.js +2 -33
- package/lib/bin/cli/close.js.map +1 -1
- package/lib/bin/cli/createIssue.d.ts.map +1 -1
- package/lib/bin/cli/createIssue.js +3 -12
- package/lib/bin/cli/createIssue.js.map +1 -1
- package/lib/bin/cli/doctor.d.ts.map +1 -1
- package/lib/bin/cli/doctor.js +3 -4
- package/lib/bin/cli/doctor.js.map +1 -1
- package/lib/bin/cli/init.js +1 -10
- package/lib/bin/cli/init.js.map +1 -1
- package/lib/bin/cli/issue.d.ts.map +1 -1
- package/lib/bin/cli/issue.js +3 -12
- package/lib/bin/cli/issue.js.map +1 -1
- package/lib/bin/cli/issues.d.ts.map +1 -1
- package/lib/bin/cli/issues.js +3 -12
- package/lib/bin/cli/issues.js.map +1 -1
- package/lib/bin/cli/merge.d.ts.map +1 -1
- package/lib/bin/cli/merge.js +4 -20
- package/lib/bin/cli/merge.js.map +1 -1
- package/lib/bin/cli/refine.d.ts.map +1 -1
- package/lib/bin/cli/refine.js +2 -26
- package/lib/bin/cli/refine.js.map +1 -1
- package/lib/bin/cli/repl.d.ts.map +1 -1
- package/lib/bin/cli/repl.js +4 -13
- package/lib/bin/cli/repl.js.map +1 -1
- package/lib/bin/cli/repos.d.ts.map +1 -1
- package/lib/bin/cli/repos.js +1 -11
- package/lib/bin/cli/repos.js.map +1 -1
- package/lib/bin/cli/resetPassword.d.ts +21 -0
- package/lib/bin/cli/resetPassword.d.ts.map +1 -0
- package/lib/bin/cli/resetPassword.js +69 -0
- package/lib/bin/cli/resetPassword.js.map +1 -0
- package/lib/bin/cli/resolution.d.ts.map +1 -1
- package/lib/bin/cli/resolution.js +2 -19
- package/lib/bin/cli/resolution.js.map +1 -1
- package/lib/bin/cli/serverClient.d.ts +2 -0
- package/lib/bin/cli/serverClient.d.ts.map +1 -1
- package/lib/bin/cli/serverClient.js +8 -4
- package/lib/bin/cli/serverClient.js.map +1 -1
- package/lib/bin/cli/session.d.ts.map +1 -1
- package/lib/bin/cli/session.js.map +1 -1
- package/lib/bin/cli/sessionStore.d.ts +1 -1
- package/lib/bin/cli/sessionStore.js +2 -2
- package/lib/bin/cli/sessionStore.js.map +1 -1
- package/lib/bin/cli/ship.d.ts.map +1 -1
- package/lib/bin/cli/ship.js +15 -23
- package/lib/bin/cli/ship.js.map +1 -1
- package/lib/bin/cli/update.d.ts.map +1 -1
- package/lib/bin/cli/update.js +34 -28
- package/lib/bin/cli/update.js.map +1 -1
- package/lib/bin/cli/updatePlan.d.ts +30 -0
- package/lib/bin/cli/updatePlan.d.ts.map +1 -0
- package/lib/bin/cli/updatePlan.js +50 -0
- package/lib/bin/cli/updatePlan.js.map +1 -0
- package/lib/bin/cli/utils.d.ts +3 -0
- package/lib/bin/cli/utils.d.ts.map +1 -1
- package/lib/bin/cli/utils.js +7 -23
- package/lib/bin/cli/utils.js.map +1 -1
- package/lib/bin/cli/validate.d.ts.map +1 -1
- package/lib/bin/cli/validate.js +3 -25
- package/lib/bin/cli/validate.js.map +1 -1
- package/lib/bin/cli/watch.d.ts.map +1 -1
- package/lib/bin/cli/watch.js +3 -12
- package/lib/bin/cli/watch.js.map +1 -1
- package/lib/bin/forge-agent.js +10 -22
- package/lib/bin/forge-agent.js.map +1 -1
- package/lib/server/app.d.ts +24 -0
- package/lib/server/app.d.ts.map +1 -0
- package/lib/server/app.js +58 -0
- package/lib/server/app.js.map +1 -0
- package/lib/server/forge/analyses/analysisStore.d.ts +53 -0
- package/lib/server/forge/analyses/analysisStore.d.ts.map +1 -0
- package/lib/server/forge/analyses/analysisStore.js +77 -0
- package/lib/server/forge/analyses/analysisStore.js.map +1 -0
- package/lib/server/forge/auth/apiTokens.d.ts +34 -0
- package/lib/server/forge/auth/apiTokens.d.ts.map +1 -0
- package/lib/server/forge/auth/apiTokens.js +44 -0
- package/lib/server/forge/auth/apiTokens.js.map +1 -0
- package/lib/server/forge/auth/auditLog.d.ts +36 -0
- package/lib/server/forge/auth/auditLog.d.ts.map +1 -0
- package/lib/server/forge/auth/auditLog.js +56 -0
- package/lib/server/forge/auth/auditLog.js.map +1 -0
- package/lib/server/forge/auth/authConfig.d.ts +13 -0
- package/lib/server/forge/auth/authConfig.d.ts.map +1 -0
- package/lib/server/forge/auth/authConfig.js +37 -0
- package/lib/server/forge/auth/authConfig.js.map +1 -0
- package/lib/server/forge/auth/createAuth.d.ts +130 -0
- package/lib/server/forge/auth/createAuth.d.ts.map +1 -0
- package/lib/server/forge/auth/createAuth.js +387 -0
- package/lib/server/forge/auth/createAuth.js.map +1 -0
- package/lib/server/forge/auth/middleware.d.ts +10 -0
- package/lib/server/forge/auth/middleware.d.ts.map +1 -0
- package/lib/server/forge/auth/middleware.js +22 -0
- package/lib/server/forge/auth/middleware.js.map +1 -0
- package/lib/server/forge/auth/oidc.d.ts +38 -0
- package/lib/server/forge/auth/oidc.d.ts.map +1 -0
- package/lib/server/forge/auth/oidc.js +63 -0
- package/lib/server/forge/auth/oidc.js.map +1 -0
- package/lib/server/forge/auth/passwords.d.ts +7 -0
- package/lib/server/forge/auth/passwords.d.ts.map +1 -0
- package/lib/server/forge/auth/passwords.js +28 -0
- package/lib/server/forge/auth/passwords.js.map +1 -0
- package/lib/server/forge/auth/resetPassword.d.ts +14 -0
- package/lib/server/forge/auth/resetPassword.d.ts.map +1 -0
- package/lib/server/forge/auth/resetPassword.js +29 -0
- package/lib/server/forge/auth/resetPassword.js.map +1 -0
- package/lib/server/forge/auth/roles.d.ts +7 -0
- package/lib/server/forge/auth/roles.d.ts.map +1 -0
- package/lib/server/forge/auth/roles.js +15 -0
- package/lib/server/forge/auth/roles.js.map +1 -0
- package/lib/server/forge/auth/sessions.d.ts +27 -0
- package/lib/server/forge/auth/sessions.d.ts.map +1 -0
- package/lib/server/forge/auth/sessions.js +37 -0
- package/lib/server/forge/auth/sessions.js.map +1 -0
- package/lib/server/forge/auth/testHarness.d.ts +104 -0
- package/lib/server/forge/auth/testHarness.d.ts.map +1 -0
- package/lib/server/forge/auth/testHarness.js +53 -0
- package/lib/server/forge/auth/testHarness.js.map +1 -0
- package/lib/server/forge/auth/tokenHash.d.ts +3 -0
- package/lib/server/forge/auth/tokenHash.d.ts.map +1 -0
- package/lib/server/forge/auth/tokenHash.js +4 -0
- package/lib/server/forge/auth/tokenHash.js.map +1 -0
- package/lib/server/forge/auth/users.d.ts +51 -0
- package/lib/server/forge/auth/users.d.ts.map +1 -0
- package/lib/server/forge/auth/users.js +118 -0
- package/lib/server/forge/auth/users.js.map +1 -0
- package/lib/server/forge/core/ForgeAgent.d.ts +58 -1
- package/lib/server/forge/core/ForgeAgent.d.ts.map +1 -1
- package/lib/server/forge/core/ForgeAgent.js +280 -32
- package/lib/server/forge/core/ForgeAgent.js.map +1 -1
- package/lib/server/forge/core/agentClient.d.ts +7 -5
- package/lib/server/forge/core/agentClient.d.ts.map +1 -1
- package/lib/server/forge/core/agentClient.js +11 -15
- 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/claudeClient.d.ts +63 -0
- package/lib/server/forge/core/claudeClient.d.ts.map +1 -1
- package/lib/server/forge/core/claudeClient.js +142 -50
- package/lib/server/forge/core/claudeClient.js.map +1 -1
- package/lib/server/forge/core/configStore.d.ts +12 -1
- package/lib/server/forge/core/configStore.d.ts.map +1 -1
- package/lib/server/forge/core/configStore.js +39 -2
- package/lib/server/forge/core/configStore.js.map +1 -1
- package/lib/server/forge/core/dependencyPaths.d.ts +19 -0
- package/lib/server/forge/core/dependencyPaths.d.ts.map +1 -0
- package/lib/server/forge/core/dependencyPaths.js +32 -0
- package/lib/server/forge/core/dependencyPaths.js.map +1 -0
- package/lib/server/forge/core/evidence.d.ts +43 -0
- package/lib/server/forge/core/evidence.d.ts.map +1 -0
- package/lib/server/forge/core/evidence.js +108 -0
- package/lib/server/forge/core/evidence.js.map +1 -0
- package/lib/server/forge/core/jobs.d.ts +2 -0
- package/lib/server/forge/core/jobs.d.ts.map +1 -1
- package/lib/server/forge/core/jobs.js +8 -0
- package/lib/server/forge/core/jobs.js.map +1 -1
- package/lib/server/forge/core/localRepo.d.ts +48 -7
- package/lib/server/forge/core/localRepo.d.ts.map +1 -1
- package/lib/server/forge/core/localRepo.js +123 -69
- package/lib/server/forge/core/localRepo.js.map +1 -1
- package/lib/server/forge/core/prompts.d.ts +20 -0
- package/lib/server/forge/core/prompts.d.ts.map +1 -1
- package/lib/server/forge/core/prompts.js +59 -0
- package/lib/server/forge/core/prompts.js.map +1 -1
- package/lib/server/forge/core/providers/azuredevops.d.ts +4 -2
- package/lib/server/forge/core/providers/azuredevops.d.ts.map +1 -1
- package/lib/server/forge/core/providers/azuredevops.js +12 -2
- package/lib/server/forge/core/providers/azuredevops.js.map +1 -1
- package/lib/server/forge/core/providers/base.d.ts +29 -4
- package/lib/server/forge/core/providers/base.d.ts.map +1 -1
- package/lib/server/forge/core/providers/base.js +21 -3
- package/lib/server/forge/core/providers/base.js.map +1 -1
- package/lib/server/forge/core/providers/github.d.ts +7 -7
- package/lib/server/forge/core/providers/github.d.ts.map +1 -1
- package/lib/server/forge/core/providers/github.js +13 -4
- package/lib/server/forge/core/providers/github.js.map +1 -1
- package/lib/server/forge/core/providers/gitlab.d.ts +20 -3
- package/lib/server/forge/core/providers/gitlab.d.ts.map +1 -1
- package/lib/server/forge/core/providers/gitlab.js +65 -5
- package/lib/server/forge/core/providers/gitlab.js.map +1 -1
- package/lib/server/forge/core/providers/types.d.ts +20 -0
- package/lib/server/forge/core/providers/types.d.ts.map +1 -1
- package/lib/server/forge/core/secretBox.d.ts +17 -0
- package/lib/server/forge/core/secretBox.d.ts.map +1 -0
- package/lib/server/forge/core/secretBox.js +74 -0
- package/lib/server/forge/core/secretBox.js.map +1 -0
- package/lib/server/forge/core/types.d.ts +8 -1
- package/lib/server/forge/core/types.d.ts.map +1 -1
- package/lib/server/forge/core/validator/clone.d.ts +5 -4
- package/lib/server/forge/core/validator/clone.d.ts.map +1 -1
- package/lib/server/forge/core/validator/clone.js +6 -86
- package/lib/server/forge/core/validator/clone.js.map +1 -1
- package/lib/server/forge/core/validator/cmd.d.ts.map +1 -1
- package/lib/server/forge/core/validator/cmd.js +4 -1
- package/lib/server/forge/core/validator/cmd.js.map +1 -1
- package/lib/server/forge/core/validator/projectType.d.ts.map +1 -1
- package/lib/server/forge/core/validator/projectType.js +2 -1
- package/lib/server/forge/core/validator/projectType.js.map +1 -1
- package/lib/server/forge/core/validator/runners/node.d.ts.map +1 -1
- package/lib/server/forge/core/validator/runners/node.js +6 -2
- package/lib/server/forge/core/validator/runners/node.js.map +1 -1
- package/lib/server/forge/core/validator.d.ts.map +1 -1
- package/lib/server/forge/core/validator.js +28 -22
- package/lib/server/forge/core/validator.js.map +1 -1
- package/lib/server/forge/core/workspaces.d.ts +70 -0
- package/lib/server/forge/core/workspaces.d.ts.map +1 -0
- package/lib/server/forge/core/workspaces.js +348 -0
- package/lib/server/forge/core/workspaces.js.map +1 -0
- package/lib/server/forge/db/database.d.ts +22 -0
- package/lib/server/forge/db/database.d.ts.map +1 -0
- package/lib/server/forge/db/database.js +71 -0
- package/lib/server/forge/db/database.js.map +1 -0
- package/lib/server/forge/db/migrations.d.ts +11 -0
- package/lib/server/forge/db/migrations.d.ts.map +1 -0
- package/lib/server/forge/db/migrations.js +87 -0
- package/lib/server/forge/db/migrations.js.map +1 -0
- package/lib/server/forge/routes.d.ts.map +1 -1
- package/lib/server/forge/routes.js +413 -163
- package/lib/server/forge/routes.js.map +1 -1
- package/lib/server/forge/sse.d.ts +10 -0
- package/lib/server/forge/sse.d.ts.map +1 -0
- package/lib/server/forge/sse.js +22 -0
- package/lib/server/forge/sse.js.map +1 -0
- package/lib/server/spa.d.ts +12 -0
- package/lib/server/spa.d.ts.map +1 -0
- package/lib/server/spa.js +23 -0
- package/lib/server/spa.js.map +1 -0
- package/lib/server.js +9 -24
- package/lib/server.js.map +1 -1
- package/lib/shared/events.d.ts +3 -0
- package/lib/shared/events.d.ts.map +1 -1
- package/lib/shared/events.js +3 -0
- package/lib/shared/events.js.map +1 -1
- package/lib/shared/packageRoot.d.ts +11 -0
- package/lib/shared/packageRoot.d.ts.map +1 -0
- package/lib/shared/packageRoot.js +23 -0
- package/lib/shared/packageRoot.js.map +1 -0
- package/lib/shared/project.d.ts +3 -0
- package/lib/shared/project.d.ts.map +1 -0
- package/lib/shared/project.js +3 -0
- package/lib/shared/project.js.map +1 -0
- package/package.json +24 -9
- package/lib/bin/cli/improve.d.ts +0 -2
- package/lib/bin/cli/improve.d.ts.map +0 -1
- package/lib/bin/cli/improve.js +0 -189
- package/lib/bin/cli/improve.js.map +0 -1
- package/lib/bin/cli/stats.d.ts +0 -2
- package/lib/bin/cli/stats.d.ts.map +0 -1
- package/lib/bin/cli/stats.js +0 -78
- package/lib/bin/cli/stats.js.map +0 -1
- package/lib/server/forge/core/k8s.d.ts +0 -18
- package/lib/server/forge/core/k8s.d.ts.map +0 -1
- package/lib/server/forge/core/k8s.js +0 -49
- package/lib/server/forge/core/k8s.js.map +0 -1
- package/lib/server/forge/core/openclawClient.d.ts +0 -61
- package/lib/server/forge/core/openclawClient.d.ts.map +0 -1
- package/lib/server/forge/core/openclawClient.js +0 -111
- package/lib/server/forge/core/openclawClient.js.map +0 -1
- package/lib/server/forge/core/quotaClient.d.ts +0 -48
- package/lib/server/forge/core/quotaClient.d.ts.map +0 -1
- package/lib/server/forge/core/quotaClient.js +0 -88
- package/lib/server/forge/core/quotaClient.js.map +0 -1
- package/lib/server/forge/core/selfImprove.d.ts +0 -43
- package/lib/server/forge/core/selfImprove.d.ts.map +0 -1
- package/lib/server/forge/core/selfImprove.js +0 -372
- package/lib/server/forge/core/selfImprove.js.map +0 -1
- package/lib/server/forge/core/telemetry.d.ts +0 -100
- package/lib/server/forge/core/telemetry.d.ts.map +0 -1
- package/lib/server/forge/core/telemetry.js +0 -273
- package/lib/server/forge/core/telemetry.js.map +0 -1
- package/scripts/fix-shebang.cjs +0 -11
- package/scripts/inject-readme.cjs +0 -23
- package/scripts/local-rollout.sh +0 -134
|
@@ -10,7 +10,8 @@
|
|
|
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
|
|
13
|
+
import * as configStore from "./configStore.js";
|
|
14
|
+
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
15
|
// FORGE_MODEL env var overrides the default. Set to a cheaper model to reduce cost.
|
|
15
16
|
// e.g. FORGE_MODEL=claude-haiku-4-5-20251001
|
|
16
17
|
const MODEL = process.env.FORGE_MODEL ?? "claude-sonnet-4-6";
|
|
@@ -114,12 +115,70 @@ async function runClaude(prompt, jsonSchema, systemPrompt, model, options = {})
|
|
|
114
115
|
// turn — re-passing it would stack a second system message.
|
|
115
116
|
if (systemPrompt && !resumeSession)
|
|
116
117
|
args.push("--system-prompt", systemPrompt);
|
|
118
|
+
const wrapper = await spawnClaude({ args, prompt, cwd, onEvent, signal, timeout });
|
|
119
|
+
const result = wrapper.result ?? "";
|
|
120
|
+
if (!result.trim()) {
|
|
121
|
+
// Claude succeeded but emitted no content. Usually means the model
|
|
122
|
+
// got stuck in a tool-use loop or was blocked by --disallowed-tools.
|
|
123
|
+
// Surface a clean, actionable message instead of dumping the wrapper.
|
|
124
|
+
const stopReason = wrapper.stop_reason ?? "unknown";
|
|
125
|
+
const turns = wrapper.num_turns ?? 0;
|
|
126
|
+
const hint = stopReason === "tool_use"
|
|
127
|
+
? "model tried to use a blocked tool — retry or allow the tool."
|
|
128
|
+
: "model produced empty output — retry or switch model.";
|
|
129
|
+
throw new Error(`Claude returned no content (stop_reason: ${stopReason}, turns: ${turns}). ${hint}`);
|
|
130
|
+
}
|
|
131
|
+
let data;
|
|
132
|
+
try {
|
|
133
|
+
data = extractJSON(result);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
137
|
+
throw new Error(`Claude response was not valid JSON — ${msg}. First 200 chars of result: ${result.slice(0, 200)}`);
|
|
138
|
+
}
|
|
139
|
+
const wrapperSessionId = warnOnSessionMismatch(wrapper, sessionId);
|
|
140
|
+
return {
|
|
141
|
+
data,
|
|
142
|
+
cost: wrapper.total_cost_usd ?? 0,
|
|
143
|
+
serviceTier: wrapper.usage?.service_tier ?? "unknown",
|
|
144
|
+
inputTokens: wrapper.usage?.input_tokens ?? 0,
|
|
145
|
+
outputTokens: wrapper.usage?.output_tokens ?? 0,
|
|
146
|
+
cacheCreationTokens: wrapper.usage?.cache_creation_input_tokens ?? 0,
|
|
147
|
+
cacheReadTokens: wrapper.usage?.cache_read_input_tokens ?? 0,
|
|
148
|
+
sessionId: wrapperSessionId ?? sessionId ?? null,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Environment for the `claude` subprocess. ANTHROPIC_API_KEY from the host env
|
|
153
|
+
* is always stripped so the CLI uses the OAuth session (Claude Code
|
|
154
|
+
* subscription) rather than silently falling back to API credits. A workspace
|
|
155
|
+
* key saved in Settings is the one exception: hosted workspaces run Claude on
|
|
156
|
+
* their own Anthropic account.
|
|
157
|
+
*/
|
|
158
|
+
export function buildClaudeEnv({ env, apiKey }) {
|
|
159
|
+
const { ANTHROPIC_API_KEY: _removed, ...cleanEnv } = env;
|
|
160
|
+
return { ...cleanEnv, FORCE_COLOR: "0", ...(apiKey ? { ANTHROPIC_API_KEY: apiKey } : {}) };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Spawns the `claude` CLI, pipes the prompt to stdin, streams tool-use logs to
|
|
164
|
+
* onEvent, and resolves with the parsed `result` wrapper. Shared by both the
|
|
165
|
+
* structured (JSON) and agentic (free-form) callers — only the args and the
|
|
166
|
+
* post-processing of `wrapper.result` differ between them.
|
|
167
|
+
*/
|
|
168
|
+
/** The CLI ran past its time limit; whatever it already edited is still on disk. */
|
|
169
|
+
export class AgentTimeoutError extends Error {
|
|
170
|
+
minutes;
|
|
171
|
+
constructor(minutes) {
|
|
172
|
+
super(`claude CLI timed out after ${minutes} minutes`);
|
|
173
|
+
this.minutes = minutes;
|
|
174
|
+
this.name = "AgentTimeoutError";
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function spawnClaude({ args, prompt, cwd, onEvent, signal, timeout }) {
|
|
178
|
+
const streaming = typeof onEvent === "function";
|
|
117
179
|
return new Promise((resolve, reject) => {
|
|
118
|
-
// Strip ANTHROPIC_API_KEY so the CLI uses the OAuth session
|
|
119
|
-
// (Claude Code subscription) rather than falling back to API credits.
|
|
120
|
-
const { ANTHROPIC_API_KEY: _removed, ...cleanEnv } = process.env;
|
|
121
180
|
const proc = spawn(CLAUDE_BIN, args, {
|
|
122
|
-
env: {
|
|
181
|
+
env: buildClaudeEnv({ env: process.env, apiKey: configStore.getAnthropicKey() }),
|
|
123
182
|
stdio: ["pipe", "pipe", "pipe"],
|
|
124
183
|
...(cwd ? { cwd } : {}),
|
|
125
184
|
});
|
|
@@ -131,7 +190,7 @@ async function runClaude(prompt, jsonSchema, systemPrompt, model, options = {})
|
|
|
131
190
|
const timeoutMin = Math.round(timeoutMs / 60_000);
|
|
132
191
|
const timer = setTimeout(() => {
|
|
133
192
|
proc.kill();
|
|
134
|
-
reject(new
|
|
193
|
+
reject(new AgentTimeoutError(timeoutMin));
|
|
135
194
|
}, timeoutMs);
|
|
136
195
|
// External abort (e.g. user cancelled the analysis). Kill the subprocess
|
|
137
196
|
// so we stop billing the subscription / token window for work the user
|
|
@@ -199,68 +258,101 @@ async function runClaude(prompt, jsonSchema, systemPrompt, model, options = {})
|
|
|
199
258
|
}
|
|
200
259
|
return;
|
|
201
260
|
}
|
|
202
|
-
let wrapper;
|
|
203
261
|
if (streaming) {
|
|
204
262
|
if (!streamedResult) {
|
|
205
263
|
reject(new Error(`claude CLI stream ended without a result event (${stdout.length} bytes). First 200 chars: ${stdout.slice(0, 200)}`));
|
|
206
264
|
return;
|
|
207
265
|
}
|
|
208
|
-
|
|
266
|
+
resolve(streamedResult);
|
|
209
267
|
}
|
|
210
268
|
else {
|
|
211
269
|
try {
|
|
212
|
-
|
|
270
|
+
resolve(JSON.parse(stdout.trim()));
|
|
213
271
|
}
|
|
214
272
|
catch {
|
|
215
273
|
reject(new Error(`claude CLI returned non-JSON output (${stdout.length} bytes). First 200 chars: ${stdout.slice(0, 200)}`));
|
|
216
|
-
return;
|
|
217
274
|
}
|
|
218
275
|
}
|
|
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
276
|
});
|
|
260
277
|
proc.stdin.write(prompt, "utf8");
|
|
261
278
|
proc.stdin.end();
|
|
262
279
|
});
|
|
263
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* The CLI echoes the session id it actually used. If it doesn't match the one
|
|
283
|
+
* we passed (CLI version drift, resume silently forked to a new session, etc.),
|
|
284
|
+
* warn — the caller should persist the CLI's id or we'll resume the wrong
|
|
285
|
+
* conversation next turn. Returns the CLI's session id (or null).
|
|
286
|
+
*/
|
|
287
|
+
function warnOnSessionMismatch(wrapper, sessionId) {
|
|
288
|
+
const wrapperSessionId = wrapper.session_id ?? null;
|
|
289
|
+
if (sessionId && wrapperSessionId && wrapperSessionId !== sessionId) {
|
|
290
|
+
console.warn(`[claudeClient] session_id mismatch: passed ${sessionId}, CLI returned ${wrapperSessionId}. Using CLI value.`);
|
|
291
|
+
}
|
|
292
|
+
return wrapperSessionId;
|
|
293
|
+
}
|
|
294
|
+
// ─── Agentic mode ───────────────────────────────────────────────────────────
|
|
295
|
+
// Instead of the single-turn JSON pipeline, run Claude as a full Claude Code
|
|
296
|
+
// agent inside a checkout: real tools, the project's CLAUDE.md, multi-turn loop.
|
|
297
|
+
// Forge captures the resulting `git diff` (see localRepo.captureChanges).
|
|
298
|
+
/** Tools granted to the agent in agentic mode — the editing + verification loop. */
|
|
299
|
+
export const AGENTIC_TOOLS = ["Read", "Glob", "Grep", "Edit", "Write", "MultiEdit", "Bash", "TodoWrite"];
|
|
300
|
+
/**
|
|
301
|
+
* Builds the CLI args for an agentic run. Deliberately the inverse of the
|
|
302
|
+
* structured args: tools are GRANTED (not killed with `--tools ""`), project
|
|
303
|
+
* settings are LOADED (so the repo's CLAUDE.md applies), and the Forge persona
|
|
304
|
+
* is APPENDED on top of the real harness prompt rather than replacing it.
|
|
305
|
+
*/
|
|
306
|
+
export function buildAgenticArgs({ model, systemPrompt }) {
|
|
307
|
+
return [
|
|
308
|
+
"--print",
|
|
309
|
+
"--output-format", "stream-json",
|
|
310
|
+
"--verbose",
|
|
311
|
+
"--model", model ?? MODEL,
|
|
312
|
+
"--fallback-model", FALLBACK_MODEL,
|
|
313
|
+
"--allowed-tools", AGENTIC_TOOLS.join(","),
|
|
314
|
+
// Load the target repo's project settings (CLAUDE.md cascade, etc.) but
|
|
315
|
+
// not Forge's own user/local settings — we want the repo's conventions,
|
|
316
|
+
// not this machine's config.
|
|
317
|
+
"--setting-sources", "project",
|
|
318
|
+
// Append, don't replace: keep the Claude Code agent harness and add Forge's
|
|
319
|
+
// guardrails on top. (--system-prompt would override the harness entirely.)
|
|
320
|
+
...(systemPrompt ? ["--append-system-prompt", systemPrompt] : []),
|
|
321
|
+
];
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Agentic counterpart to proposeFix: spawns Claude as an agent in `cwd` (a
|
|
325
|
+
* checkout of the repo) and lets it edit files directly. Returns the agent's
|
|
326
|
+
* final free-form message (with the trailing TITLE line) — the actual changes
|
|
327
|
+
* are read from the working tree by the caller via localRepo.captureChanges.
|
|
328
|
+
*/
|
|
329
|
+
export async function proposeFixAgentic(params) {
|
|
330
|
+
const { issue, cwd, model, promptRules, userPrompt, ciContext, feedback, onEvent, signal, timeout } = params;
|
|
331
|
+
if (signal?.aborted) {
|
|
332
|
+
const err = new Error("Claude CLI call cancelled before start.");
|
|
333
|
+
err.name = "AbortError";
|
|
334
|
+
throw err;
|
|
335
|
+
}
|
|
336
|
+
const args = buildAgenticArgs({ model, systemPrompt: AGENTIC_SYSTEM_PROMPT });
|
|
337
|
+
const prompt = buildAgenticFixPrompt(issue, { promptRules, userPrompt, ciContext, feedback });
|
|
338
|
+
const wrapper = await spawnClaude({ args, prompt, cwd, onEvent, signal, timeout });
|
|
339
|
+
const text = wrapper.result ?? "";
|
|
340
|
+
if (!text.trim()) {
|
|
341
|
+
const stopReason = wrapper.stop_reason ?? "unknown";
|
|
342
|
+
const turns = wrapper.num_turns ?? 0;
|
|
343
|
+
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.`);
|
|
344
|
+
}
|
|
345
|
+
return {
|
|
346
|
+
text,
|
|
347
|
+
cost: wrapper.total_cost_usd ?? 0,
|
|
348
|
+
serviceTier: wrapper.usage?.service_tier ?? "unknown",
|
|
349
|
+
inputTokens: wrapper.usage?.input_tokens ?? 0,
|
|
350
|
+
outputTokens: wrapper.usage?.output_tokens ?? 0,
|
|
351
|
+
cacheCreationTokens: wrapper.usage?.cache_creation_input_tokens ?? 0,
|
|
352
|
+
cacheReadTokens: wrapper.usage?.cache_read_input_tokens ?? 0,
|
|
353
|
+
sessionId: warnOnSessionMismatch(wrapper, undefined),
|
|
354
|
+
};
|
|
355
|
+
}
|
|
264
356
|
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
265
357
|
export async function checkResolution(issue, diffs, model, opts = {}) {
|
|
266
358
|
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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"}
|
|
@@ -38,6 +38,12 @@ export declare function getConnection(provider: ProviderKey): {
|
|
|
38
38
|
token: string;
|
|
39
39
|
baseUrl?: string;
|
|
40
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Workspace Anthropic key from Settings, or "" when none is saved. Config only:
|
|
43
|
+
* ANTHROPIC_API_KEY in the env feeds the model list and quota check, and must
|
|
44
|
+
* never switch Claude itself onto API billing.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getAnthropicKey(): string;
|
|
41
47
|
/**
|
|
42
48
|
* Safe view for the API — raw tokens are replaced with a short hint and a
|
|
43
49
|
* boolean so the UI can render state without ever seeing a secret.
|
|
@@ -47,13 +53,13 @@ export declare function getPublic(): {
|
|
|
47
53
|
defaults: {
|
|
48
54
|
model: string | null;
|
|
49
55
|
agent: string | null;
|
|
56
|
+
agentMode?: "structured" | "agentic";
|
|
50
57
|
autoPushOnValidatePass: boolean;
|
|
51
58
|
refineRepoAccess: boolean;
|
|
52
59
|
promptRules: string;
|
|
53
60
|
testDeployUrlTemplate?: string;
|
|
54
61
|
maxCiFixAttempts?: number;
|
|
55
62
|
cliTimeout?: number;
|
|
56
|
-
selfImproveEnabled?: boolean;
|
|
57
63
|
};
|
|
58
64
|
connections: {
|
|
59
65
|
gitlab: {
|
|
@@ -72,6 +78,11 @@ export declare function getPublic(): {
|
|
|
72
78
|
tokenHint: string;
|
|
73
79
|
tokenSource: string;
|
|
74
80
|
};
|
|
81
|
+
anthropic: {
|
|
82
|
+
hasToken: boolean;
|
|
83
|
+
tokenHint: string;
|
|
84
|
+
tokenSource: string;
|
|
85
|
+
};
|
|
75
86
|
};
|
|
76
87
|
};
|
|
77
88
|
export {};
|
|
@@ -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;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAiJvD,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;AAED;;;;GAIG;AACH,wBAAgB,eAAe,WAE9B;AAQD;;;GAGG;AACH,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BxB"}
|
|
@@ -14,6 +14,8 @@ 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";
|
|
18
|
+
import { createSecretBox, defaultKeyPath, loadOrCreateKey } from "./secretBox.js";
|
|
17
19
|
/** @typedef {{ id: string, label: string, projectType?: "auto" | "node" | "go" }} ForgeRepo */
|
|
18
20
|
/**
|
|
19
21
|
* @typedef {{ baseUrl: string, token: string }} GitLabConnection
|
|
@@ -45,6 +47,11 @@ const DEFAULT_CONFIG = {
|
|
|
45
47
|
defaults: {
|
|
46
48
|
model: null,
|
|
47
49
|
agent: null,
|
|
50
|
+
// How Forge drives Claude to propose changes — see agentMode.ts.
|
|
51
|
+
// "structured" (default): two-pass JSON pipeline. "agentic": full Claude
|
|
52
|
+
// Code agent in a checkout, changes captured from git. Overridable per
|
|
53
|
+
// request and via the FORGE_AGENT_MODE env var.
|
|
54
|
+
agentMode: AGENT_MODE.structured,
|
|
48
55
|
autoPushOnValidatePass: false,
|
|
49
56
|
// When true (default), Refine gets Read/Glob/Grep access to a local
|
|
50
57
|
// clone of the primary repo. Off → lighter "file tree in prompt" flow.
|
|
@@ -66,8 +73,24 @@ const DEFAULT_CONFIG = {
|
|
|
66
73
|
gitlab: { baseUrl: BUILTIN_BASE_URLS.gitlab, token: "" },
|
|
67
74
|
github: { token: "", owner: "", repo: "", baseBranch: "main" },
|
|
68
75
|
azuredevops: { token: "", org: "", project: "", repo: "", baseBranch: "main" },
|
|
76
|
+
// Workspace Anthropic key. When set, Claude runs on this account's API
|
|
77
|
+
// credits instead of the host's Claude Code subscription.
|
|
78
|
+
anthropic: { token: "" },
|
|
69
79
|
},
|
|
70
80
|
};
|
|
81
|
+
// Connection secrets are sealed with AES-256-GCM on disk and held in plaintext
|
|
82
|
+
// only in memory. The key comes from FORGE_ENCRYPTION_KEY or ~/.forge/master.key.
|
|
83
|
+
const secretBox = createSecretBox(loadOrCreateKey({ envKey: process.env.FORGE_ENCRYPTION_KEY, keyPath: defaultKeyPath() }));
|
|
84
|
+
const SEALED_CONNECTIONS = ["gitlab", "github", "azuredevops", "anthropic"];
|
|
85
|
+
function mapTokens(cfg, fn) {
|
|
86
|
+
const out = structuredClone(cfg);
|
|
87
|
+
for (const name of SEALED_CONNECTIONS) {
|
|
88
|
+
const conn = out.connections?.[name];
|
|
89
|
+
if (conn?.token)
|
|
90
|
+
conn.token = fn(conn.token);
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
71
94
|
function configPath() {
|
|
72
95
|
return process.env.FORGE_CONFIG_PATH ?? path.join(os.homedir(), ".forge", "config.json");
|
|
73
96
|
}
|
|
@@ -82,7 +105,8 @@ function loadSync() {
|
|
|
82
105
|
try {
|
|
83
106
|
const raw = fsSync.readFileSync(p, "utf8");
|
|
84
107
|
const parsed = JSON.parse(raw);
|
|
85
|
-
|
|
108
|
+
const merged = mergeDeep(DEFAULT_CONFIG, parsed);
|
|
109
|
+
return mapTokens(merged, secretBox.open);
|
|
86
110
|
}
|
|
87
111
|
catch (err) {
|
|
88
112
|
const e = err;
|
|
@@ -99,7 +123,7 @@ async function writeToDisk(cfg) {
|
|
|
99
123
|
const p = configPath();
|
|
100
124
|
await fs.mkdir(path.dirname(p), { recursive: true });
|
|
101
125
|
const tmp = `${p}.${process.pid}.${Date.now()}.tmp`;
|
|
102
|
-
await fs.writeFile(tmp, JSON.stringify(cfg, null, 2), "utf8");
|
|
126
|
+
await fs.writeFile(tmp, JSON.stringify(mapTokens(cfg, secretBox.seal), null, 2), "utf8");
|
|
103
127
|
// 0600 — owner read/write only. Belt-and-suspenders for when tokens land here.
|
|
104
128
|
await fs.chmod(tmp, 0o600);
|
|
105
129
|
await fs.rename(tmp, p);
|
|
@@ -176,6 +200,14 @@ export function getConnection(provider) {
|
|
|
176
200
|
token: fromCfg.token || envToken,
|
|
177
201
|
};
|
|
178
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Workspace Anthropic key from Settings, or "" when none is saved. Config only:
|
|
205
|
+
* ANTHROPIC_API_KEY in the env feeds the model list and quota check, and must
|
|
206
|
+
* never switch Claude itself onto API billing.
|
|
207
|
+
*/
|
|
208
|
+
export function getAnthropicKey() {
|
|
209
|
+
return cache.connections?.anthropic?.token ?? "";
|
|
210
|
+
}
|
|
179
211
|
function maskToken(t) {
|
|
180
212
|
if (!t)
|
|
181
213
|
return "";
|
|
@@ -210,6 +242,11 @@ export function getPublic() {
|
|
|
210
242
|
tokenHint: maskToken(conn.azuredevops?.token || process.env.AZURE_DEVOPS_TOKEN || ""),
|
|
211
243
|
tokenSource: conn.azuredevops?.token ? "config" : process.env.AZURE_DEVOPS_TOKEN ? "env" : "none",
|
|
212
244
|
},
|
|
245
|
+
anthropic: {
|
|
246
|
+
hasToken: Boolean(getAnthropicKey()),
|
|
247
|
+
tokenHint: maskToken(getAnthropicKey()),
|
|
248
|
+
tokenSource: getAnthropicKey() ? "config" : "none",
|
|
249
|
+
},
|
|
213
250
|
},
|
|
214
251
|
};
|
|
215
252
|
}
|
|
@@ -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":"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;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMlF,+FAA+F;AAE/F;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,iBAAiB,GAAG;IACzB,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,wBAAwB;CAChC,CAAC;AAEF,MAAM,cAAc,GAAgB;IACnC,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE;QACT,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,iEAAiE;QACjE,yEAAyE;QACzE,uEAAuE;QACvE,gDAAgD;QAChD,SAAS,EAAE,UAAU,CAAC,UAAU;QAChC,sBAAsB,EAAE,KAAK;QAC7B,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,gBAAgB,EAAE,IAAI;QACtB,kEAAkE;QAClE,uDAAuD;QACvD,WAAW,EAAE,EAAE;QACf,4DAA4D;QAC5D,0EAA0E;QAC1E,gBAAgB,EAAE,CAAC;QACnB,kEAAkE;QAClE,wEAAwE;QACxE,qEAAqE;QACrE,0CAA0C;QAC1C,qBAAqB,EAAE,EAAE;KACzB;IACD,WAAW,EAAE;QACZ,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACxD,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAC9D,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAC9E,uEAAuE;QACvE,0DAA0D;QAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KACxB;CACD,CAAC;AAEF,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,SAAS,GAAG,eAAe,CAChC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CACxF,CAAC;AACF,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAU,CAAC;AAErF,SAAS,SAAS,CAAC,GAAgB,EAAE,EAA6B;IACjE,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAmC,CAAC;QACvE,IAAI,IAAI,EAAE,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,UAAU;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ;IAChB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,cAAoD,EAAE,MAAM,CAA2B,CAAC;QACjH,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC;QACzF,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;AACF,CAAC;AAED,IAAI,KAAK,GAAgB,QAAQ,EAAE,CAAC;AAEpC,iEAAiE;AACjE,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAEjC,KAAK,UAAU,WAAW,CAAC,GAAgB;IAC1C,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzF,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,IAA6B,EAAE,KAA8B;IAC/E,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IACC,CAAC,KAAK,IAAI;YACV,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,EAAE,KAAK,IAAI;YACX,OAAO,EAAE,KAAK,QAAQ;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EACjB,CAAC;YACF,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAA6B,EAAE,CAA4B,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG;IAClB,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,KAA8B;IACnD,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAA2C,EAAE,KAAK,CAA2B,CAAC;QACrG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,GAAG,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,MAAM;IACrB,KAAK,GAAG,QAAQ,EAAE,CAAC;IACnB,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC;IAC9E,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,cAAc,GAAG;IACtB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,oBAAoB;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAqB;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAK,EAA6B,CAAC;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAI,OAAgC,CAAC,OAAO,IAAI,iBAAiB,CAAC,QAAsB,CAAC,CAAC;IACvG,OAAO;QACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ;KAChC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC;IAC3D,OAAO;QACN,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE;YACZ,MAAM,EAAE;gBACP,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,iBAAiB,CAAC,MAAM;gBACzD,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;gBACjE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC1E,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;aACtF;YACD,MAAM,EAAE;gBACP,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;gBACjE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC1E,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;aACtF;YACD,WAAW,EAAE;gBACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;gBAC5E,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;gBACrF,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;aACjG;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;gBACpC,SAAS,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;gBACvC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;aAClD;SACD;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* server/forge/core/dependencyPaths.ts
|
|
3
|
+
*
|
|
4
|
+
* Installed-dependency folders. Forge never captures or commits anything
|
|
5
|
+
* inside them, whatever the target repo's .gitignore says. A `node_modules/`
|
|
6
|
+
* rule (trailing slash) only matches directories, so a node_modules
|
|
7
|
+
* *symlink* would otherwise slip through `git add -A`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEPENDENCY_DIRS: readonly string[];
|
|
10
|
+
/** True when `name` (a single path segment) is a dependency folder. */
|
|
11
|
+
export declare function isDependencyDir(name: string): boolean;
|
|
12
|
+
/** True when any "/"-separated segment of a repo-relative path is a dependency folder. */
|
|
13
|
+
export declare function isDependencyPath(file: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Git pathspecs that keep dependency folders (and symlinks named like them)
|
|
16
|
+
* out of `git add`, at any depth. Pass after `-- .`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function dependencyExcludePathspecs(): string[];
|
|
19
|
+
//# sourceMappingURL=dependencyPaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyPaths.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/dependencyPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAM5C,CAAC;AAIF,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* server/forge/core/dependencyPaths.ts
|
|
3
|
+
*
|
|
4
|
+
* Installed-dependency folders. Forge never captures or commits anything
|
|
5
|
+
* inside them, whatever the target repo's .gitignore says. A `node_modules/`
|
|
6
|
+
* rule (trailing slash) only matches directories, so a node_modules
|
|
7
|
+
* *symlink* would otherwise slip through `git add -A`.
|
|
8
|
+
*/
|
|
9
|
+
export const DEPENDENCY_DIRS = [
|
|
10
|
+
"node_modules",
|
|
11
|
+
"bower_components",
|
|
12
|
+
"jspm_packages",
|
|
13
|
+
".venv",
|
|
14
|
+
"__pycache__",
|
|
15
|
+
];
|
|
16
|
+
const DEPENDENCY_DIR_SET = new Set(DEPENDENCY_DIRS);
|
|
17
|
+
/** True when `name` (a single path segment) is a dependency folder. */
|
|
18
|
+
export function isDependencyDir(name) {
|
|
19
|
+
return DEPENDENCY_DIR_SET.has(name);
|
|
20
|
+
}
|
|
21
|
+
/** True when any "/"-separated segment of a repo-relative path is a dependency folder. */
|
|
22
|
+
export function isDependencyPath(file) {
|
|
23
|
+
return file.split("/").some(isDependencyDir);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Git pathspecs that keep dependency folders (and symlinks named like them)
|
|
27
|
+
* out of `git add`, at any depth. Pass after `-- .`.
|
|
28
|
+
*/
|
|
29
|
+
export function dependencyExcludePathspecs() {
|
|
30
|
+
return DEPENDENCY_DIRS.flatMap((dir) => [`:(exclude,glob)**/${dir}`, `:(exclude,glob)**/${dir}/**`]);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=dependencyPaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyPaths.js","sourceRoot":"","sources":["../../../../server/forge/core/dependencyPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAsB;IACjD,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,OAAO;IACP,aAAa;CACb,CAAC;AAEF,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AAEzE,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACzC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,qBAAqB,GAAG,EAAE,EAAE,qBAAqB,GAAG,KAAK,CAAC,CAAC,CAAC;AACtG,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* server/forge/core/evidence.ts
|
|
3
|
+
*
|
|
4
|
+
* Evidence an agentic run gathers to prove its change — a write-up plus
|
|
5
|
+
* screenshots — so Forge can attach it to the merge request. Forge doesn't
|
|
6
|
+
* capture anything itself: the agent runs whatever it needs (Playwright, the
|
|
7
|
+
* test suite, …) and drops the results in EVIDENCE_DIR at the checkout root.
|
|
8
|
+
*
|
|
9
|
+
* The folder is listed in the clone's .git/info/exclude, so captureChanges
|
|
10
|
+
* never picks it up and nothing in it is committed.
|
|
11
|
+
*/
|
|
12
|
+
export declare const EVIDENCE_DIR = ".forge-evidence";
|
|
13
|
+
export declare const EVIDENCE_NOTES_FILE = "EVIDENCE.md";
|
|
14
|
+
export declare const EVIDENCE_LIMITS: {
|
|
15
|
+
maxImages: number;
|
|
16
|
+
maxImageBytes: number;
|
|
17
|
+
};
|
|
18
|
+
export interface EvidenceImage {
|
|
19
|
+
/** Path relative to EVIDENCE_DIR, "/"-separated. */
|
|
20
|
+
name: string;
|
|
21
|
+
data: Buffer;
|
|
22
|
+
}
|
|
23
|
+
export interface EvidenceUpload {
|
|
24
|
+
name: string;
|
|
25
|
+
url: string;
|
|
26
|
+
}
|
|
27
|
+
/** Empties the evidence folder (it survives `git clean`) and keeps it out of git. */
|
|
28
|
+
export declare function prepareEvidenceDir(dir: string): Promise<string>;
|
|
29
|
+
/** Reads what the agent left in the evidence folder. `skipped` lists images over the limits. */
|
|
30
|
+
export declare function collectEvidence(dir: string): Promise<{
|
|
31
|
+
notes: string | null;
|
|
32
|
+
images: EvidenceImage[];
|
|
33
|
+
skipped: string[];
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Builds the markdown for the MR: the notes with image links pointed at the
|
|
37
|
+
* uploads, then any uploaded image the notes didn't mention. Null when empty.
|
|
38
|
+
*/
|
|
39
|
+
export declare function renderEvidence({ notes, uploads }: {
|
|
40
|
+
notes: string | null;
|
|
41
|
+
uploads: EvidenceUpload[];
|
|
42
|
+
}): string | null;
|
|
43
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAKF,MAAM,WAAW,aAAa;IAC7B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAeD,qFAAqF;AACrF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAarE;AAaD,gGAAgG;AAChG,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqBhI;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAerH"}
|