@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.
Files changed (39) hide show
  1. package/README.md +9 -1
  2. package/lib/server/forge/core/ForgeAgent.d.ts +15 -0
  3. package/lib/server/forge/core/ForgeAgent.d.ts.map +1 -1
  4. package/lib/server/forge/core/ForgeAgent.js +102 -2
  5. package/lib/server/forge/core/ForgeAgent.js.map +1 -1
  6. package/lib/server/forge/core/agentClient.d.ts +18 -0
  7. package/lib/server/forge/core/agentClient.d.ts.map +1 -1
  8. package/lib/server/forge/core/agentClient.js +11 -0
  9. package/lib/server/forge/core/agentClient.js.map +1 -1
  10. package/lib/server/forge/core/agentMode.d.ts +38 -0
  11. package/lib/server/forge/core/agentMode.d.ts.map +1 -0
  12. package/lib/server/forge/core/agentMode.js +43 -0
  13. package/lib/server/forge/core/agentMode.js.map +1 -0
  14. package/lib/server/forge/core/ciTraceParser.d.ts +33 -0
  15. package/lib/server/forge/core/ciTraceParser.d.ts.map +1 -0
  16. package/lib/server/forge/core/ciTraceParser.js +152 -0
  17. package/lib/server/forge/core/ciTraceParser.js.map +1 -0
  18. package/lib/server/forge/core/claudeClient.d.ts +40 -0
  19. package/lib/server/forge/core/claudeClient.d.ts.map +1 -1
  20. package/lib/server/forge/core/claudeClient.js +119 -45
  21. package/lib/server/forge/core/claudeClient.js.map +1 -1
  22. package/lib/server/forge/core/configStore.d.ts +2 -0
  23. package/lib/server/forge/core/configStore.d.ts.map +1 -1
  24. package/lib/server/forge/core/configStore.js +9 -0
  25. package/lib/server/forge/core/configStore.js.map +1 -1
  26. package/lib/server/forge/core/localRepo.d.ts +20 -0
  27. package/lib/server/forge/core/localRepo.d.ts.map +1 -1
  28. package/lib/server/forge/core/localRepo.js +88 -0
  29. package/lib/server/forge/core/localRepo.js.map +1 -1
  30. package/lib/server/forge/core/prompts.d.ts +18 -0
  31. package/lib/server/forge/core/prompts.d.ts.map +1 -1
  32. package/lib/server/forge/core/prompts.js +61 -2
  33. package/lib/server/forge/core/prompts.js.map +1 -1
  34. package/lib/server/forge/core/types.d.ts +2 -0
  35. package/lib/server/forge/core/types.d.ts.map +1 -1
  36. package/lib/server/forge/routes.d.ts.map +1 -1
  37. package/lib/server/forge/routes.js +12 -2
  38. package/lib/server/forge/routes.js.map +1 -1
  39. package/package.json +2 -2
@@ -43,6 +43,26 @@ function runGit(args, opts = {}, onLog) {
43
43
  proc.on("close", (code) => resolve({ code: code ?? -1, output: lines.join("\n"), error: null }));
44
44
  });
45
45
  }
46
+ /**
47
+ * Like runGit, but returns raw stdout/stderr as single strings instead of
48
+ * splitting on newlines. Needed for NUL-delimited (`-z`) output and for
49
+ * reading file blobs (`git show`) whose content must survive verbatim.
50
+ */
51
+ function runGitRaw(args, cwd) {
52
+ return new Promise((resolve) => {
53
+ const proc = spawn("git", args, {
54
+ cwd,
55
+ env: { ...process.env, FORCE_COLOR: "0", NO_COLOR: "1", TERM: "dumb" },
56
+ stdio: ["ignore", "pipe", "pipe"],
57
+ });
58
+ let stdout = "";
59
+ let stderr = "";
60
+ proc.stdout.on("data", (d) => { stdout += d.toString("utf8"); });
61
+ proc.stderr.on("data", (d) => { stderr += d.toString("utf8"); });
62
+ proc.on("error", (err) => resolve({ code: -1, stdout, stderr: err.message }));
63
+ proc.on("close", (code) => resolve({ code: code ?? -1, stdout, stderr }));
64
+ });
65
+ }
46
66
  async function exists(p) {
47
67
  try {
48
68
  await fs.access(p);
@@ -162,4 +182,72 @@ export async function overlayChanges(dir, changes, onLog) {
162
182
  }
163
183
  }
164
184
  }
185
+ /** Maps a git name-status letter to a ForgeChange action. */
186
+ function actionForStatus(status) {
187
+ const code = status[0];
188
+ if (code === "A" || code === "C")
189
+ return "create";
190
+ if (code === "D")
191
+ return "delete";
192
+ return "modify"; // M, T (type change), and anything else we treat as a modify
193
+ }
194
+ /** Reads the HEAD (pre-change) blob for a path, or null if it didn't exist. */
195
+ async function headBlob(dir, file) {
196
+ const res = await runGitRaw(["show", `HEAD:${file}`], dir);
197
+ return res.code === 0 ? res.stdout : null;
198
+ }
199
+ async function buildChange(dir, repo, status, file, prevFile) {
200
+ const action = actionForStatus(status);
201
+ if (action === "delete") {
202
+ return { repo, file, action, proposed: "", original: await headBlob(dir, file), summary: "delete" };
203
+ }
204
+ const proposed = await fs.readFile(path.join(dir, file), "utf8");
205
+ // For a create the file is new (no HEAD blob); for a modify/rename the
206
+ // baseline lives under the previous path (renames change the path).
207
+ const original = status[0] === "A" ? null : await headBlob(dir, prevFile ?? file);
208
+ return { repo, file, action, proposed, original, summary: action };
209
+ }
210
+ /**
211
+ * Captures the working-tree changes in `dir` as a ForgeChange[] — the agentic-mode
212
+ * counterpart to overlayChanges. Where structured mode parses proposed file
213
+ * contents out of a JSON response, agentic mode lets Claude edit the checkout
214
+ * directly and then reads the result straight from git:
215
+ *
216
+ * git add -A (stage edits, creates, and deletes)
217
+ * git diff --cached --name-status -z (NUL-framed, robust to spaces/renames)
218
+ *
219
+ * Each entry carries the new content (`proposed`), the HEAD baseline (`original`,
220
+ * for the diff viewer), and the `repo` tag the downstream apply pipeline expects.
221
+ * A rename is surfaced as a delete of the old path plus a create of the new one.
222
+ *
223
+ * Staging is harmless: the clone under ~/.forge/cache is throwaway and the real
224
+ * commit happens later through the SCM provider API, not this working tree.
225
+ */
226
+ export async function captureChanges({ dir, repo }) {
227
+ const staged = await runGitRaw(["add", "-A"], dir);
228
+ if (staged.code !== 0)
229
+ throw new Error(`git add failed while capturing changes: ${staged.stderr.trim()}`);
230
+ const diff = await runGitRaw(["diff", "--cached", "--name-status", "-z"], dir);
231
+ if (diff.code !== 0)
232
+ throw new Error(`git diff failed while capturing changes: ${diff.stderr.trim()}`);
233
+ const tokens = diff.stdout.split("\0").filter((t) => t.length > 0);
234
+ const changes = [];
235
+ for (let i = 0; i < tokens.length; i++) {
236
+ const status = tokens[i];
237
+ if (status[0] === "R" || status[0] === "C") {
238
+ // Rename/copy records carry two paths: <status>\0<old>\0<new>.
239
+ const oldPath = tokens[++i];
240
+ const newPath = tokens[++i];
241
+ if (status[0] === "R") {
242
+ changes.push({ repo, file: oldPath, action: "delete", proposed: "", original: await headBlob(dir, oldPath), summary: "delete" });
243
+ }
244
+ changes.push(await buildChange(dir, repo, "A", newPath));
245
+ }
246
+ else {
247
+ const file = tokens[++i];
248
+ changes.push(await buildChange(dir, repo, status, file));
249
+ }
250
+ }
251
+ return changes;
252
+ }
165
253
  //# sourceMappingURL=localRepo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localRepo.js","sourceRoot":"","sources":["../../../../server/forge/core/localRepo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localRepo.js","sourceRoot":"","sources":["../../../../server/forge/core/localRepo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB;OAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE/C,SAAS,MAAM,CAAC,IAAc,EAAE,OAAgC,EAAE,EAAE,KAA8B;IACjG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG,IAAI;YACP,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAE,IAAI,CAAC,GAA8B,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;YACvH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SACjC,CAAC,CAAC;QACH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACF,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAc,EAAE,GAAW;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG;YACH,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;YACtE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,CAAS;IAC9B,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACtC,OAAO,sBAAsB,OAAO,MAAM,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrF,aAAa,CAAC,MAAM,EAAE,8DAA8D,KAAK,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,eAAe;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;IACjJ,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO;QACN,GAAG,EAAE;YACJ,WAAW,EAAE,OAAO;YACpB,mBAAmB,EAAE,GAAG;SACxB;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC;KACxD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,2CAA2C,CAAC,CAAC;QACvF,CAAC;IACF,CAAC;IACD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAAkB,EAAE,KAA6B;IACtG,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IACvD,IAAI,CAAC;QACJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;YAChC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACtG,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/E,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACnF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,iBAAiB,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QAEtG,OAAO,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACV,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,OAAsB,EAAE,KAA6B;IACtG,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACP,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC3C,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;AACF,CAAC;AAED,6DAA6D;AAC7D,SAAS,eAAe,CAAC,MAAc;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,QAAQ,CAAC,CAAC,6DAA6D;AAC/E,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IAChD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,MAAc,EAAE,IAAY,EAAE,QAAiB;IACpG,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACrG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACjE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;IAClF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAiC;IAChF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE1G,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEvG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5C,+DAA+D;YAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -77,6 +77,24 @@ export declare const RESOLUTION_CHECK_SCHEMA: string;
77
77
  export declare function classifyIssue(issue: IssueInput): "feature" | "fix" | "chore" | "refactor";
78
78
  export declare function buildIdentifyFilesPrompt(issue: IssueInput, repoTrees: RepoTree[] | string[]): string;
79
79
  export declare function buildProposeFixPrompt(issue: IssueInput, fileContents: FileContent[], options?: ProposeFixOptions): string;
80
+ interface AgenticFixOptions {
81
+ promptRules?: string;
82
+ userPrompt?: string;
83
+ ciContext?: string;
84
+ }
85
+ /**
86
+ * System prompt appended (via --append-system-prompt) on top of the real Claude
87
+ * Code agent prompt in agentic mode. It does NOT replace the harness — it adds
88
+ * Forge's guardrails while letting Claude behave like the interactive agent.
89
+ */
90
+ export declare const AGENTIC_SYSTEM_PROMPT = "You are Forge, an autonomous code agent working inside a checkout of a production codebase. You have real tools \u2014 read, search, edit, and run commands against the working tree.\n\nWork like a careful engineer:\n- Read the relevant code before changing it; follow the repo's existing conventions and any CLAUDE.md guidance you find.\n- Make the smallest change that fully resolves the issue. Fix the root cause, not the symptom.\n- Do not reorganise, reformat, or \"improve\" code the issue did not ask you to touch.\n- If the project has a logger, use it instead of console.*. Add comments only where the logic is non-obvious.\n- You may run lint/typecheck/tests to verify your change, but never push, commit, open MRs, or contact remote services \u2014 Forge handles that after review.\n- Make all edits directly to files in the working tree. Forge reads your changes from git, so there is no JSON to emit.";
91
+ /**
92
+ * Builds the natural-language task prompt for agentic mode. Unlike the
93
+ * structured builders, it does NOT ask for JSON — Claude edits the checkout
94
+ * directly and Forge captures the diff. The only structured ask is a final
95
+ * `TITLE:` line so Forge can derive a conventional-commit MR title.
96
+ */
97
+ export declare function buildAgenticFixPrompt(issue: IssueInput, options?: AgenticFixOptions): string;
80
98
  /**
81
99
  * Single-prompt conversational refine: the model auto-classifies the user's
82
100
  * message as a question about state or a directive to change code, then
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,UAAU,QAAQ;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,WAAW;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,UAAU,cAAc;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvC;AAED,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,aAAa;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,QAqB9B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QA2B7B,CAAC;AAEH,eAAO,MAAM,aAAa,QAmCxB,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAiC/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAalC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,4CAgB9C;AA0CD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,UA8C3F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,iBAAsB,UAyFpH;AAED,UAAU,iBAAiB;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,q5BAQsF,CAAC;AAEzH;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,UAkCvF;AA2BD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,aAAkB,UA4DjH;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,aAAkB,UASlE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UA2BhF"}
@@ -8,6 +8,7 @@
8
8
  * to the correct repository. Single-repo callers can still pass file trees /
9
9
  * contents without a repo field — they are normalised before rendering.
10
10
  */
11
+ import { formatCiContextForPrompt, parseCiTrace } from "./ciTraceParser.js";
11
12
  export const SELECT_FILES_SCHEMA = JSON.stringify({
12
13
  type: "object",
13
14
  properties: {
@@ -256,14 +257,22 @@ export function buildProposeFixPrompt(issue, fileContents, options = {}) {
256
257
  ? `\n\n## Reviewer feedback\n${feedback.trim()}\n\nAdjust the proposed changes to address this feedback.`
257
258
  : "";
258
259
  const ciBlock = ciContext?.trim()
259
- ? `\n\n## CI pipeline failure logs
260
+ ? (() => {
261
+ const parsed = parseCiTrace(ciContext);
262
+ const formattedTrace = formatCiContextForPrompt(parsed);
263
+ const focusRule = parsed.failures.length
264
+ ? `\n\n**CRITICAL**: The parsed failures above are the ONLY errors to fix. Do NOT make unrelated changes (styling, layout, refactors). Your changes must directly address ${parsed.failures.length === 1 ? "this specific error" : "these specific errors"}.`
265
+ : "";
266
+ return `\n\n## CI pipeline failure logs
260
267
  The pipeline failed. Read the logs carefully and classify the failure:
261
268
 
262
269
  1. **Code/test failure** — broken imports, type errors, failing assertions → propose the source-code fix.
263
270
  2. **Dependency audit failure** (npm audit, yarn audit) — a package has a known vulnerability → update the version constraint in package.json. Do NOT touch package-lock.json; the lock file will be regenerated automatically.
264
271
  3. **Unfixable infrastructure failure** — Docker registry outage, runner OOM, network timeout, flaky CI runner → set "unfixable": true and explain why in "unfixableReason". Return an empty "changes" array.
272
+ ${focusRule}
265
273
 
266
- ${ciContext.trim()}`
274
+ ${formattedTrace}`;
275
+ })()
267
276
  : "";
268
277
  const userBlock = userPrompt?.trim()
269
278
  ? `\n\n## Additional instructions\n${userPrompt.trim()}`
@@ -314,6 +323,56 @@ Labels: ${issue.labels?.join(", ") || "none"}${reposLine}${multiNote}${rulesBloc
314
323
  ## Relevant files
315
324
  ${filesBlock}`;
316
325
  }
326
+ /**
327
+ * System prompt appended (via --append-system-prompt) on top of the real Claude
328
+ * Code agent prompt in agentic mode. It does NOT replace the harness — it adds
329
+ * Forge's guardrails while letting Claude behave like the interactive agent.
330
+ */
331
+ export const AGENTIC_SYSTEM_PROMPT = `You are Forge, an autonomous code agent working inside a checkout of a production codebase. You have real tools — read, search, edit, and run commands against the working tree.
332
+
333
+ Work like a careful engineer:
334
+ - Read the relevant code before changing it; follow the repo's existing conventions and any CLAUDE.md guidance you find.
335
+ - Make the smallest change that fully resolves the issue. Fix the root cause, not the symptom.
336
+ - Do not reorganise, reformat, or "improve" code the issue did not ask you to touch.
337
+ - If the project has a logger, use it instead of console.*. Add comments only where the logic is non-obvious.
338
+ - You may run lint/typecheck/tests to verify your change, but never push, commit, open MRs, or contact remote services — Forge handles that after review.
339
+ - Make all edits directly to files in the working tree. Forge reads your changes from git, so there is no JSON to emit.`;
340
+ /**
341
+ * Builds the natural-language task prompt for agentic mode. Unlike the
342
+ * structured builders, it does NOT ask for JSON — Claude edits the checkout
343
+ * directly and Forge captures the diff. The only structured ask is a final
344
+ * `TITLE:` line so Forge can derive a conventional-commit MR title.
345
+ */
346
+ export function buildAgenticFixPrompt(issue, options = {}) {
347
+ const { promptRules, userPrompt, ciContext } = options;
348
+ const rulesBlock = promptRules?.trim()
349
+ ? `\n\n## Custom rules (from project settings — always follow these)\n${promptRules.trim()}`
350
+ : "";
351
+ const userBlock = userPrompt?.trim()
352
+ ? `\n\n## Additional instructions\n${userPrompt.trim()}`
353
+ : "";
354
+ const ciBlock = ciContext?.trim()
355
+ ? (() => {
356
+ const parsed = parseCiTrace(ciContext);
357
+ const formattedTrace = formatCiContextForPrompt(parsed);
358
+ const focusRule = parsed.failures.length
359
+ ? `\nFix ONLY the failure(s) below — do not make unrelated changes.`
360
+ : "";
361
+ return `\n\n## CI pipeline failure logs\nThe pipeline failed. Diagnose and fix the cause.${focusRule}\n\n${formattedTrace}`;
362
+ })()
363
+ : "";
364
+ const kind = classifyIssue(issue);
365
+ const verb = kind === "feature" || kind === "refactor" ? "Implement this" : "Fix this issue";
366
+ return `${verb}. You are already inside a checkout of the repo at the current working directory. Explore the code, then edit the files directly using your tools to resolve the issue end to end. Match the existing style and keep the change minimal.
367
+
368
+ ## Issue #${issue.iid}: ${issue.title}
369
+ ${issue.description || "(no description)"}
370
+ Labels: ${issue.labels?.join(", ") || "none"}${rulesBlock}${userBlock}${ciBlock}
371
+
372
+ When you are done, end your final message with a single line in this exact form so Forge can title the merge request:
373
+
374
+ TITLE: <conventional-commit subject, e.g. "fix: guard login handler against double submit">`;
375
+ }
317
376
  /**
318
377
  * Renders the latest pre-flight validation state (lint/typecheck/test) so the
319
378
  * refine model can ground answers like "are lint issues fixed?" in real data.
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../server/forge/core/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;IACjD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,KAAK,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE;oBACtG,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;iBACpE;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aAC1B;YACD,WAAW,EAAE,wEAAwE;SACrF;QACD,SAAS,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yHAAyH;SACtI;KACD;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,KAAK,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yJAAyJ;SACtK;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iHAAiH;SAC9H;QACD,OAAO,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8FAA8F,EAAE;oBACrI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6EAA6E,EAAE;oBACxH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;iBACvF;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;aAC3D;SACD;KACD;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,SAAS,EAAE;YACV,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,kKAAkK;SAC/K;QACD,eAAe,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wFAAwF;SACrG;QACD,KAAK,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yJAAyJ;SACtK;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iHAAiH;SAC9H;QACD,OAAO,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8FAA8F,EAAE;oBACrI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;oBACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6EAA6E,EAAE;oBACxH,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;iBACvF;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;aAC3D;SACD;KACD;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC;IAClD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC1B,WAAW,EAAE,uIAAuI;SACpJ;QACD,MAAM,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gMAAgM;SAC7M;QACD,OAAO,EAAE;YACR,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,0EAA0E;YACvF,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3B;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;aAC3D;SACD;QACD,KAAK,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kFAAkF;SAC/F;KACD;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC;IACrD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACX,QAAQ,EAAE;YACT,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,8CAA8C;SAC3D;QACD,SAAS,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8DAA8D;SAC3E;KACD;IACD,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;CACnC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC9C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAErI,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAEvD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACrG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAExF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1H,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,SAAgC;IACxD,MAAM,UAAU,GAAe,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC1F,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAqB,EAAE,CAAC;QAClD,CAAC,CAAC,SAAuB,CAAC;IAE3B,OAAO,UAAU;SACf,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAY,EAAE,EAAE,CAClC,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1D;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,YAA2B;IACtD,OAAO,YAAY;SACjB,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,OAAO,OAAO,MAAM,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,eAA8B;IAC5D,OAAO,eAAe;SACpB,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAC1F,OAAO,OAAO,MAAM,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,QAAQ,UAAU,CAAC;IACrE,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAiB,EAAE,SAAgC;IAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAC3E,MAAM,OAAO,GAAG,KAAK;QACpB,CAAC,CAAE,SAAwB,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,MAAM,CAAC;IAEV,MAAM,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,yVAAyV;QAC3V,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC;IAE5D,MAAM,cAAc,GAAG,SAAS;QAC/B,CAAC,CAAC;;;;;;uPAMmP;QACrP,CAAC,CAAC;;;kJAG8I,CAAC;IAElJ,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErC,OAAO;;;;eAIO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,yBAAyB,QAAQ,kCAAkC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ;;;EAGtJ,cAAc;;YAEJ,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK;EACnC,KAAK,CAAC,WAAW,IAAI,kBAAkB;UAC/B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;;;EAG1C,OAAO,GAAG,UAAU;;;EAGpB,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB,EAAE,YAA2B,EAAE,UAA6B,EAAE;IACpH,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzF,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC;IAE5D,MAAM,aAAa,GAAG,eAAe,EAAE,MAAM;QAC5C,CAAC,CAAC,qCAAqC,qBAAqB,CAAC,eAAe,CAAC,EAAE;QAC/E,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,EAAE;QACrC,CAAC,CAAC,6BAA6B,QAAQ,CAAC,IAAI,EAAE,2DAA2D;QACzG,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE;QAChC,CAAC,CAAC;;;;;;;EAOF,SAAS,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,EAAE;QACnC,CAAC,CAAC,mCAAmC,UAAU,CAAC,IAAI,EAAE,EAAE;QACxD,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM;QAC9B,CAAC,CAAC,kCAAkC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yEAAyE;QAC7H,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,SAAS,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,iPAAiP;QACnP,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,EAAE;QACrC,CAAC,CAAC,sEAAsE,WAAW,CAAC,IAAI,EAAE,EAAE;QAC5F,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,MAAM,YAAY,GAAG,SAAS;QAC7B,CAAC,CAAC,qEAAqE;QACvE,CAAC,CAAC,4DAA4D,CAAC;IAEhE,MAAM,eAAe,GAAG;;;sJAG6H,CAAC;IAEtJ,MAAM,UAAU,GAAG,SAAS;QAC3B,CAAC,CAAC;;;;;;KAMC,eAAe,EAAE;QACpB,CAAC,CAAC;;;;;KAKC,eAAe,EAAE,CAAC;IAEtB,OAAO;;qBAEa,WAAW;;EAE9B,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,wCAAwC;;EAEhF,UAAU;;YAEA,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK;EACnC,KAAK,CAAC,WAAW,IAAI,kBAAkB;UAC/B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS;;;EAGrI,UAAU,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,KAAyC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,oCAAoC,KAAK,CAAC,SAAS,IAAI,cAAc,GAAG,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;SACtE,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnG,CAAC;IACF,CAAC;IACD,OAAO,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiB,EAAE,YAA2B,EAAE,UAAyB,EAAE;IACjH,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE9G,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,eAAe,EAAE,MAAM;QAC5C,CAAC,CAAC,mCAAmC,qBAAqB,CAAC,eAAe,CAAC,EAAE;QAC7E,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,eAAe,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM;QAC9B,CAAC,CAAC,kCAAkC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6EAA6E;QACjI,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,SAAS,GAAG,SAAS,EAAE,MAAM;QAClC,CAAC,CAAC,iCAAiC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC/D,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,WAAW,GAAG,cAAc,KAAK,OAAO;QAC7C,CAAC,CAAC,kQAAkQ;QACpQ,CAAC,CAAC,iQAAiQ,CAAC;IAErQ,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,EAAE;QACrC,CAAC,CAAC,sEAAsE,WAAW,CAAC,IAAI,EAAE,EAAE;QAC5F,CAAC,CAAC,EAAE,CAAC;IAEN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2BI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK;EACnC,KAAK,CAAC,WAAW,IAAI,kBAAkB;UAC/B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe;;;EAG/H,UAAU;;;EAGV,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAyB,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,eAAe,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC/D,OAAO;;qGAE6F,eAAe;;;EAGlH,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAiB,EAAE,KAAmB;IAChF,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,KAAK,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtF,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/E,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7H,OAAO,OAAO,IAAI,KAAK,KAAK,kBAAkB,OAAO,UAAU,CAAC;IACjE,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,OAAO;;;;;;YAMI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK;EACnC,KAAK,CAAC,WAAW,IAAI,kBAAkB;;;EAGvC,SAAS,EAAE,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../server/forge/core/prompts.ts"],"names":[],"mappings":"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"}
@@ -121,10 +121,12 @@ export interface ForgeConfig {
121
121
  defaults: {
122
122
  model: string | null;
123
123
  agent: string | null;
124
+ agentMode?: "structured" | "agentic";
124
125
  autoPushOnValidatePass: boolean;
125
126
  refineRepoAccess: boolean;
126
127
  promptRules: string;
127
128
  testDeployUrlTemplate?: string;
129
+ maxCiFixAttempts?: number;
128
130
  cliTimeout?: number;
129
131
  selfImproveEnabled?: boolean;
130
132
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/forge/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../server/forge/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiBH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA0iCxB,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKvD;AAoBD,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../server/forge/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAkBH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAmjCxB,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKvD;AAoBD,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,eAAe,MAAM,CAAC"}
@@ -16,6 +16,7 @@
16
16
  * in the query string, or as a JSON array in a POST body.
17
17
  */
18
18
  import { Router } from "express";
19
+ import { parseCiTrace } from "./core/ciTraceParser.js";
19
20
  import * as configStore from "./core/configStore.js";
20
21
  import { listDeployments } from "./core/k8s.js";
21
22
  import { ForgeAgent } from "./core/ForgeAgent.js";
@@ -185,6 +186,7 @@ router.get("/status", requireAuth, async (_req, res) => {
185
186
  // from Settings → Defaults. Supports "{branch}" / "{slug}" placeholders
186
187
  // for ephemeral per-branch deploys. Empty string means "no link".
187
188
  testDeployUrlTemplate: configStore.get().defaults?.testDeployUrlTemplate || null,
189
+ maxCiFixAttempts: configStore.get().defaults?.maxCiFixAttempts ?? 3,
188
190
  });
189
191
  });
190
192
  router.use(requireAuth);
@@ -554,7 +556,7 @@ router.post("/issues/:iid/analyze", (req, res) => {
554
556
  ? req.body.kind
555
557
  : "fresh";
556
558
  const previousChanges = Array.isArray(req.body.previousChanges) ? req.body.previousChanges : null;
557
- const jobId = jobStore.createJob("analyze", (send, signal) => agent.analyzeIssue(Number(iid), send, req.body.model || undefined, undefined, req.body.prompt || undefined, kind, { signal }, previousChanges), { meta: { iid: Number(iid) }, onComplete: () => broadcast({ type: FORGE_EVENTS.ANALYSIS_DONE, iid: Number(iid) }) });
559
+ const jobId = jobStore.createJob("analyze", (send, signal) => agent.analyzeIssue(Number(iid), send, req.body.model || undefined, undefined, req.body.prompt || undefined, kind, { signal, agentMode: req.body.agentMode }, previousChanges), { meta: { iid: Number(iid) }, onComplete: () => broadcast({ type: FORGE_EVENTS.ANALYSIS_DONE, iid: Number(iid) }) });
558
560
  broadcast({ type: FORGE_EVENTS.ANALYSIS_STARTED, iid: Number(iid), jobId });
559
561
  res.json({ jobId });
560
562
  });
@@ -606,7 +608,15 @@ router.post("/issues/:iid/ci-fix", (req, res) => {
606
608
  router.get("/jobs/:jobId/trace", async (req, res) => {
607
609
  try {
608
610
  const trace = await createProvider(parseRepo(req)).getJobTrace(Number(req.params.jobId));
609
- res.json({ trace });
611
+ const parsed = parseCiTrace(trace);
612
+ res.json({
613
+ trace,
614
+ parsed: {
615
+ failures: parsed.failures,
616
+ fingerprint: parsed.fingerprint,
617
+ summary: parsed.summary,
618
+ },
619
+ });
610
620
  }
611
621
  catch (error) {
612
622
  handleError(res, error, "getJobTrace");